aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs')
-rw-r--r--OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs15
1 files changed, 12 insertions, 3 deletions
diff --git a/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs b/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs
index 48f737e..6e813f4 100644
--- a/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs
+++ b/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs
@@ -204,15 +204,24 @@ namespace OpenSim.Region.CoreModules.Communications.Local
204 * Object-related communications 204 * Object-related communications
205 */ 205 */
206 206
207 public bool SendCreateObject(ulong regionHandle, ISceneObject sog) 207 public bool SendCreateObject(ulong regionHandle, ISceneObject sog, bool isLocalCall)
208 { 208 {
209 foreach (Scene s in m_sceneList) 209 foreach (Scene s in m_sceneList)
210 { 210 {
211 if (s.RegionInfo.RegionHandle == regionHandle) 211 if (s.RegionInfo.RegionHandle == regionHandle)
212 { 212 {
213 //m_log.Debug("[LOCAL COMMS]: Found region to SendCreateObject"); 213 //m_log.Debug("[LOCAL COMMS]: Found region to SendCreateObject");
214 ISceneObject sogClone = sog.CloneForNewScene(); 214 if (isLocalCall)
215 return s.IncomingCreateObject(sogClone); 215 {
216 // We need to make a local copy of the object
217 ISceneObject sogClone = sog.CloneForNewScene();
218 return s.IncomingCreateObject(sogClone);
219 }
220 else
221 {
222 // Use the object as it came through the wire
223 return s.IncomingCreateObject(sog);
224 }
216 } 225 }
217 } 226 }
218 return false; 227 return false;