fix object crossings to other scene on same instance

avinationmerge
UbitUmarov 2015-09-26 01:31:57 +01:00
parent 07a8618c56
commit 0fb033e567
3 changed files with 10 additions and 1 deletions

View File

@ -201,12 +201,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
uint regionX = Util.WorldToRegionLoc((uint)x); uint regionX = Util.WorldToRegionLoc((uint)x);
uint regionY = Util.WorldToRegionLoc((uint)y); uint regionY = Util.WorldToRegionLoc((uint)y);
/* we are insane now
// Sanity check // Sanity check
if ((Util.RegionToWorldLoc(regionX) != (uint)x) || (Util.RegionToWorldLoc(regionY) != (uint)y)) 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}>", 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)); LogHeader, x, y, Util.RegionToWorldLoc(regionX), Util.RegionToWorldLoc(regionY));
} }
*/
// First see if it's a neighbour, even if it isn't on this sim. // 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 // Neighbour data is cached in memory, so this is fast

View File

@ -2893,6 +2893,8 @@ namespace OpenSim.Region.Framework.Scenes
// newObject.RootPart.KeyframeMotion.UpdateSceneObject(newObject); // newObject.RootPart.KeyframeMotion.UpdateSceneObject(newObject);
} }
// Do this as late as possible so that listeners have full access to the incoming object // Do this as late as possible so that listeners have full access to the incoming object
EventManager.TriggerOnIncomingSceneObject(newObject); EventManager.TriggerOnIncomingSceneObject(newObject);

View File

@ -2302,7 +2302,12 @@ namespace OpenSim.Region.Framework.Scenes
dupe.m_isBackedUp = false; dupe.m_isBackedUp = false;
dupe.m_parts = new MapAndArray<OpenMetaverse.UUID, SceneObjectPart>(); dupe.m_parts = new MapAndArray<OpenMetaverse.UUID, SceneObjectPart>();
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 // new group as no sitting avatars
dupe.m_sittingAvatars = new List<ScenePresence>(); dupe.m_sittingAvatars = new List<ScenePresence>();