aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/EventManager.cs172
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneBase.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs35
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs37
8 files changed, 134 insertions, 124 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index 9f74b2a..57e1c37 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -209,7 +209,7 @@ namespace OpenSim.Region.Framework.Scenes
209 /// Triggered when an object or attachment enters a scene 209 /// Triggered when an object or attachment enters a scene
210 /// </summary> 210 /// </summary>
211 public event OnIncomingSceneObjectDelegate OnIncomingSceneObject; 211 public event OnIncomingSceneObjectDelegate OnIncomingSceneObject;
212 public delegate void OnIncomingSceneObjectDelegate(SceneObjectGroup so); 212 public delegate void OnIncomingSceneObjectDelegate(SceneObjectGroup so);
213 213
214 public delegate void NewInventoryItemUploadComplete(UUID avatarID, UUID assetID, string name, int userlevel); 214 public delegate void NewInventoryItemUploadComplete(UUID avatarID, UUID assetID, string name, int userlevel);
215 215
@@ -413,7 +413,7 @@ namespace OpenSim.Region.Framework.Scenes
413 } 413 }
414 } 414 }
415 } 415 }
416 } 416 }
417 417
418 public void TriggerGetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID) 418 public void TriggerGetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID)
419 { 419 {
@@ -433,7 +433,7 @@ namespace OpenSim.Region.Framework.Scenes
433 e.Message, e.StackTrace); 433 e.Message, e.StackTrace);
434 } 434 }
435 } 435 }
436 } 436 }
437 } 437 }
438 438
439 public void TriggerOnScriptChangedEvent(uint localID, uint change) 439 public void TriggerOnScriptChangedEvent(uint localID, uint change)
@@ -454,7 +454,7 @@ namespace OpenSim.Region.Framework.Scenes
454 e.Message, e.StackTrace); 454 e.Message, e.StackTrace);
455 } 455 }
456 } 456 }
457 } 457 }
458 } 458 }
459 459
460 public void TriggerOnClientMovement(ScenePresence avatar) 460 public void TriggerOnClientMovement(ScenePresence avatar)
@@ -475,7 +475,7 @@ namespace OpenSim.Region.Framework.Scenes
475 e.Message, e.StackTrace); 475 e.Message, e.StackTrace);
476 } 476 }
477 } 477 }
478 } 478 }
479 } 479 }
480 480
481 public void TriggerPermissionError(UUID user, string reason) 481 public void TriggerPermissionError(UUID user, string reason)
@@ -496,7 +496,7 @@ namespace OpenSim.Region.Framework.Scenes
496 e.Message, e.StackTrace); 496 e.Message, e.StackTrace);
497 } 497 }
498 } 498 }
499 } 499 }
500 } 500 }
501 501
502 public void TriggerOnPluginConsole(string[] args) 502 public void TriggerOnPluginConsole(string[] args)
@@ -517,7 +517,7 @@ namespace OpenSim.Region.Framework.Scenes
517 e.Message, e.StackTrace); 517 e.Message, e.StackTrace);
518 } 518 }
519 } 519 }
520 } 520 }
521 } 521 }
522 522
523 public void TriggerOnFrame() 523 public void TriggerOnFrame()
@@ -538,11 +538,11 @@ namespace OpenSim.Region.Framework.Scenes
538 e.Message, e.StackTrace); 538 e.Message, e.StackTrace);
539 } 539 }
540 } 540 }
541 } 541 }
542 } 542 }
543 543
544 public void TriggerOnNewClient(IClientAPI client) 544 public void TriggerOnNewClient(IClientAPI client)
545 { 545 {
546 OnNewClientDelegate handlerNewClient = OnNewClient; 546 OnNewClientDelegate handlerNewClient = OnNewClient;
547 if (handlerNewClient != null) 547 if (handlerNewClient != null)
548 { 548 {
@@ -559,10 +559,10 @@ namespace OpenSim.Region.Framework.Scenes
559 e.Message, e.StackTrace); 559 e.Message, e.StackTrace);
560 } 560 }
561 } 561 }
562 } 562 }
563 563
564 if (client is IClientCore) 564 if (client is IClientCore)
565 { 565 {
566 OnClientConnectCoreDelegate handlerClientConnect = OnClientConnect; 566 OnClientConnectCoreDelegate handlerClientConnect = OnClientConnect;
567 if (handlerClientConnect != null) 567 if (handlerClientConnect != null)
568 { 568 {
@@ -579,7 +579,7 @@ namespace OpenSim.Region.Framework.Scenes
579 e.Message, e.StackTrace); 579 e.Message, e.StackTrace);
580 } 580 }
581 } 581 }
582 } 582 }
583 } 583 }
584 } 584 }
585 585
@@ -601,11 +601,11 @@ namespace OpenSim.Region.Framework.Scenes
601 e.Message, e.StackTrace); 601 e.Message, e.StackTrace);
602 } 602 }
603 } 603 }
604 } 604 }
605 } 605 }
606 606
607 public void TriggerOnRemovePresence(UUID agentId) 607 public void TriggerOnRemovePresence(UUID agentId)
608 { 608 {
609 OnRemovePresenceDelegate handlerRemovePresence = OnRemovePresence; 609 OnRemovePresenceDelegate handlerRemovePresence = OnRemovePresence;
610 if (handlerRemovePresence != null) 610 if (handlerRemovePresence != null)
611 { 611 {
@@ -622,11 +622,11 @@ namespace OpenSim.Region.Framework.Scenes
622 e.Message, e.StackTrace); 622 e.Message, e.StackTrace);
623 } 623 }
624 } 624 }
625 } 625 }
626 } 626 }
627 627
628 public void TriggerOnBackup(IRegionDataStore dstore) 628 public void TriggerOnBackup(IRegionDataStore dstore)
629 { 629 {
630 OnBackupDelegate handlerOnAttach = OnBackup; 630 OnBackupDelegate handlerOnAttach = OnBackup;
631 if (handlerOnAttach != null) 631 if (handlerOnAttach != null)
632 { 632 {
@@ -643,7 +643,7 @@ namespace OpenSim.Region.Framework.Scenes
643 e.Message, e.StackTrace); 643 e.Message, e.StackTrace);
644 } 644 }
645 } 645 }
646 } 646 }
647 } 647 }
648 648
649 public void TriggerParcelPrimCountUpdate() 649 public void TriggerParcelPrimCountUpdate()
@@ -664,7 +664,7 @@ namespace OpenSim.Region.Framework.Scenes
664 e.Message, e.StackTrace); 664 e.Message, e.StackTrace);
665 } 665 }
666 } 666 }
667 } 667 }
668 } 668 }
669 669
670 public void TriggerMoneyTransfer(Object sender, MoneyTransferArgs args) 670 public void TriggerMoneyTransfer(Object sender, MoneyTransferArgs args)
@@ -685,7 +685,7 @@ namespace OpenSim.Region.Framework.Scenes
685 e.Message, e.StackTrace); 685 e.Message, e.StackTrace);
686 } 686 }
687 } 687 }
688 } 688 }
689 } 689 }
690 690
691 public void TriggerTerrainTick() 691 public void TriggerTerrainTick()
@@ -706,7 +706,7 @@ namespace OpenSim.Region.Framework.Scenes
706 e.Message, e.StackTrace); 706 e.Message, e.StackTrace);
707 } 707 }
708 } 708 }
709 } 709 }
710 } 710 }
711 711
712 public void TriggerParcelPrimCountAdd(SceneObjectGroup obj) 712 public void TriggerParcelPrimCountAdd(SceneObjectGroup obj)
@@ -727,7 +727,7 @@ namespace OpenSim.Region.Framework.Scenes
727 e.Message, e.StackTrace); 727 e.Message, e.StackTrace);
728 } 728 }
729 } 729 }
730 } 730 }
731 } 731 }
732 732
733 public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj) 733 public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj)
@@ -748,11 +748,11 @@ namespace OpenSim.Region.Framework.Scenes
748 e.Message, e.StackTrace); 748 e.Message, e.StackTrace);
749 } 749 }
750 } 750 }
751 } 751 }
752 } 752 }
753 753
754 public void TriggerShutdown() 754 public void TriggerShutdown()
755 { 755 {
756 OnShutdownDelegate handlerShutdown = OnShutdown; 756 OnShutdownDelegate handlerShutdown = OnShutdown;
757 if (handlerShutdown != null) 757 if (handlerShutdown != null)
758 { 758 {
@@ -769,11 +769,11 @@ namespace OpenSim.Region.Framework.Scenes
769 e.Message, e.StackTrace); 769 e.Message, e.StackTrace);
770 } 770 }
771 } 771 }
772 } 772 }
773 } 773 }
774 774
775 public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) 775 public void TriggerObjectGrab(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
776 { 776 {
777 ObjectGrabDelegate handlerObjectGrab = OnObjectGrab; 777 ObjectGrabDelegate handlerObjectGrab = OnObjectGrab;
778 if (handlerObjectGrab != null) 778 if (handlerObjectGrab != null)
779 { 779 {
@@ -790,11 +790,11 @@ namespace OpenSim.Region.Framework.Scenes
790 e.Message, e.StackTrace); 790 e.Message, e.StackTrace);
791 } 791 }
792 } 792 }
793 } 793 }
794 } 794 }
795 795
796 public void TriggerObjectGrabbing(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) 796 public void TriggerObjectGrabbing(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
797 { 797 {
798 ObjectGrabDelegate handlerObjectGrabbing = OnObjectGrabbing; 798 ObjectGrabDelegate handlerObjectGrabbing = OnObjectGrabbing;
799 if (handlerObjectGrabbing != null) 799 if (handlerObjectGrabbing != null)
800 { 800 {
@@ -811,11 +811,11 @@ namespace OpenSim.Region.Framework.Scenes
811 e.Message, e.StackTrace); 811 e.Message, e.StackTrace);
812 } 812 }
813 } 813 }
814 } 814 }
815 } 815 }
816 816
817 public void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs) 817 public void TriggerObjectDeGrab(uint localID, uint originalID, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs)
818 { 818 {
819 ObjectDeGrabDelegate handlerObjectDeGrab = OnObjectDeGrab; 819 ObjectDeGrabDelegate handlerObjectDeGrab = OnObjectDeGrab;
820 if (handlerObjectDeGrab != null) 820 if (handlerObjectDeGrab != null)
821 { 821 {
@@ -832,11 +832,11 @@ namespace OpenSim.Region.Framework.Scenes
832 e.Message, e.StackTrace); 832 e.Message, e.StackTrace);
833 } 833 }
834 } 834 }
835 } 835 }
836 } 836 }
837 837
838 public void TriggerScriptReset(uint localID, UUID itemID) 838 public void TriggerScriptReset(uint localID, UUID itemID)
839 { 839 {
840 ScriptResetDelegate handlerScriptReset = OnScriptReset; 840 ScriptResetDelegate handlerScriptReset = OnScriptReset;
841 if (handlerScriptReset != null) 841 if (handlerScriptReset != null)
842 { 842 {
@@ -853,11 +853,11 @@ namespace OpenSim.Region.Framework.Scenes
853 e.Message, e.StackTrace); 853 e.Message, e.StackTrace);
854 } 854 }
855 } 855 }
856 } 856 }
857 } 857 }
858 858
859 public void TriggerRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource) 859 public void TriggerRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine, int stateSource)
860 { 860 {
861 NewRezScript handlerRezScript = OnRezScript; 861 NewRezScript handlerRezScript = OnRezScript;
862 if (handlerRezScript != null) 862 if (handlerRezScript != null)
863 { 863 {
@@ -874,7 +874,7 @@ namespace OpenSim.Region.Framework.Scenes
874 e.Message, e.StackTrace); 874 e.Message, e.StackTrace);
875 } 875 }
876 } 876 }
877 } 877 }
878 } 878 }
879 879
880 public void TriggerStartScript(uint localID, UUID itemID) 880 public void TriggerStartScript(uint localID, UUID itemID)
@@ -895,7 +895,7 @@ namespace OpenSim.Region.Framework.Scenes
895 e.Message, e.StackTrace); 895 e.Message, e.StackTrace);
896 } 896 }
897 } 897 }
898 } 898 }
899 } 899 }
900 900
901 public void TriggerStopScript(uint localID, UUID itemID) 901 public void TriggerStopScript(uint localID, UUID itemID)
@@ -916,11 +916,11 @@ namespace OpenSim.Region.Framework.Scenes
916 e.Message, e.StackTrace); 916 e.Message, e.StackTrace);
917 } 917 }
918 } 918 }
919 } 919 }
920 } 920 }
921 921
922 public void TriggerRemoveScript(uint localID, UUID itemID) 922 public void TriggerRemoveScript(uint localID, UUID itemID)
923 { 923 {
924 RemoveScript handlerRemoveScript = OnRemoveScript; 924 RemoveScript handlerRemoveScript = OnRemoveScript;
925 if (handlerRemoveScript != null) 925 if (handlerRemoveScript != null)
926 { 926 {
@@ -937,7 +937,7 @@ namespace OpenSim.Region.Framework.Scenes
937 e.Message, e.StackTrace); 937 e.Message, e.StackTrace);
938 } 938 }
939 } 939 }
940 } 940 }
941 } 941 }
942 942
943 public bool TriggerGroupMove(UUID groupID, Vector3 delta) 943 public bool TriggerGroupMove(UUID groupID, Vector3 delta)
@@ -1036,7 +1036,7 @@ namespace OpenSim.Region.Framework.Scenes
1036 e.Message, e.StackTrace); 1036 e.Message, e.StackTrace);
1037 } 1037 }
1038 } 1038 }
1039 } 1039 }
1040 } 1040 }
1041 1041
1042 public void TriggerLandObjectAdded(ILandObject newParcel) 1042 public void TriggerLandObjectAdded(ILandObject newParcel)
@@ -1057,7 +1057,7 @@ namespace OpenSim.Region.Framework.Scenes
1057 e.Message, e.StackTrace); 1057 e.Message, e.StackTrace);
1058 } 1058 }
1059 } 1059 }
1060 } 1060 }
1061 } 1061 }
1062 1062
1063 public void TriggerLandObjectRemoved(UUID globalID) 1063 public void TriggerLandObjectRemoved(UUID globalID)
@@ -1078,7 +1078,7 @@ namespace OpenSim.Region.Framework.Scenes
1078 e.Message, e.StackTrace); 1078 e.Message, e.StackTrace);
1079 } 1079 }
1080 } 1080 }
1081 } 1081 }
1082 } 1082 }
1083 1083
1084 public void TriggerLandObjectUpdated(uint localParcelID, ILandObject newParcel) 1084 public void TriggerLandObjectUpdated(uint localParcelID, ILandObject newParcel)
@@ -1104,7 +1104,7 @@ namespace OpenSim.Region.Framework.Scenes
1104 e.Message, e.StackTrace); 1104 e.Message, e.StackTrace);
1105 } 1105 }
1106 } 1106 }
1107 } 1107 }
1108 } 1108 }
1109 1109
1110 public void TriggerIncomingInstantMessage(GridInstantMessage message) 1110 public void TriggerIncomingInstantMessage(GridInstantMessage message)
@@ -1125,7 +1125,7 @@ namespace OpenSim.Region.Framework.Scenes
1125 e.Message, e.StackTrace); 1125 e.Message, e.StackTrace);
1126 } 1126 }
1127 } 1127 }
1128 } 1128 }
1129 } 1129 }
1130 1130
1131 public void TriggerUnhandledInstantMessage(GridInstantMessage message) 1131 public void TriggerUnhandledInstantMessage(GridInstantMessage message)
@@ -1146,7 +1146,7 @@ namespace OpenSim.Region.Framework.Scenes
1146 e.Message, e.StackTrace); 1146 e.Message, e.StackTrace);
1147 } 1147 }
1148 } 1148 }
1149 } 1149 }
1150 } 1150 }
1151 1151
1152 public void TriggerClientClosed(UUID ClientID, Scene scene) 1152 public void TriggerClientClosed(UUID ClientID, Scene scene)
@@ -1167,7 +1167,7 @@ namespace OpenSim.Region.Framework.Scenes
1167 e.Message, e.StackTrace); 1167 e.Message, e.StackTrace);
1168 } 1168 }
1169 } 1169 }
1170 } 1170 }
1171 } 1171 }
1172 1172
1173 public void TriggerOnMakeChildAgent(ScenePresence presence) 1173 public void TriggerOnMakeChildAgent(ScenePresence presence)
@@ -1188,7 +1188,7 @@ namespace OpenSim.Region.Framework.Scenes
1188 e.Message, e.StackTrace); 1188 e.Message, e.StackTrace);
1189 } 1189 }
1190 } 1190 }
1191 } 1191 }
1192 } 1192 }
1193 1193
1194 public void TriggerOnMakeRootAgent(ScenePresence presence) 1194 public void TriggerOnMakeRootAgent(ScenePresence presence)
@@ -1209,7 +1209,7 @@ namespace OpenSim.Region.Framework.Scenes
1209 e.Message, e.StackTrace); 1209 e.Message, e.StackTrace);
1210 } 1210 }
1211 } 1211 }
1212 } 1212 }
1213 } 1213 }
1214 1214
1215 public void TriggerOnIncomingSceneObject(SceneObjectGroup so) 1215 public void TriggerOnIncomingSceneObject(SceneObjectGroup so)
@@ -1229,12 +1229,12 @@ namespace OpenSim.Region.Framework.Scenes
1229 "[EVENT MANAGER]: Delegate for TriggerOnIncomingSceneObject failed - continuing. {0} {1}", 1229 "[EVENT MANAGER]: Delegate for TriggerOnIncomingSceneObject failed - continuing. {0} {1}",
1230 e.Message, e.StackTrace); 1230 e.Message, e.StackTrace);
1231 } 1231 }
1232 } 1232 }
1233 } 1233 }
1234 } 1234 }
1235 1235
1236 public void TriggerOnRegisterCaps(UUID agentID, Caps caps) 1236 public void TriggerOnRegisterCaps(UUID agentID, Caps caps)
1237 { 1237 {
1238 RegisterCapsEvent handlerRegisterCaps = OnRegisterCaps; 1238 RegisterCapsEvent handlerRegisterCaps = OnRegisterCaps;
1239 if (handlerRegisterCaps != null) 1239 if (handlerRegisterCaps != null)
1240 { 1240 {
@@ -1251,7 +1251,7 @@ namespace OpenSim.Region.Framework.Scenes
1251 e.Message, e.StackTrace); 1251 e.Message, e.StackTrace);
1252 } 1252 }
1253 } 1253 }
1254 } 1254 }
1255 } 1255 }
1256 1256
1257 public void TriggerOnDeregisterCaps(UUID agentID, Caps caps) 1257 public void TriggerOnDeregisterCaps(UUID agentID, Caps caps)
@@ -1272,7 +1272,7 @@ namespace OpenSim.Region.Framework.Scenes
1272 e.Message, e.StackTrace); 1272 e.Message, e.StackTrace);
1273 } 1273 }
1274 } 1274 }
1275 } 1275 }
1276 } 1276 }
1277 1277
1278 public void TriggerOnNewInventoryItemUploadComplete(UUID agentID, UUID AssetID, String AssetName, int userlevel) 1278 public void TriggerOnNewInventoryItemUploadComplete(UUID agentID, UUID AssetID, String AssetName, int userlevel)
@@ -1293,7 +1293,7 @@ namespace OpenSim.Region.Framework.Scenes
1293 e.Message, e.StackTrace); 1293 e.Message, e.StackTrace);
1294 } 1294 }
1295 } 1295 }
1296 } 1296 }
1297 } 1297 }
1298 1298
1299 public void TriggerLandBuy(Object sender, LandBuyArgs args) 1299 public void TriggerLandBuy(Object sender, LandBuyArgs args)
@@ -1314,7 +1314,7 @@ namespace OpenSim.Region.Framework.Scenes
1314 e.Message, e.StackTrace); 1314 e.Message, e.StackTrace);
1315 } 1315 }
1316 } 1316 }
1317 } 1317 }
1318 } 1318 }
1319 1319
1320 public void TriggerValidateLandBuy(Object sender, LandBuyArgs args) 1320 public void TriggerValidateLandBuy(Object sender, LandBuyArgs args)
@@ -1335,11 +1335,11 @@ namespace OpenSim.Region.Framework.Scenes
1335 e.Message, e.StackTrace); 1335 e.Message, e.StackTrace);
1336 } 1336 }
1337 } 1337 }
1338 } 1338 }
1339 } 1339 }
1340 1340
1341 public void TriggerAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 currentpos) 1341 public void TriggerAtTargetEvent(uint localID, uint handle, Vector3 targetpos, Vector3 currentpos)
1342 { 1342 {
1343 ScriptAtTargetEvent handlerScriptAtTargetEvent = OnScriptAtTargetEvent; 1343 ScriptAtTargetEvent handlerScriptAtTargetEvent = OnScriptAtTargetEvent;
1344 if (handlerScriptAtTargetEvent != null) 1344 if (handlerScriptAtTargetEvent != null)
1345 { 1345 {
@@ -1356,7 +1356,7 @@ namespace OpenSim.Region.Framework.Scenes
1356 e.Message, e.StackTrace); 1356 e.Message, e.StackTrace);
1357 } 1357 }
1358 } 1358 }
1359 } 1359 }
1360 } 1360 }
1361 1361
1362 public void TriggerNotAtTargetEvent(uint localID) 1362 public void TriggerNotAtTargetEvent(uint localID)
@@ -1377,11 +1377,11 @@ namespace OpenSim.Region.Framework.Scenes
1377 e.Message, e.StackTrace); 1377 e.Message, e.StackTrace);
1378 } 1378 }
1379 } 1379 }
1380 } 1380 }
1381 } 1381 }
1382 1382
1383 public void TriggerAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion currentrot) 1383 public void TriggerAtRotTargetEvent(uint localID, uint handle, Quaternion targetrot, Quaternion currentrot)
1384 { 1384 {
1385 ScriptAtRotTargetEvent handlerScriptAtRotTargetEvent = OnScriptAtRotTargetEvent; 1385 ScriptAtRotTargetEvent handlerScriptAtRotTargetEvent = OnScriptAtRotTargetEvent;
1386 if (handlerScriptAtRotTargetEvent != null) 1386 if (handlerScriptAtRotTargetEvent != null)
1387 { 1387 {
@@ -1398,7 +1398,7 @@ namespace OpenSim.Region.Framework.Scenes
1398 e.Message, e.StackTrace); 1398 e.Message, e.StackTrace);
1399 } 1399 }
1400 } 1400 }
1401 } 1401 }
1402 } 1402 }
1403 1403
1404 public void TriggerNotAtRotTargetEvent(uint localID) 1404 public void TriggerNotAtRotTargetEvent(uint localID)
@@ -1419,7 +1419,7 @@ namespace OpenSim.Region.Framework.Scenes
1419 e.Message, e.StackTrace); 1419 e.Message, e.StackTrace);
1420 } 1420 }
1421 } 1421 }
1422 } 1422 }
1423 } 1423 }
1424 1424
1425 public void TriggerRequestChangeWaterHeight(float height) 1425 public void TriggerRequestChangeWaterHeight(float height)
@@ -1440,7 +1440,7 @@ namespace OpenSim.Region.Framework.Scenes
1440 e.Message, e.StackTrace); 1440 e.Message, e.StackTrace);
1441 } 1441 }
1442 } 1442 }
1443 } 1443 }
1444 } 1444 }
1445 1445
1446 public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar) 1446 public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar)
@@ -1461,7 +1461,7 @@ namespace OpenSim.Region.Framework.Scenes
1461 e.Message, e.StackTrace); 1461 e.Message, e.StackTrace);
1462 } 1462 }
1463 } 1463 }
1464 } 1464 }
1465 } 1465 }
1466 1466
1467 public void TriggerSignificantClientMovement(IClientAPI client) 1467 public void TriggerSignificantClientMovement(IClientAPI client)
@@ -1482,7 +1482,7 @@ namespace OpenSim.Region.Framework.Scenes
1482 e.Message, e.StackTrace); 1482 e.Message, e.StackTrace);
1483 } 1483 }
1484 } 1484 }
1485 } 1485 }
1486 } 1486 }
1487 1487
1488 public void TriggerOnChatFromWorld(Object sender, OSChatMessage chat) 1488 public void TriggerOnChatFromWorld(Object sender, OSChatMessage chat)
@@ -1503,7 +1503,7 @@ namespace OpenSim.Region.Framework.Scenes
1503 e.Message, e.StackTrace); 1503 e.Message, e.StackTrace);
1504 } 1504 }
1505 } 1505 }
1506 } 1506 }
1507 } 1507 }
1508 1508
1509 public void TriggerOnChatFromClient(Object sender, OSChatMessage chat) 1509 public void TriggerOnChatFromClient(Object sender, OSChatMessage chat)
@@ -1524,7 +1524,7 @@ namespace OpenSim.Region.Framework.Scenes
1524 e.Message, e.StackTrace); 1524 e.Message, e.StackTrace);
1525 } 1525 }
1526 } 1526 }
1527 } 1527 }
1528 } 1528 }
1529 1529
1530 public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat) 1530 public void TriggerOnChatBroadcast(Object sender, OSChatMessage chat)
@@ -1545,7 +1545,7 @@ namespace OpenSim.Region.Framework.Scenes
1545 e.Message, e.StackTrace); 1545 e.Message, e.StackTrace);
1546 } 1546 }
1547 } 1547 }
1548 } 1548 }
1549 } 1549 }
1550 1550
1551 internal void TriggerControlEvent(uint p, UUID scriptUUID, UUID avatarID, uint held, uint _changed) 1551 internal void TriggerControlEvent(uint p, UUID scriptUUID, UUID avatarID, uint held, uint _changed)
@@ -1566,7 +1566,7 @@ namespace OpenSim.Region.Framework.Scenes
1566 e.Message, e.StackTrace); 1566 e.Message, e.StackTrace);
1567 } 1567 }
1568 } 1568 }
1569 } 1569 }
1570 } 1570 }
1571 1571
1572 public void TriggerNoticeNoLandDataFromStorage() 1572 public void TriggerNoticeNoLandDataFromStorage()
@@ -1587,7 +1587,7 @@ namespace OpenSim.Region.Framework.Scenes
1587 e.Message, e.StackTrace); 1587 e.Message, e.StackTrace);
1588 } 1588 }
1589 } 1589 }
1590 } 1590 }
1591 } 1591 }
1592 1592
1593 public void TriggerIncomingLandDataFromStorage(List<LandData> landData) 1593 public void TriggerIncomingLandDataFromStorage(List<LandData> landData)
@@ -1608,7 +1608,7 @@ namespace OpenSim.Region.Framework.Scenes
1608 e.Message, e.StackTrace); 1608 e.Message, e.StackTrace);
1609 } 1609 }
1610 } 1610 }
1611 } 1611 }
1612 } 1612 }
1613 1613
1614 public void TriggerSetAllowForcefulBan(bool allow) 1614 public void TriggerSetAllowForcefulBan(bool allow)
@@ -1629,7 +1629,7 @@ namespace OpenSim.Region.Framework.Scenes
1629 e.Message, e.StackTrace); 1629 e.Message, e.StackTrace);
1630 } 1630 }
1631 } 1631 }
1632 } 1632 }
1633 } 1633 }
1634 1634
1635 public void TriggerRequestParcelPrimCountUpdate() 1635 public void TriggerRequestParcelPrimCountUpdate()
@@ -1650,7 +1650,7 @@ namespace OpenSim.Region.Framework.Scenes
1650 e.Message, e.StackTrace); 1650 e.Message, e.StackTrace);
1651 } 1651 }
1652 } 1652 }
1653 } 1653 }
1654 } 1654 }
1655 1655
1656 public void TriggerParcelPrimCountTainted() 1656 public void TriggerParcelPrimCountTainted()
@@ -1671,7 +1671,7 @@ namespace OpenSim.Region.Framework.Scenes
1671 e.Message, e.StackTrace); 1671 e.Message, e.StackTrace);
1672 } 1672 }
1673 } 1673 }
1674 } 1674 }
1675 } 1675 }
1676 1676
1677 // this lets us keep track of nasty script events like timer, etc. 1677 // this lets us keep track of nasty script events like timer, etc.
@@ -1710,7 +1710,7 @@ namespace OpenSim.Region.Framework.Scenes
1710 e.Message, e.StackTrace); 1710 e.Message, e.StackTrace);
1711 } 1711 }
1712 } 1712 }
1713 } 1713 }
1714 } 1714 }
1715 1715
1716 public float GetCurrentTimeAsSunLindenHour() 1716 public float GetCurrentTimeAsSunLindenHour()
@@ -1737,7 +1737,7 @@ namespace OpenSim.Region.Framework.Scenes
1737 } 1737 }
1738 1738
1739 public void TriggerOarFileLoaded(Guid requestId, string message) 1739 public void TriggerOarFileLoaded(Guid requestId, string message)
1740 { 1740 {
1741 OarFileLoaded handlerOarFileLoaded = OnOarFileLoaded; 1741 OarFileLoaded handlerOarFileLoaded = OnOarFileLoaded;
1742 if (handlerOarFileLoaded != null) 1742 if (handlerOarFileLoaded != null)
1743 { 1743 {
@@ -1754,7 +1754,7 @@ namespace OpenSim.Region.Framework.Scenes
1754 e.Message, e.StackTrace); 1754 e.Message, e.StackTrace);
1755 } 1755 }
1756 } 1756 }
1757 } 1757 }
1758 } 1758 }
1759 1759
1760 public void TriggerOarFileSaved(Guid requestId, string message) 1760 public void TriggerOarFileSaved(Guid requestId, string message)
@@ -1775,7 +1775,7 @@ namespace OpenSim.Region.Framework.Scenes
1775 e.Message, e.StackTrace); 1775 e.Message, e.StackTrace);
1776 } 1776 }
1777 } 1777 }
1778 } 1778 }
1779 } 1779 }
1780 1780
1781 public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message) 1781 public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message)
@@ -1796,7 +1796,7 @@ namespace OpenSim.Region.Framework.Scenes
1796 e.Message, e.StackTrace); 1796 e.Message, e.StackTrace);
1797 } 1797 }
1798 } 1798 }
1799 } 1799 }
1800 } 1800 }
1801 1801
1802 public void TriggerScriptCollidingStart(uint localId, ColliderArgs colliders) 1802 public void TriggerScriptCollidingStart(uint localId, ColliderArgs colliders)
@@ -1817,7 +1817,7 @@ namespace OpenSim.Region.Framework.Scenes
1817 e.Message, e.StackTrace); 1817 e.Message, e.StackTrace);
1818 } 1818 }
1819 } 1819 }
1820 } 1820 }
1821 } 1821 }
1822 1822
1823 public void TriggerScriptColliding(uint localId, ColliderArgs colliders) 1823 public void TriggerScriptColliding(uint localId, ColliderArgs colliders)
@@ -1838,7 +1838,7 @@ namespace OpenSim.Region.Framework.Scenes
1838 e.Message, e.StackTrace); 1838 e.Message, e.StackTrace);
1839 } 1839 }
1840 } 1840 }
1841 } 1841 }
1842 } 1842 }
1843 1843
1844 public void TriggerScriptCollidingEnd(uint localId, ColliderArgs colliders) 1844 public void TriggerScriptCollidingEnd(uint localId, ColliderArgs colliders)
@@ -1859,7 +1859,7 @@ namespace OpenSim.Region.Framework.Scenes
1859 e.Message, e.StackTrace); 1859 e.Message, e.StackTrace);
1860 } 1860 }
1861 } 1861 }
1862 } 1862 }
1863 } 1863 }
1864 1864
1865 public void TriggerScriptLandCollidingStart(uint localId, ColliderArgs colliders) 1865 public void TriggerScriptLandCollidingStart(uint localId, ColliderArgs colliders)
@@ -1880,7 +1880,7 @@ namespace OpenSim.Region.Framework.Scenes
1880 e.Message, e.StackTrace); 1880 e.Message, e.StackTrace);
1881 } 1881 }
1882 } 1882 }
1883 } 1883 }
1884 } 1884 }
1885 1885
1886 public void TriggerScriptLandColliding(uint localId, ColliderArgs colliders) 1886 public void TriggerScriptLandColliding(uint localId, ColliderArgs colliders)
@@ -1901,7 +1901,7 @@ namespace OpenSim.Region.Framework.Scenes
1901 e.Message, e.StackTrace); 1901 e.Message, e.StackTrace);
1902 } 1902 }
1903 } 1903 }
1904 } 1904 }
1905 } 1905 }
1906 1906
1907 public void TriggerScriptLandCollidingEnd(uint localId, ColliderArgs colliders) 1907 public void TriggerScriptLandCollidingEnd(uint localId, ColliderArgs colliders)
@@ -1922,11 +1922,11 @@ namespace OpenSim.Region.Framework.Scenes
1922 e.Message, e.StackTrace); 1922 e.Message, e.StackTrace);
1923 } 1923 }
1924 } 1924 }
1925 } 1925 }
1926 } 1926 }
1927 1927
1928 public void TriggerSetRootAgentScene(UUID agentID, Scene scene) 1928 public void TriggerSetRootAgentScene(UUID agentID, Scene scene)
1929 { 1929 {
1930 OnSetRootAgentSceneDelegate handlerSetRootAgentScene = OnSetRootAgentScene; 1930 OnSetRootAgentSceneDelegate handlerSetRootAgentScene = OnSetRootAgentScene;
1931 if (handlerSetRootAgentScene != null) 1931 if (handlerSetRootAgentScene != null)
1932 { 1932 {
@@ -1943,7 +1943,7 @@ namespace OpenSim.Region.Framework.Scenes
1943 e.Message, e.StackTrace); 1943 e.Message, e.StackTrace);
1944 } 1944 }
1945 } 1945 }
1946 } 1946 }
1947 } 1947 }
1948 1948
1949 public void TriggerOnRegionUp(GridRegion otherRegion) 1949 public void TriggerOnRegionUp(GridRegion otherRegion)
@@ -1964,7 +1964,7 @@ namespace OpenSim.Region.Framework.Scenes
1964 e.Message, e.StackTrace); 1964 e.Message, e.StackTrace);
1965 } 1965 }
1966 } 1966 }
1967 } 1967 }
1968 } 1968 }
1969 } 1969 }
1970} \ No newline at end of file 1970} \ No newline at end of file
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index d5ceda8..b9b16ad 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2384,7 +2384,7 @@ namespace OpenSim.Region.Framework.Scenes
2384 AttachObject( 2384 AttachObject(
2385 sp.ControllingClient, grp.LocalId, (uint)0, grp.GroupRotation, grp.AbsolutePosition, false); 2385 sp.ControllingClient, grp.LocalId, (uint)0, grp.GroupRotation, grp.AbsolutePosition, false);
2386 RootPrim.RemFlag(PrimFlags.TemporaryOnRez); 2386 RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
2387 grp.SendGroupFullUpdate(); 2387 grp.SendGroupFullUpdate();
2388 } 2388 }
2389 else 2389 else
2390 { 2390 {
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs
index aed8640..4f6e824 100644
--- a/OpenSim/Region/Framework/Scenes/SceneBase.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs
@@ -262,7 +262,7 @@ namespace OpenSim.Region.Framework.Scenes
262 /// Returns a new unallocated local ID 262 /// Returns a new unallocated local ID
263 /// </summary> 263 /// </summary>
264 /// <returns>A brand new local ID</returns> 264 /// <returns>A brand new local ID</returns>
265 protected internal uint AllocateLocalId() 265 public uint AllocateLocalId()
266 { 266 {
267 uint myID; 267 uint myID;
268 268
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 0132252..369552f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -642,7 +642,7 @@ namespace OpenSim.Region.Framework.Scenes
642 // it get cleaned up 642 // it get cleaned up
643 // 643 //
644 group.RootPart.RemFlag(PrimFlags.TemporaryOnRez); 644 group.RootPart.RemFlag(PrimFlags.TemporaryOnRez);
645 group.HasGroupChanged = false; 645 group.HasGroupChanged = false;
646 } 646 }
647 else 647 else
648 { 648 {
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index fe9dd9b..c5a6171 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -546,7 +546,7 @@ namespace OpenSim.Region.Framework.Scenes
546 546
547 if (m_rootPart.Shape.PCode != 9 || m_rootPart.Shape.State == 0) 547 if (m_rootPart.Shape.PCode != 9 || m_rootPart.Shape.State == 0)
548 m_rootPart.ParentID = 0; 548 m_rootPart.ParentID = 0;
549 if (m_rootPart.LocalId==0) 549 if (m_rootPart.LocalId == 0)
550 m_rootPart.LocalId = m_scene.AllocateLocalId(); 550 m_rootPart.LocalId = m_scene.AllocateLocalId();
551 551
552 // No need to lock here since the object isn't yet in a scene 552 // No need to lock here since the object isn't yet in a scene
@@ -1505,6 +1505,9 @@ namespace OpenSim.Region.Framework.Scenes
1505 /// <param name="part"></param> 1505 /// <param name="part"></param>
1506 internal void SendPartFullUpdate(IClientAPI remoteClient, SceneObjectPart part, uint clientFlags) 1506 internal void SendPartFullUpdate(IClientAPI remoteClient, SceneObjectPart part, uint clientFlags)
1507 { 1507 {
1508// m_log.DebugFormat(
1509// "[SOG]: Sendinging part full update to {0} for {1} {2}", remoteClient.Name, part.Name, part.LocalId);
1510
1508 if (m_rootPart.UUID == part.UUID) 1511 if (m_rootPart.UUID == part.UUID)
1509 { 1512 {
1510 if (IsAttachment) 1513 if (IsAttachment)
@@ -2297,7 +2300,6 @@ namespace OpenSim.Region.Framework.Scenes
2297 2300
2298 AttachToBackup(); 2301 AttachToBackup();
2299 2302
2300
2301 // Here's the deal, this is ABSOLUTELY CRITICAL so the physics scene gets the update about the 2303 // Here's the deal, this is ABSOLUTELY CRITICAL so the physics scene gets the update about the
2302 // position of linkset prims. IF YOU CHANGE THIS, YOU MUST TEST colliding with just linked and 2304 // position of linkset prims. IF YOU CHANGE THIS, YOU MUST TEST colliding with just linked and
2303 // unmoved prims! 2305 // unmoved prims!
@@ -2312,9 +2314,10 @@ namespace OpenSim.Region.Framework.Scenes
2312 /// an independent SceneObjectGroup. 2314 /// an independent SceneObjectGroup.
2313 /// </summary> 2315 /// </summary>
2314 /// <param name="partID"></param> 2316 /// <param name="partID"></param>
2315 public void DelinkFromGroup(uint partID) 2317 /// <returns>The object group of the newly delinked prim. Null if part could not be found</returns>
2318 public SceneObjectGroup DelinkFromGroup(uint partID)
2316 { 2319 {
2317 DelinkFromGroup(partID, true); 2320 return DelinkFromGroup(partID, true);
2318 } 2321 }
2319 2322
2320 /// <summary> 2323 /// <summary>
@@ -2323,28 +2326,39 @@ namespace OpenSim.Region.Framework.Scenes
2323 /// </summary> 2326 /// </summary>
2324 /// <param name="partID"></param> 2327 /// <param name="partID"></param>
2325 /// <param name="sendEvents"></param> 2328 /// <param name="sendEvents"></param>
2326 public void DelinkFromGroup(uint partID, bool sendEvents) 2329 /// <returns>The object group of the newly delinked prim. Null if part could not be found</returns>
2330 public SceneObjectGroup DelinkFromGroup(uint partID, bool sendEvents)
2327 { 2331 {
2328 SceneObjectPart linkPart = GetChildPart(partID); 2332 SceneObjectPart linkPart = GetChildPart(partID);
2329 2333
2330 if (linkPart != null) 2334 if (linkPart != null)
2331 { 2335 {
2332 DelinkFromGroup(linkPart, sendEvents); 2336 return DelinkFromGroup(linkPart, sendEvents);
2333 } 2337 }
2334 else 2338 else
2335 { 2339 {
2336 m_log.InfoFormat("[SCENE OBJECT GROUP]: " + 2340 m_log.WarnFormat("[SCENE OBJECT GROUP]: " +
2337 "DelinkFromGroup(): Child prim {0} not found in object {1}, {2}", 2341 "DelinkFromGroup(): Child prim {0} not found in object {1}, {2}",
2338 partID, LocalId, UUID); 2342 partID, LocalId, UUID);
2343
2344 return null;
2339 } 2345 }
2340 } 2346 }
2341 2347
2342 public void DelinkFromGroup(SceneObjectPart linkPart, bool sendEvents) 2348 /// <summary>
2349 /// Delink the given prim from this group. The delinked prim is established as
2350 /// an independent SceneObjectGroup.
2351 /// </summary>
2352 /// <param name="partID"></param>
2353 /// <param name="sendEvents"></param>
2354 /// <returns>The object group of the newly delinked prim.</returns>
2355 public SceneObjectGroup DelinkFromGroup(SceneObjectPart linkPart, bool sendEvents)
2343 { 2356 {
2344 linkPart.ClearUndoState();
2345// m_log.DebugFormat( 2357// m_log.DebugFormat(
2346// "[SCENE OBJECT GROUP]: Delinking part {0}, {1} from group with root part {2}, {3}", 2358// "[SCENE OBJECT GROUP]: Delinking part {0}, {1} from group with root part {2}, {3}",
2347// linkPart.Name, linkPart.UUID, RootPart.Name, RootPart.UUID); 2359// linkPart.Name, linkPart.UUID, RootPart.Name, RootPart.UUID);
2360
2361 linkPart.ClearUndoState();
2348 2362
2349 Quaternion worldRot = linkPart.GetWorldRotation(); 2363 Quaternion worldRot = linkPart.GetWorldRotation();
2350 2364
@@ -2397,6 +2411,8 @@ namespace OpenSim.Region.Framework.Scenes
2397 2411
2398 //HasGroupChanged = true; 2412 //HasGroupChanged = true;
2399 //ScheduleGroupForFullUpdate(); 2413 //ScheduleGroupForFullUpdate();
2414
2415 return objectGroup;
2400 } 2416 }
2401 2417
2402 /// <summary> 2418 /// <summary>
@@ -2435,7 +2451,6 @@ namespace OpenSim.Region.Framework.Scenes
2435 2451
2436 part.LinkNum = linkNum; 2452 part.LinkNum = linkNum;
2437 2453
2438
2439 part.OffsetPosition = part.GroupPosition - AbsolutePosition; 2454 part.OffsetPosition = part.GroupPosition - AbsolutePosition;
2440 2455
2441 Quaternion rootRotation = m_rootPart.RotationOffset; 2456 Quaternion rootRotation = m_rootPart.RotationOffset;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index d339208..5c283bc 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -4531,7 +4531,7 @@ namespace OpenSim.Region.Framework.Scenes
4531 else 4531 else
4532 { 4532 {
4533// m_log.DebugFormat( 4533// m_log.DebugFormat(
4534// "[SCENE OBJECT PART]: Scheduling part {0} {1} for full update in aggregateScriptEvents()", Name, LocalId); 4534// "[SCENE OBJECT PART]: Scheduling part {0} {1} for full update in aggregateScriptEvents()", Name, LocalId);
4535 ScheduleFullUpdate(); 4535 ScheduleFullUpdate();
4536 } 4536 }
4537 } 4537 }
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index d0de513..04e3221 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -313,7 +313,7 @@ namespace OpenSim.Region.Framework.Scenes
313 } 313 }
314 ); 314 );
315 } 315 }
316 } 316 }
317 317
318 private void RestoreSavedScriptState(UUID oldID, UUID newID) 318 private void RestoreSavedScriptState(UUID oldID, UUID newID)
319 { 319 {
@@ -578,7 +578,7 @@ namespace OpenSim.Region.Framework.Scenes
578 m_items.TryGetValue(itemId, out item); 578 m_items.TryGetValue(itemId, out item);
579 579
580 return item; 580 return item;
581 } 581 }
582 582
583 /// <summary> 583 /// <summary>
584 /// Get inventory items by name. 584 /// Get inventory items by name.
@@ -587,7 +587,7 @@ namespace OpenSim.Region.Framework.Scenes
587 /// <returns> 587 /// <returns>
588 /// A list of inventory items with that name. 588 /// A list of inventory items with that name.
589 /// If no inventory item has that name then an empty list is returned. 589 /// If no inventory item has that name then an empty list is returned.
590 /// </returns> 590 /// </returns>
591 public IList<TaskInventoryItem> GetInventoryItems(string name) 591 public IList<TaskInventoryItem> GetInventoryItems(string name)
592 { 592 {
593 IList<TaskInventoryItem> items = new List<TaskInventoryItem>(); 593 IList<TaskInventoryItem> items = new List<TaskInventoryItem>();
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 6b6fa7c..af9afa6 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -650,7 +650,7 @@ namespace OpenSim.Region.Framework.Scenes
650 #region Constructor(s) 650 #region Constructor(s)
651 651
652 public ScenePresence() 652 public ScenePresence()
653 { 653 {
654 m_sendCourseLocationsMethod = SendCoarseLocationsDefault; 654 m_sendCourseLocationsMethod = SendCoarseLocationsDefault;
655 CreateSceneViewer(); 655 CreateSceneViewer();
656 m_animator = new ScenePresenceAnimator(this); 656 m_animator = new ScenePresenceAnimator(this);
@@ -1241,14 +1241,6 @@ namespace OpenSim.Region.Framework.Scenes
1241 } 1241 }
1242 else 1242 else
1243 { 1243 {
1244 if (m_pos.X < 0)
1245 m_pos.X = 128;
1246 if (m_pos.Y < 0)
1247 m_pos.Y = 128;
1248 if (m_pos.X > Scene.WestBorders[0].BorderLine.X)
1249 m_pos.X = 128;
1250 if (m_pos.Y > Scene.NorthBorders[0].BorderLine.Y)
1251 m_pos.Y = 128;
1252 m_LastFinitePos = m_pos; 1244 m_LastFinitePos = m_pos;
1253 } 1245 }
1254 1246
@@ -2818,16 +2810,19 @@ namespace OpenSim.Region.Framework.Scenes
2818 { 2810 {
2819 if (!needsTransit) 2811 if (!needsTransit)
2820 { 2812 {
2821 Vector3 pos = AbsolutePosition; 2813 if (m_requestedSitTargetUUID == UUID.Zero)
2822 if (AbsolutePosition.X < 0) 2814 {
2823 pos.X += Velocity.Y; 2815 Vector3 pos = AbsolutePosition;
2824 else if (AbsolutePosition.X > Constants.RegionSize) 2816 if (AbsolutePosition.X < 0)
2825 pos.X -= Velocity.Y; 2817 pos.X += Velocity.X;
2826 if (AbsolutePosition.Y < 0) 2818 else if (AbsolutePosition.X > Constants.RegionSize)
2827 pos.Y += Velocity.Y; 2819 pos.X -= Velocity.X;
2828 else if (AbsolutePosition.Y > Constants.RegionSize) 2820 if (AbsolutePosition.Y < 0)
2829 pos.Y -= Velocity.Y; 2821 pos.Y += Velocity.Y;
2830 AbsolutePosition = pos; 2822 else if (AbsolutePosition.Y > Constants.RegionSize)
2823 pos.Y -= Velocity.Y;
2824 AbsolutePosition = pos;
2825 }
2831 } 2826 }
2832 } 2827 }
2833 else if (neighbor > 0) 2828 else if (neighbor > 0)
@@ -3292,7 +3287,7 @@ namespace OpenSim.Region.Framework.Scenes
3292 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate; 3287 m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate;
3293 m_physicsActor.OnOutOfBounds += OutOfBoundsCall; // Called for PhysicsActors when there's something wrong 3288 m_physicsActor.OnOutOfBounds += OutOfBoundsCall; // Called for PhysicsActors when there's something wrong
3294 m_physicsActor.SubscribeEvents(500); 3289 m_physicsActor.SubscribeEvents(500);
3295 m_physicsActor.LocalID = LocalId; 3290 m_physicsActor.LocalID = LocalId;
3296 } 3291 }
3297 3292
3298 private void OutOfBoundsCall(Vector3 pos) 3293 private void OutOfBoundsCall(Vector3 pos)
@@ -3384,7 +3379,7 @@ namespace OpenSim.Region.Framework.Scenes
3384 } 3379 }
3385 if (m_health <= 0) 3380 if (m_health <= 0)
3386 m_scene.EventManager.TriggerAvatarKill(killerObj, this); 3381 m_scene.EventManager.TriggerAvatarKill(killerObj, this);
3387 } 3382 }
3388 } 3383 }
3389 3384
3390 public void setHealthWithUpdate(float health) 3385 public void setHealthWithUpdate(float health)