diff options
author | Charles Krinke | 2008-07-04 00:59:38 +0000 |
---|---|---|
committer | Charles Krinke | 2008-07-04 00:59:38 +0000 |
commit | ce5122ebf3077085d1ca6967634b4e0baad94d6c (patch) | |
tree | c65aa10649c677a9f2a39421c2c99d5a4857bc63 /OpenSim/Region/ScriptEngine/Shared | |
parent | Mantis#1660. Thank you, kindly, Melanie for a patch that: (diff) | |
download | opensim-SC-ce5122ebf3077085d1ca6967634b4e0baad94d6c.zip opensim-SC-ce5122ebf3077085d1ca6967634b4e0baad94d6c.tar.gz opensim-SC-ce5122ebf3077085d1ca6967634b4e0baad94d6c.tar.bz2 opensim-SC-ce5122ebf3077085d1ca6967634b4e0baad94d6c.tar.xz |
Mantis#1659. Thank you, Melanie for a patch that:
In LSL, the state command should have an immediate effect.
The OpenSim script engine seems to wait until the function
ends to process the state transition.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Helpers.cs | 15 |
2 files changed, 17 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 7887515..06f9f3b 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -99,6 +99,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
99 | public void state(string newState) | 99 | public void state(string newState) |
100 | { | 100 | { |
101 | m_ScriptEngine.SetState(m_itemID, newState); | 101 | m_ScriptEngine.SetState(m_itemID, newState); |
102 | throw new EventAbortException(); | ||
102 | } | 103 | } |
103 | 104 | ||
104 | public void llSay(int channelID, string text) | 105 | public void llSay(int channelID, string text) |
@@ -2791,6 +2792,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2791 | { | 2792 | { |
2792 | m_host.AddScriptLPS(1); | 2793 | m_host.AddScriptLPS(1); |
2793 | m_ScriptEngine.ApiResetScript(m_itemID); | 2794 | m_ScriptEngine.ApiResetScript(m_itemID); |
2795 | throw new EventAbortException(); | ||
2794 | } | 2796 | } |
2795 | 2797 | ||
2796 | public void llMessageLinked(int linknum, int num, string msg, string id) | 2798 | public void llMessageLinked(int linknum, int num, string msg, string id) |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Helpers.cs b/OpenSim/Region/ScriptEngine/Shared/Helpers.cs index fdd404d..28a2173 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Helpers.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Helpers.cs | |||
@@ -30,6 +30,7 @@ using System.IO; | |||
30 | using System.Threading; | 30 | using System.Threading; |
31 | using System.Collections; | 31 | using System.Collections; |
32 | using System.Collections.Generic; | 32 | using System.Collections.Generic; |
33 | using System.Runtime.Serialization; | ||
33 | using libsecondlife; | 34 | using libsecondlife; |
34 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
35 | using OpenSim.Region.Environment; | 36 | using OpenSim.Region.Environment; |
@@ -37,6 +38,20 @@ using OpenSim.Region.Environment.Scenes; | |||
37 | 38 | ||
38 | namespace OpenSim.Region.ScriptEngine.Shared | 39 | namespace OpenSim.Region.ScriptEngine.Shared |
39 | { | 40 | { |
41 | [Serializable] | ||
42 | public class EventAbortException : Exception | ||
43 | { | ||
44 | public EventAbortException() | ||
45 | { | ||
46 | } | ||
47 | |||
48 | protected EventAbortException( | ||
49 | SerializationInfo info, | ||
50 | StreamingContext context) | ||
51 | { | ||
52 | } | ||
53 | } | ||
54 | |||
40 | public class DetectParams | 55 | public class DetectParams |
41 | { | 56 | { |
42 | public DetectParams() | 57 | public DetectParams() |