* 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
This commit is contained in:
teravus
2013-10-05 17:36:58 -05:00
parent 28d704599e
commit ece2d24077
4 changed files with 12 additions and 4 deletions

View File

@@ -685,6 +685,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
if (changed && m_scene.AvatarFactory != null)
m_scene.AvatarFactory.QueueAppearanceSave(sp.UUID);
so.RootPart.Shape.LastAttachPoint = (byte)so.AttachmentPoint;
sp.RemoveAttachment(so);
so.FromItemID = UUID.Zero;
@@ -699,7 +701,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
so.ClearPartAttachmentData();
rootPart.ApplyPhysics(rootPart.GetEffectiveObjectFlags(), rootPart.VolumeDetectActive,false);
so.HasGroupChanged = true;
so.RootPart.Shape.LastAttachPoint = (byte)so.AttachmentPoint;
rootPart.Rezzed = DateTime.Now;
rootPart.RemFlag(PrimFlags.TemporaryOnRez);
so.AttachToBackup();

View File

@@ -390,9 +390,13 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
// Trees could be attached and it's been done, but it makes
// no sense. State must be preserved because it's the tree type
if (objectGroup.RootPart.Shape.PCode != (byte)PCode.Tree &&
objectGroup.RootPart.Shape.PCode != (byte)PCode.NewTree)
if (objectGroup.RootPart.Shape.PCode != (byte) PCode.Tree &&
objectGroup.RootPart.Shape.PCode != (byte) PCode.NewTree)
{
objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint;
if (objectGroup.RootPart.AttachPoint > 0)
objectGroup.RootPart.Shape.LastAttachPoint = objectGroup.RootPart.AttachPoint;
}
objectGroup.AbsolutePosition = inventoryStoredPosition;
objectGroup.RootPart.RotationOffset = inventoryStoredRotation;