* 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)
|
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)
|
lock (m_HTTPHandlers)
|
||||||
{
|
{
|
||||||
if (httpMethod != null && httpMethod.Length == 0)
|
if (httpMethod != null && httpMethod.Length == 0)
|
||||||
|
|
|
@ -685,6 +685,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
||||||
if (changed && m_scene.AvatarFactory != null)
|
if (changed && m_scene.AvatarFactory != null)
|
||||||
m_scene.AvatarFactory.QueueAppearanceSave(sp.UUID);
|
m_scene.AvatarFactory.QueueAppearanceSave(sp.UUID);
|
||||||
|
|
||||||
|
so.RootPart.Shape.LastAttachPoint = (byte)so.AttachmentPoint;
|
||||||
|
|
||||||
sp.RemoveAttachment(so);
|
sp.RemoveAttachment(so);
|
||||||
so.FromItemID = UUID.Zero;
|
so.FromItemID = UUID.Zero;
|
||||||
|
|
||||||
|
@ -699,7 +701,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
|
||||||
so.ClearPartAttachmentData();
|
so.ClearPartAttachmentData();
|
||||||
rootPart.ApplyPhysics(rootPart.GetEffectiveObjectFlags(), rootPart.VolumeDetectActive,false);
|
rootPart.ApplyPhysics(rootPart.GetEffectiveObjectFlags(), rootPart.VolumeDetectActive,false);
|
||||||
so.HasGroupChanged = true;
|
so.HasGroupChanged = true;
|
||||||
so.RootPart.Shape.LastAttachPoint = (byte)so.AttachmentPoint;
|
|
||||||
rootPart.Rezzed = DateTime.Now;
|
rootPart.Rezzed = DateTime.Now;
|
||||||
rootPart.RemFlag(PrimFlags.TemporaryOnRez);
|
rootPart.RemFlag(PrimFlags.TemporaryOnRez);
|
||||||
so.AttachToBackup();
|
so.AttachToBackup();
|
||||||
|
|
|
@ -392,7 +392,11 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
// no sense. State must be preserved because it's the tree type
|
// no sense. State must be preserved because it's the tree type
|
||||||
if (objectGroup.RootPart.Shape.PCode != (byte) PCode.Tree &&
|
if (objectGroup.RootPart.Shape.PCode != (byte) PCode.Tree &&
|
||||||
objectGroup.RootPart.Shape.PCode != (byte) PCode.NewTree)
|
objectGroup.RootPart.Shape.PCode != (byte) PCode.NewTree)
|
||||||
|
{
|
||||||
objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint;
|
objectGroup.RootPart.Shape.State = objectGroup.RootPart.AttachPoint;
|
||||||
|
if (objectGroup.RootPart.AttachPoint > 0)
|
||||||
|
objectGroup.RootPart.Shape.LastAttachPoint = objectGroup.RootPart.AttachPoint;
|
||||||
|
}
|
||||||
|
|
||||||
objectGroup.AbsolutePosition = inventoryStoredPosition;
|
objectGroup.AbsolutePosition = inventoryStoredPosition;
|
||||||
objectGroup.RootPart.RotationOffset = inventoryStoredRotation;
|
objectGroup.RootPart.RotationOffset = inventoryStoredRotation;
|
||||||
|
|
|
@ -1667,7 +1667,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
|
ScenePresence avatar = m_scene.GetScenePresence(AttachedAvatar);
|
||||||
if (avatar == null)
|
if (avatar == null)
|
||||||
return;
|
return;
|
||||||
|
m_rootPart.Shape.LastAttachPoint = m_rootPart.Shape.State;
|
||||||
|
m_rootPart.AttachedPos = m_rootPart.OffsetPosition;
|
||||||
avatar.RemoveAttachment(this);
|
avatar.RemoveAttachment(this);
|
||||||
|
|
||||||
Vector3 detachedpos = new Vector3(127f,127f,127f);
|
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)
|
if (RootPart.Shape.PCode == 9 && RootPart.Shape.State != 0)
|
||||||
{
|
{
|
||||||
|
RootPart.Shape.LastAttachPoint = RootPart.Shape.State;
|
||||||
RootPart.Shape.State = 0;
|
RootPart.Shape.State = 0;
|
||||||
ScheduleGroupForFullUpdate();
|
ScheduleGroupForFullUpdate();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue