aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs1810
1 files changed, 1437 insertions, 373 deletions
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
index b94cf90..737dee6 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
@@ -26,19 +26,18 @@
26* 26*
27*/ 27*/
28 28
29using Axiom.Math;
30using System; 29using System;
31using System.Collections.Generic; 30using System.Collections.Generic;
31using System.Runtime.Remoting.Lifetime;
32using System.Text; 32using System.Text;
33using System.Threading;
34using Axiom.Math;
33using libsecondlife; 35using libsecondlife;
34using OpenSim.Region.Environment.Scenes; 36using OpenSim.Framework;
35using OpenSim.Region.Environment.Scenes.Scripting;
36using OpenSim.Region.Environment.Interfaces; 37using OpenSim.Region.Environment.Interfaces;
37using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler; 38using OpenSim.Region.Environment.Scenes;
38using OpenSim.Region.ScriptEngine.Common; 39using OpenSim.Region.ScriptEngine.Common;
39using OpenSim.Framework.Console; 40using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL;
40using OpenSim.Framework;
41using System.Runtime.Remoting.Lifetime;
42 41
43namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler 42namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
44{ 43{
@@ -53,8 +52,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
53 /// </summary> 52 /// </summary>
54 public class LSL_BuiltIn_Commands : MarshalByRefObject, LSL_BuiltIn_Commands_Interface 53 public class LSL_BuiltIn_Commands : MarshalByRefObject, LSL_BuiltIn_Commands_Interface
55 { 54 {
56 55 private ASCIIEncoding enc = new ASCIIEncoding();
57 private System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
58 private ScriptEngine m_ScriptEngine; 56 private ScriptEngine m_ScriptEngine;
59 private SceneObjectPart m_host; 57 private SceneObjectPart m_host;
60 private uint m_localID; 58 private uint m_localID;
@@ -86,7 +84,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
86 { 84 {
87 //Console.WriteLine("LSL_BuiltIn_Commands: InitializeLifetimeService()"); 85 //Console.WriteLine("LSL_BuiltIn_Commands: InitializeLifetimeService()");
88 // return null; 86 // return null;
89 ILease lease = (ILease)base.InitializeLifetimeService(); 87 ILease lease = (ILease) base.InitializeLifetimeService();
90 88
91 if (lease.CurrentState == LeaseState.Initial) 89 if (lease.CurrentState == LeaseState.Initial)
92 { 90 {
@@ -105,79 +103,130 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
105 103
106 //These are the implementations of the various ll-functions used by the LSL scripts. 104 //These are the implementations of the various ll-functions used by the LSL scripts.
107 //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07 105 //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07
108 public double llSin(double f) { return (double)Math.Sin(f); } 106 public double llSin(double f)
109 public double llCos(double f) { return (double)Math.Cos(f); } 107 {
110 public double llTan(double f) { return (double)Math.Tan(f); } 108 return (double) Math.Sin(f);
111 public double llAtan2(double x, double y) { return (double)Math.Atan2(y, x); } 109 }
112 public double llSqrt(double f) { return (double)Math.Sqrt(f); } 110
113 public double llPow(double fbase, double fexponent) { return (double)Math.Pow(fbase, fexponent); } 111 public double llCos(double f)
114 public int llAbs(int i) { return (int)Math.Abs(i); } 112 {
115 public double llFabs(double f) { return (double)Math.Abs(f); } 113 return (double) Math.Cos(f);
114 }
115
116 public double llTan(double f)
117 {
118 return (double) Math.Tan(f);
119 }
120
121 public double llAtan2(double x, double y)
122 {
123 return (double) Math.Atan2(y, x);
124 }
125
126 public double llSqrt(double f)
127 {
128 return (double) Math.Sqrt(f);
129 }
130
131 public double llPow(double fbase, double fexponent)
132 {
133 return (double) Math.Pow(fbase, fexponent);
134 }
135
136 public int llAbs(int i)
137 {
138 return (int) Math.Abs(i);
139 }
140
141 public double llFabs(double f)
142 {
143 return (double) Math.Abs(f);
144 }
116 145
117 public double llFrand(double mag) 146 public double llFrand(double mag)
118 { 147 {
119 lock (Util.RandomClass) 148 lock (Util.RandomClass)
120 { 149 {
121 return Util.RandomClass.Next((int)mag); 150 return Util.RandomClass.Next((int) mag);
122 } 151 }
123 } 152 }
124 153
125 public int llFloor(double f) { return (int)Math.Floor(f); } 154 public int llFloor(double f)
126 public int llCeil(double f) { return (int)Math.Ceiling(f); } 155 {
127 public int llRound(double f) { return (int)Math.Round(f, 3); } 156 return (int) Math.Floor(f);
157 }
158
159 public int llCeil(double f)
160 {
161 return (int) Math.Ceiling(f);
162 }
163
164 public int llRound(double f)
165 {
166 return (int) Math.Round(f, 3);
167 }
128 168
129 //This next group are vector operations involving squaring and square root. ckrinke 169 //This next group are vector operations involving squaring and square root. ckrinke
130 public double llVecMag(LSL_Types.Vector3 v) 170 public double llVecMag(LSL_Types.Vector3 v)
131 { 171 {
132 return (v.X * v.X + v.Y * v.Y + v.Z * v.Z); 172 return (v.X*v.X + v.Y*v.Y + v.Z*v.Z);
133 } 173 }
134 174
135 public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v) 175 public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v)
136 { 176 {
137 double mag = v.X * v.X + v.Y * v.Y + v.Z * v.Z; 177 double mag = v.X*v.X + v.Y*v.Y + v.Z*v.Z;
138 LSL_Types.Vector3 nor = new LSL_Types.Vector3(); 178 LSL_Types.Vector3 nor = new LSL_Types.Vector3();
139 nor.X = v.X / mag; nor.Y = v.Y / mag; nor.Z = v.Z / mag; 179 nor.X = v.X/mag;
180 nor.Y = v.Y/mag;
181 nor.Z = v.Z/mag;
140 return nor; 182 return nor;
141 } 183 }
142 184
143 public double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b) 185 public double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b)
144 { 186 {
145 double dx = a.X - b.X; double dy = a.Y - b.Y; double dz = a.Z - b.Z; 187 double dx = a.X - b.X;
146 return Math.Sqrt(dx * dx + dy * dy + dz * dz); 188 double dy = a.Y - b.Y;
189 double dz = a.Z - b.Z;
190 return Math.Sqrt(dx*dx + dy*dy + dz*dz);
147 } 191 }
148 192
149 //Now we start getting into quaternions which means sin/cos, matrices and vectors. ckrinke 193 //Now we start getting into quaternions which means sin/cos, matrices and vectors. ckrinke
150 public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) 194 public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r)
151 { 195 {
152 //This implementation is from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions. ckrinke 196 //This implementation is from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions. ckrinke
153 LSL_Types.Quaternion t = new LSL_Types.Quaternion(r.X * r.X, r.Y * r.Y, r.Z * r.Z, r.R * r.R); 197 LSL_Types.Quaternion t = new LSL_Types.Quaternion(r.X*r.X, r.Y*r.Y, r.Z*r.Z, r.R*r.R);
154 double m = (t.X + t.Y + t.Z + t.R); 198 double m = (t.X + t.Y + t.Z + t.R);
155 if (m == 0) return new LSL_Types.Vector3(); 199 if (m == 0) return new LSL_Types.Vector3();
156 double n = 2 * (r.Y * r.R + r.X * r.Z); 200 double n = 2*(r.Y*r.R + r.X*r.Z);
157 double p = m * m - n * n; 201 double p = m*m - n*n;
158 if (p > 0) 202 if (p > 0)
159 return new LSL_Types.Vector3(Math.Atan2(2.0 * (r.X * r.R - r.Y * r.Z), (-t.X - t.Y + t.Z + t.R)), 203 return new LSL_Types.Vector3(Math.Atan2(2.0*(r.X*r.R - r.Y*r.Z), (-t.X - t.Y + t.Z + t.R)),
160 Math.Atan2(n, Math.Sqrt(p)), Math.Atan2(2.0 * (r.Z * r.R - r.X * r.Y), (t.X - t.Y - t.Z + t.R))); 204 Math.Atan2(n, Math.Sqrt(p)),
205 Math.Atan2(2.0*(r.Z*r.R - r.X*r.Y), (t.X - t.Y - t.Z + t.R)));
161 else if (n > 0) 206 else if (n > 0)
162 return new LSL_Types.Vector3(0.0, Math.PI / 2, Math.Atan2((r.Z * r.R + r.X * r.Y), 0.5 - t.X - t.Z)); 207 return new LSL_Types.Vector3(0.0, Math.PI/2, Math.Atan2((r.Z*r.R + r.X*r.Y), 0.5 - t.X - t.Z));
163 else 208 else
164 return new LSL_Types.Vector3(0.0, -Math.PI / 2, Math.Atan2((r.Z * r.R + r.X * r.Y), 0.5 - t.X - t.Z)); 209 return new LSL_Types.Vector3(0.0, -Math.PI/2, Math.Atan2((r.Z*r.R + r.X*r.Y), 0.5 - t.X - t.Z));
165 } 210 }
166 211
167 public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) 212 public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v)
168 { 213 {
169 //this comes from from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions but is incomplete as of 8/19/07 214 //this comes from from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions but is incomplete as of 8/19/07
170 float err = 0.00001f; 215 float err = 0.00001f;
171 double ax = Math.Sin(v.X / 2); double aw = Math.Cos(v.X / 2); 216 double ax = Math.Sin(v.X/2);
172 double by = Math.Sin(v.Y / 2); double bw = Math.Cos(v.Y / 2); 217 double aw = Math.Cos(v.X/2);
173 double cz = Math.Sin(v.Z / 2); double cw = Math.Cos(v.Z / 2); 218 double by = Math.Sin(v.Y/2);
219 double bw = Math.Cos(v.Y/2);
220 double cz = Math.Sin(v.Z/2);
221 double cw = Math.Cos(v.Z/2);
174 LSL_Types.Quaternion a1 = new LSL_Types.Quaternion(0.0, 0.0, cz, cw); 222 LSL_Types.Quaternion a1 = new LSL_Types.Quaternion(0.0, 0.0, cz, cw);
175 LSL_Types.Quaternion a2 = new LSL_Types.Quaternion(0.0, by, 0.0, bw); 223 LSL_Types.Quaternion a2 = new LSL_Types.Quaternion(0.0, by, 0.0, bw);
176 LSL_Types.Quaternion a3 = new LSL_Types.Quaternion(ax, 0.0, 0.0, aw); 224 LSL_Types.Quaternion a3 = new LSL_Types.Quaternion(ax, 0.0, 0.0, aw);
177 LSL_Types.Quaternion a = new LSL_Types.Quaternion(); 225 LSL_Types.Quaternion a = new LSL_Types.Quaternion();
178 //This multiplication doesnt compile, yet. a = a1 * a2 * a3; 226 //This multiplication doesnt compile, yet. a = a1 * a2 * a3;
179 LSL_Types.Quaternion b = new LSL_Types.Quaternion(ax * bw * cw + aw * by * cz, 227 LSL_Types.Quaternion b = new LSL_Types.Quaternion(ax*bw*cw + aw*by*cz,
180 aw * by * cw - ax * bw * cz, aw * bw * cz + ax * by * cw, aw * bw * cw - ax * by * cz); 228 aw*by*cw - ax*bw*cz, aw*bw*cz + ax*by*cw,
229 aw*bw*cw - ax*by*cz);
181 LSL_Types.Quaternion c = new LSL_Types.Quaternion(); 230 LSL_Types.Quaternion c = new LSL_Types.Quaternion();
182 //This addition doesnt compile yet c = a + b; 231 //This addition doesnt compile yet c = a + b;
183 LSL_Types.Quaternion d = new LSL_Types.Quaternion(); 232 LSL_Types.Quaternion d = new LSL_Types.Quaternion();
@@ -194,11 +243,30 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
194 return new LSL_Types.Quaternion(); 243 return new LSL_Types.Quaternion();
195 } 244 }
196 245
197 public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) { return new LSL_Types.Quaternion(); } 246 public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up)
198 public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); } 247 {
199 public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); } 248 return new LSL_Types.Quaternion();
200 public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r) { return new LSL_Types.Vector3(); } 249 }
201 public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end) { return new LSL_Types.Quaternion(); } 250
251 public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r)
252 {
253 return new LSL_Types.Vector3();
254 }
255
256 public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r)
257 {
258 return new LSL_Types.Vector3();
259 }
260
261 public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r)
262 {
263 return new LSL_Types.Vector3();
264 }
265
266 public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end)
267 {
268 return new LSL_Types.Quaternion();
269 }
202 270
203 public void llWhisper(int channelID, string text) 271 public void llWhisper(int channelID, string text)
204 { 272 {
@@ -214,7 +282,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
214 { 282 {
215 //type for say is 1 283 //type for say is 1
216 World.SimChat(Helpers.StringToField(text), 284 World.SimChat(Helpers.StringToField(text),
217 1, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID); 285 1, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID);
218 286
219 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); 287 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
220 wComm.DeliverMessage(m_host.UUID.ToString(), 1, channelID, m_host.Name, text); 288 wComm.DeliverMessage(m_host.UUID.ToString(), 1, channelID, m_host.Name, text);
@@ -230,82 +298,217 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
230 wComm.DeliverMessage(m_host.UUID.ToString(), 2, channelID, m_host.Name, text); 298 wComm.DeliverMessage(m_host.UUID.ToString(), 2, channelID, m_host.Name, text);
231 } 299 }
232 300
233 public int llListen(int channelID, string name, string ID, string msg) { 301 public int llListen(int channelID, string name, string ID, string msg)
234 302 {
235 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); 303 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
236 return wComm.Listen(m_localID, m_itemID, m_host.UUID, channelID, name, ID, msg); 304 return wComm.Listen(m_localID, m_itemID, m_host.UUID, channelID, name, ID, msg);
237
238 } 305 }
239 306
240 public void llListenControl(int number, int active) { 307 public void llListenControl(int number, int active)
241 308 {
242 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); 309 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
243 wComm.ListenControl(number, active); 310 wComm.ListenControl(number, active);
244
245 } 311 }
246 312
247 public void llListenRemove(int number) { 313 public void llListenRemove(int number)
248 314 {
249 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); 315 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
250 wComm.ListenRemove(number); 316 wComm.ListenRemove(number);
251 317 }
252 } 318
253 319 public void llSensor(string name, string id, int type, double range, double arc)
254 public void llSensor(string name, string id, int type, double range, double arc) { NotImplemented("llSensor"); return; } 320 {
255 public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate) { NotImplemented("llSensorRepeat"); return; } 321 NotImplemented("llSensor");
256 public void llSensorRemove() { NotImplemented("llSensorRemove"); return; } 322 return;
257 public string llDetectedName(int number) { NotImplemented("llDetectedName"); return ""; } 323 }
258 public string llDetectedKey(int number) { NotImplemented("llDetectedKey"); return ""; } 324
259 public string llDetectedOwner(int number) { NotImplemented("llDetectedOwner"); return ""; } 325 public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate)
260 public int llDetectedType(int number) { NotImplemented("llDetectedType"); return 0; } 326 {
261 public LSL_Types.Vector3 llDetectedPos(int number) { NotImplemented("llDetectedPos"); return new LSL_Types.Vector3(); } 327 NotImplemented("llSensorRepeat");
262 public LSL_Types.Vector3 llDetectedVel(int number) { NotImplemented("llDetectedVel"); return new LSL_Types.Vector3(); } 328 return;
263 public LSL_Types.Vector3 llDetectedGrab(int number) { NotImplemented("llDetectedGrab"); return new LSL_Types.Vector3(); } 329 }
264 public LSL_Types.Quaternion llDetectedRot(int number) { NotImplemented("llDetectedRot"); return new LSL_Types.Quaternion(); } 330
265 public int llDetectedGroup(int number) { NotImplemented("llDetectedGroup"); return 0; } 331 public void llSensorRemove()
266 public int llDetectedLinkNumber(int number) { NotImplemented("llDetectedLinkNumber"); return 0; } 332 {
267 public void llDie() { NotImplemented("llDie"); return; } 333 NotImplemented("llSensorRemove");
268 public double llGround(LSL_Types.Vector3 offset) { NotImplemented("llGround"); return 0; } 334 return;
269 public double llCloud(LSL_Types.Vector3 offset) { NotImplemented("llCloud"); return 0; } 335 }
270 public LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset) { NotImplemented("llWind"); return new LSL_Types.Vector3(); } 336
271 public void llSetStatus(int status, int value) { NotImplemented("llSetStatus"); return; } 337 public string llDetectedName(int number)
272 public int llGetStatus(int status) { NotImplemented("llGetStatus"); return 0; } 338 {
339 NotImplemented("llDetectedName");
340 return "";
341 }
342
343 public string llDetectedKey(int number)
344 {
345 NotImplemented("llDetectedKey");
346 return "";
347 }
348
349 public string llDetectedOwner(int number)
350 {
351 NotImplemented("llDetectedOwner");
352 return "";
353 }
354
355 public int llDetectedType(int number)
356 {
357 NotImplemented("llDetectedType");
358 return 0;
359 }
360
361 public LSL_Types.Vector3 llDetectedPos(int number)
362 {
363 NotImplemented("llDetectedPos");
364 return new LSL_Types.Vector3();
365 }
366
367 public LSL_Types.Vector3 llDetectedVel(int number)
368 {
369 NotImplemented("llDetectedVel");
370 return new LSL_Types.Vector3();
371 }
372
373 public LSL_Types.Vector3 llDetectedGrab(int number)
374 {
375 NotImplemented("llDetectedGrab");
376 return new LSL_Types.Vector3();
377 }
378
379 public LSL_Types.Quaternion llDetectedRot(int number)
380 {
381 NotImplemented("llDetectedRot");
382 return new LSL_Types.Quaternion();
383 }
384
385 public int llDetectedGroup(int number)
386 {
387 NotImplemented("llDetectedGroup");
388 return 0;
389 }
390
391 public int llDetectedLinkNumber(int number)
392 {
393 NotImplemented("llDetectedLinkNumber");
394 return 0;
395 }
396
397 public void llDie()
398 {
399 NotImplemented("llDie");
400 return;
401 }
402
403 public double llGround(LSL_Types.Vector3 offset)
404 {
405 NotImplemented("llGround");
406 return 0;
407 }
408
409 public double llCloud(LSL_Types.Vector3 offset)
410 {
411 NotImplemented("llCloud");
412 return 0;
413 }
414
415 public LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset)
416 {
417 NotImplemented("llWind");
418 return new LSL_Types.Vector3();
419 }
420
421 public void llSetStatus(int status, int value)
422 {
423 NotImplemented("llSetStatus");
424 return;
425 }
426
427 public int llGetStatus(int status)
428 {
429 NotImplemented("llGetStatus");
430 return 0;
431 }
273 432
274 public void llSetScale(LSL_Types.Vector3 scale) 433 public void llSetScale(LSL_Types.Vector3 scale)
275 { 434 {
276 // TODO: this needs to trigger a persistance save as well 435 // TODO: this needs to trigger a persistance save as well
277 LLVector3 tmp = m_host.Scale; 436 LLVector3 tmp = m_host.Scale;
278 tmp.X = (float)scale.X; 437 tmp.X = (float) scale.X;
279 tmp.Y = (float)scale.Y; 438 tmp.Y = (float) scale.Y;
280 tmp.Z = (float)scale.Z; 439 tmp.Z = (float) scale.Z;
281 m_host.Scale = tmp; 440 m_host.Scale = tmp;
282 return; 441 return;
283 } 442 }
443
284 public LSL_Types.Vector3 llGetScale() 444 public LSL_Types.Vector3 llGetScale()
285 { 445 {
286 return new LSL_Types.Vector3(m_host.Scale.X, m_host.Scale.Y, m_host.Scale.Z); 446 return new LSL_Types.Vector3(m_host.Scale.X, m_host.Scale.Y, m_host.Scale.Z);
287 } 447 }
288 448
289 public void llSetColor(LSL_Types.Vector3 color, int face) { NotImplemented("llSetColor"); return; } 449 public void llSetColor(LSL_Types.Vector3 color, int face)
290 public double llGetAlpha(int face) { NotImplemented("llGetAlpha"); return 0; } 450 {
291 public void llSetAlpha(double alpha, int face) { NotImplemented("llSetAlpha"); return; } 451 NotImplemented("llSetColor");
292 public LSL_Types.Vector3 llGetColor(int face) { NotImplemented("llGetColor"); return new LSL_Types.Vector3(); } 452 return;
293 public void llSetTexture(string texture, int face) { NotImplemented("llSetTexture"); return; } 453 }
294 public void llScaleTexture(double u, double v, int face) { NotImplemented("llScaleTexture"); return; } 454
295 public void llOffsetTexture(double u, double v, int face) { NotImplemented("llOffsetTexture"); return; } 455 public double llGetAlpha(int face)
296 public void llRotateTexture(double rotation, int face) { NotImplemented("llRotateTexture"); return; } 456 {
457 NotImplemented("llGetAlpha");
458 return 0;
459 }
460
461 public void llSetAlpha(double alpha, int face)
462 {
463 NotImplemented("llSetAlpha");
464 return;
465 }
466
467 public LSL_Types.Vector3 llGetColor(int face)
468 {
469 NotImplemented("llGetColor");
470 return new LSL_Types.Vector3();
471 }
472
473 public void llSetTexture(string texture, int face)
474 {
475 NotImplemented("llSetTexture");
476 return;
477 }
478
479 public void llScaleTexture(double u, double v, int face)
480 {
481 NotImplemented("llScaleTexture");
482 return;
483 }
484
485 public void llOffsetTexture(double u, double v, int face)
486 {
487 NotImplemented("llOffsetTexture");
488 return;
489 }
297 490
298 public string llGetTexture(int face) { NotImplemented("llGetTexture"); return ""; } 491 public void llRotateTexture(double rotation, int face)
492 {
493 NotImplemented("llRotateTexture");
494 return;
495 }
496
497 public string llGetTexture(int face)
498 {
499 NotImplemented("llGetTexture");
500 return "";
501 }
299 502
300 public void llSetPos(LSL_Types.Vector3 pos) 503 public void llSetPos(LSL_Types.Vector3 pos)
301 { 504 {
302 if (m_host.ParentID != 0) 505 if (m_host.ParentID != 0)
303 { 506 {
304 m_host.UpdateOffSet(new LLVector3((float)pos.X, (float)pos.Y, (float)pos.Z)); 507 m_host.UpdateOffSet(new LLVector3((float) pos.X, (float) pos.Y, (float) pos.Z));
305 } 508 }
306 else 509 else
307 { 510 {
308 m_host.UpdateGroupPosition(new LLVector3((float)pos.X, (float)pos.Y, (float)pos.Z)); 511 m_host.UpdateGroupPosition(new LLVector3((float) pos.X, (float) pos.Y, (float) pos.Z));
309 } 512 }
310 } 513 }
311 514
@@ -331,51 +534,183 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
331 m_host.AbsolutePosition.Z); 534 m_host.AbsolutePosition.Z);
332 } 535 }
333 } 536 }
537
334 public void llSetRot(LSL_Types.Quaternion rot) 538 public void llSetRot(LSL_Types.Quaternion rot)
335 { 539 {
336 m_host.UpdateRotation(new LLQuaternion((float)rot.X, (float)rot.Y, (float)rot.Z, (float)rot.R)); 540 m_host.UpdateRotation(new LLQuaternion((float) rot.X, (float) rot.Y, (float) rot.Z, (float) rot.R));
337 } 541 }
542
338 public LSL_Types.Quaternion llGetRot() 543 public LSL_Types.Quaternion llGetRot()
339 { 544 {
340 LLQuaternion q = m_host.RotationOffset; 545 LLQuaternion q = m_host.RotationOffset;
341 return new LSL_Types.Quaternion(q.X, q.Y, q.Z, q.W); 546 return new LSL_Types.Quaternion(q.X, q.Y, q.Z, q.W);
342 } 547 }
343 public LSL_Types.Quaternion llGetLocalRot() { NotImplemented("llGetLocalRot"); return new LSL_Types.Quaternion(); } 548
344 public void llSetForce(LSL_Types.Vector3 force, int local) { NotImplemented("llSetForce"); } 549 public LSL_Types.Quaternion llGetLocalRot()
345 public LSL_Types.Vector3 llGetForce() { NotImplemented("llGetForce"); return new LSL_Types.Vector3(); } 550 {
346 public int llTarget(LSL_Types.Vector3 position, double range) { NotImplemented("llTarget"); return 0; } 551 NotImplemented("llGetLocalRot");
347 public void llTargetRemove(int number) { NotImplemented("llTargetRemove"); } 552 return new LSL_Types.Quaternion();
348 public int llRotTarget(LSL_Types.Quaternion rot, double error) { NotImplemented("llRotTarget"); return 0; } 553 }
349 public void llRotTargetRemove(int number) { NotImplemented("llRotTargetRemove"); } 554
350 public void llMoveToTarget(LSL_Types.Vector3 target, double tau) { NotImplemented("llMoveToTarget"); } 555 public void llSetForce(LSL_Types.Vector3 force, int local)
351 public void llStopMoveToTarget() { NotImplemented("llStopMoveToTarget"); } 556 {
352 public void llApplyImpulse(LSL_Types.Vector3 force, int local) { NotImplemented("llApplyImpulse"); } 557 NotImplemented("llSetForce");
353 public void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local) { NotImplemented("llApplyRotationalImpulse"); } 558 }
354 public void llSetTorque(LSL_Types.Vector3 torque, int local) { NotImplemented("llSetTorque"); } 559
355 public LSL_Types.Vector3 llGetTorque() { NotImplemented("llGetTorque"); return new LSL_Types.Vector3(); } 560 public LSL_Types.Vector3 llGetForce()
356 public void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local) { NotImplemented("llSetForceAndTorque"); } 561 {
357 public LSL_Types.Vector3 llGetVel() { NotImplemented("llGetVel"); return new LSL_Types.Vector3(); } 562 NotImplemented("llGetForce");
358 public LSL_Types.Vector3 llGetAccel() { NotImplemented("llGetAccel"); return new LSL_Types.Vector3(); } 563 return new LSL_Types.Vector3();
359 public LSL_Types.Vector3 llGetOmega() { NotImplemented("llGetOmega"); return new LSL_Types.Vector3(); } 564 }
360 public double llGetTimeOfDay() { NotImplemented("llGetTimeOfDay"); return 0; } 565
566 public int llTarget(LSL_Types.Vector3 position, double range)
567 {
568 NotImplemented("llTarget");
569 return 0;
570 }
571
572 public void llTargetRemove(int number)
573 {
574 NotImplemented("llTargetRemove");
575 }
576
577 public int llRotTarget(LSL_Types.Quaternion rot, double error)
578 {
579 NotImplemented("llRotTarget");
580 return 0;
581 }
582
583 public void llRotTargetRemove(int number)
584 {
585 NotImplemented("llRotTargetRemove");
586 }
587
588 public void llMoveToTarget(LSL_Types.Vector3 target, double tau)
589 {
590 NotImplemented("llMoveToTarget");
591 }
592
593 public void llStopMoveToTarget()
594 {
595 NotImplemented("llStopMoveToTarget");
596 }
597
598 public void llApplyImpulse(LSL_Types.Vector3 force, int local)
599 {
600 NotImplemented("llApplyImpulse");
601 }
602
603 public void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local)
604 {
605 NotImplemented("llApplyRotationalImpulse");
606 }
607
608 public void llSetTorque(LSL_Types.Vector3 torque, int local)
609 {
610 NotImplemented("llSetTorque");
611 }
612
613 public LSL_Types.Vector3 llGetTorque()
614 {
615 NotImplemented("llGetTorque");
616 return new LSL_Types.Vector3();
617 }
618
619 public void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local)
620 {
621 NotImplemented("llSetForceAndTorque");
622 }
623
624 public LSL_Types.Vector3 llGetVel()
625 {
626 NotImplemented("llGetVel");
627 return new LSL_Types.Vector3();
628 }
629
630 public LSL_Types.Vector3 llGetAccel()
631 {
632 NotImplemented("llGetAccel");
633 return new LSL_Types.Vector3();
634 }
635
636 public LSL_Types.Vector3 llGetOmega()
637 {
638 NotImplemented("llGetOmega");
639 return new LSL_Types.Vector3();
640 }
641
642 public double llGetTimeOfDay()
643 {
644 NotImplemented("llGetTimeOfDay");
645 return 0;
646 }
361 647
362 public double llGetWallclock() 648 public double llGetWallclock()
363 { 649 {
364 return DateTime.Now.TimeOfDay.TotalSeconds; 650 return DateTime.Now.TimeOfDay.TotalSeconds;
365 } 651 }
366 652
367 public double llGetTime() { NotImplemented("llGetTime"); return 0; } 653 public double llGetTime()
368 public void llResetTime() { NotImplemented("llResetTime"); } 654 {
369 public double llGetAndResetTime() { NotImplemented("llGetAndResetTime"); return 0; } 655 NotImplemented("llGetTime");
370 public void llSound() { NotImplemented("llSound"); } 656 return 0;
371 public void llPlaySound(string sound, double volume) { NotImplemented("llPlaySound"); } 657 }
372 public void llLoopSound(string sound, double volume) { NotImplemented("llLoopSound"); } 658
373 public void llLoopSoundMaster(string sound, double volume) { NotImplemented("llLoopSoundMaster"); } 659 public void llResetTime()
374 public void llLoopSoundSlave(string sound, double volume) { NotImplemented("llLoopSoundSlave"); } 660 {
375 public void llPlaySoundSlave(string sound, double volume) { NotImplemented("llPlaySoundSlave"); } 661 NotImplemented("llResetTime");
376 public void llTriggerSound(string sound, double volume) { NotImplemented("llTriggerSound"); } 662 }
377 public void llStopSound() { NotImplemented("llStopSound"); } 663
378 public void llPreloadSound(string sound) { NotImplemented("llPreloadSound"); } 664 public double llGetAndResetTime()
665 {
666 NotImplemented("llGetAndResetTime");
667 return 0;
668 }
669
670 public void llSound()
671 {
672 NotImplemented("llSound");
673 }
674
675 public void llPlaySound(string sound, double volume)
676 {
677 NotImplemented("llPlaySound");
678 }
679
680 public void llLoopSound(string sound, double volume)
681 {
682 NotImplemented("llLoopSound");
683 }
684
685 public void llLoopSoundMaster(string sound, double volume)
686 {
687 NotImplemented("llLoopSoundMaster");
688 }
689
690 public void llLoopSoundSlave(string sound, double volume)
691 {
692 NotImplemented("llLoopSoundSlave");
693 }
694
695 public void llPlaySoundSlave(string sound, double volume)
696 {
697 NotImplemented("llPlaySoundSlave");
698 }
699
700 public void llTriggerSound(string sound, double volume)
701 {
702 NotImplemented("llTriggerSound");
703 }
704
705 public void llStopSound()
706 {
707 NotImplemented("llStopSound");
708 }
709
710 public void llPreloadSound(string sound)
711 {
712 NotImplemented("llPreloadSound");
713 }
379 714
380 public string llGetSubString(string src, int start, int end) 715 public string llGetSubString(string src, int start, int end)
381 { 716 {
@@ -386,10 +721,12 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
386 { 721 {
387 return src.Remove(start, end - start); 722 return src.Remove(start, end - start);
388 } 723 }
724
389 public string llInsertString(string dst, int position, string src) 725 public string llInsertString(string dst, int position, string src)
390 { 726 {
391 return dst.Insert(position, src); 727 return dst.Insert(position, src);
392 } 728 }
729
393 public string llToUpper(string src) 730 public string llToUpper(string src)
394 { 731 {
395 return src.ToUpper(); 732 return src.ToUpper();
@@ -400,14 +737,46 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
400 return src.ToLower(); 737 return src.ToLower();
401 } 738 }
402 739
403 public int llGiveMoney(string destination, int amount) { NotImplemented("llGiveMoney"); return 0; } 740 public int llGiveMoney(string destination, int amount)
404 public void llMakeExplosion() { NotImplemented("llMakeExplosion"); } 741 {
405 public void llMakeFountain() { NotImplemented("llMakeFountain"); } 742 NotImplemented("llGiveMoney");
406 public void llMakeSmoke() { NotImplemented("llMakeSmoke"); } 743 return 0;
407 public void llMakeFire() { NotImplemented("llMakeFire"); } 744 }
408 public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Quaternion rot, int param) { NotImplemented("llRezObject"); } 745
409 public void llLookAt(LSL_Types.Vector3 target, double strength, double damping) { NotImplemented("llLookAt"); } 746 public void llMakeExplosion()
410 public void llStopLookAt() { NotImplemented("llStopLookAt"); } 747 {
748 NotImplemented("llMakeExplosion");
749 }
750
751 public void llMakeFountain()
752 {
753 NotImplemented("llMakeFountain");
754 }
755
756 public void llMakeSmoke()
757 {
758 NotImplemented("llMakeSmoke");
759 }
760
761 public void llMakeFire()
762 {
763 NotImplemented("llMakeFire");
764 }
765
766 public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Quaternion rot, int param)
767 {
768 NotImplemented("llRezObject");
769 }
770
771 public void llLookAt(LSL_Types.Vector3 target, double strength, double damping)
772 {
773 NotImplemented("llLookAt");
774 }
775
776 public void llStopLookAt()
777 {
778 NotImplemented("llStopLookAt");
779 }
411 780
412 public void llSetTimerEvent(double sec) 781 public void llSetTimerEvent(double sec)
413 { 782 {
@@ -417,38 +786,104 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
417 786
418 public void llSleep(double sec) 787 public void llSleep(double sec)
419 { 788 {
420 System.Threading.Thread.Sleep((int)(sec * 1000)); 789 Thread.Sleep((int) (sec*1000));
790 }
791
792 public double llGetMass()
793 {
794 NotImplemented("llGetMass");
795 return 0;
796 }
797
798 public void llCollisionFilter(string name, string id, int accept)
799 {
800 NotImplemented("llCollisionFilter");
801 }
802
803 public void llTakeControls(int controls, int accept, int pass_on)
804 {
805 NotImplemented("llTakeControls");
806 }
807
808 public void llReleaseControls()
809 {
810 NotImplemented("llReleaseControls");
811 }
812
813 public void llAttachToAvatar(int attachment)
814 {
815 NotImplemented("llAttachToAvatar");
816 }
817
818 public void llDetachFromAvatar()
819 {
820 NotImplemented("llDetachFromAvatar");
821 }
822
823 public void llTakeCamera()
824 {
825 NotImplemented("llTakeCamera");
421 } 826 }
422 827
423 public double llGetMass() { NotImplemented("llGetMass"); return 0; } 828 public void llReleaseCamera()
424 public void llCollisionFilter(string name, string id, int accept) { NotImplemented("llCollisionFilter"); } 829 {
425 public void llTakeControls(int controls, int accept, int pass_on) { NotImplemented("llTakeControls"); } 830 NotImplemented("llReleaseCamera");
426 public void llReleaseControls() { NotImplemented("llReleaseControls"); } 831 }
427 public void llAttachToAvatar(int attachment) { NotImplemented("llAttachToAvatar"); }
428 public void llDetachFromAvatar() { NotImplemented("llDetachFromAvatar"); }
429 public void llTakeCamera() { NotImplemented("llTakeCamera"); }
430 public void llReleaseCamera() { NotImplemented("llReleaseCamera"); }
431 832
432 public string llGetOwner() 833 public string llGetOwner()
433 { 834 {
434 return m_host.ObjectOwner.ToStringHyphenated(); 835 return m_host.ObjectOwner.ToStringHyphenated();
435 } 836 }
436 837
437 public void llInstantMessage(string user, string message) { NotImplemented("llInstantMessage"); } 838 public void llInstantMessage(string user, string message)
438 public void llEmail(string address, string subject, string message) { NotImplemented("llEmail"); } 839 {
439 public void llGetNextEmail(string address, string subject) { NotImplemented("llGetNextEmail"); } 840 NotImplemented("llInstantMessage");
841 }
842
843 public void llEmail(string address, string subject, string message)
844 {
845 NotImplemented("llEmail");
846 }
847
848 public void llGetNextEmail(string address, string subject)
849 {
850 NotImplemented("llGetNextEmail");
851 }
440 852
441 public string llGetKey() 853 public string llGetKey()
442 { 854 {
443 return m_host.UUID.ToStringHyphenated(); 855 return m_host.UUID.ToStringHyphenated();
444 } 856 }
445 857
446 public void llSetBuoyancy(double buoyancy) { NotImplemented("llSetBuoyancy"); } 858 public void llSetBuoyancy(double buoyancy)
447 public void llSetHoverHeight(double height, int water, double tau) { NotImplemented("llSetHoverHeight"); } 859 {
448 public void llStopHover() { NotImplemented("llStopHover"); } 860 NotImplemented("llSetBuoyancy");
449 public void llMinEventDelay(double delay) { NotImplemented("llMinEventDelay"); } 861 }
450 public void llSoundPreload() { NotImplemented("llSoundPreload"); } 862
451 public void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping) { NotImplemented("llRotLookAt"); } 863 public void llSetHoverHeight(double height, int water, double tau)
864 {
865 NotImplemented("llSetHoverHeight");
866 }
867
868 public void llStopHover()
869 {
870 NotImplemented("llStopHover");
871 }
872
873 public void llMinEventDelay(double delay)
874 {
875 NotImplemented("llMinEventDelay");
876 }
877
878 public void llSoundPreload()
879 {
880 NotImplemented("llSoundPreload");
881 }
882
883 public void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping)
884 {
885 NotImplemented("llRotLookAt");
886 }
452 887
453 public int llStringLength(string str) 888 public int llStringLength(string str)
454 { 889 {
@@ -462,88 +897,289 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
462 } 897 }
463 } 898 }
464 899
465 public void llStartAnimation(string anim) { NotImplemented("llStartAnimation"); } 900 public void llStartAnimation(string anim)
466 public void llStopAnimation(string anim) { NotImplemented("llStopAnimation"); } 901 {
467 public void llPointAt() { NotImplemented("llPointAt"); } 902 NotImplemented("llStartAnimation");
468 public void llStopPointAt() { NotImplemented("llStopPointAt"); } 903 }
469 public void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain) { NotImplemented("llTargetOmega"); } 904
470 public int llGetStartParameter() { NotImplemented("llGetStartParameter"); return 0; } 905 public void llStopAnimation(string anim)
471 public void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos) { NotImplemented("llGodLikeRezObject"); } 906 {
472 public void llRequestPermissions(string agent, int perm) { NotImplemented("llRequestPermissions"); } 907 NotImplemented("llStopAnimation");
473 public string llGetPermissionsKey() { NotImplemented("llGetPermissionsKey"); return ""; } 908 }
474 public int llGetPermissions() { NotImplemented("llGetPermissions"); return 0; } 909
475 public int llGetLinkNumber() { NotImplemented("llGetLinkNumber"); return 0; } 910 public void llPointAt()
476 public void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face) { NotImplemented("llSetLinkColor"); } 911 {
477 public void llCreateLink(string target, int parent) { NotImplemented("llCreateLink"); } 912 NotImplemented("llPointAt");
478 public void llBreakLink(int linknum) { NotImplemented("llBreakLink"); } 913 }
479 public void llBreakAllLinks() { NotImplemented("llBreakAllLinks"); } 914
480 public string llGetLinkKey(int linknum) { NotImplemented("llGetLinkKey"); return ""; } 915 public void llStopPointAt()
481 public void llGetLinkName(int linknum) { NotImplemented("llGetLinkName"); } 916 {
482 public int llGetInventoryNumber(int type) { NotImplemented("llGetInventoryNumber"); return 0; } 917 NotImplemented("llStopPointAt");
483 public string llGetInventoryName(int type, int number) { NotImplemented("llGetInventoryName"); return ""; } 918 }
484 public void llSetScriptState(string name, int run) { NotImplemented("llSetScriptState"); } 919
485 public double llGetEnergy() { return 1.0f; } 920 public void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain)
486 public void llGiveInventory(string destination, string inventory) { NotImplemented("llGiveInventory"); } 921 {
487 public void llRemoveInventory(string item) { NotImplemented("llRemoveInventory"); } 922 NotImplemented("llTargetOmega");
923 }
924
925 public int llGetStartParameter()
926 {
927 NotImplemented("llGetStartParameter");
928 return 0;
929 }
930
931 public void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos)
932 {
933 NotImplemented("llGodLikeRezObject");
934 }
935
936 public void llRequestPermissions(string agent, int perm)
937 {
938 NotImplemented("llRequestPermissions");
939 }
940
941 public string llGetPermissionsKey()
942 {
943 NotImplemented("llGetPermissionsKey");
944 return "";
945 }
946
947 public int llGetPermissions()
948 {
949 NotImplemented("llGetPermissions");
950 return 0;
951 }
952
953 public int llGetLinkNumber()
954 {
955 NotImplemented("llGetLinkNumber");
956 return 0;
957 }
958
959 public void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face)
960 {
961 NotImplemented("llSetLinkColor");
962 }
963
964 public void llCreateLink(string target, int parent)
965 {
966 NotImplemented("llCreateLink");
967 }
968
969 public void llBreakLink(int linknum)
970 {
971 NotImplemented("llBreakLink");
972 }
973
974 public void llBreakAllLinks()
975 {
976 NotImplemented("llBreakAllLinks");
977 }
978
979 public string llGetLinkKey(int linknum)
980 {
981 NotImplemented("llGetLinkKey");
982 return "";
983 }
984
985 public void llGetLinkName(int linknum)
986 {
987 NotImplemented("llGetLinkName");
988 }
989
990 public int llGetInventoryNumber(int type)
991 {
992 NotImplemented("llGetInventoryNumber");
993 return 0;
994 }
995
996 public string llGetInventoryName(int type, int number)
997 {
998 NotImplemented("llGetInventoryName");
999 return "";
1000 }
1001
1002 public void llSetScriptState(string name, int run)
1003 {
1004 NotImplemented("llSetScriptState");
1005 }
1006
1007 public double llGetEnergy()
1008 {
1009 return 1.0f;
1010 }
1011
1012 public void llGiveInventory(string destination, string inventory)
1013 {
1014 NotImplemented("llGiveInventory");
1015 }
1016
1017 public void llRemoveInventory(string item)
1018 {
1019 NotImplemented("llRemoveInventory");
1020 }
488 1021
489 public void llSetText(string text, LSL_Types.Vector3 color, double alpha) 1022 public void llSetText(string text, LSL_Types.Vector3 color, double alpha)
490 { 1023 {
491 Axiom.Math.Vector3 av3 = new Axiom.Math.Vector3((float)color.X, (float)color.Y, (float)color.Z); 1024 Vector3 av3 = new Vector3((float) color.X, (float) color.Y, (float) color.Z);
492 m_host.SetText(text, av3, alpha); 1025 m_host.SetText(text, av3, alpha);
493 } 1026 }
494 1027
495 1028
496 public double llWater(LSL_Types.Vector3 offset) { NotImplemented("llWater"); return 0; } 1029 public double llWater(LSL_Types.Vector3 offset)
497 public void llPassTouches(int pass) { NotImplemented("llPassTouches"); } 1030 {
498 public string llRequestAgentData(string id, int data) { NotImplemented("llRequestAgentData"); return ""; } 1031 NotImplemented("llWater");
499 public string llRequestInventoryData(string name) { NotImplemented("llRequestInventoryData"); return ""; } 1032 return 0;
500 public void llSetDamage(double damage) { NotImplemented("llSetDamage"); } 1033 }
501 public void llTeleportAgentHome(string agent) { NotImplemented("llTeleportAgentHome"); } 1034
502 public void llModifyLand(int action, int brush) { } 1035 public void llPassTouches(int pass)
503 public void llCollisionSound(string impact_sound, double impact_volume) { NotImplemented("llCollisionSound"); } 1036 {
504 public void llCollisionSprite(string impact_sprite) { NotImplemented("llCollisionSprite"); } 1037 NotImplemented("llPassTouches");
505 public string llGetAnimation(string id) { NotImplemented("llGetAnimation"); return ""; } 1038 }
506 public void llResetScript() 1039
1040 public string llRequestAgentData(string id, int data)
1041 {
1042 NotImplemented("llRequestAgentData");
1043 return "";
1044 }
1045
1046 public string llRequestInventoryData(string name)
1047 {
1048 NotImplemented("llRequestInventoryData");
1049 return "";
1050 }
1051
1052 public void llSetDamage(double damage)
1053 {
1054 NotImplemented("llSetDamage");
1055 }
1056
1057 public void llTeleportAgentHome(string agent)
1058 {
1059 NotImplemented("llTeleportAgentHome");
1060 }
1061
1062 public void llModifyLand(int action, int brush)
1063 {
1064 }
1065
1066 public void llCollisionSound(string impact_sound, double impact_volume)
1067 {
1068 NotImplemented("llCollisionSound");
1069 }
1070
1071 public void llCollisionSprite(string impact_sprite)
1072 {
1073 NotImplemented("llCollisionSprite");
1074 }
1075
1076 public string llGetAnimation(string id)
1077 {
1078 NotImplemented("llGetAnimation");
1079 return "";
1080 }
1081
1082 public void llResetScript()
507 { 1083 {
508 m_ScriptEngine.m_ScriptManager.ResetScript(m_localID, m_itemID); 1084 m_ScriptEngine.m_ScriptManager.ResetScript(m_localID, m_itemID);
509 } 1085 }
510 public void llMessageLinked(int linknum, int num, string str, string id) { }
511 public void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local) { }
512 public void llPassCollisions(int pass) { }
513 public string llGetScriptName() { return ""; }
514 1086
515 public int llGetNumberOfSides() { return 0; } 1087 public void llMessageLinked(int linknum, int num, string str, string id)
1088 {
1089 }
1090
1091 public void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local)
1092 {
1093 }
1094
1095 public void llPassCollisions(int pass)
1096 {
1097 }
1098
1099 public string llGetScriptName()
1100 {
1101 return "";
1102 }
1103
1104 public int llGetNumberOfSides()
1105 {
1106 return 0;
1107 }
1108
1109 public LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle)
1110 {
1111 return new LSL_Types.Quaternion();
1112 }
1113
1114 public LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot)
1115 {
1116 return new LSL_Types.Vector3();
1117 }
516 1118
517 public LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle) { return new LSL_Types.Quaternion(); } 1119 public void llRot2Angle()
518 public LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot) { return new LSL_Types.Vector3(); } 1120 {
519 public void llRot2Angle() { } 1121 }
520 1122
521 public double llAcos(double val) 1123 public double llAcos(double val)
522 { 1124 {
523 return (double)Math.Acos(val); 1125 return (double) Math.Acos(val);
524 } 1126 }
525 1127
526 public double llAsin(double val) 1128 public double llAsin(double val)
527 { 1129 {
528 return (double)Math.Asin(val); 1130 return (double) Math.Asin(val);
529 } 1131 }
530 1132
531 public double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b) { return 0; } 1133 public double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b)
532 public string llGetInventoryKey(string name) { return ""; } 1134 {
533 public void llAllowInventoryDrop(int add) { } 1135 return 0;
534 public LSL_Types.Vector3 llGetSunDirection() { return new LSL_Types.Vector3(); } 1136 }
535 public LSL_Types.Vector3 llGetTextureOffset(int face) { return new LSL_Types.Vector3(); } 1137
536 public LSL_Types.Vector3 llGetTextureScale(int side) { return new LSL_Types.Vector3(); } 1138 public string llGetInventoryKey(string name)
537 public double llGetTextureRot(int side) { return 0; } 1139 {
1140 return "";
1141 }
1142
1143 public void llAllowInventoryDrop(int add)
1144 {
1145 }
1146
1147 public LSL_Types.Vector3 llGetSunDirection()
1148 {
1149 return new LSL_Types.Vector3();
1150 }
1151
1152 public LSL_Types.Vector3 llGetTextureOffset(int face)
1153 {
1154 return new LSL_Types.Vector3();
1155 }
1156
1157 public LSL_Types.Vector3 llGetTextureScale(int side)
1158 {
1159 return new LSL_Types.Vector3();
1160 }
1161
1162 public double llGetTextureRot(int side)
1163 {
1164 return 0;
1165 }
538 1166
539 public int llSubStringIndex(string source, string pattern) 1167 public int llSubStringIndex(string source, string pattern)
540 { 1168 {
541 return source.IndexOf(pattern); 1169 return source.IndexOf(pattern);
542 } 1170 }
543 1171
544 public string llGetOwnerKey(string id) { NotImplemented("llGetOwnerKey"); return ""; } 1172 public string llGetOwnerKey(string id)
1173 {
1174 NotImplemented("llGetOwnerKey");
1175 return "";
1176 }
545 1177
546 public LSL_Types.Vector3 llGetCenterOfMass() { NotImplemented("llGetCenterOfMass"); return new LSL_Types.Vector3(); } 1178 public LSL_Types.Vector3 llGetCenterOfMass()
1179 {
1180 NotImplemented("llGetCenterOfMass");
1181 return new LSL_Types.Vector3();
1182 }
547 1183
548 public List<string> llListSort(List<string> src, int stride, int ascending) 1184 public List<string> llListSort(List<string> src, int stride, int ascending)
549 { 1185 {
@@ -577,7 +1213,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
577 ret.AddRange(ls); 1213 ret.AddRange(ls);
578 } 1214 }
579 1215
580 if (ascending == LSL.LSL_BaseClass.TRUE) 1216 if (ascending == LSL_BaseClass.TRUE)
581 return ret; 1217 return ret;
582 ret.Reverse(); 1218 ret.Reverse();
583 return ret; 1219 return ret;
@@ -616,12 +1252,18 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
616 1252
617 public LSL_Types.Vector3 llList2Vector(List<string> src, int index) 1253 public LSL_Types.Vector3 llList2Vector(List<string> src, int index)
618 { 1254 {
619 return new LSL_Types.Vector3(double.Parse(src[index]), double.Parse(src[index + 1]), double.Parse(src[index + 2])); 1255 return
1256 new LSL_Types.Vector3(double.Parse(src[index]), double.Parse(src[index + 1]),
1257 double.Parse(src[index + 2]));
620 } 1258 }
1259
621 public LSL_Types.Quaternion llList2Rot(List<string> src, int index) 1260 public LSL_Types.Quaternion llList2Rot(List<string> src, int index)
622 { 1261 {
623 return new LSL_Types.Quaternion(double.Parse(src[index]), double.Parse(src[index + 1]), double.Parse(src[index + 2]), double.Parse(src[index + 3])); 1262 return
1263 new LSL_Types.Quaternion(double.Parse(src[index]), double.Parse(src[index + 1]),
1264 double.Parse(src[index + 2]), double.Parse(src[index + 3]));
624 } 1265 }
1266
625 public List<string> llList2List(List<string> src, int start, int end) 1267 public List<string> llList2List(List<string> src, int start, int end)
626 { 1268 {
627 if (end > start) 1269 if (end > start)
@@ -638,18 +1280,21 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
638 ret.AddRange(src.GetRange(0, end)); 1280 ret.AddRange(src.GetRange(0, end));
639 return ret; 1281 return ret;
640 } 1282 }
641
642
643
644
645 } 1283 }
1284
646 public List<string> llDeleteSubList(List<string> src, int start, int end) 1285 public List<string> llDeleteSubList(List<string> src, int start, int end)
647 { 1286 {
648 List<string> ret = new List<string>(src); 1287 List<string> ret = new List<string>(src);
649 ret.RemoveRange(start, end - start); 1288 ret.RemoveRange(start, end - start);
650 return ret; 1289 return ret;
651 } 1290 }
652 public int llGetListEntryType(List<string> src, int index) { NotImplemented("llGetListEntryType"); return 0; } 1291
1292 public int llGetListEntryType(List<string> src, int index)
1293 {
1294 NotImplemented("llGetListEntryType");
1295 return 0;
1296 }
1297
653 public string llList2CSV(List<string> src) 1298 public string llList2CSV(List<string> src)
654 { 1299 {
655 string ret = ""; 1300 string ret = "";
@@ -661,6 +1306,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
661 } 1306 }
662 return ret; 1307 return ret;
663 } 1308 }
1309
664 public List<string> llCSV2List(string src) 1310 public List<string> llCSV2List(string src)
665 { 1311 {
666 List<string> ret = new List<string>(); 1312 List<string> ret = new List<string>();
@@ -670,6 +1316,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
670 } 1316 }
671 return ret; 1317 return ret;
672 } 1318 }
1319
673 public List<string> llListRandomize(List<string> src, int stride) 1320 public List<string> llListRandomize(List<string> src, int stride)
674 { 1321 {
675 int s = stride; 1322 int s = stride;
@@ -711,9 +1358,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
711 } 1358 }
712 1359
713 return ret; 1360 return ret;
714
715
716 } 1361 }
1362
717 public List<string> llList2ListStrided(List<string> src, int start, int end, int stride) 1363 public List<string> llList2ListStrided(List<string> src, int start, int end, int stride)
718 { 1364 {
719 List<string> ret = new List<string>(); 1365 List<string> ret = new List<string>();
@@ -739,12 +1385,11 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
739 1385
740 public LSL_Types.Vector3 llGetRegionCorner() 1386 public LSL_Types.Vector3 llGetRegionCorner()
741 { 1387 {
742 return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * 256, World.RegionInfo.RegionLocY * 256, 0); 1388 return new LSL_Types.Vector3(World.RegionInfo.RegionLocX*256, World.RegionInfo.RegionLocY*256, 0);
743 } 1389 }
744 1390
745 public List<string> llListInsertList(List<string> dest, List<string> src, int start) 1391 public List<string> llListInsertList(List<string> dest, List<string> src, int start)
746 { 1392 {
747
748 List<string> ret = new List<string>(dest); 1393 List<string> ret = new List<string>(dest);
749 //foreach (string s in src.Reverse()) 1394 //foreach (string s in src.Reverse())
750 for (int ci = src.Count - 1; ci > -1; ci--) 1395 for (int ci = src.Count - 1; ci > -1; ci--)
@@ -753,13 +1398,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
753 } 1398 }
754 return ret; 1399 return ret;
755 } 1400 }
1401
756 public int llListFindList(List<string> src, List<string> test) 1402 public int llListFindList(List<string> src, List<string> test)
757 { 1403 {
758 foreach (string s in test) 1404 foreach (string s in test)
759 { 1405 {
760 for (int ci = 0; ci < src.Count; ci++) 1406 for (int ci = 0; ci < src.Count; ci++)
761 { 1407 {
762
763 if (s == src[ci]) 1408 if (s == src[ci])
764 return ci; 1409 return ci;
765 } 1410 }
@@ -784,37 +1429,139 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
784 return result; 1429 return result;
785 } 1430 }
786 1431
787 public int llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir) { NotImplemented("llEdgeOfWorld"); return 0; } 1432 public int llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir)
788 public int llGetAgentInfo(string id) { NotImplemented("llGetAgentInfo"); return 0; } 1433 {
789 public void llAdjustSoundVolume(double volume) { NotImplemented("llAdjustSoundVolume"); } 1434 NotImplemented("llEdgeOfWorld");
790 public void llSetSoundQueueing(int queue) { NotImplemented("llSetSoundQueueing"); } 1435 return 0;
791 public void llSetSoundRadius(double radius) { NotImplemented("llSetSoundRadius"); } 1436 }
792 public string llKey2Name(string id) { NotImplemented("llKey2Name"); return ""; } 1437
793 public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) { NotImplemented("llSetTextureAnim"); } 1438 public int llGetAgentInfo(string id)
794 public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, LSL_Types.Vector3 bottom_south_west) { NotImplemented("llTriggerSoundLimited"); } 1439 {
795 public void llEjectFromLand(string pest) { NotImplemented("llEjectFromLand"); } 1440 NotImplemented("llGetAgentInfo");
796 1441 return 0;
797 public void llParseString2List() { NotImplemented("llParseString2List"); } 1442 }
798 1443
799 public int llOverMyLand(string id) { NotImplemented("llOverMyLand"); return 0; } 1444 public void llAdjustSoundVolume(double volume)
800 public string llGetLandOwnerAt(LSL_Types.Vector3 pos) { NotImplemented("llGetLandOwnerAt"); return ""; } 1445 {
801 public string llGetNotecardLine(string name, int line) { NotImplemented("llGetNotecardLine"); return ""; } 1446 NotImplemented("llAdjustSoundVolume");
802 public LSL_Types.Vector3 llGetAgentSize(string id) { NotImplemented("llGetAgentSize"); return new LSL_Types.Vector3(); } 1447 }
803 public int llSameGroup(string agent) { NotImplemented("llSameGroup"); return 0; } 1448
804 public void llUnSit(string id) { NotImplemented("llUnSit"); } 1449 public void llSetSoundQueueing(int queue)
805 public LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset) { NotImplemented("llGroundSlope"); return new LSL_Types.Vector3(); } 1450 {
806 public LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset) { NotImplemented("llGroundNormal"); return new LSL_Types.Vector3(); } 1451 NotImplemented("llSetSoundQueueing");
807 public LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset) { NotImplemented("llGroundContour"); return new LSL_Types.Vector3(); } 1452 }
808 public int llGetAttached() { NotImplemented("llGetAttached"); return 0; } 1453
809 public int llGetFreeMemory() { NotImplemented("llGetFreeMemory"); return 0; } 1454 public void llSetSoundRadius(double radius)
1455 {
1456 NotImplemented("llSetSoundRadius");
1457 }
1458
1459 public string llKey2Name(string id)
1460 {
1461 NotImplemented("llKey2Name");
1462 return "";
1463 }
1464
1465 public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate)
1466 {
1467 NotImplemented("llSetTextureAnim");
1468 }
1469
1470 public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east,
1471 LSL_Types.Vector3 bottom_south_west)
1472 {
1473 NotImplemented("llTriggerSoundLimited");
1474 }
1475
1476 public void llEjectFromLand(string pest)
1477 {
1478 NotImplemented("llEjectFromLand");
1479 }
1480
1481 public void llParseString2List()
1482 {
1483 NotImplemented("llParseString2List");
1484 }
1485
1486 public int llOverMyLand(string id)
1487 {
1488 NotImplemented("llOverMyLand");
1489 return 0;
1490 }
1491
1492 public string llGetLandOwnerAt(LSL_Types.Vector3 pos)
1493 {
1494 NotImplemented("llGetLandOwnerAt");
1495 return "";
1496 }
1497
1498 public string llGetNotecardLine(string name, int line)
1499 {
1500 NotImplemented("llGetNotecardLine");
1501 return "";
1502 }
1503
1504 public LSL_Types.Vector3 llGetAgentSize(string id)
1505 {
1506 NotImplemented("llGetAgentSize");
1507 return new LSL_Types.Vector3();
1508 }
1509
1510 public int llSameGroup(string agent)
1511 {
1512 NotImplemented("llSameGroup");
1513 return 0;
1514 }
1515
1516 public void llUnSit(string id)
1517 {
1518 NotImplemented("llUnSit");
1519 }
1520
1521 public LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset)
1522 {
1523 NotImplemented("llGroundSlope");
1524 return new LSL_Types.Vector3();
1525 }
1526
1527 public LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset)
1528 {
1529 NotImplemented("llGroundNormal");
1530 return new LSL_Types.Vector3();
1531 }
1532
1533 public LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset)
1534 {
1535 NotImplemented("llGroundContour");
1536 return new LSL_Types.Vector3();
1537 }
1538
1539 public int llGetAttached()
1540 {
1541 NotImplemented("llGetAttached");
1542 return 0;
1543 }
1544
1545 public int llGetFreeMemory()
1546 {
1547 NotImplemented("llGetFreeMemory");
1548 return 0;
1549 }
810 1550
811 public string llGetRegionName() 1551 public string llGetRegionName()
812 { 1552 {
813 return World.RegionInfo.RegionName; 1553 return World.RegionInfo.RegionName;
814 } 1554 }
815 1555
816 public double llGetRegionTimeDilation() { return 1.0f; } 1556 public double llGetRegionTimeDilation()
817 public double llGetRegionFPS() { return 10.0f; } 1557 {
1558 return 1.0f;
1559 }
1560
1561 public double llGetRegionFPS()
1562 {
1563 return 10.0f;
1564 }
818 1565
819 /* particle system rules should be coming into this routine as doubles, that is 1566 /* particle system rules should be coming into this routine as doubles, that is
820 rule[0] should be an integer from this list and rule[1] should be the arg 1567 rule[0] should be an integer from this list and rule[1] should be the arg
@@ -824,6 +1571,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
824 We iterate through the list for 'Count' elements, incrementing by two for each 1571 We iterate through the list for 'Count' elements, incrementing by two for each
825 iteration and set the members of Primitive.ParticleSystem, one at a time. 1572 iteration and set the members of Primitive.ParticleSystem, one at a time.
826 */ 1573 */
1574
827 public enum PrimitiveRule : int 1575 public enum PrimitiveRule : int
828 { 1576 {
829 PSYS_PART_FLAGS = 0, 1577 PSYS_PART_FLAGS = 0,
@@ -854,109 +1602,152 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
854 Primitive.ParticleSystem prules = new Primitive.ParticleSystem(); 1602 Primitive.ParticleSystem prules = new Primitive.ParticleSystem();
855 for (int i = 0; i < rules.Count; i += 2) 1603 for (int i = 0; i < rules.Count; i += 2)
856 { 1604 {
857 switch ((int)rules[i]) 1605 switch ((int) rules[i])
858 { 1606 {
859 case (int)PrimitiveRule.PSYS_PART_FLAGS: 1607 case (int) PrimitiveRule.PSYS_PART_FLAGS:
860 prules.PartFlags = (uint)rules[i + 1]; 1608 prules.PartFlags = (uint) rules[i + 1];
861 break; 1609 break;
862 1610
863 case (int)PrimitiveRule.PSYS_PART_START_COLOR: 1611 case (int) PrimitiveRule.PSYS_PART_START_COLOR:
864 prules.PartStartColor = (LLColor)rules[i + 1]; 1612 prules.PartStartColor = (LLColor) rules[i + 1];
865 break; 1613 break;
866 1614
867 case (int)PrimitiveRule.PSYS_PART_START_ALPHA: 1615 case (int) PrimitiveRule.PSYS_PART_START_ALPHA:
868 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1]; 1616 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1];
869 break; 1617 break;
870 1618
871 case (int)PrimitiveRule.PSYS_PART_END_COLOR: 1619 case (int) PrimitiveRule.PSYS_PART_END_COLOR:
872 prules.PartEndColor = (LLColor)rules[i + 1]; 1620 prules.PartEndColor = (LLColor) rules[i + 1];
873 break; 1621 break;
874 1622
875 case (int)PrimitiveRule.PSYS_PART_END_ALPHA: 1623 case (int) PrimitiveRule.PSYS_PART_END_ALPHA:
876 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1]; 1624 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1];
877 break; 1625 break;
878 1626
879 case (int)PrimitiveRule.PSYS_PART_START_SCALE: 1627 case (int) PrimitiveRule.PSYS_PART_START_SCALE:
880 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1]; 1628 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1];
881 break; 1629 break;
882 1630
883 case (int)PrimitiveRule.PSYS_PART_END_SCALE: 1631 case (int) PrimitiveRule.PSYS_PART_END_SCALE:
884 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1]; 1632 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1];
885 break; 1633 break;
886 1634
887 case (int)PrimitiveRule.PSYS_PART_MAX_AGE: 1635 case (int) PrimitiveRule.PSYS_PART_MAX_AGE:
888 prules.MaxAge = (float)rules[i + 1]; 1636 prules.MaxAge = (float) rules[i + 1];
889 break; 1637 break;
890 1638
891 case (int)PrimitiveRule.PSYS_SRC_ACCEL: 1639 case (int) PrimitiveRule.PSYS_SRC_ACCEL:
892 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1]; 1640 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1];
893 break; 1641 break;
894 1642
895 case (int)PrimitiveRule.PSYS_SRC_PATTERN: 1643 case (int) PrimitiveRule.PSYS_SRC_PATTERN:
896 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1]; 1644 //what is the cast? prules.PartStartColor = (LLColor)rules[i + 1];
897 break; 1645 break;
898 1646
899 case (int)PrimitiveRule.PSYS_SRC_TEXTURE: 1647 case (int) PrimitiveRule.PSYS_SRC_TEXTURE:
900 prules.Texture = (LLUUID)rules[i + 1]; 1648 prules.Texture = (LLUUID) rules[i + 1];
901 break; 1649 break;
902 1650
903 case (int)PrimitiveRule.PSYS_SRC_BURST_RATE: 1651 case (int) PrimitiveRule.PSYS_SRC_BURST_RATE:
904 prules.BurstRate = (float)rules[i + 1]; 1652 prules.BurstRate = (float) rules[i + 1];
905 break; 1653 break;
906 1654
907 case (int)PrimitiveRule.PSYS_SRC_BURST_PART_COUNT: 1655 case (int) PrimitiveRule.PSYS_SRC_BURST_PART_COUNT:
908 prules.BurstPartCount = (byte)rules[i + 1]; 1656 prules.BurstPartCount = (byte) rules[i + 1];
909 break; 1657 break;
910 1658
911 case (int)PrimitiveRule.PSYS_SRC_BURST_RADIUS: 1659 case (int) PrimitiveRule.PSYS_SRC_BURST_RADIUS:
912 prules.BurstRadius = (float)rules[i + 1]; 1660 prules.BurstRadius = (float) rules[i + 1];
913 break; 1661 break;
914 1662
915 case (int)PrimitiveRule.PSYS_SRC_BURST_SPEED_MIN: 1663 case (int) PrimitiveRule.PSYS_SRC_BURST_SPEED_MIN:
916 prules.BurstSpeedMin = (float)rules[i + 1]; 1664 prules.BurstSpeedMin = (float) rules[i + 1];
917 break; 1665 break;
918 1666
919 case (int)PrimitiveRule.PSYS_SRC_BURST_SPEED_MAX: 1667 case (int) PrimitiveRule.PSYS_SRC_BURST_SPEED_MAX:
920 prules.BurstSpeedMax = (float)rules[i + 1]; 1668 prules.BurstSpeedMax = (float) rules[i + 1];
921 break; 1669 break;
922 1670
923 case (int)PrimitiveRule.PSYS_SRC_MAX_AGE: 1671 case (int) PrimitiveRule.PSYS_SRC_MAX_AGE:
924 prules.MaxAge = (float)rules[i + 1]; 1672 prules.MaxAge = (float) rules[i + 1];
925 break; 1673 break;
926 1674
927 case (int)PrimitiveRule.PSYS_SRC_TARGET_KEY: 1675 case (int) PrimitiveRule.PSYS_SRC_TARGET_KEY:
928 prules.Target = (LLUUID)rules[i + 1]; 1676 prules.Target = (LLUUID) rules[i + 1];
929 break; 1677 break;
930 1678
931 case (int)PrimitiveRule.PSYS_SRC_OMEGA: 1679 case (int) PrimitiveRule.PSYS_SRC_OMEGA:
932 //cast?? prules.MaxAge = (float)rules[i + 1]; 1680 //cast?? prules.MaxAge = (float)rules[i + 1];
933 break; 1681 break;
934 1682
935 case (int)PrimitiveRule.PSYS_SRC_ANGLE_BEGIN: 1683 case (int) PrimitiveRule.PSYS_SRC_ANGLE_BEGIN:
936 prules.InnerAngle = (float)rules[i + 1]; 1684 prules.InnerAngle = (float) rules[i + 1];
937 break; 1685 break;
938 1686
939 case (int)PrimitiveRule.PSYS_SRC_ANGLE_END: 1687 case (int) PrimitiveRule.PSYS_SRC_ANGLE_END:
940 prules.OuterAngle = (float)rules[i + 1]; 1688 prules.OuterAngle = (float) rules[i + 1];
941 break; 1689 break;
942
943 } 1690 }
944 } 1691 }
945 1692
946 m_host.AddNewParticleSystem(prules); 1693 m_host.AddNewParticleSystem(prules);
947 } 1694 }
948 1695
949 public void llGroundRepel(double height, int water, double tau) { NotImplemented("llGroundRepel"); } 1696 public void llGroundRepel(double height, int water, double tau)
950 public void llGiveInventoryList() { NotImplemented("llGiveInventoryList"); } 1697 {
951 public void llSetVehicleType(int type) { NotImplemented("llSetVehicleType"); } 1698 NotImplemented("llGroundRepel");
952 public void llSetVehicledoubleParam(int param, double value) { NotImplemented("llSetVehicledoubleParam"); } 1699 }
953 public void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec) { NotImplemented("llSetVehicleVectorParam"); } 1700
954 public void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot) { NotImplemented("llSetVehicleRotationParam"); } 1701 public void llGiveInventoryList()
955 public void llSetVehicleFlags(int flags) { NotImplemented("llSetVehicleFlags"); } 1702 {
956 public void llRemoveVehicleFlags(int flags) { NotImplemented("llRemoveVehicleFlags"); } 1703 NotImplemented("llGiveInventoryList");
957 public void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot) { NotImplemented("llSitTarget"); } 1704 }
958 public string llAvatarOnSitTarget() { NotImplemented("llAvatarOnSitTarget"); return ""; } 1705
959 public void llAddToLandPassList(string avatar, double hours) { NotImplemented("llAddToLandPassList"); } 1706 public void llSetVehicleType(int type)
1707 {
1708 NotImplemented("llSetVehicleType");
1709 }
1710
1711 public void llSetVehicledoubleParam(int param, double value)
1712 {
1713 NotImplemented("llSetVehicledoubleParam");
1714 }
1715
1716 public void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec)
1717 {
1718 NotImplemented("llSetVehicleVectorParam");
1719 }
1720
1721 public void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot)
1722 {
1723 NotImplemented("llSetVehicleRotationParam");
1724 }
1725
1726 public void llSetVehicleFlags(int flags)
1727 {
1728 NotImplemented("llSetVehicleFlags");
1729 }
1730
1731 public void llRemoveVehicleFlags(int flags)
1732 {
1733 NotImplemented("llRemoveVehicleFlags");
1734 }
1735
1736 public void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot)
1737 {
1738 NotImplemented("llSitTarget");
1739 }
1740
1741 public string llAvatarOnSitTarget()
1742 {
1743 NotImplemented("llAvatarOnSitTarget");
1744 return "";
1745 }
1746
1747 public void llAddToLandPassList(string avatar, double hours)
1748 {
1749 NotImplemented("llAddToLandPassList");
1750 }
960 1751
961 public void llSetTouchText(string text) 1752 public void llSetTouchText(string text)
962 { 1753 {
@@ -968,49 +1759,91 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
968 m_host.SitName = text; 1759 m_host.SitName = text;
969 } 1760 }
970 1761
971 public void llSetCameraEyeOffset(LSL_Types.Vector3 offset) { NotImplemented("llSetCameraEyeOffset"); } 1762 public void llSetCameraEyeOffset(LSL_Types.Vector3 offset)
972 public void llSetCameraAtOffset(LSL_Types.Vector3 offset) { NotImplemented("llSetCameraAtOffset"); } 1763 {
973 public void llDumpList2String() { NotImplemented("llDumpList2String"); } 1764 NotImplemented("llSetCameraEyeOffset");
974 public void llScriptDanger(LSL_Types.Vector3 pos) { NotImplemented("llScriptDanger"); } 1765 }
975 public void llDialog(string avatar, string message, List<string> buttons, int chat_channel) { NotImplemented("llDialog"); }
976 public void llVolumeDetect(int detect) { NotImplemented("llVolumeDetect"); }
977 public void llResetOtherScript(string name) { NotImplemented("llResetOtherScript"); }
978 1766
979 public int llGetScriptState(string name) { NotImplemented("llGetScriptState"); return 0; } 1767 public void llSetCameraAtOffset(LSL_Types.Vector3 offset)
1768 {
1769 NotImplemented("llSetCameraAtOffset");
1770 }
980 1771
981 public void llRemoteLoadScript() { NotImplemented("llRemoteLoadScript"); } 1772 public void llDumpList2String()
982 public void llSetRemoteScriptAccessPin(int pin) { NotImplemented("llSetRemoteScriptAccessPin"); } 1773 {
983 public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) { NotImplemented("llRemoteLoadScriptPin"); } 1774 NotImplemented("llDumpList2String");
1775 }
1776
1777 public void llScriptDanger(LSL_Types.Vector3 pos)
1778 {
1779 NotImplemented("llScriptDanger");
1780 }
1781
1782 public void llDialog(string avatar, string message, List<string> buttons, int chat_channel)
1783 {
1784 NotImplemented("llDialog");
1785 }
1786
1787 public void llVolumeDetect(int detect)
1788 {
1789 NotImplemented("llVolumeDetect");
1790 }
1791
1792 public void llResetOtherScript(string name)
1793 {
1794 NotImplemented("llResetOtherScript");
1795 }
1796
1797 public int llGetScriptState(string name)
1798 {
1799 NotImplemented("llGetScriptState");
1800 return 0;
1801 }
1802
1803 public void llRemoteLoadScript()
1804 {
1805 NotImplemented("llRemoteLoadScript");
1806 }
1807
1808 public void llSetRemoteScriptAccessPin(int pin)
1809 {
1810 NotImplemented("llSetRemoteScriptAccessPin");
1811 }
1812
1813 public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param)
1814 {
1815 NotImplemented("llRemoteLoadScriptPin");
1816 }
984 1817
985 // remote_data(integer type, key channel, key message_id, string sender, integer ival, string sval) 1818 // remote_data(integer type, key channel, key message_id, string sender, integer ival, string sval)
986 // Not sure where these constants should live: 1819 // Not sure where these constants should live:
987 // REMOTE_DATA_CHANNEL = 1 1820 // REMOTE_DATA_CHANNEL = 1
988 // REMOTE_DATA_REQUEST = 2 1821 // REMOTE_DATA_REQUEST = 2
989 // REMOTE_DATA_REPLY = 3 1822 // REMOTE_DATA_REPLY = 3
990 public void llOpenRemoteDataChannel() { 1823 public void llOpenRemoteDataChannel()
991 1824 {
992 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>(); 1825 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>();
993 LLUUID channelID = xmlrpcMod.OpenXMLRPCChannel(m_localID, m_itemID); 1826 LLUUID channelID = xmlrpcMod.OpenXMLRPCChannel(m_localID, m_itemID);
994 object[] resobj = new object[] { 1, channelID.ToString(), LLUUID.Zero.ToString(), "", 0, "" }; 1827 object[] resobj = new object[] {1, channelID.ToString(), LLUUID.Zero.ToString(), "", 0, ""};
995 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(m_localID, m_itemID, "remote_data", resobj); 1828 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(m_localID, m_itemID, "remote_data", resobj);
996
997 } 1829 }
998 1830
999 public string llSendRemoteData(string channel, string dest, int idata, string sdata) { NotImplemented("llSendRemoteData"); return ""; } 1831 public string llSendRemoteData(string channel, string dest, int idata, string sdata)
1832 {
1833 NotImplemented("llSendRemoteData");
1834 return "";
1835 }
1000 1836
1001 public void llRemoteDataReply(string channel, string message_id, string sdata, int idata) 1837 public void llRemoteDataReply(string channel, string message_id, string sdata, int idata)
1002 { 1838 {
1003
1004 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>(); 1839 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>();
1005 xmlrpcMod.RemoteDataReply(channel, message_id, sdata, idata); 1840 xmlrpcMod.RemoteDataReply(channel, message_id, sdata, idata);
1006
1007 } 1841 }
1008
1009 public void llCloseRemoteDataChannel(string channel) {
1010 1842
1843 public void llCloseRemoteDataChannel(string channel)
1844 {
1011 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>(); 1845 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>();
1012 xmlrpcMod.CloseXMLRPCChannel(channel); 1846 xmlrpcMod.CloseXMLRPCChannel(channel);
1013
1014 } 1847 }
1015 1848
1016 public string llMD5String(string src, int nonce) 1849 public string llMD5String(string src, int nonce)
@@ -1018,14 +1851,17 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
1018 return Util.Md5Hash(src + ":" + nonce.ToString()); 1851 return Util.Md5Hash(src + ":" + nonce.ToString());
1019 } 1852 }
1020 1853
1021 public void llSetPrimitiveParams(List<string> rules) { NotImplemented("llSetPrimitiveParams"); } 1854 public void llSetPrimitiveParams(List<string> rules)
1022 public string llStringToBase64(string str)
1023 { 1855 {
1856 NotImplemented("llSetPrimitiveParams");
1857 }
1024 1858
1859 public string llStringToBase64(string str)
1860 {
1025 try 1861 try
1026 { 1862 {
1027 byte[] encData_byte = new byte[str.Length]; 1863 byte[] encData_byte = new byte[str.Length];
1028 encData_byte = System.Text.Encoding.UTF8.GetBytes(str); 1864 encData_byte = Encoding.UTF8.GetBytes(str);
1029 string encodedData = Convert.ToBase64String(encData_byte); 1865 string encodedData = Convert.ToBase64String(encData_byte);
1030 return encodedData; 1866 return encodedData;
1031 } 1867 }
@@ -1037,11 +1873,10 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
1037 1873
1038 public string llBase64ToString(string str) 1874 public string llBase64ToString(string str)
1039 { 1875 {
1040 System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding(); 1876 UTF8Encoding encoder = new UTF8Encoding();
1041 System.Text.Decoder utf8Decode = encoder.GetDecoder(); 1877 Decoder utf8Decode = encoder.GetDecoder();
1042 try 1878 try
1043 { 1879 {
1044
1045 byte[] todecode_byte = Convert.FromBase64String(str); 1880 byte[] todecode_byte = Convert.FromBase64String(str);
1046 int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length); 1881 int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length);
1047 char[] decoded_char = new char[charCount]; 1882 char[] decoded_char = new char[charCount];
@@ -1054,16 +1889,49 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
1054 throw new Exception("Error in base64Decode" + e.Message); 1889 throw new Exception("Error in base64Decode" + e.Message);
1055 } 1890 }
1056 } 1891 }
1057 public void llXorBase64Strings() { throw new Exception("Command deprecated! Use llXorBase64StringsCorrect instead."); }
1058 public void llRemoteDataSetRegion() { NotImplemented("llRemoteDataSetRegion"); }
1059 public double llLog10(double val) { return (double)Math.Log10(val); }
1060 public double llLog(double val) { return (double)Math.Log(val); }
1061 public List<string> llGetAnimationList(string id) { NotImplemented("llGetAnimationList"); return new List<string>(); }
1062 public void llSetParcelMusicURL(string url) { NotImplemented("llSetParcelMusicURL"); }
1063 1892
1064 public LSL_Types.Vector3 llGetRootPosition() { NotImplemented("llGetRootPosition"); return new LSL_Types.Vector3(); } 1893 public void llXorBase64Strings()
1894 {
1895 throw new Exception("Command deprecated! Use llXorBase64StringsCorrect instead.");
1896 }
1897
1898 public void llRemoteDataSetRegion()
1899 {
1900 NotImplemented("llRemoteDataSetRegion");
1901 }
1902
1903 public double llLog10(double val)
1904 {
1905 return (double) Math.Log10(val);
1906 }
1065 1907
1066 public LSL_Types.Quaternion llGetRootRotation() { NotImplemented("llGetRootRotation"); return new LSL_Types.Quaternion(); } 1908 public double llLog(double val)
1909 {
1910 return (double) Math.Log(val);
1911 }
1912
1913 public List<string> llGetAnimationList(string id)
1914 {
1915 NotImplemented("llGetAnimationList");
1916 return new List<string>();
1917 }
1918
1919 public void llSetParcelMusicURL(string url)
1920 {
1921 NotImplemented("llSetParcelMusicURL");
1922 }
1923
1924 public LSL_Types.Vector3 llGetRootPosition()
1925 {
1926 NotImplemented("llGetRootPosition");
1927 return new LSL_Types.Vector3();
1928 }
1929
1930 public LSL_Types.Quaternion llGetRootRotation()
1931 {
1932 NotImplemented("llGetRootRotation");
1933 return new LSL_Types.Quaternion();
1934 }
1067 1935
1068 public string llGetObjectDesc() 1936 public string llGetObjectDesc()
1069 { 1937 {
@@ -1080,20 +1948,55 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
1080 return m_host.ObjectCreator.ToStringHyphenated(); 1948 return m_host.ObjectCreator.ToStringHyphenated();
1081 } 1949 }
1082 1950
1083 public string llGetTimestamp() { return DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); } 1951 public string llGetTimestamp()
1084 public void llSetLinkAlpha(int linknumber, double alpha, int face) { NotImplemented("llSetLinkAlpha"); } 1952 {
1085 public int llGetNumberOfPrims() { NotImplemented("llGetNumberOfPrims"); return 0; } 1953 return DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ");
1086 public string llGetNumberOfNotecardLines(string name) { NotImplemented("llGetNumberOfNotecardLines"); return ""; } 1954 }
1087 public List<string> llGetBoundingBox(string obj) { NotImplemented("llGetBoundingBox"); return new List<string>(); } 1955
1088 public LSL_Types.Vector3 llGetGeometricCenter() { NotImplemented("llGetGeometricCenter"); return new LSL_Types.Vector3(); } 1956 public void llSetLinkAlpha(int linknumber, double alpha, int face)
1089 public void llGetPrimitiveParams() { NotImplemented("llGetPrimitiveParams"); } 1957 {
1958 NotImplemented("llSetLinkAlpha");
1959 }
1960
1961 public int llGetNumberOfPrims()
1962 {
1963 NotImplemented("llGetNumberOfPrims");
1964 return 0;
1965 }
1966
1967 public string llGetNumberOfNotecardLines(string name)
1968 {
1969 NotImplemented("llGetNumberOfNotecardLines");
1970 return "";
1971 }
1972
1973 public List<string> llGetBoundingBox(string obj)
1974 {
1975 NotImplemented("llGetBoundingBox");
1976 return new List<string>();
1977 }
1978
1979 public LSL_Types.Vector3 llGetGeometricCenter()
1980 {
1981 NotImplemented("llGetGeometricCenter");
1982 return new LSL_Types.Vector3();
1983 }
1984
1985 public void llGetPrimitiveParams()
1986 {
1987 NotImplemented("llGetPrimitiveParams");
1988 }
1989
1090 public string llIntegerToBase64(int number) 1990 public string llIntegerToBase64(int number)
1091 { 1991 {
1092 NotImplemented("llIntegerToBase64"); return ""; 1992 NotImplemented("llIntegerToBase64");
1993 return "";
1093 } 1994 }
1995
1094 public int llBase64ToInteger(string str) 1996 public int llBase64ToInteger(string str)
1095 { 1997 {
1096 NotImplemented("llBase64ToInteger"); return 0; 1998 NotImplemented("llBase64ToInteger");
1999 return 0;
1097 } 2000 }
1098 2001
1099 public double llGetGMTclock() 2002 public double llGetGMTclock()
@@ -1106,31 +2009,92 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
1106 return System.Environment.MachineName; 2009 return System.Environment.MachineName;
1107 } 2010 }
1108 2011
1109 public void llSetLocalRot(LSL_Types.Quaternion rot) { NotImplemented("llSetLocalRot"); } 2012 public void llSetLocalRot(LSL_Types.Quaternion rot)
1110 public List<string> llParseStringKeepNulls(string src, List<string> seperators, List<string> spacers) { NotImplemented("llParseStringKeepNulls"); return new List<string>(); } 2013 {
1111 public void llRezAtRoot(string inventory, LSL_Types.Vector3 position, LSL_Types.Vector3 velocity, LSL_Types.Quaternion rot, int param) { NotImplemented("llRezAtRoot"); } 2014 NotImplemented("llSetLocalRot");
2015 }
1112 2016
1113 public int llGetObjectPermMask(int mask) { NotImplemented("llGetObjectPermMask"); return 0; } 2017 public List<string> llParseStringKeepNulls(string src, List<string> seperators, List<string> spacers)
2018 {
2019 NotImplemented("llParseStringKeepNulls");
2020 return new List<string>();
2021 }
1114 2022
1115 public void llSetObjectPermMask(int mask, int value) { NotImplemented("llSetObjectPermMask"); } 2023 public void llRezAtRoot(string inventory, LSL_Types.Vector3 position, LSL_Types.Vector3 velocity,
2024 LSL_Types.Quaternion rot, int param)
2025 {
2026 NotImplemented("llRezAtRoot");
2027 }
1116 2028
1117 public void llGetInventoryPermMask(string item, int mask) { NotImplemented("llGetInventoryPermMask"); } 2029 public int llGetObjectPermMask(int mask)
1118 public void llSetInventoryPermMask(string item, int mask, int value) { NotImplemented("llSetInventoryPermMask"); } 2030 {
1119 public string llGetInventoryCreator(string item) { NotImplemented("llGetInventoryCreator"); return ""; } 2031 NotImplemented("llGetObjectPermMask");
1120 public void llOwnerSay(string msg) { NotImplemented("llOwnerSay"); } 2032 return 0;
1121 public void llRequestSimulatorData(string simulator, int data) { NotImplemented("llRequestSimulatorData"); } 2033 }
1122 public void llForceMouselook(int mouselook) { NotImplemented("llForceMouselook"); } 2034
1123 public double llGetObjectMass(string id) { NotImplemented("llGetObjectMass"); return 0; } 2035 public void llSetObjectPermMask(int mask, int value)
1124 public void llListReplaceList() { NotImplemented("llListReplaceList"); } 2036 {
2037 NotImplemented("llSetObjectPermMask");
2038 }
2039
2040 public void llGetInventoryPermMask(string item, int mask)
2041 {
2042 NotImplemented("llGetInventoryPermMask");
2043 }
2044
2045 public void llSetInventoryPermMask(string item, int mask, int value)
2046 {
2047 NotImplemented("llSetInventoryPermMask");
2048 }
2049
2050 public string llGetInventoryCreator(string item)
2051 {
2052 NotImplemented("llGetInventoryCreator");
2053 return "";
2054 }
2055
2056 public void llOwnerSay(string msg)
2057 {
2058 NotImplemented("llOwnerSay");
2059 }
2060
2061 public void llRequestSimulatorData(string simulator, int data)
2062 {
2063 NotImplemented("llRequestSimulatorData");
2064 }
2065
2066 public void llForceMouselook(int mouselook)
2067 {
2068 NotImplemented("llForceMouselook");
2069 }
2070
2071 public double llGetObjectMass(string id)
2072 {
2073 NotImplemented("llGetObjectMass");
2074 return 0;
2075 }
2076
2077 public void llListReplaceList()
2078 {
2079 NotImplemented("llListReplaceList");
2080 }
1125 2081
1126 public void llLoadURL(string avatar_id, string message, string url) 2082 public void llLoadURL(string avatar_id, string message, string url)
1127 { 2083 {
1128 LLUUID avatarId = new LLUUID(avatar_id); 2084 LLUUID avatarId = new LLUUID(avatar_id);
1129 m_ScriptEngine.World.SendUrlToUser(avatarId, m_host.Name, m_host.UUID, m_host.ObjectOwner, false, message, url); 2085 m_ScriptEngine.World.SendUrlToUser(avatarId, m_host.Name, m_host.UUID, m_host.ObjectOwner, false, message,
2086 url);
1130 } 2087 }
1131 2088
1132 public void llParcelMediaCommandList(List<string> commandList) { NotImplemented("llParcelMediaCommandList"); } 2089 public void llParcelMediaCommandList(List<string> commandList)
1133 public void llParcelMediaQuery() { NotImplemented("llParcelMediaQuery"); } 2090 {
2091 NotImplemented("llParcelMediaCommandList");
2092 }
2093
2094 public void llParcelMediaQuery()
2095 {
2096 NotImplemented("llParcelMediaQuery");
2097 }
1134 2098
1135 public int llModPow(int a, int b, int c) 2099 public int llModPow(int a, int b, int c)
1136 { 2100 {
@@ -1139,13 +2103,38 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
1139 return Convert.ToInt32(tmp); 2103 return Convert.ToInt32(tmp);
1140 } 2104 }
1141 2105
1142 public int llGetInventoryType(string name) { NotImplemented("llGetInventoryType"); return 0; } 2106 public int llGetInventoryType(string name)
2107 {
2108 NotImplemented("llGetInventoryType");
2109 return 0;
2110 }
2111
2112 public void llSetPayPrice(int price, List<string> quick_pay_buttons)
2113 {
2114 NotImplemented("llSetPayPrice");
2115 }
2116
2117 public LSL_Types.Vector3 llGetCameraPos()
2118 {
2119 NotImplemented("llGetCameraPos");
2120 return new LSL_Types.Vector3();
2121 }
2122
2123 public LSL_Types.Quaternion llGetCameraRot()
2124 {
2125 NotImplemented("llGetCameraRot");
2126 return new LSL_Types.Quaternion();
2127 }
2128
2129 public void llSetPrimURL()
2130 {
2131 NotImplemented("llSetPrimURL");
2132 }
1143 2133
1144 public void llSetPayPrice(int price, List<string> quick_pay_buttons) { NotImplemented("llSetPayPrice"); } 2134 public void llRefreshPrimURL()
1145 public LSL_Types.Vector3 llGetCameraPos() { NotImplemented("llGetCameraPos"); return new LSL_Types.Vector3(); } 2135 {
1146 public LSL_Types.Quaternion llGetCameraRot() { NotImplemented("llGetCameraRot"); return new LSL_Types.Quaternion(); } 2136 NotImplemented("llRefreshPrimURL");
1147 public void llSetPrimURL() { NotImplemented("llSetPrimURL"); } 2137 }
1148 public void llRefreshPrimURL() { NotImplemented("llRefreshPrimURL"); }
1149 2138
1150 public string llEscapeURL(string url) 2139 public string llEscapeURL(string url)
1151 { 2140 {
@@ -1170,21 +2159,60 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
1170 return "llUnescapeURL: " + ex.ToString(); 2159 return "llUnescapeURL: " + ex.ToString();
1171 } 2160 }
1172 } 2161 }
1173 public void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at) { NotImplemented("llMapDestination"); } 2162
1174 public void llAddToLandBanList(string avatar, double hours) { NotImplemented("llAddToLandBanList"); } 2163 public void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at)
1175 public void llRemoveFromLandPassList(string avatar) { NotImplemented("llRemoveFromLandPassList"); } 2164 {
1176 public void llRemoveFromLandBanList(string avatar) { NotImplemented("llRemoveFromLandBanList"); } 2165 NotImplemented("llMapDestination");
1177 public void llSetCameraParams(List<string> rules) { NotImplemented("llSetCameraParams"); } 2166 }
1178 public void llClearCameraParams() { NotImplemented("llClearCameraParams"); } 2167
1179 public double llListStatistics(int operation, List<string> src) { NotImplemented("llListStatistics"); return 0; } 2168 public void llAddToLandBanList(string avatar, double hours)
2169 {
2170 NotImplemented("llAddToLandBanList");
2171 }
2172
2173 public void llRemoveFromLandPassList(string avatar)
2174 {
2175 NotImplemented("llRemoveFromLandPassList");
2176 }
2177
2178 public void llRemoveFromLandBanList(string avatar)
2179 {
2180 NotImplemented("llRemoveFromLandBanList");
2181 }
2182
2183 public void llSetCameraParams(List<string> rules)
2184 {
2185 NotImplemented("llSetCameraParams");
2186 }
2187
2188 public void llClearCameraParams()
2189 {
2190 NotImplemented("llClearCameraParams");
2191 }
2192
2193 public double llListStatistics(int operation, List<string> src)
2194 {
2195 NotImplemented("llListStatistics");
2196 return 0;
2197 }
1180 2198
1181 public int llGetUnixTime() 2199 public int llGetUnixTime()
1182 { 2200 {
1183 return Util.UnixTimeSinceEpoch(); 2201 return Util.UnixTimeSinceEpoch();
1184 } 2202 }
1185 2203
1186 public int llGetParcelFlags(LSL_Types.Vector3 pos) { NotImplemented("llGetParcelFlags"); return 0; } 2204 public int llGetParcelFlags(LSL_Types.Vector3 pos)
1187 public int llGetRegionFlags() { NotImplemented("llGetRegionFlags"); return 0; } 2205 {
2206 NotImplemented("llGetParcelFlags");
2207 return 0;
2208 }
2209
2210 public int llGetRegionFlags()
2211 {
2212 NotImplemented("llGetRegionFlags");
2213 return 0;
2214 }
2215
1188 public string llXorBase64StringsCorrect(string str1, string str2) 2216 public string llXorBase64StringsCorrect(string str1, string str2)
1189 { 2217 {
1190 string ret = ""; 2218 string ret = "";
@@ -1201,27 +2229,64 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
1201 } 2229 }
1202 return llStringToBase64(ret); 2230 return llStringToBase64(ret);
1203 } 2231 }
2232
1204 public void llHTTPRequest(string url, List<string> parameters, string body) 2233 public void llHTTPRequest(string url, List<string> parameters, string body)
1205 { 2234 {
1206 m_ScriptEngine.m_LSLLongCmdHandler.StartHttpRequest(m_localID, m_itemID, url, parameters, body); 2235 m_ScriptEngine.m_LSLLongCmdHandler.StartHttpRequest(m_localID, m_itemID, url, parameters, body);
1207 } 2236 }
1208 public void llResetLandBanList() { NotImplemented("llResetLandBanList"); } 2237
1209 public void llResetLandPassList() { NotImplemented("llResetLandPassList"); } 2238 public void llResetLandBanList()
1210 public int llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide) { NotImplemented("llGetParcelPrimCount"); return 0; } 2239 {
1211 public List<string> llGetParcelPrimOwners(LSL_Types.Vector3 pos) { NotImplemented("llGetParcelPrimOwners"); return new List<string>(); } 2240 NotImplemented("llResetLandBanList");
1212 public int llGetObjectPrimCount(string object_id) { NotImplemented("llGetObjectPrimCount"); return 0; } 2241 }
1213 public int llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide) { NotImplemented("llGetParcelMaxPrims"); return 0; } 2242
1214 public List<string> llGetParcelDetails(LSL_Types.Vector3 pos, List<string> param) { NotImplemented("llGetParcelDetails"); return new List<string>(); } 2243 public void llResetLandPassList()
2244 {
2245 NotImplemented("llResetLandPassList");
2246 }
2247
2248 public int llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide)
2249 {
2250 NotImplemented("llGetParcelPrimCount");
2251 return 0;
2252 }
2253
2254 public List<string> llGetParcelPrimOwners(LSL_Types.Vector3 pos)
2255 {
2256 NotImplemented("llGetParcelPrimOwners");
2257 return new List<string>();
2258 }
2259
2260 public int llGetObjectPrimCount(string object_id)
2261 {
2262 NotImplemented("llGetObjectPrimCount");
2263 return 0;
2264 }
2265
2266 public int llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide)
2267 {
2268 NotImplemented("llGetParcelMaxPrims");
2269 return 0;
2270 }
2271
2272 public List<string> llGetParcelDetails(LSL_Types.Vector3 pos, List<string> param)
2273 {
2274 NotImplemented("llGetParcelDetails");
2275 return new List<string>();
2276 }
1215 2277
1216 // 2278 //
1217 // OpenSim functions 2279 // OpenSim functions
1218 // 2280 //
1219 public string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer) 2281 public string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams,
2282 int timer)
1220 { 2283 {
1221 if (dynamicID == "") 2284 if (dynamicID == "")
1222 { 2285 {
1223 IDynamicTextureManager textureManager = this.World.RequestModuleInterface<IDynamicTextureManager>(); 2286 IDynamicTextureManager textureManager = World.RequestModuleInterface<IDynamicTextureManager>();
1224 LLUUID createdTexture = textureManager.AddDynamicTextureURL(World.RegionInfo.RegionID, this.m_host.UUID, contentType, url, extraParams, timer); 2287 LLUUID createdTexture =
2288 textureManager.AddDynamicTextureURL(World.RegionInfo.RegionID, m_host.UUID, contentType, url,
2289 extraParams, timer);
1225 return createdTexture.ToStringHyphenated(); 2290 return createdTexture.ToStringHyphenated();
1226 } 2291 }
1227 else 2292 else
@@ -1237,6 +2302,5 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
1237 if (throwErrorOnNotImplemented) 2302 if (throwErrorOnNotImplemented)
1238 throw new NotImplementedException("Command not implemented: " + Command); 2303 throw new NotImplementedException("Command not implemented: " + Command);
1239 } 2304 }
1240
1241 } 2305 }
1242} 2306} \ No newline at end of file