diff options
author | Melanie | 2012-02-23 01:40:30 +0000 |
---|---|---|
committer | Melanie | 2012-02-23 01:40:30 +0000 |
commit | 1dfc9902649bfb4f02340644a0589fe139a3322a (patch) | |
tree | 631a932e9317c50d96c7dbaa91ffc675421a9b48 /OpenSim/Region/CoreModules/ServiceConnectorsOut | |
parent | Restore the taskItem null check that I accidentally blatted in 5397a6d (diff) | |
download | opensim-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/Region/CoreModules/ServiceConnectorsOut')
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs index a17c6ae..85e7e94 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs | |||
@@ -315,7 +315,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
315 | * Object-related communications | 315 | * Object-related communications |
316 | */ | 316 | */ |
317 | 317 | ||
318 | public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall) | 318 | public bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall) |
319 | { | 319 | { |
320 | if (destination == null) | 320 | if (destination == null) |
321 | return false; | 321 | return false; |
@@ -330,12 +330,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
330 | // We need to make a local copy of the object | 330 | // We need to make a local copy of the object |
331 | ISceneObject sogClone = sog.CloneForNewScene(); | 331 | ISceneObject sogClone = sog.CloneForNewScene(); |
332 | sogClone.SetState(sog.GetStateSnapshot(), s); | 332 | sogClone.SetState(sog.GetStateSnapshot(), s); |
333 | return s.IncomingCreateObject(sogClone); | 333 | return s.IncomingCreateObject(newPosition, sogClone); |
334 | } | 334 | } |
335 | else | 335 | else |
336 | { | 336 | { |
337 | // Use the object as it came through the wire | 337 | // Use the object as it came through the wire |
338 | return s.IncomingCreateObject(sog); | 338 | return s.IncomingCreateObject(newPosition, sog); |
339 | } | 339 | } |
340 | } | 340 | } |
341 | } | 341 | } |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs index f8cea71..eaf9506 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs | |||
@@ -282,13 +282,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
282 | * Object-related communications | 282 | * Object-related communications |
283 | */ | 283 | */ |
284 | 284 | ||
285 | public bool CreateObject(GridRegion destination, ISceneObject sog, bool isLocalCall) | 285 | public bool CreateObject(GridRegion destination, Vector3 newPosition, ISceneObject sog, bool isLocalCall) |
286 | { | 286 | { |
287 | if (destination == null) | 287 | if (destination == null) |
288 | return false; | 288 | return false; |
289 | 289 | ||
290 | // Try local first | 290 | // Try local first |
291 | if (m_localBackend.CreateObject(destination, sog, isLocalCall)) | 291 | if (m_localBackend.CreateObject(destination, newPosition, sog, isLocalCall)) |
292 | { | 292 | { |
293 | //m_log.Debug("[REST COMMS]: LocalBackEnd SendCreateObject succeeded"); | 293 | //m_log.Debug("[REST COMMS]: LocalBackEnd SendCreateObject succeeded"); |
294 | return true; | 294 | return true; |
@@ -296,7 +296,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
296 | 296 | ||
297 | // else do the remote thing | 297 | // else do the remote thing |
298 | if (!m_localBackend.IsLocalRegion(destination.RegionHandle)) | 298 | if (!m_localBackend.IsLocalRegion(destination.RegionHandle)) |
299 | return m_remoteConnector.CreateObject(destination, sog, isLocalCall); | 299 | return m_remoteConnector.CreateObject(destination, newPosition, sog, isLocalCall); |
300 | 300 | ||
301 | return false; | 301 | return false; |
302 | } | 302 | } |