aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorteravus2013-10-05 17:36:58 -0500
committerteravus2013-10-05 17:36:58 -0500
commitece2d24077cacba677de5cebdd3a9da463306ecd (patch)
tree9f85591639a2f039b52f869be371b1f3c4363b37 /OpenSim
parentMerge branch 'master' of careminster:/var/git/careminster (diff)
downloadopensim-SC_OLD-ece2d24077cacba677de5cebdd3a9da463306ecd.zip
opensim-SC_OLD-ece2d24077cacba677de5cebdd3a9da463306ecd.tar.gz
opensim-SC_OLD-ece2d24077cacba677de5cebdd3a9da463306ecd.tar.bz2
opensim-SC_OLD-ece2d24077cacba677de5cebdd3a9da463306ecd.tar.xz
* Fixes cases where Last Attachment Point gets overwritten with 0 when it shouldn't
* Fixes cases where Last Attachment Point doesn't get written when it should. * Fixes Null Reference in BaseHttpServer when shutting down, null path provided. * Drop then Wear retains Last Attachment Point
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs1
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs3
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs8
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs4
4 files changed, 12 insertions, 4 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index ed733cf..5681ece 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -1967,6 +1967,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1967 1967
1968 public void RemoveHTTPHandler(string httpMethod, string path) 1968 public void RemoveHTTPHandler(string httpMethod, string path)
1969 { 1969 {
1970 if (path == null) return; // Caps module isn't loaded, tries to remove handler where path = null
1970 lock (m_HTTPHandlers) 1971 lock (m_HTTPHandlers)
1971 { 1972 {
1972 if (httpMethod != null && httpMethod.Length == 0) 1973 if (httpMethod != null && httpMethod.Length == 0)
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index 81a7278..051e959 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -685,6 +685,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
685 if (changed && m_scene.AvatarFactory != null) 685 if (changed && m_scene.AvatarFactory != null)
686 m_scene.AvatarFactory.QueueAppearanceSave(sp.UUID); 686 m_scene.AvatarFactory.QueueAppearanceSave(sp.UUID);
687 687
688 so.RootPart.Shape.LastAttachPoint = (byte)so.AttachmentPoint;
689
688 sp.RemoveAttachment(so); 690 sp.RemoveAttachment(so);
689 so.FromItemID = UUID.Zero; 691 so.FromItemID = UUID.Zero;
690 692
@@ -699,7 +701,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
699 so.ClearPartAttachmentData(); 701 so.ClearPartAttachmentData();
700 rootPart.ApplyPhysics(rootPart.GetEffectiveObjectFlags(), rootPart.VolumeDetectActive,false); 702 rootPart.ApplyPhysics(rootPart.GetEffectiveObjectFlags(), rootPart.VolumeDetectActive,false);
701 so.HasGroupChanged = true; 703 so.HasGroupChanged = true;
702 so.RootPart.Shape.LastAttachPoint = (byte)so.AttachmentPoint;
703 rootPart.Rezzed = DateTime.Now; 704 rootPart.Rezzed = DateTime.Now;
704 rootPart.RemFlag(PrimFlags.TemporaryOnRez); 705 rootPart.RemFlag(PrimFlags.TemporaryOnRez);
705 so.AttachToBackup(); 706 so.AttachToBackup();
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index 3feeb13..ac4203f 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -390,9 +390,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
390 390
391 // Trees could be attached and it's been done, but it makes 391 // Trees could be attached and it's been done, but it makes
392 // no sense. State must be preserved because it's the tree type 392 // no sense. State must be preserved because it's the tree type
393 if (objectGroup.RootPart.Shape.PCode != (byte)PCode.Tree && 393 if (objectGroup.RootPart.Shape.PCode != (byte) PCode.Tree &&
394 objectGroup.RootPart.Shape.PCode != (byte)PCode.NewTree) 394 objectGroup.RootPart.Shape.PCode != (byte) PCode.NewTree)
395 {
395 objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint; 396 objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint;
397 if (objectGroup.RootPart.AttachPoint > 0)
398 objectGroup.RootPart.Shape.LastAttachPoint = objectGroup.RootPart.AttachPoint;
399 }
396 400
397 objectGroup.AbsolutePosition = inventoryStoredPosition; 401 objectGroup.AbsolutePosition = inventoryStoredPosition;
398 objectGroup.RootPart.RotationOffset = inventoryStoredRotation; 402 objectGroup.RootPart.RotationOffset = inventoryStoredRotation;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 6deb870..997a1be 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1667,7 +1667,8 @@ namespace OpenSim.Region.Framework.Scenes
1667 ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar); 1667 ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
1668 if (avatar == null) 1668 if (avatar == null)
1669 return; 1669 return;
1670 1670 m_rootPart.Shape.LastAttachPoint = m_rootPart.Shape.State;
1671 m_rootPart.AttachedPos = m_rootPart.OffsetPosition;
1671 avatar.RemoveAttachment(this); 1672 avatar.RemoveAttachment(this);
1672 1673
1673 Vector3 detachedpos = new Vector3(127f,127f,127f); 1674 Vector3 detachedpos = new Vector3(127f,127f,127f);
@@ -2107,6 +2108,7 @@ namespace OpenSim.Region.Framework.Scenes
2107 2108
2108 if (RootPart.Shape.PCode == 9 && RootPart.Shape.State != 0) 2109 if (RootPart.Shape.PCode == 9 && RootPart.Shape.State != 0)
2109 { 2110 {
2111 RootPart.Shape.LastAttachPoint = RootPart.Shape.State;
2110 RootPart.Shape.State = 0; 2112 RootPart.Shape.State = 0;
2111 ScheduleGroupForFullUpdate(); 2113 ScheduleGroupForFullUpdate();
2112 } 2114 }