diff options
author | teravus | 2013-10-05 17:36:58 -0500 |
---|---|---|
committer | teravus | 2013-10-05 17:36:58 -0500 |
commit | ece2d24077cacba677de5cebdd3a9da463306ecd (patch) | |
tree | 9f85591639a2f039b52f869be371b1f3c4363b37 /OpenSim | |
parent | Merge branch 'master' of careminster:/var/git/careminster (diff) | |
download | opensim-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 '')
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 | } |