From 1dfc9902649bfb4f02340644a0589fe139a3322a Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 23 Feb 2012 01:40:30 +0000
Subject: Add a position parameter to region crossing of objects. This avoids
the potential bad update that places an object at the opposite side of the
origin sim for a moment before actually crossing it. Especially important in
grids like OSG where lag between sims is high.
---
OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | 3 ++-
OpenSim/Services/Interfaces/ISimulationService.cs | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Services')
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
index 65f01b3..cb003d1 100644
--- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
@@ -408,7 +408,7 @@ namespace OpenSim.Services.Connectors.Simulation
///
///
///
- public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall)
+ public bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall)
{
// m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: CreateObject start");
@@ -421,6 +421,7 @@ namespace OpenSim.Services.Connectors.Simulation
args["sog"] = OSD.FromString(sog.ToXml2());
args["extra"] = OSD.FromString(sog.ExtraToXmlString());
args["modified"] = OSD.FromBoolean(sog.HasGroupChanged);
+ args["new_position"] = newPosition.ToString();
string state = sog.GetStateSnapshot();
if (state.Length > 0)
diff --git a/OpenSim/Services/Interfaces/ISimulationService.cs b/OpenSim/Services/Interfaces/ISimulationService.cs
index 5f9ce6d..36fd6fc 100644
--- a/OpenSim/Services/Interfaces/ISimulationService.cs
+++ b/OpenSim/Services/Interfaces/ISimulationService.cs
@@ -98,7 +98,7 @@ namespace OpenSim.Services.Interfaces
///
///
///
- bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall);
+ bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall);
///
/// Create an object from the user's inventory in the destination region.
--
cgit v1.1