From 0fb033e56766b433ccd03347b22e8141c28acaec Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Sat, 26 Sep 2015 01:31:57 +0100 Subject: [PATCH] fix object crossings to other scene on same instance --- .../ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs | 2 ++ OpenSim/Region/Framework/Scenes/Scene.cs | 2 ++ OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 7 ++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs index 1f782f56d4..6752e31cfa 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs @@ -201,12 +201,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid uint regionX = Util.WorldToRegionLoc((uint)x); uint regionY = Util.WorldToRegionLoc((uint)y); + /* we are insane now // Sanity check if ((Util.RegionToWorldLoc(regionX) != (uint)x) || (Util.RegionToWorldLoc(regionY) != (uint)y)) { m_log.WarnFormat("{0} GetRegionByPosition. Bad position requested: not the base of the region. Requested Pos=<{1},{2}>, Should Be=<{3},{4}>", LogHeader, x, y, Util.RegionToWorldLoc(regionX), Util.RegionToWorldLoc(regionY)); } + */ // First see if it's a neighbour, even if it isn't on this sim. // Neighbour data is cached in memory, so this is fast diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 111b74d9c4..3b5f9245b4 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -2893,6 +2893,8 @@ namespace OpenSim.Region.Framework.Scenes // newObject.RootPart.KeyframeMotion.UpdateSceneObject(newObject); } + + // Do this as late as possible so that listeners have full access to the incoming object EventManager.TriggerOnIncomingSceneObject(newObject); diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 6029221f28..22b81dc9ed 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -2302,8 +2302,13 @@ namespace OpenSim.Region.Framework.Scenes dupe.m_isBackedUp = false; dupe.m_parts = new MapAndArray(); - dupe.inTransit = inTransit; // this shouldn't be needed TEST + // a copy isnt backedup + dupe.Backup = false; + dupe.m_isBackedUp = false; + // a copy is not in transit hopefully + dupe.inTransit = false; + // new group as no sitting avatars dupe.m_sittingAvatars = new List();