keep intransit flag even if deleted, dont set sog position if in transit

avinationmerge
UbitUmarov 2014-10-26 01:25:28 +00:00
parent 639f128d2c
commit 139044fc79
1 changed files with 39 additions and 42 deletions

View File

@ -552,7 +552,7 @@ namespace OpenSim.Region.Framework.Scenes
d.BeginInvoke(this, val, CrossAsyncCompleted, d); d.BeginInvoke(this, val, CrossAsyncCompleted, d);
return; return;
} }
}
if (RootPart.GetStatusSandbox()) if (RootPart.GetStatusSandbox())
{ {
@ -602,6 +602,7 @@ namespace OpenSim.Region.Framework.Scenes
Scene.EventManager.TriggerParcelPrimCountTainted(); Scene.EventManager.TriggerParcelPrimCountTainted();
} }
} }
}
public SceneObjectGroup CrossAsync(SceneObjectGroup sog, Vector3 val) public SceneObjectGroup CrossAsync(SceneObjectGroup sog, Vector3 val)
{ {
@ -751,11 +752,7 @@ namespace OpenSim.Region.Framework.Scenes
SOGCrossDelegate icon = (SOGCrossDelegate)iar.AsyncState; SOGCrossDelegate icon = (SOGCrossDelegate)iar.AsyncState;
SceneObjectGroup sog = icon.EndInvoke(iar); SceneObjectGroup sog = icon.EndInvoke(iar);
if (sog.IsDeleted) if (!sog.IsDeleted)
{
sog.inTransit = false; // just in case...
}
else
{ {
SceneObjectPart rootp = sog.m_rootPart; SceneObjectPart rootp = sog.m_rootPart;
Vector3 oldp = rootp.GroupPosition; Vector3 oldp = rootp.GroupPosition;