aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs
diff options
context:
space:
mode:
authordiva2009-02-13 00:49:58 +0000
committerdiva2009-02-13 00:49:58 +0000
commita54758eef38e911fcdca1cf200e97f56d6bf5e8f (patch)
tree7524bf1bce0209a024ca013f84cc9e372e13aa1c /OpenSim/Region/CoreModules/Communications/Local/LocalInterregionComms.cs
parentRemove extra ID field from asset DB mapping. Mantis #3122, fixes Mantis #3080. (diff)
downloadopensim-SC_OLD-a54758eef38e911fcdca1cf200e97f56d6bf5e8f.zip
opensim-SC_OLD-a54758eef38e911fcdca1cf200e97f56d6bf5e8f.tar.gz
opensim-SC_OLD-a54758eef38e911fcdca1cf200e97f56d6bf5e8f.tar.bz2
opensim-SC_OLD-a54758eef38e911fcdca1cf200e97f56d6bf5e8f.tar.xz
Bug fix in prim crossing: making it clear when the local object needs to be cloned (regions on the same instance) and when it doesn't (regions on different instances).
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;