aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2009-04-12 02:42:05 +0000
committerMelanie Thielker2009-04-12 02:42:05 +0000
commitf6f3737fe8c2ee77d127fb26d1674590ca0ced37 (patch)
treefe572c36b559ffdfacaa0b95087221abfe572663
parentAdding a script event, changed(CHANGED_ANIMATION) (diff)
downloadopensim-SC-f6f3737fe8c2ee77d127fb26d1674590ca0ced37.zip
opensim-SC-f6f3737fe8c2ee77d127fb26d1674590ca0ced37.tar.gz
opensim-SC-f6f3737fe8c2ee77d127fb26d1674590ca0ced37.tar.bz2
opensim-SC-f6f3737fe8c2ee77d127fb26d1674590ca0ced37.tar.xz
Fix a regression where animations would only be sent if the avatar has
attachments. Convert base types to LSL types for event marshalling through IScriptModule to avoid parameter errors.
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs38
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs38
3 files changed, 73 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index d06c583..e5ddeb5 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1961,10 +1961,10 @@ namespace OpenSim.Region.Framework.Scenes
1961 { 1961 {
1962 m.PostObjectEvent(grp.RootPart.UUID, "changed", new Object[] {16384}); 1962 m.PostObjectEvent(grp.RootPart.UUID, "changed", new Object[] {16384});
1963 } 1963 }
1964 SendAnimPack();
1965 } 1964 }
1966 } 1965 }
1967 } 1966 }
1967 SendAnimPack();
1968 } 1968 }
1969 } 1969 }
1970 1970
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
index c3b52df..23acc08 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
@@ -219,7 +219,24 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
219 219
220 public bool PostScriptEvent(UUID itemID, string name, Object[] p) 220 public bool PostScriptEvent(UUID itemID, string name, Object[] p)
221 { 221 {
222 return PostScriptEvent(itemID, new EventParams(name, p, new DetectParams[0])); 222 Object[] lsl_p = new Object[p.Length];
223 for (int i = 0; i < p.Length ; i++)
224 {
225 if (p[i] is int)
226 lsl_p[i] = new LSL_Types.LSLInteger((int)p[i]);
227 else if (p[i] is string)
228 lsl_p[i] = new LSL_Types.LSLString((string)p[i]);
229 else if (p[i] is Vector3)
230 lsl_p[i] = new LSL_Types.Vector3(((Vector3)p[i]).X, ((Vector3)p[i]).Y, ((Vector3)p[i]).Z);
231 else if (p[i] is Quaternion)
232 lsl_p[i] = new LSL_Types.Quaternion(((Quaternion)p[i]).X, ((Quaternion)p[i]).Y, ((Quaternion)p[i]).Z, ((Quaternion)p[i]).W);
233 else if (p[i] is float)
234 lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]);
235 else
236 lsl_p[i] = p[i];
237 }
238
239 return PostScriptEvent(itemID, new EventParams(name, lsl_p, new DetectParams[0]));
223 } 240 }
224 241
225 public bool PostObjectEvent(UUID itemID, string name, Object[] p) 242 public bool PostObjectEvent(UUID itemID, string name, Object[] p)
@@ -228,7 +245,24 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
228 if (part == null) 245 if (part == null)
229 return false; 246 return false;
230 247
231 return PostObjectEvent(part.LocalId, new EventParams(name, p, new DetectParams[0])); 248 Object[] lsl_p = new Object[p.Length];
249 for (int i = 0; i < p.Length ; i++)
250 {
251 if (p[i] is int)
252 lsl_p[i] = new LSL_Types.LSLInteger((int)p[i]);
253 else if (p[i] is string)
254 lsl_p[i] = new LSL_Types.LSLString((string)p[i]);
255 else if (p[i] is Vector3)
256 lsl_p[i] = new LSL_Types.Vector3(((Vector3)p[i]).X, ((Vector3)p[i]).Y, ((Vector3)p[i]).Z);
257 else if (p[i] is Quaternion)
258 lsl_p[i] = new LSL_Types.Quaternion(((Quaternion)p[i]).X, ((Quaternion)p[i]).Y, ((Quaternion)p[i]).Z, ((Quaternion)p[i]).W);
259 else if (p[i] is float)
260 lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]);
261 else
262 lsl_p[i] = p[i];
263 }
264
265 return PostObjectEvent(part.LocalId, new EventParams(name, lsl_p, new DetectParams[0]));
232 } 266 }
233 267
234 public DetectParams GetDetectParams(UUID itemID, int number) 268 public DetectParams GetDetectParams(UUID itemID, int number)
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index f47e57d..5317cf1 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -935,7 +935,24 @@ namespace OpenSim.Region.ScriptEngine.XEngine
935 935
936 public bool PostScriptEvent(UUID itemID, string name, Object[] p) 936 public bool PostScriptEvent(UUID itemID, string name, Object[] p)
937 { 937 {
938 return PostScriptEvent(itemID, new EventParams(name, p, new DetectParams[0])); 938 Object[] lsl_p = new Object[p.Length];
939 for (int i = 0; i < p.Length ; i++)
940 {
941 if (p[i] is int)
942 lsl_p[i] = new LSL_Types.LSLInteger((int)p[i]);
943 else if (p[i] is string)
944 lsl_p[i] = new LSL_Types.LSLString((string)p[i]);
945 else if (p[i] is Vector3)
946 lsl_p[i] = new LSL_Types.Vector3(((Vector3)p[i]).X, ((Vector3)p[i]).Y, ((Vector3)p[i]).Z);
947 else if (p[i] is Quaternion)
948 lsl_p[i] = new LSL_Types.Quaternion(((Quaternion)p[i]).X, ((Quaternion)p[i]).Y, ((Quaternion)p[i]).Z, ((Quaternion)p[i]).W);
949 else if (p[i] is float)
950 lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]);
951 else
952 lsl_p[i] = p[i];
953 }
954
955 return PostScriptEvent(itemID, new EventParams(name, lsl_p, new DetectParams[0]));
939 } 956 }
940 957
941 public bool PostObjectEvent(UUID itemID, string name, Object[] p) 958 public bool PostObjectEvent(UUID itemID, string name, Object[] p)
@@ -944,7 +961,24 @@ namespace OpenSim.Region.ScriptEngine.XEngine
944 if (part == null) 961 if (part == null)
945 return false; 962 return false;
946 963
947 return PostObjectEvent(part.LocalId, new EventParams(name, p, new DetectParams[0])); 964 Object[] lsl_p = new Object[p.Length];
965 for (int i = 0; i < p.Length ; i++)
966 {
967 if (p[i] is int)
968 lsl_p[i] = new LSL_Types.LSLInteger((int)p[i]);
969 else if (p[i] is string)
970 lsl_p[i] = new LSL_Types.LSLString((string)p[i]);
971 else if (p[i] is Vector3)
972 lsl_p[i] = new LSL_Types.Vector3(((Vector3)p[i]).X, ((Vector3)p[i]).Y, ((Vector3)p[i]).Z);
973 else if (p[i] is Quaternion)
974 lsl_p[i] = new LSL_Types.Quaternion(((Quaternion)p[i]).X, ((Quaternion)p[i]).Y, ((Quaternion)p[i]).Z, ((Quaternion)p[i]).W);
975 else if (p[i] is float)
976 lsl_p[i] = new LSL_Types.LSLFloat((float)p[i]);
977 else
978 lsl_p[i] = p[i];
979 }
980
981 return PostObjectEvent(part.LocalId, new EventParams(name, lsl_p, new DetectParams[0]));
948 } 982 }
949 983
950 public Assembly OnAssemblyResolve(object sender, 984 public Assembly OnAssemblyResolve(object sender,