* 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 Pointavinationmerge
parent
28d704599e
commit
ece2d24077
|
@ -1967,6 +1967,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
|||
|
||||
public void RemoveHTTPHandler(string httpMethod, string path)
|
||||
{
|
||||
if (path == null) return; // Caps module isn't loaded, tries to remove handler where path = null
|
||||
lock (m_HTTPHandlers)
|
||||
{
|
||||
if (httpMethod != null && httpMethod.Length == 0)
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -1667,7 +1667,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
|
||||
if (avatar == null)
|
||||
return;
|
||||
|
||||
m_rootPart.Shape.LastAttachPoint = m_rootPart.Shape.State;
|
||||
m_rootPart.AttachedPos = m_rootPart.OffsetPosition;
|
||||
avatar.RemoveAttachment(this);
|
||||
|
||||
Vector3 detachedpos = new Vector3(127f,127f,127f);
|
||||
|
@ -2107,6 +2108,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
if (RootPart.Shape.PCode == 9 && RootPart.Shape.State != 0)
|
||||
{
|
||||
RootPart.Shape.LastAttachPoint = RootPart.Shape.State;
|
||||
RootPart.Shape.State = 0;
|
||||
ScheduleGroupForFullUpdate();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue