aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs15
-rw-r--r--OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs3
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs17
3 files changed, 17 insertions, 18 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 0c7b2e8..ae85605 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2391,14 +2391,16 @@ namespace OpenSim.Region.Framework.Scenes
2391 m_log.DebugFormat("[SCENE]: Problem adding scene object {0} in {1} ", sog.UUID, RegionInfo.RegionName); 2391 m_log.DebugFormat("[SCENE]: Problem adding scene object {0} in {1} ", sog.UUID, RegionInfo.RegionName);
2392 return false; 2392 return false;
2393 } 2393 }
2394 2394
2395 newObject.RootPart.ParentGroup.CreateScriptInstances(0, false, DefaultScriptEngine, GetStateSource(newObject)); 2395 newObject.RootPart.ParentGroup.CreateScriptInstances(0, false, DefaultScriptEngine, 2);
2396 2396
2397 newObject.ResumeScripts(); 2397 newObject.ResumeScripts();
2398 2398
2399 // Do this as late as possible so that listeners have full access to the incoming object 2399 // Do this as late as possible so that listeners have full access to the incoming object
2400 EventManager.TriggerOnIncomingSceneObject(newObject); 2400 EventManager.TriggerOnIncomingSceneObject(newObject);
2401 2401
2402 TriggerChangedTeleport(newObject);
2403
2402 return true; 2404 return true;
2403 } 2405 }
2404 2406
@@ -2525,7 +2527,7 @@ namespace OpenSim.Region.Framework.Scenes
2525 return true; 2527 return true;
2526 } 2528 }
2527 2529
2528 private int GetStateSource(SceneObjectGroup sog) 2530 private void TriggerChangedTeleport(SceneObjectGroup sog)
2529 { 2531 {
2530 ScenePresence sp = GetScenePresence(sog.OwnerID); 2532 ScenePresence sp = GetScenePresence(sog.OwnerID);
2531 2533
@@ -2536,12 +2538,13 @@ namespace OpenSim.Region.Framework.Scenes
2536 if (aCircuit != null && (aCircuit.teleportFlags != (uint)TeleportFlags.Default)) 2538 if (aCircuit != null && (aCircuit.teleportFlags != (uint)TeleportFlags.Default))
2537 { 2539 {
2538 // This will get your attention 2540 // This will get your attention
2539 //m_log.Error("[XXX] Triggering CHANGED_TELEPORT"); 2541 //m_log.Error("[XXX] Triggering ");
2540 2542
2541 return 5; // StateSource.Teleporting 2543 // Trigger CHANGED_TELEPORT
2544 sp.Scene.EventManager.TriggerOnScriptChangedEvent(sog.LocalId, (uint)Changed.TELEPORT);
2542 } 2545 }
2546
2543 } 2547 }
2544 return 2; // StateSource.PrimCrossing
2545 } 2548 }
2546 2549
2547 #endregion 2550 #endregion
diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
index 8b7871b..0c99d8c 100644
--- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
+++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs
@@ -42,8 +42,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
42 NewRez = 1, 42 NewRez = 1,
43 PrimCrossing = 2, 43 PrimCrossing = 2,
44 ScriptedRez = 3, 44 ScriptedRez = 3,
45 AttachedRez = 4, 45 AttachedRez = 4
46 Teleporting = 5
47 } 46 }
48 47
49 public interface IScriptWorkItem 48 public interface IScriptWorkItem
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
index 9548253..5288cd3 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
@@ -391,22 +391,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
391 } 391 }
392 else if (m_stateSource == StateSource.RegionStart) 392 else if (m_stateSource == StateSource.RegionStart)
393 { 393 {
394 //m_log.Debug("[Script] Posted changed(CHANGED_REGION_RESTART) to script"); 394// m_log.Debug("[Script] Posted changed(CHANGED_REGION_RESTART) to script");
395 PostEvent(new EventParams("changed", 395 PostEvent(new EventParams("changed",
396 new Object[] { new LSL_Types.LSLInteger((int)Changed.REGION_RESTART) }, new DetectParams[0])); 396 new Object[] { new LSL_Types.LSLInteger((int)Changed.REGION_RESTART) },
397 new DetectParams[0]));
397 } 398 }
398 else if (m_stateSource == StateSource.PrimCrossing || m_stateSource == StateSource.Teleporting) 399 else if (m_stateSource == StateSource.PrimCrossing)
399 { 400 {
400 // CHANGED_REGION 401 // CHANGED_REGION
401 PostEvent(new EventParams("changed", 402 PostEvent(new EventParams("changed",
402 new Object[] { new LSL_Types.LSLInteger((int)Changed.REGION) }, new DetectParams[0])); 403 new Object[] { new LSL_Types.LSLInteger((int)Changed.REGION) },
403 404 new DetectParams[0]));
404 // CHANGED_TELEPORT
405 if (m_stateSource == StateSource.Teleporting)
406 PostEvent(new EventParams("changed",
407 new Object[] { new LSL_Types.LSLInteger((int)Changed.TELEPORT) }, new DetectParams[0]));
408 } 405 }
409 } 406 }
410 else 407 else
411 { 408 {
412 Start(); 409 Start();