aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services
diff options
context:
space:
mode:
authorMelanie2012-02-23 01:40:30 +0000
committerMelanie2012-02-23 01:40:30 +0000
commit1dfc9902649bfb4f02340644a0589fe139a3322a (patch)
tree631a932e9317c50d96c7dbaa91ffc675421a9b48 /OpenSim/Services
parentRestore the taskItem null check that I accidentally blatted in 5397a6d (diff)
downloadopensim-SC_OLD-1dfc9902649bfb4f02340644a0589fe139a3322a.zip
opensim-SC_OLD-1dfc9902649bfb4f02340644a0589fe139a3322a.tar.gz
opensim-SC_OLD-1dfc9902649bfb4f02340644a0589fe139a3322a.tar.bz2
opensim-SC_OLD-1dfc9902649bfb4f02340644a0589fe139a3322a.tar.xz
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.
Diffstat (limited to 'OpenSim/Services')
-rw-r--r--OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs3
-rw-r--r--OpenSim/Services/Interfaces/ISimulationService.cs2
2 files changed, 3 insertions, 2 deletions
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
408 /// <summary> 408 /// <summary>
409 /// 409 ///
410 /// </summary> 410 /// </summary>
411 public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall) 411 public bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall)
412 { 412 {
413 // m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: CreateObject start"); 413 // m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: CreateObject start");
414 414
@@ -421,6 +421,7 @@ namespace OpenSim.Services.Connectors.Simulation
421 args["sog"] = OSD.FromString(sog.ToXml2()); 421 args["sog"] = OSD.FromString(sog.ToXml2());
422 args["extra"] = OSD.FromString(sog.ExtraToXmlString()); 422 args["extra"] = OSD.FromString(sog.ExtraToXmlString());
423 args["modified"] = OSD.FromBoolean(sog.HasGroupChanged); 423 args["modified"] = OSD.FromBoolean(sog.HasGroupChanged);
424 args["new_position"] = newPosition.ToString();
424 425
425 string state = sog.GetStateSnapshot(); 426 string state = sog.GetStateSnapshot();
426 if (state.Length > 0) 427 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
98 /// <param name="sog"></param> 98 /// <param name="sog"></param>
99 /// <param name="isLocalCall"></param> 99 /// <param name="isLocalCall"></param>
100 /// <returns></returns> 100 /// <returns></returns>
101 bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall); 101 bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall);
102 102
103 /// <summary> 103 /// <summary>
104 /// Create an object from the user's inventory in the destination region. 104 /// Create an object from the user's inventory in the destination region.