aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine
diff options
context:
space:
mode:
authorMelanie Thielker2008-09-23 11:41:34 +0000
committerMelanie Thielker2008-09-23 11:41:34 +0000
commit44e566260c9da5ff62c448cfdd67063c7a486126 (patch)
tree64b9c963872c986317132adc5d4fe0978ad25b64 /OpenSim/Region/ScriptEngine
parentSmall fix to eliminate a beauty spot (diff)
downloadopensim-SC-44e566260c9da5ff62c448cfdd67063c7a486126.zip
opensim-SC-44e566260c9da5ff62c448cfdd67063c7a486126.tar.gz
opensim-SC-44e566260c9da5ff62c448cfdd67063c7a486126.tar.bz2
opensim-SC-44e566260c9da5ff62c448cfdd67063c7a486126.tar.xz
Mantis #2243
Thank you, tyre, for a patch that refactors LSL to use a unified set of method signatures and type names, reorders methods and removes unused and adds new method stubs.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs1442
-rw-r--r--OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs1600
-rw-r--r--OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs963
-rw-r--r--OpenSim/Region/ScriptEngine/Common/LSL_Types.cs147
-rw-r--r--OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs18
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs1035
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs960
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs1375
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs18
9 files changed, 3685 insertions, 3873 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs b/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs
index 528df40..44011de 100644
--- a/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs
+++ b/OpenSim/Region/ScriptEngine/Common/BuiltIn_Commands_BaseClass.cs
@@ -30,10 +30,14 @@ using System.Runtime.Remoting.Lifetime;
30using System.Threading; 30using System.Threading;
31using OpenSim.Region.Environment.Interfaces; 31using OpenSim.Region.Environment.Interfaces;
32using OpenSim.Region.ScriptEngine.Common.ScriptEngineBase; 32using OpenSim.Region.ScriptEngine.Common.ScriptEngineBase;
33using integer = System.Int32; 33
34using key = System.String; 34using LSL_Float = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLFloat;
35using vector = OpenSim.Region.ScriptEngine.Common.LSL_Types.Vector3; 35using LSL_Integer = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLInteger;
36using rotation = OpenSim.Region.ScriptEngine.Common.LSL_Types.Quaternion; 36using LSL_Key = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLString;
37using LSL_List = OpenSim.Region.ScriptEngine.Common.LSL_Types.list;
38using LSL_Rotation = OpenSim.Region.ScriptEngine.Common.LSL_Types.Quaternion;
39using LSL_String = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLString;
40using LSL_Vector = OpenSim.Region.ScriptEngine.Common.LSL_Types.Vector3;
37 41
38namespace OpenSim.Region.ScriptEngine.Common 42namespace OpenSim.Region.ScriptEngine.Common
39{ 43{
@@ -160,1400 +164,1389 @@ namespace OpenSim.Region.ScriptEngine.Common
160 return m_LSL_Functions.GetCommander(name); 164 return m_LSL_Functions.GetCommander(name);
161 } 165 }
162 166
163 public double llSin(double f) 167 public LSL_Integer llAbs(int i)
164 { 168 {
165 return m_LSL_Functions.llSin(f); 169 return m_LSL_Functions.llAbs(i);
166 } 170 }
167 public void osSetRegionWaterHeight(double height) 171
172 public LSL_Float llAcos(double val)
168 { 173 {
169 m_LSL_Functions.osSetRegionWaterHeight(height); 174 return m_LSL_Functions.llAcos(val);
170 } 175 }
171 public double llCos(double f) 176
177 public void llAddToLandBanList(string avatar, double hours)
172 { 178 {
173 return m_LSL_Functions.llCos(f); 179 m_LSL_Functions.llAddToLandBanList(avatar, hours);
174 } 180 }
175 181
176 public double llTan(double f) 182 public void llAddToLandPassList(string avatar, double hours)
177 { 183 {
178 return m_LSL_Functions.llTan(f); 184 m_LSL_Functions.llAddToLandPassList(avatar, hours);
179 } 185 }
180 186
181 public double llAtan2(double x, double y) 187 public void llAdjustSoundVolume(double volume)
182 { 188 {
183 return m_LSL_Functions.llAtan2(x, y); 189 m_LSL_Functions.llAdjustSoundVolume(volume);
184 } 190 }
185 191
186 public double llSqrt(double f) 192 public void llAllowInventoryDrop(int add)
187 { 193 {
188 return m_LSL_Functions.llSqrt(f); 194 m_LSL_Functions.llAllowInventoryDrop(add);
189 } 195 }
190 196
191 public double llPow(double fbase, double fexponent) 197 public LSL_Float llAngleBetween(LSL_Rotation a, LSL_Rotation b)
192 { 198 {
193 return m_LSL_Functions.llPow(fbase, fexponent); 199 return m_LSL_Functions.llAngleBetween(a, b);
194 } 200 }
195 201
196 public LSL_Types.LSLInteger llAbs(int i) 202 public void llApplyImpulse(LSL_Vector force, int local)
197 { 203 {
198 return m_LSL_Functions.llAbs(i); 204 m_LSL_Functions.llApplyImpulse(force, local);
199 } 205 }
200 206
201 public double llFabs(double f) 207 public void llApplyRotationalImpulse(LSL_Vector force, int local)
202 { 208 {
203 return m_LSL_Functions.llFabs(f); 209 m_LSL_Functions.llApplyRotationalImpulse(force, local);
204 } 210 }
205 211
206 public double llFrand(double mag) 212 public LSL_Float llAsin(double val)
207 { 213 {
208 return m_LSL_Functions.llFrand(mag); 214 return m_LSL_Functions.llAsin(val);
209 } 215 }
210 216
211 public LSL_Types.LSLInteger llFloor(double f) 217 public LSL_Float llAtan2(double x, double y)
212 { 218 {
213 return m_LSL_Functions.llFloor(f); 219 return m_LSL_Functions.llAtan2(x, y);
214 } 220 }
215 221
216 public LSL_Types.LSLInteger llCeil(double f) 222 public void llAttachToAvatar(int attachment)
217 { 223 {
218 return m_LSL_Functions.llCeil(f); 224 m_LSL_Functions.llAttachToAvatar(attachment);
219 } 225 }
220 226
221 public LSL_Types.LSLInteger llRound(double f) 227 public LSL_Key llAvatarOnSitTarget()
222 { 228 {
223 return m_LSL_Functions.llRound(f); 229 return m_LSL_Functions.llAvatarOnSitTarget();
224 } 230 }
225 231
226 public double llVecMag(vector v) 232 public LSL_Rotation llAxes2Rot(LSL_Vector fwd, LSL_Vector left, LSL_Vector up)
227 { 233 {
228 return m_LSL_Functions.llVecMag(v); 234 return m_LSL_Functions.llAxes2Rot(fwd, left, up);
229 } 235 }
230 236
231 public vector llVecNorm(vector v) 237 public LSL_Rotation llAxisAngle2Rot(LSL_Vector axis, double angle)
232 { 238 {
233 return m_LSL_Functions.llVecNorm(v); 239 return m_LSL_Functions.llAxisAngle2Rot(axis, angle);
234 } 240 }
235 241
236 public double llVecDist(vector a, vector b) 242 public LSL_Integer llBase64ToInteger(string str)
237 { 243 {
238 return m_LSL_Functions.llVecDist(a, b); 244 return m_LSL_Functions.llBase64ToInteger(str);
239 } 245 }
240 246
241 public vector llRot2Euler(rotation r) 247 public LSL_String llBase64ToString(string str)
242 { 248 {
243 return m_LSL_Functions.llRot2Euler(r); 249 return m_LSL_Functions.llBase64ToString(str);
244 } 250 }
245 251
246 public rotation llEuler2Rot(vector v) 252 public void llBreakAllLinks()
247 { 253 {
248 return m_LSL_Functions.llEuler2Rot(v); 254 m_LSL_Functions.llBreakAllLinks();
249 } 255 }
250 256
251 public rotation llAxes2Rot(vector fwd, vector left, vector up) 257 public void llBreakLink(int linknum)
252 { 258 {
253 return m_LSL_Functions.llAxes2Rot(fwd, left, up); 259 m_LSL_Functions.llBreakLink(linknum);
254 } 260 }
255 261
256 public vector llRot2Fwd(rotation r) 262 public LSL_Integer llCeil(double f)
257 { 263 {
258 return m_LSL_Functions.llRot2Fwd(r); 264 return m_LSL_Functions.llCeil(f);
259 } 265 }
260 266
261 public vector llRot2Left(rotation r) 267 public void llClearCameraParams()
262 { 268 {
263 return m_LSL_Functions.llRot2Left(r); 269 m_LSL_Functions.llClearCameraParams();
264 } 270 }
265 271
266 public vector llRot2Up(rotation r) 272 public void llCloseRemoteDataChannel(string channel)
267 { 273 {
268 return m_LSL_Functions.llRot2Up(r); 274 m_LSL_Functions.llCloseRemoteDataChannel(channel);
269 } 275 }
270 276
271 public rotation llRotBetween(vector start, vector end) 277 public LSL_Float llCloud(LSL_Vector offset)
272 { 278 {
273 return m_LSL_Functions.llRotBetween(start, end); 279 return m_LSL_Functions.llCloud(offset);
274 } 280 }
275 281
276 public void llWhisper(int channelID, string text) 282 public void llCollisionFilter(string name, string id, int accept)
277 { 283 {
278 m_LSL_Functions.llWhisper(channelID, text); 284 m_LSL_Functions.llCollisionFilter(name, id, accept);
279 } 285 }
280 286
281 public void llSay(int channelID, string text) 287 public void llCollisionSound(string impact_sound, double impact_volume)
282 { 288 {
283 m_LSL_Functions.llSay(channelID, text); 289 m_LSL_Functions.llCollisionSound(impact_sound, impact_volume);
284 } 290 }
285 291
286 // 292 public void llCollisionSprite(string impact_sprite)
287 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
288 //
289 public void llShout(int channelID, string text)
290 { 293 {
291 m_LSL_Functions.llShout(channelID, text); 294 m_LSL_Functions.llCollisionSprite(impact_sprite);
292 } 295 }
293 296
294 public void llOwnerSay(string msg) 297 public LSL_Float llCos(double f)
295 { 298 {
296 m_LSL_Functions.llOwnerSay(msg); 299 return m_LSL_Functions.llCos(f);
297 } 300 }
298 301
299 public void llRegionSay(int channelID, string text) 302 public void llCreateLink(string target, int parent)
300 { 303 {
301 m_LSL_Functions.llRegionSay(channelID, text); 304 m_LSL_Functions.llCreateLink(target, parent);
302 } 305 }
303 306
304 public LSL_Types.LSLInteger llListen(int channelID, string name, string ID, string msg) 307 public LSL_List llCSV2List(string src)
305 { 308 {
306 return m_LSL_Functions.llListen(channelID, name, ID, msg); 309 return m_LSL_Functions.llCSV2List(src);
307 } 310 }
308 311
309 public void llListenControl(int number, int active) 312 public LSL_List llDeleteSubList(LSL_List src, int start, int end)
310 { 313 {
311 m_LSL_Functions.llListenControl(number, active); 314 return m_LSL_Functions.llDeleteSubList(src, start, end);
312 } 315 }
313 316
314 public void llListenRemove(int number) 317 public LSL_String llDeleteSubString(string src, int start, int end)
315 { 318 {
316 m_LSL_Functions.llListenRemove(number); 319 return m_LSL_Functions.llDeleteSubString(src, start, end);
317 } 320 }
318 321
319 public void llSensor(string name, string id, int type, double range, double arc) 322 public void llDetachFromAvatar()
320 { 323 {
321 m_LSL_Functions.llSensor(name, id, type, range, arc); 324 m_LSL_Functions.llDetachFromAvatar();
322 } 325 }
323 326
324 public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate) 327 public LSL_Vector llDetectedGrab(int number)
325 { 328 {
326 m_LSL_Functions.llSensorRepeat(name, id, type, range, arc, rate); 329 return m_LSL_Functions.llDetectedGrab(number);
327 } 330 }
328 331
329 public void llSensorRemove() 332 public LSL_Integer llDetectedGroup(int number)
330 { 333 {
331 m_LSL_Functions.llSensorRemove(); 334 return m_LSL_Functions.llDetectedGroup(number);
332 } 335 }
333 336
334 public string llDetectedName(int number) 337 public LSL_Key llDetectedKey(int number)
335 { 338 {
336 return m_LSL_Functions.llDetectedName(number); 339 return m_LSL_Functions.llDetectedKey(number);
337 } 340 }
338 341
339 public string llDetectedKey(int number) 342 public LSL_Integer llDetectedLinkNumber(int number)
340 { 343 {
341 return m_LSL_Functions.llDetectedKey(number); 344 return m_LSL_Functions.llDetectedLinkNumber(number);
345 }
346
347 public LSL_String llDetectedName(int number)
348 {
349 return m_LSL_Functions.llDetectedName(number);
342 } 350 }
343 351
344 public string llDetectedOwner(int number) 352 public LSL_Key llDetectedOwner(int number)
345 { 353 {
346 return m_LSL_Functions.llDetectedOwner(number); 354 return m_LSL_Functions.llDetectedOwner(number);
347 } 355 }
348 356
349 public LSL_Types.LSLInteger llDetectedType(int number) 357 public LSL_Vector llDetectedPos(int number)
358 {
359 return m_LSL_Functions.llDetectedPos(number);
360 }
361
362 public LSL_Rotation llDetectedRot(int number)
363 {
364 return m_LSL_Functions.llDetectedRot(number);
365 }
366
367 public LSL_Integer llDetectedType(int number)
350 { 368 {
351 return m_LSL_Functions.llDetectedType(number); 369 return m_LSL_Functions.llDetectedType(number);
352 } 370 }
353 371
354 public vector llDetectedPos(int number) 372 public LSL_Vector llDetectedTouchBinormal(int index)
355 { 373 {
356 return m_LSL_Functions.llDetectedPos(number); 374 return m_LSL_Functions.llDetectedTouchBinormal(index);
357 } 375 }
358 376
359 public vector llDetectedVel(int number) 377 public LSL_Integer llDetectedTouchFace(int index)
360 { 378 {
361 return m_LSL_Functions.llDetectedVel(number); 379 return m_LSL_Functions.llDetectedTouchFace(index);
362 } 380 }
363 381
364 public vector llDetectedGrab(int number) 382 public LSL_Vector llDetectedTouchNormal(int index)
365 { 383 {
366 return m_LSL_Functions.llDetectedGrab(number); 384 return m_LSL_Functions.llDetectedTouchNormal(index);
367 } 385 }
368 386
369 public rotation llDetectedRot(int number) 387 public LSL_Vector llDetectedTouchPos(int index)
370 { 388 {
371 return m_LSL_Functions.llDetectedRot(number); 389 return m_LSL_Functions.llDetectedTouchPos(index);
372 } 390 }
373 391
374 public LSL_Types.LSLInteger llDetectedGroup(int number) 392 public LSL_Vector llDetectedTouchST(int index)
375 { 393 {
376 return m_LSL_Functions.llDetectedGroup(number); 394 return m_LSL_Functions.llDetectedTouchST(index);
377 } 395 }
378 396
379 public LSL_Types.LSLInteger llDetectedLinkNumber(int number) 397 public LSL_Vector llDetectedTouchUV(int index)
380 { 398 {
381 return m_LSL_Functions.llDetectedLinkNumber(number); 399 return m_LSL_Functions.llDetectedTouchUV(index);
400 }
401
402 public LSL_Vector llDetectedVel(int number)
403 {
404 return m_LSL_Functions.llDetectedVel(number);
405 }
406
407 public void llDialog(string avatar, string message, LSL_List buttons, int chat_channel)
408 {
409 m_LSL_Functions.llDialog(avatar, message, buttons, chat_channel);
382 } 410 }
383 411
384 //
385 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
386 //
387 public void llDie() 412 public void llDie()
388 { 413 {
389 m_LSL_Functions.llDie(); 414 m_LSL_Functions.llDie();
390 } 415 }
391 416
392 public double llGround(vector offset) 417 public LSL_String llDumpList2String(LSL_List src, string seperator)
393 { 418 {
394 return m_LSL_Functions.llGround(offset); 419 return m_LSL_Functions.llDumpList2String(src, seperator);
395 } 420 }
396 421
397 public double llCloud(vector offset) 422 public LSL_Integer llEdgeOfWorld(LSL_Vector pos, LSL_Vector dir)
398 { 423 {
399 return m_LSL_Functions.llCloud(offset); 424 return m_LSL_Functions.llEdgeOfWorld(pos, dir);
400 } 425 }
401 426
402 public vector llWind(vector offset) 427 public void llEjectFromLand(string pest)
403 { 428 {
404 return m_LSL_Functions.llWind(offset); 429 m_LSL_Functions.llEjectFromLand(pest);
405 } 430 }
406 431
407 public void llSetStatus(int status, int value) 432 public void llEmail(string address, string subject, string message)
408 { 433 {
409 m_LSL_Functions.llSetStatus(status, value); 434 m_LSL_Functions.llEmail(address, subject, message);
410 } 435 }
411 436
412 public LSL_Types.LSLInteger llGetStatus(int status) 437 public LSL_String llEscapeURL(string url)
413 { 438 {
414 return m_LSL_Functions.llGetStatus(status); 439 return m_LSL_Functions.llEscapeURL(url);
415 } 440 }
416 441
417 public void llSetScale(vector scale) 442 public LSL_Rotation llEuler2Rot(LSL_Vector v)
418 { 443 {
419 m_LSL_Functions.llSetScale(scale); 444 return m_LSL_Functions.llEuler2Rot(v);
420 } 445 }
421 446
422 public vector llGetScale() 447 public LSL_Float llFabs(double f)
423 { 448 {
424 return m_LSL_Functions.llGetScale(); 449 return m_LSL_Functions.llFabs(f);
425 } 450 }
426 451
427 public void llSetColor(vector color, int face) 452 public LSL_Integer llFloor(double f)
428 { 453 {
429 m_LSL_Functions.llSetColor(color, face); 454 return m_LSL_Functions.llFloor(f);
430 } 455 }
431 456
432 public double llGetAlpha(int face) 457 public void llForceMouselook(int mouselook)
433 { 458 {
434 return m_LSL_Functions.llGetAlpha(face); 459 m_LSL_Functions.llForceMouselook(mouselook);
435 } 460 }
436 461
437 public void llSetAlpha(double alpha, int face) 462 public LSL_Float llFrand(double mag)
438 { 463 {
439 m_LSL_Functions.llSetAlpha(alpha, face); 464 return m_LSL_Functions.llFrand(mag);
440 } 465 }
441 466
442 public vector llGetColor(int face) 467 public LSL_Vector llGetAccel()
443 { 468 {
444 return m_LSL_Functions.llGetColor(face); 469 return m_LSL_Functions.llGetAccel();
445 } 470 }
446 471
447 public void llSetTexture(string texture, int face) 472 public LSL_Integer llGetAgentInfo(string id)
448 { 473 {
449 m_LSL_Functions.llSetTexture(texture, face); 474 return m_LSL_Functions.llGetAgentInfo(id);
450 } 475 }
451 476
452 public void llScaleTexture(double u, double v, int face) 477 public LSL_Vector llGetAgentSize(string id)
453 { 478 {
454 m_LSL_Functions.llScaleTexture(u, v, face); 479 return m_LSL_Functions.llGetAgentSize(id);
455 } 480 }
456 481
457 public void llOffsetTexture(double u, double v, int face) 482 public LSL_Float llGetAlpha(int face)
458 { 483 {
459 m_LSL_Functions.llOffsetTexture(u, v, face); 484 return m_LSL_Functions.llGetAlpha(face);
460 } 485 }
461 486
462 public void llRotateTexture(double rotation, int face) 487 public LSL_Float llGetAndResetTime()
463 { 488 {
464 m_LSL_Functions.llRotateTexture(rotation, face); 489 return m_LSL_Functions.llGetAndResetTime();
465 } 490 }
466 491
467 public string llGetTexture(int face) 492 public LSL_String llGetAnimation(string id)
468 { 493 {
469 return m_LSL_Functions.llGetTexture(face); 494 return m_LSL_Functions.llGetAnimation(id);
470 } 495 }
471 496
472 // 497 public LSL_List llGetAnimationList(string id)
473 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
474 //
475 public void llSetPos(vector pos)
476 { 498 {
477 m_LSL_Functions.llSetPos(pos); 499 return m_LSL_Functions.llGetAnimationList(id);
478 } 500 }
479 501
480 public vector llGetPos() 502 public LSL_Integer llGetAttached()
481 { 503 {
482 return m_LSL_Functions.llGetPos(); 504 return m_LSL_Functions.llGetAttached();
483 } 505 }
484 506
485 public vector llGetLocalPos() 507 public LSL_List llGetBoundingBox(string obj)
486 { 508 {
487 return m_LSL_Functions.llGetLocalPos(); 509 return m_LSL_Functions.llGetBoundingBox(obj);
488 } 510 }
489 511
490 public void llSetRot(rotation rot) 512 public LSL_Vector llGetCameraPos()
491 { 513 {
492 m_LSL_Functions.llSetRot(rot); 514 return m_LSL_Functions.llGetCameraPos();
493 } 515 }
494 516
495 public rotation llGetRot() 517 public LSL_Rotation llGetCameraRot()
496 { 518 {
497 return m_LSL_Functions.llGetRot(); 519 return m_LSL_Functions.llGetCameraRot();
498 } 520 }
499 521
500 public rotation llGetLocalRot() 522 public LSL_Vector llGetCenterOfMass()
501 { 523 {
502 return m_LSL_Functions.llGetLocalRot(); 524 return m_LSL_Functions.llGetCenterOfMass();
503 } 525 }
504 526
505 public void llSetForce(vector force, int local) 527 public LSL_Vector llGetColor(int face)
506 { 528 {
507 m_LSL_Functions.llSetForce(force, local); 529 return m_LSL_Functions.llGetColor(face);
508 } 530 }
509 531
510 public vector llGetForce() 532 public LSL_String llGetCreator()
511 { 533 {
512 return m_LSL_Functions.llGetForce(); 534 return m_LSL_Functions.llGetCreator();
513 } 535 }
514 536
515 public LSL_Types.LSLInteger llTarget(vector position, double range) 537 public LSL_String llGetDate()
516 { 538 {
517 return m_LSL_Functions.llTarget(position, range); 539 return m_LSL_Functions.llGetDate();
518 } 540 }
519 541
520 public void llTargetRemove(int number) 542 public LSL_Float llGetEnergy()
521 { 543 {
522 m_LSL_Functions.llTargetRemove(number); 544 return m_LSL_Functions.llGetEnergy();
523 } 545 }
524 546
525 public LSL_Types.LSLInteger llRotTarget(rotation rot, double error) 547 public LSL_Vector llGetForce()
526 { 548 {
527 return m_LSL_Functions.llRotTarget(rot, error); 549 return m_LSL_Functions.llGetForce();
528 } 550 }
529 551
530 public void llRotTargetRemove(int number) 552 public LSL_Integer llGetFreeMemory()
531 { 553 {
532 m_LSL_Functions.llRotTargetRemove(number); 554 return m_LSL_Functions.llGetFreeMemory();
533 } 555 }
534 556
535 public void llMoveToTarget(vector target, double tau) 557 public LSL_Vector llGetGeometricCenter()
536 { 558 {
537 m_LSL_Functions.llMoveToTarget(target, tau); 559 return m_LSL_Functions.llGetGeometricCenter();
538 } 560 }
539 561
540 public void llStopMoveToTarget() 562 public LSL_Float llGetGMTclock()
541 { 563 {
542 m_LSL_Functions.llStopMoveToTarget(); 564 return m_LSL_Functions.llGetGMTclock();
543 } 565 }
544 566
545 public void llApplyImpulse(vector force, int local) 567 public LSL_Key llGetInventoryCreator(string item)
546 { 568 {
547 m_LSL_Functions.llApplyImpulse(force, local); 569 return m_LSL_Functions.llGetInventoryCreator(item);
548 } 570 }
549 571
550 // 572 public LSL_Key llGetInventoryKey(string name)
551 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
552 //
553 public void llApplyRotationalImpulse(vector force, int local)
554 { 573 {
555 m_LSL_Functions.llApplyRotationalImpulse(force, local); 574 return m_LSL_Functions.llGetInventoryKey(name);
556 } 575 }
557 576
558 public void llSetTorque(vector torque, int local) 577 public LSL_String llGetInventoryName(int type, int number)
559 { 578 {
560 m_LSL_Functions.llSetTorque(torque, local); 579 return m_LSL_Functions.llGetInventoryName(type, number);
561 } 580 }
562 581
563 public vector llGetTorque() 582 public LSL_Integer llGetInventoryNumber(int type)
564 { 583 {
565 return m_LSL_Functions.llGetTorque(); 584 return m_LSL_Functions.llGetInventoryNumber(type);
566 } 585 }
567 586
568 public void llSetForceAndTorque(vector force, vector torque, int local) 587 public LSL_Integer llGetInventoryPermMask(string item, int mask)
569 { 588 {
570 m_LSL_Functions.llSetForceAndTorque(force, torque, local); 589 return m_LSL_Functions.llGetInventoryPermMask(item, mask);
571 } 590 }
572 591
573 public vector llGetVel() 592 public LSL_Integer llGetInventoryType(string name)
574 { 593 {
575 return m_LSL_Functions.llGetVel(); 594 return m_LSL_Functions.llGetInventoryType(name);
576 } 595 }
577 596
578 public vector llGetAccel() 597 public LSL_Key llGetKey()
579 { 598 {
580 return m_LSL_Functions.llGetAccel(); 599 return m_LSL_Functions.llGetKey();
581 } 600 }
582 601
583 public vector llGetOmega() 602 public LSL_Key llGetLandOwnerAt(LSL_Vector pos)
584 { 603 {
585 return m_LSL_Functions.llGetOmega(); 604 return m_LSL_Functions.llGetLandOwnerAt(pos);
586 } 605 }
587 606
588 public double llGetTimeOfDay() 607 public LSL_Key llGetLinkKey(int linknum)
589 { 608 {
590 return m_LSL_Functions.llGetTimeOfDay(); 609 return m_LSL_Functions.llGetLinkKey(linknum);
591 } 610 }
592 611
593 public double llGetWallclock() 612 public LSL_String llGetLinkName(int linknum)
594 { 613 {
595 return m_LSL_Functions.llGetWallclock(); 614 return m_LSL_Functions.llGetLinkName(linknum);
596 } 615 }
597 616
598 public double llGetTime() 617 public LSL_Integer llGetLinkNumber()
599 { 618 {
600 return m_LSL_Functions.llGetTime(); 619 return m_LSL_Functions.llGetLinkNumber();
601 } 620 }
602 621
603 public void llResetTime() 622 public LSL_Integer llGetListEntryType(LSL_List src, int index)
604 { 623 {
605 m_LSL_Functions.llResetTime(); 624 return m_LSL_Functions.llGetListEntryType(src, index);
606 } 625 }
607 626
608 public double llGetAndResetTime() 627 public LSL_Integer llGetListLength(LSL_List src)
609 { 628 {
610 return m_LSL_Functions.llGetAndResetTime(); 629 return m_LSL_Functions.llGetListLength(src);
611 } 630 }
612 631
613 public void llSound() 632 public LSL_Vector llGetLocalPos()
614 { 633 {
615 m_LSL_Functions.llSound(); 634 return m_LSL_Functions.llGetLocalPos();
616 } 635 }
617 636
618 public void llPlaySound(string sound, double volume) 637 public LSL_Rotation llGetLocalRot()
619 { 638 {
620 m_LSL_Functions.llPlaySound(sound, volume); 639 return m_LSL_Functions.llGetLocalRot();
621 } 640 }
622 641
623 public void llLoopSound(string sound, double volume) 642 public LSL_Float llGetMass()
624 { 643 {
625 m_LSL_Functions.llLoopSound(sound, volume); 644 return m_LSL_Functions.llGetMass();
626 } 645 }
627 646
628 public void llLoopSoundMaster(string sound, double volume) 647 public void llGetNextEmail(string address, string subject)
629 { 648 {
630 m_LSL_Functions.llLoopSoundMaster(sound, volume); 649 m_LSL_Functions.llGetNextEmail(address, subject);
631 } 650 }
632 651
633 public void llLoopSoundSlave(string sound, double volume) 652 public LSL_String llGetNotecardLine(string name, int line)
634 { 653 {
635 m_LSL_Functions.llLoopSoundSlave(sound, volume); 654 return m_LSL_Functions.llGetNotecardLine(name, line);
636 } 655 }
637 656
638 public void llPlaySoundSlave(string sound, double volume) 657 public LSL_Key llGetNumberOfNotecardLines(string name)
639 { 658 {
640 m_LSL_Functions.llPlaySoundSlave(sound, volume); 659 return m_LSL_Functions.llGetNumberOfNotecardLines(name);
641 } 660 }
642 661
643 // 662 public LSL_Integer llGetNumberOfPrims()
644 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
645 //
646 public void llTriggerSound(string sound, double volume)
647 { 663 {
648 m_LSL_Functions.llTriggerSound(sound, volume); 664 return m_LSL_Functions.llGetNumberOfPrims();
649 } 665 }
650 666
651 public void llStopSound() 667 public LSL_Integer llGetNumberOfSides()
652 { 668 {
653 m_LSL_Functions.llStopSound(); 669 return m_LSL_Functions.llGetNumberOfSides();
654 } 670 }
655 671
656 public void llPreloadSound(string sound) 672 public LSL_String llGetObjectDesc()
657 { 673 {
658 m_LSL_Functions.llPreloadSound(sound); 674 return m_LSL_Functions.llGetObjectDesc();
659 } 675 }
660 676
661 public string llGetSubString(string src, int start, int end) 677 public LSL_List llGetObjectDetails(string id, LSL_List args)
662 { 678 {
663 return m_LSL_Functions.llGetSubString(src, start, end); 679 return m_LSL_Functions.llGetObjectDetails(id, args);
664 } 680 }
665 681
666 public string llDeleteSubString(string src, int start, int end) 682 public LSL_Float llGetObjectMass(string id)
667 { 683 {
668 return m_LSL_Functions.llDeleteSubString(src, start, end); 684 return m_LSL_Functions.llGetObjectMass(id);
669 } 685 }
670 686
671 public string llInsertString(string dst, int position, string src) 687 public LSL_String llGetObjectName()
672 { 688 {
673 return m_LSL_Functions.llInsertString(dst, position, src); 689 return m_LSL_Functions.llGetObjectName();
674 } 690 }
675 691
676 public string llToUpper(string source) 692 public LSL_Integer llGetObjectPermMask(int mask)
677 { 693 {
678 return m_LSL_Functions.llToUpper(source); 694 return m_LSL_Functions.llGetObjectPermMask(mask);
679 } 695 }
680 696
681 public string llToLower(string source) 697 public LSL_Integer llGetObjectPrimCount(string object_id)
682 { 698 {
683 return m_LSL_Functions.llToLower(source); 699 return m_LSL_Functions.llGetObjectPrimCount(object_id);
684 } 700 }
685 701
686 public LSL_Types.LSLInteger llGiveMoney(string destination, int amount) 702 public LSL_Vector llGetOmega()
687 { 703 {
688 return m_LSL_Functions.llGiveMoney(destination, amount); 704 return m_LSL_Functions.llGetOmega();
689 } 705 }
690 706
691 public void llMakeExplosion() 707 public LSL_Key llGetOwner()
692 { 708 {
693 m_LSL_Functions.llMakeExplosion(); 709 return m_LSL_Functions.llGetOwner();
694 } 710 }
695 711
696 public void llMakeFountain() 712 public LSL_Key llGetOwnerKey(string id)
697 { 713 {
698 m_LSL_Functions.llMakeFountain(); 714 return m_LSL_Functions.llGetOwnerKey(id);
699 } 715 }
700 716
701 public void llMakeSmoke() 717 public LSL_List llGetParcelDetails(LSL_Vector pos, LSL_List param)
702 { 718 {
703 m_LSL_Functions.llMakeSmoke(); 719 return m_LSL_Functions.llGetParcelDetails(pos, param);
704 } 720 }
705 721
706 public void llMakeFire() 722 public LSL_Integer llGetParcelFlags(LSL_Vector pos)
707 { 723 {
708 m_LSL_Functions.llMakeFire(); 724 return m_LSL_Functions.llGetParcelFlags(pos);
709 } 725 }
710 726
711 public void llRezObject(string inventory, vector pos, vector vel, rotation rot, int param) 727 public LSL_Integer llGetParcelMaxPrims(LSL_Vector pos, int sim_wide)
712 { 728 {
713 m_LSL_Functions.llRezObject(inventory, pos, vel, rot, param); 729 return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide);
714 } 730 }
715 731
716 public void llLookAt(vector target, double strength, double damping) 732 public LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide)
717 { 733 {
718 m_LSL_Functions.llLookAt(target, strength, damping); 734 return m_LSL_Functions.llGetParcelPrimCount(pos, category, sim_wide);
719 } 735 }
720 736
721 public void llStopLookAt() 737 public LSL_List llGetParcelPrimOwners(LSL_Vector pos)
722 { 738 {
723 m_LSL_Functions.llStopLookAt(); 739 return m_LSL_Functions.llGetParcelPrimOwners(pos);
724 } 740 }
725 741
726 public void llSetTimerEvent(double sec) 742 public LSL_Integer llGetPermissions()
727 { 743 {
728 m_LSL_Functions.llSetTimerEvent(sec); 744 return m_LSL_Functions.llGetPermissions();
729 } 745 }
730 746
731 public void llSleep(double sec) 747 public LSL_Key llGetPermissionsKey()
732 { 748 {
733 m_LSL_Functions.llSleep(sec); 749 return m_LSL_Functions.llGetPermissionsKey();
734 } 750 }
735 751
736 // 752 public LSL_Vector llGetPos()
737 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
738 //
739 public double llGetMass()
740 { 753 {
741 return m_LSL_Functions.llGetMass(); 754 return m_LSL_Functions.llGetPos();
742 } 755 }
743 756
744 public void llCollisionFilter(string name, string id, int accept) 757 public LSL_List llGetPrimitiveParams(LSL_List rules)
745 { 758 {
746 m_LSL_Functions.llCollisionFilter(name, id, accept); 759 return m_LSL_Functions.llGetPrimitiveParams(rules);
747 } 760 }
748 761
749 public void llTakeControls(int controls, int accept, int pass_on) 762 public LSL_Integer llGetRegionAgentCount()
750 { 763 {
751 m_LSL_Functions.llTakeControls(controls, accept, pass_on); 764 return m_LSL_Functions.llGetRegionAgentCount();
752 } 765 }
753 766
754 public void llReleaseControls() 767 public LSL_Vector llGetRegionCorner()
755 { 768 {
756 m_LSL_Functions.llReleaseControls(); 769 return m_LSL_Functions.llGetRegionCorner();
757 } 770 }
758 771
759 public void llAttachToAvatar(int attachment) 772 public LSL_Integer llGetRegionFlags()
760 { 773 {
761 m_LSL_Functions.llAttachToAvatar(attachment); 774 return m_LSL_Functions.llGetRegionFlags();
762 } 775 }
763 776
764 public void llDetachFromAvatar() 777 public LSL_Float llGetRegionFPS()
765 { 778 {
766 m_LSL_Functions.llDetachFromAvatar(); 779 return m_LSL_Functions.llGetRegionFPS();
767 } 780 }
768 781
769 public void llTakeCamera(string avatar) 782 public LSL_String llGetRegionName()
770 { 783 {
771 m_LSL_Functions.llTakeCamera(avatar); 784 return m_LSL_Functions.llGetRegionName();
772 } 785 }
773 786
774 public void llReleaseCamera(string avatar) 787 public LSL_Float llGetRegionTimeDilation()
775 { 788 {
776 m_LSL_Functions.llReleaseCamera(avatar); 789 return m_LSL_Functions.llGetRegionTimeDilation();
777 } 790 }
778 791
779 public string llGetOwner() 792 public LSL_Vector llGetRootPosition()
780 { 793 {
781 return m_LSL_Functions.llGetOwner(); 794 return m_LSL_Functions.llGetRootPosition();
782 } 795 }
783 796
784 public void llInstantMessage(string user, string message) 797 public LSL_Rotation llGetRootRotation()
785 { 798 {
786 m_LSL_Functions.llInstantMessage(user, message); 799 return m_LSL_Functions.llGetRootRotation();
787 } 800 }
788 801
789 public void llEmail(string address, string subject, string message) 802 public LSL_Rotation llGetRot()
790 { 803 {
791 m_LSL_Functions.llEmail(address, subject, message); 804 return m_LSL_Functions.llGetRot();
792 } 805 }
793 806
794 public void llGetNextEmail(string address, string subject) 807 public LSL_Vector llGetScale()
795 { 808 {
796 m_LSL_Functions.llGetNextEmail(address, subject); 809 return m_LSL_Functions.llGetScale();
797 } 810 }
798 811
799 public string llGetKey() 812 public LSL_String llGetScriptName()
800 { 813 {
801 return m_LSL_Functions.llGetKey(); 814 return m_LSL_Functions.llGetScriptName();
802 } 815 }
803 816
804 public void llSetBuoyancy(double buoyancy) 817 public LSL_Integer llGetScriptState(string name)
805 { 818 {
806 m_LSL_Functions.llSetBuoyancy(buoyancy); 819 return m_LSL_Functions.llGetScriptState(name);
807 } 820 }
808 821
809 public void llSetHoverHeight(double height, int water, double tau) 822 public LSL_String llGetSimulatorHostname()
810 { 823 {
811 m_LSL_Functions.llSetHoverHeight(height, water, tau); 824 return m_LSL_Functions.llGetSimulatorHostname();
812 } 825 }
813 826
814 public void llStopHover() 827 public LSL_Integer llGetStartParameter()
815 { 828 {
816 m_LSL_Functions.llStopHover(); 829 return m_LSL_Functions.llGetStartParameter();
817 } 830 }
818 831
819 public void llMinEventDelay(double delay) 832 public LSL_Integer llGetStatus(int status)
820 { 833 {
821 m_LSL_Functions.llMinEventDelay(delay); 834 return m_LSL_Functions.llGetStatus(status);
822 } 835 }
823 836
824 public void llSoundPreload() 837 public LSL_String llGetSubString(string src, int start, int end)
825 { 838 {
826 m_LSL_Functions.llSoundPreload(); 839 return m_LSL_Functions.llGetSubString(src, start, end);
827 } 840 }
828 841
829 public void llRotLookAt(rotation target, double strength, double damping) 842 public LSL_Vector llGetSunDirection()
830 { 843 {
831 m_LSL_Functions.llRotLookAt(target, strength, damping); 844 return m_LSL_Functions.llGetSunDirection();
832 } 845 }
833 846
834 // 847 public LSL_String llGetTexture(int face)
835 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
836 //
837 public LSL_Types.LSLInteger llStringLength(string str)
838 { 848 {
839 return m_LSL_Functions.llStringLength(str); 849 return m_LSL_Functions.llGetTexture(face);
840 } 850 }
841 851
842 public void llStartAnimation(string anim) 852 public LSL_Vector llGetTextureOffset(int face)
843 { 853 {
844 m_LSL_Functions.llStartAnimation(anim); 854 return m_LSL_Functions.llGetTextureOffset(face);
845 } 855 }
846 856
847 public void llStopAnimation(string anim) 857 public LSL_Float llGetTextureRot(int side)
848 { 858 {
849 m_LSL_Functions.llStopAnimation(anim); 859 return m_LSL_Functions.llGetTextureRot(side);
850 } 860 }
851 861
852 public void llPointAt() 862 public LSL_Vector llGetTextureScale(int side)
853 { 863 {
854 m_LSL_Functions.llPointAt(); 864 return m_LSL_Functions.llGetTextureScale(side);
855 } 865 }
856 866
857 public void llStopPointAt() 867 public LSL_Float llGetTime()
858 { 868 {
859 m_LSL_Functions.llStopPointAt(); 869 return m_LSL_Functions.llGetTime();
860 } 870 }
861 871
862 public void llTargetOmega(vector axis, double spinrate, double gain) 872 public LSL_Float llGetTimeOfDay()
863 { 873 {
864 m_LSL_Functions.llTargetOmega(axis, spinrate, gain); 874 return m_LSL_Functions.llGetTimeOfDay();
865 } 875 }
866 876
867 public LSL_Types.LSLInteger llGetStartParameter() 877 public LSL_String llGetTimestamp()
868 { 878 {
869 return m_StartParam; 879 return m_LSL_Functions.llGetTimestamp();
870 } 880 }
871 881
872 public void llGodLikeRezObject(string inventory, vector pos) 882 public LSL_Vector llGetTorque()
873 { 883 {
874 m_LSL_Functions.llGodLikeRezObject(inventory, pos); 884 return m_LSL_Functions.llGetTorque();
875 } 885 }
876 886
877 public void llRequestPermissions(string agent, int perm) 887 public LSL_Integer llGetUnixTime()
878 { 888 {
879 m_LSL_Functions.llRequestPermissions(agent, perm); 889 return m_LSL_Functions.llGetUnixTime();
880 } 890 }
881 891
882 public string llGetPermissionsKey() 892 public LSL_Vector llGetVel()
883 { 893 {
884 return m_LSL_Functions.llGetPermissionsKey(); 894 return m_LSL_Functions.llGetVel();
885 } 895 }
886 896
887 public LSL_Types.LSLInteger llGetPermissions() 897 public LSL_Float llGetWallclock()
888 { 898 {
889 return m_LSL_Functions.llGetPermissions(); 899 return m_LSL_Functions.llGetWallclock();
890 } 900 }
891 901
892 public LSL_Types.LSLInteger llGetLinkNumber() 902 public void llGiveInventory(string destination, string inventory)
893 { 903 {
894 return m_LSL_Functions.llGetLinkNumber(); 904 m_LSL_Functions.llGiveInventory(destination, inventory);
895 } 905 }
896 906
897 public void llSetLinkColor(int linknumber, vector color, int face) 907 public void llGiveInventoryList(string destination, string category, LSL_List inventory)
898 { 908 {
899 m_LSL_Functions.llSetLinkColor(linknumber, color, face); 909 m_LSL_Functions.llGiveInventoryList(destination, category, inventory);
900 } 910 }
901 911
902 public void llCreateLink(string target, int parent) 912 public LSL_Integer llGiveMoney(string destination, int amount)
903 { 913 {
904 m_LSL_Functions.llCreateLink(target, parent); 914 return m_LSL_Functions.llGiveMoney(destination, amount);
905 } 915 }
906 916
907 public void llBreakLink(int linknum) 917 public void llGodLikeRezObject(string inventory, LSL_Vector pos)
908 { 918 {
909 m_LSL_Functions.llBreakLink(linknum); 919 m_LSL_Functions.llGodLikeRezObject(inventory, pos);
910 } 920 }
911 921
912 public void llBreakAllLinks() 922 public LSL_Float llGround(LSL_Vector offset)
913 { 923 {
914 m_LSL_Functions.llBreakAllLinks(); 924 return m_LSL_Functions.llGround(offset);
915 } 925 }
916 926
917 public string llGetLinkKey(int linknum) 927 public LSL_Vector llGroundContour(LSL_Vector offset)
918 { 928 {
919 return m_LSL_Functions.llGetLinkKey(linknum); 929 return m_LSL_Functions.llGroundContour(offset);
920 } 930 }
921 931
922 public string llGetLinkName(int linknum) 932 public LSL_Vector llGroundNormal(LSL_Vector offset)
923 { 933 {
924 return m_LSL_Functions.llGetLinkName(linknum); 934 return m_LSL_Functions.llGroundNormal(offset);
925 } 935 }
926 936
927 public LSL_Types.LSLInteger llGetInventoryNumber(int type) 937 public void llGroundRepel(double height, int water, double tau)
928 { 938 {
929 return m_LSL_Functions.llGetInventoryNumber(type); 939 m_LSL_Functions.llGroundRepel(height, water, tau);
930 } 940 }
931 941
932 public string llGetInventoryName(int type, int number) 942 public LSL_Vector llGroundSlope(LSL_Vector offset)
933 { 943 {
934 return m_LSL_Functions.llGetInventoryName(type, number); 944 return m_LSL_Functions.llGroundSlope(offset);
935 } 945 }
936 946
937 // 947 public LSL_String llHTTPRequest(string url, LSL_List parameters, string body)
938 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
939 //
940 public void llSetScriptState(string name, int run)
941 { 948 {
942 m_LSL_Functions.llSetScriptState(name, run); 949 return m_LSL_Functions.llHTTPRequest(url, parameters, body);
943 } 950 }
944 951
945 public double llGetEnergy() 952 public LSL_String llInsertString(string dst, int position, string src)
946 { 953 {
947 return m_LSL_Functions.llGetEnergy(); 954 return m_LSL_Functions.llInsertString(dst, position, src);
948 } 955 }
949 956
950 public void llGiveInventory(string destination, string inventory) 957 public void llInstantMessage(string user, string message)
951 { 958 {
952 m_LSL_Functions.llGiveInventory(destination, inventory); 959 m_LSL_Functions.llInstantMessage(user, message);
953 } 960 }
954 961
955 public void llRemoveInventory(string item) 962 public LSL_String llIntegerToBase64(int number)
956 { 963 {
957 m_LSL_Functions.llRemoveInventory(item); 964 return m_LSL_Functions.llIntegerToBase64(number);
958 } 965 }
959 966
960 public void llSetText(string text, vector color, double alpha) 967 public LSL_String llKey2Name(string id)
961 { 968 {
962 m_LSL_Functions.llSetText(text, color, alpha); 969 return m_LSL_Functions.llKey2Name(id);
963 } 970 }
964 971
965 public double llWater(vector offset) 972 public LSL_String llList2CSV(LSL_List src)
966 { 973 {
967 return m_LSL_Functions.llWater(offset); 974 return m_LSL_Functions.llList2CSV(src);
968 } 975 }
969 976
970 public void llPassTouches(int pass) 977 public LSL_Float llList2Float(LSL_List src, int index)
971 { 978 {
972 m_LSL_Functions.llPassTouches(pass); 979 return m_LSL_Functions.llList2Float(src, index);
973 } 980 }
974 981
975 public string llRequestAgentData(string id, int data) 982 public LSL_Integer llList2Integer(LSL_List src, int index)
976 { 983 {
977 return m_LSL_Functions.llRequestAgentData(id, data); 984 return m_LSL_Functions.llList2Integer(src, index);
978 } 985 }
979 986
980 public string llRequestInventoryData(string name) 987 public LSL_Key llList2Key(LSL_List src, int index)
981 { 988 {
982 return m_LSL_Functions.llRequestInventoryData(name); 989 return m_LSL_Functions.llList2Key(src, index);
983 } 990 }
984 991
985 public void llSetDamage(double damage) 992 public LSL_List llList2List(LSL_List src, int start, int end)
986 { 993 {
987 m_LSL_Functions.llSetDamage(damage); 994 return m_LSL_Functions.llList2List(src, start, end);
988 } 995 }
989 996
990 public void llTeleportAgentHome(string agent) 997 public LSL_List llList2ListStrided(LSL_List src, int start, int end, int stride)
991 { 998 {
992 m_LSL_Functions.llTeleportAgentHome(agent); 999 return m_LSL_Functions.llList2ListStrided(src, start, end, stride);
993 } 1000 }
994 1001
995 public void llModifyLand(int action, int brush) 1002 public LSL_Rotation llList2Rot(LSL_List src, int index)
996 { 1003 {
997 m_LSL_Functions.llModifyLand(action, brush); 1004 return m_LSL_Functions.llList2Rot(src, index);
998 } 1005 }
999 1006
1000 public void llCollisionSound(string impact_sound, double impact_volume) 1007 public LSL_String llList2String(LSL_List src, int index)
1001 { 1008 {
1002 m_LSL_Functions.llCollisionSound(impact_sound, impact_volume); 1009 return m_LSL_Functions.llList2String(src, index);
1003 } 1010 }
1004 1011
1005 public void llCollisionSprite(string impact_sprite) 1012 public LSL_Vector llList2Vector(LSL_List src, int index)
1006 { 1013 {
1007 m_LSL_Functions.llCollisionSprite(impact_sprite); 1014 return m_LSL_Functions.llList2Vector(src, index);
1008 } 1015 }
1009 1016
1010 public string llGetAnimation(string id) 1017 public LSL_Integer llListen(int channelID, string name, string ID, string msg)
1011 { 1018 {
1012 return m_LSL_Functions.llGetAnimation(id); 1019 return m_LSL_Functions.llListen(channelID, name, ID, msg);
1013 } 1020 }
1014 1021
1015 public void llResetScript() 1022 public void llListenControl(int number, int active)
1016 { 1023 {
1017 m_LSL_Functions.llResetScript(); 1024 m_LSL_Functions.llListenControl(number, active);
1018 } 1025 }
1019 1026
1020 public void llMessageLinked(int linknum, int num, string str, string id) 1027 public void llListenRemove(int number)
1021 { 1028 {
1022 m_LSL_Functions.llMessageLinked(linknum, num, str, id); 1029 m_LSL_Functions.llListenRemove(number);
1023 } 1030 }
1024 1031
1025 public void llPushObject(string target, vector impulse, vector ang_impulse, int local) 1032 public LSL_Integer llListFindList(LSL_List src, LSL_List test)
1026 { 1033 {
1027 m_LSL_Functions.llPushObject(target, impulse, ang_impulse, local); 1034 return m_LSL_Functions.llListFindList(src, test);
1028 } 1035 }
1029 1036
1030 public void llPassCollisions(int pass) 1037 public LSL_List llListInsertList(LSL_List dest, LSL_List src, int start)
1031 { 1038 {
1032 m_LSL_Functions.llPassCollisions(pass); 1039 return m_LSL_Functions.llListInsertList(dest, src, start);
1033 } 1040 }
1034 1041
1035 public string llGetScriptName() 1042 public LSL_List llListRandomize(LSL_List src, int stride)
1036 { 1043 {
1037 return m_LSL_Functions.llGetScriptName(); 1044 return m_LSL_Functions.llListRandomize(src, stride);
1038 } 1045 }
1039 1046
1040 public LSL_Types.LSLInteger llGetNumberOfSides() 1047 public LSL_List llListReplaceList(LSL_List dest, LSL_List src, int start, int end)
1041 { 1048 {
1042 return m_LSL_Functions.llGetNumberOfSides(); 1049 return m_LSL_Functions.llListReplaceList(dest, src, start, end);
1043 } 1050 }
1044 1051
1045 // 1052 public LSL_List llListSort(LSL_List src, int stride, int ascending)
1046 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1047 //
1048 public rotation llAxisAngle2Rot(vector axis, double angle)
1049 { 1053 {
1050 return m_LSL_Functions.llAxisAngle2Rot(axis, angle); 1054 return m_LSL_Functions.llListSort(src, stride, ascending);
1051 } 1055 }
1052 1056
1053 public vector llRot2Axis(rotation rot) 1057 public LSL_Float llListStatistics(int operation, LSL_List src)
1054 { 1058 {
1055 return m_LSL_Functions.llRot2Axis(rot); 1059 return m_LSL_Functions.llListStatistics(operation, src);
1056 } 1060 }
1057 1061
1058 public double llRot2Angle(rotation rot) 1062 public void llLoadURL(string avatar_id, string message, string url)
1059 { 1063 {
1060 return m_LSL_Functions.llRot2Angle(rot); 1064 m_LSL_Functions.llLoadURL(avatar_id, message, url);
1061 } 1065 }
1062 1066
1063 public double llAcos(double val) 1067 public LSL_Float llLog(double val)
1064 { 1068 {
1065 return m_LSL_Functions.llAcos(val); 1069 return m_LSL_Functions.llLog(val);
1066 } 1070 }
1067 1071
1068 public double llAsin(double val) 1072 public LSL_Float llLog10(double val)
1069 { 1073 {
1070 return m_LSL_Functions.llAsin(val); 1074 return m_LSL_Functions.llLog10(val);
1071 } 1075 }
1072 1076
1073 public double llAngleBetween(rotation a, rotation b) 1077 public void llLookAt(LSL_Vector target, double strength, double damping)
1074 { 1078 {
1075 return m_LSL_Functions.llAngleBetween(a, b); 1079 m_LSL_Functions.llLookAt(target, strength, damping);
1076 } 1080 }
1077 1081
1078 public string llGetInventoryKey(string name) 1082 public void llLoopSound(string sound, double volume)
1079 { 1083 {
1080 return m_LSL_Functions.llGetInventoryKey(name); 1084 m_LSL_Functions.llLoopSound(sound, volume);
1081 } 1085 }
1082 1086
1083 public void llAllowInventoryDrop(int add) 1087 public void llLoopSoundMaster(string sound, double volume)
1084 { 1088 {
1085 m_LSL_Functions.llAllowInventoryDrop(add); 1089 m_LSL_Functions.llLoopSoundMaster(sound, volume);
1086 } 1090 }
1087 1091
1088 public vector llGetSunDirection() 1092 public void llLoopSoundSlave(string sound, double volume)
1089 { 1093 {
1090 return m_LSL_Functions.llGetSunDirection(); 1094 m_LSL_Functions.llLoopSoundSlave(sound, volume);
1091 } 1095 }
1092 1096
1093 public vector llGetTextureOffset(int face) 1097 public void llMakeExplosion()
1094 { 1098 {
1095 return m_LSL_Functions.llGetTextureOffset(face); 1099 m_LSL_Functions.llMakeExplosion();
1096 } 1100 }
1097 1101
1098 public vector llGetTextureScale(int side) 1102 public void llMakeFire()
1099 { 1103 {
1100 return m_LSL_Functions.llGetTextureScale(side); 1104 m_LSL_Functions.llMakeFire();
1101 } 1105 }
1102 1106
1103 public double llGetTextureRot(int side) 1107 public void llMakeFountain()
1104 { 1108 {
1105 return m_LSL_Functions.llGetTextureRot(side); 1109 m_LSL_Functions.llMakeFountain();
1106 } 1110 }
1107 1111
1108 public LSL_Types.LSLInteger llSubStringIndex(string source, string pattern) 1112 public void llMakeSmoke()
1109 { 1113 {
1110 return m_LSL_Functions.llSubStringIndex(source, pattern); 1114 m_LSL_Functions.llMakeSmoke();
1111 } 1115 }
1112 1116
1113 public string llGetOwnerKey(string id) 1117 public void llMapDestination(string simname, LSL_Vector pos, LSL_Vector look_at)
1114 { 1118 {
1115 return m_LSL_Functions.llGetOwnerKey(id); 1119 m_LSL_Functions.llMapDestination(simname, pos, look_at);
1116 } 1120 }
1117 1121
1118 public vector llGetCenterOfMass() 1122 public LSL_String llMD5String(string src, int nonce)
1119 { 1123 {
1120 return m_LSL_Functions.llGetCenterOfMass(); 1124 return m_LSL_Functions.llMD5String(src, nonce);
1121 } 1125 }
1122 1126
1123 public LSL_Types.list llListSort(LSL_Types.list src, int stride, int ascending) 1127 public void llMessageLinked(int linknum, int num, string str, string id)
1124 { 1128 {
1125 return m_LSL_Functions.llListSort(src, stride, ascending); 1129 m_LSL_Functions.llMessageLinked(linknum, num, str, id);
1126 } 1130 }
1127 1131
1128 public LSL_Types.LSLInteger llGetListLength(LSL_Types.list src) 1132 public void llMinEventDelay(double delay)
1129 { 1133 {
1130 return m_LSL_Functions.llGetListLength(src); 1134 m_LSL_Functions.llMinEventDelay(delay);
1131 } 1135 }
1132 1136
1133 // 1137 public void llModifyLand(int action, int brush)
1134 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1135 //
1136 public LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index)
1137 { 1138 {
1138 return m_LSL_Functions.llList2Integer(src, index); 1139 m_LSL_Functions.llModifyLand(action, brush);
1139 } 1140 }
1140 1141
1141 public double osList2Double(LSL_Types.list src, int index) 1142 public LSL_Integer llModPow(int a, int b, int c)
1142 { 1143 {
1143 return m_LSL_Functions.osList2Double(src, index); 1144 return m_LSL_Functions.llModPow(a, b, c);
1144 } 1145 }
1145 1146
1146 public string llList2String(LSL_Types.list src, int index) 1147 public void llMoveToTarget(LSL_Vector target, double tau)
1147 { 1148 {
1148 return m_LSL_Functions.llList2String(src, index); 1149 m_LSL_Functions.llMoveToTarget(target, tau);
1149 } 1150 }
1150 1151
1151 public string llList2Key(LSL_Types.list src, int index) 1152 public void llOffsetTexture(double u, double v, int face)
1152 { 1153 {
1153 return m_LSL_Functions.llList2Key(src, index); 1154 m_LSL_Functions.llOffsetTexture(u, v, face);
1154 } 1155 }
1155 1156
1156 public vector llList2Vector(LSL_Types.list src, int index) 1157 public void llOpenRemoteDataChannel()
1157 { 1158 {
1158 return m_LSL_Functions.llList2Vector(src, index); 1159 m_LSL_Functions.llOpenRemoteDataChannel();
1159 } 1160 }
1160 1161
1161 public rotation llList2Rot(LSL_Types.list src, int index) 1162 public LSL_Integer llOverMyLand(string id)
1162 { 1163 {
1163 return m_LSL_Functions.llList2Rot(src, index); 1164 return m_LSL_Functions.llOverMyLand(id);
1164 } 1165 }
1165 1166
1166 public LSL_Types.list llList2List(LSL_Types.list src, int start, int end) 1167 public void llOwnerSay(string msg)
1167 { 1168 {
1168 return m_LSL_Functions.llList2List(src, start, end); 1169 m_LSL_Functions.llOwnerSay(msg);
1169 } 1170 }
1170 1171
1171 public LSL_Types.list llDeleteSubList(LSL_Types.list src, int start, int end) 1172 public void llParcelMediaCommandList(LSL_List commandList)
1172 { 1173 {
1173 return m_LSL_Functions.llDeleteSubList(src, start, end); 1174 m_LSL_Functions.llParcelMediaCommandList(commandList);
1174 } 1175 }
1175 1176
1176 public LSL_Types.LSLInteger llGetListEntryType(LSL_Types.list src, int index) 1177 public LSL_List llParcelMediaQuery(LSL_List aList)
1177 { 1178 {
1178 return m_LSL_Functions.llGetListEntryType(src, index); 1179 return m_LSL_Functions.llParcelMediaQuery(aList);
1179 } 1180 }
1180 1181
1181 public string llList2CSV(LSL_Types.list src) 1182 public LSL_List llParseString2List(string str, LSL_List separators, LSL_List spacers)
1182 { 1183 {
1183 return m_LSL_Functions.llList2CSV(src); 1184 return m_LSL_Functions.llParseString2List(str, separators, spacers);
1184 } 1185 }
1185 1186
1186 public LSL_Types.list llCSV2List(string src) 1187 public LSL_List llParseStringKeepNulls(string src, LSL_List seperators, LSL_List spacers)
1187 { 1188 {
1188 return m_LSL_Functions.llCSV2List(src); 1189 return m_LSL_Functions.llParseStringKeepNulls(src, seperators, spacers);
1189 } 1190 }
1190 1191
1191 public LSL_Types.list llListRandomize(LSL_Types.list src, int stride) 1192 public void llParticleSystem(LSL_List rules)
1192 { 1193 {
1193 return m_LSL_Functions.llListRandomize(src, stride); 1194 m_LSL_Functions.llParticleSystem(rules);
1194 } 1195 }
1195 1196
1196 public LSL_Types.list llList2ListStrided(LSL_Types.list src, int start, int end, int stride) 1197 public void llPassCollisions(int pass)
1197 { 1198 {
1198 return m_LSL_Functions.llList2ListStrided(src, start, end, stride); 1199 m_LSL_Functions.llPassCollisions(pass);
1199 } 1200 }
1200 1201
1201 public vector llGetRegionCorner() 1202 public void llPassTouches(int pass)
1202 { 1203 {
1203 return m_LSL_Functions.llGetRegionCorner(); 1204 m_LSL_Functions.llPassTouches(pass);
1204 } 1205 }
1205 1206
1206 public LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int start) 1207 public void llPlaySound(string sound, double volume)
1207 { 1208 {
1208 return m_LSL_Functions.llListInsertList(dest, src, start); 1209 m_LSL_Functions.llPlaySound(sound, volume);
1209 } 1210 }
1210 1211
1211 public LSL_Types.LSLInteger llListFindList(LSL_Types.list src, LSL_Types.list test) 1212 public void llPlaySoundSlave(string sound, double volume)
1212 { 1213 {
1213 return m_LSL_Functions.llListFindList(src, test); 1214 m_LSL_Functions.llPlaySoundSlave(sound, volume);
1214 } 1215 }
1215 1216
1216 public string llGetObjectName() 1217 public void llPointAt()
1217 { 1218 {
1218 return m_LSL_Functions.llGetObjectName(); 1219 m_LSL_Functions.llPointAt();
1219 } 1220 }
1220 1221
1221 public void llSetObjectName(string name) 1222 public LSL_Float llPow(double fbase, double fexponent)
1222 { 1223 {
1223 m_LSL_Functions.llSetObjectName(name); 1224 return m_LSL_Functions.llPow(fbase, fexponent);
1224 } 1225 }
1225 1226
1226 public string llGetDate() 1227 public void llPreloadSound(string sound)
1227 { 1228 {
1228 return m_LSL_Functions.llGetDate(); 1229 m_LSL_Functions.llPreloadSound(sound);
1229 } 1230 }
1230 1231
1231 public LSL_Types.LSLInteger llEdgeOfWorld(vector pos, vector dir) 1232 public void llPushObject(string target, LSL_Vector impulse, LSL_Vector ang_impulse, int local)
1232 { 1233 {
1233 return m_LSL_Functions.llEdgeOfWorld(pos, dir); 1234 m_LSL_Functions.llPushObject(target, impulse, ang_impulse, local);
1234 } 1235 }
1235 1236
1236 public LSL_Types.LSLInteger llGetAgentInfo(string id) 1237 public void llRefreshPrimURL()
1237 { 1238 {
1238 return m_LSL_Functions.llGetAgentInfo(id); 1239 m_LSL_Functions.llRefreshPrimURL();
1239 } 1240 }
1240 1241
1241 // 1242 public void llRegionSay(int channelID, string text)
1242 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1243 //
1244 public void llAdjustSoundVolume(double volume)
1245 { 1243 {
1246 m_LSL_Functions.llAdjustSoundVolume(volume); 1244 m_LSL_Functions.llRegionSay(channelID, text);
1247 } 1245 }
1248 1246
1249 public void llSetSoundQueueing(int queue) 1247 public void llReleaseCamera(string avatar)
1250 { 1248 {
1251 m_LSL_Functions.llSetSoundQueueing(queue); 1249 m_LSL_Functions.llReleaseCamera(avatar);
1252 } 1250 }
1253 1251
1254 public void llSetSoundRadius(double radius) 1252 public void llReleaseControls()
1255 { 1253 {
1256 m_LSL_Functions.llSetSoundRadius(radius); 1254 m_LSL_Functions.llReleaseControls();
1257 } 1255 }
1258 1256
1259 public string llKey2Name(string id) 1257 public void llRemoteDataReply(string channel, string message_id, string sdata, int idata)
1260 { 1258 {
1261 return m_LSL_Functions.llKey2Name(id); 1259 m_LSL_Functions.llRemoteDataReply(channel, message_id, sdata, idata);
1262 } 1260 }
1263 1261
1264 public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) 1262 public void llRemoteDataSetRegion()
1265 { 1263 {
1266 m_LSL_Functions.llSetTextureAnim(mode, face, sizex, sizey, start, length, rate); 1264 m_LSL_Functions.llRemoteDataSetRegion();
1267 } 1265 }
1268 1266
1269 public void llTriggerSoundLimited(string sound, double volume, vector top_north_east, vector bottom_south_west) 1267 public void llRemoteLoadScript()
1270 { 1268 {
1271 m_LSL_Functions.llTriggerSoundLimited(sound, volume, top_north_east, bottom_south_west); 1269 m_LSL_Functions.llRemoteLoadScript();
1272 } 1270 }
1273 1271
1274 public void llEjectFromLand(string pest) 1272 public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param)
1275 { 1273 {
1276 m_LSL_Functions.llEjectFromLand(pest); 1274 m_LSL_Functions.llRemoteLoadScriptPin(target, name, pin, running, start_param);
1277 } 1275 }
1278 1276
1279 public LSL_Types.list llParseString2List(string str, LSL_Types.list separators, LSL_Types.list spacers) 1277 public void llRemoveFromLandBanList(string avatar)
1280 { 1278 {
1281 return m_LSL_Functions.llParseString2List(str,separators,spacers); 1279 m_LSL_Functions.llRemoveFromLandBanList(avatar);
1282 } 1280 }
1283 1281
1284 public LSL_Types.LSLInteger llOverMyLand(string id) 1282 public void llRemoveFromLandPassList(string avatar)
1285 { 1283 {
1286 return m_LSL_Functions.llOverMyLand(id); 1284 m_LSL_Functions.llRemoveFromLandPassList(avatar);
1287 } 1285 }
1288 1286
1289 public string llGetLandOwnerAt(vector pos) 1287 public void llRemoveInventory(string item)
1290 { 1288 {
1291 return m_LSL_Functions.llGetLandOwnerAt(pos); 1289 m_LSL_Functions.llRemoveInventory(item);
1292 } 1290 }
1293 1291
1294 public string llGetNotecardLine(string name, int line) 1292 public void llRemoveVehicleFlags(int flags)
1295 { 1293 {
1296 return m_LSL_Functions.llGetNotecardLine(name, line); 1294 m_LSL_Functions.llRemoveVehicleFlags(flags);
1297 } 1295 }
1298 1296
1299 public vector llGetAgentSize(string id) 1297 public LSL_Key llRequestAgentData(string id, int data)
1300 { 1298 {
1301 return m_LSL_Functions.llGetAgentSize(id); 1299 return m_LSL_Functions.llRequestAgentData(id, data);
1302 } 1300 }
1303 1301
1304 public LSL_Types.LSLInteger llSameGroup(string agent) 1302 public LSL_Key llRequestInventoryData(string name)
1305 { 1303 {
1306 return m_LSL_Functions.llSameGroup(agent); 1304 return m_LSL_Functions.llRequestInventoryData(name);
1307 } 1305 }
1308 1306
1309 public void llUnSit(string id) 1307 public void llRequestPermissions(string agent, int perm)
1310 { 1308 {
1311 m_LSL_Functions.llUnSit(id); 1309 m_LSL_Functions.llRequestPermissions(agent, perm);
1312 } 1310 }
1313 1311
1314 public vector llGroundSlope(vector offset) 1312 public LSL_Key llRequestSimulatorData(string simulator, int data)
1315 { 1313 {
1316 return m_LSL_Functions.llGroundSlope(offset); 1314 return m_LSL_Functions.llRequestSimulatorData(simulator, data);
1317 } 1315 }
1318 1316
1319 public vector llGroundNormal(vector offset) 1317 public void llResetLandBanList()
1320 { 1318 {
1321 return m_LSL_Functions.llGroundNormal(offset); 1319 m_LSL_Functions.llResetLandBanList();
1322 } 1320 }
1323 1321
1324 public vector llGroundContour(vector offset) 1322 public void llResetLandPassList()
1325 { 1323 {
1326 return m_LSL_Functions.llGroundContour(offset); 1324 m_LSL_Functions.llResetLandPassList();
1327 } 1325 }
1328 1326
1329 public LSL_Types.LSLInteger llGetAttached() 1327 public void llResetOtherScript(string name)
1330 { 1328 {
1331 return m_LSL_Functions.llGetAttached(); 1329 m_LSL_Functions.llResetOtherScript(name);
1332 } 1330 }
1333 1331
1334 public LSL_Types.LSLInteger llGetFreeMemory() 1332 public void llResetScript()
1335 { 1333 {
1336 return m_LSL_Functions.llGetFreeMemory(); 1334 m_LSL_Functions.llResetScript();
1337 } 1335 }
1338 1336
1339 public string llGetRegionName() 1337 public void llResetTime()
1340 { 1338 {
1341 return m_LSL_Functions.llGetRegionName(); 1339 m_LSL_Functions.llResetTime();
1342 } 1340 }
1343 1341
1344 public double llGetRegionTimeDilation() 1342 public void llRezAtRoot(string inventory, LSL_Vector position, LSL_Vector velocity, LSL_Rotation rot, int param)
1345 { 1343 {
1346 return m_LSL_Functions.llGetRegionTimeDilation(); 1344 m_LSL_Functions.llRezAtRoot(inventory, position, velocity, rot, param);
1347 } 1345 }
1348 1346
1349 public double llGetRegionFPS() 1347 public void llRezObject(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param)
1350 { 1348 {
1351 return m_LSL_Functions.llGetRegionFPS(); 1349 m_LSL_Functions.llRezObject(inventory, pos, vel, rot, param);
1352 } 1350 }
1353 1351
1354 // 1352 public LSL_Float llRot2Angle(LSL_Rotation rot)
1355 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1356 //
1357 public void llParticleSystem(LSL_Types.list rules)
1358 { 1353 {
1359 m_LSL_Functions.llParticleSystem(rules); 1354 return m_LSL_Functions.llRot2Angle(rot);
1360 } 1355 }
1361 1356
1362 public void llGroundRepel(double height, int water, double tau) 1357 public LSL_Vector llRot2Axis(LSL_Rotation rot)
1363 { 1358 {
1364 m_LSL_Functions.llGroundRepel(height, water, tau); 1359 return m_LSL_Functions.llRot2Axis(rot);
1365 } 1360 }
1366 1361
1367 public void llGiveInventoryList(string destination, string category, LSL_Types.list inventory) 1362 public LSL_Vector llRot2Euler(LSL_Rotation r)
1368 { 1363 {
1369 m_LSL_Functions.llGiveInventoryList(destination, category, inventory); 1364 return m_LSL_Functions.llRot2Euler(r);
1370 } 1365 }
1371 1366
1372 public void llSetVehicleType(int type) 1367 public LSL_Vector llRot2Fwd(LSL_Rotation r)
1373 { 1368 {
1374 m_LSL_Functions.llSetVehicleType(type); 1369 return m_LSL_Functions.llRot2Fwd(r);
1375 } 1370 }
1376 1371
1377 public void llSetVehicledoubleParam(int param, double value) 1372 public LSL_Vector llRot2Left(LSL_Rotation r)
1378 { 1373 {
1379 m_LSL_Functions.llSetVehicledoubleParam(param, value); 1374 return m_LSL_Functions.llRot2Left(r);
1380 } 1375 }
1381 1376
1382 public void llSetVehicleFloatParam(int param, float value) 1377 public LSL_Vector llRot2Up(LSL_Rotation r)
1383 { 1378 {
1384 m_LSL_Functions.llSetVehicleFloatParam(param, value); 1379 return m_LSL_Functions.llRot2Up(r);
1385 } 1380 }
1386 1381
1387 public void llSetVehicleVectorParam(int param, vector vec) 1382 public void llRotateTexture(double rotation, int face)
1388 { 1383 {
1389 m_LSL_Functions.llSetVehicleVectorParam(param, vec); 1384 m_LSL_Functions.llRotateTexture(rotation, face);
1390 } 1385 }
1391 1386
1392 public void llSetVehicleRotationParam(int param, rotation rot) 1387 public LSL_Rotation llRotBetween(LSL_Vector start, LSL_Vector end)
1393 { 1388 {
1394 m_LSL_Functions.llSetVehicleRotationParam(param, rot); 1389 return m_LSL_Functions.llRotBetween(start, end);
1395 } 1390 }
1396 1391
1397 public void llSetVehicleFlags(int flags) 1392 public void llRotLookAt(LSL_Rotation target, double strength, double damping)
1398 { 1393 {
1399 m_LSL_Functions.llSetVehicleFlags(flags); 1394 m_LSL_Functions.llRotLookAt(target, strength, damping);
1400 } 1395 }
1401 1396
1402 public void llRemoveVehicleFlags(int flags) 1397 public LSL_Integer llRotTarget(LSL_Rotation rot, double error)
1403 { 1398 {
1404 m_LSL_Functions.llRemoveVehicleFlags(flags); 1399 return m_LSL_Functions.llRotTarget(rot, error);
1405 } 1400 }
1406 1401
1407 public void llSitTarget(vector offset, rotation rot) 1402 public void llRotTargetRemove(int number)
1408 { 1403 {
1409 m_LSL_Functions.llSitTarget(offset, rot); 1404 m_LSL_Functions.llRotTargetRemove(number);
1410 } 1405 }
1411 1406
1412 public string llAvatarOnSitTarget() 1407 public LSL_Integer llRound(double f)
1413 { 1408 {
1414 return m_LSL_Functions.llAvatarOnSitTarget(); 1409 return m_LSL_Functions.llRound(f);
1415 } 1410 }
1416 1411
1417 public void llAddToLandPassList(string avatar, double hours) 1412 public LSL_Integer llSameGroup(string agent)
1418 { 1413 {
1419 m_LSL_Functions.llAddToLandPassList(avatar, hours); 1414 return m_LSL_Functions.llSameGroup(agent);
1420 } 1415 }
1421 1416
1422 public void llSetTouchText(string text) 1417 public void llSay(int channelID, string text)
1423 { 1418 {
1424 m_LSL_Functions.llSetTouchText(text); 1419 m_LSL_Functions.llSay(channelID, text);
1425 } 1420 }
1426 1421
1427 public void llSetSitText(string text) 1422 public void llScaleTexture(double u, double v, int face)
1428 { 1423 {
1429 m_LSL_Functions.llSetSitText(text); 1424 m_LSL_Functions.llScaleTexture(u, v, face);
1430 } 1425 }
1431 1426
1432 public void llSetCameraEyeOffset(vector offset) 1427 public LSL_Integer llScriptDanger(LSL_Vector pos)
1433 { 1428 {
1434 m_LSL_Functions.llSetCameraEyeOffset(offset); 1429 return m_LSL_Functions.llScriptDanger(pos);
1435 } 1430 }
1436 1431
1437 public void llSetCameraAtOffset(vector offset) 1432 public LSL_Key llSendRemoteData(string channel, string dest, int idata, string sdata)
1438 { 1433 {
1439 m_LSL_Functions.llSetCameraAtOffset(offset); 1434 return m_LSL_Functions.llSendRemoteData(channel, dest, idata, sdata);
1440 } 1435 }
1441 1436
1442 public string llDumpList2String(LSL_Types.list src, string seperator) 1437 public void llSensor(string name, string id, int type, double range, double arc)
1443 { 1438 {
1444 return m_LSL_Functions.llDumpList2String(src, seperator); 1439 m_LSL_Functions.llSensor(name, id, type, range, arc);
1445 } 1440 }
1446 1441
1447 public LSL_Types.LSLInteger llScriptDanger(vector pos) 1442 public void llSensorRemove()
1448 { 1443 {
1449 return m_LSL_Functions.llScriptDanger(pos); 1444 m_LSL_Functions.llSensorRemove();
1450 } 1445 }
1451 1446
1452 public void llDialog(string avatar, string message, LSL_Types.list buttons, int chat_channel) 1447 public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate)
1453 { 1448 {
1454 m_LSL_Functions.llDialog(avatar, message, buttons, chat_channel); 1449 m_LSL_Functions.llSensorRepeat(name, id, type, range, arc, rate);
1455 } 1450 }
1456 1451
1457 public void llVolumeDetect(int detect) 1452 public void llSetAlpha(double alpha, int face)
1458 { 1453 {
1459 m_LSL_Functions.llVolumeDetect(detect); 1454 m_LSL_Functions.llSetAlpha(alpha, face);
1460 } 1455 }
1461 1456
1462 public void llResetOtherScript(string name) 1457 public void llSetBuoyancy(double buoyancy)
1463 { 1458 {
1464 m_LSL_Functions.llResetOtherScript(name); 1459 m_LSL_Functions.llSetBuoyancy(buoyancy);
1465 } 1460 }
1466 1461
1467 public LSL_Types.LSLInteger llGetScriptState(string name) 1462 public void llSetCameraAtOffset(LSL_Vector offset)
1468 { 1463 {
1469 return m_LSL_Functions.llGetScriptState(name); 1464 m_LSL_Functions.llSetCameraAtOffset(offset);
1470 } 1465 }
1471 1466
1472 public void llRemoteLoadScript() 1467 public void llSetCameraEyeOffset(LSL_Vector offset)
1473 { 1468 {
1474 m_LSL_Functions.llRemoteLoadScript(); 1469 m_LSL_Functions.llSetCameraEyeOffset(offset);
1475 } 1470 }
1476 1471
1477 public void llSetRemoteScriptAccessPin(int pin) 1472 public void llSetCameraParams(LSL_List rules)
1478 { 1473 {
1479 m_LSL_Functions.llSetRemoteScriptAccessPin(pin); 1474 m_LSL_Functions.llSetCameraParams(rules);
1480 } 1475 }
1481 1476
1482 public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) 1477 public void llSetClickAction(int action)
1483 { 1478 {
1484 m_LSL_Functions.llRemoteLoadScriptPin(target, name, pin, running, start_param); 1479 m_LSL_Functions.llSetClickAction(action);
1485 } 1480 }
1486 1481
1487 // 1482 public void llSetColor(LSL_Vector color, int face)
1488 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1489 //
1490 public void llOpenRemoteDataChannel()
1491 { 1483 {
1492 m_LSL_Functions.llOpenRemoteDataChannel(); 1484 m_LSL_Functions.llSetColor(color, face);
1493 } 1485 }
1494 1486
1495 public string llSendRemoteData(string channel, string dest, int idata, string sdata) 1487 public void llSetDamage(double damage)
1496 { 1488 {
1497 return m_LSL_Functions.llSendRemoteData(channel, dest, idata, sdata); 1489 m_LSL_Functions.llSetDamage(damage);
1498 } 1490 }
1499 1491
1500 public void llRemoteDataReply(string channel, string message_id, string sdata, int idata) 1492 public void llSetForce(LSL_Vector force, int local)
1501 { 1493 {
1502 m_LSL_Functions.llRemoteDataReply(channel, message_id, sdata, idata); 1494 m_LSL_Functions.llSetForce(force, local);
1503 } 1495 }
1504 1496
1505 public void llCloseRemoteDataChannel(string channel) 1497 public void llSetForceAndTorque(LSL_Vector force, LSL_Vector torque, int local)
1506 { 1498 {
1507 m_LSL_Functions.llCloseRemoteDataChannel(channel); 1499 m_LSL_Functions.llSetForceAndTorque(force, torque, local);
1508 } 1500 }
1509 1501
1510 public string llMD5String(string src, int nonce) 1502 public void llSetHoverHeight(double height, int water, double tau)
1511 { 1503 {
1512 return m_LSL_Functions.llMD5String(src, nonce); 1504 m_LSL_Functions.llSetHoverHeight(height, water, tau);
1513 } 1505 }
1514 1506
1515 public void llSetPrimitiveParams(LSL_Types.list rules) 1507 public void llSetInventoryPermMask(string item, int mask, int value)
1516 { 1508 {
1517 m_LSL_Functions.llSetPrimitiveParams(rules); 1509 m_LSL_Functions.llSetInventoryPermMask(item, mask, value);
1518 } 1510 }
1519 1511
1520 public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules) 1512 public void llSetLinkAlpha(int linknumber, double alpha, int face)
1521 { 1513 {
1522 m_LSL_Functions.llSetLinkPrimitiveParams(linknumber, rules); 1514 m_LSL_Functions.llSetLinkAlpha(linknumber, alpha, face);
1523 } 1515 }
1524 public string llStringToBase64(string str) 1516
1517 public void llSetLinkColor(int linknumber, LSL_Vector color, int face)
1525 { 1518 {
1526 return m_LSL_Functions.llStringToBase64(str); 1519 m_LSL_Functions.llSetLinkColor(linknumber, color, face);
1527 } 1520 }
1528 1521
1529 public string llBase64ToString(string str) 1522 public void llSetLinkPrimitiveParams(int linknumber, LSL_List rules)
1530 { 1523 {
1531 return m_LSL_Functions.llBase64ToString(str); 1524 m_LSL_Functions.llSetLinkPrimitiveParams(linknumber, rules);
1532 } 1525 }
1533 1526
1534 public void llXorBase64Strings() 1527 public void llSetLinkTexture(int linknumber, string texture, int face)
1535 { 1528 {
1536 m_LSL_Functions.llXorBase64Strings(); 1529 m_LSL_Functions.llSetLinkTexture(linknumber, texture, face);
1537 } 1530 }
1538 1531
1539 public void llRemoteDataSetRegion() 1532 public void llSetLocalRot(LSL_Rotation rot)
1540 { 1533 {
1541 m_LSL_Functions.llRemoteDataSetRegion(); 1534 m_LSL_Functions.llSetLocalRot(rot);
1542 } 1535 }
1543 1536
1544 public double llLog10(double val) 1537 public void llSetObjectDesc(string desc)
1545 { 1538 {
1546 return m_LSL_Functions.llLog10(val); 1539 m_LSL_Functions.llSetObjectDesc(desc);
1547 } 1540 }
1548 1541
1549 public double llLog(double val) 1542 public void llSetObjectName(string name)
1550 { 1543 {
1551 return m_LSL_Functions.llLog(val); 1544 m_LSL_Functions.llSetObjectName(name);
1552 } 1545 }
1553 1546
1554 public LSL_Types.list llGetAnimationList(string id) 1547 public void llSetObjectPermMask(int mask, int value)
1555 { 1548 {
1556 return m_LSL_Functions.llGetAnimationList(id); 1549 m_LSL_Functions.llSetObjectPermMask(mask, value);
1557 } 1550 }
1558 1551
1559 public void llSetParcelMusicURL(string url) 1552 public void llSetParcelMusicURL(string url)
@@ -1561,323 +1554,324 @@ namespace OpenSim.Region.ScriptEngine.Common
1561 m_LSL_Functions.llSetParcelMusicURL(url); 1554 m_LSL_Functions.llSetParcelMusicURL(url);
1562 } 1555 }
1563 1556
1564 public vector llGetRootPosition() 1557 public void llSetPayPrice(int price, LSL_List quick_pay_buttons)
1565 { 1558 {
1566 return m_LSL_Functions.llGetRootPosition(); 1559 m_LSL_Functions.llSetPayPrice(price, quick_pay_buttons);
1567 } 1560 }
1568 1561
1569 public rotation llGetRootRotation() 1562 public void llSetPos(LSL_Vector pos)
1570 { 1563 {
1571 return m_LSL_Functions.llGetRootRotation(); 1564 m_LSL_Functions.llSetPos(pos);
1572 } 1565 }
1573 1566
1574 public string llGetObjectDesc() 1567 public void llSetPrimitiveParams(LSL_List rules)
1575 { 1568 {
1576 return m_LSL_Functions.llGetObjectDesc(); 1569 m_LSL_Functions.llSetPrimitiveParams(rules);
1577 } 1570 }
1578 1571
1579 public void llSetObjectDesc(string desc) 1572 public void llSetPrimURL()
1580 { 1573 {
1581 m_LSL_Functions.llSetObjectDesc(desc); 1574 m_LSL_Functions.llSetPrimURL();
1582 } 1575 }
1583 1576
1584 public string llGetCreator() 1577 public void llSetRemoteScriptAccessPin(int pin)
1585 { 1578 {
1586 return m_LSL_Functions.llGetCreator(); 1579 m_LSL_Functions.llSetRemoteScriptAccessPin(pin);
1587 } 1580 }
1588 1581
1589 public string llGetTimestamp() 1582 public void llSetRot(LSL_Rotation rot)
1590 { 1583 {
1591 return m_LSL_Functions.llGetTimestamp(); 1584 m_LSL_Functions.llSetRot(rot);
1592 } 1585 }
1593 1586
1594 public void llSetLinkAlpha(int linknumber, double alpha, int face) 1587 public void llSetScale(LSL_Vector scale)
1595 { 1588 {
1596 m_LSL_Functions.llSetLinkAlpha(linknumber, alpha, face); 1589 m_LSL_Functions.llSetScale(scale);
1597 } 1590 }
1598 1591
1599 public LSL_Types.LSLInteger llGetNumberOfPrims() 1592 public void llSetScriptState(string name, int run)
1600 { 1593 {
1601 return m_LSL_Functions.llGetNumberOfPrims(); 1594 m_LSL_Functions.llSetScriptState(name, run);
1602 } 1595 }
1603 1596
1604 public string llGetNumberOfNotecardLines(string name) 1597 public void llSetSitText(string text)
1605 { 1598 {
1606 return m_LSL_Functions.llGetNumberOfNotecardLines(name); 1599 m_LSL_Functions.llSetSitText(text);
1607 } 1600 }
1608 1601
1609 public LSL_Types.list llGetBoundingBox(string obj) 1602 public void llSetSoundQueueing(int queue)
1610 { 1603 {
1611 return m_LSL_Functions.llGetBoundingBox(obj); 1604 m_LSL_Functions.llSetSoundQueueing(queue);
1612 } 1605 }
1613 1606
1614 public vector llGetGeometricCenter() 1607 public void llSetSoundRadius(double radius)
1615 { 1608 {
1616 return m_LSL_Functions.llGetGeometricCenter(); 1609 m_LSL_Functions.llSetSoundRadius(radius);
1617 } 1610 }
1618 1611
1619 public LSL_Types.list llGetPrimitiveParams(LSL_Types.list rules) 1612 public void llSetStatus(int status, int value)
1620 { 1613 {
1621 return m_LSL_Functions.llGetPrimitiveParams(rules); 1614 m_LSL_Functions.llSetStatus(status, value);
1622 } 1615 }
1623 1616
1624 // 1617 public void llSetText(string text, LSL_Vector color, double alpha)
1625 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1626 //
1627 public string llIntegerToBase64(int number)
1628 { 1618 {
1629 return m_LSL_Functions.llIntegerToBase64(number); 1619 m_LSL_Functions.llSetText(text, color, alpha);
1630 } 1620 }
1631 1621
1632 public LSL_Types.LSLInteger llBase64ToInteger(string str) 1622 public void llSetTexture(string texture, int face)
1633 { 1623 {
1634 return m_LSL_Functions.llBase64ToInteger(str); 1624 m_LSL_Functions.llSetTexture(texture, face);
1635 } 1625 }
1636 1626
1637 public double llGetGMTclock() 1627 public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate)
1638 { 1628 {
1639 return m_LSL_Functions.llGetGMTclock(); 1629 m_LSL_Functions.llSetTextureAnim(mode, face, sizex, sizey, start, length, rate);
1640 } 1630 }
1641 1631
1642 public string llGetSimulatorHostname() 1632 public void llSetTimerEvent(double sec)
1643 { 1633 {
1644 return m_LSL_Functions.llGetSimulatorHostname(); 1634 m_LSL_Functions.llSetTimerEvent(sec);
1645 } 1635 }
1646 1636
1647 public void llSetLocalRot(rotation rot) 1637 public void llSetTorque(LSL_Vector torque, int local)
1648 { 1638 {
1649 m_LSL_Functions.llSetLocalRot(rot); 1639 m_LSL_Functions.llSetTorque(torque, local);
1650 } 1640 }
1651 1641
1652 public LSL_Types.list llParseStringKeepNulls(string src, LSL_Types.list seperators, LSL_Types.list spacers) 1642 public void llSetTouchText(string text)
1653 { 1643 {
1654 return m_LSL_Functions.llParseStringKeepNulls(src, seperators, spacers); 1644 m_LSL_Functions.llSetTouchText(text);
1655 } 1645 }
1656 1646
1657 public void llRezAtRoot(string inventory, vector position, vector velocity, rotation rot, int param) 1647 public void llSetVehicleFlags(int flags)
1658 { 1648 {
1659 m_LSL_Functions.llRezAtRoot(inventory, position, velocity, rot, param); 1649 m_LSL_Functions.llSetVehicleFlags(flags);
1660 } 1650 }
1661 1651
1662 public LSL_Types.LSLInteger llGetObjectPermMask(int mask) 1652 public void llSetVehicleFloatParam(int param, float value)
1663 { 1653 {
1664 return m_LSL_Functions.llGetObjectPermMask(mask); 1654 m_LSL_Functions.llSetVehicleFloatParam(param, value);
1665 } 1655 }
1666 1656
1667 public void llSetObjectPermMask(int mask, int value) 1657 public void llSetVehicleRotationParam(int param, LSL_Rotation rot)
1668 { 1658 {
1669 m_LSL_Functions.llSetObjectPermMask(mask, value); 1659 m_LSL_Functions.llSetVehicleRotationParam(param, rot);
1670 } 1660 }
1671 1661
1672 public LSL_Types.LSLInteger llGetInventoryPermMask(string item, int mask) 1662 public void llSetVehicleType(int type)
1673 { 1663 {
1674 return m_LSL_Functions.llGetInventoryPermMask(item, mask); 1664 m_LSL_Functions.llSetVehicleType(type);
1675 } 1665 }
1676 1666
1677 public void llSetInventoryPermMask(string item, int mask, int value) 1667 public void llSetVehicleVectorParam(int param, LSL_Vector vec)
1678 { 1668 {
1679 m_LSL_Functions.llSetInventoryPermMask(item, mask, value); 1669 m_LSL_Functions.llSetVehicleVectorParam(param, vec);
1680 } 1670 }
1681 1671
1682 public string llGetInventoryCreator(string item) 1672 public void llShout(int channelID, string text)
1683 { 1673 {
1684 return m_LSL_Functions.llGetInventoryCreator(item); 1674 m_LSL_Functions.llShout(channelID, text);
1685 } 1675 }
1686 1676
1687 public string llRequestSimulatorData(string simulator, int data) 1677 public LSL_Float llSin(double f)
1688 { 1678 {
1689 return m_LSL_Functions.llRequestSimulatorData(simulator, data); 1679 return m_LSL_Functions.llSin(f);
1690 } 1680 }
1691 1681
1692 public void llForceMouselook(int mouselook) 1682 public void llSitTarget(LSL_Vector offset, LSL_Rotation rot)
1693 { 1683 {
1694 m_LSL_Functions.llForceMouselook(mouselook); 1684 m_LSL_Functions.llSitTarget(offset, rot);
1695 } 1685 }
1696 1686
1697 public double llGetObjectMass(string id) 1687 public void llSleep(double sec)
1698 { 1688 {
1699 return m_LSL_Functions.llGetObjectMass(id); 1689 m_LSL_Functions.llSleep(sec);
1700 } 1690 }
1701 1691
1702 public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end) 1692 public void llSound()
1703 { 1693 {
1704 return m_LSL_Functions.llListReplaceList(dest, src, start, end); 1694 m_LSL_Functions.llSound();
1705 } 1695 }
1706 1696
1707 public void llLoadURL(string avatar_id, string message, string url) 1697 public void llSoundPreload()
1708 { 1698 {
1709 m_LSL_Functions.llLoadURL(avatar_id, message, url); 1699 m_LSL_Functions.llSoundPreload();
1710 } 1700 }
1711 1701
1712 public void llParcelMediaCommandList(LSL_Types.list commandList) 1702 public LSL_Float llSqrt(double f)
1713 { 1703 {
1714 m_LSL_Functions.llParcelMediaCommandList(commandList); 1704 return m_LSL_Functions.llSqrt(f);
1715 } 1705 }
1716 1706
1717 public LSL_Types.list llParcelMediaQuery(LSL_Types.list aList) 1707 public void llStartAnimation(string anim)
1718 { 1708 {
1719 return m_LSL_Functions.llParcelMediaQuery(aList); 1709 m_LSL_Functions.llStartAnimation(anim);
1720 } 1710 }
1721 1711
1722 public LSL_Types.LSLInteger llModPow(int a, int b, int c) 1712 public void llStopAnimation(string anim)
1723 { 1713 {
1724 return m_LSL_Functions.llModPow(a, b, c); 1714 m_LSL_Functions.llStopAnimation(anim);
1725 } 1715 }
1726 1716
1727 // 1717 public void llStopHover()
1728 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1729 //
1730 public LSL_Types.LSLInteger llGetInventoryType(string name)
1731 { 1718 {
1732 return m_LSL_Functions.llGetInventoryType(name); 1719 m_LSL_Functions.llStopHover();
1733 } 1720 }
1734 1721
1735 public void llSetPayPrice(int price, LSL_Types.list quick_pay_buttons) 1722 public void llStopLookAt()
1736 { 1723 {
1737 m_LSL_Functions.llSetPayPrice(price, quick_pay_buttons); 1724 m_LSL_Functions.llStopLookAt();
1738 } 1725 }
1739 1726
1740 public vector llGetCameraPos() 1727 public void llStopMoveToTarget()
1741 { 1728 {
1742 return m_LSL_Functions.llGetCameraPos(); 1729 m_LSL_Functions.llStopMoveToTarget();
1743 } 1730 }
1744 1731
1745 public rotation llGetCameraRot() 1732 public void llStopPointAt()
1746 { 1733 {
1747 return m_LSL_Functions.llGetCameraRot(); 1734 m_LSL_Functions.llStopPointAt();
1748 } 1735 }
1749 1736
1750 public void llSetPrimURL() 1737 public void llStopSound()
1751 { 1738 {
1752 m_LSL_Functions.llSetPrimURL(); 1739 m_LSL_Functions.llStopSound();
1753 } 1740 }
1754 1741
1755 public void llRefreshPrimURL() 1742 public LSL_Integer llStringLength(string str)
1756 { 1743 {
1757 m_LSL_Functions.llRefreshPrimURL(); 1744 return m_LSL_Functions.llStringLength(str);
1758 } 1745 }
1759 1746
1760 public string llEscapeURL(string url) 1747 public LSL_String llStringToBase64(string str)
1761 { 1748 {
1762 return m_LSL_Functions.llEscapeURL(url); 1749 return m_LSL_Functions.llStringToBase64(str);
1763 } 1750 }
1764 1751
1765 public string llUnescapeURL(string url) 1752 public LSL_String llStringTrim(string src, int type)
1766 { 1753 {
1767 return m_LSL_Functions.llUnescapeURL(url); 1754 return m_LSL_Functions.llStringTrim(src, type);
1768 } 1755 }
1769 1756
1770 public void llMapDestination(string simname, vector pos, vector look_at) 1757 public LSL_Integer llSubStringIndex(string source, string pattern)
1771 { 1758 {
1772 m_LSL_Functions.llMapDestination(simname, pos, look_at); 1759 return m_LSL_Functions.llSubStringIndex(source, pattern);
1773 } 1760 }
1774 1761
1775 public void llAddToLandBanList(string avatar, double hours) 1762 public void llTakeCamera(string avatar)
1776 { 1763 {
1777 m_LSL_Functions.llAddToLandBanList(avatar, hours); 1764 m_LSL_Functions.llTakeCamera(avatar);
1778 } 1765 }
1779 1766
1780 public void llRemoveFromLandPassList(string avatar) 1767 public void llTakeControls(int controls, int accept, int pass_on)
1781 { 1768 {
1782 m_LSL_Functions.llRemoveFromLandPassList(avatar); 1769 m_LSL_Functions.llTakeControls(controls, accept, pass_on);
1783 } 1770 }
1784 1771
1785 public void llRemoveFromLandBanList(string avatar) 1772 public LSL_Float llTan(double f)
1786 { 1773 {
1787 m_LSL_Functions.llRemoveFromLandBanList(avatar); 1774 return m_LSL_Functions.llTan(f);
1788 } 1775 }
1789 1776
1790 public void llSetCameraParams(LSL_Types.list rules) 1777 public LSL_Integer llTarget(LSL_Vector position, double range)
1791 { 1778 {
1792 m_LSL_Functions.llSetCameraParams(rules); 1779 return m_LSL_Functions.llTarget(position, range);
1793 } 1780 }
1794 1781
1795 public void llClearCameraParams() 1782 public void llTargetOmega(LSL_Vector axis, double spinrate, double gain)
1796 { 1783 {
1797 m_LSL_Functions.llClearCameraParams(); 1784 m_LSL_Functions.llTargetOmega(axis, spinrate, gain);
1798 } 1785 }
1799 1786
1800 public double llListStatistics(int operation, LSL_Types.list src) 1787 public void llTargetRemove(int number)
1801 { 1788 {
1802 return m_LSL_Functions.llListStatistics(operation, src); 1789 m_LSL_Functions.llTargetRemove(number);
1803 } 1790 }
1804 1791
1805 public LSL_Types.LSLInteger llGetUnixTime() 1792 public void llTeleportAgentHome(string agent)
1806 { 1793 {
1807 return m_LSL_Functions.llGetUnixTime(); 1794 m_LSL_Functions.llTeleportAgentHome(agent);
1808 } 1795 }
1809 1796
1810 public LSL_Types.LSLInteger llGetParcelFlags(vector pos) 1797 public void llTextBox(string avatar, string message, int chat_channel)
1811 { 1798 {
1812 return m_LSL_Functions.llGetParcelFlags(pos); 1799 m_LSL_Functions.llTextBox(avatar, message, chat_channel);
1813 } 1800 }
1814 1801
1815 public LSL_Types.LSLInteger llGetRegionFlags() 1802 public LSL_String llToLower(string source)
1816 { 1803 {
1817 return m_LSL_Functions.llGetRegionFlags(); 1804 return m_LSL_Functions.llToLower(source);
1818 } 1805 }
1819 1806
1820 public string llXorBase64StringsCorrect(string str1, string str2) 1807 public LSL_String llToUpper(string source)
1821 { 1808 {
1822 return m_LSL_Functions.llXorBase64StringsCorrect(str1, str2); 1809 return m_LSL_Functions.llToUpper(source);
1823 } 1810 }
1824 1811
1825 public string llHTTPRequest(string url, LSL_Types.list parameters, string body) 1812 public void llTriggerSound(string sound, double volume)
1826 { 1813 {
1827 return m_LSL_Functions.llHTTPRequest(url, parameters, body); 1814 m_LSL_Functions.llTriggerSound(sound, volume);
1828 } 1815 }
1829 1816
1830 public void llResetLandBanList() 1817 public void llTriggerSoundLimited(string sound, double volume, LSL_Vector top_north_east, LSL_Vector bottom_south_west)
1831 { 1818 {
1832 m_LSL_Functions.llResetLandBanList(); 1819 m_LSL_Functions.llTriggerSoundLimited(sound, volume, top_north_east, bottom_south_west);
1833 } 1820 }
1834 1821
1835 public void llResetLandPassList() 1822 public LSL_String llUnescapeURL(string url)
1836 { 1823 {
1837 m_LSL_Functions.llResetLandPassList(); 1824 return m_LSL_Functions.llUnescapeURL(url);
1838 } 1825 }
1839 1826
1840 public LSL_Types.LSLInteger llGetParcelPrimCount(vector pos, int category, int sim_wide) 1827 public void llUnSit(string id)
1841 { 1828 {
1842 return m_LSL_Functions.llGetParcelPrimCount(pos, category, sim_wide); 1829 m_LSL_Functions.llUnSit(id);
1843 } 1830 }
1844 1831
1845 public LSL_Types.list llGetParcelPrimOwners(vector pos) 1832 public LSL_Float llVecDist(LSL_Vector a, LSL_Vector b)
1846 { 1833 {
1847 return m_LSL_Functions.llGetParcelPrimOwners(pos); 1834 return m_LSL_Functions.llVecDist(a, b);
1848 } 1835 }
1849 1836
1850 public LSL_Types.LSLInteger llGetObjectPrimCount(string object_id) 1837 public LSL_Float llVecMag(LSL_Vector v)
1851 { 1838 {
1852 return m_LSL_Functions.llGetObjectPrimCount(object_id); 1839 return m_LSL_Functions.llVecMag(v);
1853 } 1840 }
1854 1841
1855 // 1842 public LSL_Vector llVecNorm(LSL_Vector v)
1856 // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
1857 //
1858 public LSL_Types.LSLInteger llGetParcelMaxPrims(vector pos, int sim_wide)
1859 { 1843 {
1860 return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide); 1844 return m_LSL_Functions.llVecNorm(v);
1861 } 1845 }
1862 1846
1863 public LSL_Types.list llGetParcelDetails(vector pos, LSL_Types.list param) 1847 public void llVolumeDetect(int detect)
1864 { 1848 {
1865 return m_LSL_Functions.llGetParcelDetails(pos, param); 1849 m_LSL_Functions.llVolumeDetect(detect);
1866 } 1850 }
1867 1851
1868 public void llSetLinkTexture(int linknumber, string texture, int face) 1852 public LSL_Float llWater(LSL_Vector offset)
1869 { 1853 {
1870 m_LSL_Functions.llSetLinkTexture(linknumber, texture, face); 1854 return m_LSL_Functions.llWater(offset);
1871 } 1855 }
1872 1856
1873 public string llStringTrim(string src, int type) 1857 public void llWhisper(int channelID, string text)
1874 { 1858 {
1875 return m_LSL_Functions.llStringTrim(src, type); 1859 m_LSL_Functions.llWhisper(channelID, text);
1876 } 1860 }
1877 1861
1878 public LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args) 1862 public LSL_Vector llWind(LSL_Vector offset)
1879 { 1863 {
1880 return m_LSL_Functions.llGetObjectDetails(id, args); 1864 return m_LSL_Functions.llWind(offset);
1865 }
1866
1867 public void llXorBase64Strings()
1868 {
1869 m_LSL_Functions.llXorBase64Strings();
1870 }
1871
1872 public LSL_String llXorBase64StringsCorrect(string str1, string str2)
1873 {
1874 return m_LSL_Functions.llXorBase64StringsCorrect(str1, str2);
1881 } 1875 }
1882 1876
1883 // 1877 //
@@ -1944,12 +1938,12 @@ namespace OpenSim.Region.ScriptEngine.Common
1944 1938
1945 // Teleport Functions 1939 // Teleport Functions
1946 1940
1947 public void osTeleportAgent(string agent, string regionName, vector position, vector lookat) 1941 public void osTeleportAgent(string agent, string regionName, LSL_Vector position, LSL_Vector lookat)
1948 { 1942 {
1949 m_LSL_Functions.osTeleportAgent(agent, regionName, position, lookat); 1943 m_LSL_Functions.osTeleportAgent(agent, regionName, position, lookat);
1950 } 1944 }
1951 1945
1952 public void osTeleportAgent(string agent, vector position, vector lookat) 1946 public void osTeleportAgent(string agent, LSL_Vector position, LSL_Vector lookat)
1953 { 1947 {
1954 m_LSL_Functions.osTeleportAgent(agent, position, lookat); 1948 m_LSL_Functions.osTeleportAgent(agent, position, lookat);
1955 } 1949 }
@@ -2039,14 +2033,6 @@ namespace OpenSim.Region.ScriptEngine.Common
2039 return m_LSL_Functions.osGetScriptEngineName(); 2033 return m_LSL_Functions.osGetScriptEngineName();
2040 } 2034 }
2041 2035
2042 //
2043
2044 public double llList2Float(LSL_Types.list src, int index)
2045 {
2046 return m_LSL_Functions.llList2Float(src, index);
2047 }
2048
2049
2050 public System.Collections.Hashtable osParseJSON(string JSON) 2036 public System.Collections.Hashtable osParseJSON(string JSON)
2051 { 2037 {
2052 return m_LSL_Functions.osParseJSON(JSON); 2038 return m_LSL_Functions.osParseJSON(JSON);
@@ -2471,8 +2457,8 @@ namespace OpenSim.Region.ScriptEngine.Common
2471 public const int OBJECT_CREATOR = 8; 2457 public const int OBJECT_CREATOR = 8;
2472 2458
2473 // Can not be public const? 2459 // Can not be public const?
2474 public static readonly vector ZERO_VECTOR = new vector(0.0, 0.0, 0.0); 2460 public static readonly LSL_Vector ZERO_VECTOR = new LSL_Vector(0f, 0f, 0f);
2475 public static readonly rotation ZERO_ROTATION = new rotation(0.0, 0, 0.0, 1.0); 2461 public static readonly LSL_Rotation ZERO_ROTATION = new LSL_Rotation(0f, 0f, 0f, 1f);
2476 2462
2477 // constants for llSetCameraParams 2463 // constants for llSetCameraParams
2478 public const int CAMERA_PITCH = 0; 2464 public const int CAMERA_PITCH = 0;
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
index 90cd3b1..1017fd8 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
@@ -45,7 +45,13 @@ using OpenSim.Region.Environment.Scenes;
45using OpenSim.Region.Physics.Manager; 45using OpenSim.Region.Physics.Manager;
46using OpenSim.Region.ScriptEngine.Common.ScriptEngineBase; 46using OpenSim.Region.ScriptEngine.Common.ScriptEngineBase;
47 47
48//using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL; 48using LSL_Float = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLFloat;
49using LSL_Integer = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLInteger;
50using LSL_Key = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLString;
51using LSL_List = OpenSim.Region.ScriptEngine.Common.LSL_Types.list;
52using LSL_Rotation = OpenSim.Region.ScriptEngine.Common.LSL_Types.Quaternion;
53using LSL_String = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLString;
54using LSL_Vector = OpenSim.Region.ScriptEngine.Common.LSL_Types.Vector3;
49 55
50namespace OpenSim.Region.ScriptEngine.Common 56namespace OpenSim.Region.ScriptEngine.Common
51{ 57{
@@ -61,6 +67,9 @@ namespace OpenSim.Region.ScriptEngine.Common
61 internal uint m_localID; 67 internal uint m_localID;
62 internal UUID m_itemID; 68 internal UUID m_itemID;
63 internal bool throwErrorOnNotImplemented = true; 69 internal bool throwErrorOnNotImplemented = true;
70 internal float m_delayFactor = 1.0f;
71 internal float m_distanceFactor = 1.0f;
72
64 73
65 public LSL_BuiltIn_Commands(ScriptEngineBase.ScriptEngine ScriptEngine, SceneObjectPart host, uint localID, UUID itemID) 74 public LSL_BuiltIn_Commands(ScriptEngineBase.ScriptEngine ScriptEngine, SceneObjectPart host, uint localID, UUID itemID)
66 { 75 {
@@ -81,12 +90,9 @@ namespace OpenSim.Region.ScriptEngine.Common
81 90
82 } 91 }
83 92
84 private DateTime m_timer = DateTime.Now;
85 private string m_state = "default"; 93 private string m_state = "default";
94 private DateTime m_timer = DateTime.Now;
86 private bool m_waitingForScriptAnswer=false; 95 private bool m_waitingForScriptAnswer=false;
87 private float m_delayFactor = 1.0f;
88 private float m_distanceFactor = 1.0f;
89
90 96
91 protected void ScriptSleep(int delay) 97 protected void ScriptSleep(int delay)
92 { 98 {
@@ -96,6 +102,23 @@ namespace OpenSim.Region.ScriptEngine.Common
96 System.Threading.Thread.Sleep(delay); 102 System.Threading.Thread.Sleep(delay);
97 } 103 }
98 104
105 // Object never expires
106 public override Object InitializeLifetimeService()
107 {
108 ILease lease = (ILease)base.InitializeLifetimeService();
109
110 if (lease.CurrentState == LeaseState.Initial)
111 {
112 lease.InitialLeaseTime = TimeSpan.Zero;
113 }
114 return lease;
115 }
116
117 public Scene World
118 {
119 get { return m_ScriptEngine.World; }
120 }
121
99 public string State 122 public string State
100 { 123 {
101 get { return m_state; } 124 get { return m_state; }
@@ -127,23 +150,6 @@ namespace OpenSim.Region.ScriptEngine.Common
127 } 150 }
128 } 151 }
129 152
130 // Object never expires
131 public override Object InitializeLifetimeService()
132 {
133 ILease lease = (ILease)base.InitializeLifetimeService();
134
135 if (lease.CurrentState == LeaseState.Initial)
136 {
137 lease.InitialLeaseTime = TimeSpan.Zero;
138 }
139 return lease;
140 }
141
142 public Scene World
143 {
144 get { return m_ScriptEngine.World; }
145 }
146
147 // Extension commands use this: 153 // Extension commands use this:
148 public ICommander GetCommander(string name) 154 public ICommander GetCommander(string name)
149 { 155 {
@@ -220,68 +226,57 @@ namespace OpenSim.Region.ScriptEngine.Common
220 } 226 }
221 } 227 }
222 228
223 public void osSetRegionWaterHeight(double height)
224 {
225 m_host.AddScriptLPS(1);
226 //Check to make sure that the script's owner is the estate manager/master
227 //World.Permissions.GenericEstatePermission(
228 if (World.ExternalChecks.ExternalChecksCanBeGodLike(m_host.OwnerID))
229 {
230 World.EventManager.TriggerRequestChangeWaterHeight((float)height);
231 }
232 }
233
234 //These are the implementations of the various ll-functions used by the LSL scripts. 229 //These are the implementations of the various ll-functions used by the LSL scripts.
235 //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07 230 //starting out, we use the System.Math library for trig functions. - ckrinke 8-14-07
236 public double llSin(double f) 231 public LSL_Float llSin(double f)
237 { 232 {
238 m_host.AddScriptLPS(1); 233 m_host.AddScriptLPS(1);
239 return (double)Math.Sin(f); 234 return (double)Math.Sin(f);
240 } 235 }
241 236
242 public double llCos(double f) 237 public LSL_Float llCos(double f)
243 { 238 {
244 m_host.AddScriptLPS(1); 239 m_host.AddScriptLPS(1);
245 return (double)Math.Cos(f); 240 return (double)Math.Cos(f);
246 } 241 }
247 242
248 public double llTan(double f) 243 public LSL_Float llTan(double f)
249 { 244 {
250 m_host.AddScriptLPS(1); 245 m_host.AddScriptLPS(1);
251 return (double)Math.Tan(f); 246 return (double)Math.Tan(f);
252 } 247 }
253 248
254 public double llAtan2(double x, double y) 249 public LSL_Float llAtan2(double x, double y)
255 { 250 {
256 m_host.AddScriptLPS(1); 251 m_host.AddScriptLPS(1);
257 return (double)Math.Atan2(y, x); 252 return (double)Math.Atan2(y, x);
258 } 253 }
259 254
260 public double llSqrt(double f) 255 public LSL_Float llSqrt(double f)
261 { 256 {
262 m_host.AddScriptLPS(1); 257 m_host.AddScriptLPS(1);
263 return (double)Math.Sqrt(f); 258 return (double)Math.Sqrt(f);
264 } 259 }
265 260
266 public double llPow(double fbase, double fexponent) 261 public LSL_Float llPow(double fbase, double fexponent)
267 { 262 {
268 m_host.AddScriptLPS(1); 263 m_host.AddScriptLPS(1);
269 return (double)Math.Pow(fbase, fexponent); 264 return (double)Math.Pow(fbase, fexponent);
270 } 265 }
271 266
272 public LSL_Types.LSLInteger llAbs(int i) 267 public LSL_Integer llAbs(int i)
273 { 268 {
274 m_host.AddScriptLPS(1); 269 m_host.AddScriptLPS(1);
275 return (int)Math.Abs(i); 270 return (int)Math.Abs(i);
276 } 271 }
277 272
278 public double llFabs(double f) 273 public LSL_Float llFabs(double f)
279 { 274 {
280 m_host.AddScriptLPS(1); 275 m_host.AddScriptLPS(1);
281 return (double)Math.Abs(f); 276 return (double)Math.Abs(f);
282 } 277 }
283 278
284 public double llFrand(double mag) 279 public LSL_Float llFrand(double mag)
285 { 280 {
286 m_host.AddScriptLPS(1); 281 m_host.AddScriptLPS(1);
287 lock (Util.RandomClass) 282 lock (Util.RandomClass)
@@ -290,44 +285,44 @@ namespace OpenSim.Region.ScriptEngine.Common
290 } 285 }
291 } 286 }
292 287
293 public LSL_Types.LSLInteger llFloor(double f) 288 public LSL_Integer llFloor(double f)
294 { 289 {
295 m_host.AddScriptLPS(1); 290 m_host.AddScriptLPS(1);
296 return (int)Math.Floor(f); 291 return (int)Math.Floor(f);
297 } 292 }
298 293
299 public LSL_Types.LSLInteger llCeil(double f) 294 public LSL_Integer llCeil(double f)
300 { 295 {
301 m_host.AddScriptLPS(1); 296 m_host.AddScriptLPS(1);
302 return (int)Math.Ceiling(f); 297 return (int)Math.Ceiling(f);
303 } 298 }
304 299
305 // Xantor 01/May/2008 fixed midpointrounding (2.5 becomes 3.0 instead of 2.0, default = ToEven) 300 // Xantor 01/May/2008 fixed midpointrounding (2.5 becomes 3.0 instead of 2.0, default = ToEven)
306 public LSL_Types.LSLInteger llRound(double f) 301 public LSL_Integer llRound(double f)
307 { 302 {
308 m_host.AddScriptLPS(1); 303 m_host.AddScriptLPS(1);
309 return (int)Math.Round(f, MidpointRounding.AwayFromZero); 304 return (int)Math.Round(f, MidpointRounding.AwayFromZero);
310 } 305 }
311 306
312 //This next group are vector operations involving squaring and square root. ckrinke 307 //This next group are vector operations involving squaring and square root. ckrinke
313 public double llVecMag(LSL_Types.Vector3 v) 308 public LSL_Float llVecMag(LSL_Vector v)
314 { 309 {
315 m_host.AddScriptLPS(1); 310 m_host.AddScriptLPS(1);
316 return LSL_Types.Vector3.Mag(v); 311 return LSL_Vector.Mag(v);
317 } 312 }
318 313
319 public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v) 314 public LSL_Vector llVecNorm(LSL_Vector v)
320 { 315 {
321 m_host.AddScriptLPS(1); 316 m_host.AddScriptLPS(1);
322 double mag = LSL_Types.Vector3.Mag(v); 317 double mag = LSL_Vector.Mag(v);
323 LSL_Types.Vector3 nor = new LSL_Types.Vector3(); 318 LSL_Vector nor = new LSL_Vector();
324 nor.x = v.x / mag; 319 nor.x = v.x / mag;
325 nor.y = v.y / mag; 320 nor.y = v.y / mag;
326 nor.z = v.z / mag; 321 nor.z = v.z / mag;
327 return nor; 322 return nor;
328 } 323 }
329 324
330 public double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b) 325 public LSL_Float llVecDist(LSL_Vector a, LSL_Vector b)
331 { 326 {
332 m_host.AddScriptLPS(1); 327 m_host.AddScriptLPS(1);
333 double dx = a.x - b.x; 328 double dx = a.x - b.x;
@@ -350,23 +345,23 @@ namespace OpenSim.Region.ScriptEngine.Common
350 345
351 // Old implementation of llRot2Euler, now normalized 346 // Old implementation of llRot2Euler, now normalized
352 347
353 public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) 348 public LSL_Vector llRot2Euler(LSL_Rotation r)
354 { 349 {
355 m_host.AddScriptLPS(1); 350 m_host.AddScriptLPS(1);
356 //This implementation is from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions. ckrinke 351 //This implementation is from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions. ckrinke
357 LSL_Types.Quaternion t = new LSL_Types.Quaternion(r.x * r.x, r.y * r.y, r.z * r.z, r.s * r.s); 352 LSL_Rotation t = new LSL_Rotation(r.x * r.x, r.y * r.y, r.z * r.z, r.s * r.s);
358 double m = (t.x + t.y + t.z + t.s); 353 double m = (t.x + t.y + t.z + t.s);
359 if (m == 0) return new LSL_Types.Vector3(); 354 if (m == 0) return new LSL_Vector();
360 double n = 2 * (r.y * r.s + r.x * r.z); 355 double n = 2 * (r.y * r.s + r.x * r.z);
361 double p = m * m - n * n; 356 double p = m * m - n * n;
362 if (p > 0) 357 if (p > 0)
363 return new LSL_Types.Vector3(NormalizeAngle(Math.Atan2(2.0 * (r.x * r.s - r.y * r.z), (-t.x - t.y + t.z + t.s))), 358 return new LSL_Vector(NormalizeAngle(Math.Atan2(2.0 * (r.x * r.s - r.y * r.z), (-t.x - t.y + t.z + t.s))),
364 NormalizeAngle(Math.Atan2(n, Math.Sqrt(p))), 359 NormalizeAngle(Math.Atan2(n, Math.Sqrt(p))),
365 NormalizeAngle(Math.Atan2(2.0 * (r.z * r.s - r.x * r.y), (t.x - t.y - t.z + t.s)))); 360 NormalizeAngle(Math.Atan2(2.0 * (r.z * r.s - r.x * r.y), (t.x - t.y - t.z + t.s))));
366 else if (n > 0) 361 else if (n > 0)
367 return new LSL_Types.Vector3(0.0, Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z))); 362 return new LSL_Vector(0.0, Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z)));
368 else 363 else
369 return new LSL_Types.Vector3(0.0, -Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z))); 364 return new LSL_Vector(0.0, -Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z)));
370 } 365 }
371 366
372 /* From wiki: 367 /* From wiki:
@@ -414,7 +409,7 @@ namespace OpenSim.Region.ScriptEngine.Common
414 * Apparently in some cases this is better from a numerical precision perspective? 409 * Apparently in some cases this is better from a numerical precision perspective?
415 */ 410 */
416 411
417 public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) 412 public LSL_Rotation llEuler2Rot(LSL_Vector v)
418 { 413 {
419 m_host.AddScriptLPS(1); 414 m_host.AddScriptLPS(1);
420 415
@@ -432,10 +427,10 @@ namespace OpenSim.Region.ScriptEngine.Common
432 z = s1*s2*c3+c1*c2*s3; 427 z = s1*s2*c3+c1*c2*s3;
433 s = c1*c2*c3-s1*s2*s3; 428 s = c1*c2*c3-s1*s2*s3;
434 429
435 return new LSL_Types.Quaternion(x, y, z, s); 430 return new LSL_Rotation(x, y, z, s);
436 } 431 }
437 432
438 public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) 433 public LSL_Rotation llAxes2Rot(LSL_Vector fwd, LSL_Vector left, LSL_Vector up)
439 { 434 {
440 m_host.AddScriptLPS(1); 435 m_host.AddScriptLPS(1);
441 double x, y, z, s; 436 double x, y, z, s;
@@ -468,7 +463,7 @@ namespace OpenSim.Region.ScriptEngine.Common
468 if (f == 5) { z = -z; } 463 if (f == 5) { z = -z; }
469 if (f == 6) { y = -y; } 464 if (f == 6) { y = -y; }
470 465
471 LSL_Types.Quaternion result = new LSL_Types.Quaternion(x, y, z, s); 466 LSL_Rotation result = new LSL_Rotation(x, y, z, s);
472 467
473 // a hack to correct a few questionable angles :( 468 // a hack to correct a few questionable angles :(
474 if (llVecDist(llRot2Fwd(result), fwd) > 0.001 || llVecDist(llRot2Left(result), left) > 0.001) 469 if (llVecDist(llRot2Fwd(result), fwd) > 0.001 || llVecDist(llRot2Left(result), left) > 0.001)
@@ -477,7 +472,7 @@ namespace OpenSim.Region.ScriptEngine.Common
477 return result; 472 return result;
478 } 473 }
479 474
480 public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r) 475 public LSL_Vector llRot2Fwd(LSL_Rotation r)
481 { 476 {
482 m_host.AddScriptLPS(1); 477 m_host.AddScriptLPS(1);
483 478
@@ -499,10 +494,10 @@ namespace OpenSim.Region.ScriptEngine.Common
499 x = r.x * r.x - r.y * r.y - r.z * r.z + r.s * r.s; 494 x = r.x * r.x - r.y * r.y - r.z * r.z + r.s * r.s;
500 y = 2 * (r.x * r.y + r.z * r.s); 495 y = 2 * (r.x * r.y + r.z * r.s);
501 z = 2 * (r.x * r.z - r.y * r.s); 496 z = 2 * (r.x * r.z - r.y * r.s);
502 return (new LSL_Types.Vector3(x, y, z)); 497 return (new LSL_Vector(x, y, z));
503 } 498 }
504 499
505 public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r) 500 public LSL_Vector llRot2Left(LSL_Rotation r)
506 { 501 {
507 m_host.AddScriptLPS(1); 502 m_host.AddScriptLPS(1);
508 503
@@ -524,10 +519,10 @@ namespace OpenSim.Region.ScriptEngine.Common
524 x = 2 * (r.x * r.y - r.z * r.s); 519 x = 2 * (r.x * r.y - r.z * r.s);
525 y = -r.x * r.x + r.y * r.y - r.z * r.z + r.s * r.s; 520 y = -r.x * r.x + r.y * r.y - r.z * r.z + r.s * r.s;
526 z = 2 * (r.x * r.s + r.y * r.z); 521 z = 2 * (r.x * r.s + r.y * r.z);
527 return (new LSL_Types.Vector3(x, y, z)); 522 return (new LSL_Vector(x, y, z));
528 } 523 }
529 524
530 public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r) 525 public LSL_Vector llRot2Up(LSL_Rotation r)
531 { 526 {
532 m_host.AddScriptLPS(1); 527 m_host.AddScriptLPS(1);
533 double x, y, z, m; 528 double x, y, z, m;
@@ -548,18 +543,18 @@ namespace OpenSim.Region.ScriptEngine.Common
548 x = 2 * (r.x * r.z + r.y * r.s); 543 x = 2 * (r.x * r.z + r.y * r.s);
549 y = 2 * (-r.x * r.s + r.y * r.z); 544 y = 2 * (-r.x * r.s + r.y * r.z);
550 z = -r.x * r.x - r.y * r.y + r.z * r.z + r.s * r.s; 545 z = -r.x * r.x - r.y * r.y + r.z * r.z + r.s * r.s;
551 return (new LSL_Types.Vector3(x, y, z)); 546 return (new LSL_Vector(x, y, z));
552 } 547 }
553 548
554 public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b) 549 public LSL_Rotation llRotBetween(LSL_Vector a, LSL_Vector b)
555 { 550 {
556 //A and B should both be normalized 551 //A and B should both be normalized
557 m_host.AddScriptLPS(1); 552 m_host.AddScriptLPS(1);
558 double dotProduct = LSL_Types.Vector3.Dot(a, b); 553 double dotProduct = LSL_Vector.Dot(a, b);
559 LSL_Types.Vector3 crossProduct = LSL_Types.Vector3.Cross(a, b); 554 LSL_Vector crossProduct = LSL_Vector.Cross(a, b);
560 double magProduct = LSL_Types.Vector3.Mag(a) * LSL_Types.Vector3.Mag(b); 555 double magProduct = LSL_Vector.Mag(a) * LSL_Vector.Mag(b);
561 double angle = Math.Acos(dotProduct / magProduct); 556 double angle = Math.Acos(dotProduct / magProduct);
562 LSL_Types.Vector3 axis = LSL_Types.Vector3.Norm(crossProduct); 557 LSL_Vector axis = LSL_Vector.Norm(crossProduct);
563 double s = Math.Sin(angle / 2); 558 double s = Math.Sin(angle / 2);
564 559
565 double x = axis.x * s; 560 double x = axis.x * s;
@@ -568,9 +563,9 @@ namespace OpenSim.Region.ScriptEngine.Common
568 double w = Math.Cos(angle / 2); 563 double w = Math.Cos(angle / 2);
569 564
570 if (Double.IsNaN(x) || Double.IsNaN(y) || Double.IsNaN(z) || Double.IsNaN(w)) 565 if (Double.IsNaN(x) || Double.IsNaN(y) || Double.IsNaN(z) || Double.IsNaN(w))
571 return new LSL_Types.Quaternion(0.0f, 0.0f, 0.0f, 1.0f); 566 return new LSL_Rotation(0.0f, 0.0f, 0.0f, 1.0f);
572 567
573 return new LSL_Types.Quaternion((float)x, (float)y, (float)z, (float)w); 568 return new LSL_Rotation((float)x, (float)y, (float)z, (float)w);
574 } 569 }
575 570
576 public void llWhisper(int channelID, string text) 571 public void llWhisper(int channelID, string text)
@@ -632,7 +627,7 @@ namespace OpenSim.Region.ScriptEngine.Common
632 wComm.DeliverMessage(ChatTypeEnum.Region, channelID, m_host.Name, m_host.UUID, text); 627 wComm.DeliverMessage(ChatTypeEnum.Region, channelID, m_host.Name, m_host.UUID, text);
633 } 628 }
634 629
635 public LSL_Types.LSLInteger llListen(int channelID, string name, string ID, string msg) 630 public LSL_Integer llListen(int channelID, string name, string ID, string msg)
636 { 631 {
637 m_host.AddScriptLPS(1); 632 m_host.AddScriptLPS(1);
638 UUID keyID; 633 UUID keyID;
@@ -707,10 +702,10 @@ namespace OpenSim.Region.ScriptEngine.Common
707 return SensedObject.Name; 702 return SensedObject.Name;
708 } 703 }
709 704
710 public string llDetectedName(int number) 705 public LSL_String llDetectedName(int number)
711 { 706 {
712 m_host.AddScriptLPS(1); 707 m_host.AddScriptLPS(1);
713 LSL_Types.list SenseList = m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.GetSensorList(m_localID, m_itemID); 708 LSL_List SenseList = m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.GetSensorList(m_localID, m_itemID);
714 if (SenseList != null) 709 if (SenseList != null)
715 { 710 {
716 if ((number >= 0) && (number < SenseList.Length)) 711 if ((number >= 0) && (number < SenseList.Length))
@@ -750,7 +745,7 @@ namespace OpenSim.Region.ScriptEngine.Common
750 745
751 public UUID uuidDetectedKey(int number) 746 public UUID uuidDetectedKey(int number)
752 { 747 {
753 LSL_Types.list SenseList = m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.GetSensorList(m_localID, m_itemID); 748 LSL_List SenseList = m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.GetSensorList(m_localID, m_itemID);
754 if (SenseList != null) 749 if (SenseList != null)
755 { 750 {
756 if ((number >= 0) && (number < SenseList.Length)) 751 if ((number >= 0) && (number < SenseList.Length))
@@ -787,7 +782,7 @@ namespace OpenSim.Region.ScriptEngine.Common
787 782
788 public EntityBase entityDetectedKey(int number) 783 public EntityBase entityDetectedKey(int number)
789 { 784 {
790 LSL_Types.list SenseList = m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.GetSensorList(m_localID, m_itemID); 785 LSL_List SenseList = m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.GetSensorList(m_localID, m_itemID);
791 if (SenseList != null) 786 if (SenseList != null)
792 { 787 {
793 if ((number >= 0) && (number < SenseList.Length)) 788 if ((number >= 0) && (number < SenseList.Length))
@@ -834,7 +829,7 @@ namespace OpenSim.Region.ScriptEngine.Common
834 return null; 829 return null;
835 } 830 }
836 831
837 public string llDetectedKey(int number) 832 public LSL_String llDetectedKey(int number)
838 { 833 {
839 m_host.AddScriptLPS(1); 834 m_host.AddScriptLPS(1);
840 UUID SensedUUID = uuidDetectedKey(number); 835 UUID SensedUUID = uuidDetectedKey(number);
@@ -843,7 +838,7 @@ namespace OpenSim.Region.ScriptEngine.Common
843 return SensedUUID.ToString(); 838 return SensedUUID.ToString();
844 } 839 }
845 840
846 public string llDetectedOwner(int number) 841 public LSL_String llDetectedOwner(int number)
847 { 842 {
848 // returns UUID of owner of object detected 843 // returns UUID of owner of object detected
849 m_host.AddScriptLPS(1); 844 m_host.AddScriptLPS(1);
@@ -869,7 +864,7 @@ namespace OpenSim.Region.ScriptEngine.Common
869 864
870 } 865 }
871 866
872 public LSL_Types.LSLInteger llDetectedType(int number) 867 public LSL_Integer llDetectedType(int number)
873 { 868 {
874 m_host.AddScriptLPS(1); 869 m_host.AddScriptLPS(1);
875 EntityBase SensedObject = entityDetectedKey(number); 870 EntityBase SensedObject = entityDetectedKey(number);
@@ -878,7 +873,7 @@ namespace OpenSim.Region.ScriptEngine.Common
878 int mask = 0; 873 int mask = 0;
879 874
880 UUID SensedUUID = uuidDetectedKey(number); 875 UUID SensedUUID = uuidDetectedKey(number);
881 LSL_Types.Vector3 ZeroVector = new LSL_Types.Vector3(0, 0, 0); 876 LSL_Vector ZeroVector = new LSL_Vector(0, 0, 0);
882 877
883 if (World.GetScenePresence(SensedUUID) != null) mask |= 0x01; // actor 878 if (World.GetScenePresence(SensedUUID) != null) mask |= 0x01; // actor
884 if (SensedObject.Velocity.Equals(ZeroVector)) 879 if (SensedObject.Velocity.Equals(ZeroVector))
@@ -889,71 +884,71 @@ namespace OpenSim.Region.ScriptEngine.Common
889 return mask; 884 return mask;
890 } 885 }
891 886
892 public LSL_Types.Vector3 llDetectedPos(int number) 887 public LSL_Vector llDetectedPos(int number)
893 { 888 {
894 m_host.AddScriptLPS(1); 889 m_host.AddScriptLPS(1);
895 EntityBase SensedObject = entityDetectedKey(number); 890 EntityBase SensedObject = entityDetectedKey(number);
896 if (SensedObject == null) 891 if (SensedObject == null)
897 return new LSL_Types.Vector3(0, 0, 0); 892 return new LSL_Vector(0, 0, 0);
898 return new LSL_Types.Vector3( 893 return new LSL_Vector(
899 SensedObject.AbsolutePosition.X, 894 SensedObject.AbsolutePosition.X,
900 SensedObject.AbsolutePosition.Y, 895 SensedObject.AbsolutePosition.Y,
901 SensedObject.AbsolutePosition.Z); 896 SensedObject.AbsolutePosition.Z);
902 } 897 }
903 898
904 public LSL_Types.Vector3 llDetectedVel(int number) 899 public LSL_Vector llDetectedVel(int number)
905 { 900 {
906 m_host.AddScriptLPS(1); 901 m_host.AddScriptLPS(1);
907 EntityBase SensedObject = entityDetectedKey(number); 902 EntityBase SensedObject = entityDetectedKey(number);
908 if (SensedObject == null) 903 if (SensedObject == null)
909 return new LSL_Types.Vector3(0, 0, 0); 904 return new LSL_Vector(0, 0, 0);
910 return new LSL_Types.Vector3( 905 return new LSL_Vector(
911 SensedObject.Velocity.X, 906 SensedObject.Velocity.X,
912 SensedObject.Velocity.Y, 907 SensedObject.Velocity.Y,
913 SensedObject.Velocity.Z); 908 SensedObject.Velocity.Z);
914 } 909 }
915 910
916 public LSL_Types.Vector3 llDetectedGrab(int number) 911 public LSL_Vector llDetectedGrab(int number)
917 { 912 {
918 m_host.AddScriptLPS(1); 913 m_host.AddScriptLPS(1);
919 EntityBase SensedObject = entityDetectedKey(number); 914 EntityBase SensedObject = entityDetectedKey(number);
920 if (SensedObject == null) 915 if (SensedObject == null)
921 return new LSL_Types.Vector3(0, 0, 0); 916 return new LSL_Vector(0, 0, 0);
922 917
923 return new LSL_Types.Vector3( 918 return new LSL_Vector(
924 SensedObject.AbsolutePosition.X, 919 SensedObject.AbsolutePosition.X,
925 SensedObject.AbsolutePosition.Y, 920 SensedObject.AbsolutePosition.Y,
926 SensedObject.AbsolutePosition.Z); 921 SensedObject.AbsolutePosition.Z);
927 } 922 }
928 923
929 public LSL_Types.Quaternion llDetectedRot(int number) 924 public LSL_Rotation llDetectedRot(int number)
930 { 925 {
931 m_host.AddScriptLPS(1); 926 m_host.AddScriptLPS(1);
932 EntityBase SensedObject = entityDetectedKey(number); 927 EntityBase SensedObject = entityDetectedKey(number);
933 if (SensedObject == null) 928 if (SensedObject == null)
934 return new LSL_Types.Quaternion(); 929 return new LSL_Rotation();
935 return new LSL_Types.Quaternion( 930 return new LSL_Rotation(
936 SensedObject.Rotation.X, 931 SensedObject.Rotation.X,
937 SensedObject.Rotation.Y, 932 SensedObject.Rotation.Y,
938 SensedObject.Rotation.Z, 933 SensedObject.Rotation.Z,
939 SensedObject.Rotation.W); 934 SensedObject.Rotation.W);
940 } 935 }
941 936
942 public LSL_Types.LSLInteger llDetectedGroup(int number) 937 public LSL_Integer llDetectedGroup(int number)
943 { 938 {
944 m_host.AddScriptLPS(1); 939 m_host.AddScriptLPS(1);
945 UUID SensedUUID = uuidDetectedKey(number); 940 UUID SensedUUID = uuidDetectedKey(number);
946 if (SensedUUID == UUID.Zero) 941 if (SensedUUID == UUID.Zero)
947 return new LSL_Types.LSLInteger(0); 942 return new LSL_Integer(0);
948 ScenePresence presence = World.GetScenePresence(SensedUUID); 943 ScenePresence presence = World.GetScenePresence(SensedUUID);
949 IClientAPI client = presence.ControllingClient; 944 IClientAPI client = presence.ControllingClient;
950 if (m_host.GroupID == client.ActiveGroupId) 945 if (m_host.GroupID == client.ActiveGroupId)
951 return new LSL_Types.LSLInteger(1); 946 return new LSL_Integer(1);
952 else 947 else
953 return new LSL_Types.LSLInteger(0); 948 return new LSL_Integer(0);
954 } 949 }
955 950
956 public LSL_Types.LSLInteger llDetectedLinkNumber(int number) 951 public LSL_Integer llDetectedLinkNumber(int number)
957 { 952 {
958 m_host.AddScriptLPS(1); 953 m_host.AddScriptLPS(1);
959 EntityBase SensedObject = entityDetectedKey(number); 954 EntityBase SensedObject = entityDetectedKey(number);
@@ -962,13 +957,55 @@ namespace OpenSim.Region.ScriptEngine.Common
962 return m_host.LinkNum; 957 return m_host.LinkNum;
963 } 958 }
964 959
960 public LSL_Vector llDetectedTouchBinormal(int index)
961 {
962 m_host.AddScriptLPS(1);
963 NotImplemented("llDetectedTouchBinormal");
964 return new LSL_Vector();
965 }
966
967 public LSL_Integer llDetectedTouchFace(int index)
968 {
969 m_host.AddScriptLPS(1);
970 NotImplemented("llDetectedTouchFace");
971 return new LSL_Integer(0);
972 }
973
974 public LSL_Vector llDetectedTouchNormal(int index)
975 {
976 m_host.AddScriptLPS(1);
977 NotImplemented("llDetectedTouchNormal");
978 return new LSL_Vector();
979 }
980
981 public LSL_Vector llDetectedTouchPos(int index)
982 {
983 m_host.AddScriptLPS(1);
984 NotImplemented("llDetectedTouchPos");
985 return new LSL_Vector();
986 }
987
988 public LSL_Vector llDetectedTouchST(int index)
989 {
990 m_host.AddScriptLPS(1);
991 NotImplemented("llDetectedTouchST");
992 return new LSL_Vector();
993 }
994
995 public LSL_Vector llDetectedTouchUV(int index)
996 {
997 m_host.AddScriptLPS(1);
998 NotImplemented("llDetectedTouchUV");
999 return new LSL_Vector();
1000 }
1001
965 public void llDie() 1002 public void llDie()
966 { 1003 {
967 m_host.AddScriptLPS(1); 1004 m_host.AddScriptLPS(1);
968 World.DeleteSceneObject(m_host.ParentGroup); 1005 World.DeleteSceneObject(m_host.ParentGroup);
969 } 1006 }
970 1007
971 public double llGround(LSL_Types.Vector3 offset) 1008 public LSL_Float llGround(LSL_Vector offset)
972 { 1009 {
973 m_host.AddScriptLPS(1); 1010 m_host.AddScriptLPS(1);
974 int x = (int)(m_host.OffsetPosition.X + offset.x); 1011 int x = (int)(m_host.OffsetPosition.X + offset.x);
@@ -976,16 +1013,16 @@ namespace OpenSim.Region.ScriptEngine.Common
976 return World.GetLandHeight(x, y); 1013 return World.GetLandHeight(x, y);
977 } 1014 }
978 1015
979 public double llCloud(LSL_Types.Vector3 offset) 1016 public LSL_Float llCloud(LSL_Vector offset)
980 { 1017 {
981 m_host.AddScriptLPS(1); 1018 m_host.AddScriptLPS(1);
982 return 0; 1019 return 0;
983 } 1020 }
984 1021
985 public LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset) 1022 public LSL_Vector llWind(LSL_Vector offset)
986 { 1023 {
987 m_host.AddScriptLPS(1); 1024 m_host.AddScriptLPS(1);
988 return new LSL_Types.Vector3(); 1025 return new LSL_Vector();
989 } 1026 }
990 1027
991 public void llSetStatus(int status, int value) 1028 public void llSetStatus(int status, int value)
@@ -1076,7 +1113,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1076 } 1113 }
1077 } 1114 }
1078 1115
1079 public LSL_Types.LSLInteger llGetStatus(int status) 1116 public LSL_Integer llGetStatus(int status)
1080 { 1117 {
1081 m_host.AddScriptLPS(1); 1118 m_host.AddScriptLPS(1);
1082 // Console.WriteLine(m_host.ToString() + " status is " + m_host.GetEffectiveObjectFlags().ToString()); 1119 // Console.WriteLine(m_host.ToString() + " status is " + m_host.GetEffectiveObjectFlags().ToString());
@@ -1136,13 +1173,13 @@ namespace OpenSim.Region.ScriptEngine.Common
1136 return 0; 1173 return 0;
1137 } 1174 }
1138 1175
1139 public void llSetScale(LSL_Types.Vector3 scale) 1176 public void llSetScale(LSL_Vector scale)
1140 { 1177 {
1141 m_host.AddScriptLPS(1); 1178 m_host.AddScriptLPS(1);
1142 SetScale(m_host, scale); 1179 SetScale(m_host, scale);
1143 } 1180 }
1144 1181
1145 private void SetScale(SceneObjectPart part, LSL_Types.Vector3 scale) 1182 private void SetScale(SceneObjectPart part, LSL_Vector scale)
1146 { 1183 {
1147 // TODO: this needs to trigger a persistance save as well 1184 // TODO: this needs to trigger a persistance save as well
1148 1185
@@ -1172,24 +1209,31 @@ namespace OpenSim.Region.ScriptEngine.Common
1172 part.SendFullUpdateToAllClients(); 1209 part.SendFullUpdateToAllClients();
1173 } 1210 }
1174 1211
1175 public LSL_Types.Vector3 llGetScale() 1212 public LSL_Vector llGetScale()
1213 {
1214 m_host.AddScriptLPS(1);
1215 return new LSL_Vector(m_host.Scale.X, m_host.Scale.Y, m_host.Scale.Z);
1216 }
1217
1218 public void llSetClickAction(int action)
1176 { 1219 {
1177 m_host.AddScriptLPS(1); 1220 m_host.AddScriptLPS(1);
1178 return new LSL_Types.Vector3(m_host.Scale.X, m_host.Scale.Y, m_host.Scale.Z); 1221 NotImplemented("llSetClickAction");
1222 return;
1179 } 1223 }
1180 1224
1181 public void llSetColor(LSL_Types.Vector3 color, int face) 1225 public void llSetColor(LSL_Vector color, int face)
1182 { 1226 {
1183 m_host.AddScriptLPS(1); 1227 m_host.AddScriptLPS(1);
1184 1228
1185 SetColor(m_host, color, face); 1229 SetColor(m_host, color, face);
1186 } 1230 }
1187 1231
1188 private void SetColor(SceneObjectPart part, LSL_Types.Vector3 color, int face) 1232 private void SetColor(SceneObjectPart part, LSL_Vector color, int face)
1189 { 1233 {
1190 Primitive.TextureEntry tex = part.Shape.Textures; 1234 Primitive.TextureEntry tex = part.Shape.Textures;
1191 Color4 texcolor; 1235 Color4 texcolor;
1192 if (face > -1) 1236 if (face >= 0 && face < GetNumberOfSides(part))
1193 { 1237 {
1194 texcolor = tex.CreateFace((uint)face).RGBA; 1238 texcolor = tex.CreateFace((uint)face).RGBA;
1195 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f); 1239 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
@@ -1199,9 +1243,9 @@ namespace OpenSim.Region.ScriptEngine.Common
1199 part.UpdateTexture(tex); 1243 part.UpdateTexture(tex);
1200 return; 1244 return;
1201 } 1245 }
1202 else if (face == -1) 1246 else if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1203 { 1247 {
1204 for (uint i = 0; i < 32; i++) 1248 for (uint i = 0; i < GetNumberOfSides(part); i++)
1205 { 1249 {
1206 if (tex.FaceTextures[i] != null) 1250 if (tex.FaceTextures[i] != null)
1207 { 1251 {
@@ -1225,16 +1269,16 @@ namespace OpenSim.Region.ScriptEngine.Common
1225 public void SetGlow(SceneObjectPart part, int face, float glow) 1269 public void SetGlow(SceneObjectPart part, int face, float glow)
1226 { 1270 {
1227 Primitive.TextureEntry tex = part.Shape.Textures; 1271 Primitive.TextureEntry tex = part.Shape.Textures;
1228 if (face > -1) 1272 if (face >= 0 && face < GetNumberOfSides(part))
1229 { 1273 {
1230 tex.CreateFace((uint) face); 1274 tex.CreateFace((uint) face);
1231 tex.FaceTextures[face].Glow = glow; 1275 tex.FaceTextures[face].Glow = glow;
1232 part.UpdateTexture(tex); 1276 part.UpdateTexture(tex);
1233 return; 1277 return;
1234 } 1278 }
1235 else if (face == -1) 1279 else if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1236 { 1280 {
1237 for (uint i = 0; i < 32; i++) 1281 for (uint i = 0; i < GetNumberOfSides(part); i++)
1238 { 1282 {
1239 if (tex.FaceTextures[i] != null) 1283 if (tex.FaceTextures[i] != null)
1240 { 1284 {
@@ -1272,7 +1316,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1272 } 1316 }
1273 1317
1274 Primitive.TextureEntry tex = part.Shape.Textures; 1318 Primitive.TextureEntry tex = part.Shape.Textures;
1275 if (face > -1) 1319 if (face >= 0 && face < GetNumberOfSides(part))
1276 { 1320 {
1277 tex.CreateFace((uint) face); 1321 tex.CreateFace((uint) face);
1278 tex.FaceTextures[face].Shiny = sval; 1322 tex.FaceTextures[face].Shiny = sval;
@@ -1280,9 +1324,9 @@ namespace OpenSim.Region.ScriptEngine.Common
1280 part.UpdateTexture(tex); 1324 part.UpdateTexture(tex);
1281 return; 1325 return;
1282 } 1326 }
1283 else if (face == -1) 1327 else if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1284 { 1328 {
1285 for (uint i = 0; i < 32; i++) 1329 for (uint i = 0; i < GetNumberOfSides(part); i++)
1286 { 1330 {
1287 if (tex.FaceTextures[i] != null) 1331 if (tex.FaceTextures[i] != null)
1288 { 1332 {
@@ -1300,16 +1344,16 @@ namespace OpenSim.Region.ScriptEngine.Common
1300 public void SetFullBright(SceneObjectPart part, int face, bool bright) 1344 public void SetFullBright(SceneObjectPart part, int face, bool bright)
1301 { 1345 {
1302 Primitive.TextureEntry tex = part.Shape.Textures; 1346 Primitive.TextureEntry tex = part.Shape.Textures;
1303 if (face > -1) 1347 if (face >= 0 && face < GetNumberOfSides(part))
1304 { 1348 {
1305 tex.CreateFace((uint) face); 1349 tex.CreateFace((uint) face);
1306 tex.FaceTextures[face].Fullbright = bright; 1350 tex.FaceTextures[face].Fullbright = bright;
1307 part.UpdateTexture(tex); 1351 part.UpdateTexture(tex);
1308 return; 1352 return;
1309 } 1353 }
1310 else if (face == -1) 1354 else if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1311 { 1355 {
1312 for (uint i = 0; i < 32; i++) 1356 for (uint i = 0; i < GetNumberOfSides(part); i++)
1313 { 1357 {
1314 if (tex.FaceTextures[i] != null) 1358 if (tex.FaceTextures[i] != null)
1315 { 1359 {
@@ -1322,19 +1366,28 @@ namespace OpenSim.Region.ScriptEngine.Common
1322 } 1366 }
1323 } 1367 }
1324 1368
1325 public double llGetAlpha(int face) 1369 public LSL_Float llGetAlpha(int face)
1326 { 1370 {
1327 m_host.AddScriptLPS(1); 1371 m_host.AddScriptLPS(1);
1328 Primitive.TextureEntry tex = m_host.Shape.Textures; 1372 return GetAlpha(m_host, face);
1329 if (face == -1) // TMP: Until we can determine number of sides, ALL_SIDES (-1) will return default color 1373 }
1374
1375 private LSL_Float GetAlpha(SceneObjectPart part, int face)
1376 {
1377 Primitive.TextureEntry tex = part.Shape.Textures;
1378 if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1330 { 1379 {
1331 return (double)((tex.DefaultTexture.RGBA.A * 255) / 255); 1380 int i;
1381 double sum = 0.0;
1382 for (i = 0 ; i < GetNumberOfSides(part) ; i++)
1383 sum += (double)tex.GetFace((uint)i).RGBA.A;
1384 return sum;
1332 } 1385 }
1333 if (face > -1) 1386 if (face >= 0 && face < GetNumberOfSides(part))
1334 { 1387 {
1335 return (double)((tex.GetFace((uint)face).RGBA.A * 255) / 255); 1388 return (double)tex.GetFace((uint)face).RGBA.A;
1336 } 1389 }
1337 return 0; 1390 return 0.0;
1338 } 1391 }
1339 1392
1340 public void llSetAlpha(double alpha, int face) 1393 public void llSetAlpha(double alpha, int face)
@@ -1348,7 +1401,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1348 { 1401 {
1349 Primitive.TextureEntry tex = part.Shape.Textures; 1402 Primitive.TextureEntry tex = part.Shape.Textures;
1350 Color4 texcolor; 1403 Color4 texcolor;
1351 if (face > -1) 1404 if (face >= 0 && face < GetNumberOfSides(part))
1352 { 1405 {
1353 texcolor = tex.CreateFace((uint)face).RGBA; 1406 texcolor = tex.CreateFace((uint)face).RGBA;
1354 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f); 1407 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
@@ -1356,9 +1409,9 @@ namespace OpenSim.Region.ScriptEngine.Common
1356 part.UpdateTexture(tex); 1409 part.UpdateTexture(tex);
1357 return; 1410 return;
1358 } 1411 }
1359 else if (face == -1) 1412 else if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1360 { 1413 {
1361 for (int i = 0; i < 32; i++) 1414 for (int i = 0; i < GetNumberOfSides(part); i++)
1362 { 1415 {
1363 if (tex.FaceTextures[i] != null) 1416 if (tex.FaceTextures[i] != null)
1364 { 1417 {
@@ -1389,7 +1442,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1389 /// <param name="tension"></param> 1442 /// <param name="tension"></param>
1390 /// <param name="Force"></param> 1443 /// <param name="Force"></param>
1391 private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, 1444 private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction,
1392 float wind, float tension, LSL_Types.Vector3 Force) 1445 float wind, float tension, LSL_Vector Force)
1393 { 1446 {
1394 if (part == null) 1447 if (part == null)
1395 return; 1448 return;
@@ -1447,7 +1500,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1447 /// <param name="intensity"></param> 1500 /// <param name="intensity"></param>
1448 /// <param name="radius"></param> 1501 /// <param name="radius"></param>
1449 /// <param name="falloff"></param> 1502 /// <param name="falloff"></param>
1450 private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff) 1503 private void SetPointLight(SceneObjectPart part, bool light, LSL_Vector color, float intensity, float radius, float falloff)
1451 { 1504 {
1452 if (part == null) 1505 if (part == null)
1453 return; 1506 return;
@@ -1471,31 +1524,46 @@ namespace OpenSim.Region.ScriptEngine.Common
1471 part.ScheduleFullUpdate(); 1524 part.ScheduleFullUpdate();
1472 } 1525 }
1473 1526
1474 public LSL_Types.Vector3 llGetColor(int face) 1527 public LSL_Vector llGetColor(int face)
1475 { 1528 {
1476 m_host.AddScriptLPS(1); 1529 m_host.AddScriptLPS(1);
1477 Primitive.TextureEntry tex = m_host.Shape.Textures; 1530 return GetColor(m_host, face);
1531 }
1532
1533 private LSL_Vector GetColor(SceneObjectPart part, int face)
1534 {
1535 Primitive.TextureEntry tex = part.Shape.Textures;
1478 Color4 texcolor; 1536 Color4 texcolor;
1479 LSL_Types.Vector3 rgb; 1537 LSL_Vector rgb = new LSL_Vector();
1480 if (face == -1) // TMP: Until we can determine number of sides, ALL_SIDES (-1) will return default color 1538 if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1481 { 1539 {
1482 texcolor = tex.DefaultTexture.RGBA; 1540 int i;
1483 rgb.x = (255 - (texcolor.R * 255)) / 255; 1541
1484 rgb.y = (255 - (texcolor.G * 255)) / 255; 1542 for (i = 0 ; i < GetNumberOfSides(part) ; i++)
1485 rgb.z = (255 - (texcolor.B * 255)) / 255; 1543 {
1544 texcolor = tex.GetFace((uint)i).RGBA;
1545 rgb.x += texcolor.R;
1546 rgb.y += texcolor.G;
1547 rgb.z += texcolor.B;
1548 }
1549
1550 rgb.x /= (float)GetNumberOfSides(part);
1551 rgb.y /= (float)GetNumberOfSides(part);
1552 rgb.z /= (float)GetNumberOfSides(part);
1553
1486 return rgb; 1554 return rgb;
1487 } 1555 }
1488 if (face > -1) 1556 if (face >= 0 && face < GetNumberOfSides(part))
1489 { 1557 {
1490 texcolor = tex.GetFace((uint)face).RGBA; 1558 texcolor = tex.GetFace((uint)face).RGBA;
1491 rgb.x = (255 - (texcolor.R * 255)) / 255; 1559 rgb.x = texcolor.R;
1492 rgb.y = (255 - (texcolor.G * 255)) / 255; 1560 rgb.y = texcolor.G;
1493 rgb.z = (255 - (texcolor.B * 255)) / 255; 1561 rgb.z = texcolor.B;
1494 return rgb; 1562 return rgb;
1495 } 1563 }
1496 else 1564 else
1497 { 1565 {
1498 return new LSL_Types.Vector3(); 1566 return new LSL_Vector();
1499 } 1567 }
1500 } 1568 }
1501 1569
@@ -1520,7 +1588,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1520 1588
1521 Primitive.TextureEntry tex = part.Shape.Textures; 1589 Primitive.TextureEntry tex = part.Shape.Textures;
1522 1590
1523 if (face > -1) 1591 if (face >= 0 && face < GetNumberOfSides(part))
1524 { 1592 {
1525 Primitive.TextureEntryFace texface = tex.CreateFace((uint)face); 1593 Primitive.TextureEntryFace texface = tex.CreateFace((uint)face);
1526 texface.TextureID = textureID; 1594 texface.TextureID = textureID;
@@ -1528,9 +1596,9 @@ namespace OpenSim.Region.ScriptEngine.Common
1528 part.UpdateTexture(tex); 1596 part.UpdateTexture(tex);
1529 return; 1597 return;
1530 } 1598 }
1531 else if (face == -1) 1599 else if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1532 { 1600 {
1533 for (uint i = 0; i < 32; i++) 1601 for (uint i = 0; i < GetNumberOfSides(part); i++)
1534 { 1602 {
1535 if (tex.FaceTextures[i] != null) 1603 if (tex.FaceTextures[i] != null)
1536 { 1604 {
@@ -1554,7 +1622,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1554 private void ScaleTexture(SceneObjectPart part, double u, double v, int face) 1622 private void ScaleTexture(SceneObjectPart part, double u, double v, int face)
1555 { 1623 {
1556 Primitive.TextureEntry tex = part.Shape.Textures; 1624 Primitive.TextureEntry tex = part.Shape.Textures;
1557 if (face > -1) 1625 if (face >= 0 && face < GetNumberOfSides(part))
1558 { 1626 {
1559 Primitive.TextureEntryFace texface = tex.CreateFace((uint)face); 1627 Primitive.TextureEntryFace texface = tex.CreateFace((uint)face);
1560 texface.RepeatU = (float)u; 1628 texface.RepeatU = (float)u;
@@ -1563,9 +1631,9 @@ namespace OpenSim.Region.ScriptEngine.Common
1563 part.UpdateTexture(tex); 1631 part.UpdateTexture(tex);
1564 return; 1632 return;
1565 } 1633 }
1566 if (face == -1) 1634 if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1567 { 1635 {
1568 for (int i = 0; i < 32; i++) 1636 for (int i = 0; i < GetNumberOfSides(part); i++)
1569 { 1637 {
1570 if (tex.FaceTextures[i] != null) 1638 if (tex.FaceTextures[i] != null)
1571 { 1639 {
@@ -1590,7 +1658,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1590 private void OffsetTexture(SceneObjectPart part, double u, double v, int face) 1658 private void OffsetTexture(SceneObjectPart part, double u, double v, int face)
1591 { 1659 {
1592 Primitive.TextureEntry tex = part.Shape.Textures; 1660 Primitive.TextureEntry tex = part.Shape.Textures;
1593 if (face > -1) 1661 if (face >= 0 && face < GetNumberOfSides(part))
1594 { 1662 {
1595 Primitive.TextureEntryFace texface = tex.CreateFace((uint)face); 1663 Primitive.TextureEntryFace texface = tex.CreateFace((uint)face);
1596 texface.OffsetU = (float)u; 1664 texface.OffsetU = (float)u;
@@ -1599,9 +1667,9 @@ namespace OpenSim.Region.ScriptEngine.Common
1599 part.UpdateTexture(tex); 1667 part.UpdateTexture(tex);
1600 return; 1668 return;
1601 } 1669 }
1602 if (face == -1) 1670 if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1603 { 1671 {
1604 for (int i = 0; i < 32; i++) 1672 for (int i = 0; i < GetNumberOfSides(part); i++)
1605 { 1673 {
1606 if (tex.FaceTextures[i] != null) 1674 if (tex.FaceTextures[i] != null)
1607 { 1675 {
@@ -1626,7 +1694,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1626 private void RotateTexture(SceneObjectPart part, double rotation, int face) 1694 private void RotateTexture(SceneObjectPart part, double rotation, int face)
1627 { 1695 {
1628 Primitive.TextureEntry tex = part.Shape.Textures; 1696 Primitive.TextureEntry tex = part.Shape.Textures;
1629 if (face > -1) 1697 if (face >= 0 && face < GetNumberOfSides(part))
1630 { 1698 {
1631 Primitive.TextureEntryFace texface = tex.CreateFace((uint)face); 1699 Primitive.TextureEntryFace texface = tex.CreateFace((uint)face);
1632 texface.Rotation = (float)rotation; 1700 texface.Rotation = (float)rotation;
@@ -1634,9 +1702,9 @@ namespace OpenSim.Region.ScriptEngine.Common
1634 part.UpdateTexture(tex); 1702 part.UpdateTexture(tex);
1635 return; 1703 return;
1636 } 1704 }
1637 if (face == -1) 1705 if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1638 { 1706 {
1639 for (int i = 0; i < 32; i++) 1707 for (int i = 0; i < GetNumberOfSides(part); i++)
1640 { 1708 {
1641 if (tex.FaceTextures[i] != null) 1709 if (tex.FaceTextures[i] != null)
1642 { 1710 {
@@ -1649,15 +1717,20 @@ namespace OpenSim.Region.ScriptEngine.Common
1649 } 1717 }
1650 } 1718 }
1651 1719
1652 public string llGetTexture(int face) 1720 public LSL_String llGetTexture(int face)
1653 { 1721 {
1654 m_host.AddScriptLPS(1); 1722 m_host.AddScriptLPS(1);
1655 Primitive.TextureEntry tex = m_host.Shape.Textures; 1723 return GetTexture(m_host, face);
1656 if (face == -1) 1724 }
1725
1726 private LSL_String GetTexture(SceneObjectPart part, int face)
1727 {
1728 Primitive.TextureEntry tex = part.Shape.Textures;
1729 if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
1657 { 1730 {
1658 face = 0; 1731 face = 0;
1659 } 1732 }
1660 if (face > -1) 1733 if (face >= 0 && face < GetNumberOfSides(part))
1661 { 1734 {
1662 Primitive.TextureEntryFace texface; 1735 Primitive.TextureEntryFace texface;
1663 texface = tex.GetFace((uint)face); 1736 texface = tex.GetFace((uint)face);
@@ -1669,7 +1742,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1669 } 1742 }
1670 } 1743 }
1671 1744
1672 public void llSetPos(LSL_Types.Vector3 pos) 1745 public void llSetPos(LSL_Vector pos)
1673 { 1746 {
1674 m_host.AddScriptLPS(1); 1747 m_host.AddScriptLPS(1);
1675 1748
@@ -1678,10 +1751,10 @@ namespace OpenSim.Region.ScriptEngine.Common
1678 ScriptSleep(200); 1751 ScriptSleep(200);
1679 } 1752 }
1680 1753
1681 private void SetPos(SceneObjectPart part, LSL_Types.Vector3 targetPos) 1754 private void SetPos(SceneObjectPart part, LSL_Vector targetPos)
1682 { 1755 {
1683 // Capped movemment if distance > 10m (http://wiki.secondlife.com/wiki/LlSetPos) 1756 // Capped movemment if distance > 10m (http://wiki.secondlife.com/wiki/LlSetPos)
1684 LSL_Types.Vector3 currentPos = llGetLocalPos(); 1757 LSL_Vector currentPos = llGetLocalPos();
1685 if (llVecDist(currentPos, targetPos) > 10.0f * m_distanceFactor) 1758 if (llVecDist(currentPos, targetPos) > 10.0f * m_distanceFactor)
1686 { 1759 {
1687 targetPos = currentPos + m_distanceFactor * 10.0f * llVecNorm(targetPos - currentPos); 1760 targetPos = currentPos + m_distanceFactor * 10.0f * llVecNorm(targetPos - currentPos);
@@ -1697,32 +1770,32 @@ namespace OpenSim.Region.ScriptEngine.Common
1697 } 1770 }
1698 } 1771 }
1699 1772
1700 public LSL_Types.Vector3 llGetPos() 1773 public LSL_Vector llGetPos()
1701 { 1774 {
1702 m_host.AddScriptLPS(1); 1775 m_host.AddScriptLPS(1);
1703 return new LSL_Types.Vector3(m_host.AbsolutePosition.X, 1776 return new LSL_Vector(m_host.AbsolutePosition.X,
1704 m_host.AbsolutePosition.Y, 1777 m_host.AbsolutePosition.Y,
1705 m_host.AbsolutePosition.Z); 1778 m_host.AbsolutePosition.Z);
1706 } 1779 }
1707 1780
1708 public LSL_Types.Vector3 llGetLocalPos() 1781 public LSL_Vector llGetLocalPos()
1709 { 1782 {
1710 m_host.AddScriptLPS(1); 1783 m_host.AddScriptLPS(1);
1711 if (m_host.ParentID != 0) 1784 if (m_host.ParentID != 0)
1712 { 1785 {
1713 return new LSL_Types.Vector3(m_host.OffsetPosition.X, 1786 return new LSL_Vector(m_host.OffsetPosition.X,
1714 m_host.OffsetPosition.Y, 1787 m_host.OffsetPosition.Y,
1715 m_host.OffsetPosition.Z); 1788 m_host.OffsetPosition.Z);
1716 } 1789 }
1717 else 1790 else
1718 { 1791 {
1719 return new LSL_Types.Vector3(m_host.AbsolutePosition.X, 1792 return new LSL_Vector(m_host.AbsolutePosition.X,
1720 m_host.AbsolutePosition.Y, 1793 m_host.AbsolutePosition.Y,
1721 m_host.AbsolutePosition.Z); 1794 m_host.AbsolutePosition.Z);
1722 } 1795 }
1723 } 1796 }
1724 1797
1725 public void llSetRot(LSL_Types.Quaternion rot) 1798 public void llSetRot(LSL_Rotation rot)
1726 { 1799 {
1727 m_host.AddScriptLPS(1); 1800 m_host.AddScriptLPS(1);
1728 1801
@@ -1731,31 +1804,27 @@ namespace OpenSim.Region.ScriptEngine.Common
1731 ScriptSleep(200); 1804 ScriptSleep(200);
1732 } 1805 }
1733 1806
1734 private void SetRot(SceneObjectPart part, LSL_Types.Quaternion rot) 1807 private void SetRot(SceneObjectPart part, LSL_Rotation rot)
1735 { 1808 {
1736 part.UpdateRotation(new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s)); 1809 part.UpdateRotation(new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s));
1737 // Update rotation does not move the object in the physics scene if it's a linkset. 1810 // Update rotation does not move the object in the physics scene if it's a linkset.
1738 part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition; 1811 part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition;
1739 } 1812 }
1740 1813
1741 public LSL_Types.Quaternion llGetRot() 1814 public LSL_Rotation llGetRot()
1742 { 1815 {
1743 m_host.AddScriptLPS(1); 1816 m_host.AddScriptLPS(1);
1744 Quaternion q = m_host.RotationOffset; 1817 Quaternion q = m_host.RotationOffset;
1745 return new LSL_Types.Quaternion(q.X, q.Y, q.Z, q.W); 1818 return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
1746 } 1819 }
1747 1820
1748 public LSL_Types.Quaternion llGetLocalRot() 1821 public LSL_Rotation llGetLocalRot()
1749 { 1822 {
1750 m_host.AddScriptLPS(1); 1823 m_host.AddScriptLPS(1);
1751 return new LSL_Types.Quaternion( 1824 return new LSL_Rotation(m_host.RotationOffset.X, m_host.RotationOffset.Y, m_host.RotationOffset.Z, m_host.RotationOffset.W);
1752 m_host.RotationOffset.X,
1753 m_host.RotationOffset.Y,
1754 m_host.RotationOffset.Z,
1755 m_host.RotationOffset.W);
1756 } 1825 }
1757 1826
1758 public void llSetForce(LSL_Types.Vector3 force, int local) 1827 public void llSetForce(LSL_Vector force, int local)
1759 { 1828 {
1760 m_host.AddScriptLPS(1); 1829 m_host.AddScriptLPS(1);
1761 1830
@@ -1771,9 +1840,9 @@ namespace OpenSim.Region.ScriptEngine.Common
1771 } 1840 }
1772 } 1841 }
1773 1842
1774 public LSL_Types.Vector3 llGetForce() 1843 public LSL_Vector llGetForce()
1775 { 1844 {
1776 LSL_Types.Vector3 force = new LSL_Types.Vector3(0.0, 0.0, 0.0); 1845 LSL_Vector force = new LSL_Vector(0.0, 0.0, 0.0);
1777 1846
1778 m_host.AddScriptLPS(1); 1847 m_host.AddScriptLPS(1);
1779 1848
@@ -1791,11 +1860,10 @@ namespace OpenSim.Region.ScriptEngine.Common
1791 return force; 1860 return force;
1792 } 1861 }
1793 1862
1794 public LSL_Types.LSLInteger llTarget(LSL_Types.Vector3 position, double range) 1863 public LSL_Integer llTarget(LSL_Vector position, double range)
1795 { 1864 {
1796 m_host.AddScriptLPS(1); 1865 m_host.AddScriptLPS(1);
1797 return m_host.registerTargetWaypoint(new Vector3((float)position.x, (float)position.y, (float)position.z), (float)range); 1866 return m_host.registerTargetWaypoint(new Vector3((float)position.x, (float)position.y, (float)position.z), (float)range);
1798
1799 } 1867 }
1800 1868
1801 public void llTargetRemove(int number) 1869 public void llTargetRemove(int number)
@@ -1804,7 +1872,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1804 m_host.unregisterTargetWaypoint(number); 1872 m_host.unregisterTargetWaypoint(number);
1805 } 1873 }
1806 1874
1807 public LSL_Types.LSLInteger llRotTarget(LSL_Types.Quaternion rot, double error) 1875 public LSL_Integer llRotTarget(LSL_Rotation rot, double error)
1808 { 1876 {
1809 m_host.AddScriptLPS(1); 1877 m_host.AddScriptLPS(1);
1810 NotImplemented("llRotTarget"); 1878 NotImplemented("llRotTarget");
@@ -1817,7 +1885,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1817 NotImplemented("llRotTargetRemove"); 1885 NotImplemented("llRotTargetRemove");
1818 } 1886 }
1819 1887
1820 public void llMoveToTarget(LSL_Types.Vector3 target, double tau) 1888 public void llMoveToTarget(LSL_Vector target, double tau)
1821 { 1889 {
1822 m_host.AddScriptLPS(1); 1890 m_host.AddScriptLPS(1);
1823 m_host.MoveToTarget(new Vector3((float)target.x, (float)target.y, (float)target.z), (float)tau); 1891 m_host.MoveToTarget(new Vector3((float)target.x, (float)target.y, (float)target.z), (float)tau);
@@ -1829,7 +1897,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1829 m_host.StopMoveToTarget(); 1897 m_host.StopMoveToTarget();
1830 } 1898 }
1831 1899
1832 public void llApplyImpulse(LSL_Types.Vector3 force, int local) 1900 public void llApplyImpulse(LSL_Vector force, int local)
1833 { 1901 {
1834 m_host.AddScriptLPS(1); 1902 m_host.AddScriptLPS(1);
1835 //No energy force yet 1903 //No energy force yet
@@ -1844,62 +1912,62 @@ namespace OpenSim.Region.ScriptEngine.Common
1844 m_host.ApplyImpulse(new Vector3((float)force.x, (float)force.y, (float)force.z), local != 0); 1912 m_host.ApplyImpulse(new Vector3((float)force.x, (float)force.y, (float)force.z), local != 0);
1845 } 1913 }
1846 1914
1847 public void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local) 1915 public void llApplyRotationalImpulse(LSL_Vector force, int local)
1848 { 1916 {
1849 m_host.AddScriptLPS(1); 1917 m_host.AddScriptLPS(1);
1850 NotImplemented("llApplyRotationalImpulse"); 1918 NotImplemented("llApplyRotationalImpulse");
1851 } 1919 }
1852 1920
1853 public void llSetTorque(LSL_Types.Vector3 torque, int local) 1921 public void llSetTorque(LSL_Vector torque, int local)
1854 { 1922 {
1855 m_host.AddScriptLPS(1); 1923 m_host.AddScriptLPS(1);
1856 NotImplemented("llSetTorque"); 1924 NotImplemented("llSetTorque");
1857 } 1925 }
1858 1926
1859 public LSL_Types.Vector3 llGetTorque() 1927 public LSL_Vector llGetTorque()
1860 { 1928 {
1861 m_host.AddScriptLPS(1); 1929 m_host.AddScriptLPS(1);
1862 NotImplemented("llGetTorque"); 1930 NotImplemented("llGetTorque");
1863 return new LSL_Types.Vector3(); 1931 return new LSL_Vector();
1864 } 1932 }
1865 1933
1866 public void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local) 1934 public void llSetForceAndTorque(LSL_Vector force, LSL_Vector torque, int local)
1867 { 1935 {
1868 m_host.AddScriptLPS(1); 1936 m_host.AddScriptLPS(1);
1869 NotImplemented("llSetForceAndTorque"); 1937 NotImplemented("llSetForceAndTorque");
1870 } 1938 }
1871 1939
1872 public LSL_Types.Vector3 llGetVel() 1940 public LSL_Vector llGetVel()
1873 { 1941 {
1874 m_host.AddScriptLPS(1); 1942 m_host.AddScriptLPS(1);
1875 return new LSL_Types.Vector3(m_host.Velocity.X, m_host.Velocity.Y, m_host.Velocity.Z); 1943 return new LSL_Vector(m_host.Velocity.X, m_host.Velocity.Y, m_host.Velocity.Z);
1876 } 1944 }
1877 1945
1878 public LSL_Types.Vector3 llGetAccel() 1946 public LSL_Vector llGetAccel()
1879 { 1947 {
1880 m_host.AddScriptLPS(1); 1948 m_host.AddScriptLPS(1);
1881 return new LSL_Types.Vector3(m_host.Acceleration.X, m_host.Acceleration.Y, m_host.Acceleration.Z); 1949 return new LSL_Vector(m_host.Acceleration.X, m_host.Acceleration.Y, m_host.Acceleration.Z);
1882 } 1950 }
1883 1951
1884 public LSL_Types.Vector3 llGetOmega() 1952 public LSL_Vector llGetOmega()
1885 { 1953 {
1886 m_host.AddScriptLPS(1); 1954 m_host.AddScriptLPS(1);
1887 return new LSL_Types.Vector3(m_host.RotationalVelocity.X, m_host.RotationalVelocity.Y, m_host.RotationalVelocity.Z); 1955 return new LSL_Vector(m_host.RotationalVelocity.X, m_host.RotationalVelocity.Y, m_host.RotationalVelocity.Z);
1888 } 1956 }
1889 1957
1890 public double llGetTimeOfDay() 1958 public LSL_Float llGetTimeOfDay()
1891 { 1959 {
1892 m_host.AddScriptLPS(1); 1960 m_host.AddScriptLPS(1);
1893 return (double)(((DateTime.Now.TimeOfDay.TotalMilliseconds / 1000) % (3600 * 4)) * World.TimeDilation); 1961 return (double)(((DateTime.Now.TimeOfDay.TotalMilliseconds / 1000) % (3600 * 4)) * World.TimeDilation);
1894 } 1962 }
1895 1963
1896 public double llGetWallclock() 1964 public LSL_Float llGetWallclock()
1897 { 1965 {
1898 m_host.AddScriptLPS(1); 1966 m_host.AddScriptLPS(1);
1899 return DateTime.Now.TimeOfDay.TotalSeconds; 1967 return DateTime.Now.TimeOfDay.TotalSeconds;
1900 } 1968 }
1901 1969
1902 public double llGetTime() 1970 public LSL_Float llGetTime()
1903 { 1971 {
1904 m_host.AddScriptLPS(1); 1972 m_host.AddScriptLPS(1);
1905 TimeSpan ScriptTime = DateTime.Now - m_timer; 1973 TimeSpan ScriptTime = DateTime.Now - m_timer;
@@ -1912,7 +1980,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1912 m_timer = DateTime.Now; 1980 m_timer = DateTime.Now;
1913 } 1981 }
1914 1982
1915 public double llGetAndResetTime() 1983 public LSL_Float llGetAndResetTime()
1916 { 1984 {
1917 m_host.AddScriptLPS(1); 1985 m_host.AddScriptLPS(1);
1918 TimeSpan ScriptTime = DateTime.Now - m_timer; 1986 TimeSpan ScriptTime = DateTime.Now - m_timer;
@@ -2017,7 +2085,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2017 /// this more complicated than it might otherwise seem. 2085 /// this more complicated than it might otherwise seem.
2018 /// </summary> 2086 /// </summary>
2019 2087
2020 public string llGetSubString(string src, int start, int end) 2088 public LSL_String llGetSubString(string src, int start, int end)
2021 { 2089 {
2022 2090
2023 m_host.AddScriptLPS(1); 2091 m_host.AddScriptLPS(1);
@@ -2113,7 +2181,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2113 /// i.e. end < start. 2181 /// i.e. end < start.
2114 /// </summary> 2182 /// </summary>
2115 2183
2116 public string llDeleteSubString(string src, int start, int end) 2184 public LSL_String llDeleteSubString(string src, int start, int end)
2117 { 2185 {
2118 2186
2119 m_host.AddScriptLPS(1); 2187 m_host.AddScriptLPS(1);
@@ -2196,7 +2264,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2196 /// string bound, with the result being a concatenation. 2264 /// string bound, with the result being a concatenation.
2197 /// </summary> 2265 /// </summary>
2198 2266
2199 public string llInsertString(string dest, int index, string src) 2267 public LSL_String llInsertString(string dest, int index, string src)
2200 { 2268 {
2201 2269
2202 m_host.AddScriptLPS(1); 2270 m_host.AddScriptLPS(1);
@@ -2234,19 +2302,19 @@ namespace OpenSim.Region.ScriptEngine.Common
2234 2302
2235 } 2303 }
2236 2304
2237 public string llToUpper(string src) 2305 public LSL_String llToUpper(string src)
2238 { 2306 {
2239 m_host.AddScriptLPS(1); 2307 m_host.AddScriptLPS(1);
2240 return src.ToUpper(); 2308 return src.ToUpper();
2241 } 2309 }
2242 2310
2243 public string llToLower(string src) 2311 public LSL_String llToLower(string src)
2244 { 2312 {
2245 m_host.AddScriptLPS(1); 2313 m_host.AddScriptLPS(1);
2246 return src.ToLower(); 2314 return src.ToLower();
2247 } 2315 }
2248 2316
2249 public LSL_Types.LSLInteger llGiveMoney(string destination, int amount) 2317 public LSL_Integer llGiveMoney(string destination, int amount)
2250 { 2318 {
2251 UUID invItemID=InventorySelf(); 2319 UUID invItemID=InventorySelf();
2252 if (invItemID == UUID.Zero) 2320 if (invItemID == UUID.Zero)
@@ -2315,7 +2383,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2315 // ScriptSleep(100); 2383 // ScriptSleep(100);
2316 } 2384 }
2317 2385
2318 public void llRezAtRoot(string inventory, LSL_Types.Vector3 pos, LSL_Types.Vector3 vel, LSL_Types.Quaternion rot, int param) 2386 public void llRezAtRoot(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param)
2319 { 2387 {
2320 m_host.AddScriptLPS(1); 2388 m_host.AddScriptLPS(1);
2321 if (Double.IsNaN(rot.x) || Double.IsNaN(rot.y) || Double.IsNaN(rot.z) || Double.IsNaN(rot.s)) 2389 if (Double.IsNaN(rot.x) || Double.IsNaN(rot.y) || Double.IsNaN(rot.z) || Double.IsNaN(rot.s))
@@ -2363,11 +2431,11 @@ namespace OpenSim.Region.ScriptEngine.Common
2363 // objects rezzed with this method are die_at_edge by default. 2431 // objects rezzed with this method are die_at_edge by default.
2364 new_group.RootPart.SetDieAtEdge(true); 2432 new_group.RootPart.SetDieAtEdge(true);
2365 2433
2366 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(m_localID, m_itemID, "object_rez", EventQueueManager.llDetectNull, new Object[] { new LSL_Types.LSLString(new_group.RootPart.ToString()) }); 2434 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(m_localID, m_itemID, "object_rez", EventQueueManager.llDetectNull, new Object[] { new LSL_String(new_group.RootPart.ToString()) });
2367 float groupmass = new_group.GetMass(); 2435 float groupmass = new_group.GetMass();
2368 2436
2369 //Recoil. 2437 //Recoil.
2370 llApplyImpulse(new LSL_Types.Vector3(llvel.X * groupmass, llvel.Y * groupmass, llvel.Z * groupmass), 0); 2438 llApplyImpulse(new LSL_Vector(llvel.X * groupmass, llvel.Y * groupmass, llvel.Z * groupmass), 0);
2371 found = true; 2439 found = true;
2372 // Variable script delay? (see (http://wiki.secondlife.com/wiki/LSL_Delay) 2440 // Variable script delay? (see (http://wiki.secondlife.com/wiki/LSL_Delay)
2373 ScriptSleep((int)((groupmass * velmag) / 10)); 2441 ScriptSleep((int)((groupmass * velmag) / 10));
@@ -2379,12 +2447,12 @@ namespace OpenSim.Region.ScriptEngine.Common
2379 llSay(0, "Could not find object " + inventory); 2447 llSay(0, "Could not find object " + inventory);
2380 } 2448 }
2381 2449
2382 public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Vector3 vel, LSL_Types.Quaternion rot, int param) 2450 public void llRezObject(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param)
2383 { 2451 {
2384 llRezAtRoot(inventory, pos, vel, rot, param); 2452 llRezAtRoot(inventory, pos, vel, rot, param);
2385 } 2453 }
2386 2454
2387 public void llLookAt(LSL_Types.Vector3 target, double strength, double damping) 2455 public void llLookAt(LSL_Vector target, double strength, double damping)
2388 { 2456 {
2389 m_host.AddScriptLPS(1); 2457 m_host.AddScriptLPS(1);
2390 NotImplemented("llLookAt"); 2458 NotImplemented("llLookAt");
@@ -2409,7 +2477,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2409 Thread.Sleep((int)(sec * 1000)); 2477 Thread.Sleep((int)(sec * 1000));
2410 } 2478 }
2411 2479
2412 public double llGetMass() 2480 public LSL_Float llGetMass()
2413 { 2481 {
2414 m_host.AddScriptLPS(1); 2482 m_host.AddScriptLPS(1);
2415 return m_host.GetMass(); 2483 return m_host.GetMass();
@@ -2495,7 +2563,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2495 Deprecated("llReleaseCamera"); 2563 Deprecated("llReleaseCamera");
2496 } 2564 }
2497 2565
2498 public string llGetOwner() 2566 public LSL_String llGetOwner()
2499 { 2567 {
2500 m_host.AddScriptLPS(1); 2568 m_host.AddScriptLPS(1);
2501 2569
@@ -2544,6 +2612,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2544 msg.RegionID = World.RegionInfo.RegionID.Guid;//RegionID.Guid; 2612 msg.RegionID = World.RegionInfo.RegionID.Guid;//RegionID.Guid;
2545 msg.binaryBucket = new byte[0];// binaryBucket; 2613 msg.binaryBucket = new byte[0];// binaryBucket;
2546 World.TriggerGridInstantMessage(msg, InstantMessageReceiver.IMModule); 2614 World.TriggerGridInstantMessage(msg, InstantMessageReceiver.IMModule);
2615 // ScriptSleep(2000);
2547 } 2616 }
2548 2617
2549 public void llEmail(string address, string subject, string message) 2618 public void llEmail(string address, string subject, string message)
@@ -2563,7 +2632,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2563 NotImplemented("llGetNextEmail"); 2632 NotImplemented("llGetNextEmail");
2564 } 2633 }
2565 2634
2566 public string llGetKey() 2635 public LSL_String llGetKey()
2567 { 2636 {
2568 m_host.AddScriptLPS(1); 2637 m_host.AddScriptLPS(1);
2569 return m_host.UUID.ToString(); 2638 return m_host.UUID.ToString();
@@ -2607,13 +2676,13 @@ namespace OpenSim.Region.ScriptEngine.Common
2607 Deprecated("llSoundPreload"); 2676 Deprecated("llSoundPreload");
2608 } 2677 }
2609 2678
2610 public void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping) 2679 public void llRotLookAt(LSL_Rotation target, double strength, double damping)
2611 { 2680 {
2612 m_host.AddScriptLPS(1); 2681 m_host.AddScriptLPS(1);
2613 NotImplemented("llRotLookAt"); 2682 NotImplemented("llRotLookAt");
2614 } 2683 }
2615 2684
2616 public LSL_Types.LSLInteger llStringLength(string str) 2685 public LSL_Integer llStringLength(string str)
2617 { 2686 {
2618 m_host.AddScriptLPS(1); 2687 m_host.AddScriptLPS(1);
2619 if (str.Length > 0) 2688 if (str.Length > 0)
@@ -2697,22 +2766,23 @@ namespace OpenSim.Region.ScriptEngine.Common
2697 NotImplemented("llStopPointAt"); 2766 NotImplemented("llStopPointAt");
2698 } 2767 }
2699 2768
2700 public void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain) 2769 public void llTargetOmega(LSL_Vector axis, double spinrate, double gain)
2701 { 2770 {
2702 m_host.AddScriptLPS(1); 2771 m_host.AddScriptLPS(1);
2703 m_host.RotationalVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate)); 2772 m_host.RotationalVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate));
2704 m_host.AngularVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate)); 2773 m_host.AngularVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate));
2705 m_host.ScheduleTerseUpdate(); 2774 m_host.ScheduleTerseUpdate();
2706 m_host.SendTerseUpdateToAllClients(); 2775 m_host.SendTerseUpdateToAllClients();
2776 m_host.ParentGroup.HasGroupChanged = true;
2707 } 2777 }
2708 2778
2709 public LSL_Types.LSLInteger llGetStartParameter() 2779 public LSL_Integer llGetStartParameter()
2710 { 2780 {
2711 // This is not handled here 2781 // This is not handled here
2712 return 0; 2782 return 0;
2713 } 2783 }
2714 2784
2715 public void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos) 2785 public void llGodLikeRezObject(string inventory, LSL_Vector pos)
2716 { 2786 {
2717 m_host.AddScriptLPS(1); 2787 m_host.AddScriptLPS(1);
2718 NotImplemented("llGodLikeRezObject"); 2788 NotImplemented("llGodLikeRezObject");
@@ -2732,15 +2802,20 @@ namespace OpenSim.Region.ScriptEngine.Common
2732 2802
2733 if (agentID == UUID.Zero || perm == 0) // Releasing permissions 2803 if (agentID == UUID.Zero || perm == 0) // Releasing permissions
2734 { 2804 {
2805 llReleaseControls();
2806
2735 m_host.TaskInventory[invItemID].PermsGranter=UUID.Zero; 2807 m_host.TaskInventory[invItemID].PermsGranter=UUID.Zero;
2736 m_host.TaskInventory[invItemID].PermsMask=0; 2808 m_host.TaskInventory[invItemID].PermsMask=0;
2737 2809
2738 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 2810 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
2739 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Types.LSLInteger(0)}); 2811 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Integer(0)});
2740 2812
2741 return; 2813 return;
2742 } 2814 }
2743 2815
2816 if ( m_host.TaskInventory[invItemID].PermsGranter != agentID || (perm & BuiltIn_Commands_BaseClass.PERMISSION_TAKE_CONTROLS) == 0)
2817 llReleaseControls();
2818
2744 m_host.AddScriptLPS(1); 2819 m_host.AddScriptLPS(1);
2745 2820
2746 if (m_host.ParentGroup.RootPart.IsAttachment && agent == m_host.ParentGroup.RootPart.AttachedAvatar) 2821 if (m_host.ParentGroup.RootPart.IsAttachment && agent == m_host.ParentGroup.RootPart.AttachedAvatar)
@@ -2757,7 +2832,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2757 m_host.TaskInventory[invItemID].PermsMask=perm; 2832 m_host.TaskInventory[invItemID].PermsMask=perm;
2758 2833
2759 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 2834 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
2760 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Types.LSLInteger(perm)}); 2835 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Integer(perm)});
2761 2836
2762 return; 2837 return;
2763 } 2838 }
@@ -2775,7 +2850,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2775 m_host.TaskInventory[invItemID].PermsMask=perm; 2850 m_host.TaskInventory[invItemID].PermsMask=perm;
2776 2851
2777 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 2852 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
2778 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Types.LSLInteger(perm)}); 2853 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Integer(perm)});
2779 2854
2780 return; 2855 return;
2781 } 2856 }
@@ -2803,7 +2878,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2803 2878
2804 // Requested agent is not in range, refuse perms 2879 // Requested agent is not in range, refuse perms
2805 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 2880 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
2806 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Types.LSLInteger(0)}); 2881 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Integer(0)});
2807 } 2882 }
2808 2883
2809 void handleScriptAnswer(IClientAPI client, UUID taskID, UUID itemID, int answer) 2884 void handleScriptAnswer(IClientAPI client, UUID taskID, UUID itemID, int answer)
@@ -2821,10 +2896,10 @@ namespace OpenSim.Region.ScriptEngine.Common
2821 2896
2822 m_host.TaskInventory[invItemID].PermsMask=answer; 2897 m_host.TaskInventory[invItemID].PermsMask=answer;
2823 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 2898 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
2824 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Types.LSLInteger(answer)}); 2899 m_localID, m_itemID, "run_time_permissions", EventQueueManager.llDetectNull, new Object[] {new LSL_Integer(answer)});
2825 } 2900 }
2826 2901
2827 public string llGetPermissionsKey() 2902 public LSL_String llGetPermissionsKey()
2828 { 2903 {
2829 m_host.AddScriptLPS(1); 2904 m_host.AddScriptLPS(1);
2830 2905
@@ -2839,7 +2914,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2839 return UUID.Zero.ToString(); 2914 return UUID.Zero.ToString();
2840 } 2915 }
2841 2916
2842 public LSL_Types.LSLInteger llGetPermissions() 2917 public LSL_Integer llGetPermissions()
2843 { 2918 {
2844 m_host.AddScriptLPS(1); 2919 m_host.AddScriptLPS(1);
2845 2920
@@ -2854,7 +2929,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2854 return 0; 2929 return 0;
2855 } 2930 }
2856 2931
2857 public LSL_Types.LSLInteger llGetLinkNumber() 2932 public LSL_Integer llGetLinkNumber()
2858 { 2933 {
2859 m_host.AddScriptLPS(1); 2934 m_host.AddScriptLPS(1);
2860 2935
@@ -2868,7 +2943,7 @@ namespace OpenSim.Region.ScriptEngine.Common
2868 } 2943 }
2869 } 2944 }
2870 2945
2871 public void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face) 2946 public void llSetLinkColor(int linknumber, LSL_Vector color, int face)
2872 { 2947 {
2873 m_host.AddScriptLPS(1); 2948 m_host.AddScriptLPS(1);
2874 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknumber); 2949 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknumber);
@@ -2991,6 +3066,8 @@ namespace OpenSim.Region.ScriptEngine.Common
2991 } 3066 }
2992 parentPrim.TriggerScriptChangedEvent(Changed.LINK); 3067 parentPrim.TriggerScriptChangedEvent(Changed.LINK);
2993 parentPrim.RootPart.AddFlag(PrimFlags.CreateSelected); 3068 parentPrim.RootPart.AddFlag(PrimFlags.CreateSelected);
3069 parentPrim.HasGroupChanged = true;
3070 parentPrim.ScheduleGroupForFullUpdate();
2994 parentPrim.GetProperties(client); 3071 parentPrim.GetProperties(client);
2995 3072
2996 ScriptSleep(1000); 3073 ScriptSleep(1000);
@@ -3067,13 +3144,14 @@ namespace OpenSim.Region.ScriptEngine.Common
3067 SceneObjectGroup parentPrim = m_host.ParentGroup; 3144 SceneObjectGroup parentPrim = m_host.ParentGroup;
3068 List<SceneObjectPart> parts = new List<SceneObjectPart>(parentPrim.Children.Values); 3145 List<SceneObjectPart> parts = new List<SceneObjectPart>(parentPrim.Children.Values);
3069 parts.Remove(parentPrim.RootPart); 3146 parts.Remove(parentPrim.RootPart);
3070 foreach (SceneObjectPart part in parts) { 3147 foreach (SceneObjectPart part in parts)
3148 {
3071 parentPrim.DelinkFromGroup(part.LocalId, true); 3149 parentPrim.DelinkFromGroup(part.LocalId, true);
3072 parentPrim.TriggerScriptChangedEvent(Changed.LINK); 3150 parentPrim.TriggerScriptChangedEvent(Changed.LINK);
3073 } 3151 }
3074 } 3152 }
3075 3153
3076 public string llGetLinkKey(int linknum) 3154 public LSL_String llGetLinkKey(int linknum)
3077 { 3155 {
3078 m_host.AddScriptLPS(1); 3156 m_host.AddScriptLPS(1);
3079 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknum); 3157 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknum);
@@ -3087,7 +3165,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3087 } 3165 }
3088 } 3166 }
3089 3167
3090 public string llGetLinkName(int linknum) 3168 public LSL_String llGetLinkName(int linknum)
3091 { 3169 {
3092 m_host.AddScriptLPS(1); 3170 m_host.AddScriptLPS(1);
3093 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknum); 3171 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknum);
@@ -3101,7 +3179,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3101 } 3179 }
3102 } 3180 }
3103 3181
3104 public LSL_Types.LSLInteger llGetInventoryNumber(int type) 3182 public LSL_Integer llGetInventoryNumber(int type)
3105 { 3183 {
3106 m_host.AddScriptLPS(1); 3184 m_host.AddScriptLPS(1);
3107 int count = 0; 3185 int count = 0;
@@ -3115,7 +3193,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3115 return count; 3193 return count;
3116 } 3194 }
3117 3195
3118 public string llGetInventoryName(int type, int number) 3196 public LSL_String llGetInventoryName(int type, int number)
3119 { 3197 {
3120 m_host.AddScriptLPS(1); 3198 m_host.AddScriptLPS(1);
3121 ArrayList keys = new ArrayList(); 3199 ArrayList keys = new ArrayList();
@@ -3172,7 +3250,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3172 // assume it is not running. 3250 // assume it is not running.
3173 } 3251 }
3174 3252
3175 public double llGetEnergy() 3253 public LSL_Float llGetEnergy()
3176 { 3254 {
3177 m_host.AddScriptLPS(1); 3255 m_host.AddScriptLPS(1);
3178 // TODO: figure out real energy value 3256 // TODO: figure out real energy value
@@ -3236,16 +3314,17 @@ namespace OpenSim.Region.ScriptEngine.Common
3236 } 3314 }
3237 } 3315 }
3238 3316
3239 public void llSetText(string text, LSL_Types.Vector3 color, double alpha) 3317 public void llSetText(string text, LSL_Vector color, double alpha)
3240 { 3318 {
3241 m_host.AddScriptLPS(1); 3319 m_host.AddScriptLPS(1);
3242 Vector3 av3 = new Vector3(Util.Clip((float)color.x, 0.0f, 1.0f), 3320 Vector3 av3 = new Vector3(Util.Clip((float)color.x, 0.0f, 1.0f),
3243 Util.Clip((float)color.y, 0.0f, 1.0f), 3321 Util.Clip((float)color.y, 0.0f, 1.0f),
3244 Util.Clip((float)color.z, 0.0f, 1.0f)); 3322 Util.Clip((float)color.z, 0.0f, 1.0f));
3245 m_host.SetText(text, av3, Util.Clip((float)alpha, 0.0f, 1.0f)); 3323 m_host.SetText(text, av3, Util.Clip((float)alpha, 0.0f, 1.0f));
3324 m_host.ParentGroup.HasGroupChanged = true;
3246 } 3325 }
3247 3326
3248 public double llWater(LSL_Types.Vector3 offset) 3327 public LSL_Float llWater(LSL_Vector offset)
3249 { 3328 {
3250 m_host.AddScriptLPS(1); 3329 m_host.AddScriptLPS(1);
3251 return World.RegionInfo.RegionSettings.WaterHeight; 3330 return World.RegionInfo.RegionSettings.WaterHeight;
@@ -3257,7 +3336,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3257 NotImplemented("llPassTouches"); 3336 NotImplemented("llPassTouches");
3258 } 3337 }
3259 3338
3260 public string llRequestAgentData(string id, int data) 3339 public LSL_String llRequestAgentData(string id, int data)
3261 { 3340 {
3262 m_host.AddScriptLPS(1); 3341 m_host.AddScriptLPS(1);
3263 3342
@@ -3310,7 +3389,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3310 return tid.ToString(); 3389 return tid.ToString();
3311 } 3390 }
3312 3391
3313 public string llRequestInventoryData(string name) 3392 public LSL_String llRequestInventoryData(string name)
3314 { 3393 {
3315 m_host.AddScriptLPS(1); 3394 m_host.AddScriptLPS(1);
3316 3395
@@ -3372,6 +3451,12 @@ namespace OpenSim.Region.ScriptEngine.Common
3372 // ScriptSleep(5000); 3451 // ScriptSleep(5000);
3373 } 3452 }
3374 3453
3454 public void llTextBox(string avatar, string message, int chat_channel)
3455 {
3456 m_host.AddScriptLPS(1);
3457 NotImplemented("llTextBox");
3458 }
3459
3375 public void llModifyLand(int action, int brush) 3460 public void llModifyLand(int action, int brush)
3376 { 3461 {
3377 m_host.AddScriptLPS(1); 3462 m_host.AddScriptLPS(1);
@@ -3390,7 +3475,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3390 NotImplemented("llCollisionSprite"); 3475 NotImplemented("llCollisionSprite");
3391 } 3476 }
3392 3477
3393 public string llGetAnimation(string id) 3478 public LSL_String llGetAnimation(string id)
3394 { 3479 {
3395 m_host.AddScriptLPS(1); 3480 m_host.AddScriptLPS(1);
3396 NotImplemented("llGetAnimation"); 3481 NotImplemented("llGetAnimation");
@@ -3427,7 +3512,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3427 3512
3428 object[] resobj = new object[] 3513 object[] resobj = new object[]
3429 { 3514 {
3430 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3515 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3431 }; 3516 };
3432 3517
3433 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 3518 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
@@ -3451,7 +3536,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3451 partItemID = item.ItemID; 3536 partItemID = item.ItemID;
3452 Object[] resobj = new object[] 3537 Object[] resobj = new object[]
3453 { 3538 {
3454 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3539 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3455 }; 3540 };
3456 3541
3457 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 3542 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
@@ -3479,7 +3564,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3479 partItemID = item.ItemID; 3564 partItemID = item.ItemID;
3480 Object[] resobj = new object[] 3565 Object[] resobj = new object[]
3481 { 3566 {
3482 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3567 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3483 }; 3568 };
3484 3569
3485 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 3570 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
@@ -3509,7 +3594,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3509 partItemID = item.ItemID; 3594 partItemID = item.ItemID;
3510 Object[] resobj = new object[] 3595 Object[] resobj = new object[]
3511 { 3596 {
3512 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3597 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3513 }; 3598 };
3514 3599
3515 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 3600 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
@@ -3533,7 +3618,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3533 3618
3534 object[] resobj = new object[] 3619 object[] resobj = new object[]
3535 { 3620 {
3536 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3621 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3537 }; 3622 };
3538 3623
3539 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 3624 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
@@ -3560,7 +3645,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3560 partItemID = item.ItemID; 3645 partItemID = item.ItemID;
3561 Object[] resObjDef = new object[] 3646 Object[] resObjDef = new object[]
3562 { 3647 {
3563 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3648 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3564 }; 3649 };
3565 3650
3566 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( 3651 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(
@@ -3578,7 +3663,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3578 3663
3579 } 3664 }
3580 3665
3581 public void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local) 3666 public void llPushObject(string target, LSL_Vector impulse, LSL_Vector ang_impulse, int local)
3582 { 3667 {
3583 m_host.AddScriptLPS(1); 3668 m_host.AddScriptLPS(1);
3584 SceneObjectPart targ = World.GetSceneObjectPart(target); 3669 SceneObjectPart targ = World.GetSceneObjectPart(target);
@@ -3593,7 +3678,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3593 NotImplemented("llPassCollisions"); 3678 NotImplemented("llPassCollisions");
3594 } 3679 }
3595 3680
3596 public string llGetScriptName() 3681 public LSL_String llGetScriptName()
3597 { 3682 {
3598 3683
3599 string result = String.Empty; 3684 string result = String.Empty;
@@ -3670,17 +3755,22 @@ namespace OpenSim.Region.ScriptEngine.Common
3670 3755
3671 } 3756 }
3672 3757
3673 public LSL_Types.LSLInteger llGetNumberOfSides() 3758 public LSL_Integer llGetNumberOfSides()
3674 { 3759 {
3675 m_host.AddScriptLPS(1); 3760 m_host.AddScriptLPS(1);
3761 return GetNumberOfSides(m_host);
3762 }
3763
3764 private int GetNumberOfSides(SceneObjectPart part)
3765 {
3676 int ret = 0; 3766 int ret = 0;
3677 bool hasCut; 3767 bool hasCut;
3678 bool hasHollow; 3768 bool hasHollow;
3679 bool hasDimple; 3769 bool hasDimple;
3680 bool hasProfileCut; 3770 bool hasProfileCut;
3681 3771
3682 int primType = getScriptPrimType(m_host.Shape); 3772 int primType = getScriptPrimType(part.Shape);
3683 hasCutHollowDimpleProfileCut(primType, m_host.Shape, out hasCut, out hasHollow, out hasDimple, out hasProfileCut); 3773 hasCutHollowDimpleProfileCut(primType, part.Shape, out hasCut, out hasHollow, out hasDimple, out hasProfileCut);
3684 3774
3685 switch (primType) 3775 switch (primType)
3686 { 3776 {
@@ -3759,7 +3849,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3759 // Xantor 29/apr/2008 3849 // Xantor 29/apr/2008
3760 // Returns rotation described by rotating angle radians about axis. 3850 // Returns rotation described by rotating angle radians about axis.
3761 // q = cos(a/2) + i (x * sin(a/2)) + j (y * sin(a/2)) + k (z * sin(a/2)) 3851 // q = cos(a/2) + i (x * sin(a/2)) + j (y * sin(a/2)) + k (z * sin(a/2))
3762 public LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle) 3852 public LSL_Rotation llAxisAngle2Rot(LSL_Vector axis, double angle)
3763 { 3853 {
3764 m_host.AddScriptLPS(1); 3854 m_host.AddScriptLPS(1);
3765 3855
@@ -3771,13 +3861,13 @@ namespace OpenSim.Region.ScriptEngine.Common
3771 y = axis.y * t; 3861 y = axis.y * t;
3772 z = axis.z * t; 3862 z = axis.z * t;
3773 3863
3774 return new LSL_Types.Quaternion(x,y,z,s); 3864 return new LSL_Rotation(x,y,z,s);
3775 } 3865 }
3776 3866
3777 3867
3778 // Xantor 29/apr/2008 3868 // Xantor 29/apr/2008
3779 // converts a Quaternion to X,Y,Z axis rotations 3869 // converts a Quaternion to X,Y,Z axis rotations
3780 public LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot) 3870 public LSL_Vector llRot2Axis(LSL_Rotation rot)
3781 { 3871 {
3782 m_host.AddScriptLPS(1); 3872 m_host.AddScriptLPS(1);
3783 double x,y,z; 3873 double x,y,z;
@@ -3809,13 +3899,13 @@ namespace OpenSim.Region.ScriptEngine.Common
3809 } 3899 }
3810 3900
3811 3901
3812 return new LSL_Types.Vector3(x,y,z); 3902 return new LSL_Vector(x,y,z);
3813 3903
3814 } 3904 }
3815 3905
3816 3906
3817 // Returns the angle of a quaternion (see llRot2Axis for the axis) 3907 // Returns the angle of a quaternion (see llRot2Axis for the axis)
3818 public double llRot2Angle(LSL_Types.Quaternion rot) 3908 public LSL_Float llRot2Angle(LSL_Rotation rot)
3819 { 3909 {
3820 m_host.AddScriptLPS(1); 3910 m_host.AddScriptLPS(1);
3821 3911
@@ -3837,27 +3927,27 @@ namespace OpenSim.Region.ScriptEngine.Common
3837 3927
3838 } 3928 }
3839 3929
3840 public double llAcos(double val) 3930 public LSL_Float llAcos(double val)
3841 { 3931 {
3842 m_host.AddScriptLPS(1); 3932 m_host.AddScriptLPS(1);
3843 return (double)Math.Acos(val); 3933 return (double)Math.Acos(val);
3844 } 3934 }
3845 3935
3846 public double llAsin(double val) 3936 public LSL_Float llAsin(double val)
3847 { 3937 {
3848 m_host.AddScriptLPS(1); 3938 m_host.AddScriptLPS(1);
3849 return (double)Math.Asin(val); 3939 return (double)Math.Asin(val);
3850 } 3940 }
3851 3941
3852 // Xantor 30/apr/2008 3942 // Xantor 30/apr/2008
3853 public double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b) 3943 public LSL_Float llAngleBetween(LSL_Rotation a, LSL_Rotation b)
3854 { 3944 {
3855 m_host.AddScriptLPS(1); 3945 m_host.AddScriptLPS(1);
3856 3946
3857 return (double) Math.Acos(a.x * b.x + a.y * b.y + a.z * b.z + a.s * b.s) * 2; 3947 return (double) Math.Acos(a.x * b.x + a.y * b.y + a.z * b.z + a.s * b.s) * 2;
3858 } 3948 }
3859 3949
3860 public string llGetInventoryKey(string name) 3950 public LSL_String llGetInventoryKey(string name)
3861 { 3951 {
3862 m_host.AddScriptLPS(1); 3952 m_host.AddScriptLPS(1);
3863 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) 3953 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
@@ -3887,15 +3977,15 @@ namespace OpenSim.Region.ScriptEngine.Common
3887 m_host.ParentGroup.RootPart.AllowedDrop = false; 3977 m_host.ParentGroup.RootPart.AllowedDrop = false;
3888 } 3978 }
3889 3979
3890 public LSL_Types.Vector3 llGetSunDirection() 3980 public LSL_Vector llGetSunDirection()
3891 { 3981 {
3892 m_host.AddScriptLPS(1); 3982 m_host.AddScriptLPS(1);
3893 3983
3894 LSL_Types.Vector3 SunDoubleVector3; 3984 LSL_Vector SunDoubleVector3;
3895 Vector3 SunFloatVector3; 3985 Vector3 SunFloatVector3;
3896 3986
3897 // sunPosition estate setting is set in OpenSim.Region.Environment.Modules.SunModule 3987 // sunPosition estate setting is set in OpenSim.Region.Environment.Modules.SunModule
3898 // have to convert from Vector3 (float) to LSL_Types.Vector3 (double) 3988 // have to convert from Vector3 (float) to LSL_Vector (double)
3899 SunFloatVector3 = World.RegionInfo.RegionSettings.SunVector; 3989 SunFloatVector3 = World.RegionInfo.RegionSettings.SunVector;
3900 SunDoubleVector3.x = (double)SunFloatVector3.X; 3990 SunDoubleVector3.x = (double)SunFloatVector3.X;
3901 SunDoubleVector3.y = (double)SunFloatVector3.Y; 3991 SunDoubleVector3.y = (double)SunFloatVector3.Y;
@@ -3904,26 +3994,38 @@ namespace OpenSim.Region.ScriptEngine.Common
3904 return SunDoubleVector3; 3994 return SunDoubleVector3;
3905 } 3995 }
3906 3996
3907 public LSL_Types.Vector3 llGetTextureOffset(int face) 3997 public LSL_Vector llGetTextureOffset(int face)
3908 { 3998 {
3909 m_host.AddScriptLPS(1); 3999 m_host.AddScriptLPS(1);
3910 Primitive.TextureEntry tex = m_host.Shape.Textures; 4000 return GetTextureOffset(m_host, face);
3911 LSL_Types.Vector3 offset; 4001 }
3912 if (face == -1) 4002
4003 private LSL_Vector GetTextureOffset(SceneObjectPart part, int face)
4004 {
4005 Primitive.TextureEntry tex = part.Shape.Textures;
4006 LSL_Vector offset = new LSL_Vector();
4007 if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
3913 { 4008 {
3914 face = 0; 4009 face = 0;
3915 } 4010 }
3916 offset.x = tex.GetFace((uint)face).OffsetU; 4011 if (face >= 0 && face < GetNumberOfSides(part))
3917 offset.y = tex.GetFace((uint)face).OffsetV; 4012 {
3918 offset.z = 0.0; 4013 offset.x = tex.GetFace((uint)face).OffsetU;
3919 return offset; 4014 offset.y = tex.GetFace((uint)face).OffsetV;
4015 offset.z = 0.0;
4016 return offset;
4017 }
4018 else
4019 {
4020 return offset;
4021 }
3920 } 4022 }
3921 4023
3922 public LSL_Types.Vector3 llGetTextureScale(int side) 4024 public LSL_Vector llGetTextureScale(int side)
3923 { 4025 {
3924 m_host.AddScriptLPS(1); 4026 m_host.AddScriptLPS(1);
3925 Primitive.TextureEntry tex = m_host.Shape.Textures; 4027 Primitive.TextureEntry tex = m_host.Shape.Textures;
3926 LSL_Types.Vector3 scale; 4028 LSL_Vector scale;
3927 if (side == -1) 4029 if (side == -1)
3928 { 4030 {
3929 side = 0; 4031 side = 0;
@@ -3934,24 +4036,36 @@ namespace OpenSim.Region.ScriptEngine.Common
3934 return scale; 4036 return scale;
3935 } 4037 }
3936 4038
3937 public double llGetTextureRot(int face) 4039 public LSL_Float llGetTextureRot(int face)
3938 { 4040 {
3939 m_host.AddScriptLPS(1); 4041 m_host.AddScriptLPS(1);
3940 Primitive.TextureEntry tex = m_host.Shape.Textures; 4042 return GetTextureRot(m_host, face);
4043 }
4044
4045 private LSL_Float GetTextureRot(SceneObjectPart part, int face)
4046 {
4047 Primitive.TextureEntry tex = part.Shape.Textures;
3941 if (face == -1) 4048 if (face == -1)
3942 { 4049 {
3943 face = 0; 4050 face = 0;
3944 } 4051 }
3945 return tex.GetFace((uint)face).Rotation; 4052 if (face >= 0 && face < GetNumberOfSides(part))
4053 {
4054 return tex.GetFace((uint)face).Rotation;
4055 }
4056 else
4057 {
4058 return 0.0;
4059 }
3946 } 4060 }
3947 4061
3948 public LSL_Types.LSLInteger llSubStringIndex(string source, string pattern) 4062 public LSL_Integer llSubStringIndex(string source, string pattern)
3949 { 4063 {
3950 m_host.AddScriptLPS(1); 4064 m_host.AddScriptLPS(1);
3951 return source.IndexOf(pattern); 4065 return source.IndexOf(pattern);
3952 } 4066 }
3953 4067
3954 public string llGetOwnerKey(string id) 4068 public LSL_String llGetOwnerKey(string id)
3955 { 4069 {
3956 m_host.AddScriptLPS(1); 4070 m_host.AddScriptLPS(1);
3957 UUID key = new UUID(); 4071 UUID key = new UUID();
@@ -3976,14 +4090,14 @@ namespace OpenSim.Region.ScriptEngine.Common
3976 } 4090 }
3977 } 4091 }
3978 4092
3979 public LSL_Types.Vector3 llGetCenterOfMass() 4093 public LSL_Vector llGetCenterOfMass()
3980 { 4094 {
3981 m_host.AddScriptLPS(1); 4095 m_host.AddScriptLPS(1);
3982 NotImplemented("llGetCenterOfMass"); 4096 NotImplemented("llGetCenterOfMass");
3983 return new LSL_Types.Vector3(); 4097 return new LSL_Vector();
3984 } 4098 }
3985 4099
3986 public LSL_Types.list llListSort(LSL_Types.list src, int stride, int ascending) 4100 public LSL_List llListSort(LSL_List src, int stride, int ascending)
3987 { 4101 {
3988 m_host.AddScriptLPS(1); 4102 m_host.AddScriptLPS(1);
3989 4103
@@ -3994,7 +4108,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3994 return src.Sort(stride, ascending); 4108 return src.Sort(stride, ascending);
3995 } 4109 }
3996 4110
3997 public LSL_Types.LSLInteger llGetListLength(LSL_Types.list src) 4111 public LSL_Integer llGetListLength(LSL_List src)
3998 { 4112 {
3999 m_host.AddScriptLPS(1); 4113 m_host.AddScriptLPS(1);
4000 4114
@@ -4008,7 +4122,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4008 } 4122 }
4009 } 4123 }
4010 4124
4011 public LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index) 4125 public LSL_Integer llList2Integer(LSL_List src, int index)
4012 { 4126 {
4013 m_host.AddScriptLPS(1); 4127 m_host.AddScriptLPS(1);
4014 if (index < 0) 4128 if (index < 0)
@@ -4021,12 +4135,12 @@ namespace OpenSim.Region.ScriptEngine.Common
4021 } 4135 }
4022 try 4136 try
4023 { 4137 {
4024 if (src.Data[index] is LSL_Types.LSLInteger) 4138 if (src.Data[index] is LSL_Integer)
4025 return Convert.ToInt32(((LSL_Types.LSLInteger) src.Data[index]).value); 4139 return Convert.ToInt32(((LSL_Integer) src.Data[index]).value);
4026 else if (src.Data[index] is LSL_Types.LSLFloat) 4140 else if (src.Data[index] is LSL_Float)
4027 return Convert.ToInt32(((LSL_Types.LSLFloat) src.Data[index]).value); 4141 return Convert.ToInt32(((LSL_Float) src.Data[index]).value);
4028 else if (src.Data[index] is LSL_Types.LSLString) 4142 else if (src.Data[index] is LSL_String)
4029 return Convert.ToInt32(((LSL_Types.LSLString) src.Data[index]).m_string); 4143 return Convert.ToInt32(((LSL_String) src.Data[index]).m_string);
4030 return Convert.ToInt32(src.Data[index]); 4144 return Convert.ToInt32(src.Data[index]);
4031 } 4145 }
4032 catch (FormatException) 4146 catch (FormatException)
@@ -4035,7 +4149,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4035 } 4149 }
4036 } 4150 }
4037 4151
4038 public double osList2Double(LSL_Types.list src, int index) 4152 public double osList2Double(LSL_List src, int index)
4039 { 4153 {
4040 m_host.AddScriptLPS(1); 4154 m_host.AddScriptLPS(1);
4041 if (index < 0) 4155 if (index < 0)
@@ -4046,16 +4160,16 @@ namespace OpenSim.Region.ScriptEngine.Common
4046 { 4160 {
4047 return 0.0; 4161 return 0.0;
4048 } 4162 }
4049 if (src.Data[index] is LSL_Types.LSLInteger) 4163 if (src.Data[index] is LSL_Integer)
4050 return Convert.ToDouble(((LSL_Types.LSLInteger) src.Data[index]).value); 4164 return Convert.ToDouble(((LSL_Integer) src.Data[index]).value);
4051 else if (src.Data[index] is LSL_Types.LSLFloat) 4165 else if (src.Data[index] is LSL_Float)
4052 return Convert.ToDouble(((LSL_Types.LSLFloat) src.Data[index]).value); 4166 return Convert.ToDouble(((LSL_Float) src.Data[index]).value);
4053 else if (src.Data[index] is LSL_Types.LSLString) 4167 else if (src.Data[index] is LSL_String)
4054 return Convert.ToDouble(((LSL_Types.LSLString) src.Data[index]).m_string); 4168 return Convert.ToDouble(((LSL_String) src.Data[index]).m_string);
4055 return Convert.ToDouble(src.Data[index]); 4169 return Convert.ToDouble(src.Data[index]);
4056 } 4170 }
4057 4171
4058 public double llList2Float(LSL_Types.list src, int index) 4172 public LSL_Float llList2Float(LSL_List src, int index)
4059 { 4173 {
4060 m_host.AddScriptLPS(1); 4174 m_host.AddScriptLPS(1);
4061 if (index < 0) 4175 if (index < 0)
@@ -4068,12 +4182,12 @@ namespace OpenSim.Region.ScriptEngine.Common
4068 } 4182 }
4069 try 4183 try
4070 { 4184 {
4071 if (src.Data[index] is LSL_Types.LSLInteger) 4185 if (src.Data[index] is LSL_Integer)
4072 return Convert.ToDouble(((LSL_Types.LSLInteger) src.Data[index]).value); 4186 return Convert.ToDouble(((LSL_Integer) src.Data[index]).value);
4073 else if (src.Data[index] is LSL_Types.LSLFloat) 4187 else if (src.Data[index] is LSL_Float)
4074 return Convert.ToDouble(((LSL_Types.LSLFloat) src.Data[index]).value); 4188 return Convert.ToDouble(((LSL_Float) src.Data[index]).value);
4075 else if (src.Data[index] is LSL_Types.LSLString) 4189 else if (src.Data[index] is LSL_String)
4076 return Convert.ToDouble(((LSL_Types.LSLString) src.Data[index]).m_string); 4190 return Convert.ToDouble(((LSL_String) src.Data[index]).m_string);
4077 return Convert.ToDouble(src.Data[index]); 4191 return Convert.ToDouble(src.Data[index]);
4078 } 4192 }
4079 catch (FormatException) 4193 catch (FormatException)
@@ -4082,7 +4196,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4082 } 4196 }
4083 } 4197 }
4084 4198
4085 public string llList2String(LSL_Types.list src, int index) 4199 public LSL_String llList2String(LSL_List src, int index)
4086 { 4200 {
4087 m_host.AddScriptLPS(1); 4201 m_host.AddScriptLPS(1);
4088 if (index < 0) 4202 if (index < 0)
@@ -4096,7 +4210,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4096 return src.Data[index].ToString(); 4210 return src.Data[index].ToString();
4097 } 4211 }
4098 4212
4099 public string llList2Key(LSL_Types.list src, int index) 4213 public LSL_String llList2Key(LSL_List src, int index)
4100 { 4214 {
4101 m_host.AddScriptLPS(1); 4215 m_host.AddScriptLPS(1);
4102 if (index < 0) 4216 if (index < 0)
@@ -4110,7 +4224,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4110 return src.Data[index].ToString(); 4224 return src.Data[index].ToString();
4111 } 4225 }
4112 4226
4113 public LSL_Types.Vector3 llList2Vector(LSL_Types.list src, int index) 4227 public LSL_Vector llList2Vector(LSL_List src, int index)
4114 { 4228 {
4115 m_host.AddScriptLPS(1); 4229 m_host.AddScriptLPS(1);
4116 if (index < 0) 4230 if (index < 0)
@@ -4119,19 +4233,19 @@ namespace OpenSim.Region.ScriptEngine.Common
4119 } 4233 }
4120 if (index >= src.Length) 4234 if (index >= src.Length)
4121 { 4235 {
4122 return new LSL_Types.Vector3(0, 0, 0); 4236 return new LSL_Vector(0, 0, 0);
4123 } 4237 }
4124 if (src.Data[index].GetType() == typeof(LSL_Types.Vector3)) 4238 if (src.Data[index].GetType() == typeof(LSL_Vector))
4125 { 4239 {
4126 return (LSL_Types.Vector3)src.Data[index]; 4240 return (LSL_Vector)src.Data[index];
4127 } 4241 }
4128 else 4242 else
4129 { 4243 {
4130 return new LSL_Types.Vector3(src.Data[index].ToString()); 4244 return new LSL_Vector(src.Data[index].ToString());
4131 } 4245 }
4132 } 4246 }
4133 4247
4134 public LSL_Types.Quaternion llList2Rot(LSL_Types.list src, int index) 4248 public LSL_Rotation llList2Rot(LSL_List src, int index)
4135 { 4249 {
4136 m_host.AddScriptLPS(1); 4250 m_host.AddScriptLPS(1);
4137 if (index < 0) 4251 if (index < 0)
@@ -4140,30 +4254,30 @@ namespace OpenSim.Region.ScriptEngine.Common
4140 } 4254 }
4141 if (index >= src.Length) 4255 if (index >= src.Length)
4142 { 4256 {
4143 return new LSL_Types.Quaternion(0, 0, 0, 1); 4257 return new LSL_Rotation(0, 0, 0, 1);
4144 } 4258 }
4145 if (src.Data[index].GetType() == typeof(LSL_Types.Quaternion)) 4259 if (src.Data[index].GetType() == typeof(LSL_Rotation))
4146 { 4260 {
4147 return (LSL_Types.Quaternion)src.Data[index]; 4261 return (LSL_Rotation)src.Data[index];
4148 } 4262 }
4149 else 4263 else
4150 { 4264 {
4151 return new LSL_Types.Quaternion(src.Data[index].ToString()); 4265 return new LSL_Rotation(src.Data[index].ToString());
4152 } 4266 }
4153 } 4267 }
4154 4268
4155 public LSL_Types.list llList2List(LSL_Types.list src, int start, int end) 4269 public LSL_List llList2List(LSL_List src, int start, int end)
4156 { 4270 {
4157 m_host.AddScriptLPS(1); 4271 m_host.AddScriptLPS(1);
4158 return src.GetSublist(start, end); 4272 return src.GetSublist(start, end);
4159 } 4273 }
4160 4274
4161 public LSL_Types.list llDeleteSubList(LSL_Types.list src, int start, int end) 4275 public LSL_List llDeleteSubList(LSL_List src, int start, int end)
4162 { 4276 {
4163 return src.DeleteSublist(end, start); 4277 return src.DeleteSublist(end, start);
4164 } 4278 }
4165 4279
4166 public LSL_Types.LSLInteger llGetListEntryType(LSL_Types.list src, int index) 4280 public LSL_Integer llGetListEntryType(LSL_List src, int index)
4167 { 4281 {
4168 m_host.AddScriptLPS(1); 4282 m_host.AddScriptLPS(1);
4169 if (index < 0) 4283 if (index < 0)
@@ -4175,27 +4289,27 @@ namespace OpenSim.Region.ScriptEngine.Common
4175 return 0; 4289 return 0;
4176 } 4290 }
4177 4291
4178 if (src.Data[index] is Int32) 4292 if (src.Data[index] is LSL_Integer || src.Data[index] is Int32)
4179 return 1; 4293 return 1;
4180 if (src.Data[index] is Double) 4294 if (src.Data[index] is LSL_Float || src.Data[index] is Single || src.Data[index] is Double)
4181 return 2; 4295 return 2;
4182 if (src.Data[index] is String) 4296 if (src.Data[index] is LSL_String || src.Data[index] is String)
4183 { 4297 {
4184 UUID tuuid; 4298 UUID tuuid;
4185 if (UUID.TryParse(src.Data[index].ToString(), out tuuid)) 4299 if (UUID.TryParse(src.Data[index].ToString(), out tuuid))
4186 { 4300 {
4187 return 3; 4301 return 4;
4188 } 4302 }
4189 else 4303 else
4190 { 4304 {
4191 return 4; 4305 return 3;
4192 } 4306 }
4193 } 4307 }
4194 if (src.Data[index] is LSL_Types.Vector3) 4308 if (src.Data[index] is LSL_Vector)
4195 return 5; 4309 return 5;
4196 if (src.Data[index] is LSL_Types.Quaternion) 4310 if (src.Data[index] is LSL_Rotation)
4197 return 6; 4311 return 6;
4198 if (src.Data[index] is LSL_Types.list) 4312 if (src.Data[index] is LSL_List)
4199 return 7; 4313 return 7;
4200 return 0; 4314 return 0;
4201 4315
@@ -4208,7 +4322,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4208 /// each comma. 4322 /// each comma.
4209 /// </summary> 4323 /// </summary>
4210 4324
4211 public string llList2CSV(LSL_Types.list src) 4325 public LSL_String llList2CSV(LSL_List src)
4212 { 4326 {
4213 4327
4214 string ret = String.Empty; 4328 string ret = String.Empty;
@@ -4236,10 +4350,10 @@ namespace OpenSim.Region.ScriptEngine.Common
4236 /// before or after an element is trimmed. 4350 /// before or after an element is trimmed.
4237 /// </summary> 4351 /// </summary>
4238 4352
4239 public LSL_Types.list llCSV2List(string src) 4353 public LSL_List llCSV2List(string src)
4240 { 4354 {
4241 4355
4242 LSL_Types.list result = new LSL_Types.list(); 4356 LSL_List result = new LSL_List();
4243 int parens = 0; 4357 int parens = 0;
4244 int start = 0; 4358 int start = 0;
4245 int length = 0; 4359 int length = 0;
@@ -4293,9 +4407,9 @@ namespace OpenSim.Region.ScriptEngine.Common
4293 /// sizes. 4407 /// sizes.
4294 /// </remarks> 4408 /// </remarks>
4295 4409
4296 public LSL_Types.list llListRandomize(LSL_Types.list src, int stride) 4410 public LSL_List llListRandomize(LSL_List src, int stride)
4297 { 4411 {
4298 LSL_Types.list result; 4412 LSL_List result;
4299 Random rand = new Random(); 4413 Random rand = new Random();
4300 4414
4301 int chunkk; 4415 int chunkk;
@@ -4336,7 +4450,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4336 4450
4337 // Construct the randomized list 4451 // Construct the randomized list
4338 4452
4339 result = new LSL_Types.list(); 4453 result = new LSL_List();
4340 4454
4341 for (int i = 0; i < chunkk; i++) 4455 for (int i = 0; i < chunkk; i++)
4342 { 4456 {
@@ -4349,7 +4463,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4349 else { 4463 else {
4350 object[] array = new object[src.Length]; 4464 object[] array = new object[src.Length];
4351 Array.Copy(src.Data, 0, array, 0, src.Length); 4465 Array.Copy(src.Data, 0, array, 0, src.Length);
4352 result = new LSL_Types.list(array); 4466 result = new LSL_List(array);
4353 } 4467 }
4354 4468
4355 return result; 4469 return result;
@@ -4363,10 +4477,10 @@ namespace OpenSim.Region.ScriptEngine.Common
4363 /// range are included in the result. 4477 /// range are included in the result.
4364 /// </summary> 4478 /// </summary>
4365 4479
4366 public LSL_Types.list llList2ListStrided(LSL_Types.list src, int start, int end, int stride) 4480 public LSL_List llList2ListStrided(LSL_List src, int start, int end, int stride)
4367 { 4481 {
4368 4482
4369 LSL_Types.list result = new LSL_Types.list(); 4483 LSL_List result = new LSL_List();
4370 int[] si = new int[2]; 4484 int[] si = new int[2];
4371 int[] ei = new int[2]; 4485 int[] ei = new int[2];
4372 bool twopass = false; 4486 bool twopass = false;
@@ -4443,10 +4557,17 @@ namespace OpenSim.Region.ScriptEngine.Common
4443 return result; 4557 return result;
4444 } 4558 }
4445 4559
4446 public LSL_Types.Vector3 llGetRegionCorner() 4560 public LSL_Integer llGetRegionAgentCount()
4447 { 4561 {
4448 m_host.AddScriptLPS(1); 4562 m_host.AddScriptLPS(1);
4449 return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * Constants.RegionSize, World.RegionInfo.RegionLocY * Constants.RegionSize, 0); 4563 NotImplemented("llGetRegionAgentCount");
4564 return new LSL_Integer(0);
4565 }
4566
4567 public LSL_Vector llGetRegionCorner()
4568 {
4569 m_host.AddScriptLPS(1);
4570 return new LSL_Vector(World.RegionInfo.RegionLocX * Constants.RegionSize, World.RegionInfo.RegionLocY * Constants.RegionSize, 0);
4450 } 4571 }
4451 4572
4452 /// <summary> 4573 /// <summary>
@@ -4455,11 +4576,11 @@ namespace OpenSim.Region.ScriptEngine.Common
4455 /// new element has the index specified by <index> 4576 /// new element has the index specified by <index>
4456 /// </summary> 4577 /// </summary>
4457 4578
4458 public LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int index) 4579 public LSL_List llListInsertList(LSL_List dest, LSL_List src, int index)
4459 { 4580 {
4460 4581
4461 LSL_Types.list pref = null; 4582 LSL_List pref = null;
4462 LSL_Types.list suff = null; 4583 LSL_List suff = null;
4463 4584
4464 m_host.AddScriptLPS(1); 4585 m_host.AddScriptLPS(1);
4465 4586
@@ -4505,7 +4626,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4505 /// in src. 4626 /// in src.
4506 /// </summary> 4627 /// </summary>
4507 4628
4508 public LSL_Types.LSLInteger llListFindList(LSL_Types.list src, LSL_Types.list test) 4629 public LSL_Integer llListFindList(LSL_List src, LSL_List test)
4509 { 4630 {
4510 4631
4511 int index = -1; 4632 int index = -1;
@@ -4519,11 +4640,11 @@ namespace OpenSim.Region.ScriptEngine.Common
4519 { 4640 {
4520 for (int i = 0; i < length; i++) 4641 for (int i = 0; i < length; i++)
4521 { 4642 {
4522 if (AreEqual(src.Data[i], test.Data[0])) 4643 if (src.Data[i].Equals(test.Data[0]))
4523 { 4644 {
4524 int j; 4645 int j;
4525 for (j = 1; j < test.Length; j++) 4646 for (j = 1; j < test.Length; j++)
4526 if (!AreEqual(src.Data[i+j], test.Data[j])) 4647 if (!src.Data[i+j].Equals(test.Data[j]))
4527 break; 4648 break;
4528 if (j == test.Length) 4649 if (j == test.Length)
4529 { 4650 {
@@ -4538,19 +4659,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4538 4659
4539 } 4660 }
4540 4661
4541 private bool AreEqual(object src, object test) 4662 public LSL_String llGetObjectName()
4542 {
4543 if (src.GetType().FullName == "System.String")
4544 {
4545 return src.ToString() == test.ToString();
4546 }
4547 else
4548 {
4549 return src.Equals(test);
4550 }
4551 }
4552
4553 public string llGetObjectName()
4554 { 4663 {
4555 m_host.AddScriptLPS(1); 4664 m_host.AddScriptLPS(1);
4556 return m_host.Name!=null?m_host.Name:String.Empty; 4665 return m_host.Name!=null?m_host.Name:String.Empty;
@@ -4562,7 +4671,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4562 m_host.Name = name!=null?name:String.Empty; 4671 m_host.Name = name!=null?name:String.Empty;
4563 } 4672 }
4564 4673
4565 public string llGetDate() 4674 public LSL_String llGetDate()
4566 { 4675 {
4567 m_host.AddScriptLPS(1); 4676 m_host.AddScriptLPS(1);
4568 DateTime date = DateTime.Now.ToUniversalTime(); 4677 DateTime date = DateTime.Now.ToUniversalTime();
@@ -4570,14 +4679,14 @@ namespace OpenSim.Region.ScriptEngine.Common
4570 return result; 4679 return result;
4571 } 4680 }
4572 4681
4573 public LSL_Types.LSLInteger llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir) 4682 public LSL_Integer llEdgeOfWorld(LSL_Vector pos, LSL_Vector dir)
4574 { 4683 {
4575 m_host.AddScriptLPS(1); 4684 m_host.AddScriptLPS(1);
4576 NotImplemented("llEdgeOfWorld"); 4685 NotImplemented("llEdgeOfWorld");
4577 return 0; 4686 return 0;
4578 } 4687 }
4579 4688
4580 public LSL_Types.LSLInteger llGetAgentInfo(string id) 4689 public LSL_Integer llGetAgentInfo(string id)
4581 { 4690 {
4582 m_host.AddScriptLPS(1); 4691 m_host.AddScriptLPS(1);
4583 NotImplemented("llGetAgentInfo"); 4692 NotImplemented("llGetAgentInfo");
@@ -4603,7 +4712,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4603 m_host.SoundRadius = radius; 4712 m_host.SoundRadius = radius;
4604 } 4713 }
4605 4714
4606 public string llKey2Name(string id) 4715 public LSL_String llKey2Name(string id)
4607 { 4716 {
4608 m_host.AddScriptLPS(1); 4717 m_host.AddScriptLPS(1);
4609 UUID key = new UUID(); 4718 UUID key = new UUID();
@@ -4646,10 +4755,11 @@ namespace OpenSim.Region.ScriptEngine.Common
4646 4755
4647 m_host.AddTextureAnimation(pTexAnim); 4756 m_host.AddTextureAnimation(pTexAnim);
4648 m_host.SendFullUpdateToAllClients(); 4757 m_host.SendFullUpdateToAllClients();
4758 m_host.ParentGroup.HasGroupChanged = true;
4649 } 4759 }
4650 4760
4651 public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, 4761 public void llTriggerSoundLimited(string sound, double volume, LSL_Vector top_north_east,
4652 LSL_Types.Vector3 bottom_south_west) 4762 LSL_Vector bottom_south_west)
4653 { 4763 {
4654 m_host.AddScriptLPS(1); 4764 m_host.AddScriptLPS(1);
4655 NotImplemented("llTriggerSoundLimited"); 4765 NotImplemented("llTriggerSoundLimited");
@@ -4672,10 +4782,10 @@ namespace OpenSim.Region.ScriptEngine.Common
4672 // ScriptSleep(5000); 4782 // ScriptSleep(5000);
4673 } 4783 }
4674 4784
4675 public LSL_Types.list llParseString2List(string str, LSL_Types.list separators, LSL_Types.list spacers) 4785 public LSL_List llParseString2List(string str, LSL_List separators, LSL_List spacers)
4676 { 4786 {
4677 m_host.AddScriptLPS(1); 4787 m_host.AddScriptLPS(1);
4678 LSL_Types.list ret = new LSL_Types.list(); 4788 LSL_List ret = new LSL_List();
4679 object[] delimiters = new object[separators.Length + spacers.Length]; 4789 object[] delimiters = new object[separators.Length + spacers.Length];
4680 separators.Data.CopyTo(delimiters, 0); 4790 separators.Data.CopyTo(delimiters, 0);
4681 spacers.Data.CopyTo(delimiters, separators.Length); 4791 spacers.Data.CopyTo(delimiters, separators.Length);
@@ -4728,7 +4838,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4728 return ret; 4838 return ret;
4729 } 4839 }
4730 4840
4731 public LSL_Types.LSLInteger llOverMyLand(string id) 4841 public LSL_Integer llOverMyLand(string id)
4732 { 4842 {
4733 m_host.AddScriptLPS(1); 4843 m_host.AddScriptLPS(1);
4734 UUID key = new UUID(); 4844 UUID key = new UUID();
@@ -4751,17 +4861,17 @@ namespace OpenSim.Region.ScriptEngine.Common
4751 return 0; 4861 return 0;
4752 } 4862 }
4753 4863
4754 public string llGetLandOwnerAt(LSL_Types.Vector3 pos) 4864 public LSL_String llGetLandOwnerAt(LSL_Vector pos)
4755 { 4865 {
4756 m_host.AddScriptLPS(1); 4866 m_host.AddScriptLPS(1);
4757 return World.GetLandOwner((float)pos.x, (float)pos.y).ToString(); 4867 return World.GetLandOwner((float)pos.x, (float)pos.y).ToString();
4758 } 4868 }
4759 4869
4760 public LSL_Types.Vector3 llGetAgentSize(string id) 4870 public LSL_Vector llGetAgentSize(string id)
4761 { 4871 {
4762 m_host.AddScriptLPS(1); 4872 m_host.AddScriptLPS(1);
4763 ScenePresence avatar = World.GetScenePresence(id); 4873 ScenePresence avatar = World.GetScenePresence(id);
4764 LSL_Types.Vector3 agentSize; 4874 LSL_Vector agentSize;
4765 if (avatar == null) 4875 if (avatar == null)
4766 { 4876 {
4767 agentSize = BuiltIn_Commands_BaseClass.ZERO_VECTOR; 4877 agentSize = BuiltIn_Commands_BaseClass.ZERO_VECTOR;
@@ -4769,25 +4879,25 @@ namespace OpenSim.Region.ScriptEngine.Common
4769 else 4879 else
4770 { 4880 {
4771 PhysicsVector size = avatar.PhysicsActor.Size; 4881 PhysicsVector size = avatar.PhysicsActor.Size;
4772 agentSize = new LSL_Types.Vector3(size.X, size.Y, size.Z); 4882 agentSize = new LSL_Vector(size.X, size.Y, size.Z);
4773 } 4883 }
4774 return agentSize; 4884 return agentSize;
4775 } 4885 }
4776 4886
4777 public LSL_Types.LSLInteger llSameGroup(string agent) 4887 public LSL_Integer llSameGroup(string agent)
4778 { 4888 {
4779 m_host.AddScriptLPS(1); 4889 m_host.AddScriptLPS(1);
4780 UUID agentId = new UUID(); 4890 UUID agentId = new UUID();
4781 if (!UUID.TryParse(agent, out agentId)) 4891 if (!UUID.TryParse(agent, out agentId))
4782 return new LSL_Types.LSLInteger(0); 4892 return new LSL_Integer(0);
4783 ScenePresence presence = World.GetScenePresence(agentId); 4893 ScenePresence presence = World.GetScenePresence(agentId);
4784 if (presence == null) 4894 if (presence == null)
4785 return new LSL_Types.LSLInteger(0); 4895 return new LSL_Integer(0);
4786 IClientAPI client = presence.ControllingClient; 4896 IClientAPI client = presence.ControllingClient;
4787 if (m_host.GroupID == client.ActiveGroupId) 4897 if (m_host.GroupID == client.ActiveGroupId)
4788 return new LSL_Types.LSLInteger(1); 4898 return new LSL_Integer(1);
4789 else 4899 else
4790 return new LSL_Types.LSLInteger(0); 4900 return new LSL_Integer(0);
4791 } 4901 }
4792 4902
4793 public void llUnSit(string id) 4903 public void llUnSit(string id)
@@ -4833,7 +4943,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4833 4943
4834 } 4944 }
4835 4945
4836 public LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset) 4946 public LSL_Vector llGroundSlope(LSL_Vector offset)
4837 { 4947 {
4838 m_host.AddScriptLPS(1); 4948 m_host.AddScriptLPS(1);
4839 4949
@@ -4843,15 +4953,15 @@ namespace OpenSim.Region.ScriptEngine.Common
4843 4953
4844 Vector3 p0 = new Vector3(pos.X, pos.Y, 4954 Vector3 p0 = new Vector3(pos.X, pos.Y,
4845 (float)llGround( 4955 (float)llGround(
4846 new LSL_Types.Vector3(pos.X, pos.Y, pos.Z) 4956 new LSL_Vector(pos.X, pos.Y, pos.Z)
4847 )); 4957 ));
4848 Vector3 p1 = new Vector3(pos.X + 1, pos.Y, 4958 Vector3 p1 = new Vector3(pos.X + 1, pos.Y,
4849 (float)llGround( 4959 (float)llGround(
4850 new LSL_Types.Vector3(pos.X + 1, pos.Y, pos.Z) 4960 new LSL_Vector(pos.X + 1, pos.Y, pos.Z)
4851 )); 4961 ));
4852 Vector3 p2 = new Vector3(pos.X, pos.Y + 1, 4962 Vector3 p2 = new Vector3(pos.X, pos.Y + 1,
4853 (float)llGround( 4963 (float)llGround(
4854 new LSL_Types.Vector3(pos.X, pos.Y + 1, pos.Z) 4964 new LSL_Vector(pos.X, pos.Y + 1, pos.Z)
4855 )); 4965 ));
4856 4966
4857 Vector3 v0 = new Vector3( 4967 Vector3 v0 = new Vector3(
@@ -4867,50 +4977,50 @@ namespace OpenSim.Region.ScriptEngine.Common
4867 tv.Y = (v0.Z * v1.X) - (v0.X * v1.Z); 4977 tv.Y = (v0.Z * v1.X) - (v0.X * v1.Z);
4868 tv.Z = (v0.X * v1.Y) - (v0.Y * v1.X); 4978 tv.Z = (v0.X * v1.Y) - (v0.Y * v1.X);
4869 4979
4870 return new LSL_Types.Vector3(tv.X, tv.Y, tv.Z); 4980 return new LSL_Vector(tv.X, tv.Y, tv.Z);
4871 } 4981 }
4872 4982
4873 public LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset) 4983 public LSL_Vector llGroundNormal(LSL_Vector offset)
4874 { 4984 {
4875 m_host.AddScriptLPS(1); 4985 m_host.AddScriptLPS(1);
4876 LSL_Types.Vector3 x = llGroundSlope(offset); 4986 LSL_Vector x = llGroundSlope(offset);
4877 return new LSL_Types.Vector3(x.x, x.y, 1.0); 4987 return new LSL_Vector(x.x, x.y, 1.0);
4878 } 4988 }
4879 4989
4880 public LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset) 4990 public LSL_Vector llGroundContour(LSL_Vector offset)
4881 { 4991 {
4882 m_host.AddScriptLPS(1); 4992 m_host.AddScriptLPS(1);
4883 LSL_Types.Vector3 x = llGroundSlope(offset); 4993 LSL_Vector x = llGroundSlope(offset);
4884 return new LSL_Types.Vector3(-x.y, x.x, 0.0); 4994 return new LSL_Vector(-x.y, x.x, 0.0);
4885 } 4995 }
4886 4996
4887 public LSL_Types.LSLInteger llGetAttached() 4997 public LSL_Integer llGetAttached()
4888 { 4998 {
4889 m_host.AddScriptLPS(1); 4999 m_host.AddScriptLPS(1);
4890 NotImplemented("llGetAttached"); 5000 NotImplemented("llGetAttached");
4891 return 0; 5001 return 0;
4892 } 5002 }
4893 5003
4894 public LSL_Types.LSLInteger llGetFreeMemory() 5004 public LSL_Integer llGetFreeMemory()
4895 { 5005 {
4896 m_host.AddScriptLPS(1); 5006 m_host.AddScriptLPS(1);
4897 NotImplemented("llGetFreeMemory"); 5007 // Make scripts designed for LSO happy
4898 return 0; 5008 return 16384;
4899 } 5009 }
4900 5010
4901 public string llGetRegionName() 5011 public LSL_String llGetRegionName()
4902 { 5012 {
4903 m_host.AddScriptLPS(1); 5013 m_host.AddScriptLPS(1);
4904 return World.RegionInfo.RegionName; 5014 return World.RegionInfo.RegionName;
4905 } 5015 }
4906 5016
4907 public double llGetRegionTimeDilation() 5017 public LSL_Float llGetRegionTimeDilation()
4908 { 5018 {
4909 m_host.AddScriptLPS(1); 5019 m_host.AddScriptLPS(1);
4910 return (double)World.TimeDilation; 5020 return (double)World.TimeDilation;
4911 } 5021 }
4912 5022
4913 public double llGetRegionFPS() 5023 public LSL_Float llGetRegionFPS()
4914 { 5024 {
4915 m_host.AddScriptLPS(1); 5025 m_host.AddScriptLPS(1);
4916 //TODO: return actual FPS 5026 //TODO: return actual FPS
@@ -4976,17 +5086,18 @@ namespace OpenSim.Region.ScriptEngine.Common
4976 return ps; 5086 return ps;
4977 } 5087 }
4978 5088
4979 public void llParticleSystem(LSL_Types.list rules) 5089 public void llParticleSystem(LSL_List rules)
4980 { 5090 {
4981 m_host.AddScriptLPS(1); 5091 m_host.AddScriptLPS(1);
4982 if (rules.Length == 0) 5092 if (rules.Length == 0)
4983 { 5093 {
4984 m_host.RemoveParticleSystem(); 5094 m_host.RemoveParticleSystem();
5095 m_host.ParentGroup.HasGroupChanged = true;
4985 } 5096 }
4986 else 5097 else
4987 { 5098 {
4988 Primitive.ParticleSystem prules = getNewParticleSystemWithSLDefaultValues(); 5099 Primitive.ParticleSystem prules = getNewParticleSystemWithSLDefaultValues();
4989 LSL_Types.Vector3 tempv = new LSL_Types.Vector3(); 5100 LSL_Vector tempv = new LSL_Vector();
4990 5101
4991 float tempf = 0; 5102 float tempf = 0;
4992 5103
@@ -4999,7 +5110,7 @@ namespace OpenSim.Region.ScriptEngine.Common
4999 break; 5110 break;
5000 5111
5001 case (int)BuiltIn_Commands_BaseClass.PSYS_PART_START_COLOR: 5112 case (int)BuiltIn_Commands_BaseClass.PSYS_PART_START_COLOR:
5002 tempv = (LSL_Types.Vector3)rules.Data[i + 1]; 5113 tempv = (LSL_Vector)rules.Data[i + 1];
5003 prules.PartStartColor.R = (float)tempv.x; 5114 prules.PartStartColor.R = (float)tempv.x;
5004 prules.PartStartColor.G = (float)tempv.y; 5115 prules.PartStartColor.G = (float)tempv.y;
5005 prules.PartStartColor.B = (float)tempv.z; 5116 prules.PartStartColor.B = (float)tempv.z;
@@ -5011,7 +5122,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5011 break; 5122 break;
5012 5123
5013 case (int)BuiltIn_Commands_BaseClass.PSYS_PART_END_COLOR: 5124 case (int)BuiltIn_Commands_BaseClass.PSYS_PART_END_COLOR:
5014 tempv = (LSL_Types.Vector3)rules.Data[i + 1]; 5125 tempv = (LSL_Vector)rules.Data[i + 1];
5015 //prules.PartEndColor = new Color4(tempv.x,tempv.y,tempv.z,1); 5126 //prules.PartEndColor = new Color4(tempv.x,tempv.y,tempv.z,1);
5016 5127
5017 prules.PartEndColor.R = (float)tempv.x; 5128 prules.PartEndColor.R = (float)tempv.x;
@@ -5025,13 +5136,13 @@ namespace OpenSim.Region.ScriptEngine.Common
5025 break; 5136 break;
5026 5137
5027 case (int)BuiltIn_Commands_BaseClass.PSYS_PART_START_SCALE: 5138 case (int)BuiltIn_Commands_BaseClass.PSYS_PART_START_SCALE:
5028 tempv = (LSL_Types.Vector3)rules.Data[i + 1]; 5139 tempv = (LSL_Vector)rules.Data[i + 1];
5029 prules.PartStartScaleX = (float)tempv.x; 5140 prules.PartStartScaleX = (float)tempv.x;
5030 prules.PartStartScaleY = (float)tempv.y; 5141 prules.PartStartScaleY = (float)tempv.y;
5031 break; 5142 break;
5032 5143
5033 case (int)BuiltIn_Commands_BaseClass.PSYS_PART_END_SCALE: 5144 case (int)BuiltIn_Commands_BaseClass.PSYS_PART_END_SCALE:
5034 tempv = (LSL_Types.Vector3)rules.Data[i + 1]; 5145 tempv = (LSL_Vector)rules.Data[i + 1];
5035 prules.PartEndScaleX = (float)tempv.x; 5146 prules.PartEndScaleX = (float)tempv.x;
5036 prules.PartEndScaleY = (float)tempv.y; 5147 prules.PartEndScaleY = (float)tempv.y;
5037 break; 5148 break;
@@ -5042,7 +5153,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5042 break; 5153 break;
5043 5154
5044 case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_ACCEL: 5155 case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_ACCEL:
5045 tempv = (LSL_Types.Vector3)rules.Data[i + 1]; 5156 tempv = (LSL_Vector)rules.Data[i + 1];
5046 prules.PartAcceleration.X = (float)tempv.x; 5157 prules.PartAcceleration.X = (float)tempv.x;
5047 prules.PartAcceleration.Y = (float)tempv.y; 5158 prules.PartAcceleration.Y = (float)tempv.y;
5048 prules.PartAcceleration.Z = (float)tempv.z; 5159 prules.PartAcceleration.Z = (float)tempv.z;
@@ -5104,20 +5215,19 @@ namespace OpenSim.Region.ScriptEngine.Common
5104 5215
5105 case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_OMEGA: 5216 case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_OMEGA:
5106 // AL: This is an assumption, since it is the only thing that would match. 5217 // AL: This is an assumption, since it is the only thing that would match.
5107 tempv = (LSL_Types.Vector3)rules.Data[i + 1]; 5218 tempv = rules.GetVector3Item(i + 1);
5108 prules.AngularVelocity.X = (float)tempv.x; 5219 prules.AngularVelocity.X = (float)tempv.x;
5109 prules.AngularVelocity.Y = (float)tempv.y; 5220 prules.AngularVelocity.Y = (float)tempv.y;
5110 prules.AngularVelocity.Z = (float)tempv.z; 5221 prules.AngularVelocity.Z = (float)tempv.z;
5111 //cast?? prules.MaxAge = (float)rules[i + 1];
5112 break; 5222 break;
5113 5223
5114 case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_ANGLE_BEGIN: 5224 case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_ANGLE_BEGIN:
5115 tempf = Convert.ToSingle(rules.Data[i + 1].ToString()); 5225 tempf = (float)rules.GetLSLFloatItem(i + 1);
5116 prules.InnerAngle = (float)tempf; 5226 prules.InnerAngle = (float)tempf;
5117 break; 5227 break;
5118 5228
5119 case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_ANGLE_END: 5229 case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_ANGLE_END:
5120 tempf = Convert.ToSingle(rules.Data[i + 1].ToString()); 5230 tempf = (float)rules.GetLSLFloatItem(i + 1);
5121 prules.OuterAngle = (float)tempf; 5231 prules.OuterAngle = (float)tempf;
5122 break; 5232 break;
5123 } 5233 }
@@ -5126,6 +5236,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5126 prules.CRC = 1; 5236 prules.CRC = 1;
5127 5237
5128 m_host.AddNewParticleSystem(prules); 5238 m_host.AddNewParticleSystem(prules);
5239 m_host.ParentGroup.HasGroupChanged = true;
5129 } 5240 }
5130 m_host.SendFullUpdateToAllClients(); 5241 m_host.SendFullUpdateToAllClients();
5131 } 5242 }
@@ -5146,7 +5257,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5146 return UUID.Zero; 5257 return UUID.Zero;
5147 } 5258 }
5148 5259
5149 public void llGiveInventoryList(string destination, string category, LSL_Types.list inventory) 5260 public void llGiveInventoryList(string destination, string category, LSL_List inventory)
5150 { 5261 {
5151 m_host.AddScriptLPS(1); 5262 m_host.AddScriptLPS(1);
5152 5263
@@ -5195,13 +5306,13 @@ namespace OpenSim.Region.ScriptEngine.Common
5195 NotImplemented("llSetVehicleFloatParam"); 5306 NotImplemented("llSetVehicleFloatParam");
5196 } 5307 }
5197 5308
5198 public void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec) 5309 public void llSetVehicleVectorParam(int param, LSL_Vector vec)
5199 { 5310 {
5200 m_host.AddScriptLPS(1); 5311 m_host.AddScriptLPS(1);
5201 NotImplemented("llSetVehicleVectorParam"); 5312 NotImplemented("llSetVehicleVectorParam");
5202 } 5313 }
5203 5314
5204 public void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot) 5315 public void llSetVehicleRotationParam(int param, LSL_Rotation rot)
5205 { 5316 {
5206 m_host.AddScriptLPS(1); 5317 m_host.AddScriptLPS(1);
5207 NotImplemented("llSetVehicleRotationParam"); 5318 NotImplemented("llSetVehicleRotationParam");
@@ -5219,7 +5330,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5219 NotImplemented("llRemoveVehicleFlags"); 5330 NotImplemented("llRemoveVehicleFlags");
5220 } 5331 }
5221 5332
5222 public void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot) 5333 public void llSitTarget(LSL_Vector offset, LSL_Rotation rot)
5223 { 5334 {
5224 m_host.AddScriptLPS(1); 5335 m_host.AddScriptLPS(1);
5225 // LSL quaternions can normalize to 0, normal Quaternions can't. 5336 // LSL quaternions can normalize to 0, normal Quaternions can't.
@@ -5230,7 +5341,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5230 m_host.SitTargetOrientation = new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s); 5341 m_host.SitTargetOrientation = new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s);
5231 } 5342 }
5232 5343
5233 public string llAvatarOnSitTarget() 5344 public LSL_String llAvatarOnSitTarget()
5234 { 5345 {
5235 m_host.AddScriptLPS(1); 5346 m_host.AddScriptLPS(1);
5236 return m_host.GetAvatarOnSitTarget().ToString(); 5347 return m_host.GetAvatarOnSitTarget().ToString();
@@ -5267,19 +5378,19 @@ namespace OpenSim.Region.ScriptEngine.Common
5267 m_host.SitName = text; 5378 m_host.SitName = text;
5268 } 5379 }
5269 5380
5270 public void llSetCameraEyeOffset(LSL_Types.Vector3 offset) 5381 public void llSetCameraEyeOffset(LSL_Vector offset)
5271 { 5382 {
5272 m_host.AddScriptLPS(1); 5383 m_host.AddScriptLPS(1);
5273 m_host.SetCameraEyeOffset(new Vector3((float)offset.x, (float)offset.y, (float)offset.z)); 5384 m_host.SetCameraEyeOffset(new Vector3((float)offset.x, (float)offset.y, (float)offset.z));
5274 } 5385 }
5275 5386
5276 public void llSetCameraAtOffset(LSL_Types.Vector3 offset) 5387 public void llSetCameraAtOffset(LSL_Vector offset)
5277 { 5388 {
5278 m_host.AddScriptLPS(1); 5389 m_host.AddScriptLPS(1);
5279 m_host.SetCameraAtOffset(new Vector3((float)offset.x, (float)offset.y, (float)offset.z)); 5390 m_host.SetCameraAtOffset(new Vector3((float)offset.x, (float)offset.y, (float)offset.z));
5280 } 5391 }
5281 5392
5282 public string llDumpList2String(LSL_Types.list src, string seperator) 5393 public LSL_String llDumpList2String(LSL_List src, string seperator)
5283 { 5394 {
5284 m_host.AddScriptLPS(1); 5395 m_host.AddScriptLPS(1);
5285 if (src.Length == 0) 5396 if (src.Length == 0)
@@ -5295,7 +5406,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5295 return ret; 5406 return ret;
5296 } 5407 }
5297 5408
5298 public LSL_Types.LSLInteger llScriptDanger(LSL_Types.Vector3 pos) 5409 public LSL_Integer llScriptDanger(LSL_Vector pos)
5299 { 5410 {
5300 m_host.AddScriptLPS(1); 5411 m_host.AddScriptLPS(1);
5301 bool result = World.scriptDanger(m_host.LocalId, new Vector3((float)pos.x, (float)pos.y, (float)pos.z)); 5412 bool result = World.scriptDanger(m_host.LocalId, new Vector3((float)pos.x, (float)pos.y, (float)pos.z));
@@ -5310,7 +5421,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5310 5421
5311 } 5422 }
5312 5423
5313 public void llDialog(string avatar, string message, LSL_Types.list buttons, int chat_channel) 5424 public void llDialog(string avatar, string message, LSL_List buttons, int chat_channel)
5314 { 5425 {
5315 m_host.AddScriptLPS(1); 5426 m_host.AddScriptLPS(1);
5316 UUID av = new UUID(); 5427 UUID av = new UUID();
@@ -5378,7 +5489,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5378 // assume it is not running. 5489 // assume it is not running.
5379 } 5490 }
5380 5491
5381 public LSL_Types.LSLInteger llGetScriptState(string name) 5492 public LSL_Integer llGetScriptState(string name)
5382 { 5493 {
5383 UUID item; 5494 UUID item;
5384 ScriptManager sm; 5495 ScriptManager sm;
@@ -5477,13 +5588,13 @@ namespace OpenSim.Region.ScriptEngine.Common
5477 if (xmlrpcMod.IsEnabled()) 5588 if (xmlrpcMod.IsEnabled())
5478 { 5589 {
5479 UUID channelID = xmlrpcMod.OpenXMLRPCChannel(m_localID, m_itemID, UUID.Zero); 5590 UUID channelID = xmlrpcMod.OpenXMLRPCChannel(m_localID, m_itemID, UUID.Zero);
5480 object[] resobj = new object[] { new LSL_Types.LSLInteger(1), new LSL_Types.LSLString(channelID.ToString()), new LSL_Types.LSLString(UUID.Zero.ToString()), new LSL_Types.LSLString(String.Empty), new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(String.Empty) }; 5591 object[] resobj = new object[] { new LSL_Integer(1), new LSL_String(channelID.ToString()), new LSL_String(UUID.Zero.ToString()), new LSL_String(String.Empty), new LSL_Integer(0), new LSL_String(String.Empty) };
5481 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(m_localID, m_itemID, "remote_data", EventQueueManager.llDetectNull, resobj); 5592 m_ScriptEngine.m_EventQueueManager.AddToScriptQueue(m_localID, m_itemID, "remote_data", EventQueueManager.llDetectNull, resobj);
5482 } 5593 }
5483 // ScriptSleep(1000); 5594 // ScriptSleep(1000);
5484 } 5595 }
5485 5596
5486 public string llSendRemoteData(string channel, string dest, int idata, string sdata) 5597 public LSL_String llSendRemoteData(string channel, string dest, int idata, string sdata)
5487 { 5598 {
5488 m_host.AddScriptLPS(1); 5599 m_host.AddScriptLPS(1);
5489 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>(); 5600 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>();
@@ -5507,13 +5618,13 @@ namespace OpenSim.Region.ScriptEngine.Common
5507 // ScriptSleep(1000); 5618 // ScriptSleep(1000);
5508 } 5619 }
5509 5620
5510 public string llMD5String(string src, int nonce) 5621 public LSL_String llMD5String(string src, int nonce)
5511 { 5622 {
5512 m_host.AddScriptLPS(1); 5623 m_host.AddScriptLPS(1);
5513 return Util.Md5Hash(src + ":" + nonce.ToString()); 5624 return Util.Md5Hash(src + ":" + nonce.ToString());
5514 } 5625 }
5515 5626
5516 private ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist) 5627 private ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist)
5517 { 5628 {
5518 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); 5629 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock();
5519 5630
@@ -5583,7 +5694,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5583 return shapeBlock; 5694 return shapeBlock;
5584 } 5695 }
5585 5696
5586 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 taper_b, LSL_Types.Vector3 topshear, byte fudge) 5697 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector taper_b, LSL_Vector topshear, byte fudge)
5587 { 5698 {
5588 ObjectShapePacket.ObjectDataBlock shapeBlock; 5699 ObjectShapePacket.ObjectDataBlock shapeBlock;
5589 5700
@@ -5631,7 +5742,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5631 part.UpdateShape(shapeBlock); 5742 part.UpdateShape(shapeBlock);
5632 } 5743 }
5633 5744
5634 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 dimple, byte fudge) 5745 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector dimple, byte fudge)
5635 { 5746 {
5636 ObjectShapePacket.ObjectDataBlock shapeBlock; 5747 ObjectShapePacket.ObjectDataBlock shapeBlock;
5637 5748
@@ -5672,7 +5783,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5672 part.UpdateShape(shapeBlock); 5783 part.UpdateShape(shapeBlock);
5673 } 5784 }
5674 5785
5675 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 holesize, LSL_Types.Vector3 topshear, LSL_Types.Vector3 profilecut, LSL_Types.Vector3 taper_a, float revolutions, float radiusoffset, float skew, byte fudge) 5786 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector holesize, LSL_Vector topshear, LSL_Vector profilecut, LSL_Vector taper_a, float revolutions, float radiusoffset, float skew, byte fudge)
5676 { 5787 {
5677 ObjectShapePacket.ObjectDataBlock shapeBlock; 5788 ObjectShapePacket.ObjectDataBlock shapeBlock;
5678 5789
@@ -5824,12 +5935,12 @@ namespace OpenSim.Region.ScriptEngine.Common
5824 part.UpdateShape(shapeBlock); 5935 part.UpdateShape(shapeBlock);
5825 } 5936 }
5826 5937
5827 public void llSetPrimitiveParams(LSL_Types.list rules) 5938 public void llSetPrimitiveParams(LSL_List rules)
5828 { 5939 {
5829 llSetLinkPrimitiveParams(m_host.LinkNum, rules); 5940 llSetLinkPrimitiveParams(m_host.LinkNum, rules);
5830 } 5941 }
5831 5942
5832 public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules) 5943 public void llSetLinkPrimitiveParams(int linknumber, LSL_List rules)
5833 { 5944 {
5834 m_host.AddScriptLPS(1); 5945 m_host.AddScriptLPS(1);
5835 5946
@@ -5850,7 +5961,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5850 int remain = rules.Length - idx; 5961 int remain = rules.Length - idx;
5851 5962
5852 int face; 5963 int face;
5853 LSL_Types.Vector3 v; 5964 LSL_Vector v;
5854 5965
5855 switch (code) 5966 switch (code)
5856 { 5967 {
@@ -5858,7 +5969,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5858 if (remain < 1) 5969 if (remain < 1)
5859 return; 5970 return;
5860 5971
5861 v=new LSL_Types.Vector3(rules.Data[idx++].ToString()); 5972 v=new LSL_Vector(rules.Data[idx++].ToString());
5862 SetPos(part, v); 5973 SetPos(part, v);
5863 5974
5864 break; 5975 break;
@@ -5866,7 +5977,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5866 if (remain < 1) 5977 if (remain < 1)
5867 return; 5978 return;
5868 5979
5869 v=new LSL_Types.Vector3(rules.Data[idx++].ToString()); 5980 v=new LSL_Vector(rules.Data[idx++].ToString());
5870 SetScale(part, v); 5981 SetScale(part, v);
5871 5982
5872 break; 5983 break;
@@ -5874,7 +5985,7 @@ namespace OpenSim.Region.ScriptEngine.Common
5874 if (remain < 1) 5985 if (remain < 1)
5875 return; 5986 return;
5876 5987
5877 LSL_Types.Quaternion q = new LSL_Types.Quaternion(rules.Data[idx++].ToString()); 5988 LSL_Rotation q = new LSL_Rotation(rules.Data[idx++].ToString());
5878 SetRot(part, q); 5989 SetRot(part, q);
5879 5990
5880 break; 5991 break;
@@ -5887,14 +5998,14 @@ namespace OpenSim.Region.ScriptEngine.Common
5887 5998
5888 remain = rules.Length - idx; 5999 remain = rules.Length - idx;
5889 float hollow; 6000 float hollow;
5890 LSL_Types.Vector3 twist; 6001 LSL_Vector twist;
5891 LSL_Types.Vector3 taper_b; 6002 LSL_Vector taper_b;
5892 LSL_Types.Vector3 topshear; 6003 LSL_Vector topshear;
5893 float revolutions; 6004 float revolutions;
5894 float radiusoffset; 6005 float radiusoffset;
5895 float skew; 6006 float skew;
5896 LSL_Types.Vector3 holesize; 6007 LSL_Vector holesize;
5897 LSL_Types.Vector3 profilecut; 6008 LSL_Vector profilecut;
5898 6009
5899 switch (code) 6010 switch (code)
5900 { 6011 {
@@ -5902,12 +6013,12 @@ namespace OpenSim.Region.ScriptEngine.Common
5902 if (remain < 6) 6013 if (remain < 6)
5903 return; 6014 return;
5904 6015
5905 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 6016 face = (int)rules.GetLSLIntegerItem(idx++);
5906 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); // cut 6017 v = rules.GetVector3Item(idx++); // cut
5907 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 6018 hollow = (float)rules.GetLSLFloatItem(idx++);
5908 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6019 twist = rules.GetVector3Item(idx++);
5909 taper_b = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6020 taper_b = rules.GetVector3Item(idx++);
5910 topshear = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6021 topshear = rules.GetVector3Item(idx++);
5911 part.Shape.PathCurve = (byte)Extrusion.Straight; 6022 part.Shape.PathCurve = (byte)Extrusion.Straight;
5912 SetPrimitiveShapeParams(part, face, v, hollow, twist, taper_b, topshear, 1); 6023 SetPrimitiveShapeParams(part, face, v, hollow, twist, taper_b, topshear, 1);
5913 break; 6024 break;
@@ -5916,12 +6027,12 @@ namespace OpenSim.Region.ScriptEngine.Common
5916 if (remain < 6) 6027 if (remain < 6)
5917 return; 6028 return;
5918 6029
5919 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 6030 face = (int)rules.GetLSLIntegerItem(idx++); // holeshape
5920 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); // cut 6031 v = rules.GetVector3Item(idx++); // cut
5921 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 6032 hollow = (float)rules.GetLSLFloatItem(idx++);
5922 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6033 twist = rules.GetVector3Item(idx++);
5923 taper_b = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6034 taper_b = rules.GetVector3Item(idx++);
5924 topshear = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6035 topshear = rules.GetVector3Item(idx++);
5925 part.Shape.ProfileShape = ProfileShape.Circle; 6036 part.Shape.ProfileShape = ProfileShape.Circle;
5926 part.Shape.PathCurve = (byte)Extrusion.Straight; 6037 part.Shape.PathCurve = (byte)Extrusion.Straight;
5927 SetPrimitiveShapeParams(part, face, v, hollow, twist, taper_b, topshear, 0); 6038 SetPrimitiveShapeParams(part, face, v, hollow, twist, taper_b, topshear, 0);
@@ -5931,12 +6042,12 @@ namespace OpenSim.Region.ScriptEngine.Common
5931 if (remain < 6) 6042 if (remain < 6)
5932 return; 6043 return;
5933 6044
5934 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 6045 face = (int)rules.GetLSLIntegerItem(idx++); // holeshape
5935 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut 6046 v = rules.GetVector3Item(idx++); //cut
5936 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 6047 hollow = (float)rules.GetLSLFloatItem(idx++);
5937 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6048 twist = rules.GetVector3Item(idx++);
5938 taper_b = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6049 taper_b = rules.GetVector3Item(idx++);
5939 topshear = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6050 topshear = rules.GetVector3Item(idx++);
5940 part.Shape.PathCurve = (byte)Extrusion.Straight; 6051 part.Shape.PathCurve = (byte)Extrusion.Straight;
5941 SetPrimitiveShapeParams(part, face, v, hollow, twist, taper_b, topshear, 3); 6052 SetPrimitiveShapeParams(part, face, v, hollow, twist, taper_b, topshear, 3);
5942 break; 6053 break;
@@ -5945,11 +6056,11 @@ namespace OpenSim.Region.ScriptEngine.Common
5945 if (remain < 5) 6056 if (remain < 5)
5946 return; 6057 return;
5947 6058
5948 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 6059 face = (int)rules.GetLSLIntegerItem(idx++); // holeshape
5949 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); // cut 6060 v = rules.GetVector3Item(idx++); // cut
5950 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 6061 hollow = (float)rules.GetLSLFloatItem(idx++);
5951 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6062 twist = rules.GetVector3Item(idx++);
5952 taper_b = new LSL_Types.Vector3(rules.Data[idx++].ToString()); // dimple 6063 taper_b = rules.GetVector3Item(idx++); // dimple
5953 part.Shape.PathCurve = (byte)Extrusion.Curve1; 6064 part.Shape.PathCurve = (byte)Extrusion.Curve1;
5954 SetPrimitiveShapeParams(part, face, v, hollow, twist, taper_b, 5); 6065 SetPrimitiveShapeParams(part, face, v, hollow, twist, taper_b, 5);
5955 break; 6066 break;
@@ -5958,17 +6069,17 @@ namespace OpenSim.Region.ScriptEngine.Common
5958 if (remain < 11) 6069 if (remain < 11)
5959 return; 6070 return;
5960 6071
5961 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 6072 face = (int)rules.GetLSLIntegerItem(idx++); // holeshape
5962 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut 6073 v = rules.GetVector3Item(idx++); //cut
5963 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 6074 hollow = (float)rules.GetLSLFloatItem(idx++);
5964 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6075 twist = rules.GetVector3Item(idx++);
5965 holesize = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6076 holesize = rules.GetVector3Item(idx++);
5966 topshear = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6077 topshear = rules.GetVector3Item(idx++);
5967 profilecut = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6078 profilecut = rules.GetVector3Item(idx++);
5968 taper_b = new LSL_Types.Vector3(rules.Data[idx++].ToString()); // taper_a 6079 taper_b = rules.GetVector3Item(idx++); // taper_a
5969 revolutions = (float)Convert.ToDouble(rules.Data[idx++]); 6080 revolutions = (float)rules.GetLSLFloatItem(idx++);
5970 radiusoffset = (float)Convert.ToDouble(rules.Data[idx++]); 6081 radiusoffset = (float)rules.GetLSLFloatItem(idx++);
5971 skew = (float)Convert.ToDouble(rules.Data[idx++]); 6082 skew = (float)rules.GetLSLFloatItem(idx++);
5972 part.Shape.PathCurve = (byte)Extrusion.Curve1; 6083 part.Shape.PathCurve = (byte)Extrusion.Curve1;
5973 SetPrimitiveShapeParams(part, face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 0); 6084 SetPrimitiveShapeParams(part, face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 0);
5974 break; 6085 break;
@@ -5977,17 +6088,17 @@ namespace OpenSim.Region.ScriptEngine.Common
5977 if (remain < 11) 6088 if (remain < 11)
5978 return; 6089 return;
5979 6090
5980 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 6091 face = (int)rules.GetLSLIntegerItem(idx++); // holeshape
5981 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut 6092 v = rules.GetVector3Item(idx++); //cut
5982 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 6093 hollow = (float)rules.GetLSLFloatItem(idx++);
5983 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6094 twist = rules.GetVector3Item(idx++);
5984 holesize = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6095 holesize = rules.GetVector3Item(idx++);
5985 topshear = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6096 topshear = rules.GetVector3Item(idx++);
5986 profilecut = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6097 profilecut = rules.GetVector3Item(idx++);
5987 taper_b = new LSL_Types.Vector3(rules.Data[idx++].ToString()); // taper_a 6098 taper_b = rules.GetVector3Item(idx++); // taper_a
5988 revolutions = (float)Convert.ToDouble(rules.Data[idx++]); 6099 revolutions = (float)rules.GetLSLFloatItem(idx++);
5989 radiusoffset = (float)Convert.ToDouble(rules.Data[idx++]); 6100 radiusoffset = (float)rules.GetLSLFloatItem(idx++);
5990 skew = (float)Convert.ToDouble(rules.Data[idx++]); 6101 skew = (float)rules.GetLSLFloatItem(idx++);
5991 part.Shape.PathCurve = (byte)Extrusion.Curve1; 6102 part.Shape.PathCurve = (byte)Extrusion.Curve1;
5992 SetPrimitiveShapeParams(part, face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 1); 6103 SetPrimitiveShapeParams(part, face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 1);
5993 break; 6104 break;
@@ -5996,17 +6107,17 @@ namespace OpenSim.Region.ScriptEngine.Common
5996 if (remain < 11) 6107 if (remain < 11)
5997 return; 6108 return;
5998 6109
5999 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 6110 face = (int)rules.GetLSLIntegerItem(idx++); // holeshape
6000 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut 6111 v = rules.GetVector3Item(idx++); //cut
6001 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 6112 hollow = (float)rules.GetLSLFloatItem(idx++);
6002 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6113 twist = rules.GetVector3Item(idx++);
6003 holesize = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6114 holesize = rules.GetVector3Item(idx++);
6004 topshear = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6115 topshear = rules.GetVector3Item(idx++);
6005 profilecut = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6116 profilecut = rules.GetVector3Item(idx++);
6006 taper_b = new LSL_Types.Vector3(rules.Data[idx++].ToString()); // taper_a 6117 taper_b = rules.GetVector3Item(idx++); // taper_a
6007 revolutions = (float)Convert.ToDouble(rules.Data[idx++]); 6118 revolutions = (float)rules.GetLSLFloatItem(idx++);
6008 radiusoffset = (float)Convert.ToDouble(rules.Data[idx++]); 6119 radiusoffset = (float)rules.GetLSLFloatItem(idx++);
6009 skew = (float)Convert.ToDouble(rules.Data[idx++]); 6120 skew = (float)rules.GetLSLFloatItem(idx++);
6010 part.Shape.PathCurve = (byte)Extrusion.Curve1; 6121 part.Shape.PathCurve = (byte)Extrusion.Curve1;
6011 SetPrimitiveShapeParams(part, face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 3); 6122 SetPrimitiveShapeParams(part, face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 3);
6012 break; 6123 break;
@@ -6016,7 +6127,7 @@ namespace OpenSim.Region.ScriptEngine.Common
6016 return; 6127 return;
6017 6128
6018 string map = rules.Data[idx++].ToString(); 6129 string map = rules.Data[idx++].ToString();
6019 face = Convert.ToInt32(rules.Data[idx++]); // type 6130 face = (int)rules.GetLSLIntegerItem(idx++); // type
6020 part.Shape.PathCurve = (byte)Extrusion.Curve1; 6131 part.Shape.PathCurve = (byte)Extrusion.Curve1;
6021 SetPrimitiveShapeParams(part, map, face); 6132 SetPrimitiveShapeParams(part, map, face);
6022 break; 6133 break;
@@ -6028,11 +6139,11 @@ namespace OpenSim.Region.ScriptEngine.Common
6028 if (remain < 5) 6139 if (remain < 5)
6029 return; 6140 return;
6030 6141
6031 face=Convert.ToInt32(rules.Data[idx++]); 6142 face=(int)rules.GetLSLIntegerItem(idx++);
6032 string tex=rules.Data[idx++].ToString(); 6143 string tex=rules.Data[idx++].ToString();
6033 LSL_Types.Vector3 repeats=new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6144 LSL_Vector repeats=rules.GetVector3Item(idx++);
6034 LSL_Types.Vector3 offsets=new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6145 LSL_Vector offsets=rules.GetVector3Item(idx++);
6035 double rotation=Convert.ToDouble(rules.Data[idx++]); 6146 double rotation=(double)rules.GetLSLFloatItem(idx++);
6036 6147
6037 SetTexture(part, tex, face); 6148 SetTexture(part, tex, face);
6038 ScaleTexture(part, repeats.x, repeats.y, face); 6149 ScaleTexture(part, repeats.x, repeats.y, face);
@@ -6045,9 +6156,9 @@ namespace OpenSim.Region.ScriptEngine.Common
6045 if (remain < 3) 6156 if (remain < 3)
6046 return; 6157 return;
6047 6158
6048 face=Convert.ToInt32(rules.Data[idx++]); 6159 face=(int)rules.GetLSLIntegerItem(idx++);
6049 LSL_Types.Vector3 color=new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6160 LSL_Vector color=rules.GetVector3Item(idx++);
6050 double alpha=Convert.ToDouble(rules.Data[idx++]); 6161 double alpha=(double)rules.GetLSLFloatItem(idx++);
6051 6162
6052 SetColor(part, color, face); 6163 SetColor(part, color, face);
6053 SetAlpha(part, alpha, face); 6164 SetAlpha(part, alpha, face);
@@ -6057,34 +6168,34 @@ namespace OpenSim.Region.ScriptEngine.Common
6057 if (remain < 7) 6168 if (remain < 7)
6058 return; 6169 return;
6059 6170
6060 int flexi = Convert.ToInt32(rules.Data[idx++]); 6171 bool flexi = rules.GetLSLIntegerItem(idx++);
6061 int softness = Convert.ToInt32(rules.Data[idx++]); 6172 int softness = rules.GetLSLIntegerItem(idx++);
6062 float gravity = (float)Convert.ToDouble(rules.Data[idx++]); 6173 float gravity = (float)rules.GetLSLFloatItem(idx++);
6063 float friction = (float)Convert.ToDouble(rules.Data[idx++]); 6174 float friction = (float)rules.GetLSLFloatItem(idx++);
6064 float wind = (float)Convert.ToDouble(rules.Data[idx++]); 6175 float wind = (float)rules.GetLSLFloatItem(idx++);
6065 float tension = (float)Convert.ToDouble(rules.Data[idx++]); 6176 float tension = (float)rules.GetLSLFloatItem(idx++);
6066 LSL_Types.Vector3 force =new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6177 LSL_Vector force = rules.GetVector3Item(idx++);
6067 6178
6068 SetFlexi(part, (flexi == 1), softness, gravity, friction, wind, tension, force); 6179 SetFlexi(part, flexi, softness, gravity, friction, wind, tension, force);
6069 6180
6070 break; 6181 break;
6071 case (int)BuiltIn_Commands_BaseClass.PRIM_POINT_LIGHT: 6182 case (int)BuiltIn_Commands_BaseClass.PRIM_POINT_LIGHT:
6072 if (remain < 5) 6183 if (remain < 5)
6073 return; 6184 return;
6074 int light = Convert.ToInt32(rules.Data[idx++]); 6185 bool light = rules.GetLSLIntegerItem(idx++);
6075 LSL_Types.Vector3 lightcolor =new LSL_Types.Vector3(rules.Data[idx++].ToString()); 6186 LSL_Vector lightcolor = rules.GetVector3Item(idx++);
6076 float intensity = (float)Convert.ToDouble(rules.Data[idx++]); 6187 float intensity = (float)rules.GetLSLFloatItem(idx++);
6077 float radius = (float)Convert.ToDouble(rules.Data[idx++]); 6188 float radius = (float)rules.GetLSLFloatItem(idx++);
6078 float falloff = (float)Convert.ToDouble(rules.Data[idx++]); 6189 float falloff = (float)rules.GetLSLFloatItem(idx++);
6079 6190
6080 SetPointLight(part, (light == 1), lightcolor, intensity, radius, falloff); 6191 SetPointLight(part, light, lightcolor, intensity, radius, falloff);
6081 6192
6082 break; 6193 break;
6083 case (int)BuiltIn_Commands_BaseClass.PRIM_GLOW: 6194 case (int)BuiltIn_Commands_BaseClass.PRIM_GLOW:
6084 if (remain < 2) 6195 if (remain < 2)
6085 return; 6196 return;
6086 face = Convert.ToInt32(rules.Data[idx++]); 6197 face = rules.GetLSLIntegerItem(idx++);
6087 float glow = (float)Convert.ToDouble(rules.Data[idx++]); 6198 float glow = (float)rules.GetLSLFloatItem(idx++);
6088 6199
6089 SetGlow(part, face, glow); 6200 SetGlow(part, face, glow);
6090 6201
@@ -6092,9 +6203,9 @@ namespace OpenSim.Region.ScriptEngine.Common
6092 case (int)BuiltIn_Commands_BaseClass.PRIM_BUMP_SHINY: 6203 case (int)BuiltIn_Commands_BaseClass.PRIM_BUMP_SHINY:
6093 if (remain < 3) 6204 if (remain < 3)
6094 return; 6205 return;
6095 face = Convert.ToInt32(rules.Data[idx++]); 6206 face = (int)rules.GetLSLIntegerItem(idx++);
6096 int shiny = Convert.ToInt32(rules.Data[idx++]); 6207 int shiny = (int)rules.GetLSLIntegerItem(idx++);
6097 Bumpiness bump = (Bumpiness)Convert.ToByte(rules.Data[idx++]); 6208 Bumpiness bump = (Bumpiness)Convert.ToByte((int)rules.GetLSLIntegerItem(idx++));
6098 6209
6099 SetShiny(part, face, shiny, bump); 6210 SetShiny(part, face, shiny, bump);
6100 6211
@@ -6102,14 +6213,8 @@ namespace OpenSim.Region.ScriptEngine.Common
6102 case (int)BuiltIn_Commands_BaseClass.PRIM_FULLBRIGHT: 6213 case (int)BuiltIn_Commands_BaseClass.PRIM_FULLBRIGHT:
6103 if (remain < 2) 6214 if (remain < 2)
6104 return; 6215 return;
6105 face = Convert.ToInt32(rules.Data[idx++]); 6216 face = rules.GetLSLIntegerItem(idx++);
6106 string bv = rules.Data[idx++].ToString(); 6217 bool st = rules.GetLSLIntegerItem(idx++);
6107 bool st;
6108 if (bv.Equals("1"))
6109 st = true;
6110 else
6111 st = false;
6112
6113 SetFullBright(part, face , st); 6218 SetFullBright(part, face , st);
6114 break; 6219 break;
6115 case (int)BuiltIn_Commands_BaseClass.PRIM_MATERIAL: 6220 case (int)BuiltIn_Commands_BaseClass.PRIM_MATERIAL:
@@ -6119,7 +6224,7 @@ namespace OpenSim.Region.ScriptEngine.Common
6119 { 6224 {
6120 /* Unhandled at this time - sends "Unhandled" message 6225 /* Unhandled at this time - sends "Unhandled" message
6121 will enable when available 6226 will enable when available
6122 byte material = (byte)Convert.ToByte( rules.Data[idx++]); 6227 byte material = Convert.ToByte((int)rules.GetLSLIntegerItem(idx++));
6123 part.Material = material; 6228 part.Material = material;
6124 */ 6229 */
6125 return; 6230 return;
@@ -6158,7 +6263,7 @@ namespace OpenSim.Region.ScriptEngine.Common
6158 } 6263 }
6159 } 6264 }
6160 6265
6161 public string llStringToBase64(string str) 6266 public LSL_String llStringToBase64(string str)
6162 { 6267 {
6163 m_host.AddScriptLPS(1); 6268 m_host.AddScriptLPS(1);
6164 try 6269 try
@@ -6174,7 +6279,7 @@ namespace OpenSim.Region.ScriptEngine.Common
6174 } 6279 }
6175 } 6280 }
6176 6281
6177 public string llBase64ToString(string str) 6282 public LSL_String llBase64ToString(string str)
6178 { 6283 {
6179 m_host.AddScriptLPS(1); 6284 m_host.AddScriptLPS(1);
6180 UTF8Encoding encoder = new UTF8Encoding(); 6285 UTF8Encoding encoder = new UTF8Encoding();
@@ -6207,23 +6312,23 @@ namespace OpenSim.Region.ScriptEngine.Common
6207 NotImplemented("llRemoteDataSetRegion"); 6312 NotImplemented("llRemoteDataSetRegion");
6208 } 6313 }
6209 6314
6210 public double llLog10(double val) 6315 public LSL_Float llLog10(double val)
6211 { 6316 {
6212 m_host.AddScriptLPS(1); 6317 m_host.AddScriptLPS(1);
6213 return (double)Math.Log10(val); 6318 return (double)Math.Log10(val);
6214 } 6319 }
6215 6320
6216 public double llLog(double val) 6321 public LSL_Float llLog(double val)
6217 { 6322 {
6218 m_host.AddScriptLPS(1); 6323 m_host.AddScriptLPS(1);
6219 return (double)Math.Log(val); 6324 return (double)Math.Log(val);
6220 } 6325 }
6221 6326
6222 public LSL_Types.list llGetAnimationList( string id ) 6327 public LSL_List llGetAnimationList( string id )
6223 { 6328 {
6224 m_host.AddScriptLPS(1); 6329 m_host.AddScriptLPS(1);
6225 6330
6226 LSL_Types.list l = new LSL_Types.list(); 6331 LSL_List l = new LSL_List();
6227 ScenePresence av = World.GetScenePresence(id); 6332 ScenePresence av = World.GetScenePresence(id);
6228 if (av == null) 6333 if (av == null)
6229 return l; 6334 return l;
@@ -6250,44 +6355,19 @@ namespace OpenSim.Region.ScriptEngine.Common
6250 // ScriptSleep(2000); 6355 // ScriptSleep(2000);
6251 } 6356 }
6252 6357
6253 public void osSetParcelMediaURL(string url) 6358 public LSL_Vector llGetRootPosition()
6254 { 6359 {
6255 m_host.AddScriptLPS(1); 6360 m_host.AddScriptLPS(1);
6256 UUID landowner = World.GetLandOwner(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); 6361 return new LSL_Vector(m_host.ParentGroup.AbsolutePosition.X, m_host.ParentGroup.AbsolutePosition.Y, m_host.ParentGroup.AbsolutePosition.Z);
6257
6258 if (landowner == UUID.Zero)
6259 {
6260 return;
6261 }
6262
6263 if (landowner != m_host.ObjectOwner)
6264 {
6265 return;
6266 }
6267
6268 World.SetLandMediaURL(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, url);
6269 }
6270
6271 public LSL_Types.Vector3 llGetRootPosition()
6272 {
6273 m_host.AddScriptLPS(1);
6274 return new LSL_Types.Vector3(
6275 m_host.ParentGroup.AbsolutePosition.X,
6276 m_host.ParentGroup.AbsolutePosition.Y,
6277 m_host.ParentGroup.AbsolutePosition.Z);
6278 } 6362 }
6279 6363
6280 public LSL_Types.Quaternion llGetRootRotation() 6364 public LSL_Rotation llGetRootRotation()
6281 { 6365 {
6282 m_host.AddScriptLPS(1); 6366 m_host.AddScriptLPS(1);
6283 return new LSL_Types.Quaternion( 6367 return new LSL_Rotation(m_host.ParentGroup.GroupRotation.X, m_host.ParentGroup.GroupRotation.Y, m_host.ParentGroup.GroupRotation.Z, m_host.ParentGroup.GroupRotation.W);
6284 m_host.ParentGroup.GroupRotation.X,
6285 m_host.ParentGroup.GroupRotation.Y,
6286 m_host.ParentGroup.GroupRotation.Z,
6287 m_host.ParentGroup.GroupRotation.W);
6288 } 6368 }
6289 6369
6290 public string llGetObjectDesc() 6370 public LSL_String llGetObjectDesc()
6291 { 6371 {
6292 return m_host.Description!=null?m_host.Description:String.Empty; 6372 return m_host.Description!=null?m_host.Description:String.Empty;
6293 } 6373 }
@@ -6298,13 +6378,13 @@ namespace OpenSim.Region.ScriptEngine.Common
6298 m_host.Description = desc!=null?desc:String.Empty; 6378 m_host.Description = desc!=null?desc:String.Empty;
6299 } 6379 }
6300 6380
6301 public string llGetCreator() 6381 public LSL_String llGetCreator()
6302 { 6382 {
6303 m_host.AddScriptLPS(1); 6383 m_host.AddScriptLPS(1);
6304 return m_host.ObjectCreator.ToString(); 6384 return m_host.ObjectCreator.ToString();
6305 } 6385 }
6306 6386
6307 public string llGetTimestamp() 6387 public LSL_String llGetTimestamp()
6308 { 6388 {
6309 m_host.AddScriptLPS(1); 6389 m_host.AddScriptLPS(1);
6310 return DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); 6390 return DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ");
@@ -6318,7 +6398,7 @@ namespace OpenSim.Region.ScriptEngine.Common
6318 { 6398 {
6319 Primitive.TextureEntry tex = part.Shape.Textures; 6399 Primitive.TextureEntry tex = part.Shape.Textures;
6320 Color4 texcolor; 6400 Color4 texcolor;
6321 if (face > -1) 6401 if (face >= 0 && face < GetNumberOfSides(m_host))
6322 { 6402 {
6323 texcolor = tex.CreateFace((uint)face).RGBA; 6403 texcolor = tex.CreateFace((uint)face).RGBA;
6324 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f); 6404 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
@@ -6326,12 +6406,12 @@ namespace OpenSim.Region.ScriptEngine.Common
6326 part.UpdateTexture(tex); 6406 part.UpdateTexture(tex);
6327 return; 6407 return;
6328 } 6408 }
6329 else if (face == -1) 6409 else if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
6330 { 6410 {
6331 texcolor = tex.DefaultTexture.RGBA; 6411 texcolor = tex.DefaultTexture.RGBA;
6332 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f); 6412 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
6333 tex.DefaultTexture.RGBA = texcolor; 6413 tex.DefaultTexture.RGBA = texcolor;
6334 for (uint i = 0; i < 32; i++) 6414 for (uint i = 0; i < GetNumberOfSides(m_host); i++)
6335 { 6415 {
6336 if (tex.FaceTextures[i] != null) 6416 if (tex.FaceTextures[i] != null)
6337 { 6417 {
@@ -6388,77 +6468,76 @@ namespace OpenSim.Region.ScriptEngine.Common
6388 } 6468 }
6389 } 6469 }
6390 6470
6391 public LSL_Types.LSLInteger llGetNumberOfPrims() 6471 public LSL_Integer llGetNumberOfPrims()
6392 { 6472 {
6393 m_host.AddScriptLPS(1); 6473 m_host.AddScriptLPS(1);
6394 return m_host.ParentGroup.PrimCount; 6474 return m_host.ParentGroup.PrimCount;
6395 } 6475 }
6396 6476
6397 public LSL_Types.list llGetBoundingBox(string obj) 6477 public LSL_List llGetBoundingBox(string obj)
6398 { 6478 {
6399 m_host.AddScriptLPS(1); 6479 m_host.AddScriptLPS(1);
6400 NotImplemented("llGetBoundingBox"); 6480 NotImplemented("llGetBoundingBox");
6401 return new LSL_Types.list(); 6481 return new LSL_List();
6402 } 6482 }
6403 6483
6404 public LSL_Types.Vector3 llGetGeometricCenter() 6484 public LSL_Vector llGetGeometricCenter()
6405 { 6485 {
6406 return new LSL_Types.Vector3( 6486 return new LSL_Vector(m_host.GetGeometricCenter().X, m_host.GetGeometricCenter().Y, m_host.GetGeometricCenter().Z);
6407 m_host.GetGeometricCenter().X, m_host.GetGeometricCenter().Y, m_host.GetGeometricCenter().Z);
6408 } 6487 }
6409 6488
6410 public LSL_Types.list llGetPrimitiveParams(LSL_Types.list rules) 6489 public LSL_List llGetPrimitiveParams(LSL_List rules)
6411 { 6490 {
6412 m_host.AddScriptLPS(1); 6491 m_host.AddScriptLPS(1);
6413 6492
6414 LSL_Types.list res = new LSL_Types.list(); 6493 LSL_List res = new LSL_List();
6415 int idx=0; 6494 int idx=0;
6416 while (idx < rules.Length) 6495 while (idx < rules.Length)
6417 { 6496 {
6418 int code=Convert.ToInt32(rules.Data[idx++]); 6497 int code=(int)rules.GetLSLIntegerItem(idx++);
6419 int remain=rules.Length-idx; 6498 int remain=rules.Length-idx;
6420 6499
6421 switch (code) 6500 switch (code)
6422 { 6501 {
6423 case (int)BuiltIn_Commands_BaseClass.PRIM_MATERIAL: 6502 case (int)BuiltIn_Commands_BaseClass.PRIM_MATERIAL:
6424 res.Add(new LSL_Types.LSLInteger(m_host.Material)); 6503 res.Add(new LSL_Integer(m_host.Material));
6425 break; 6504 break;
6426 6505
6427 case (int)BuiltIn_Commands_BaseClass.PRIM_PHYSICS: 6506 case (int)BuiltIn_Commands_BaseClass.PRIM_PHYSICS:
6428 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Physics) != 0) 6507 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Physics) != 0)
6429 res.Add(new LSL_Types.LSLInteger(1)); 6508 res.Add(new LSL_Integer(1));
6430 else 6509 else
6431 res.Add(new LSL_Types.LSLInteger(0)); 6510 res.Add(new LSL_Integer(0));
6432 break; 6511 break;
6433 6512
6434 case (int)BuiltIn_Commands_BaseClass.PRIM_TEMP_ON_REZ: 6513 case (int)BuiltIn_Commands_BaseClass.PRIM_TEMP_ON_REZ:
6435 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.TemporaryOnRez) != 0) 6514 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.TemporaryOnRez) != 0)
6436 res.Add(new LSL_Types.LSLInteger(1)); 6515 res.Add(new LSL_Integer(1));
6437 else 6516 else
6438 res.Add(new LSL_Types.LSLInteger(0)); 6517 res.Add(new LSL_Integer(0));
6439 break; 6518 break;
6440 6519
6441 case (int)BuiltIn_Commands_BaseClass.PRIM_PHANTOM: 6520 case (int)BuiltIn_Commands_BaseClass.PRIM_PHANTOM:
6442 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Phantom) != 0) 6521 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Phantom) != 0)
6443 res.Add(new LSL_Types.LSLInteger(1)); 6522 res.Add(new LSL_Integer(1));
6444 else 6523 else
6445 res.Add(new LSL_Types.LSLInteger(0)); 6524 res.Add(new LSL_Integer(0));
6446 break; 6525 break;
6447 6526
6448 case (int)BuiltIn_Commands_BaseClass.PRIM_POSITION: 6527 case (int)BuiltIn_Commands_BaseClass.PRIM_POSITION:
6449 res.Add(new LSL_Types.Vector3(m_host.AbsolutePosition.X, 6528 res.Add(new LSL_Vector(m_host.AbsolutePosition.X,
6450 m_host.AbsolutePosition.Y, 6529 m_host.AbsolutePosition.Y,
6451 m_host.AbsolutePosition.Z)); 6530 m_host.AbsolutePosition.Z));
6452 break; 6531 break;
6453 6532
6454 case (int)BuiltIn_Commands_BaseClass.PRIM_SIZE: 6533 case (int)BuiltIn_Commands_BaseClass.PRIM_SIZE:
6455 res.Add(new LSL_Types.Vector3(m_host.Scale.X, 6534 res.Add(new LSL_Vector(m_host.Scale.X,
6456 m_host.Scale.Y, 6535 m_host.Scale.Y,
6457 m_host.Scale.Z)); 6536 m_host.Scale.Z));
6458 break; 6537 break;
6459 6538
6460 case (int)BuiltIn_Commands_BaseClass.PRIM_ROTATION: 6539 case (int)BuiltIn_Commands_BaseClass.PRIM_ROTATION:
6461 res.Add(new LSL_Types.Quaternion(m_host.RotationOffset.X, 6540 res.Add(new LSL_Rotation(m_host.RotationOffset.X,
6462 m_host.RotationOffset.Y, 6541 m_host.RotationOffset.Y,
6463 m_host.RotationOffset.Z, 6542 m_host.RotationOffset.Z,
6464 m_host.RotationOffset.W)); 6543 m_host.RotationOffset.W));
@@ -6468,69 +6547,69 @@ namespace OpenSim.Region.ScriptEngine.Common
6468 // implementing box 6547 // implementing box
6469 PrimitiveBaseShape Shape = m_host.Shape; 6548 PrimitiveBaseShape Shape = m_host.Shape;
6470 int primType = getScriptPrimType(m_host.Shape); 6549 int primType = getScriptPrimType(m_host.Shape);
6471 res.Add(new LSL_Types.LSLInteger(primType)); 6550 res.Add(new LSL_Integer(primType));
6472 switch (primType) 6551 switch (primType)
6473 { 6552 {
6474 case BuiltIn_Commands_BaseClass.PRIM_TYPE_BOX: 6553 case BuiltIn_Commands_BaseClass.PRIM_TYPE_BOX:
6475 case BuiltIn_Commands_BaseClass.PRIM_TYPE_CYLINDER: 6554 case BuiltIn_Commands_BaseClass.PRIM_TYPE_CYLINDER:
6476 case BuiltIn_Commands_BaseClass.PRIM_TYPE_PRISM: 6555 case BuiltIn_Commands_BaseClass.PRIM_TYPE_PRISM:
6477 res.Add(new LSL_Types.LSLInteger(Shape.ProfileCurve)); 6556 res.Add(new LSL_Integer(Shape.ProfileCurve));
6478 res.Add(new LSL_Types.Vector3(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0)); 6557 res.Add(new LSL_Vector(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0));
6479 res.Add(new LSL_Types.LSLFloat(Shape.ProfileHollow / 50000.0)); 6558 res.Add(new LSL_Float(Shape.ProfileHollow / 50000.0));
6480 res.Add(new LSL_Types.Vector3(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0)); 6559 res.Add(new LSL_Vector(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0));
6481 res.Add(new LSL_Types.Vector3(1 - (Shape.PathScaleX / 100.0 - 1), 1 - (Shape.PathScaleY / 100.0 - 1), 0)); 6560 res.Add(new LSL_Vector(1 - (Shape.PathScaleX / 100.0 - 1), 1 - (Shape.PathScaleY / 100.0 - 1), 0));
6482 res.Add(new LSL_Types.Vector3(Shape.PathShearX / 100.0, Shape.PathShearY / 100.0, 0)); 6561 res.Add(new LSL_Vector(Shape.PathShearX / 100.0, Shape.PathShearY / 100.0, 0));
6483 break; 6562 break;
6484 6563
6485 case BuiltIn_Commands_BaseClass.PRIM_TYPE_SPHERE: 6564 case BuiltIn_Commands_BaseClass.PRIM_TYPE_SPHERE:
6486 res.Add(new LSL_Types.LSLInteger(Shape.ProfileCurve)); 6565 res.Add(new LSL_Integer(Shape.ProfileCurve));
6487 res.Add(new LSL_Types.Vector3(Shape.PathBegin / 50000.0, 1 - Shape.PathEnd / 50000.0, 0)); 6566 res.Add(new LSL_Vector(Shape.PathBegin / 50000.0, 1 - Shape.PathEnd / 50000.0, 0));
6488 res.Add(new LSL_Types.LSLFloat(Shape.ProfileHollow / 50000.0)); 6567 res.Add(new LSL_Float(Shape.ProfileHollow / 50000.0));
6489 res.Add(new LSL_Types.Vector3(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0)); 6568 res.Add(new LSL_Vector(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0));
6490 res.Add(new LSL_Types.Vector3(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0)); 6569 res.Add(new LSL_Vector(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0));
6491 break; 6570 break;
6492 6571
6493 case BuiltIn_Commands_BaseClass.PRIM_TYPE_SCULPT: 6572 case BuiltIn_Commands_BaseClass.PRIM_TYPE_SCULPT:
6494 res.Add(Shape.SculptTexture.ToString()); 6573 res.Add(Shape.SculptTexture.ToString());
6495 res.Add(new LSL_Types.LSLInteger(Shape.SculptType)); 6574 res.Add(new LSL_Integer(Shape.SculptType));
6496 break; 6575 break;
6497 6576
6498 case BuiltIn_Commands_BaseClass.PRIM_TYPE_RING: 6577 case BuiltIn_Commands_BaseClass.PRIM_TYPE_RING:
6499 case BuiltIn_Commands_BaseClass.PRIM_TYPE_TUBE: 6578 case BuiltIn_Commands_BaseClass.PRIM_TYPE_TUBE:
6500 case BuiltIn_Commands_BaseClass.PRIM_TYPE_TORUS: 6579 case BuiltIn_Commands_BaseClass.PRIM_TYPE_TORUS:
6501 // holeshape 6580 // holeshape
6502 res.Add(new LSL_Types.LSLInteger(Shape.ProfileCurve)); 6581 res.Add(new LSL_Integer(Shape.ProfileCurve));
6503 6582
6504 // cut 6583 // cut
6505 res.Add(new LSL_Types.Vector3(Shape.PathBegin / 50000.0, 1 - Shape.PathEnd / 50000.0, 0)); 6584 res.Add(new LSL_Vector(Shape.PathBegin / 50000.0, 1 - Shape.PathEnd / 50000.0, 0));
6506 6585
6507 // hollow 6586 // hollow
6508 res.Add(new LSL_Types.LSLFloat(Shape.ProfileHollow / 50000.0)); 6587 res.Add(new LSL_Float(Shape.ProfileHollow / 50000.0));
6509 6588
6510 // twist 6589 // twist
6511 res.Add(new LSL_Types.Vector3(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0)); 6590 res.Add(new LSL_Vector(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0));
6512 6591
6513 // vector holesize 6592 // vector holesize
6514 res.Add(new LSL_Types.Vector3(1 - (Shape.PathScaleX / 100.0 - 1), 1 - (Shape.PathScaleY / 100.0 - 1), 0)); 6593 res.Add(new LSL_Vector(1 - (Shape.PathScaleX / 100.0 - 1), 1 - (Shape.PathScaleY / 100.0 - 1), 0));
6515 6594
6516 // vector topshear 6595 // vector topshear
6517 res.Add(new LSL_Types.Vector3(Shape.PathShearX / 100.0, Shape.PathShearY / 100.0, 0)); 6596 res.Add(new LSL_Vector(Shape.PathShearX / 100.0, Shape.PathShearY / 100.0, 0));
6518 6597
6519 // vector profilecut 6598 // vector profilecut
6520 res.Add(new LSL_Types.Vector3(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0)); 6599 res.Add(new LSL_Vector(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0));
6521 6600
6522 6601
6523 // vector tapera 6602 // vector tapera
6524 res.Add(new LSL_Types.Vector3(Shape.PathTaperX / 100.0, Shape.PathTaperY / 100.0, 0)); 6603 res.Add(new LSL_Vector(Shape.PathTaperX / 100.0, Shape.PathTaperY / 100.0, 0));
6525 6604
6526 // float revolutions, 6605 // float revolutions,
6527 res.Add(new LSL_Types.LSLFloat(Shape.PathRevolutions / 50.0)); // needs fixing :( 6606 res.Add(new LSL_Float(Shape.PathRevolutions / 50.0)); // needs fixing :(
6528 6607
6529 // float radiusoffset, 6608 // float radiusoffset,
6530 res.Add(new LSL_Types.LSLFloat(Shape.PathRadiusOffset / 100.0)); 6609 res.Add(new LSL_Float(Shape.PathRadiusOffset / 100.0));
6531 6610
6532 // float skew 6611 // float skew
6533 res.Add(new LSL_Types.LSLFloat(Shape.PathSkew / 100.0)); 6612 res.Add(new LSL_Float(Shape.PathSkew / 100.0));
6534 break; 6613 break;
6535 6614
6536 } 6615 }
@@ -6540,39 +6619,69 @@ namespace OpenSim.Region.ScriptEngine.Common
6540 if (remain < 1) 6619 if (remain < 1)
6541 return res; 6620 return res;
6542 6621
6543 int face = Convert.ToInt32("" + rules.Data[idx++]); 6622 int face = (int)rules.GetLSLIntegerItem(idx++);
6544 if (face == -1)
6545 face = 0;
6546
6547 Primitive.TextureEntry tex = m_host.Shape.Textures; 6623 Primitive.TextureEntry tex = m_host.Shape.Textures;
6548 Primitive.TextureEntryFace texface = tex.GetFace((uint)face); 6624 if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
6549 6625 {
6550 res.Add(new LSL_Types.LSLString(texface.TextureID.ToString())); 6626 for (face = 0 ; face < GetNumberOfSides(m_host) ; face++)
6551 res.Add(new LSL_Types.Vector3(texface.RepeatU, 6627 {
6552 texface.RepeatV, 6628 Primitive.TextureEntryFace texface = tex.GetFace((uint)face);
6553 0)); 6629
6554 res.Add(new LSL_Types.Vector3(texface.OffsetU, 6630 res.Add(new LSL_String(texface.TextureID.ToString()));
6555 texface.OffsetV, 6631 res.Add(new LSL_Vector(texface.RepeatU,
6556 0)); 6632 texface.RepeatV,
6557 res.Add(new LSL_Types.LSLFloat(texface.Rotation)); 6633 0));
6634 res.Add(new LSL_Vector(texface.OffsetU,
6635 texface.OffsetV,
6636 0));
6637 res.Add(new LSL_Float(texface.Rotation));
6638 }
6639 }
6640 else
6641 {
6642 if (face >= 0 && face < GetNumberOfSides(m_host))
6643 {
6644 Primitive.TextureEntryFace texface = tex.GetFace((uint)face);
6645
6646 res.Add(new LSL_String(texface.TextureID.ToString()));
6647 res.Add(new LSL_Vector(texface.RepeatU,
6648 texface.RepeatV,
6649 0));
6650 res.Add(new LSL_Vector(texface.OffsetU,
6651 texface.OffsetV,
6652 0));
6653 res.Add(new LSL_Float(texface.Rotation));
6654 }
6655 }
6558 break; 6656 break;
6559 6657
6560 case (int)BuiltIn_Commands_BaseClass.PRIM_COLOR: 6658 case (int)BuiltIn_Commands_BaseClass.PRIM_COLOR:
6561 if (remain < 1) 6659 if (remain < 1)
6562 return res; 6660 return res;
6563 6661
6564 face=Convert.ToInt32("" + rules.Data[idx++]); 6662 face=(int)rules.GetLSLIntegerItem(idx++);
6565 6663
6566 tex = m_host.Shape.Textures; 6664 tex = m_host.Shape.Textures;
6567 Color4 texcolor; 6665 Color4 texcolor;
6568 if (face == -1) // TMP: Until we can determine number of sides, ALL_SIDES (-1) will return default color 6666 if (face == BuiltIn_Commands_BaseClass.ALL_SIDES)
6569 texcolor = tex.DefaultTexture.RGBA; 6667 {
6668 for (face = 0 ; face < GetNumberOfSides(m_host) ; face++)
6669 {
6670 texcolor = tex.GetFace((uint)face).RGBA;
6671 res.Add(new LSL_Vector(texcolor.R,
6672 texcolor.G,
6673 texcolor.B));
6674 res.Add(new LSL_Float(texcolor.A));
6675 }
6676 }
6570 else 6677 else
6678 {
6571 texcolor = tex.GetFace((uint)face).RGBA; 6679 texcolor = tex.GetFace((uint)face).RGBA;
6572 res.Add(new LSL_Types.Vector3((255 - (texcolor.R * 255)) / 255, 6680 res.Add(new LSL_Vector(texcolor.R,
6573 (255 - (texcolor.G * 255)) / 255, 6681 texcolor.G,
6574 (255 - (texcolor.B * 255)) / 255)); 6682 texcolor.B));
6575 res.Add(new LSL_Types.LSLFloat((texcolor.A * 255) / 255)); 6683 res.Add(new LSL_Float(texcolor.A));
6684 }
6576 break; 6685 break;
6577 6686
6578 case (int)BuiltIn_Commands_BaseClass.PRIM_BUMP_SHINY: 6687 case (int)BuiltIn_Commands_BaseClass.PRIM_BUMP_SHINY:
@@ -6580,10 +6689,10 @@ namespace OpenSim.Region.ScriptEngine.Common
6580 if (remain < 1) 6689 if (remain < 1)
6581 return res; 6690 return res;
6582 6691
6583 face=Convert.ToInt32(rules.Data[idx++]); 6692 face=(int)rules.GetLSLIntegerItem(idx++);
6584 6693
6585 res.Add(new LSL_Types.LSLInteger(0)); 6694 res.Add(new LSL_Integer(0));
6586 res.Add(new LSL_Types.LSLInteger(0)); 6695 res.Add(new LSL_Integer(0));
6587 break; 6696 break;
6588 6697
6589 case (int)BuiltIn_Commands_BaseClass.PRIM_FULLBRIGHT: 6698 case (int)BuiltIn_Commands_BaseClass.PRIM_FULLBRIGHT:
@@ -6591,24 +6700,24 @@ namespace OpenSim.Region.ScriptEngine.Common
6591 if (remain < 1) 6700 if (remain < 1)
6592 return res; 6701 return res;
6593 6702
6594 face=Convert.ToInt32(rules.Data[idx++]); 6703 face=(int)rules.GetLSLIntegerItem(idx++);
6595 6704
6596 res.Add(new LSL_Types.LSLInteger(0)); 6705 res.Add(new LSL_Integer(0));
6597 break; 6706 break;
6598 6707
6599 case (int)BuiltIn_Commands_BaseClass.PRIM_FLEXIBLE: 6708 case (int)BuiltIn_Commands_BaseClass.PRIM_FLEXIBLE:
6600 PrimitiveBaseShape shape = m_host.Shape; 6709 PrimitiveBaseShape shape = m_host.Shape;
6601 6710
6602 if (shape.FlexiEntry) 6711 if (shape.FlexiEntry)
6603 res.Add(new LSL_Types.LSLInteger(1)); // active 6712 res.Add(new LSL_Integer(1)); // active
6604 else 6713 else
6605 res.Add(new LSL_Types.LSLInteger(0)); 6714 res.Add(new LSL_Integer(0));
6606 res.Add(new LSL_Types.LSLInteger(shape.FlexiSoftness));// softness 6715 res.Add(new LSL_Integer(shape.FlexiSoftness));// softness
6607 res.Add(new LSL_Types.LSLFloat(shape.FlexiGravity)); // gravity 6716 res.Add(new LSL_Float(shape.FlexiGravity)); // gravity
6608 res.Add(new LSL_Types.LSLFloat(shape.FlexiDrag)); // friction 6717 res.Add(new LSL_Float(shape.FlexiDrag)); // friction
6609 res.Add(new LSL_Types.LSLFloat(shape.FlexiWind)); // wind 6718 res.Add(new LSL_Float(shape.FlexiWind)); // wind
6610 res.Add(new LSL_Types.LSLFloat(shape.FlexiTension)); // tension 6719 res.Add(new LSL_Float(shape.FlexiTension)); // tension
6611 res.Add(new LSL_Types.Vector3(shape.FlexiForceX, // force 6720 res.Add(new LSL_Vector(shape.FlexiForceX, // force
6612 shape.FlexiForceY, 6721 shape.FlexiForceY,
6613 shape.FlexiForceZ)); 6722 shape.FlexiForceZ));
6614 break; 6723 break;
@@ -6619,24 +6728,24 @@ namespace OpenSim.Region.ScriptEngine.Common
6619 if (remain < 1) 6728 if (remain < 1)
6620 return res; 6729 return res;
6621 6730
6622 face=Convert.ToInt32(rules.Data[idx++]); 6731 face=(int)rules.GetLSLIntegerItem(idx++);
6623 6732
6624 res.Add(new LSL_Types.LSLInteger(0)); 6733 res.Add(new LSL_Integer(0));
6625 break; 6734 break;
6626 6735
6627 case (int)BuiltIn_Commands_BaseClass.PRIM_POINT_LIGHT: 6736 case (int)BuiltIn_Commands_BaseClass.PRIM_POINT_LIGHT:
6628 shape = m_host.Shape; 6737 shape = m_host.Shape;
6629 6738
6630 if (shape.LightEntry) 6739 if (shape.LightEntry)
6631 res.Add(new LSL_Types.LSLInteger(1)); // active 6740 res.Add(new LSL_Integer(1)); // active
6632 else 6741 else
6633 res.Add(new LSL_Types.LSLInteger(0)); 6742 res.Add(new LSL_Integer(0));
6634 res.Add(new LSL_Types.Vector3(shape.LightColorR, // color 6743 res.Add(new LSL_Vector(shape.LightColorR, // color
6635 shape.LightColorG, 6744 shape.LightColorG,
6636 shape.LightColorB)); 6745 shape.LightColorB));
6637 res.Add(new LSL_Types.LSLFloat(shape.LightIntensity)); // intensity 6746 res.Add(new LSL_Float(shape.LightIntensity)); // intensity
6638 res.Add(new LSL_Types.LSLFloat(shape.LightRadius)); // radius 6747 res.Add(new LSL_Float(shape.LightRadius)); // radius
6639 res.Add(new LSL_Types.LSLFloat(shape.LightFalloff)); // falloff 6748 res.Add(new LSL_Float(shape.LightFalloff)); // falloff
6640 break; 6749 break;
6641 6750
6642 case (int)BuiltIn_Commands_BaseClass.PRIM_GLOW: 6751 case (int)BuiltIn_Commands_BaseClass.PRIM_GLOW:
@@ -6644,9 +6753,9 @@ namespace OpenSim.Region.ScriptEngine.Common
6644 if (remain < 1) 6753 if (remain < 1)
6645 return res; 6754 return res;
6646 6755
6647 face=Convert.ToInt32(rules.Data[idx++]); 6756 face=(int)rules.GetLSLIntegerItem(idx++);
6648 6757
6649 res.Add(new LSL_Types.LSLFloat(0)); 6758 res.Add(new LSL_Float(0));
6650 break; 6759 break;
6651 } 6760 }
6652 } 6761 }
@@ -6780,7 +6889,7 @@ namespace OpenSim.Region.ScriptEngine.Common
6780 // characters are padded with "=". 6889 // characters are padded with "=".
6781 // </returns> 6890 // </returns>
6782 6891
6783 public string llIntegerToBase64(int number) 6892 public LSL_String llIntegerToBase64(int number)
6784 { 6893 {
6785 // uninitialized string 6894 // uninitialized string
6786 6895
@@ -6843,7 +6952,7 @@ namespace OpenSim.Region.ScriptEngine.Common
6843 // </para> 6952 // </para>
6844 // </remarks> 6953 // </remarks>
6845 6954
6846 public LSL_Types.LSLInteger llBase64ToInteger(string str) 6955 public LSL_Integer llBase64ToInteger(string str)
6847 { 6956 {
6848 int number = 0; 6957 int number = 0;
6849 int digit; 6958 int digit;
@@ -6903,19 +7012,19 @@ namespace OpenSim.Region.ScriptEngine.Common
6903 return number; 7012 return number;
6904 } 7013 }
6905 7014
6906 public double llGetGMTclock() 7015 public LSL_Float llGetGMTclock()
6907 { 7016 {
6908 m_host.AddScriptLPS(1); 7017 m_host.AddScriptLPS(1);
6909 return DateTime.UtcNow.TimeOfDay.TotalSeconds; 7018 return DateTime.UtcNow.TimeOfDay.TotalSeconds;
6910 } 7019 }
6911 7020
6912 public string llGetSimulatorHostname() 7021 public LSL_String llGetSimulatorHostname()
6913 { 7022 {
6914 m_host.AddScriptLPS(1); 7023 m_host.AddScriptLPS(1);
6915 return System.Environment.MachineName; 7024 return System.Environment.MachineName;
6916 } 7025 }
6917 7026
6918 public void llSetLocalRot(LSL_Types.Quaternion rot) 7027 public void llSetLocalRot(LSL_Rotation rot)
6919 { 7028 {
6920 m_host.AddScriptLPS(1); 7029 m_host.AddScriptLPS(1);
6921 m_host.RotationOffset = new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s); 7030 m_host.RotationOffset = new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s);
@@ -6970,7 +7079,7 @@ namespace OpenSim.Region.ScriptEngine.Common
6970 // of arrays or other objects. 7079 // of arrays or other objects.
6971 // </remarks> 7080 // </remarks>
6972 7081
6973 public LSL_Types.list llParseStringKeepNulls(string src, LSL_Types.list separators, LSL_Types.list spacers) 7082 public LSL_List llParseStringKeepNulls(string src, LSL_List separators, LSL_List spacers)
6974 { 7083 {
6975 int beginning = 0; 7084 int beginning = 0;
6976 int srclen = src.Length; 7085 int srclen = src.Length;
@@ -6988,7 +7097,7 @@ namespace OpenSim.Region.ScriptEngine.Common
6988 7097
6989 // Initial capacity reduces resize cost 7098 // Initial capacity reduces resize cost
6990 7099
6991 LSL_Types.list tokens = new LSL_Types.list(); 7100 LSL_List tokens = new LSL_List();
6992 7101
6993 m_host.AddScriptLPS(1); 7102 m_host.AddScriptLPS(1);
6994 7103
@@ -7098,7 +7207,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7098 return tokens; 7207 return tokens;
7099 } 7208 }
7100 7209
7101 public LSL_Types.LSLInteger llGetObjectPermMask(int mask) 7210 public LSL_Integer llGetObjectPermMask(int mask)
7102 { 7211 {
7103 m_host.AddScriptLPS(1); 7212 m_host.AddScriptLPS(1);
7104 7213
@@ -7171,7 +7280,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7171 } 7280 }
7172 } 7281 }
7173 7282
7174 public LSL_Types.LSLInteger llGetInventoryPermMask(string item, int mask) 7283 public LSL_Integer llGetInventoryPermMask(string item, int mask)
7175 { 7284 {
7176 m_host.AddScriptLPS(1); 7285 m_host.AddScriptLPS(1);
7177 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) 7286 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
@@ -7202,7 +7311,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7202 NotImplemented("llSetInventoryPermMask"); 7311 NotImplemented("llSetInventoryPermMask");
7203 } 7312 }
7204 7313
7205 public string llGetInventoryCreator(string item) 7314 public LSL_String llGetInventoryCreator(string item)
7206 { 7315 {
7207 m_host.AddScriptLPS(1); 7316 m_host.AddScriptLPS(1);
7208 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) 7317 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
@@ -7225,7 +7334,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7225// wComm.DeliverMessage(ChatTypeEnum.Owner, 0, m_host.Name, m_host.UUID, msg); 7334// wComm.DeliverMessage(ChatTypeEnum.Owner, 0, m_host.Name, m_host.UUID, msg);
7226 } 7335 }
7227 7336
7228 public string llRequestSimulatorData(string simulator, int data) 7337 public LSL_String llRequestSimulatorData(string simulator, int data)
7229 { 7338 {
7230 try 7339 try
7231 { 7340 {
@@ -7243,7 +7352,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7243 // ScriptSleep(1000); 7352 // ScriptSleep(1000);
7244 return UUID.Zero.ToString(); 7353 return UUID.Zero.ToString();
7245 } 7354 }
7246 reply = new LSL_Types.Vector3( 7355 reply = new LSL_Vector(
7247 info.RegionLocX * Constants.RegionSize, 7356 info.RegionLocX * Constants.RegionSize,
7248 info.RegionLocY * Constants.RegionSize, 7357 info.RegionLocY * Constants.RegionSize,
7249 0).ToString(); 7358 0).ToString();
@@ -7299,7 +7408,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7299 m_host.SetForceMouselook(mouselook != 0); 7408 m_host.SetForceMouselook(mouselook != 0);
7300 } 7409 }
7301 7410
7302 public double llGetObjectMass(string id) 7411 public LSL_Float llGetObjectMass(string id)
7303 { 7412 {
7304 m_host.AddScriptLPS(1); 7413 m_host.AddScriptLPS(1);
7305 UUID key = new UUID(); 7414 UUID key = new UUID();
@@ -7322,9 +7431,9 @@ namespace OpenSim.Region.ScriptEngine.Common
7322 /// and the source list is added as a suffix. 7431 /// and the source list is added as a suffix.
7323 /// </summary> 7432 /// </summary>
7324 7433
7325 public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end) 7434 public LSL_List llListReplaceList(LSL_List dest, LSL_List src, int start, int end)
7326 { 7435 {
7327 LSL_Types.list pref = null; 7436 LSL_List pref = null;
7328 7437
7329 m_host.AddScriptLPS(1); 7438 m_host.AddScriptLPS(1);
7330 7439
@@ -7401,7 +7510,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7401 // ScriptSleep(10000); 7510 // ScriptSleep(10000);
7402 } 7511 }
7403 7512
7404 public void llParcelMediaCommandList(LSL_Types.list commandList) 7513 public void llParcelMediaCommandList(LSL_List commandList)
7405 { 7514 {
7406 //TO DO: Implement the missing commands 7515 //TO DO: Implement the missing commands
7407 //PARCEL_MEDIA_COMMAND_STOP Stop the media stream and go back to the first frame. 7516 //PARCEL_MEDIA_COMMAND_STOP Stop the media stream and go back to the first frame.
@@ -7459,8 +7568,19 @@ namespace OpenSim.Region.ScriptEngine.Common
7459 { 7568 {
7460 if (commandList.Data[i + 1] is string) 7569 if (commandList.Data[i + 1] is string)
7461 { 7570 {
7462 //Set the new media URL only if the user is the owner of the land 7571 UUID landowner = World.GetLandOwner(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
7463 osSetParcelMediaURL(commandList.Data[i + 1].ToString()); 7572
7573 if (landowner == UUID.Zero)
7574 {
7575 return;
7576 }
7577
7578 if (landowner != m_host.ObjectOwner)
7579 {
7580 return;
7581 }
7582
7583 World.SetLandMediaURL(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, (string)commandList.GetLSLStringItem(i + 1));
7464 7584
7465 List<ScenePresence> scenePresenceList = World.GetScenePresences(); 7585 List<ScenePresence> scenePresenceList = World.GetScenePresences();
7466 LandData landData = World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); 7586 LandData landData = World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
@@ -7485,12 +7605,13 @@ namespace OpenSim.Region.ScriptEngine.Common
7485 }//end switch 7605 }//end switch
7486 7606
7487 } 7607 }
7608 // ScriptSleep(2000);
7488 } 7609 }
7489 7610
7490 public LSL_Types.list llParcelMediaQuery(LSL_Types.list aList) 7611 public LSL_List llParcelMediaQuery(LSL_List aList)
7491 { 7612 {
7492 m_host.AddScriptLPS(1); 7613 m_host.AddScriptLPS(1);
7493 LSL_Types.list list = new LSL_Types.list(); 7614 LSL_List list = new LSL_List();
7494 //TO DO: make the implementation for the missing commands 7615 //TO DO: make the implementation for the missing commands
7495 //PARCEL_MEDIA_COMMAND_TEXTURE key uuid Use this to get or set the parcel's media texture. 7616 //PARCEL_MEDIA_COMMAND_TEXTURE key uuid Use this to get or set the parcel's media texture.
7496 //PARCEL_MEDIA_COMMAND_URL string url Used to get or set the parcel's media url. 7617 //PARCEL_MEDIA_COMMAND_URL string url Used to get or set the parcel's media url.
@@ -7506,13 +7627,13 @@ namespace OpenSim.Region.ScriptEngine.Common
7506 switch ((ParcelMediaCommandEnum) aList.Data[i]) 7627 switch ((ParcelMediaCommandEnum) aList.Data[i])
7507 { 7628 {
7508 case ParcelMediaCommandEnum.Url: 7629 case ParcelMediaCommandEnum.Url:
7509 list.Add(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).MediaURL); 7630 list.Add(new LSL_String(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).MediaURL));
7510 break; 7631 break;
7511 case ParcelMediaCommandEnum.Desc: 7632 case ParcelMediaCommandEnum.Desc:
7512 list.Add(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).Description); 7633 list.Add(new LSL_String(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).Description));
7513 break; 7634 break;
7514 case ParcelMediaCommandEnum.Texture: 7635 case ParcelMediaCommandEnum.Texture:
7515 list.Add(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).MediaID); 7636 list.Add(new LSL_String(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).MediaID.ToString()));
7516 break; 7637 break;
7517 default: 7638 default:
7518 ParcelMediaCommandEnum mediaCommandEnum = ParcelMediaCommandEnum.Url; 7639 ParcelMediaCommandEnum mediaCommandEnum = ParcelMediaCommandEnum.Url;
@@ -7526,7 +7647,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7526 return list; 7647 return list;
7527 } 7648 }
7528 7649
7529 public LSL_Types.LSLInteger llModPow(int a, int b, int c) 7650 public LSL_Integer llModPow(int a, int b, int c)
7530 { 7651 {
7531 m_host.AddScriptLPS(1); 7652 m_host.AddScriptLPS(1);
7532 Int64 tmp = 0; 7653 Int64 tmp = 0;
@@ -7535,7 +7656,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7535 return Convert.ToInt32(tmp); 7656 return Convert.ToInt32(tmp);
7536 } 7657 }
7537 7658
7538 public LSL_Types.LSLInteger llGetInventoryType(string name) 7659 public LSL_Integer llGetInventoryType(string name)
7539 { 7660 {
7540 m_host.AddScriptLPS(1); 7661 m_host.AddScriptLPS(1);
7541 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) 7662 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
@@ -7548,7 +7669,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7548 return -1; 7669 return -1;
7549 } 7670 }
7550 7671
7551 public void llSetPayPrice(int price, LSL_Types.list quick_pay_buttons) 7672 public void llSetPayPrice(int price, LSL_List quick_pay_buttons)
7552 { 7673 {
7553 m_host.AddScriptLPS(1); 7674 m_host.AddScriptLPS(1);
7554 7675
@@ -7558,42 +7679,41 @@ namespace OpenSim.Region.ScriptEngine.Common
7558 return; 7679 return;
7559 } 7680 }
7560 m_host.ParentGroup.RootPart.PayPrice[0]=price; 7681 m_host.ParentGroup.RootPart.PayPrice[0]=price;
7561 m_host.ParentGroup.RootPart.PayPrice[1]=(int)quick_pay_buttons.Data[0]; 7682
7562 m_host.ParentGroup.RootPart.PayPrice[2]=(int)quick_pay_buttons.Data[1]; 7683 m_host.ParentGroup.RootPart.PayPrice[1]=(LSL_Integer)quick_pay_buttons.Data[0];
7563 m_host.ParentGroup.RootPart.PayPrice[3]=(int)quick_pay_buttons.Data[2]; 7684 m_host.ParentGroup.RootPart.PayPrice[2]=(LSL_Integer)quick_pay_buttons.Data[1];
7564 m_host.ParentGroup.RootPart.PayPrice[4]=(int)quick_pay_buttons.Data[3]; 7685 m_host.ParentGroup.RootPart.PayPrice[3]=(LSL_Integer)quick_pay_buttons.Data[2];
7686 m_host.ParentGroup.RootPart.PayPrice[4]=(LSL_Integer)quick_pay_buttons.Data[3];
7687 m_host.ParentGroup.HasGroupChanged = true;
7565 } 7688 }
7566 7689
7567 public LSL_Types.Vector3 llGetCameraPos() 7690 public LSL_Vector llGetCameraPos()
7568 { 7691 {
7569 m_host.AddScriptLPS(1); 7692 m_host.AddScriptLPS(1);
7570 UUID invItemID=InventorySelf(); 7693 UUID invItemID=InventorySelf();
7571 if (invItemID == UUID.Zero) 7694 if (invItemID == UUID.Zero)
7572 return new LSL_Types.Vector3(); 7695 return new LSL_Vector();
7573 if (m_host.TaskInventory[invItemID].PermsGranter == UUID.Zero) 7696 if (m_host.TaskInventory[invItemID].PermsGranter == UUID.Zero)
7574 return new LSL_Types.Vector3(); 7697 return new LSL_Vector();
7575 if ((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRACK_CAMERA) == 0) 7698 if ((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_TRACK_CAMERA) == 0)
7576 { 7699 {
7577 ShoutError("No permissions to track the camera"); 7700 ShoutError("No permissions to track the camera");
7578 return new LSL_Types.Vector3(); 7701 return new LSL_Vector();
7579 } 7702 }
7580 ScenePresence presence = World.GetScenePresence(m_host.OwnerID); 7703 ScenePresence presence = World.GetScenePresence(m_host.OwnerID);
7581 if (presence != null) 7704 if (presence != null)
7582 { 7705 {
7583 LSL_Types.Vector3 pos = new LSL_Types.Vector3( 7706 LSL_Vector pos = new LSL_Vector(presence.CameraPosition.X, presence.CameraPosition.Y, presence.CameraPosition.Z);
7584 presence.CameraPosition.X,
7585 presence.CameraPosition.Y,
7586 presence.CameraPosition.Z);
7587 return pos; 7707 return pos;
7588 } 7708 }
7589 return new LSL_Types.Vector3(); 7709 return new LSL_Vector();
7590 } 7710 }
7591 7711
7592 public LSL_Types.Quaternion llGetCameraRot() 7712 public LSL_Rotation llGetCameraRot()
7593 { 7713 {
7594 m_host.AddScriptLPS(1); 7714 m_host.AddScriptLPS(1);
7595 NotImplemented("llGetCameraRot"); 7715 NotImplemented("llGetCameraRot");
7596 return new LSL_Types.Quaternion(); 7716 return new LSL_Rotation();
7597 } 7717 }
7598 7718
7599 public void llSetPrimURL() 7719 public void llSetPrimURL()
@@ -7610,7 +7730,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7610 // ScriptSleep(20000); 7730 // ScriptSleep(20000);
7611 } 7731 }
7612 7732
7613 public string llEscapeURL(string url) 7733 public LSL_String llEscapeURL(string url)
7614 { 7734 {
7615 m_host.AddScriptLPS(1); 7735 m_host.AddScriptLPS(1);
7616 try 7736 try
@@ -7623,7 +7743,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7623 } 7743 }
7624 } 7744 }
7625 7745
7626 public string llUnescapeURL(string url) 7746 public LSL_String llUnescapeURL(string url)
7627 { 7747 {
7628 m_host.AddScriptLPS(1); 7748 m_host.AddScriptLPS(1);
7629 try 7749 try
@@ -7636,7 +7756,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7636 } 7756 }
7637 } 7757 }
7638 7758
7639 public void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at) 7759 public void llMapDestination(string simname, LSL_Vector pos, LSL_Vector look_at)
7640 { 7760 {
7641 m_host.AddScriptLPS(1); 7761 m_host.AddScriptLPS(1);
7642 NotImplemented("llMapDestination"); 7762 NotImplemented("llMapDestination");
@@ -7706,7 +7826,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7706 // ScriptSleep(100); 7826 // ScriptSleep(100);
7707 } 7827 }
7708 7828
7709 public void llSetCameraParams(LSL_Types.list rules) 7829 public void llSetCameraParams(LSL_List rules)
7710 { 7830 {
7711 m_host.AddScriptLPS(1); 7831 m_host.AddScriptLPS(1);
7712 7832
@@ -7731,7 +7851,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7731 SortedDictionary<int, float> parameters = new SortedDictionary<int, float>(); 7851 SortedDictionary<int, float> parameters = new SortedDictionary<int, float>();
7732 object[] data = rules.Data; 7852 object[] data = rules.Data;
7733 for (int i = 0; i < data.Length; ++i) { 7853 for (int i = 0; i < data.Length; ++i) {
7734 int type = Convert.ToInt32(data[i++]); 7854 int type = Convert.ToInt32(data[i++].ToString());
7735 if (i >= data.Length) break; // odd number of entries => ignore the last 7855 if (i >= data.Length) break; // odd number of entries => ignore the last
7736 7856
7737 // some special cases: Vector parameters are split into 3 float parameters (with type+1, type+2, type+3) 7857 // some special cases: Vector parameters are split into 3 float parameters (with type+1, type+2, type+3)
@@ -7739,17 +7859,17 @@ namespace OpenSim.Region.ScriptEngine.Common
7739 case BuiltIn_Commands_BaseClass.CAMERA_FOCUS: 7859 case BuiltIn_Commands_BaseClass.CAMERA_FOCUS:
7740 case BuiltIn_Commands_BaseClass.CAMERA_FOCUS_OFFSET: 7860 case BuiltIn_Commands_BaseClass.CAMERA_FOCUS_OFFSET:
7741 case BuiltIn_Commands_BaseClass.CAMERA_POSITION: 7861 case BuiltIn_Commands_BaseClass.CAMERA_POSITION:
7742 LSL_Types.Vector3 v = (LSL_Types.Vector3)data[i]; 7862 LSL_Vector v = (LSL_Vector)data[i];
7743 parameters.Add(type + 1, (float)v.x); 7863 parameters.Add(type + 1, (float)v.x);
7744 parameters.Add(type + 2, (float)v.y); 7864 parameters.Add(type + 2, (float)v.y);
7745 parameters.Add(type + 3, (float)v.z); 7865 parameters.Add(type + 3, (float)v.z);
7746 break; 7866 break;
7747 default: 7867 default:
7748 // TODO: clean that up as soon as the implicit casts are in 7868 // TODO: clean that up as soon as the implicit casts are in
7749 if (data[i] is LSL_Types.LSLFloat) 7869 if (data[i] is LSL_Float)
7750 parameters.Add(type, (float)((LSL_Types.LSLFloat)data[i]).value); 7870 parameters.Add(type, (float)((LSL_Float)data[i]).value);
7751 else if (data[i] is LSL_Types.LSLInteger) 7871 else if (data[i] is LSL_Integer)
7752 parameters.Add(type, (float)((LSL_Types.LSLInteger)data[i]).value); 7872 parameters.Add(type, (float)((LSL_Integer)data[i]).value);
7753 else parameters.Add(type, Convert.ToSingle(data[i])); 7873 else parameters.Add(type, Convert.ToSingle(data[i]));
7754 break; 7874 break;
7755 } 7875 }
@@ -7782,10 +7902,10 @@ namespace OpenSim.Region.ScriptEngine.Common
7782 presence.ControllingClient.SendClearFollowCamProperties(objectID); 7902 presence.ControllingClient.SendClearFollowCamProperties(objectID);
7783 } 7903 }
7784 7904
7785 public double llListStatistics(int operation, LSL_Types.list src) 7905 public LSL_Float llListStatistics(int operation, LSL_List src)
7786 { 7906 {
7787 m_host.AddScriptLPS(1); 7907 m_host.AddScriptLPS(1);
7788 LSL_Types.list nums = LSL_Types.list.ToDoubleList(src); 7908 LSL_List nums = LSL_List.ToDoubleList(src);
7789 switch (operation) 7909 switch (operation)
7790 { 7910 {
7791 case BuiltIn_Commands_BaseClass.LIST_STAT_RANGE: 7911 case BuiltIn_Commands_BaseClass.LIST_STAT_RANGE:
@@ -7815,19 +7935,19 @@ namespace OpenSim.Region.ScriptEngine.Common
7815 } 7935 }
7816 } 7936 }
7817 7937
7818 public LSL_Types.LSLInteger llGetUnixTime() 7938 public LSL_Integer llGetUnixTime()
7819 { 7939 {
7820 m_host.AddScriptLPS(1); 7940 m_host.AddScriptLPS(1);
7821 return Util.UnixTimeSinceEpoch(); 7941 return Util.UnixTimeSinceEpoch();
7822 } 7942 }
7823 7943
7824 public LSL_Types.LSLInteger llGetParcelFlags(LSL_Types.Vector3 pos) 7944 public LSL_Integer llGetParcelFlags(LSL_Vector pos)
7825 { 7945 {
7826 m_host.AddScriptLPS(1); 7946 m_host.AddScriptLPS(1);
7827 return (int)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y).landData.Flags; 7947 return (int)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y).landData.Flags;
7828 } 7948 }
7829 7949
7830 public LSL_Types.LSLInteger llGetRegionFlags() 7950 public LSL_Integer llGetRegionFlags()
7831 { 7951 {
7832 m_host.AddScriptLPS(1); 7952 m_host.AddScriptLPS(1);
7833 IEstateModule estate = World.RequestModuleInterface<IEstateModule>(); 7953 IEstateModule estate = World.RequestModuleInterface<IEstateModule>();
@@ -7836,7 +7956,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7836 return (int)estate.GetRegionFlags(); 7956 return (int)estate.GetRegionFlags();
7837 } 7957 }
7838 7958
7839 public string llXorBase64StringsCorrect(string str1, string str2) 7959 public LSL_String llXorBase64StringsCorrect(string str1, string str2)
7840 { 7960 {
7841 m_host.AddScriptLPS(1); 7961 m_host.AddScriptLPS(1);
7842 string ret = String.Empty; 7962 string ret = String.Empty;
@@ -7854,7 +7974,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7854 return llStringToBase64(ret); 7974 return llStringToBase64(ret);
7855 } 7975 }
7856 7976
7857 public string llHTTPRequest(string url, LSL_Types.list parameters, string body) 7977 public LSL_String llHTTPRequest(string url, LSL_List parameters, string body)
7858 { 7978 {
7859 // Partial implementation: support for parameter flags needed 7979 // Partial implementation: support for parameter flags needed
7860 // see http://wiki.secondlife.com/wiki/LlHTTPRequest 7980 // see http://wiki.secondlife.com/wiki/LlHTTPRequest
@@ -7931,7 +8051,7 @@ namespace OpenSim.Region.ScriptEngine.Common
7931 // ScriptSleep(100); 8051 // ScriptSleep(100);
7932 } 8052 }
7933 8053
7934 public LSL_Types.LSLInteger llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide) 8054 public LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide)
7935 { 8055 {
7936 m_host.AddScriptLPS(1); 8056 m_host.AddScriptLPS(1);
7937 8057
@@ -7994,11 +8114,11 @@ namespace OpenSim.Region.ScriptEngine.Common
7994 return 0; 8114 return 0;
7995 } 8115 }
7996 8116
7997 public LSL_Types.list llGetParcelPrimOwners(LSL_Types.Vector3 pos) 8117 public LSL_List llGetParcelPrimOwners(LSL_Vector pos)
7998 { 8118 {
7999 m_host.AddScriptLPS(1); 8119 m_host.AddScriptLPS(1);
8000 LandObject land = (LandObject)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y); 8120 LandObject land = (LandObject)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y);
8001 LSL_Types.list ret = new LSL_Types.list(); 8121 LSL_List ret = new LSL_List();
8002 if (land != null) 8122 if (land != null)
8003 { 8123 {
8004 foreach (KeyValuePair<UUID, int> d in land.getLandObjectOwners()) 8124 foreach (KeyValuePair<UUID, int> d in land.getLandObjectOwners())
@@ -8011,7 +8131,7 @@ namespace OpenSim.Region.ScriptEngine.Common
8011 return ret; 8131 return ret;
8012 } 8132 }
8013 8133
8014 public LSL_Types.LSLInteger llGetObjectPrimCount(string object_id) 8134 public LSL_Integer llGetObjectPrimCount(string object_id)
8015 { 8135 {
8016 m_host.AddScriptLPS(1); 8136 m_host.AddScriptLPS(1);
8017 SceneObjectPart part = World.GetSceneObjectPart(new UUID(object_id)); 8137 SceneObjectPart part = World.GetSceneObjectPart(new UUID(object_id));
@@ -8025,7 +8145,7 @@ namespace OpenSim.Region.ScriptEngine.Common
8025 } 8145 }
8026 } 8146 }
8027 8147
8028 public LSL_Types.LSLInteger llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide) 8148 public LSL_Integer llGetParcelMaxPrims(LSL_Vector pos, int sim_wide)
8029 { 8149 {
8030 m_host.AddScriptLPS(1); 8150 m_host.AddScriptLPS(1);
8031 // Alondria: This currently just is utilizing the normal grid's 0.22 prims/m2 calculation 8151 // Alondria: This currently just is utilizing the normal grid's 0.22 prims/m2 calculation
@@ -8055,36 +8175,36 @@ namespace OpenSim.Region.ScriptEngine.Common
8055 8175
8056 } 8176 }
8057 8177
8058 public LSL_Types.list llGetParcelDetails(LSL_Types.Vector3 pos, LSL_Types.list param) 8178 public LSL_List llGetParcelDetails(LSL_Vector pos, LSL_List param)
8059 { 8179 {
8060 m_host.AddScriptLPS(1); 8180 m_host.AddScriptLPS(1);
8061 LandData land = World.GetLandData((float)pos.x, (float)pos.y); 8181 LandData land = World.GetLandData((float)pos.x, (float)pos.y);
8062 if (land == null) 8182 if (land == null)
8063 { 8183 {
8064 return new LSL_Types.list(0); 8184 return new LSL_List(0);
8065 } 8185 }
8066 LSL_Types.list ret = new LSL_Types.list(); 8186 LSL_List ret = new LSL_List();
8067 foreach (object o in param.Data) 8187 foreach (object o in param.Data)
8068 { 8188 {
8069 switch (o.ToString()) 8189 switch (o.ToString())
8070 { 8190 {
8071 case "0": 8191 case "0":
8072 ret = ret + new LSL_Types.list(land.Name); 8192 ret = ret + new LSL_List(land.Name);
8073 break; 8193 break;
8074 case "1": 8194 case "1":
8075 ret = ret + new LSL_Types.list(land.Description); 8195 ret = ret + new LSL_List(land.Description);
8076 break; 8196 break;
8077 case "2": 8197 case "2":
8078 ret = ret + new LSL_Types.list(land.OwnerID.ToString()); 8198 ret = ret + new LSL_List(land.OwnerID.ToString());
8079 break; 8199 break;
8080 case "3": 8200 case "3":
8081 ret = ret + new LSL_Types.list(land.GroupID.ToString()); 8201 ret = ret + new LSL_List(land.GroupID.ToString());
8082 break; 8202 break;
8083 case "4": 8203 case "4":
8084 ret = ret + new LSL_Types.list(land.Area); 8204 ret = ret + new LSL_List(land.Area);
8085 break; 8205 break;
8086 default: 8206 default:
8087 ret = ret + new LSL_Types.list(0); 8207 ret = ret + new LSL_List(0);
8088 break; 8208 break;
8089 } 8209 }
8090 } 8210 }
@@ -8107,7 +8227,7 @@ namespace OpenSim.Region.ScriptEngine.Common
8107 // ScriptSleep(200); 8227 // ScriptSleep(200);
8108 } 8228 }
8109 8229
8110 public string llStringTrim(string src, int type) 8230 public LSL_String llStringTrim(string src, int type)
8111 { 8231 {
8112 m_host.AddScriptLPS(1); 8232 m_host.AddScriptLPS(1);
8113 if (type == (int)BuiltIn_Commands_BaseClass.STRING_TRIM_HEAD) { return src.TrimStart(); } 8233 if (type == (int)BuiltIn_Commands_BaseClass.STRING_TRIM_HEAD) { return src.TrimStart(); }
@@ -8116,10 +8236,10 @@ namespace OpenSim.Region.ScriptEngine.Common
8116 return src; 8236 return src;
8117 } 8237 }
8118 8238
8119 public LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args) 8239 public LSL_List llGetObjectDetails(string id, LSL_List args)
8120 { 8240 {
8121 m_host.AddScriptLPS(1); 8241 m_host.AddScriptLPS(1);
8122 LSL_Types.list ret = new LSL_Types.list(); 8242 LSL_List ret = new LSL_List();
8123 UUID key = new UUID(); 8243 UUID key = new UUID();
8124 if (UUID.TryParse(id, out key)) 8244 if (UUID.TryParse(id, out key))
8125 { 8245 {
@@ -8138,13 +8258,13 @@ namespace OpenSim.Region.ScriptEngine.Common
8138 ret.Add(""); 8258 ret.Add("");
8139 break; 8259 break;
8140 case "3": 8260 case "3":
8141 ret.Add(new LSL_Types.Vector3((double)av.AbsolutePosition.X, (double)av.AbsolutePosition.Y, (double)av.AbsolutePosition.Z)); 8261 ret.Add(new LSL_Vector((double)av.AbsolutePosition.X, (double)av.AbsolutePosition.Y, (double)av.AbsolutePosition.Z));
8142 break; 8262 break;
8143 case "4": 8263 case "4":
8144 ret.Add(new LSL_Types.Quaternion((double)av.Rotation.X, (double)av.Rotation.Y, (double)av.Rotation.Z, (double)av.Rotation.W)); 8264 ret.Add(new LSL_Rotation((double)av.Rotation.X, (double)av.Rotation.Y, (double)av.Rotation.Z, (double)av.Rotation.W));
8145 break; 8265 break;
8146 case "5": 8266 case "5":
8147 ret.Add(new LSL_Types.Vector3(av.Velocity.X, av.Velocity.Y, av.Velocity.Z)); 8267 ret.Add(new LSL_Vector(av.Velocity.X, av.Velocity.Y, av.Velocity.Z));
8148 break; 8268 break;
8149 case "6": 8269 case "6":
8150 ret.Add(id); 8270 ret.Add(id);
@@ -8173,13 +8293,13 @@ namespace OpenSim.Region.ScriptEngine.Common
8173 ret.Add(obj.Description); 8293 ret.Add(obj.Description);
8174 break; 8294 break;
8175 case "3": 8295 case "3":
8176 ret.Add(new LSL_Types.Vector3(obj.AbsolutePosition.X, obj.AbsolutePosition.Y, obj.AbsolutePosition.Z)); 8296 ret.Add(new LSL_Vector(obj.AbsolutePosition.X, obj.AbsolutePosition.Y, obj.AbsolutePosition.Z));
8177 break; 8297 break;
8178 case "4": 8298 case "4":
8179 ret.Add(new LSL_Types.Quaternion(obj.RotationOffset.X, obj.RotationOffset.Y, obj.RotationOffset.Z, obj.RotationOffset.W)); 8299 ret.Add(new LSL_Rotation(obj.RotationOffset.X, obj.RotationOffset.Y, obj.RotationOffset.Z, obj.RotationOffset.W));
8180 break; 8300 break;
8181 case "5": 8301 case "5":
8182 ret.Add(new LSL_Types.Vector3(obj.Velocity.X, obj.Velocity.Y, obj.Velocity.Z)); 8302 ret.Add(new LSL_Vector(obj.Velocity.X, obj.Velocity.Y, obj.Velocity.Z));
8183 break; 8303 break;
8184 case "6": 8304 case "6":
8185 ret.Add(obj.OwnerID.ToString()); 8305 ret.Add(obj.OwnerID.ToString());
@@ -8195,7 +8315,7 @@ namespace OpenSim.Region.ScriptEngine.Common
8195 return ret; 8315 return ret;
8196 } 8316 }
8197 } 8317 }
8198 return new LSL_Types.list(); 8318 return new LSL_List();
8199 } 8319 }
8200 8320
8201 8321
@@ -8232,7 +8352,7 @@ namespace OpenSim.Region.ScriptEngine.Common
8232 throw new Exception("LSL Runtime Error: " + msg); 8352 throw new Exception("LSL Runtime Error: " + msg);
8233 } 8353 }
8234 8354
8235 public string llGetNumberOfNotecardLines(string name) 8355 public LSL_String llGetNumberOfNotecardLines(string name)
8236 { 8356 {
8237 m_host.AddScriptLPS(1); 8357 m_host.AddScriptLPS(1);
8238 8358
@@ -8255,7 +8375,7 @@ namespace OpenSim.Region.ScriptEngine.Common
8255 // ScriptSleep(100); 8375 // ScriptSleep(100);
8256 } 8376 }
8257 8377
8258 public string llGetNotecardLine(string name, int line) 8378 public LSL_String llGetNotecardLine(string name, int line)
8259 { 8379 {
8260 m_host.AddScriptLPS(1); 8380 m_host.AddScriptLPS(1);
8261 8381
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs
index d4cf3f5..fa468bd 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs
@@ -27,6 +27,14 @@
27 27
28using OpenSim.Region.Environment.Interfaces; 28using OpenSim.Region.Environment.Interfaces;
29 29
30using LSL_Float = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLFloat;
31using LSL_Integer = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLInteger;
32using LSL_Key = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLString;
33using LSL_List = OpenSim.Region.ScriptEngine.Common.LSL_Types.list;
34using LSL_Rotation = OpenSim.Region.ScriptEngine.Common.LSL_Types.Quaternion;
35using LSL_String = OpenSim.Region.ScriptEngine.Common.LSL_Types.LSLString;
36using LSL_Vector = OpenSim.Region.ScriptEngine.Common.LSL_Types.Vector3;
37
30namespace OpenSim.Region.ScriptEngine.Common 38namespace OpenSim.Region.ScriptEngine.Common
31{ 39{
32 public interface LSL_BuiltIn_Commands_Interface 40 public interface LSL_BuiltIn_Commands_Interface
@@ -37,618 +45,347 @@ namespace OpenSim.Region.ScriptEngine.Common
37 45
38 ICommander GetCommander(string name); 46 ICommander GetCommander(string name);
39 47
40 double llSin(double f); 48 LSL_Integer llAbs(int i);
41 double llCos(double f); 49 LSL_Float llAcos(double val);
42 double llTan(double f); 50 void llAddToLandBanList(string avatar, double hours);
43 double llAtan2(double x, double y); 51 void llAddToLandPassList(string avatar, double hours);
44 double llSqrt(double f); 52 void llAdjustSoundVolume(double volume);
45 double llPow(double fbase, double fexponent); 53 void llAllowInventoryDrop(int add);
46 LSL_Types.LSLInteger llAbs(int i); 54 LSL_Float llAngleBetween(LSL_Rotation a, LSL_Rotation b);
47 double llFabs(double f); 55 void llApplyImpulse(LSL_Vector force, int local);
48 double llFrand(double mag); 56 void llApplyRotationalImpulse(LSL_Vector force, int local);
49 LSL_Types.LSLInteger llFloor(double f); 57 LSL_Float llAsin(double val);
50 LSL_Types.LSLInteger llCeil(double f); 58 LSL_Float llAtan2(double x, double y);
51 LSL_Types.LSLInteger llRound(double f); 59 void llAttachToAvatar(int attachment);
52 double llVecMag(LSL_Types.Vector3 v); 60 LSL_Key llAvatarOnSitTarget();
53 LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v); 61 LSL_Rotation llAxes2Rot(LSL_Vector fwd, LSL_Vector left, LSL_Vector up);
54 double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b); 62 LSL_Rotation llAxisAngle2Rot(LSL_Vector axis, double angle);
55 LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r); 63 LSL_Integer llBase64ToInteger(string str);
56 LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v); 64 LSL_String llBase64ToString(string str);
57 LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up); 65 void llBreakAllLinks();
58 LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r); 66 void llBreakLink(int linknum);
59 LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r); 67 LSL_Integer llCeil(double f);
60 LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r); 68 void llClearCameraParams();
61 LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end); 69 void llCloseRemoteDataChannel(string channel);
62 void llWhisper(int channelID, string text); 70 LSL_Float llCloud(LSL_Vector offset);
63 //void llSay(int channelID, string text); 71 void llCollisionFilter(string name, string id, int accept);
64 void llSay(int channelID, string text); 72 void llCollisionSound(string impact_sound, double impact_volume);
65 void llShout(int channelID, string text); 73 void llCollisionSprite(string impact_sprite);
66 void llRegionSay(int channelID, string text); 74 LSL_Float llCos(double f);
67 LSL_Types.LSLInteger llListen(int channelID, string name, string ID, string msg); 75 void llCreateLink(string target, int parent);
68 void llListenControl(int number, int active); 76 LSL_List llCSV2List(string src);
69 void llListenRemove(int number); 77 LSL_List llDeleteSubList(LSL_List src, int start, int end);
70 void llSensor(string name, string id, int type, double range, double arc); 78 LSL_String llDeleteSubString(string src, int start, int end);
71 void llSensorRepeat(string name, string id, int type, double range, double arc, double rate); 79 void llDetachFromAvatar();
72 void llSensorRemove(); 80 LSL_Vector llDetectedGrab(int number);
73 string llDetectedName(int number); 81 LSL_Integer llDetectedGroup(int number);
74 string llDetectedKey(int number); 82 LSL_Key llDetectedKey(int number);
75 string llDetectedOwner(int number); 83 LSL_Integer llDetectedLinkNumber(int number);
76 LSL_Types.LSLInteger llDetectedType(int number); 84 LSL_String llDetectedName(int number);
77 LSL_Types.Vector3 llDetectedPos(int number); 85 LSL_Key llDetectedOwner(int number);
78 LSL_Types.Vector3 llDetectedVel(int number); 86 LSL_Vector llDetectedPos(int number);
79 LSL_Types.Vector3 llDetectedGrab(int number); 87 LSL_Rotation llDetectedRot(int number);
80 LSL_Types.Quaternion llDetectedRot(int number); 88 LSL_Integer llDetectedType(int number);
81 LSL_Types.LSLInteger llDetectedGroup(int number); 89 LSL_Vector llDetectedTouchBinormal(int index);
82 LSL_Types.LSLInteger llDetectedLinkNumber(int number); 90 LSL_Integer llDetectedTouchFace(int index);
83 void llDie(); 91 LSL_Vector llDetectedTouchNormal(int index);
84 double llGround(LSL_Types.Vector3 offset); 92 LSL_Vector llDetectedTouchPos(int index);
85 double llCloud(LSL_Types.Vector3 offset); 93 LSL_Vector llDetectedTouchST(int index);
86 LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset); 94 LSL_Vector llDetectedTouchUV(int index);
87 void llSetStatus(int status, int value); 95 LSL_Vector llDetectedVel(int number);
88 LSL_Types.LSLInteger llGetStatus(int status); 96 void llDialog(string avatar, string message, LSL_List buttons, int chat_channel);
89 void llSetScale(LSL_Types.Vector3 scale); 97 void llDie();
90 LSL_Types.Vector3 llGetScale(); 98 LSL_String llDumpList2String(LSL_List src, string seperator);
91 void llSetColor(LSL_Types.Vector3 color, int face); 99 LSL_Integer llEdgeOfWorld(LSL_Vector pos, LSL_Vector dir);
92 double llGetAlpha(int face); 100 void llEjectFromLand(string pest);
93 void llSetAlpha(double alpha, int face); 101 void llEmail(string address, string subject, string message);
94 LSL_Types.Vector3 llGetColor(int face); 102 LSL_String llEscapeURL(string url);
95 void llSetTexture(string texture, int face); 103 LSL_Rotation llEuler2Rot(LSL_Vector v);
96 void llScaleTexture(double u, double v, int face); 104 LSL_Float llFabs(double f);
97 void llOffsetTexture(double u, double v, int face); 105 LSL_Integer llFloor(double f);
98 void llRotateTexture(double rotation, int face); 106 void llForceMouselook(int mouselook);
99 string llGetTexture(int face); 107 LSL_Float llFrand(double mag);
100 void llSetPos(LSL_Types.Vector3 pos); 108 LSL_Vector llGetAccel();
101 109 LSL_Integer llGetAgentInfo(string id);
102 //wiki: vector llGetPos() 110 LSL_Vector llGetAgentSize(string id);
103 LSL_Types.Vector3 llGetPos(); 111 LSL_Float llGetAlpha(int face);
104 //wiki: vector llGetLocalPos() 112 LSL_Float llGetAndResetTime();
105 LSL_Types.Vector3 llGetLocalPos(); 113 LSL_String llGetAnimation(string id);
106 //wiki: llSetRot(rotation rot) 114 LSL_List llGetAnimationList(string id);
107 void llSetRot(LSL_Types.Quaternion rot); 115 LSL_Integer llGetAttached();
108 //wiki: rotation llGetRot() 116 LSL_List llGetBoundingBox(string obj);
109 LSL_Types.Quaternion llGetRot(); 117 LSL_Vector llGetCameraPos();
110 //wiki: rotation llGetLocalRot() 118 LSL_Rotation llGetCameraRot();
111 LSL_Types.Quaternion llGetLocalRot(); 119 LSL_Vector llGetCenterOfMass();
112 //wiki: llSetForce(vector force, integer local) 120 LSL_Vector llGetColor(int face);
113 void llSetForce(LSL_Types.Vector3 force, int local); 121 LSL_String llGetCreator();
114 //wiki: vector llGetForce() 122 LSL_String llGetDate();
115 LSL_Types.Vector3 llGetForce(); 123 LSL_Float llGetEnergy();
116 //wiki: integer llTarget(vector position, double range) 124 LSL_Vector llGetForce();
117 LSL_Types.LSLInteger llTarget(LSL_Types.Vector3 position, double range); 125 LSL_Integer llGetFreeMemory();
118 //wiki: llTargetRemove(integer number) 126 LSL_Vector llGetGeometricCenter();
119 void llTargetRemove(int number); 127 LSL_Float llGetGMTclock();
120 //wiki: integer llRotTarget(rotation rot, double error) 128 LSL_Key llGetInventoryCreator(string item);
121 LSL_Types.LSLInteger llRotTarget(LSL_Types.Quaternion rot, double error); 129 LSL_Key llGetInventoryKey(string name);
122 //wiki: integer llRotTargetRemove(integer number) 130 LSL_String llGetInventoryName(int type, int number);
123 void llRotTargetRemove(int number); 131 LSL_Integer llGetInventoryNumber(int type);
124 //wiki: llMoveToTarget(vector target, double tau) 132 LSL_Integer llGetInventoryPermMask(string item, int mask);
125 void llMoveToTarget(LSL_Types.Vector3 target, double tau); 133 LSL_Integer llGetInventoryType(string name);
126 //wiki: llStopMoveToTarget() 134 LSL_Key llGetKey();
127 void llStopMoveToTarget(); 135 LSL_Key llGetLandOwnerAt(LSL_Vector pos);
128 //wiki: llApplyImpulse(vector force, integer local) 136 LSL_Key llGetLinkKey(int linknum);
129 void llApplyImpulse(LSL_Types.Vector3 force, int local); 137 LSL_String llGetLinkName(int linknum);
130 //wiki: llapplyRotationalImpulse(vector force, integer local) 138 LSL_Integer llGetLinkNumber();
131 void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local); 139 LSL_Integer llGetListEntryType(LSL_List src, int index);
132 //wiki: llSetTorque(vector torque, integer local) 140 LSL_Integer llGetListLength(LSL_List src);
133 void llSetTorque(LSL_Types.Vector3 torque, int local); 141 LSL_Vector llGetLocalPos();
134 //wiki: vector llGetTorque() 142 LSL_Rotation llGetLocalRot();
135 LSL_Types.Vector3 llGetTorque(); 143 LSL_Float llGetMass();
136 //wiki: llSeForceAndTorque(vector force, vector torque, integer local) 144 void llGetNextEmail(string address, string subject);
137 void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local); 145 LSL_String llGetNotecardLine(string name, int line);
138 //wiki: vector llGetVel() 146 LSL_Key llGetNumberOfNotecardLines(string name);
139 LSL_Types.Vector3 llGetVel(); 147 LSL_Integer llGetNumberOfPrims();
140 //wiki: vector llGetAccel() 148 LSL_Integer llGetNumberOfSides();
141 LSL_Types.Vector3 llGetAccel(); 149 LSL_String llGetObjectDesc();
142 //wiki: vector llGetOmega() 150 LSL_List llGetObjectDetails(string id, LSL_List args);
143 LSL_Types.Vector3 llGetOmega(); 151 LSL_Float llGetObjectMass(string id);
144 //wiki: double llGetTimeOfDay() 152 LSL_String llGetObjectName();
145 double llGetTimeOfDay(); 153 LSL_Integer llGetObjectPermMask(int mask);
146 //wiki: double llGetWallclock() 154 LSL_Integer llGetObjectPrimCount(string object_id);
147 double llGetWallclock(); 155 LSL_Vector llGetOmega();
148 //wiki: double llGetTime() 156 LSL_Key llGetOwner();
149 double llGetTime(); 157 LSL_Key llGetOwnerKey(string id);
150 //wiki: llResetTime() 158 LSL_List llGetParcelDetails(LSL_Vector pos, LSL_List param);
151 void llResetTime(); 159 LSL_Integer llGetParcelFlags(LSL_Vector pos);
152 //wiki: double llGetAndResetTime() 160 LSL_Integer llGetParcelMaxPrims(LSL_Vector pos, int sim_wide);
153 double llGetAndResetTime(); 161 LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide);
154 //wiki (deprecated) llSound(string sound, double volume, integer queue, integer loop) 162 LSL_List llGetParcelPrimOwners(LSL_Vector pos);
155 void llSound(); 163 LSL_Integer llGetPermissions();
156 //wiki: llPlaySound(string sound, double volume) 164 LSL_Key llGetPermissionsKey();
157 void llPlaySound(string sound, double volume); 165 LSL_Vector llGetPos();
158 //wiki: llLoopSound(string sound, double volume) 166 LSL_List llGetPrimitiveParams(LSL_List rules);
159 void llLoopSound(string sound, double volume); 167 LSL_Integer llGetRegionAgentCount();
160 //wiki: llLoopSoundMaster(string sound, double volume) 168 LSL_Vector llGetRegionCorner();
161 void llLoopSoundMaster(string sound, double volume); 169 LSL_Integer llGetRegionFlags();
162 //wiki: llLoopSoundSlave(string sound, double volume) 170 LSL_Float llGetRegionFPS();
163 void llLoopSoundSlave(string sound, double volume); 171 LSL_String llGetRegionName();
164 //wiki llPlaySoundSlave(string sound, double volume) 172 LSL_Float llGetRegionTimeDilation();
165 void llPlaySoundSlave(string sound, double volume); 173 LSL_Vector llGetRootPosition();
166 //wiki: llTriggerSound(string sound, double volume) 174 LSL_Rotation llGetRootRotation();
167 void llTriggerSound(string sound, double volume); 175 LSL_Rotation llGetRot();
168 //wiki: llStopSound() 176 LSL_Vector llGetScale();
169 void llStopSound(); 177 LSL_String llGetScriptName();
170 //wiki: llPreloadSound(string sound) 178 LSL_Integer llGetScriptState(string name);
171 void llPreloadSound(string sound); 179 LSL_String llGetSimulatorHostname();
172 //wiki: string llGetSubString(string src, integer start, integer end) 180 LSL_Integer llGetStartParameter();
173 string llGetSubString(string src, int start, int end); 181 LSL_Integer llGetStatus(int status);
174 //wiki: string llDeleteSubString(string src, integer start, integer end) 182 LSL_String llGetSubString(string src, int start, int end);
175 string llDeleteSubString(string src, int start, int end); 183 LSL_Vector llGetSunDirection();
176 //wiki string llInsertString(string dst, integer position, string src) 184 LSL_String llGetTexture(int face);
177 string llInsertString(string dst, int position, string src); 185 LSL_Vector llGetTextureOffset(int face);
178 //wiki: string llToUpper(string source) 186 LSL_Float llGetTextureRot(int side);
179 string llToUpper(string source); 187 LSL_Vector llGetTextureScale(int side);
180 //wiki: string llToLower(string source) 188 LSL_Float llGetTime();
181 string llToLower(string source); 189 LSL_Float llGetTimeOfDay();
182 //wiki: integer llGiveMoney(key destination, integer amount) 190 LSL_String llGetTimestamp();
183 LSL_Types.LSLInteger llGiveMoney(string destination, int amount); 191 LSL_Vector llGetTorque();
184 //wiki: (deprecated) 192 LSL_Integer llGetUnixTime();
185 void llMakeExplosion(); 193 LSL_Vector llGetVel();
186 //wiki: (deprecated) 194 LSL_Float llGetWallclock();
187 void llMakeFountain(); 195 void llGiveInventory(string destination, string inventory);
188 //wiki: (deprecated) 196 void llGiveInventoryList(string destination, string category, LSL_List inventory);
189 void llMakeSmoke(); 197 LSL_Integer llGiveMoney(string destination, int amount);
190 //wiki: (deprecated) 198 void llGodLikeRezObject(string inventory, LSL_Vector pos);
191 void llMakeFire(); 199 LSL_Float llGround(LSL_Vector offset);
192 //wiki: llRezObject(string inventory, vector pos, vector rel, rotation rot, integer param) 200 LSL_Vector llGroundContour(LSL_Vector offset);
193 void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Vector3 vel, LSL_Types.Quaternion rot, int param); 201 LSL_Vector llGroundNormal(LSL_Vector offset);
194 //wiki: llLookAt(vector target, double strength, double damping) 202 void llGroundRepel(double height, int water, double tau);
195 void llLookAt(LSL_Types.Vector3 target, double strength, double damping); 203 LSL_Vector llGroundSlope(LSL_Vector offset);
196 //wiki: llStopLookAt() 204 LSL_String llHTTPRequest(string url, LSL_List parameters, string body);
197 void llStopLookAt(); 205 LSL_String llInsertString(string dst, int position, string src);
198 //wiki: llSetTimerEvent(double sec) 206 void llInstantMessage(string user, string message);
199 void llSetTimerEvent(double sec); 207 LSL_String llIntegerToBase64(int number);
200 //wiki: llSleep(double sec) 208 LSL_String llKey2Name(string id);
201 void llSleep(double sec); 209 LSL_String llList2CSV(LSL_List src);
202 //wiki: double llGetMass() 210 LSL_Float llList2Float(LSL_List src, int index);
203 double llGetMass(); 211 LSL_Integer llList2Integer(LSL_List src, int index);
204 //wiki: llCollisionFilter(string name, key id, integer accept) 212 LSL_Key llList2Key(LSL_List src, int index);
205 void llCollisionFilter(string name, string id, int accept); 213 LSL_List llList2List(LSL_List src, int start, int end);
206 //wiki: llTakeControls(integer controls, integer accept, integer pass_on) 214 LSL_List llList2ListStrided(LSL_List src, int start, int end, int stride);
207 void llTakeControls(int controls, int accept, int pass_on); 215 LSL_Rotation llList2Rot(LSL_List src, int index);
208 //wiki: llReleaseControls() 216 LSL_String llList2String(LSL_List src, int index);
209 void llReleaseControls(); 217 LSL_Vector llList2Vector(LSL_List src, int index);
210 //wiki: llAttachToAvatar(integer attachment) 218 LSL_Integer llListen(int channelID, string name, string ID, string msg);
211 void llAttachToAvatar(int attachment); 219 void llListenControl(int number, int active);
212 //wiki: llDetachFromAvatar() 220 void llListenRemove(int number);
213 void llDetachFromAvatar(); 221 LSL_Integer llListFindList(LSL_List src, LSL_List test);
214 //wiki: (deprecated) llTakeCamera(key avatar) 222 LSL_List llListInsertList(LSL_List dest, LSL_List src, int start);
215 void llTakeCamera(string avatar); 223 LSL_List llListRandomize(LSL_List src, int stride);
216 //wiki: (deprecated) llReleaseCamera(key avatar) 224 LSL_List llListReplaceList(LSL_List dest, LSL_List src, int start, int end);
217 void llReleaseCamera(string avatar); 225 LSL_List llListSort(LSL_List src, int stride, int ascending);
218 //wiki: key llGetOwner() 226 LSL_Float llListStatistics(int operation, LSL_List src);
219 string llGetOwner(); 227 void llLoadURL(string avatar_id, string message, string url);
220 //wiki: llInstantMessage(key user, string message) 228 LSL_Float llLog(double val);
221 void llInstantMessage(string user, string message); 229 LSL_Float llLog10(double val);
222 //wiki: llEmail(string address, string subject, string message) 230 void llLookAt(LSL_Vector target, double strength, double damping);
223 void llEmail(string address, string subject, string message); 231 void llLoopSound(string sound, double volume);
224 //wiki: llGetNextEmail(string address, string subject) 232 void llLoopSoundMaster(string sound, double volume);
225 void llGetNextEmail(string address, string subject); 233 void llLoopSoundSlave(string sound, double volume);
226 //wiki: key llGetKey() 234 void llMakeExplosion();
227 string llGetKey(); 235 void llMakeFire();
228 //wiki: llSetBuoyancy(double buoyancy) 236 void llMakeFountain();
229 void llSetBuoyancy(double buoyancy); 237 void llMakeSmoke();
230 //wiki: llSetHoverHeight(double height, integer water, double tau) 238 void llMapDestination(string simname, LSL_Vector pos, LSL_Vector look_at);
231 void llSetHoverHeight(double height, int water, double tau); 239 LSL_String llMD5String(string src, int nonce);
232 //wiki: llStopHover 240 void llMessageLinked(int linknum, int num, string str, string id);
233 void llStopHover(); 241 void llMinEventDelay(double delay);
234 //wiki: llMinEventDelay(double delay) 242 void llModifyLand(int action, int brush);
235 void llMinEventDelay(double delay); 243 LSL_Integer llModPow(int a, int b, int c);
236 //wiki: (deprecated) llSoundPreload() 244 void llMoveToTarget(LSL_Vector target, double tau);
237 void llSoundPreload(); 245 void llOffsetTexture(double u, double v, int face);
238 //wiki: llRotLookAt(rotation target, double strength, double damping) 246 void llOpenRemoteDataChannel();
239 void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping); 247 LSL_Integer llOverMyLand(string id);
240 //wiki: integer llStringLength(string str) 248 void llOwnerSay(string msg);
241 LSL_Types.LSLInteger llStringLength(string str); 249 void llParcelMediaCommandList(LSL_List commandList);
242 //wiki: llStartAnimation(string anim) 250 LSL_List llParcelMediaQuery(LSL_List aList);
243 void llStartAnimation(string anim); 251 LSL_List llParseString2List(string str, LSL_List separators, LSL_List spacers);
244 //wiki: llStopAnimation(string anim) 252 LSL_List llParseStringKeepNulls(string src, LSL_List seperators, LSL_List spacers);
245 void llStopAnimation(string anim); 253 void llParticleSystem(LSL_List rules);
246 //wiki: (deprecated) llPointAt 254 void llPassCollisions(int pass);
247 void llPointAt(); 255 void llPassTouches(int pass);
248 //wiki: (deprecated) llStopPointAt 256 void llPlaySound(string sound, double volume);
249 void llStopPointAt(); 257 void llPlaySoundSlave(string sound, double volume);
250 //wiki: llTargetOmega(vector axis, double spinrate, double gain) 258 void llPointAt();
251 void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain); 259 LSL_Float llPow(double fbase, double fexponent);
252 //wiki: integer llGetStartParameter() 260 void llPreloadSound(string sound);
253 LSL_Types.LSLInteger llGetStartParameter(); 261 void llPushObject(string target, LSL_Vector impulse, LSL_Vector ang_impulse, int local);
254 //wiki: llGodLikeRezObject(key inventory, vector pos) 262 void llRefreshPrimURL();
255 void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos); 263 void llRegionSay(int channelID, string text);
256 //wiki: llRequestPermissions(key agent, integer perm) 264 void llReleaseCamera(string avatar);
257 void llRequestPermissions(string agent, int perm); 265 void llReleaseControls();
258 //wiki: key llGetPermissionsKey() 266 void llRemoteDataReply(string channel, string message_id, string sdata, int idata);
259 string llGetPermissionsKey(); 267 void llRemoteDataSetRegion();
260 //wiki: integer llGetPermissions() 268 void llRemoteLoadScript();
261 LSL_Types.LSLInteger llGetPermissions(); 269 void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param);
262 //wiki integer llGetLinkNumber() 270 void llRemoveFromLandBanList(string avatar);
263 LSL_Types.LSLInteger llGetLinkNumber(); 271 void llRemoveFromLandPassList(string avatar);
264 //wiki: llSetLinkColor(integer linknumber, vector color, integer face) 272 void llRemoveInventory(string item);
265 void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face); 273 void llRemoveVehicleFlags(int flags);
266 //wiki: llCreateLink(key target, integer parent) 274 LSL_Key llRequestAgentData(string id, int data);
267 void llCreateLink(string target, int parent); 275 LSL_Key llRequestInventoryData(string name);
268 //wiki: llBreakLink(integer linknum) 276 void llRequestPermissions(string agent, int perm);
269 void llBreakLink(int linknum); 277 LSL_Key llRequestSimulatorData(string simulator, int data);
270 //wiki: llBreakAllLinks() 278 void llResetLandBanList();
271 void llBreakAllLinks(); 279 void llResetLandPassList();
272 //wiki: key llGetLinkKey(integer linknum) 280 void llResetOtherScript(string name);
273 string llGetLinkKey(int linknum); 281 void llResetScript();
274 //wiki: llGetLinkName(integer linknum) 282 void llResetTime();
275 string llGetLinkName(int linknum); 283 void llRezAtRoot(string inventory, LSL_Vector position, LSL_Vector velocity, LSL_Rotation rot, int param);
276 //wiki: integer llGetInventoryNumber(integer type) 284 void llRezObject(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param);
277 LSL_Types.LSLInteger llGetInventoryNumber(int type); 285 LSL_Float llRot2Angle(LSL_Rotation rot);
278 //wiki: string llGetInventoryName(integer type, integer number) 286 LSL_Vector llRot2Axis(LSL_Rotation rot);
279 string llGetInventoryName(int type, int number); 287 LSL_Vector llRot2Euler(LSL_Rotation r);
280 //wiki: llSetScriptState(string name, integer run) 288 LSL_Vector llRot2Fwd(LSL_Rotation r);
281 void llSetScriptState(string name, int run); 289 LSL_Vector llRot2Left(LSL_Rotation r);
282 //wiki: double llGetEnergy() 290 LSL_Vector llRot2Up(LSL_Rotation r);
283 double llGetEnergy(); 291 void llRotateTexture(double rotation, int face);
284 //wiki: llGiveInventory(key destination, string inventory) 292 LSL_Rotation llRotBetween(LSL_Vector start, LSL_Vector end);
285 void llGiveInventory(string destination, string inventory); 293 void llRotLookAt(LSL_Rotation target, double strength, double damping);
286 //wiki: llRemoveInventory(string item) 294 LSL_Integer llRotTarget(LSL_Rotation rot, double error);
287 void llRemoveInventory(string item); 295 void llRotTargetRemove(int number);
288 //wiki: llSetText(string text, vector color, double alpha) 296 LSL_Integer llRound(double f);
289 void llSetText(string text, LSL_Types.Vector3 color, double alpha); 297 LSL_Integer llSameGroup(string agent);
290 //wiki: double llWater(vector offset) 298 void llSay(int channelID, string text);
291 double llWater(LSL_Types.Vector3 offset); 299 void llScaleTexture(double u, double v, int face);
292 //wiki: llPassTouches(integer pass) 300 LSL_Integer llScriptDanger(LSL_Vector pos);
293 void llPassTouches(int pass); 301 LSL_Key llSendRemoteData(string channel, string dest, int idata, string sdata);
294 //wiki: key llRequestAgentData(key id, integer data) 302 void llSensor(string name, string id, int type, double range, double arc);
295 string llRequestAgentData(string id, int data); 303 void llSensorRemove();
296 //wiki: key llRequestInventoryData(string name) 304 void llSensorRepeat(string name, string id, int type, double range, double arc, double rate);
297 string llRequestInventoryData(string name); 305 void llSetAlpha(double alpha, int face);
298 //wiki: llSetDamage(double damage) 306 void llSetBuoyancy(double buoyancy);
299 void llSetDamage(double damage); 307 void llSetCameraAtOffset(LSL_Vector offset);
300 //wiki: llTeleportAgentHome(key agent) 308 void llSetCameraEyeOffset(LSL_Vector offset);
301 void llTeleportAgentHome(string agent); 309 void llSetCameraParams(LSL_List rules);
302 //wiki: llModifyLand(integer action, integer brush) 310 void llSetClickAction(int action);
303 void llModifyLand(int action, int brush); 311 void llSetColor(LSL_Vector color, int face);
304 //wiki: llCollisionSound(string impact_sound, double impact_volume) 312 void llSetDamage(double damage);
305 void llCollisionSound(string impact_sound, double impact_volume); 313 void llSetForce(LSL_Vector force, int local);
306 //wiki: llCollisionSprite(string impact_sprite) 314 void llSetForceAndTorque(LSL_Vector force, LSL_Vector torque, int local);
307 void llCollisionSprite(string impact_sprite); 315 void llSetHoverHeight(double height, int water, double tau);
308 //wiki: string llGetAnimation(key id) 316 void llSetInventoryPermMask(string item, int mask, int value);
309 string llGetAnimation(string id); 317 void llSetLinkAlpha(int linknumber, double alpha, int face);
310 //wiki: llResetScript() 318 void llSetLinkColor(int linknumber, LSL_Vector color, int face);
311 void llResetScript(); 319 void llSetLinkPrimitiveParams(int linknumber, LSL_List rules);
312 //wiki: llMessageLinked(integer linknum, integer num, string str, key id) 320 void llSetLinkTexture(int linknumber, string texture, int face);
313 void llMessageLinked(int linknum, int num, string str, string id); 321 void llSetLocalRot(LSL_Rotation rot);
314 //wiki: llPushObject(key target, vector impulse, vector ang_impulse, integer local) 322 void llSetObjectDesc(string desc);
315 void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local); 323 void llSetObjectName(string name);
316 //wiki: llPassCollisions(integer pass) 324 void llSetObjectPermMask(int mask, int value);
317 void llPassCollisions(int pass); 325 void llSetParcelMusicURL(string url);
318 //wiki: string llGetScriptName() 326 void llSetPayPrice(int price, LSL_List quick_pay_buttons);
319 string llGetScriptName(); 327 void llSetPos(LSL_Vector pos);
320 //wiki: integer llGetNumberOfSides() 328 void llSetPrimitiveParams(LSL_List rules);
321 LSL_Types.LSLInteger llGetNumberOfSides(); 329 void llSetPrimURL();
322 //wiki: rotation llAxisAngle2Rot(vector axis, double angle) 330 void llSetRemoteScriptAccessPin(int pin);
323 LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle); 331 void llSetRot(LSL_Rotation rot);
324 //wiki: vector llRot2Axis(rotation rot) 332 void llSetScale(LSL_Vector scale);
325 LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot); 333 void llSetScriptState(string name, int run);
326 //wiki: double llRot2Angle(rotation rot); 334 void llSetSitText(string text);
327 double llRot2Angle(LSL_Types.Quaternion rot); 335 void llSetSoundQueueing(int queue);
328 //wiki: double llAcos(double val) 336 void llSetSoundRadius(double radius);
329 double llAcos(double val); 337 void llSetStatus(int status, int value);
330 //wiki: double llAsin(double val) 338 void llSetText(string text, LSL_Vector color, double alpha);
331 double llAsin(double val); 339 void llSetTexture(string texture, int face);
332 //wiki: double llAngleBetween(rotation a, rotation b) 340 void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate);
333 double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b); 341 void llSetTimerEvent(double sec);
334 //wiki: string llGetInventoryKey(string name) 342 void llSetTorque(LSL_Vector torque, int local);
335 string llGetInventoryKey(string name); 343 void llSetTouchText(string text);
336 //wiki: llAllowInventoryDrop(integer add) 344 void llSetVehicleFlags(int flags);
337 void llAllowInventoryDrop(int add); 345 void llSetVehicleFloatParam(int param, float value);
338 //wiki: vector llGetSunDirection() 346 void llSetVehicleRotationParam(int param, LSL_Rotation rot);
339 LSL_Types.Vector3 llGetSunDirection(); 347 void llSetVehicleType(int type);
340 //wiki: vector llGetTextureOffset(integer face) 348 void llSetVehicleVectorParam(int param, LSL_Vector vec);
341 LSL_Types.Vector3 llGetTextureOffset(int face); 349 void llShout(int channelID, string text);
342 //wiki: vector llGetTextureScale(integer side) 350 LSL_Float llSin(double f);
343 LSL_Types.Vector3 llGetTextureScale(int side); 351 void llSitTarget(LSL_Vector offset, LSL_Rotation rot);
344 //wiki: double llGetTextureRot(integer side) 352 void llSleep(double sec);
345 double llGetTextureRot(int side); 353 void llSound();
346 //wiki: integer llSubStringIndex(string source, string pattern) 354 void llSoundPreload();
347 LSL_Types.LSLInteger llSubStringIndex(string source, string pattern); 355 LSL_Float llSqrt(double f);
348 //wiki: key llGetOwnerKey(key id) 356 void llStartAnimation(string anim);
349 string llGetOwnerKey(string id); 357 void llStopAnimation(string anim);
350 //wiki: vector llGetCenterOfMass() 358 void llStopHover();
351 LSL_Types.Vector3 llGetCenterOfMass(); 359 void llStopLookAt();
352 //wiki: list llListSort(list src, integer stride, integer ascending) 360 void llStopMoveToTarget();
353 LSL_Types.list llListSort(LSL_Types.list src, int stride, int ascending); 361 void llStopPointAt();
354 //integer llGetListLength(list src) 362 void llStopSound();
355 LSL_Types.LSLInteger llGetListLength(LSL_Types.list src); 363 LSL_Integer llStringLength(string str);
356 //wiki: integer llList2Integer(list src, integer index) 364 LSL_String llStringToBase64(string str);
357 LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index); 365 LSL_String llStringTrim(string src, int type);
358 //wiki: double llList2double(list src, integer index) 366 LSL_Integer llSubStringIndex(string source, string pattern);
359 double llList2Float(LSL_Types.list src, int index); 367 void llTakeCamera(string avatar);
360 double osList2Double(LSL_Types.list src, int index); 368 void llTakeControls(int controls, int accept, int pass_on);
361 //wiki: string llList2String(list src, integer index) 369 LSL_Float llTan(double f);
362 string llList2String(LSL_Types.list src, int index); 370 LSL_Integer llTarget(LSL_Vector position, double range);
363 //wiki: key llList2Key(list src, integer index) 371 void llTargetOmega(LSL_Vector axis, double spinrate, double gain);
364 string llList2Key(LSL_Types.list src, int index); 372 void llTargetRemove(int number);
365 //wiki: vector llList2Vector(list src, integer index) 373 void llTeleportAgentHome(string agent);
366 LSL_Types.Vector3 llList2Vector(LSL_Types.list src, int index); 374 void llTextBox(string avatar, string message, int chat_channel);
367 //wiki rotation llList2Rot(list src, integer index) 375 LSL_String llToLower(string source);
368 LSL_Types.Quaternion llList2Rot(LSL_Types.list src, int index); 376 LSL_String llToUpper(string source);
369 //wiki: list llList2List(list src, integer start, integer end) 377 void llTriggerSound(string sound, double volume);
370 LSL_Types.list llList2List(LSL_Types.list src, int start, int end); 378 void llTriggerSoundLimited(string sound, double volume, LSL_Vector top_north_east, LSL_Vector bottom_south_west);
371 //wiki: llDeleteSubList(list src, integer start, integer end) 379 LSL_String llUnescapeURL(string url);
372 LSL_Types.list llDeleteSubList(LSL_Types.list src, int start, int end); 380 void llUnSit(string id);
373 //wiki: integer llGetListEntryType(list src, integer index) 381 LSL_Float llVecDist(LSL_Vector a, LSL_Vector b);
374 LSL_Types.LSLInteger llGetListEntryType(LSL_Types.list src, int index); 382 LSL_Float llVecMag(LSL_Vector v);
375 //wiki: string llList2CSV(list src) 383 LSL_Vector llVecNorm(LSL_Vector v);
376 string llList2CSV(LSL_Types.list src); 384 void llVolumeDetect(int detect);
377 //wiki: list llCSV2List(string src) 385 LSL_Float llWater(LSL_Vector offset);
378 LSL_Types.list llCSV2List(string src); 386 void llWhisper(int channelID, string text);
379 //wiki: list llListRandomize(list src, integer stride) 387 LSL_Vector llWind(LSL_Vector offset);
380 LSL_Types.list llListRandomize(LSL_Types.list src, int stride); 388 void llXorBase64Strings();
381 //wiki: list llList2ListStrided(list src, integer start, integer end, integer stride) 389 LSL_String llXorBase64StringsCorrect(string str1, string str2);
382 LSL_Types.list llList2ListStrided(LSL_Types.list src, int start, int end, int stride);
383 //wiki: vector llGetRegionCorner()
384 LSL_Types.Vector3 llGetRegionCorner();
385 //wiki: list llListInsertList(list dest, list src, integer start)
386 LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int start);
387 //wiki: integer llListFindList(list src, list test)
388 LSL_Types.LSLInteger llListFindList(LSL_Types.list src, LSL_Types.list test);
389 //wiki: string llGetObjectName()
390 string llGetObjectName();
391 //wiki: llSetObjectName(string name)
392 void llSetObjectName(string name);
393 //wiki: string llGetDate()
394 string llGetDate();
395 //wiki: integer llEdgeOfWorld(vector pos, vector dir)
396 LSL_Types.LSLInteger llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir);
397 //wiki: integer llGetAgentInfo(key id)
398 LSL_Types.LSLInteger llGetAgentInfo(string id);
399 //wiki: llAdjustSoundVolume(double volume)
400 void llAdjustSoundVolume(double volume);
401 //wiki: llSetSoundQueueing(integer queue)
402 void llSetSoundQueueing(int queue);
403 //wiki: llSetSoundRadius(double radius)
404 void llSetSoundRadius(double radius);
405 //wiki: string llKey2Name(key id)
406 string llKey2Name(string id);
407 //wiki: llSetTextureAnim(integer mode, integer face, integer sizex, integer sizey, double start, double length, double rate)
408 void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate);
409 //wiki: llTriggerSoundLimited(string sound, double volume, vector top_north_east, vector bottom_south_west)
410 void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east,
411 LSL_Types.Vector3 bottom_south_west);
412
413 //wiki: llEjectFromLand(key pest)
414 void llEjectFromLand(string pest);
415 LSL_Types.list llParseString2List(string str, LSL_Types.list separators, LSL_Types.list spacers);
416 //wiki: integer llOverMyLand(key id)
417 LSL_Types.LSLInteger llOverMyLand(string id);
418 //wiki: key llGetLandOwnerAt(vector pos)
419 string llGetLandOwnerAt(LSL_Types.Vector3 pos);
420 //wiki: key llGetNotecardLine(string name, integer line)
421 string llGetNotecardLine(string name, int line);
422 //wiki: vector llGetAgentSize(key id)
423 LSL_Types.Vector3 llGetAgentSize(string id);
424 //wiki: integer llSameGroup(key agent)
425 LSL_Types.LSLInteger llSameGroup(string agent);
426 //wiki: llUnSit(key id)
427 void llUnSit(string id);
428 //wiki: vector llGroundSlope(vector offset)
429 LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset);
430 //wiki: vector llGroundNormal(vector offset)
431 LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset);
432 //wiki: vector llGroundContour(vector offset)
433 LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset);
434 //wiki: integer llGetAttached()
435 LSL_Types.LSLInteger llGetAttached();
436 //wiki: integer llGetFreeMemory()
437 LSL_Types.LSLInteger llGetFreeMemory();
438 //wiki: string llGetRegionName()
439 string llGetRegionName();
440 //wiki: double llGetRegionTimeDilation()
441 double llGetRegionTimeDilation();
442 //wiki: double llGetRegionFPS()
443 double llGetRegionFPS();
444 //wiki: llParticleSystem(List<Object> rules
445 void llParticleSystem(LSL_Types.list rules);
446 //wiki: llGroundRepel(double height, integer water, double tau)
447 void llGroundRepel(double height, int water, double tau);
448 //wiki: llGiveInventoryList(string destination, string category, LSL_Types.list inventory)
449 void llGiveInventoryList(string destination, string category, LSL_Types.list inventory);
450 //wiki: llSetVehicleType(integer type)
451 void llSetVehicleType(int type);
452 //wiki: llSetVehicledoubleParam(integer param, double value)
453 void llSetVehicledoubleParam(int param, double value);
454 // wiki: llSetVehicleFloatParam(integer param, float value)
455 void llSetVehicleFloatParam(int param, float value);
456 //wiki: llSetVehicleVectorParam(integer param, vector vec)
457 void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec);
458 //wiki: llSetVehicleRotationParam(integer param, rotation rot)
459 void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot);
460 //wiki: llSetVehicleFlags(integer flags)
461 void llSetVehicleFlags(int flags);
462 //wiki: llRemoveVehicleFlags(integer flags)
463 void llRemoveVehicleFlags(int flags);
464 //wiki: llSitTarget(vector offset, rotation rot)
465 void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot);
466 //wiki key llAvatarOnSitTarget()
467 string llAvatarOnSitTarget();
468 //wiki: llAddToLandPassList(key avatar, double hours)
469 void llAddToLandPassList(string avatar, double hours);
470 //wiki: llSetTouchText(string text)
471 void llSetTouchText(string text);
472 //wiki: llSetSitText(string text)
473 void llSetSitText(string text);
474 //wiki: llSetCameraEyeOffset(vector offset)
475 void llSetCameraEyeOffset(LSL_Types.Vector3 offset);
476 //wiki: llSeteCameraAtOffset(vector offset)
477 void llSetCameraAtOffset(LSL_Types.Vector3 offset);
478 //
479 string llDumpList2String(LSL_Types.list src, string seperator);
480 //wiki: integer llScriptDanger(vector pos)
481 LSL_Types.LSLInteger llScriptDanger(LSL_Types.Vector3 pos);
482 //wiki: llDialog(key avatar, string message, list buttons, integer chat_channel)
483 void llDialog(string avatar, string message, LSL_Types.list buttons, int chat_channel);
484 //wiki: llVolumeDetect(integer detect)
485 void llVolumeDetect(int detect);
486 //wiki: llResetOtherScript(string name)
487 void llResetOtherScript(string name);
488 //wiki: integer llGetScriptState(string name)
489 LSL_Types.LSLInteger llGetScriptState(string name);
490 //wiki: (deprecated)
491 void llRemoteLoadScript();
492 //wiki: llSetRemoteScriptAccessPin(integer pin)
493 void llSetRemoteScriptAccessPin(int pin);
494 //wiki: llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer start_param)
495 void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param);
496 //wiki: llOpenRemoteDataChannel()
497 void llOpenRemoteDataChannel();
498 //wiki: key llSendRemoteData(key channel, string dest, integer idata, string sdata)
499 string llSendRemoteData(string channel, string dest, int idata, string sdata);
500 //wiki: llRemoteDataReply(key channel, key message_id, string sdata, integer idata)
501 void llRemoteDataReply(string channel, string message_id, string sdata, int idata);
502 //wiki: llCloseRemoteDataChannel(key channel)
503 void llCloseRemoteDataChannel(string channel);
504 //wiki: string llMD5String(string src, integer nonce)
505 string llMD5String(string src, int nonce);
506 //wiki: llSetPrimitiveParams(list rules)
507 void llSetPrimitiveParams(LSL_Types.list rules);
508 //wiki: llSetLinkPrimitiveParams(integer linknumber, list rules)
509 void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules);
510 //wiki: string llStringToBase64(string str)
511 string llStringToBase64(string str);
512 //wiki: string llBase64ToString(string str)
513 string llBase64ToString(string str);
514 //wiki: (deprecated)
515 void llXorBase64Strings();
516 //wiki: llRemoteDataSetRegion()
517 void llRemoteDataSetRegion();
518 //wiki: double llLog10(double val)
519 double llLog10(double val);
520 //wiki: double llLog(double val)
521 double llLog(double val);
522 //wiki: list llGetAnimationList(key id)
523 LSL_Types.list llGetAnimationList(string id);
524 //wiki: llSetParcelMusicURL(string url)
525 void llSetParcelMusicURL(string url);
526 //wiki: vector llGetRootPosition()
527 LSL_Types.Vector3 llGetRootPosition();
528 //wiki: rotation llGetRootRotation()
529 LSL_Types.Quaternion llGetRootRotation();
530 //wiki: string llGetObjectDesc()
531 string llGetObjectDesc();
532 //wiki: llSetObjectDesc(string desc)
533 void llSetObjectDesc(string desc);
534 //wiki: key llGetCreator()
535 string llGetCreator();
536 //wiki: string llGetTimestamp()
537 string llGetTimestamp();
538 //wiki: llSetLinkAlpha(integer linknumber, double alpha, integer face)
539 void llSetLinkAlpha(int linknumber, double alpha, int face);
540 //wiki: integer llGetNumberOfPrims()
541 LSL_Types.LSLInteger llGetNumberOfPrims();
542 //wiki: key llGetNumberOfNotecardLines(string name)
543 string llGetNumberOfNotecardLines(string name);
544 //wiki: list llGetBoundingBox(key object)
545 LSL_Types.list llGetBoundingBox(string obj);
546 //wiki: vector llGetGeometricCenter()
547 LSL_Types.Vector3 llGetGeometricCenter();
548 //wiki: list llGetPrimitiveParams(list rules)
549 LSL_Types.list llGetPrimitiveParams(LSL_Types.list rules);
550 //wiki: string llIntegerToBase64(integer number)
551 string llIntegerToBase64(int number);
552 //wiki integer llBase64ToInteger(string str)
553 LSL_Types.LSLInteger llBase64ToInteger(string str);
554 //wiki: double llGetGMTclock()
555 double llGetGMTclock();
556 //wiki: string llGetSimulatorHostname()
557 string llGetSimulatorHostname();
558 //llSetLocalRot(rotation rot)
559 void llSetLocalRot(LSL_Types.Quaternion rot);
560 //wiki: list llParseStringKeepNulls(string src, list separators, list spacers)
561 LSL_Types.list llParseStringKeepNulls(string src, LSL_Types.list seperators, LSL_Types.list spacers);
562 //wiki: llRezAtRoot(string inventory, vector position, vector velocity, rotation rot, integer param)
563 void llRezAtRoot(string inventory, LSL_Types.Vector3 position, LSL_Types.Vector3 velocity,
564 LSL_Types.Quaternion rot, int param);
565
566 //wiki: integer llGetObjectPermMask(integer mask)
567 LSL_Types.LSLInteger llGetObjectPermMask(int mask);
568 //wiki: llSetObjectPermMask(integer mask, integer value)
569 void llSetObjectPermMask(int mask, int value);
570 //wiki integer llGetInventoryPermMask(string item, integer mask)
571 LSL_Types.LSLInteger llGetInventoryPermMask(string item, int mask);
572 //wiki: llSetInventoryPermMask(string item, integer mask, integer value)
573 void llSetInventoryPermMask(string item, int mask, int value);
574 //wiki: key llGetInventoryCreator(string item)
575 string llGetInventoryCreator(string item);
576 //wiki: llOwnerSay(string msg)
577 void llOwnerSay(string msg);
578 //wiki: key llRequestSimulatorData(string simulator, integer data)
579 string llRequestSimulatorData(string simulator, int data);
580 //wiki: llForceMouselook(integer mouselook)
581 void llForceMouselook(int mouselook);
582 //wiki: double llGetObjectMass(key id)
583 double llGetObjectMass(string id);
584 LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end);
585 //wiki: llLoadURL(key avatar_id, string message, string url)
586 void llLoadURL(string avatar_id, string message, string url);
587 //wiki: llParcelMediaCommandList(list commandList)
588 void llParcelMediaCommandList(LSL_Types.list commandList);
589 LSL_Types.list llParcelMediaQuery(LSL_Types.list aList);
590 //wiki integer llModPow(integer a, integer b, integer c)
591 LSL_Types.LSLInteger llModPow(int a, int b, int c);
592 //wiki: integer llGetInventoryType(string name)
593 LSL_Types.LSLInteger llGetInventoryType(string name);
594 //wiki: llSetPayPrice(integer price, list quick_pay_buttons)
595 void llSetPayPrice(int price, LSL_Types.list quick_pay_buttons);
596 //wiki: vector llGetCameraPos()
597 LSL_Types.Vector3 llGetCameraPos();
598 //wiki rotation llGetCameraRot()
599 LSL_Types.Quaternion llGetCameraRot();
600 //wiki: (deprecated)
601 void llSetPrimURL();
602 //wiki: (deprecated)
603 void llRefreshPrimURL();
604 //wiki: string llEscapeURL(string url)
605 string llEscapeURL(string url);
606 //wiki: string llUnescapeURL(string url)
607 string llUnescapeURL(string url);
608 //wiki: llMapDestination(string simname, vector pos, vector look_at)
609 void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at);
610 //wiki: llAddToLandBanList(key avatar, double hours)
611 void llAddToLandBanList(string avatar, double hours);
612 //wiki: llRemoveFromLandPassList(key avatar)
613 void llRemoveFromLandPassList(string avatar);
614 //wiki: llRemoveFromLandBanList(key avatar)
615 void llRemoveFromLandBanList(string avatar);
616 //wiki: llSetCameraParams(list rules)
617 void llSetCameraParams(LSL_Types.list rules);
618 //wiki: llClearCameraParams()
619 void llClearCameraParams();
620 //wiki: double llListStatistics(integer operation, list src)
621 double llListStatistics(int operation, LSL_Types.list src);
622 //wiki: integer llGetUnixTime()
623 LSL_Types.LSLInteger llGetUnixTime();
624 //wiki: integer llGetParcelFlags(vector pos)
625 LSL_Types.LSLInteger llGetParcelFlags(LSL_Types.Vector3 pos);
626 //wiki: integer llGetRegionFlags()
627 LSL_Types.LSLInteger llGetRegionFlags();
628 //wiki: string llXorBase64StringsCorrect(string str1, string str2)
629 string llXorBase64StringsCorrect(string str1, string str2);
630 string llHTTPRequest(string url, LSL_Types.list parameters, string body);
631 //wiki: llResetLandBanList()
632 void llResetLandBanList();
633 //wiki: llResetLandPassList()
634 void llResetLandPassList();
635 //wiki: integer llGetParcelPrimCount(vector pos, integer category, integer sim_wide)
636 LSL_Types.LSLInteger llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide);
637 //wiki: list llGetParcelPrimOwners(vector pos)
638 LSL_Types.list llGetParcelPrimOwners(LSL_Types.Vector3 pos);
639 //wiki: integer llGetObjectPrimCount(key object_id)
640 LSL_Types.LSLInteger llGetObjectPrimCount(string object_id);
641 //wiki: integer llGetParcelMaxPrims(vector pos, integer sim_wide)
642 LSL_Types.LSLInteger llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide);
643 //wiki: llGetParcelDetails(vector pos, list params)
644 LSL_Types.list llGetParcelDetails(LSL_Types.Vector3 pos, LSL_Types.list param);
645 //wiki: llSetLinkTexture(integer linknumber, string texture, integer face)
646 void llSetLinkTexture(int linknumber, string texture, int face);
647 //wiki: string llStringTrim(string src, int type)
648 string llStringTrim(string src, int type);
649 //wiki: LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args)
650 LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args);
651
652 void osSetRegionWaterHeight(double height);
653 } 390 }
654} 391}
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs
index bff2101..21646ea 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs
@@ -123,7 +123,7 @@ namespace OpenSim.Region.ScriptEngine.Common
123 123
124 Vector3 vector = (Vector3)o; 124 Vector3 vector = (Vector3)o;
125 125
126 return (x == vector.x && y == vector.y && z == vector.y); 126 return (x == vector.x && y == vector.y && z == vector.z);
127 } 127 }
128 128
129 public static Vector3 operator -(Vector3 vector) 129 public static Vector3 operator -(Vector3 vector)
@@ -419,6 +419,80 @@ namespace OpenSim.Region.ScriptEngine.Common
419 m_data=new Object[0]; 419 m_data=new Object[0];
420 return m_data; 420 return m_data;
421 } 421 }
422
423 set {m_data = value; }
424 }
425
426 // Member functions to obtain item as specific types.
427 // For cases where implicit conversions would apply if items
428 // were not in a list (e.g. integer to float, but not float
429 // to integer) functions check for alternate types so as to
430 // down-cast from Object to the correct type.
431 // Note: no checks for item index being valid are performed
432
433 public LSL_Types.LSLFloat GetLSLFloatItem( int itemIndex )
434 {
435 if (m_data[itemIndex] is LSL_Types.LSLInteger)
436 {
437 return (LSL_Types.LSLInteger)m_data[itemIndex];
438 }
439 else if (m_data[itemIndex] is Int32)
440 {
441 return new LSL_Types.LSLFloat((int)m_data[itemIndex]);
442 }
443 else if (m_data[itemIndex] is float)
444 {
445 return new LSL_Types.LSLFloat((float)m_data[itemIndex]);
446 }
447 else if (m_data[itemIndex] is Double)
448 {
449 return new LSL_Types.LSLFloat((Double)m_data[itemIndex]);
450 }
451 else
452 {
453 return (LSL_Types.LSLFloat)m_data[itemIndex];
454 }
455 }
456
457 public LSL_Types.LSLString GetLSLStringItem(int itemIndex)
458 {
459 if (m_data[itemIndex] is LSL_Types.key)
460 {
461 return (LSL_Types.key)m_data[itemIndex];
462 }
463 else if (m_data[itemIndex] is String)
464 {
465 return new LSL_Types.LSLString((string)m_data[itemIndex]);
466 }
467 else
468 {
469 return (LSL_Types.LSLString)m_data[itemIndex];
470 }
471 }
472
473 public LSL_Types.LSLInteger GetLSLIntegerItem(int itemIndex)
474 {
475 if (m_data[itemIndex] is LSL_Types.LSLInteger)
476 return (LSL_Types.LSLInteger)m_data[itemIndex];
477 else if (m_data[itemIndex] is Int32)
478 return new LSLInteger((int)m_data[itemIndex]);
479 else
480 throw new InvalidCastException();
481 }
482
483 public LSL_Types.Vector3 GetVector3Item(int itemIndex)
484 {
485 return (LSL_Types.Vector3)m_data[itemIndex];
486 }
487
488 public LSL_Types.Quaternion GetQuaternionItem(int itemIndex)
489 {
490 return (LSL_Types.Quaternion)m_data[itemIndex];
491 }
492
493 public LSL_Types.key GetKeyItem(int itemIndex)
494 {
495 return (LSL_Types.key)m_data[itemIndex];
422 } 496 }
423 497
424 public static list operator +(list a, list b) 498 public static list operator +(list a, list b)
@@ -436,19 +510,19 @@ namespace OpenSim.Region.ScriptEngine.Common
436 m_data.SetValue(o, Length - 1); 510 m_data.SetValue(o, Length - 1);
437 } 511 }
438 512
439 public static list operator +(list a, string s) 513 public static list operator +(list a, LSLString s)
440 { 514 {
441 a.ExtendAndAdd(s); 515 a.ExtendAndAdd(s);
442 return a; 516 return a;
443 } 517 }
444 518
445 public static list operator +(list a, int i) 519 public static list operator +(list a, LSLInteger i)
446 { 520 {
447 a.ExtendAndAdd(i); 521 a.ExtendAndAdd(i);
448 return a; 522 return a;
449 } 523 }
450 524
451 public static list operator +(list a, double d) 525 public static list operator +(list a, LSLFloat d)
452 { 526 {
453 a.ExtendAndAdd(d); 527 a.ExtendAndAdd(d);
454 return a; 528 return a;
@@ -1167,6 +1241,11 @@ namespace OpenSim.Region.ScriptEngine.Common
1167 return k.value; 1241 return k.value;
1168 } 1242 }
1169 1243
1244 static public implicit operator LSLString(key k)
1245 {
1246 return k.value;
1247 }
1248
1170 public static bool operator ==(key k1, key k2) 1249 public static bool operator ==(key k1, key k2)
1171 { 1250 {
1172 return k1.value == k2.value; 1251 return k1.value == k2.value;
@@ -1190,6 +1269,11 @@ namespace OpenSim.Region.ScriptEngine.Common
1190 return value.GetHashCode(); 1269 return value.GetHashCode();
1191 } 1270 }
1192 1271
1272 public override string ToString()
1273 {
1274 return value;
1275 }
1276
1193 #endregion 1277 #endregion
1194 } 1278 }
1195 1279
@@ -1476,25 +1560,25 @@ namespace OpenSim.Region.ScriptEngine.Common
1476 return new LSLInteger(i1.value / i2); 1560 return new LSLInteger(i1.value / i2);
1477 } 1561 }
1478 1562
1479 static public LSLFloat operator +(LSLInteger i1, double f) 1563// static public LSLFloat operator +(LSLInteger i1, double f)
1480 { 1564// {
1481 return new LSLFloat((double)i1.value + f); 1565// return new LSLFloat((double)i1.value + f);
1482 } 1566// }
1483 1567//
1484 static public LSLFloat operator -(LSLInteger i1, double f) 1568// static public LSLFloat operator -(LSLInteger i1, double f)
1485 { 1569// {
1486 return new LSLFloat((double)i1.value - f); 1570// return new LSLFloat((double)i1.value - f);
1487 } 1571// }
1488 1572//
1489 static public LSLFloat operator *(LSLInteger i1, double f) 1573// static public LSLFloat operator *(LSLInteger i1, double f)
1490 { 1574// {
1491 return new LSLFloat((double)i1.value * f); 1575// return new LSLFloat((double)i1.value * f);
1492 } 1576// }
1493 1577//
1494 static public LSLFloat operator /(LSLInteger i1, double f) 1578// static public LSLFloat operator /(LSLInteger i1, double f)
1495 { 1579// {
1496 return new LSLFloat((double)i1.value / f); 1580// return new LSLFloat((double)i1.value / f);
1497 } 1581// }
1498 1582
1499 static public LSLInteger operator -(LSLInteger i) 1583 static public LSLInteger operator -(LSLInteger i)
1500 { 1584 {
@@ -1585,6 +1669,11 @@ namespace OpenSim.Region.ScriptEngine.Common
1585 1669
1586 #region Operators 1670 #region Operators
1587 1671
1672 static public explicit operator float(LSLFloat f)
1673 {
1674 return (float)f.value;
1675 }
1676
1588 static public explicit operator int(LSLFloat f) 1677 static public explicit operator int(LSLFloat f)
1589 { 1678 {
1590 return (int)f.value; 1679 return (int)f.value;
@@ -1619,7 +1708,17 @@ namespace OpenSim.Region.ScriptEngine.Common
1619 1708
1620 static public explicit operator LSLFloat(string s) 1709 static public explicit operator LSLFloat(string s)
1621 { 1710 {
1622 return new LSLFloat(double.Parse(s)); 1711 Regex r = new Regex("^[ ]*-?[0-9]*\\.?[0-9]*[eE]?-?[0-9]*");
1712 Match m = r.Match(s);
1713 string v = m.Groups[0].Value;
1714
1715 while (v.Length > 0 && v.Substring(0, 1) == " ")
1716 v = v.Substring(1);
1717
1718 if (v == String.Empty)
1719 v = "0";
1720
1721 return new LSLFloat(double.Parse(v));
1623 } 1722 }
1624 1723
1625 static public implicit operator LSLFloat(double d) 1724 static public implicit operator LSLFloat(double d)
diff --git a/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs
index 264a586..c9551ae 100644
--- a/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs
@@ -580,6 +580,24 @@ namespace OpenSim.Region.ScriptEngine.Common
580 } 580 }
581 } 581 }
582 582
583 public void osSetParcelMediaURL(string url)
584 {
585 m_host.AddScriptLPS(1);
586 UUID landowner = World.GetLandOwner(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
587
588 if (landowner == UUID.Zero)
589 {
590 return;
591 }
592
593 if (landowner != m_host.ObjectOwner)
594 {
595 return;
596 }
597
598 World.SetLandMediaURL(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y, url);
599 }
600
583 public string osGetScriptEngineName() 601 public string osGetScriptEngineName()
584 { 602 {
585 m_host.AddScriptLPS(1); 603 m_host.AddScriptLPS(1);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 110ece4..512fcd9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -50,6 +50,14 @@ using OpenSim.Region.ScriptEngine.Shared.ScriptBase;
50using OpenSim.Region.ScriptEngine.Interfaces; 50using OpenSim.Region.ScriptEngine.Interfaces;
51using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces; 51using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
52 52
53using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
54using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
55using LSL_Key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
56using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
57using LSL_Rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
58using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
59using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
60
53namespace OpenSim.Region.ScriptEngine.Shared.Api 61namespace OpenSim.Region.ScriptEngine.Shared.Api
54{ 62{
55 /// <summary> 63 /// <summary>
@@ -87,6 +95,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
87 AsyncCommands = (AsyncCommandManager)ScriptEngine.AsyncCommands; 95 AsyncCommands = (AsyncCommandManager)ScriptEngine.AsyncCommands;
88 } 96 }
89 97
98 private DateTime m_timer = DateTime.Now;
99 private bool m_waitingForScriptAnswer=false;
90 protected void ScriptSleep(int delay) 100 protected void ScriptSleep(int delay)
91 { 101 {
92 delay = (int)((float)delay * m_ScriptDelayFactor); 102 delay = (int)((float)delay * m_ScriptDelayFactor);
@@ -95,8 +105,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
95 System.Threading.Thread.Sleep(delay); 105 System.Threading.Thread.Sleep(delay);
96 } 106 }
97 107
98 private DateTime m_timer = DateTime.Now;
99 private bool m_waitingForScriptAnswer=false;
100 108
101 109
102 // Object never expires 110 // Object never expires
@@ -252,55 +260,55 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
252 } 260 }
253 261
254 //These are the implementations of the various ll-functions used by the LSL scripts. 262 //These are the implementations of the various ll-functions used by the LSL scripts.
255 public LSL_Types.LSLFloat llSin(double f) 263 public LSL_Float llSin(double f)
256 { 264 {
257 m_host.AddScriptLPS(1); 265 m_host.AddScriptLPS(1);
258 return (double)Math.Sin(f); 266 return (double)Math.Sin(f);
259 } 267 }
260 268
261 public LSL_Types.LSLFloat llCos(double f) 269 public LSL_Float llCos(double f)
262 { 270 {
263 m_host.AddScriptLPS(1); 271 m_host.AddScriptLPS(1);
264 return (double)Math.Cos(f); 272 return (double)Math.Cos(f);
265 } 273 }
266 274
267 public LSL_Types.LSLFloat llTan(double f) 275 public LSL_Float llTan(double f)
268 { 276 {
269 m_host.AddScriptLPS(1); 277 m_host.AddScriptLPS(1);
270 return (double)Math.Tan(f); 278 return (double)Math.Tan(f);
271 } 279 }
272 280
273 public LSL_Types.LSLFloat llAtan2(double x, double y) 281 public LSL_Float llAtan2(double x, double y)
274 { 282 {
275 m_host.AddScriptLPS(1); 283 m_host.AddScriptLPS(1);
276 return (double)Math.Atan2(y, x); 284 return (double)Math.Atan2(y, x);
277 } 285 }
278 286
279 public LSL_Types.LSLFloat llSqrt(double f) 287 public LSL_Float llSqrt(double f)
280 { 288 {
281 m_host.AddScriptLPS(1); 289 m_host.AddScriptLPS(1);
282 return (double)Math.Sqrt(f); 290 return (double)Math.Sqrt(f);
283 } 291 }
284 292
285 public LSL_Types.LSLFloat llPow(double fbase, double fexponent) 293 public LSL_Float llPow(double fbase, double fexponent)
286 { 294 {
287 m_host.AddScriptLPS(1); 295 m_host.AddScriptLPS(1);
288 return (double)Math.Pow(fbase, fexponent); 296 return (double)Math.Pow(fbase, fexponent);
289 } 297 }
290 298
291 public LSL_Types.LSLInteger llAbs(int i) 299 public LSL_Integer llAbs(int i)
292 { 300 {
293 m_host.AddScriptLPS(1); 301 m_host.AddScriptLPS(1);
294 return (int)Math.Abs(i); 302 return (int)Math.Abs(i);
295 } 303 }
296 304
297 public LSL_Types.LSLFloat llFabs(double f) 305 public LSL_Float llFabs(double f)
298 { 306 {
299 m_host.AddScriptLPS(1); 307 m_host.AddScriptLPS(1);
300 return (double)Math.Abs(f); 308 return (double)Math.Abs(f);
301 } 309 }
302 310
303 public LSL_Types.LSLFloat llFrand(double mag) 311 public LSL_Float llFrand(double mag)
304 { 312 {
305 m_host.AddScriptLPS(1); 313 m_host.AddScriptLPS(1);
306 lock (Util.RandomClass) 314 lock (Util.RandomClass)
@@ -309,44 +317,44 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
309 } 317 }
310 } 318 }
311 319
312 public LSL_Types.LSLInteger llFloor(double f) 320 public LSL_Integer llFloor(double f)
313 { 321 {
314 m_host.AddScriptLPS(1); 322 m_host.AddScriptLPS(1);
315 return (int)Math.Floor(f); 323 return (int)Math.Floor(f);
316 } 324 }
317 325
318 public LSL_Types.LSLInteger llCeil(double f) 326 public LSL_Integer llCeil(double f)
319 { 327 {
320 m_host.AddScriptLPS(1); 328 m_host.AddScriptLPS(1);
321 return (int)Math.Ceiling(f); 329 return (int)Math.Ceiling(f);
322 } 330 }
323 331
324 // Xantor 01/May/2008 fixed midpointrounding (2.5 becomes 3.0 instead of 2.0, default = ToEven) 332 // Xantor 01/May/2008 fixed midpointrounding (2.5 becomes 3.0 instead of 2.0, default = ToEven)
325 public LSL_Types.LSLInteger llRound(double f) 333 public LSL_Integer llRound(double f)
326 { 334 {
327 m_host.AddScriptLPS(1); 335 m_host.AddScriptLPS(1);
328 return (int)Math.Round(f, MidpointRounding.AwayFromZero); 336 return (int)Math.Round(f, MidpointRounding.AwayFromZero);
329 } 337 }
330 338
331 //This next group are vector operations involving squaring and square root. ckrinke 339 //This next group are vector operations involving squaring and square root. ckrinke
332 public LSL_Types.LSLFloat llVecMag(LSL_Types.Vector3 v) 340 public LSL_Float llVecMag(LSL_Vector v)
333 { 341 {
334 m_host.AddScriptLPS(1); 342 m_host.AddScriptLPS(1);
335 return LSL_Types.Vector3.Mag(v); 343 return LSL_Vector.Mag(v);
336 } 344 }
337 345
338 public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v) 346 public LSL_Vector llVecNorm(LSL_Vector v)
339 { 347 {
340 m_host.AddScriptLPS(1); 348 m_host.AddScriptLPS(1);
341 double mag = LSL_Types.Vector3.Mag(v); 349 double mag = LSL_Vector.Mag(v);
342 LSL_Types.Vector3 nor = new LSL_Types.Vector3(); 350 LSL_Vector nor = new LSL_Vector();
343 nor.x = v.x / mag; 351 nor.x = v.x / mag;
344 nor.y = v.y / mag; 352 nor.y = v.y / mag;
345 nor.z = v.z / mag; 353 nor.z = v.z / mag;
346 return nor; 354 return nor;
347 } 355 }
348 356
349 public LSL_Types.LSLFloat llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b) 357 public LSL_Float llVecDist(LSL_Vector a, LSL_Vector b)
350 { 358 {
351 m_host.AddScriptLPS(1); 359 m_host.AddScriptLPS(1);
352 double dx = a.x - b.x; 360 double dx = a.x - b.x;
@@ -369,23 +377,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
369 377
370 // Old implementation of llRot2Euler, now normalized 378 // Old implementation of llRot2Euler, now normalized
371 379
372 public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) 380 public LSL_Vector llRot2Euler(LSL_Rotation r)
373 { 381 {
374 m_host.AddScriptLPS(1); 382 m_host.AddScriptLPS(1);
375 //This implementation is from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions. ckrinke 383 //This implementation is from http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions. ckrinke
376 LSL_Types.Quaternion t = new LSL_Types.Quaternion(r.x * r.x, r.y * r.y, r.z * r.z, r.s * r.s); 384 LSL_Rotation t = new LSL_Rotation(r.x * r.x, r.y * r.y, r.z * r.z, r.s * r.s);
377 double m = (t.x + t.y + t.z + t.s); 385 double m = (t.x + t.y + t.z + t.s);
378 if (m == 0) return new LSL_Types.Vector3(); 386 if (m == 0) return new LSL_Vector();
379 double n = 2 * (r.y * r.s + r.x * r.z); 387 double n = 2 * (r.y * r.s + r.x * r.z);
380 double p = m * m - n * n; 388 double p = m * m - n * n;
381 if (p > 0) 389 if (p > 0)
382 return new LSL_Types.Vector3(NormalizeAngle(Math.Atan2(2.0 * (r.x * r.s - r.y * r.z), (-t.x - t.y + t.z + t.s))), 390 return new LSL_Vector(NormalizeAngle(Math.Atan2(2.0 * (r.x * r.s - r.y * r.z), (-t.x - t.y + t.z + t.s))),
383 NormalizeAngle(Math.Atan2(n, Math.Sqrt(p))), 391 NormalizeAngle(Math.Atan2(n, Math.Sqrt(p))),
384 NormalizeAngle(Math.Atan2(2.0 * (r.z * r.s - r.x * r.y), (t.x - t.y - t.z + t.s)))); 392 NormalizeAngle(Math.Atan2(2.0 * (r.z * r.s - r.x * r.y), (t.x - t.y - t.z + t.s))));
385 else if (n > 0) 393 else if (n > 0)
386 return new LSL_Types.Vector3(0.0, Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z))); 394 return new LSL_Vector(0.0, Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z)));
387 else 395 else
388 return new LSL_Types.Vector3(0.0, -Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z))); 396 return new LSL_Vector(0.0, -Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z)));
389 } 397 }
390 398
391 /* From wiki: 399 /* From wiki:
@@ -433,7 +441,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
433 * Apparently in some cases this is better from a numerical precision perspective? 441 * Apparently in some cases this is better from a numerical precision perspective?
434 */ 442 */
435 443
436 public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) 444 public LSL_Rotation llEuler2Rot(LSL_Vector v)
437 { 445 {
438 m_host.AddScriptLPS(1); 446 m_host.AddScriptLPS(1);
439 447
@@ -451,10 +459,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
451 z = s1*s2*c3+c1*c2*s3; 459 z = s1*s2*c3+c1*c2*s3;
452 s = c1*c2*c3-s1*s2*s3; 460 s = c1*c2*c3-s1*s2*s3;
453 461
454 return new LSL_Types.Quaternion(x, y, z, s); 462 return new LSL_Rotation(x, y, z, s);
455 } 463 }
456 464
457 public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) 465 public LSL_Rotation llAxes2Rot(LSL_Vector fwd, LSL_Vector left, LSL_Vector up)
458 { 466 {
459 m_host.AddScriptLPS(1); 467 m_host.AddScriptLPS(1);
460 double x, y, z, s; 468 double x, y, z, s;
@@ -487,7 +495,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
487 if (f == 5) { z = -z; } 495 if (f == 5) { z = -z; }
488 if (f == 6) { y = -y; } 496 if (f == 6) { y = -y; }
489 497
490 LSL_Types.Quaternion result = new LSL_Types.Quaternion(x, y, z, s); 498 LSL_Rotation result = new LSL_Rotation(x, y, z, s);
491 499
492 // a hack to correct a few questionable angles :( 500 // a hack to correct a few questionable angles :(
493 if (llVecDist(llRot2Fwd(result), fwd) > 0.001 || llVecDist(llRot2Left(result), left) > 0.001) 501 if (llVecDist(llRot2Fwd(result), fwd) > 0.001 || llVecDist(llRot2Left(result), left) > 0.001)
@@ -496,7 +504,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
496 return result; 504 return result;
497 } 505 }
498 506
499 public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r) 507 public LSL_Vector llRot2Fwd(LSL_Rotation r)
500 { 508 {
501 m_host.AddScriptLPS(1); 509 m_host.AddScriptLPS(1);
502 510
@@ -518,10 +526,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
518 x = r.x * r.x - r.y * r.y - r.z * r.z + r.s * r.s; 526 x = r.x * r.x - r.y * r.y - r.z * r.z + r.s * r.s;
519 y = 2 * (r.x * r.y + r.z * r.s); 527 y = 2 * (r.x * r.y + r.z * r.s);
520 z = 2 * (r.x * r.z - r.y * r.s); 528 z = 2 * (r.x * r.z - r.y * r.s);
521 return (new LSL_Types.Vector3(x, y, z)); 529 return (new LSL_Vector(x, y, z));
522 } 530 }
523 531
524 public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r) 532 public LSL_Vector llRot2Left(LSL_Rotation r)
525 { 533 {
526 m_host.AddScriptLPS(1); 534 m_host.AddScriptLPS(1);
527 535
@@ -543,10 +551,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
543 x = 2 * (r.x * r.y - r.z * r.s); 551 x = 2 * (r.x * r.y - r.z * r.s);
544 y = -r.x * r.x + r.y * r.y - r.z * r.z + r.s * r.s; 552 y = -r.x * r.x + r.y * r.y - r.z * r.z + r.s * r.s;
545 z = 2 * (r.x * r.s + r.y * r.z); 553 z = 2 * (r.x * r.s + r.y * r.z);
546 return (new LSL_Types.Vector3(x, y, z)); 554 return (new LSL_Vector(x, y, z));
547 } 555 }
548 556
549 public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r) 557 public LSL_Vector llRot2Up(LSL_Rotation r)
550 { 558 {
551 m_host.AddScriptLPS(1); 559 m_host.AddScriptLPS(1);
552 double x, y, z, m; 560 double x, y, z, m;
@@ -567,18 +575,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
567 x = 2 * (r.x * r.z + r.y * r.s); 575 x = 2 * (r.x * r.z + r.y * r.s);
568 y = 2 * (-r.x * r.s + r.y * r.z); 576 y = 2 * (-r.x * r.s + r.y * r.z);
569 z = -r.x * r.x - r.y * r.y + r.z * r.z + r.s * r.s; 577 z = -r.x * r.x - r.y * r.y + r.z * r.z + r.s * r.s;
570 return (new LSL_Types.Vector3(x, y, z)); 578 return (new LSL_Vector(x, y, z));
571 } 579 }
572 580
573 public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b) 581 public LSL_Rotation llRotBetween(LSL_Vector a, LSL_Vector b)
574 { 582 {
575 //A and B should both be normalized 583 //A and B should both be normalized
576 m_host.AddScriptLPS(1); 584 m_host.AddScriptLPS(1);
577 double dotProduct = LSL_Types.Vector3.Dot(a, b); 585 double dotProduct = LSL_Vector.Dot(a, b);
578 LSL_Types.Vector3 crossProduct = LSL_Types.Vector3.Cross(a, b); 586 LSL_Vector crossProduct = LSL_Vector.Cross(a, b);
579 double magProduct = LSL_Types.Vector3.Mag(a) * LSL_Types.Vector3.Mag(b); 587 double magProduct = LSL_Vector.Mag(a) * LSL_Vector.Mag(b);
580 double angle = Math.Acos(dotProduct / magProduct); 588 double angle = Math.Acos(dotProduct / magProduct);
581 LSL_Types.Vector3 axis = LSL_Types.Vector3.Norm(crossProduct); 589 LSL_Vector axis = LSL_Vector.Norm(crossProduct);
582 double s = Math.Sin(angle / 2); 590 double s = Math.Sin(angle / 2);
583 591
584 double x = axis.x * s; 592 double x = axis.x * s;
@@ -587,9 +595,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
587 double w = Math.Cos(angle / 2); 595 double w = Math.Cos(angle / 2);
588 596
589 if (Double.IsNaN(x) || Double.IsNaN(y) || Double.IsNaN(z) || Double.IsNaN(w)) 597 if (Double.IsNaN(x) || Double.IsNaN(y) || Double.IsNaN(z) || Double.IsNaN(w))
590 return new LSL_Types.Quaternion(0.0f, 0.0f, 0.0f, 1.0f); 598 return new LSL_Rotation(0.0f, 0.0f, 0.0f, 1.0f);
591 599
592 return new LSL_Types.Quaternion((float)x, (float)y, (float)z, (float)w); 600 return new LSL_Rotation((float)x, (float)y, (float)z, (float)w);
593 } 601 }
594 602
595 public void llWhisper(int channelID, string text) 603 public void llWhisper(int channelID, string text)
@@ -651,7 +659,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
651 wComm.DeliverMessage(ChatTypeEnum.Region, channelID, m_host.Name, m_host.UUID, text); 659 wComm.DeliverMessage(ChatTypeEnum.Region, channelID, m_host.Name, m_host.UUID, text);
652 } 660 }
653 661
654 public LSL_Types.LSLInteger llListen(int channelID, string name, string ID, string msg) 662 public LSL_Integer llListen(int channelID, string name, string ID, string msg)
655 { 663 {
656 m_host.AddScriptLPS(1); 664 m_host.AddScriptLPS(1);
657 UUID keyID; 665 UUID keyID;
@@ -726,7 +734,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
726 return SensedObject.Name; 734 return SensedObject.Name;
727 } 735 }
728 736
729 public LSL_Types.LSLString llDetectedName(int number) 737 public LSL_String llDetectedName(int number)
730 { 738 {
731 m_host.AddScriptLPS(1); 739 m_host.AddScriptLPS(1);
732 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number); 740 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number);
@@ -735,7 +743,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
735 return d.Name; 743 return d.Name;
736 } 744 }
737 745
738 public LSL_Types.LSLString llDetectedKey(int number) 746 public LSL_String llDetectedKey(int number)
739 { 747 {
740 m_host.AddScriptLPS(1); 748 m_host.AddScriptLPS(1);
741 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number); 749 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number);
@@ -744,7 +752,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
744 return d.Key.ToString(); 752 return d.Key.ToString();
745 } 753 }
746 754
747 public LSL_Types.LSLString llDetectedOwner(int number) 755 public LSL_String llDetectedOwner(int number)
748 { 756 {
749 m_host.AddScriptLPS(1); 757 m_host.AddScriptLPS(1);
750 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number); 758 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number);
@@ -753,71 +761,113 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
753 return d.Owner.ToString(); 761 return d.Owner.ToString();
754 } 762 }
755 763
756 public LSL_Types.LSLInteger llDetectedType(int number) 764 public LSL_Integer llDetectedType(int number)
757 { 765 {
758 m_host.AddScriptLPS(1); 766 m_host.AddScriptLPS(1);
759 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number); 767 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number);
760 if (d == null) 768 if (d == null)
761 return 0; 769 return 0;
762 return new LSL_Types.LSLInteger(d.Type); 770 return new LSL_Integer(d.Type);
763 } 771 }
764 772
765 public LSL_Types.Vector3 llDetectedPos(int number) 773 public LSL_Vector llDetectedPos(int number)
766 { 774 {
767 m_host.AddScriptLPS(1); 775 m_host.AddScriptLPS(1);
768 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number); 776 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number);
769 if (d == null) 777 if (d == null)
770 return new LSL_Types.Vector3(); 778 return new LSL_Vector();
771 return d.Position; 779 return d.Position;
772 } 780 }
773 781
774 public LSL_Types.Vector3 llDetectedVel(int number) 782 public LSL_Vector llDetectedVel(int number)
775 { 783 {
776 m_host.AddScriptLPS(1); 784 m_host.AddScriptLPS(1);
777 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number); 785 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number);
778 if (d == null) 786 if (d == null)
779 return new LSL_Types.Vector3(); 787 return new LSL_Vector();
780 return d.Velocity; 788 return d.Velocity;
781 } 789 }
782 790
783 public LSL_Types.Vector3 llDetectedGrab(int number) 791 public LSL_Vector llDetectedGrab(int number)
784 { 792 {
785 m_host.AddScriptLPS(1); 793 m_host.AddScriptLPS(1);
786 DetectParams parms = m_ScriptEngine.GetDetectParams(m_itemID, number); 794 DetectParams parms = m_ScriptEngine.GetDetectParams(m_itemID, number);
787 if (parms == null) 795 if (parms == null)
788 return new LSL_Types.Vector3(0, 0, 0); 796 return new LSL_Vector(0, 0, 0);
789 797
790 return parms.OffsetPos; 798 return parms.OffsetPos;
791 } 799 }
792 800
793 public LSL_Types.Quaternion llDetectedRot(int number) 801 public LSL_Rotation llDetectedRot(int number)
794 { 802 {
795 m_host.AddScriptLPS(1); 803 m_host.AddScriptLPS(1);
796 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number); 804 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number);
797 if (d == null) 805 if (d == null)
798 return new LSL_Types.Quaternion(); 806 return new LSL_Rotation();
799 return d.Rotation; 807 return d.Rotation;
800 } 808 }
801 809
802 public LSL_Types.LSLInteger llDetectedGroup(int number) 810 public LSL_Integer llDetectedGroup(int number)
803 { 811 {
804 m_host.AddScriptLPS(1); 812 m_host.AddScriptLPS(1);
805 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number); 813 DetectParams d = m_ScriptEngine.GetDetectParams(m_itemID, number);
806 if (d == null) 814 if (d == null)
807 return new LSL_Types.LSLInteger(0); 815 return new LSL_Integer(0);
808 if (m_host.GroupID == d.Group) 816 if (m_host.GroupID == d.Group)
809 return new LSL_Types.LSLInteger(1); 817 return new LSL_Integer(1);
810 return new LSL_Types.LSLInteger(0); 818 return new LSL_Integer(0);
811 } 819 }
812 820
813 public LSL_Types.LSLInteger llDetectedLinkNumber(int number) 821 public LSL_Integer llDetectedLinkNumber(int number)
814 { 822 {
815 m_host.AddScriptLPS(1); 823 m_host.AddScriptLPS(1);
816 DetectParams parms = m_ScriptEngine.GetDetectParams(m_itemID, number); 824 DetectParams parms = m_ScriptEngine.GetDetectParams(m_itemID, number);
817 if (parms == null) 825 if (parms == null)
818 return new LSL_Types.LSLInteger(0); 826 return new LSL_Integer(0);
827
828 return new LSL_Integer(parms.LinkNum);
829 }
830
831 public LSL_Vector llDetectedTouchBinormal(int index)
832 {
833 m_host.AddScriptLPS(1);
834 NotImplemented("llDetectedTouchBinormal");
835 return new LSL_Vector();
836 }
837
838 public LSL_Integer llDetectedTouchFace(int index)
839 {
840 m_host.AddScriptLPS(1);
841 NotImplemented("llDetectedTouchFace");
842 return new LSL_Integer(0);
843 }
844
845 public LSL_Vector llDetectedTouchNormal(int index)
846 {
847 m_host.AddScriptLPS(1);
848 NotImplemented("llDetectedTouchNormal");
849 return new LSL_Vector();
850 }
851
852 public LSL_Vector llDetectedTouchPos(int index)
853 {
854 m_host.AddScriptLPS(1);
855 NotImplemented("llDetectedTouchPos");
856 return new LSL_Vector();
857 }
819 858
820 return new LSL_Types.LSLInteger(parms.LinkNum); 859 public LSL_Vector llDetectedTouchST(int index)
860 {
861 m_host.AddScriptLPS(1);
862 NotImplemented("llDetectedTouchST");
863 return new LSL_Vector();
864 }
865
866 public LSL_Vector llDetectedTouchUV(int index)
867 {
868 m_host.AddScriptLPS(1);
869 NotImplemented("llDetectedTouchUV");
870 return new LSL_Vector();
821 } 871 }
822 872
823 public void llDie() 873 public void llDie()
@@ -826,7 +876,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
826 throw new SelfDeleteException(); 876 throw new SelfDeleteException();
827 } 877 }
828 878
829 public LSL_Types.LSLFloat llGround(LSL_Types.Vector3 offset) 879 public LSL_Float llGround(LSL_Vector offset)
830 { 880 {
831 m_host.AddScriptLPS(1); 881 m_host.AddScriptLPS(1);
832 int x = (int)(m_host.OffsetPosition.X + offset.x); 882 int x = (int)(m_host.OffsetPosition.X + offset.x);
@@ -834,16 +884,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
834 return World.GetLandHeight(x, y); 884 return World.GetLandHeight(x, y);
835 } 885 }
836 886
837 public LSL_Types.LSLFloat llCloud(LSL_Types.Vector3 offset) 887 public LSL_Float llCloud(LSL_Vector offset)
838 { 888 {
839 m_host.AddScriptLPS(1); 889 m_host.AddScriptLPS(1);
840 return 0; 890 return 0;
841 } 891 }
842 892
843 public LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset) 893 public LSL_Vector llWind(LSL_Vector offset)
844 { 894 {
845 m_host.AddScriptLPS(1); 895 m_host.AddScriptLPS(1);
846 return new LSL_Types.Vector3(); 896 return new LSL_Vector();
847 } 897 }
848 898
849 public void llSetStatus(int status, int value) 899 public void llSetStatus(int status, int value)
@@ -934,7 +984,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
934 } 984 }
935 } 985 }
936 986
937 public LSL_Types.LSLInteger llGetStatus(int status) 987 public LSL_Integer llGetStatus(int status)
938 { 988 {
939 m_host.AddScriptLPS(1); 989 m_host.AddScriptLPS(1);
940 // Console.WriteLine(m_host.ToString() + " status is " + m_host.GetEffectiveObjectFlags().ToString()); 990 // Console.WriteLine(m_host.ToString() + " status is " + m_host.GetEffectiveObjectFlags().ToString());
@@ -994,13 +1044,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
994 return 0; 1044 return 0;
995 } 1045 }
996 1046
997 public void llSetScale(LSL_Types.Vector3 scale) 1047 public void llSetScale(LSL_Vector scale)
998 { 1048 {
999 m_host.AddScriptLPS(1); 1049 m_host.AddScriptLPS(1);
1000 SetScale(m_host, scale); 1050 SetScale(m_host, scale);
1001 } 1051 }
1002 1052
1003 private void SetScale(SceneObjectPart part, LSL_Types.Vector3 scale) 1053 private void SetScale(SceneObjectPart part, LSL_Vector scale)
1004 { 1054 {
1005 // TODO: this needs to trigger a persistance save as well 1055 // TODO: this needs to trigger a persistance save as well
1006 1056
@@ -1030,20 +1080,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1030 part.SendFullUpdateToAllClients(); 1080 part.SendFullUpdateToAllClients();
1031 } 1081 }
1032 1082
1033 public LSL_Types.Vector3 llGetScale() 1083 public LSL_Vector llGetScale()
1034 { 1084 {
1035 m_host.AddScriptLPS(1); 1085 m_host.AddScriptLPS(1);
1036 return new LSL_Types.Vector3(m_host.Scale.X, m_host.Scale.Y, m_host.Scale.Z); 1086 return new LSL_Vector(m_host.Scale.X, m_host.Scale.Y, m_host.Scale.Z);
1037 } 1087 }
1038 1088
1039 public void llSetColor(LSL_Types.Vector3 color, int face) 1089 public void llSetClickAction(int action)
1090 {
1091 m_host.AddScriptLPS(1);
1092 NotImplemented("llSetClickAction");
1093 return;
1094 }
1095
1096 public void llSetColor(LSL_Vector color, int face)
1040 { 1097 {
1041 m_host.AddScriptLPS(1); 1098 m_host.AddScriptLPS(1);
1042 1099
1043 SetColor(m_host, color, face); 1100 SetColor(m_host, color, face);
1044 } 1101 }
1045 1102
1046 private void SetColor(SceneObjectPart part, LSL_Types.Vector3 color, int face) 1103 private void SetColor(SceneObjectPart part, LSL_Vector color, int face)
1047 { 1104 {
1048 Primitive.TextureEntry tex = part.Shape.Textures; 1105 Primitive.TextureEntry tex = part.Shape.Textures;
1049 Color4 texcolor; 1106 Color4 texcolor;
@@ -1180,14 +1237,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1180 } 1237 }
1181 } 1238 }
1182 1239
1183 public LSL_Types.LSLFloat llGetAlpha(int face) 1240 public LSL_Float llGetAlpha(int face)
1184 { 1241 {
1185 m_host.AddScriptLPS(1); 1242 m_host.AddScriptLPS(1);
1186 1243
1187 return GetAlpha(m_host, face); 1244 return GetAlpha(m_host, face);
1188 } 1245 }
1189 1246
1190 private LSL_Types.LSLFloat GetAlpha(SceneObjectPart part, int face) 1247 private LSL_Float GetAlpha(SceneObjectPart part, int face)
1191 { 1248 {
1192 Primitive.TextureEntry tex = part.Shape.Textures; 1249 Primitive.TextureEntry tex = part.Shape.Textures;
1193 if (face == ScriptBaseClass.ALL_SIDES) 1250 if (face == ScriptBaseClass.ALL_SIDES)
@@ -1257,7 +1314,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1257 /// <param name="tension"></param> 1314 /// <param name="tension"></param>
1258 /// <param name="Force"></param> 1315 /// <param name="Force"></param>
1259 private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, 1316 private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction,
1260 float wind, float tension, LSL_Types.Vector3 Force) 1317 float wind, float tension, LSL_Vector Force)
1261 { 1318 {
1262 if (part == null) 1319 if (part == null)
1263 return; 1320 return;
@@ -1315,7 +1372,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1315 /// <param name="intensity"></param> 1372 /// <param name="intensity"></param>
1316 /// <param name="radius"></param> 1373 /// <param name="radius"></param>
1317 /// <param name="falloff"></param> 1374 /// <param name="falloff"></param>
1318 private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff) 1375 private void SetPointLight(SceneObjectPart part, bool light, LSL_Vector color, float intensity, float radius, float falloff)
1319 { 1376 {
1320 if (part == null) 1377 if (part == null)
1321 return; 1378 return;
@@ -1339,17 +1396,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1339 part.ScheduleFullUpdate(); 1396 part.ScheduleFullUpdate();
1340 } 1397 }
1341 1398
1342 public LSL_Types.Vector3 llGetColor(int face) 1399 public LSL_Vector llGetColor(int face)
1343 { 1400 {
1344 m_host.AddScriptLPS(1); 1401 m_host.AddScriptLPS(1);
1345 return GetColor(m_host, face); 1402 return GetColor(m_host, face);
1346 } 1403 }
1347 1404
1348 private LSL_Types.Vector3 GetColor(SceneObjectPart part, int face) 1405 private LSL_Vector GetColor(SceneObjectPart part, int face)
1349 { 1406 {
1350 Primitive.TextureEntry tex = part.Shape.Textures; 1407 Primitive.TextureEntry tex = part.Shape.Textures;
1351 Color4 texcolor; 1408 Color4 texcolor;
1352 LSL_Types.Vector3 rgb = new LSL_Types.Vector3(); 1409 LSL_Vector rgb = new LSL_Vector();
1353 if (face == ScriptBaseClass.ALL_SIDES) 1410 if (face == ScriptBaseClass.ALL_SIDES)
1354 { 1411 {
1355 int i; 1412 int i;
@@ -1378,7 +1435,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1378 } 1435 }
1379 else 1436 else
1380 { 1437 {
1381 return new LSL_Types.Vector3(); 1438 return new LSL_Vector();
1382 } 1439 }
1383 } 1440 }
1384 1441
@@ -1532,13 +1589,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1532 } 1589 }
1533 } 1590 }
1534 1591
1535 public LSL_Types.LSLString llGetTexture(int face) 1592 public LSL_String llGetTexture(int face)
1536 { 1593 {
1537 m_host.AddScriptLPS(1); 1594 m_host.AddScriptLPS(1);
1538 return GetTexture(m_host, face); 1595 return GetTexture(m_host, face);
1539 } 1596 }
1540 1597
1541 private LSL_Types.LSLString GetTexture(SceneObjectPart part, int face) 1598 private LSL_String GetTexture(SceneObjectPart part, int face)
1542 { 1599 {
1543 Primitive.TextureEntry tex = part.Shape.Textures; 1600 Primitive.TextureEntry tex = part.Shape.Textures;
1544 if (face == ScriptBaseClass.ALL_SIDES) 1601 if (face == ScriptBaseClass.ALL_SIDES)
@@ -1557,7 +1614,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1557 } 1614 }
1558 } 1615 }
1559 1616
1560 public void llSetPos(LSL_Types.Vector3 pos) 1617 public void llSetPos(LSL_Vector pos)
1561 { 1618 {
1562 m_host.AddScriptLPS(1); 1619 m_host.AddScriptLPS(1);
1563 1620
@@ -1566,10 +1623,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1566 ScriptSleep(200); 1623 ScriptSleep(200);
1567 } 1624 }
1568 1625
1569 private void SetPos(SceneObjectPart part, LSL_Types.Vector3 targetPos) 1626 private void SetPos(SceneObjectPart part, LSL_Vector targetPos)
1570 { 1627 {
1571 // Capped movemment if distance > 10m (http://wiki.secondlife.com/wiki/LlSetPos) 1628 // Capped movemment if distance > 10m (http://wiki.secondlife.com/wiki/LlSetPos)
1572 LSL_Types.Vector3 currentPos = llGetLocalPos(); 1629 LSL_Vector currentPos = llGetLocalPos();
1573 if (llVecDist(currentPos, targetPos) > 10.0f * m_ScriptDistanceFactor) 1630 if (llVecDist(currentPos, targetPos) > 10.0f * m_ScriptDistanceFactor)
1574 { 1631 {
1575 targetPos = currentPos + m_ScriptDistanceFactor * 10 * llVecNorm(targetPos - currentPos); 1632 targetPos = currentPos + m_ScriptDistanceFactor * 10 * llVecNorm(targetPos - currentPos);
@@ -1585,32 +1642,32 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1585 } 1642 }
1586 } 1643 }
1587 1644
1588 public LSL_Types.Vector3 llGetPos() 1645 public LSL_Vector llGetPos()
1589 { 1646 {
1590 m_host.AddScriptLPS(1); 1647 m_host.AddScriptLPS(1);
1591 return new LSL_Types.Vector3(m_host.AbsolutePosition.X, 1648 return new LSL_Vector(m_host.AbsolutePosition.X,
1592 m_host.AbsolutePosition.Y, 1649 m_host.AbsolutePosition.Y,
1593 m_host.AbsolutePosition.Z); 1650 m_host.AbsolutePosition.Z);
1594 } 1651 }
1595 1652
1596 public LSL_Types.Vector3 llGetLocalPos() 1653 public LSL_Vector llGetLocalPos()
1597 { 1654 {
1598 m_host.AddScriptLPS(1); 1655 m_host.AddScriptLPS(1);
1599 if (m_host.ParentID != 0) 1656 if (m_host.ParentID != 0)
1600 { 1657 {
1601 return new LSL_Types.Vector3(m_host.OffsetPosition.X, 1658 return new LSL_Vector(m_host.OffsetPosition.X,
1602 m_host.OffsetPosition.Y, 1659 m_host.OffsetPosition.Y,
1603 m_host.OffsetPosition.Z); 1660 m_host.OffsetPosition.Z);
1604 } 1661 }
1605 else 1662 else
1606 { 1663 {
1607 return new LSL_Types.Vector3(m_host.AbsolutePosition.X, 1664 return new LSL_Vector(m_host.AbsolutePosition.X,
1608 m_host.AbsolutePosition.Y, 1665 m_host.AbsolutePosition.Y,
1609 m_host.AbsolutePosition.Z); 1666 m_host.AbsolutePosition.Z);
1610 } 1667 }
1611 } 1668 }
1612 1669
1613 public void llSetRot(LSL_Types.Quaternion rot) 1670 public void llSetRot(LSL_Rotation rot)
1614 { 1671 {
1615 m_host.AddScriptLPS(1); 1672 m_host.AddScriptLPS(1);
1616 1673
@@ -1619,27 +1676,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1619 ScriptSleep(200); 1676 ScriptSleep(200);
1620 } 1677 }
1621 1678
1622 private void SetRot(SceneObjectPart part, LSL_Types.Quaternion rot) 1679 private void SetRot(SceneObjectPart part, LSL_Rotation rot)
1623 { 1680 {
1624 part.UpdateRotation(new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s)); 1681 part.UpdateRotation(new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s));
1625 // Update rotation does not move the object in the physics scene if it's a linkset. 1682 // Update rotation does not move the object in the physics scene if it's a linkset.
1626 part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition; 1683 part.ParentGroup.AbsolutePosition = part.ParentGroup.AbsolutePosition;
1627 } 1684 }
1628 1685
1629 public LSL_Types.Quaternion llGetRot() 1686 public LSL_Rotation llGetRot()
1630 { 1687 {
1631 m_host.AddScriptLPS(1); 1688 m_host.AddScriptLPS(1);
1632 Quaternion q = m_host.RotationOffset; 1689 Quaternion q = m_host.RotationOffset;
1633 return new LSL_Types.Quaternion(q.X, q.Y, q.Z, q.W); 1690 return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
1634 } 1691 }
1635 1692
1636 public LSL_Types.Quaternion llGetLocalRot() 1693 public LSL_Rotation llGetLocalRot()
1637 { 1694 {
1638 m_host.AddScriptLPS(1); 1695 m_host.AddScriptLPS(1);
1639 return new LSL_Types.Quaternion(m_host.RotationOffset.X, m_host.RotationOffset.Y, m_host.RotationOffset.Z, m_host.RotationOffset.W); 1696 return new LSL_Rotation(m_host.RotationOffset.X, m_host.RotationOffset.Y, m_host.RotationOffset.Z, m_host.RotationOffset.W);
1640 } 1697 }
1641 1698
1642 public void llSetForce(LSL_Types.Vector3 force, int local) 1699 public void llSetForce(LSL_Vector force, int local)
1643 { 1700 {
1644 m_host.AddScriptLPS(1); 1701 m_host.AddScriptLPS(1);
1645 1702
@@ -1655,9 +1712,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1655 } 1712 }
1656 } 1713 }
1657 1714
1658 public LSL_Types.Vector3 llGetForce() 1715 public LSL_Vector llGetForce()
1659 { 1716 {
1660 LSL_Types.Vector3 force = new LSL_Types.Vector3(0.0, 0.0, 0.0); 1717 LSL_Vector force = new LSL_Vector(0.0, 0.0, 0.0);
1661 1718
1662 m_host.AddScriptLPS(1); 1719 m_host.AddScriptLPS(1);
1663 1720
@@ -1675,7 +1732,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1675 return force; 1732 return force;
1676 } 1733 }
1677 1734
1678 public LSL_Types.LSLInteger llTarget(LSL_Types.Vector3 position, double range) 1735 public LSL_Integer llTarget(LSL_Vector position, double range)
1679 { 1736 {
1680 m_host.AddScriptLPS(1); 1737 m_host.AddScriptLPS(1);
1681 return m_host.registerTargetWaypoint(new Vector3((float)position.x, (float)position.y, (float)position.z), (float)range); 1738 return m_host.registerTargetWaypoint(new Vector3((float)position.x, (float)position.y, (float)position.z), (float)range);
@@ -1687,7 +1744,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1687 m_host.unregisterTargetWaypoint(number); 1744 m_host.unregisterTargetWaypoint(number);
1688 } 1745 }
1689 1746
1690 public LSL_Types.LSLInteger llRotTarget(LSL_Types.Quaternion rot, double error) 1747 public LSL_Integer llRotTarget(LSL_Rotation rot, double error)
1691 { 1748 {
1692 m_host.AddScriptLPS(1); 1749 m_host.AddScriptLPS(1);
1693 NotImplemented("llRotTarget"); 1750 NotImplemented("llRotTarget");
@@ -1700,7 +1757,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1700 NotImplemented("llRotTargetRemove"); 1757 NotImplemented("llRotTargetRemove");
1701 } 1758 }
1702 1759
1703 public void llMoveToTarget(LSL_Types.Vector3 target, double tau) 1760 public void llMoveToTarget(LSL_Vector target, double tau)
1704 { 1761 {
1705 m_host.AddScriptLPS(1); 1762 m_host.AddScriptLPS(1);
1706 m_host.MoveToTarget(new Vector3((float)target.x, (float)target.y, (float)target.z), (float)tau); 1763 m_host.MoveToTarget(new Vector3((float)target.x, (float)target.y, (float)target.z), (float)tau);
@@ -1712,7 +1769,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1712 m_host.StopMoveToTarget(); 1769 m_host.StopMoveToTarget();
1713 } 1770 }
1714 1771
1715 public void llApplyImpulse(LSL_Types.Vector3 force, int local) 1772 public void llApplyImpulse(LSL_Vector force, int local)
1716 { 1773 {
1717 m_host.AddScriptLPS(1); 1774 m_host.AddScriptLPS(1);
1718 //No energy force yet 1775 //No energy force yet
@@ -1727,62 +1784,62 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1727 m_host.ApplyImpulse(new Vector3((float)force.x, (float)force.y, (float)force.z), local != 0); 1784 m_host.ApplyImpulse(new Vector3((float)force.x, (float)force.y, (float)force.z), local != 0);
1728 } 1785 }
1729 1786
1730 public void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local) 1787 public void llApplyRotationalImpulse(LSL_Vector force, int local)
1731 { 1788 {
1732 m_host.AddScriptLPS(1); 1789 m_host.AddScriptLPS(1);
1733 NotImplemented("llApplyRotationalImpulse"); 1790 NotImplemented("llApplyRotationalImpulse");
1734 } 1791 }
1735 1792
1736 public void llSetTorque(LSL_Types.Vector3 torque, int local) 1793 public void llSetTorque(LSL_Vector torque, int local)
1737 { 1794 {
1738 m_host.AddScriptLPS(1); 1795 m_host.AddScriptLPS(1);
1739 NotImplemented("llSetTorque"); 1796 NotImplemented("llSetTorque");
1740 } 1797 }
1741 1798
1742 public LSL_Types.Vector3 llGetTorque() 1799 public LSL_Vector llGetTorque()
1743 { 1800 {
1744 m_host.AddScriptLPS(1); 1801 m_host.AddScriptLPS(1);
1745 NotImplemented("llGetTorque"); 1802 NotImplemented("llGetTorque");
1746 return new LSL_Types.Vector3(); 1803 return new LSL_Vector();
1747 } 1804 }
1748 1805
1749 public void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local) 1806 public void llSetForceAndTorque(LSL_Vector force, LSL_Vector torque, int local)
1750 { 1807 {
1751 m_host.AddScriptLPS(1); 1808 m_host.AddScriptLPS(1);
1752 NotImplemented("llSetForceAndTorque"); 1809 NotImplemented("llSetForceAndTorque");
1753 } 1810 }
1754 1811
1755 public LSL_Types.Vector3 llGetVel() 1812 public LSL_Vector llGetVel()
1756 { 1813 {
1757 m_host.AddScriptLPS(1); 1814 m_host.AddScriptLPS(1);
1758 return new LSL_Types.Vector3(m_host.Velocity.X, m_host.Velocity.Y, m_host.Velocity.Z); 1815 return new LSL_Vector(m_host.Velocity.X, m_host.Velocity.Y, m_host.Velocity.Z);
1759 } 1816 }
1760 1817
1761 public LSL_Types.Vector3 llGetAccel() 1818 public LSL_Vector llGetAccel()
1762 { 1819 {
1763 m_host.AddScriptLPS(1); 1820 m_host.AddScriptLPS(1);
1764 return new LSL_Types.Vector3(m_host.Acceleration.X, m_host.Acceleration.Y, m_host.Acceleration.Z); 1821 return new LSL_Vector(m_host.Acceleration.X, m_host.Acceleration.Y, m_host.Acceleration.Z);
1765 } 1822 }
1766 1823
1767 public LSL_Types.Vector3 llGetOmega() 1824 public LSL_Vector llGetOmega()
1768 { 1825 {
1769 m_host.AddScriptLPS(1); 1826 m_host.AddScriptLPS(1);
1770 return new LSL_Types.Vector3(m_host.RotationalVelocity.X, m_host.RotationalVelocity.Y, m_host.RotationalVelocity.Z); 1827 return new LSL_Vector(m_host.RotationalVelocity.X, m_host.RotationalVelocity.Y, m_host.RotationalVelocity.Z);
1771 } 1828 }
1772 1829
1773 public LSL_Types.LSLFloat llGetTimeOfDay() 1830 public LSL_Float llGetTimeOfDay()
1774 { 1831 {
1775 m_host.AddScriptLPS(1); 1832 m_host.AddScriptLPS(1);
1776 return (double)(((DateTime.Now.TimeOfDay.TotalMilliseconds / 1000) % (3600 * 4)) * World.TimeDilation); 1833 return (double)(((DateTime.Now.TimeOfDay.TotalMilliseconds / 1000) % (3600 * 4)) * World.TimeDilation);
1777 } 1834 }
1778 1835
1779 public LSL_Types.LSLFloat llGetWallclock() 1836 public LSL_Float llGetWallclock()
1780 { 1837 {
1781 m_host.AddScriptLPS(1); 1838 m_host.AddScriptLPS(1);
1782 return DateTime.Now.TimeOfDay.TotalSeconds; 1839 return DateTime.Now.TimeOfDay.TotalSeconds;
1783 } 1840 }
1784 1841
1785 public LSL_Types.LSLFloat llGetTime() 1842 public LSL_Float llGetTime()
1786 { 1843 {
1787 m_host.AddScriptLPS(1); 1844 m_host.AddScriptLPS(1);
1788 TimeSpan ScriptTime = DateTime.Now - m_timer; 1845 TimeSpan ScriptTime = DateTime.Now - m_timer;
@@ -1795,7 +1852,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1795 m_timer = DateTime.Now; 1852 m_timer = DateTime.Now;
1796 } 1853 }
1797 1854
1798 public LSL_Types.LSLFloat llGetAndResetTime() 1855 public LSL_Float llGetAndResetTime()
1799 { 1856 {
1800 m_host.AddScriptLPS(1); 1857 m_host.AddScriptLPS(1);
1801 TimeSpan ScriptTime = DateTime.Now - m_timer; 1858 TimeSpan ScriptTime = DateTime.Now - m_timer;
@@ -1900,7 +1957,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1900 /// this more complicated than it might otherwise seem. 1957 /// this more complicated than it might otherwise seem.
1901 /// </summary> 1958 /// </summary>
1902 1959
1903 public LSL_Types.LSLString llGetSubString(string src, int start, int end) 1960 public LSL_String llGetSubString(string src, int start, int end)
1904 { 1961 {
1905 1962
1906 m_host.AddScriptLPS(1); 1963 m_host.AddScriptLPS(1);
@@ -1996,7 +2053,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1996 /// i.e. end < start. 2053 /// i.e. end < start.
1997 /// </summary> 2054 /// </summary>
1998 2055
1999 public LSL_Types.LSLString llDeleteSubString(string src, int start, int end) 2056 public LSL_String llDeleteSubString(string src, int start, int end)
2000 { 2057 {
2001 2058
2002 m_host.AddScriptLPS(1); 2059 m_host.AddScriptLPS(1);
@@ -2079,7 +2136,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2079 /// string bound, with the result being a concatenation. 2136 /// string bound, with the result being a concatenation.
2080 /// </summary> 2137 /// </summary>
2081 2138
2082 public LSL_Types.LSLString llInsertString(string dest, int index, string src) 2139 public LSL_String llInsertString(string dest, int index, string src)
2083 { 2140 {
2084 2141
2085 m_host.AddScriptLPS(1); 2142 m_host.AddScriptLPS(1);
@@ -2117,19 +2174,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2117 2174
2118 } 2175 }
2119 2176
2120 public LSL_Types.LSLString llToUpper(string src) 2177 public LSL_String llToUpper(string src)
2121 { 2178 {
2122 m_host.AddScriptLPS(1); 2179 m_host.AddScriptLPS(1);
2123 return src.ToUpper(); 2180 return src.ToUpper();
2124 } 2181 }
2125 2182
2126 public LSL_Types.LSLString llToLower(string src) 2183 public LSL_String llToLower(string src)
2127 { 2184 {
2128 m_host.AddScriptLPS(1); 2185 m_host.AddScriptLPS(1);
2129 return src.ToLower(); 2186 return src.ToLower();
2130 } 2187 }
2131 2188
2132 public LSL_Types.LSLInteger llGiveMoney(string destination, int amount) 2189 public LSL_Integer llGiveMoney(string destination, int amount)
2133 { 2190 {
2134 UUID invItemID=InventorySelf(); 2191 UUID invItemID=InventorySelf();
2135 if (invItemID == UUID.Zero) 2192 if (invItemID == UUID.Zero)
@@ -2198,7 +2255,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2198 // ScriptSleep(100); 2255 // ScriptSleep(100);
2199 } 2256 }
2200 2257
2201 public void llRezAtRoot(string inventory, LSL_Types.Vector3 pos, LSL_Types.Vector3 vel, LSL_Types.Quaternion rot, int param) 2258 public void llRezAtRoot(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param)
2202 { 2259 {
2203 m_host.AddScriptLPS(1); 2260 m_host.AddScriptLPS(1);
2204 2261
@@ -2244,14 +2301,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2244 2301
2245 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams( 2302 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams(
2246 "object_rez", new Object[] { 2303 "object_rez", new Object[] {
2247 new LSL_Types.LSLString( 2304 new LSL_String(
2248 new_group.RootPart.UUID.ToString()) }, 2305 new_group.RootPart.UUID.ToString()) },
2249 new DetectParams[0])); 2306 new DetectParams[0]));
2250 2307
2251 float groupmass = new_group.GetMass(); 2308 float groupmass = new_group.GetMass();
2252 2309
2253 //Recoil. 2310 //Recoil.
2254 llApplyImpulse(new LSL_Types.Vector3(llvel.X * groupmass, llvel.Y * groupmass, llvel.Z * groupmass), 0); 2311 llApplyImpulse(new LSL_Vector(llvel.X * groupmass, llvel.Y * groupmass, llvel.Z * groupmass), 0);
2255 // Variable script delay? (see (http://wiki.secondlife.com/wiki/LSL_Delay) 2312 // Variable script delay? (see (http://wiki.secondlife.com/wiki/LSL_Delay)
2256 ScriptSleep((int)((groupmass * velmag) / 10)); 2313 ScriptSleep((int)((groupmass * velmag) / 10));
2257 // ScriptSleep(100); 2314 // ScriptSleep(100);
@@ -2261,12 +2318,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2261 llSay(0, "Could not find object " + inventory); 2318 llSay(0, "Could not find object " + inventory);
2262 } 2319 }
2263 2320
2264 public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Vector3 vel, LSL_Types.Quaternion rot, int param) 2321 public void llRezObject(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param)
2265 { 2322 {
2266 llRezAtRoot(inventory, pos, vel, rot, param); 2323 llRezAtRoot(inventory, pos, vel, rot, param);
2267 } 2324 }
2268 2325
2269 public void llLookAt(LSL_Types.Vector3 target, double strength, double damping) 2326 public void llLookAt(LSL_Vector target, double strength, double damping)
2270 { 2327 {
2271 m_host.AddScriptLPS(1); 2328 m_host.AddScriptLPS(1);
2272 NotImplemented("llLookAt"); 2329 NotImplemented("llLookAt");
@@ -2291,7 +2348,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2291 Thread.Sleep((int)(sec * 1000)); 2348 Thread.Sleep((int)(sec * 1000));
2292 } 2349 }
2293 2350
2294 public LSL_Types.LSLFloat llGetMass() 2351 public LSL_Float llGetMass()
2295 { 2352 {
2296 m_host.AddScriptLPS(1); 2353 m_host.AddScriptLPS(1);
2297 return m_host.GetMass(); 2354 return m_host.GetMass();
@@ -2325,7 +2382,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2325 } 2382 }
2326 2383
2327 m_host.AddScriptLPS(1); 2384 m_host.AddScriptLPS(1);
2328 //NotImplemented("llTakeControls");
2329 } 2385 }
2330 2386
2331 public void llReleaseControls() 2387 public void llReleaseControls()
@@ -2378,7 +2434,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2378 Deprecated("llReleaseCamera"); 2434 Deprecated("llReleaseCamera");
2379 } 2435 }
2380 2436
2381 public LSL_Types.LSLString llGetOwner() 2437 public LSL_String llGetOwner()
2382 { 2438 {
2383 m_host.AddScriptLPS(1); 2439 m_host.AddScriptLPS(1);
2384 2440
@@ -2428,8 +2484,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2428 msg.binaryBucket = new byte[0];// binaryBucket; 2484 msg.binaryBucket = new byte[0];// binaryBucket;
2429 World.TriggerGridInstantMessage(msg, InstantMessageReceiver.IMModule); 2485 World.TriggerGridInstantMessage(msg, InstantMessageReceiver.IMModule);
2430 // ScriptSleep(2000); 2486 // ScriptSleep(2000);
2431
2432 // NotImplemented("llInstantMessage");
2433 } 2487 }
2434 2488
2435 public void llEmail(string address, string subject, string message) 2489 public void llEmail(string address, string subject, string message)
@@ -2459,16 +2513,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2459 m_ScriptEngine.PostObjectEvent(m_host.LocalId, 2513 m_ScriptEngine.PostObjectEvent(m_host.LocalId,
2460 new EventParams("email", 2514 new EventParams("email",
2461 new Object[] { 2515 new Object[] {
2462 new LSL_Types.LSLString(email.time), 2516 new LSL_String(email.time),
2463 new LSL_Types.LSLString(email.sender), 2517 new LSL_String(email.sender),
2464 new LSL_Types.LSLString(email.subject), 2518 new LSL_String(email.subject),
2465 new LSL_Types.LSLString(email.message), 2519 new LSL_String(email.message),
2466 new LSL_Types.LSLInteger(email.numLeft)}, 2520 new LSL_Integer(email.numLeft)},
2467 new DetectParams[0])); 2521 new DetectParams[0]));
2468 2522
2469 } 2523 }
2470 2524
2471 public LSL_Types.LSLString llGetKey() 2525 public LSL_String llGetKey()
2472 { 2526 {
2473 m_host.AddScriptLPS(1); 2527 m_host.AddScriptLPS(1);
2474 return m_host.UUID.ToString(); 2528 return m_host.UUID.ToString();
@@ -2512,13 +2566,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2512 NotImplemented("llSoundPreload"); 2566 NotImplemented("llSoundPreload");
2513 } 2567 }
2514 2568
2515 public void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping) 2569 public void llRotLookAt(LSL_Rotation target, double strength, double damping)
2516 { 2570 {
2517 m_host.AddScriptLPS(1); 2571 m_host.AddScriptLPS(1);
2518 NotImplemented("llRotLookAt"); 2572 NotImplemented("llRotLookAt");
2519 } 2573 }
2520 2574
2521 public LSL_Types.LSLInteger llStringLength(string str) 2575 public LSL_Integer llStringLength(string str)
2522 { 2576 {
2523 m_host.AddScriptLPS(1); 2577 m_host.AddScriptLPS(1);
2524 if (str.Length > 0) 2578 if (str.Length > 0)
@@ -2602,7 +2656,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2602 NotImplemented("llStopPointAt"); 2656 NotImplemented("llStopPointAt");
2603 } 2657 }
2604 2658
2605 public void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain) 2659 public void llTargetOmega(LSL_Vector axis, double spinrate, double gain)
2606 { 2660 {
2607 m_host.AddScriptLPS(1); 2661 m_host.AddScriptLPS(1);
2608 m_host.RotationalVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate)); 2662 m_host.RotationalVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate));
@@ -2612,13 +2666,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2612 m_host.ParentGroup.HasGroupChanged = true; 2666 m_host.ParentGroup.HasGroupChanged = true;
2613 } 2667 }
2614 2668
2615 public LSL_Types.LSLInteger llGetStartParameter() 2669 public LSL_Integer llGetStartParameter()
2616 { 2670 {
2617 m_host.AddScriptLPS(1); 2671 m_host.AddScriptLPS(1);
2618 return m_ScriptEngine.GetStartParameter(m_itemID); 2672 return m_ScriptEngine.GetStartParameter(m_itemID);
2619 } 2673 }
2620 2674
2621 public void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos) 2675 public void llGodLikeRezObject(string inventory, LSL_Vector pos)
2622 { 2676 {
2623 m_host.AddScriptLPS(1); 2677 m_host.AddScriptLPS(1);
2624 NotImplemented("llGodLikeRezObject"); 2678 NotImplemented("llGodLikeRezObject");
@@ -2645,7 +2699,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2645 2699
2646 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams( 2700 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams(
2647 "run_time_permissions", new Object[] { 2701 "run_time_permissions", new Object[] {
2648 new LSL_Types.LSLInteger(0) }, 2702 new LSL_Integer(0) },
2649 new DetectParams[0])); 2703 new DetectParams[0]));
2650 2704
2651 return; 2705 return;
@@ -2671,7 +2725,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2671 2725
2672 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams( 2726 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams(
2673 "run_time_permissions", new Object[] { 2727 "run_time_permissions", new Object[] {
2674 new LSL_Types.LSLInteger(perm) }, 2728 new LSL_Integer(perm) },
2675 new DetectParams[0])); 2729 new DetectParams[0]));
2676 2730
2677 return; 2731 return;
@@ -2691,7 +2745,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2691 2745
2692 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams( 2746 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams(
2693 "run_time_permissions", new Object[] { 2747 "run_time_permissions", new Object[] {
2694 new LSL_Types.LSLInteger(perm) }, 2748 new LSL_Integer(perm) },
2695 new DetectParams[0])); 2749 new DetectParams[0]));
2696 2750
2697 return; 2751 return;
@@ -2721,7 +2775,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2721 // Requested agent is not in range, refuse perms 2775 // Requested agent is not in range, refuse perms
2722 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams( 2776 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams(
2723 "run_time_permissions", new Object[] { 2777 "run_time_permissions", new Object[] {
2724 new LSL_Types.LSLInteger(0) }, 2778 new LSL_Integer(0) },
2725 new DetectParams[0])); 2779 new DetectParams[0]));
2726 } 2780 }
2727 2781
@@ -2744,11 +2798,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2744 m_host.TaskInventory[invItemID].PermsMask=answer; 2798 m_host.TaskInventory[invItemID].PermsMask=answer;
2745 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams( 2799 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams(
2746 "run_time_permissions", new Object[] { 2800 "run_time_permissions", new Object[] {
2747 new LSL_Types.LSLInteger(answer) }, 2801 new LSL_Integer(answer) },
2748 new DetectParams[0])); 2802 new DetectParams[0]));
2749 } 2803 }
2750 2804
2751 public LSL_Types.LSLString llGetPermissionsKey() 2805 public LSL_String llGetPermissionsKey()
2752 { 2806 {
2753 m_host.AddScriptLPS(1); 2807 m_host.AddScriptLPS(1);
2754 2808
@@ -2763,7 +2817,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2763 return UUID.Zero.ToString(); 2817 return UUID.Zero.ToString();
2764 } 2818 }
2765 2819
2766 public LSL_Types.LSLInteger llGetPermissions() 2820 public LSL_Integer llGetPermissions()
2767 { 2821 {
2768 m_host.AddScriptLPS(1); 2822 m_host.AddScriptLPS(1);
2769 2823
@@ -2778,7 +2832,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2778 return 0; 2832 return 0;
2779 } 2833 }
2780 2834
2781 public LSL_Types.LSLInteger llGetLinkNumber() 2835 public LSL_Integer llGetLinkNumber()
2782 { 2836 {
2783 m_host.AddScriptLPS(1); 2837 m_host.AddScriptLPS(1);
2784 2838
@@ -2792,7 +2846,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2792 } 2846 }
2793 } 2847 }
2794 2848
2795 public void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face) 2849 public void llSetLinkColor(int linknumber, LSL_Vector color, int face)
2796 { 2850 {
2797 List<SceneObjectPart> parts = GetLinkParts(linknumber); 2851 List<SceneObjectPart> parts = GetLinkParts(linknumber);
2798 2852
@@ -2915,7 +2969,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2915 } 2969 }
2916 } 2970 }
2917 2971
2918 public LSL_Types.LSLString llGetLinkKey(int linknum) 2972 public LSL_String llGetLinkKey(int linknum)
2919 { 2973 {
2920 m_host.AddScriptLPS(1); 2974 m_host.AddScriptLPS(1);
2921 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknum); 2975 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknum);
@@ -2929,7 +2983,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2929 } 2983 }
2930 } 2984 }
2931 2985
2932 public LSL_Types.LSLString llGetLinkName(int linknum) 2986 public LSL_String llGetLinkName(int linknum)
2933 { 2987 {
2934 m_host.AddScriptLPS(1); 2988 m_host.AddScriptLPS(1);
2935 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknum); 2989 SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknum);
@@ -2943,7 +2997,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2943 } 2997 }
2944 } 2998 }
2945 2999
2946 public LSL_Types.LSLInteger llGetInventoryNumber(int type) 3000 public LSL_Integer llGetInventoryNumber(int type)
2947 { 3001 {
2948 m_host.AddScriptLPS(1); 3002 m_host.AddScriptLPS(1);
2949 int count = 0; 3003 int count = 0;
@@ -2957,7 +3011,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2957 return count; 3011 return count;
2958 } 3012 }
2959 3013
2960 public LSL_Types.LSLString llGetInventoryName(int type, int number) 3014 public LSL_String llGetInventoryName(int type, int number)
2961 { 3015 {
2962 m_host.AddScriptLPS(1); 3016 m_host.AddScriptLPS(1);
2963 ArrayList keys = new ArrayList(); 3017 ArrayList keys = new ArrayList();
@@ -2999,7 +3053,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2999 } 3053 }
3000 } 3054 }
3001 3055
3002 public LSL_Types.LSLFloat llGetEnergy() 3056 public LSL_Float llGetEnergy()
3003 { 3057 {
3004 m_host.AddScriptLPS(1); 3058 m_host.AddScriptLPS(1);
3005 // TODO: figure out real energy value 3059 // TODO: figure out real energy value
@@ -3063,7 +3117,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3063 } 3117 }
3064 } 3118 }
3065 3119
3066 public void llSetText(string text, LSL_Types.Vector3 color, double alpha) 3120 public void llSetText(string text, LSL_Vector color, double alpha)
3067 { 3121 {
3068 m_host.AddScriptLPS(1); 3122 m_host.AddScriptLPS(1);
3069 Vector3 av3 = new Vector3(Util.Clip((float)color.x, 0.0f, 1.0f), 3123 Vector3 av3 = new Vector3(Util.Clip((float)color.x, 0.0f, 1.0f),
@@ -3073,7 +3127,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3073 m_host.ParentGroup.HasGroupChanged = true; 3127 m_host.ParentGroup.HasGroupChanged = true;
3074 } 3128 }
3075 3129
3076 public LSL_Types.LSLFloat llWater(LSL_Types.Vector3 offset) 3130 public LSL_Float llWater(LSL_Vector offset)
3077 { 3131 {
3078 m_host.AddScriptLPS(1); 3132 m_host.AddScriptLPS(1);
3079 return World.RegionInfo.RegionSettings.WaterHeight; 3133 return World.RegionInfo.RegionSettings.WaterHeight;
@@ -3085,7 +3139,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3085 NotImplemented("llPassTouches"); 3139 NotImplemented("llPassTouches");
3086 } 3140 }
3087 3141
3088 public LSL_Types.LSLString llRequestAgentData(string id, int data) 3142 public LSL_String llRequestAgentData(string id, int data)
3089 { 3143 {
3090 m_host.AddScriptLPS(1); 3144 m_host.AddScriptLPS(1);
3091 3145
@@ -3140,7 +3194,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3140 return tid.ToString(); 3194 return tid.ToString();
3141 } 3195 }
3142 3196
3143 public LSL_Types.LSLString llRequestInventoryData(string name) 3197 public LSL_String llRequestInventoryData(string name)
3144 { 3198 {
3145 m_host.AddScriptLPS(1); 3199 m_host.AddScriptLPS(1);
3146 3200
@@ -3203,6 +3257,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3203 // ScriptSleep(5000); 3257 // ScriptSleep(5000);
3204 } 3258 }
3205 3259
3260 public void llTextBox(string avatar, string message, int chat_channel)
3261 {
3262 m_host.AddScriptLPS(1);
3263 NotImplemented("llTextBox");
3264 }
3265
3206 public void llModifyLand(int action, int brush) 3266 public void llModifyLand(int action, int brush)
3207 { 3267 {
3208 m_host.AddScriptLPS(1); 3268 m_host.AddScriptLPS(1);
@@ -3221,7 +3281,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3221 NotImplemented("llCollisionSprite"); 3281 NotImplemented("llCollisionSprite");
3222 } 3282 }
3223 3283
3224 public LSL_Types.LSLString llGetAnimation(string id) 3284 public LSL_String llGetAnimation(string id)
3225 { 3285 {
3226 m_host.AddScriptLPS(1); 3286 m_host.AddScriptLPS(1);
3227 NotImplemented("llGetAnimation"); 3287 NotImplemented("llGetAnimation");
@@ -3259,7 +3319,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3259 3319
3260 object[] resobj = new object[] 3320 object[] resobj = new object[]
3261 { 3321 {
3262 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3322 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3263 }; 3323 };
3264 3324
3265 m_ScriptEngine.PostScriptEvent(partItemID, 3325 m_ScriptEngine.PostScriptEvent(partItemID,
@@ -3283,7 +3343,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3283 partItemID = item.ItemID; 3343 partItemID = item.ItemID;
3284 Object[] resobj = new object[] 3344 Object[] resobj = new object[]
3285 { 3345 {
3286 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3346 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3287 }; 3347 };
3288 3348
3289 m_ScriptEngine.PostScriptEvent(partItemID, 3349 m_ScriptEngine.PostScriptEvent(partItemID,
@@ -3311,7 +3371,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3311 partItemID = item.ItemID; 3371 partItemID = item.ItemID;
3312 Object[] resobj = new object[] 3372 Object[] resobj = new object[]
3313 { 3373 {
3314 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3374 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3315 }; 3375 };
3316 3376
3317 m_ScriptEngine.PostScriptEvent(partItemID, 3377 m_ScriptEngine.PostScriptEvent(partItemID,
@@ -3341,7 +3401,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3341 partItemID = item.ItemID; 3401 partItemID = item.ItemID;
3342 Object[] resobj = new object[] 3402 Object[] resobj = new object[]
3343 { 3403 {
3344 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3404 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3345 }; 3405 };
3346 3406
3347 m_ScriptEngine.PostScriptEvent(partItemID, 3407 m_ScriptEngine.PostScriptEvent(partItemID,
@@ -3365,7 +3425,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3365 3425
3366 object[] resobj = new object[] 3426 object[] resobj = new object[]
3367 { 3427 {
3368 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3428 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3369 }; 3429 };
3370 3430
3371 m_ScriptEngine.PostScriptEvent(partItemID, 3431 m_ScriptEngine.PostScriptEvent(partItemID,
@@ -3392,7 +3452,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3392 partItemID = item.ItemID; 3452 partItemID = item.ItemID;
3393 Object[] resObjDef = new object[] 3453 Object[] resObjDef = new object[]
3394 { 3454 {
3395 new LSL_Types.LSLInteger(m_host.LinkNum), new LSL_Types.LSLInteger(num), new LSL_Types.LSLString(msg), new LSL_Types.LSLString(id) 3455 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3396 }; 3456 };
3397 3457
3398 m_ScriptEngine.PostScriptEvent(partItemID, 3458 m_ScriptEngine.PostScriptEvent(partItemID,
@@ -3410,7 +3470,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3410 3470
3411 } 3471 }
3412 3472
3413 public void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local) 3473 public void llPushObject(string target, LSL_Vector impulse, LSL_Vector ang_impulse, int local)
3414 { 3474 {
3415 m_host.AddScriptLPS(1); 3475 m_host.AddScriptLPS(1);
3416 SceneObjectPart targ = World.GetSceneObjectPart(target); 3476 SceneObjectPart targ = World.GetSceneObjectPart(target);
@@ -3425,7 +3485,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3425 NotImplemented("llPassCollisions"); 3485 NotImplemented("llPassCollisions");
3426 } 3486 }
3427 3487
3428 public LSL_Types.LSLString llGetScriptName() 3488 public LSL_String llGetScriptName()
3429 { 3489 {
3430 3490
3431 string result = String.Empty; 3491 string result = String.Empty;
@@ -3502,7 +3562,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3502 3562
3503 } 3563 }
3504 3564
3505 public LSL_Types.LSLInteger llGetNumberOfSides() 3565 public LSL_Integer llGetNumberOfSides()
3506 { 3566 {
3507 m_host.AddScriptLPS(1); 3567 m_host.AddScriptLPS(1);
3508 3568
@@ -3597,7 +3657,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3597 // Xantor 29/apr/2008 3657 // Xantor 29/apr/2008
3598 // Returns rotation described by rotating angle radians about axis. 3658 // Returns rotation described by rotating angle radians about axis.
3599 // q = cos(a/2) + i (x * sin(a/2)) + j (y * sin(a/2)) + k (z * sin(a/2)) 3659 // q = cos(a/2) + i (x * sin(a/2)) + j (y * sin(a/2)) + k (z * sin(a/2))
3600 public LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle) 3660 public LSL_Rotation llAxisAngle2Rot(LSL_Vector axis, double angle)
3601 { 3661 {
3602 m_host.AddScriptLPS(1); 3662 m_host.AddScriptLPS(1);
3603 3663
@@ -3609,13 +3669,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3609 y = axis.y * t; 3669 y = axis.y * t;
3610 z = axis.z * t; 3670 z = axis.z * t;
3611 3671
3612 return new LSL_Types.Quaternion(x,y,z,s); 3672 return new LSL_Rotation(x,y,z,s);
3613 } 3673 }
3614 3674
3615 3675
3616 // Xantor 29/apr/2008 3676 // Xantor 29/apr/2008
3617 // converts a Quaternion to X,Y,Z axis rotations 3677 // converts a Quaternion to X,Y,Z axis rotations
3618 public LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot) 3678 public LSL_Vector llRot2Axis(LSL_Rotation rot)
3619 { 3679 {
3620 m_host.AddScriptLPS(1); 3680 m_host.AddScriptLPS(1);
3621 double x,y,z; 3681 double x,y,z;
@@ -3646,12 +3706,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3646 z = rot.z / s; 3706 z = rot.z / s;
3647 } 3707 }
3648 3708
3649 return new LSL_Types.Vector3(x,y,z); 3709 return new LSL_Vector(x,y,z);
3650 } 3710 }
3651 3711
3652 3712
3653 // Returns the angle of a quaternion (see llRot2Axis for the axis) 3713 // Returns the angle of a quaternion (see llRot2Axis for the axis)
3654 public LSL_Types.LSLFloat llRot2Angle(LSL_Types.Quaternion rot) 3714 public LSL_Float llRot2Angle(LSL_Rotation rot)
3655 { 3715 {
3656 m_host.AddScriptLPS(1); 3716 m_host.AddScriptLPS(1);
3657 3717
@@ -3671,27 +3731,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3671 return angle; 3731 return angle;
3672 } 3732 }
3673 3733
3674 public LSL_Types.LSLFloat llAcos(double val) 3734 public LSL_Float llAcos(double val)
3675 { 3735 {
3676 m_host.AddScriptLPS(1); 3736 m_host.AddScriptLPS(1);
3677 return (double)Math.Acos(val); 3737 return (double)Math.Acos(val);
3678 } 3738 }
3679 3739
3680 public LSL_Types.LSLFloat llAsin(double val) 3740 public LSL_Float llAsin(double val)
3681 { 3741 {
3682 m_host.AddScriptLPS(1); 3742 m_host.AddScriptLPS(1);
3683 return (double)Math.Asin(val); 3743 return (double)Math.Asin(val);
3684 } 3744 }
3685 3745
3686 // Xantor 30/apr/2008 3746 // Xantor 30/apr/2008
3687 public LSL_Types.LSLFloat llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b) 3747 public LSL_Float llAngleBetween(LSL_Rotation a, LSL_Rotation b)
3688 { 3748 {
3689 m_host.AddScriptLPS(1); 3749 m_host.AddScriptLPS(1);
3690 3750
3691 return (double) Math.Acos(a.x * b.x + a.y * b.y + a.z * b.z + a.s * b.s) * 2; 3751 return (double) Math.Acos(a.x * b.x + a.y * b.y + a.z * b.z + a.s * b.s) * 2;
3692 } 3752 }
3693 3753
3694 public LSL_Types.LSLString llGetInventoryKey(string name) 3754 public LSL_String llGetInventoryKey(string name)
3695 { 3755 {
3696 m_host.AddScriptLPS(1); 3756 m_host.AddScriptLPS(1);
3697 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) 3757 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
@@ -3721,15 +3781,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3721 m_host.ParentGroup.RootPart.AllowedDrop = false; 3781 m_host.ParentGroup.RootPart.AllowedDrop = false;
3722 } 3782 }
3723 3783
3724 public LSL_Types.Vector3 llGetSunDirection() 3784 public LSL_Vector llGetSunDirection()
3725 { 3785 {
3726 m_host.AddScriptLPS(1); 3786 m_host.AddScriptLPS(1);
3727 3787
3728 LSL_Types.Vector3 SunDoubleVector3; 3788 LSL_Vector SunDoubleVector3;
3729 Vector3 SunFloatVector3; 3789 Vector3 SunFloatVector3;
3730 3790
3731 // sunPosition estate setting is set in OpenSim.Region.Environment.Modules.SunModule 3791 // sunPosition estate setting is set in OpenSim.Region.Environment.Modules.SunModule
3732 // have to convert from Vector3 (float) to LSL_Types.Vector3 (double) 3792 // have to convert from Vector3 (float) to LSL_Vector (double)
3733 SunFloatVector3 = World.RegionInfo.RegionSettings.SunVector; 3793 SunFloatVector3 = World.RegionInfo.RegionSettings.SunVector;
3734 SunDoubleVector3.x = (double)SunFloatVector3.X; 3794 SunDoubleVector3.x = (double)SunFloatVector3.X;
3735 SunDoubleVector3.y = (double)SunFloatVector3.Y; 3795 SunDoubleVector3.y = (double)SunFloatVector3.Y;
@@ -3738,16 +3798,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3738 return SunDoubleVector3; 3798 return SunDoubleVector3;
3739 } 3799 }
3740 3800
3741 public LSL_Types.Vector3 llGetTextureOffset(int face) 3801 public LSL_Vector llGetTextureOffset(int face)
3742 { 3802 {
3743 m_host.AddScriptLPS(1); 3803 m_host.AddScriptLPS(1);
3744 return GetTextureOffset(m_host, face); 3804 return GetTextureOffset(m_host, face);
3745 } 3805 }
3746 3806
3747 private LSL_Types.Vector3 GetTextureOffset(SceneObjectPart part, int face) 3807 private LSL_Vector GetTextureOffset(SceneObjectPart part, int face)
3748 { 3808 {
3749 Primitive.TextureEntry tex = part.Shape.Textures; 3809 Primitive.TextureEntry tex = part.Shape.Textures;
3750 LSL_Types.Vector3 offset = new LSL_Types.Vector3(); 3810 LSL_Vector offset = new LSL_Vector();
3751 if (face == ScriptBaseClass.ALL_SIDES) 3811 if (face == ScriptBaseClass.ALL_SIDES)
3752 { 3812 {
3753 face = 0; 3813 face = 0;
@@ -3765,11 +3825,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3765 } 3825 }
3766 } 3826 }
3767 3827
3768 public LSL_Types.Vector3 llGetTextureScale(int side) 3828 public LSL_Vector llGetTextureScale(int side)
3769 { 3829 {
3770 m_host.AddScriptLPS(1); 3830 m_host.AddScriptLPS(1);
3771 Primitive.TextureEntry tex = m_host.Shape.Textures; 3831 Primitive.TextureEntry tex = m_host.Shape.Textures;
3772 LSL_Types.Vector3 scale; 3832 LSL_Vector scale;
3773 if (side == -1) 3833 if (side == -1)
3774 { 3834 {
3775 side = 0; 3835 side = 0;
@@ -3780,13 +3840,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3780 return scale; 3840 return scale;
3781 } 3841 }
3782 3842
3783 public LSL_Types.LSLFloat llGetTextureRot(int face) 3843 public LSL_Float llGetTextureRot(int face)
3784 { 3844 {
3785 m_host.AddScriptLPS(1); 3845 m_host.AddScriptLPS(1);
3786 return GetTextureRot(m_host, face); 3846 return GetTextureRot(m_host, face);
3787 } 3847 }
3788 3848
3789 private LSL_Types.LSLFloat GetTextureRot(SceneObjectPart part, int face) 3849 private LSL_Float GetTextureRot(SceneObjectPart part, int face)
3790 { 3850 {
3791 Primitive.TextureEntry tex = part.Shape.Textures; 3851 Primitive.TextureEntry tex = part.Shape.Textures;
3792 if (face == -1) 3852 if (face == -1)
@@ -3803,13 +3863,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3803 } 3863 }
3804 } 3864 }
3805 3865
3806 public LSL_Types.LSLInteger llSubStringIndex(string source, string pattern) 3866 public LSL_Integer llSubStringIndex(string source, string pattern)
3807 { 3867 {
3808 m_host.AddScriptLPS(1); 3868 m_host.AddScriptLPS(1);
3809 return source.IndexOf(pattern); 3869 return source.IndexOf(pattern);
3810 } 3870 }
3811 3871
3812 public LSL_Types.LSLString llGetOwnerKey(string id) 3872 public LSL_String llGetOwnerKey(string id)
3813 { 3873 {
3814 m_host.AddScriptLPS(1); 3874 m_host.AddScriptLPS(1);
3815 UUID key = new UUID(); 3875 UUID key = new UUID();
@@ -3834,14 +3894,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3834 } 3894 }
3835 } 3895 }
3836 3896
3837 public LSL_Types.Vector3 llGetCenterOfMass() 3897 public LSL_Vector llGetCenterOfMass()
3838 { 3898 {
3839 m_host.AddScriptLPS(1); 3899 m_host.AddScriptLPS(1);
3840 NotImplemented("llGetCenterOfMass"); 3900 NotImplemented("llGetCenterOfMass");
3841 return new LSL_Types.Vector3(); 3901 return new LSL_Vector();
3842 } 3902 }
3843 3903
3844 public LSL_Types.list llListSort(LSL_Types.list src, int stride, int ascending) 3904 public LSL_List llListSort(LSL_List src, int stride, int ascending)
3845 { 3905 {
3846 m_host.AddScriptLPS(1); 3906 m_host.AddScriptLPS(1);
3847 3907
@@ -3852,7 +3912,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3852 return src.Sort(stride, ascending); 3912 return src.Sort(stride, ascending);
3853 } 3913 }
3854 3914
3855 public LSL_Types.LSLInteger llGetListLength(LSL_Types.list src) 3915 public LSL_Integer llGetListLength(LSL_List src)
3856 { 3916 {
3857 m_host.AddScriptLPS(1); 3917 m_host.AddScriptLPS(1);
3858 3918
@@ -3866,7 +3926,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3866 } 3926 }
3867 } 3927 }
3868 3928
3869 public LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index) 3929 public LSL_Integer llList2Integer(LSL_List src, int index)
3870 { 3930 {
3871 m_host.AddScriptLPS(1); 3931 m_host.AddScriptLPS(1);
3872 if (index < 0) 3932 if (index < 0)
@@ -3879,12 +3939,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3879 } 3939 }
3880 try 3940 try
3881 { 3941 {
3882 if (src.Data[index] is LSL_Types.LSLInteger) 3942 if (src.Data[index] is LSL_Integer)
3883 return Convert.ToInt32(((LSL_Types.LSLInteger) src.Data[index]).value); 3943 return Convert.ToInt32(((LSL_Integer) src.Data[index]).value);
3884 else if (src.Data[index] is LSL_Types.LSLFloat) 3944 else if (src.Data[index] is LSL_Float)
3885 return Convert.ToInt32(((LSL_Types.LSLFloat) src.Data[index]).value); 3945 return Convert.ToInt32(((LSL_Float) src.Data[index]).value);
3886 else if (src.Data[index] is LSL_Types.LSLString) 3946 else if (src.Data[index] is LSL_String)
3887 return Convert.ToInt32(((LSL_Types.LSLString) src.Data[index]).m_string); 3947 return Convert.ToInt32(((LSL_String) src.Data[index]).m_string);
3888 return Convert.ToInt32(src.Data[index]); 3948 return Convert.ToInt32(src.Data[index]);
3889 } 3949 }
3890 catch (FormatException) 3950 catch (FormatException)
@@ -3893,7 +3953,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3893 } 3953 }
3894 } 3954 }
3895 3955
3896 public LSL_Types.LSLFloat llList2Float(LSL_Types.list src, int index) 3956 public LSL_Float llList2Float(LSL_List src, int index)
3897 { 3957 {
3898 m_host.AddScriptLPS(1); 3958 m_host.AddScriptLPS(1);
3899 if (index < 0) 3959 if (index < 0)
@@ -3906,12 +3966,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3906 } 3966 }
3907 try 3967 try
3908 { 3968 {
3909 if (src.Data[index] is LSL_Types.LSLInteger) 3969 if (src.Data[index] is LSL_Integer)
3910 return Convert.ToDouble(((LSL_Types.LSLInteger) src.Data[index]).value); 3970 return Convert.ToDouble(((LSL_Integer) src.Data[index]).value);
3911 else if (src.Data[index] is LSL_Types.LSLFloat) 3971 else if (src.Data[index] is LSL_Float)
3912 return Convert.ToDouble(((LSL_Types.LSLFloat) src.Data[index]).value); 3972 return Convert.ToDouble(((LSL_Float) src.Data[index]).value);
3913 else if (src.Data[index] is LSL_Types.LSLString) 3973 else if (src.Data[index] is LSL_String)
3914 return Convert.ToDouble(((LSL_Types.LSLString) src.Data[index]).m_string); 3974 return Convert.ToDouble(((LSL_String) src.Data[index]).m_string);
3915 return Convert.ToDouble(src.Data[index]); 3975 return Convert.ToDouble(src.Data[index]);
3916 } 3976 }
3917 catch (FormatException) 3977 catch (FormatException)
@@ -3920,7 +3980,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3920 } 3980 }
3921 } 3981 }
3922 3982
3923 public LSL_Types.LSLString llList2String(LSL_Types.list src, int index) 3983 public LSL_String llList2String(LSL_List src, int index)
3924 { 3984 {
3925 m_host.AddScriptLPS(1); 3985 m_host.AddScriptLPS(1);
3926 if (index < 0) 3986 if (index < 0)
@@ -3934,7 +3994,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3934 return src.Data[index].ToString(); 3994 return src.Data[index].ToString();
3935 } 3995 }
3936 3996
3937 public LSL_Types.LSLString llList2Key(LSL_Types.list src, int index) 3997 public LSL_String llList2Key(LSL_List src, int index)
3938 { 3998 {
3939 m_host.AddScriptLPS(1); 3999 m_host.AddScriptLPS(1);
3940 if (index < 0) 4000 if (index < 0)
@@ -3948,7 +4008,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3948 return src.Data[index].ToString(); 4008 return src.Data[index].ToString();
3949 } 4009 }
3950 4010
3951 public LSL_Types.Vector3 llList2Vector(LSL_Types.list src, int index) 4011 public LSL_Vector llList2Vector(LSL_List src, int index)
3952 { 4012 {
3953 m_host.AddScriptLPS(1); 4013 m_host.AddScriptLPS(1);
3954 if (index < 0) 4014 if (index < 0)
@@ -3957,19 +4017,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3957 } 4017 }
3958 if (index >= src.Length) 4018 if (index >= src.Length)
3959 { 4019 {
3960 return new LSL_Types.Vector3(0, 0, 0); 4020 return new LSL_Vector(0, 0, 0);
3961 } 4021 }
3962 if (src.Data[index].GetType() == typeof(LSL_Types.Vector3)) 4022 if (src.Data[index].GetType() == typeof(LSL_Vector))
3963 { 4023 {
3964 return (LSL_Types.Vector3)src.Data[index]; 4024 return (LSL_Vector)src.Data[index];
3965 } 4025 }
3966 else 4026 else
3967 { 4027 {
3968 return new LSL_Types.Vector3(src.Data[index].ToString()); 4028 return new LSL_Vector(src.Data[index].ToString());
3969 } 4029 }
3970 } 4030 }
3971 4031
3972 public LSL_Types.Quaternion llList2Rot(LSL_Types.list src, int index) 4032 public LSL_Rotation llList2Rot(LSL_List src, int index)
3973 { 4033 {
3974 m_host.AddScriptLPS(1); 4034 m_host.AddScriptLPS(1);
3975 if (index < 0) 4035 if (index < 0)
@@ -3978,30 +4038,30 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3978 } 4038 }
3979 if (index >= src.Length) 4039 if (index >= src.Length)
3980 { 4040 {
3981 return new LSL_Types.Quaternion(0, 0, 0, 1); 4041 return new LSL_Rotation(0, 0, 0, 1);
3982 } 4042 }
3983 if (src.Data[index].GetType() == typeof(LSL_Types.Quaternion)) 4043 if (src.Data[index].GetType() == typeof(LSL_Rotation))
3984 { 4044 {
3985 return (LSL_Types.Quaternion)src.Data[index]; 4045 return (LSL_Rotation)src.Data[index];
3986 } 4046 }
3987 else 4047 else
3988 { 4048 {
3989 return new LSL_Types.Quaternion(src.Data[index].ToString()); 4049 return new LSL_Rotation(src.Data[index].ToString());
3990 } 4050 }
3991 } 4051 }
3992 4052
3993 public LSL_Types.list llList2List(LSL_Types.list src, int start, int end) 4053 public LSL_List llList2List(LSL_List src, int start, int end)
3994 { 4054 {
3995 m_host.AddScriptLPS(1); 4055 m_host.AddScriptLPS(1);
3996 return src.GetSublist(start, end); 4056 return src.GetSublist(start, end);
3997 } 4057 }
3998 4058
3999 public LSL_Types.list llDeleteSubList(LSL_Types.list src, int start, int end) 4059 public LSL_List llDeleteSubList(LSL_List src, int start, int end)
4000 { 4060 {
4001 return src.DeleteSublist(end, start); 4061 return src.DeleteSublist(end, start);
4002 } 4062 }
4003 4063
4004 public LSL_Types.LSLInteger llGetListEntryType(LSL_Types.list src, int index) 4064 public LSL_Integer llGetListEntryType(LSL_List src, int index)
4005 { 4065 {
4006 m_host.AddScriptLPS(1); 4066 m_host.AddScriptLPS(1);
4007 if (index < 0) 4067 if (index < 0)
@@ -4013,11 +4073,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4013 return 0; 4073 return 0;
4014 } 4074 }
4015 4075
4016 if (src.Data[index] is LSL_Types.LSLInteger || src.Data[index] is Int32) 4076 if (src.Data[index] is LSL_Integer || src.Data[index] is Int32)
4017 return 1; 4077 return 1;
4018 if (src.Data[index] is LSL_Types.LSLFloat || src.Data[index] is Single || src.Data[index] is Double) 4078 if (src.Data[index] is LSL_Float || src.Data[index] is Single || src.Data[index] is Double)
4019 return 2; 4079 return 2;
4020 if (src.Data[index] is LSL_Types.LSLString || src.Data[index] is String) 4080 if (src.Data[index] is LSL_String || src.Data[index] is String)
4021 { 4081 {
4022 UUID tuuid; 4082 UUID tuuid;
4023 if (UUID.TryParse(src.Data[index].ToString(), out tuuid)) 4083 if (UUID.TryParse(src.Data[index].ToString(), out tuuid))
@@ -4029,11 +4089,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4029 return 3; 4089 return 3;
4030 } 4090 }
4031 } 4091 }
4032 if (src.Data[index] is LSL_Types.Vector3) 4092 if (src.Data[index] is LSL_Vector)
4033 return 5; 4093 return 5;
4034 if (src.Data[index] is LSL_Types.Quaternion) 4094 if (src.Data[index] is LSL_Rotation)
4035 return 6; 4095 return 6;
4036 if (src.Data[index] is LSL_Types.list) 4096 if (src.Data[index] is LSL_List)
4037 return 7; 4097 return 7;
4038 return 0; 4098 return 0;
4039 4099
@@ -4046,7 +4106,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4046 /// each comma. 4106 /// each comma.
4047 /// </summary> 4107 /// </summary>
4048 4108
4049 public LSL_Types.LSLString llList2CSV(LSL_Types.list src) 4109 public LSL_String llList2CSV(LSL_List src)
4050 { 4110 {
4051 4111
4052 string ret = String.Empty; 4112 string ret = String.Empty;
@@ -4074,10 +4134,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4074 /// before or after an element is trimmed. 4134 /// before or after an element is trimmed.
4075 /// </summary> 4135 /// </summary>
4076 4136
4077 public LSL_Types.list llCSV2List(string src) 4137 public LSL_List llCSV2List(string src)
4078 { 4138 {
4079 4139
4080 LSL_Types.list result = new LSL_Types.list(); 4140 LSL_List result = new LSL_List();
4081 int parens = 0; 4141 int parens = 0;
4082 int start = 0; 4142 int start = 0;
4083 int length = 0; 4143 int length = 0;
@@ -4131,9 +4191,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4131 /// sizes. 4191 /// sizes.
4132 /// </remarks> 4192 /// </remarks>
4133 4193
4134 public LSL_Types.list llListRandomize(LSL_Types.list src, int stride) 4194 public LSL_List llListRandomize(LSL_List src, int stride)
4135 { 4195 {
4136 LSL_Types.list result; 4196 LSL_List result;
4137 Random rand = new Random(); 4197 Random rand = new Random();
4138 4198
4139 int chunkk; 4199 int chunkk;
@@ -4174,7 +4234,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4174 4234
4175 // Construct the randomized list 4235 // Construct the randomized list
4176 4236
4177 result = new LSL_Types.list(); 4237 result = new LSL_List();
4178 4238
4179 for (int i = 0; i < chunkk; i++) 4239 for (int i = 0; i < chunkk; i++)
4180 { 4240 {
@@ -4187,7 +4247,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4187 else { 4247 else {
4188 object[] array = new object[src.Length]; 4248 object[] array = new object[src.Length];
4189 Array.Copy(src.Data, 0, array, 0, src.Length); 4249 Array.Copy(src.Data, 0, array, 0, src.Length);
4190 result = new LSL_Types.list(array); 4250 result = new LSL_List(array);
4191 } 4251 }
4192 4252
4193 return result; 4253 return result;
@@ -4201,10 +4261,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4201 /// range are included in the result. 4261 /// range are included in the result.
4202 /// </summary> 4262 /// </summary>
4203 4263
4204 public LSL_Types.list llList2ListStrided(LSL_Types.list src, int start, int end, int stride) 4264 public LSL_List llList2ListStrided(LSL_List src, int start, int end, int stride)
4205 { 4265 {
4206 4266
4207 LSL_Types.list result = new LSL_Types.list(); 4267 LSL_List result = new LSL_List();
4208 int[] si = new int[2]; 4268 int[] si = new int[2];
4209 int[] ei = new int[2]; 4269 int[] ei = new int[2];
4210 bool twopass = false; 4270 bool twopass = false;
@@ -4281,10 +4341,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4281 return result; 4341 return result;
4282 } 4342 }
4283 4343
4284 public LSL_Types.Vector3 llGetRegionCorner() 4344 public LSL_Integer llGetRegionAgentCount()
4345 {
4346 m_host.AddScriptLPS(1);
4347 NotImplemented("llGetRegionAgentCount");
4348 return new LSL_Integer(0);
4349 }
4350
4351 public LSL_Vector llGetRegionCorner()
4285 { 4352 {
4286 m_host.AddScriptLPS(1); 4353 m_host.AddScriptLPS(1);
4287 return new LSL_Types.Vector3(World.RegionInfo.RegionLocX * Constants.RegionSize, World.RegionInfo.RegionLocY * Constants.RegionSize, 0); 4354 return new LSL_Vector(World.RegionInfo.RegionLocX * Constants.RegionSize, World.RegionInfo.RegionLocY * Constants.RegionSize, 0);
4288 } 4355 }
4289 4356
4290 /// <summary> 4357 /// <summary>
@@ -4293,11 +4360,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4293 /// new element has the index specified by <index> 4360 /// new element has the index specified by <index>
4294 /// </summary> 4361 /// </summary>
4295 4362
4296 public LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int index) 4363 public LSL_List llListInsertList(LSL_List dest, LSL_List src, int index)
4297 { 4364 {
4298 4365
4299 LSL_Types.list pref = null; 4366 LSL_List pref = null;
4300 LSL_Types.list suff = null; 4367 LSL_List suff = null;
4301 4368
4302 m_host.AddScriptLPS(1); 4369 m_host.AddScriptLPS(1);
4303 4370
@@ -4343,7 +4410,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4343 /// in src. 4410 /// in src.
4344 /// </summary> 4411 /// </summary>
4345 4412
4346 public LSL_Types.LSLInteger llListFindList(LSL_Types.list src, LSL_Types.list test) 4413 public LSL_Integer llListFindList(LSL_List src, LSL_List test)
4347 { 4414 {
4348 4415
4349 int index = -1; 4416 int index = -1;
@@ -4376,7 +4443,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4376 4443
4377 } 4444 }
4378 4445
4379 public LSL_Types.LSLString llGetObjectName() 4446 public LSL_String llGetObjectName()
4380 { 4447 {
4381 m_host.AddScriptLPS(1); 4448 m_host.AddScriptLPS(1);
4382 return m_host.Name!=null?m_host.Name:String.Empty; 4449 return m_host.Name!=null?m_host.Name:String.Empty;
@@ -4388,7 +4455,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4388 m_host.Name = name!=null?name:String.Empty; 4455 m_host.Name = name!=null?name:String.Empty;
4389 } 4456 }
4390 4457
4391 public LSL_Types.LSLString llGetDate() 4458 public LSL_String llGetDate()
4392 { 4459 {
4393 m_host.AddScriptLPS(1); 4460 m_host.AddScriptLPS(1);
4394 DateTime date = DateTime.Now.ToUniversalTime(); 4461 DateTime date = DateTime.Now.ToUniversalTime();
@@ -4396,14 +4463,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4396 return result; 4463 return result;
4397 } 4464 }
4398 4465
4399 public LSL_Types.LSLInteger llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir) 4466 public LSL_Integer llEdgeOfWorld(LSL_Vector pos, LSL_Vector dir)
4400 { 4467 {
4401 m_host.AddScriptLPS(1); 4468 m_host.AddScriptLPS(1);
4402 NotImplemented("llEdgeOfWorld"); 4469 NotImplemented("llEdgeOfWorld");
4403 return 0; 4470 return 0;
4404 } 4471 }
4405 4472
4406 public LSL_Types.LSLInteger llGetAgentInfo(string id) 4473 public LSL_Integer llGetAgentInfo(string id)
4407 { 4474 {
4408 m_host.AddScriptLPS(1); 4475 m_host.AddScriptLPS(1);
4409 NotImplemented("llGetAgentInfo"); 4476 NotImplemented("llGetAgentInfo");
@@ -4429,7 +4496,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4429 m_host.SoundRadius = radius; 4496 m_host.SoundRadius = radius;
4430 } 4497 }
4431 4498
4432 public LSL_Types.LSLString llKey2Name(string id) 4499 public LSL_String llKey2Name(string id)
4433 { 4500 {
4434 m_host.AddScriptLPS(1); 4501 m_host.AddScriptLPS(1);
4435 UUID key = new UUID(); 4502 UUID key = new UUID();
@@ -4475,8 +4542,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4475 m_host.ParentGroup.HasGroupChanged = true; 4542 m_host.ParentGroup.HasGroupChanged = true;
4476 } 4543 }
4477 4544
4478 public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, 4545 public void llTriggerSoundLimited(string sound, double volume, LSL_Vector top_north_east,
4479 LSL_Types.Vector3 bottom_south_west) 4546 LSL_Vector bottom_south_west)
4480 { 4547 {
4481 m_host.AddScriptLPS(1); 4548 m_host.AddScriptLPS(1);
4482 NotImplemented("llTriggerSoundLimited"); 4549 NotImplemented("llTriggerSoundLimited");
@@ -4499,10 +4566,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4499 // ScriptSleep(5000); 4566 // ScriptSleep(5000);
4500 } 4567 }
4501 4568
4502 public LSL_Types.list llParseString2List(string str, LSL_Types.list separators, LSL_Types.list spacers) 4569 public LSL_List llParseString2List(string str, LSL_List separators, LSL_List spacers)
4503 { 4570 {
4504 m_host.AddScriptLPS(1); 4571 m_host.AddScriptLPS(1);
4505 LSL_Types.list ret = new LSL_Types.list(); 4572 LSL_List ret = new LSL_List();
4506 object[] delimiters = new object[separators.Length + spacers.Length]; 4573 object[] delimiters = new object[separators.Length + spacers.Length];
4507 separators.Data.CopyTo(delimiters, 0); 4574 separators.Data.CopyTo(delimiters, 0);
4508 spacers.Data.CopyTo(delimiters, separators.Length); 4575 spacers.Data.CopyTo(delimiters, separators.Length);
@@ -4555,7 +4622,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4555 return ret; 4622 return ret;
4556 } 4623 }
4557 4624
4558 public LSL_Types.LSLInteger llOverMyLand(string id) 4625 public LSL_Integer llOverMyLand(string id)
4559 { 4626 {
4560 m_host.AddScriptLPS(1); 4627 m_host.AddScriptLPS(1);
4561 UUID key = new UUID(); 4628 UUID key = new UUID();
@@ -4578,17 +4645,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4578 return 0; 4645 return 0;
4579 } 4646 }
4580 4647
4581 public LSL_Types.LSLString llGetLandOwnerAt(LSL_Types.Vector3 pos) 4648 public LSL_String llGetLandOwnerAt(LSL_Vector pos)
4582 { 4649 {
4583 m_host.AddScriptLPS(1); 4650 m_host.AddScriptLPS(1);
4584 return World.GetLandOwner((float)pos.x, (float)pos.y).ToString(); 4651 return World.GetLandOwner((float)pos.x, (float)pos.y).ToString();
4585 } 4652 }
4586 4653
4587 public LSL_Types.Vector3 llGetAgentSize(string id) 4654 public LSL_Vector llGetAgentSize(string id)
4588 { 4655 {
4589 m_host.AddScriptLPS(1); 4656 m_host.AddScriptLPS(1);
4590 ScenePresence avatar = World.GetScenePresence(id); 4657 ScenePresence avatar = World.GetScenePresence(id);
4591 LSL_Types.Vector3 agentSize; 4658 LSL_Vector agentSize;
4592 if (avatar == null) 4659 if (avatar == null)
4593 { 4660 {
4594 agentSize = ScriptBaseClass.ZERO_VECTOR; 4661 agentSize = ScriptBaseClass.ZERO_VECTOR;
@@ -4596,25 +4663,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4596 else 4663 else
4597 { 4664 {
4598 PhysicsVector size = avatar.PhysicsActor.Size; 4665 PhysicsVector size = avatar.PhysicsActor.Size;
4599 agentSize = new LSL_Types.Vector3(size.X, size.Y, size.Z); 4666 agentSize = new LSL_Vector(size.X, size.Y, size.Z);
4600 } 4667 }
4601 return agentSize; 4668 return agentSize;
4602 } 4669 }
4603 4670
4604 public LSL_Types.LSLInteger llSameGroup(string agent) 4671 public LSL_Integer llSameGroup(string agent)
4605 { 4672 {
4606 m_host.AddScriptLPS(1); 4673 m_host.AddScriptLPS(1);
4607 UUID agentId = new UUID(); 4674 UUID agentId = new UUID();
4608 if (!UUID.TryParse(agent, out agentId)) 4675 if (!UUID.TryParse(agent, out agentId))
4609 return new LSL_Types.LSLInteger(0); 4676 return new LSL_Integer(0);
4610 ScenePresence presence = World.GetScenePresence(agentId); 4677 ScenePresence presence = World.GetScenePresence(agentId);
4611 if (presence == null) 4678 if (presence == null)
4612 return new LSL_Types.LSLInteger(0); 4679 return new LSL_Integer(0);
4613 IClientAPI client = presence.ControllingClient; 4680 IClientAPI client = presence.ControllingClient;
4614 if (m_host.GroupID == client.ActiveGroupId) 4681 if (m_host.GroupID == client.ActiveGroupId)
4615 return new LSL_Types.LSLInteger(1); 4682 return new LSL_Integer(1);
4616 else 4683 else
4617 return new LSL_Types.LSLInteger(0); 4684 return new LSL_Integer(0);
4618 } 4685 }
4619 4686
4620 public void llUnSit(string id) 4687 public void llUnSit(string id)
@@ -4660,7 +4727,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4660 4727
4661 } 4728 }
4662 4729
4663 public LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset) 4730 public LSL_Vector llGroundSlope(LSL_Vector offset)
4664 { 4731 {
4665 m_host.AddScriptLPS(1); 4732 m_host.AddScriptLPS(1);
4666 4733
@@ -4670,15 +4737,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4670 4737
4671 Vector3 p0 = new Vector3(pos.X, pos.Y, 4738 Vector3 p0 = new Vector3(pos.X, pos.Y,
4672 (float)llGround( 4739 (float)llGround(
4673 new LSL_Types.Vector3(pos.X, pos.Y, pos.Z) 4740 new LSL_Vector(pos.X, pos.Y, pos.Z)
4674 )); 4741 ));
4675 Vector3 p1 = new Vector3(pos.X + 1, pos.Y, 4742 Vector3 p1 = new Vector3(pos.X + 1, pos.Y,
4676 (float)llGround( 4743 (float)llGround(
4677 new LSL_Types.Vector3(pos.X + 1, pos.Y, pos.Z) 4744 new LSL_Vector(pos.X + 1, pos.Y, pos.Z)
4678 )); 4745 ));
4679 Vector3 p2 = new Vector3(pos.X, pos.Y + 1, 4746 Vector3 p2 = new Vector3(pos.X, pos.Y + 1,
4680 (float)llGround( 4747 (float)llGround(
4681 new LSL_Types.Vector3(pos.X, pos.Y + 1, pos.Z) 4748 new LSL_Vector(pos.X, pos.Y + 1, pos.Z)
4682 )); 4749 ));
4683 4750
4684 Vector3 v0 = new Vector3( 4751 Vector3 v0 = new Vector3(
@@ -4694,50 +4761,50 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4694 tv.Y = (v0.Z * v1.X) - (v0.X * v1.Z); 4761 tv.Y = (v0.Z * v1.X) - (v0.X * v1.Z);
4695 tv.Z = (v0.X * v1.Y) - (v0.Y * v1.X); 4762 tv.Z = (v0.X * v1.Y) - (v0.Y * v1.X);
4696 4763
4697 return new LSL_Types.Vector3(tv.X, tv.Y, tv.Z); 4764 return new LSL_Vector(tv.X, tv.Y, tv.Z);
4698 } 4765 }
4699 4766
4700 public LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset) 4767 public LSL_Vector llGroundNormal(LSL_Vector offset)
4701 { 4768 {
4702 m_host.AddScriptLPS(1); 4769 m_host.AddScriptLPS(1);
4703 LSL_Types.Vector3 x = llGroundSlope(offset); 4770 LSL_Vector x = llGroundSlope(offset);
4704 return new LSL_Types.Vector3(x.x, x.y, 1.0); 4771 return new LSL_Vector(x.x, x.y, 1.0);
4705 } 4772 }
4706 4773
4707 public LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset) 4774 public LSL_Vector llGroundContour(LSL_Vector offset)
4708 { 4775 {
4709 m_host.AddScriptLPS(1); 4776 m_host.AddScriptLPS(1);
4710 LSL_Types.Vector3 x = llGroundSlope(offset); 4777 LSL_Vector x = llGroundSlope(offset);
4711 return new LSL_Types.Vector3(-x.y, x.x, 0.0); 4778 return new LSL_Vector(-x.y, x.x, 0.0);
4712 } 4779 }
4713 4780
4714 public LSL_Types.LSLInteger llGetAttached() 4781 public LSL_Integer llGetAttached()
4715 { 4782 {
4716 m_host.AddScriptLPS(1); 4783 m_host.AddScriptLPS(1);
4717 NotImplemented("llGetAttached"); 4784 NotImplemented("llGetAttached");
4718 return 0; 4785 return 0;
4719 } 4786 }
4720 4787
4721 public LSL_Types.LSLInteger llGetFreeMemory() 4788 public LSL_Integer llGetFreeMemory()
4722 { 4789 {
4723 m_host.AddScriptLPS(1); 4790 m_host.AddScriptLPS(1);
4724 // Make scripts designed for LSO happy 4791 // Make scripts designed for LSO happy
4725 return 16384; 4792 return 16384;
4726 } 4793 }
4727 4794
4728 public LSL_Types.LSLString llGetRegionName() 4795 public LSL_String llGetRegionName()
4729 { 4796 {
4730 m_host.AddScriptLPS(1); 4797 m_host.AddScriptLPS(1);
4731 return World.RegionInfo.RegionName; 4798 return World.RegionInfo.RegionName;
4732 } 4799 }
4733 4800
4734 public LSL_Types.LSLFloat llGetRegionTimeDilation() 4801 public LSL_Float llGetRegionTimeDilation()
4735 { 4802 {
4736 m_host.AddScriptLPS(1); 4803 m_host.AddScriptLPS(1);
4737 return (double)World.TimeDilation; 4804 return (double)World.TimeDilation;
4738 } 4805 }
4739 4806
4740 public LSL_Types.LSLFloat llGetRegionFPS() 4807 public LSL_Float llGetRegionFPS()
4741 { 4808 {
4742 m_host.AddScriptLPS(1); 4809 m_host.AddScriptLPS(1);
4743 //TODO: return actual FPS 4810 //TODO: return actual FPS
@@ -4803,7 +4870,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4803 return ps; 4870 return ps;
4804 } 4871 }
4805 4872
4806 public void llParticleSystem(LSL_Types.list rules) 4873 public void llParticleSystem(LSL_List rules)
4807 { 4874 {
4808 m_host.AddScriptLPS(1); 4875 m_host.AddScriptLPS(1);
4809 if (rules.Length == 0) 4876 if (rules.Length == 0)
@@ -4814,7 +4881,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4814 else 4881 else
4815 { 4882 {
4816 Primitive.ParticleSystem prules = getNewParticleSystemWithSLDefaultValues(); 4883 Primitive.ParticleSystem prules = getNewParticleSystemWithSLDefaultValues();
4817 LSL_Types.Vector3 tempv = new LSL_Types.Vector3(); 4884 LSL_Vector tempv = new LSL_Vector();
4818 4885
4819 float tempf = 0; 4886 float tempf = 0;
4820 4887
@@ -4968,7 +5035,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4968 return UUID.Zero; 5035 return UUID.Zero;
4969 } 5036 }
4970 5037
4971 public void llGiveInventoryList(string destination, string category, LSL_Types.list inventory) 5038 public void llGiveInventoryList(string destination, string category, LSL_List inventory)
4972 { 5039 {
4973 m_host.AddScriptLPS(1); 5040 m_host.AddScriptLPS(1);
4974 5041
@@ -5017,13 +5084,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5017 NotImplemented("llSetVehicleFloatParam"); 5084 NotImplemented("llSetVehicleFloatParam");
5018 } 5085 }
5019 5086
5020 public void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec) 5087 public void llSetVehicleVectorParam(int param, LSL_Vector vec)
5021 { 5088 {
5022 m_host.AddScriptLPS(1); 5089 m_host.AddScriptLPS(1);
5023 NotImplemented("llSetVehicleVectorParam"); 5090 NotImplemented("llSetVehicleVectorParam");
5024 } 5091 }
5025 5092
5026 public void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot) 5093 public void llSetVehicleRotationParam(int param, LSL_Rotation rot)
5027 { 5094 {
5028 m_host.AddScriptLPS(1); 5095 m_host.AddScriptLPS(1);
5029 NotImplemented("llSetVehicleRotationParam"); 5096 NotImplemented("llSetVehicleRotationParam");
@@ -5041,7 +5108,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5041 NotImplemented("llRemoveVehicleFlags"); 5108 NotImplemented("llRemoveVehicleFlags");
5042 } 5109 }
5043 5110
5044 public void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot) 5111 public void llSitTarget(LSL_Vector offset, LSL_Rotation rot)
5045 { 5112 {
5046 m_host.AddScriptLPS(1); 5113 m_host.AddScriptLPS(1);
5047 // LSL quaternions can normalize to 0, normal Quaternions can't. 5114 // LSL quaternions can normalize to 0, normal Quaternions can't.
@@ -5052,7 +5119,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5052 m_host.SitTargetOrientation = new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s); 5119 m_host.SitTargetOrientation = new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s);
5053 } 5120 }
5054 5121
5055 public LSL_Types.LSLString llAvatarOnSitTarget() 5122 public LSL_String llAvatarOnSitTarget()
5056 { 5123 {
5057 m_host.AddScriptLPS(1); 5124 m_host.AddScriptLPS(1);
5058 return m_host.GetAvatarOnSitTarget().ToString(); 5125 return m_host.GetAvatarOnSitTarget().ToString();
@@ -5089,19 +5156,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5089 m_host.SitName = text; 5156 m_host.SitName = text;
5090 } 5157 }
5091 5158
5092 public void llSetCameraEyeOffset(LSL_Types.Vector3 offset) 5159 public void llSetCameraEyeOffset(LSL_Vector offset)
5093 { 5160 {
5094 m_host.AddScriptLPS(1); 5161 m_host.AddScriptLPS(1);
5095 m_host.SetCameraEyeOffset(new Vector3((float)offset.x, (float)offset.y, (float)offset.z)); 5162 m_host.SetCameraEyeOffset(new Vector3((float)offset.x, (float)offset.y, (float)offset.z));
5096 } 5163 }
5097 5164
5098 public void llSetCameraAtOffset(LSL_Types.Vector3 offset) 5165 public void llSetCameraAtOffset(LSL_Vector offset)
5099 { 5166 {
5100 m_host.AddScriptLPS(1); 5167 m_host.AddScriptLPS(1);
5101 m_host.SetCameraAtOffset(new Vector3((float)offset.x, (float)offset.y, (float)offset.z)); 5168 m_host.SetCameraAtOffset(new Vector3((float)offset.x, (float)offset.y, (float)offset.z));
5102 } 5169 }
5103 5170
5104 public LSL_Types.LSLString llDumpList2String(LSL_Types.list src, string seperator) 5171 public LSL_String llDumpList2String(LSL_List src, string seperator)
5105 { 5172 {
5106 m_host.AddScriptLPS(1); 5173 m_host.AddScriptLPS(1);
5107 if (src.Length == 0) 5174 if (src.Length == 0)
@@ -5117,7 +5184,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5117 return ret; 5184 return ret;
5118 } 5185 }
5119 5186
5120 public LSL_Types.LSLInteger llScriptDanger(LSL_Types.Vector3 pos) 5187 public LSL_Integer llScriptDanger(LSL_Vector pos)
5121 { 5188 {
5122 m_host.AddScriptLPS(1); 5189 m_host.AddScriptLPS(1);
5123 bool result = World.scriptDanger(m_host.LocalId, new Vector3((float)pos.x, (float)pos.y, (float)pos.z)); 5190 bool result = World.scriptDanger(m_host.LocalId, new Vector3((float)pos.x, (float)pos.y, (float)pos.z));
@@ -5132,7 +5199,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5132 5199
5133 } 5200 }
5134 5201
5135 public void llDialog(string avatar, string message, LSL_Types.list buttons, int chat_channel) 5202 public void llDialog(string avatar, string message, LSL_List buttons, int chat_channel)
5136 { 5203 {
5137 m_host.AddScriptLPS(1); 5204 m_host.AddScriptLPS(1);
5138 UUID av = new UUID(); 5205 UUID av = new UUID();
@@ -5188,7 +5255,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5188 ShoutError("llResetOtherScript: script "+name+" not found"); 5255 ShoutError("llResetOtherScript: script "+name+" not found");
5189 } 5256 }
5190 5257
5191 public LSL_Types.LSLInteger llGetScriptState(string name) 5258 public LSL_Integer llGetScriptState(string name)
5192 { 5259 {
5193 UUID item; 5260 UUID item;
5194 5261
@@ -5273,7 +5340,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5273 if (xmlrpcMod.IsEnabled()) 5340 if (xmlrpcMod.IsEnabled())
5274 { 5341 {
5275 UUID channelID = xmlrpcMod.OpenXMLRPCChannel(m_localID, m_itemID, UUID.Zero); 5342 UUID channelID = xmlrpcMod.OpenXMLRPCChannel(m_localID, m_itemID, UUID.Zero);
5276 object[] resobj = new object[] { new LSL_Types.LSLInteger(1), new LSL_Types.LSLString(channelID.ToString()), new LSL_Types.LSLString(UUID.Zero.ToString()), new LSL_Types.LSLString(String.Empty), new LSL_Types.LSLInteger(0), new LSL_Types.LSLString(String.Empty) }; 5343 object[] resobj = new object[] { new LSL_Integer(1), new LSL_String(channelID.ToString()), new LSL_String(UUID.Zero.ToString()), new LSL_String(String.Empty), new LSL_Integer(0), new LSL_String(String.Empty) };
5277 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams( 5344 m_ScriptEngine.PostScriptEvent(m_itemID, new EventParams(
5278 "remote_data", resobj, 5345 "remote_data", resobj,
5279 new DetectParams[0])); 5346 new DetectParams[0]));
@@ -5281,7 +5348,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5281 // ScriptSleep(1000); 5348 // ScriptSleep(1000);
5282 } 5349 }
5283 5350
5284 public LSL_Types.LSLString llSendRemoteData(string channel, string dest, int idata, string sdata) 5351 public LSL_String llSendRemoteData(string channel, string dest, int idata, string sdata)
5285 { 5352 {
5286 m_host.AddScriptLPS(1); 5353 m_host.AddScriptLPS(1);
5287 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>(); 5354 IXMLRPC xmlrpcMod = m_ScriptEngine.World.RequestModuleInterface<IXMLRPC>();
@@ -5305,13 +5372,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5305 // ScriptSleep(1000); 5372 // ScriptSleep(1000);
5306 } 5373 }
5307 5374
5308 public LSL_Types.LSLString llMD5String(string src, int nonce) 5375 public LSL_String llMD5String(string src, int nonce)
5309 { 5376 {
5310 m_host.AddScriptLPS(1); 5377 m_host.AddScriptLPS(1);
5311 return Util.Md5Hash(src + ":" + nonce.ToString()); 5378 return Util.Md5Hash(src + ":" + nonce.ToString());
5312 } 5379 }
5313 5380
5314 private ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist) 5381 private ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist)
5315 { 5382 {
5316 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); 5383 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock();
5317 5384
@@ -5381,7 +5448,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5381 return shapeBlock; 5448 return shapeBlock;
5382 } 5449 }
5383 5450
5384 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 taper_b, LSL_Types.Vector3 topshear, byte fudge) 5451 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector taper_b, LSL_Vector topshear, byte fudge)
5385 { 5452 {
5386 ObjectShapePacket.ObjectDataBlock shapeBlock; 5453 ObjectShapePacket.ObjectDataBlock shapeBlock;
5387 5454
@@ -5429,7 +5496,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5429 part.UpdateShape(shapeBlock); 5496 part.UpdateShape(shapeBlock);
5430 } 5497 }
5431 5498
5432 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 dimple, byte fudge) 5499 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector dimple, byte fudge)
5433 { 5500 {
5434 ObjectShapePacket.ObjectDataBlock shapeBlock; 5501 ObjectShapePacket.ObjectDataBlock shapeBlock;
5435 5502
@@ -5470,7 +5537,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5470 part.UpdateShape(shapeBlock); 5537 part.UpdateShape(shapeBlock);
5471 } 5538 }
5472 5539
5473 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 holesize, LSL_Types.Vector3 topshear, LSL_Types.Vector3 profilecut, LSL_Types.Vector3 taper_a, float revolutions, float radiusoffset, float skew, byte fudge) 5540 private void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector holesize, LSL_Vector topshear, LSL_Vector profilecut, LSL_Vector taper_a, float revolutions, float radiusoffset, float skew, byte fudge)
5474 { 5541 {
5475 ObjectShapePacket.ObjectDataBlock shapeBlock; 5542 ObjectShapePacket.ObjectDataBlock shapeBlock;
5476 5543
@@ -5622,12 +5689,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5622 part.UpdateShape(shapeBlock); 5689 part.UpdateShape(shapeBlock);
5623 } 5690 }
5624 5691
5625 public void llSetPrimitiveParams(LSL_Types.list rules) 5692 public void llSetPrimitiveParams(LSL_List rules)
5626 { 5693 {
5627 SetPrimParams(m_host, rules); 5694 SetPrimParams(m_host, rules);
5628 } 5695 }
5629 5696
5630 public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules) 5697 public void llSetLinkPrimitiveParams(int linknumber, LSL_List rules)
5631 { 5698 {
5632 m_host.AddScriptLPS(1); 5699 m_host.AddScriptLPS(1);
5633 5700
@@ -5637,7 +5704,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5637 SetPrimParams(part, rules); 5704 SetPrimParams(part, rules);
5638 } 5705 }
5639 5706
5640 private void SetPrimParams(SceneObjectPart part, LSL_Types.list rules) 5707 private void SetPrimParams(SceneObjectPart part, LSL_List rules)
5641 { 5708 {
5642 int idx = 0; 5709 int idx = 0;
5643 5710
@@ -5648,7 +5715,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5648 int remain = rules.Length - idx; 5715 int remain = rules.Length - idx;
5649 5716
5650 int face; 5717 int face;
5651 LSL_Types.Vector3 v; 5718 LSL_Vector v;
5652 5719
5653 switch (code) 5720 switch (code)
5654 { 5721 {
@@ -5672,7 +5739,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5672 if (remain < 1) 5739 if (remain < 1)
5673 return; 5740 return;
5674 5741
5675 LSL_Types.Quaternion q = rules.GetQuaternionItem(idx++); 5742 LSL_Rotation q = rules.GetQuaternionItem(idx++);
5676 SetRot(part, q); 5743 SetRot(part, q);
5677 5744
5678 break; 5745 break;
@@ -5685,14 +5752,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5685 5752
5686 remain = rules.Length - idx; 5753 remain = rules.Length - idx;
5687 float hollow; 5754 float hollow;
5688 LSL_Types.Vector3 twist; 5755 LSL_Vector twist;
5689 LSL_Types.Vector3 taper_b; 5756 LSL_Vector taper_b;
5690 LSL_Types.Vector3 topshear; 5757 LSL_Vector topshear;
5691 float revolutions; 5758 float revolutions;
5692 float radiusoffset; 5759 float radiusoffset;
5693 float skew; 5760 float skew;
5694 LSL_Types.Vector3 holesize; 5761 LSL_Vector holesize;
5695 LSL_Types.Vector3 profilecut; 5762 LSL_Vector profilecut;
5696 5763
5697 switch (code) 5764 switch (code)
5698 { 5765 {
@@ -5829,8 +5896,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5829 5896
5830 face=(int)rules.GetLSLIntegerItem(idx++); 5897 face=(int)rules.GetLSLIntegerItem(idx++);
5831 string tex=rules.Data[idx++].ToString(); 5898 string tex=rules.Data[idx++].ToString();
5832 LSL_Types.Vector3 repeats=rules.GetVector3Item(idx++); 5899 LSL_Vector repeats=rules.GetVector3Item(idx++);
5833 LSL_Types.Vector3 offsets=rules.GetVector3Item(idx++); 5900 LSL_Vector offsets=rules.GetVector3Item(idx++);
5834 double rotation=(double)rules.GetLSLFloatItem(idx++); 5901 double rotation=(double)rules.GetLSLFloatItem(idx++);
5835 5902
5836 SetTexture(part, tex, face); 5903 SetTexture(part, tex, face);
@@ -5845,7 +5912,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5845 return; 5912 return;
5846 5913
5847 face=(int)rules.GetLSLIntegerItem(idx++); 5914 face=(int)rules.GetLSLIntegerItem(idx++);
5848 LSL_Types.Vector3 color=rules.GetVector3Item(idx++); 5915 LSL_Vector color=rules.GetVector3Item(idx++);
5849 double alpha=(double)rules.GetLSLFloatItem(idx++); 5916 double alpha=(double)rules.GetLSLFloatItem(idx++);
5850 5917
5851 SetColor(part, color, face); 5918 SetColor(part, color, face);
@@ -5862,7 +5929,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5862 float friction = (float)rules.GetLSLFloatItem(idx++); 5929 float friction = (float)rules.GetLSLFloatItem(idx++);
5863 float wind = (float)rules.GetLSLFloatItem(idx++); 5930 float wind = (float)rules.GetLSLFloatItem(idx++);
5864 float tension = (float)rules.GetLSLFloatItem(idx++); 5931 float tension = (float)rules.GetLSLFloatItem(idx++);
5865 LSL_Types.Vector3 force = rules.GetVector3Item(idx++); 5932 LSL_Vector force = rules.GetVector3Item(idx++);
5866 5933
5867 SetFlexi(part, flexi, softness, gravity, friction, wind, tension, force); 5934 SetFlexi(part, flexi, softness, gravity, friction, wind, tension, force);
5868 5935
@@ -5871,7 +5938,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5871 if (remain < 5) 5938 if (remain < 5)
5872 return; 5939 return;
5873 bool light = rules.GetLSLIntegerItem(idx++); 5940 bool light = rules.GetLSLIntegerItem(idx++);
5874 LSL_Types.Vector3 lightcolor = rules.GetVector3Item(idx++); 5941 LSL_Vector lightcolor = rules.GetVector3Item(idx++);
5875 float intensity = (float)rules.GetLSLFloatItem(idx++); 5942 float intensity = (float)rules.GetLSLFloatItem(idx++);
5876 float radius = (float)rules.GetLSLFloatItem(idx++); 5943 float radius = (float)rules.GetLSLFloatItem(idx++);
5877 float falloff = (float)rules.GetLSLFloatItem(idx++); 5944 float falloff = (float)rules.GetLSLFloatItem(idx++);
@@ -5951,7 +6018,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5951 } 6018 }
5952 } 6019 }
5953 6020
5954 public LSL_Types.LSLString llStringToBase64(string str) 6021 public LSL_String llStringToBase64(string str)
5955 { 6022 {
5956 m_host.AddScriptLPS(1); 6023 m_host.AddScriptLPS(1);
5957 try 6024 try
@@ -5967,7 +6034,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5967 } 6034 }
5968 } 6035 }
5969 6036
5970 public LSL_Types.LSLString llBase64ToString(string str) 6037 public LSL_String llBase64ToString(string str)
5971 { 6038 {
5972 m_host.AddScriptLPS(1); 6039 m_host.AddScriptLPS(1);
5973 UTF8Encoding encoder = new UTF8Encoding(); 6040 UTF8Encoding encoder = new UTF8Encoding();
@@ -6000,23 +6067,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6000 NotImplemented("llRemoteDataSetRegion"); 6067 NotImplemented("llRemoteDataSetRegion");
6001 } 6068 }
6002 6069
6003 public LSL_Types.LSLFloat llLog10(double val) 6070 public LSL_Float llLog10(double val)
6004 { 6071 {
6005 m_host.AddScriptLPS(1); 6072 m_host.AddScriptLPS(1);
6006 return (double)Math.Log10(val); 6073 return (double)Math.Log10(val);
6007 } 6074 }
6008 6075
6009 public LSL_Types.LSLFloat llLog(double val) 6076 public LSL_Float llLog(double val)
6010 { 6077 {
6011 m_host.AddScriptLPS(1); 6078 m_host.AddScriptLPS(1);
6012 return (double)Math.Log(val); 6079 return (double)Math.Log(val);
6013 } 6080 }
6014 6081
6015 public LSL_Types.list llGetAnimationList( string id ) 6082 public LSL_List llGetAnimationList( string id )
6016 { 6083 {
6017 m_host.AddScriptLPS(1); 6084 m_host.AddScriptLPS(1);
6018 6085
6019 LSL_Types.list l = new LSL_Types.list(); 6086 LSL_List l = new LSL_List();
6020 ScenePresence av = World.GetScenePresence(id); 6087 ScenePresence av = World.GetScenePresence(id);
6021 if (av == null) 6088 if (av == null)
6022 return l; 6089 return l;
@@ -6043,19 +6110,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6043 // ScriptSleep(2000); 6110 // ScriptSleep(2000);
6044 } 6111 }
6045 6112
6046 public LSL_Types.Vector3 llGetRootPosition() 6113 public LSL_Vector llGetRootPosition()
6047 { 6114 {
6048 m_host.AddScriptLPS(1); 6115 m_host.AddScriptLPS(1);
6049 return new LSL_Types.Vector3(m_host.ParentGroup.AbsolutePosition.X, m_host.ParentGroup.AbsolutePosition.Y, m_host.ParentGroup.AbsolutePosition.Z); 6116 return new LSL_Vector(m_host.ParentGroup.AbsolutePosition.X, m_host.ParentGroup.AbsolutePosition.Y, m_host.ParentGroup.AbsolutePosition.Z);
6050 } 6117 }
6051 6118
6052 public LSL_Types.Quaternion llGetRootRotation() 6119 public LSL_Rotation llGetRootRotation()
6053 { 6120 {
6054 m_host.AddScriptLPS(1); 6121 m_host.AddScriptLPS(1);
6055 return new LSL_Types.Quaternion(m_host.ParentGroup.GroupRotation.X, m_host.ParentGroup.GroupRotation.Y, m_host.ParentGroup.GroupRotation.Z, m_host.ParentGroup.GroupRotation.W); 6122 return new LSL_Rotation(m_host.ParentGroup.GroupRotation.X, m_host.ParentGroup.GroupRotation.Y, m_host.ParentGroup.GroupRotation.Z, m_host.ParentGroup.GroupRotation.W);
6056 } 6123 }
6057 6124
6058 public LSL_Types.LSLString llGetObjectDesc() 6125 public LSL_String llGetObjectDesc()
6059 { 6126 {
6060 return m_host.Description!=null?m_host.Description:String.Empty; 6127 return m_host.Description!=null?m_host.Description:String.Empty;
6061 } 6128 }
@@ -6066,13 +6133,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6066 m_host.Description = desc!=null?desc:String.Empty; 6133 m_host.Description = desc!=null?desc:String.Empty;
6067 } 6134 }
6068 6135
6069 public LSL_Types.LSLString llGetCreator() 6136 public LSL_String llGetCreator()
6070 { 6137 {
6071 m_host.AddScriptLPS(1); 6138 m_host.AddScriptLPS(1);
6072 return m_host.ObjectCreator.ToString(); 6139 return m_host.ObjectCreator.ToString();
6073 } 6140 }
6074 6141
6075 public LSL_Types.LSLString llGetTimestamp() 6142 public LSL_String llGetTimestamp()
6076 { 6143 {
6077 m_host.AddScriptLPS(1); 6144 m_host.AddScriptLPS(1);
6078 return DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ"); 6145 return DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ");
@@ -6156,29 +6223,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6156 } 6223 }
6157 } 6224 }
6158 6225
6159 public LSL_Types.LSLInteger llGetNumberOfPrims() 6226 public LSL_Integer llGetNumberOfPrims()
6160 { 6227 {
6161 m_host.AddScriptLPS(1); 6228 m_host.AddScriptLPS(1);
6162 return m_host.ParentGroup.PrimCount; 6229 return m_host.ParentGroup.PrimCount;
6163 } 6230 }
6164 6231
6165 public LSL_Types.list llGetBoundingBox(string obj) 6232 public LSL_List llGetBoundingBox(string obj)
6166 { 6233 {
6167 m_host.AddScriptLPS(1); 6234 m_host.AddScriptLPS(1);
6168 NotImplemented("llGetBoundingBox"); 6235 NotImplemented("llGetBoundingBox");
6169 return new LSL_Types.list(); 6236 return new LSL_List();
6170 } 6237 }
6171 6238
6172 public LSL_Types.Vector3 llGetGeometricCenter() 6239 public LSL_Vector llGetGeometricCenter()
6173 { 6240 {
6174 return new LSL_Types.Vector3(m_host.GetGeometricCenter().X, m_host.GetGeometricCenter().Y, m_host.GetGeometricCenter().Z); 6241 return new LSL_Vector(m_host.GetGeometricCenter().X, m_host.GetGeometricCenter().Y, m_host.GetGeometricCenter().Z);
6175 } 6242 }
6176 6243
6177 public LSL_Types.list llGetPrimitiveParams(LSL_Types.list rules) 6244 public LSL_List llGetPrimitiveParams(LSL_List rules)
6178 { 6245 {
6179 m_host.AddScriptLPS(1); 6246 m_host.AddScriptLPS(1);
6180 6247
6181 LSL_Types.list res = new LSL_Types.list(); 6248 LSL_List res = new LSL_List();
6182 int idx=0; 6249 int idx=0;
6183 while (idx < rules.Length) 6250 while (idx < rules.Length)
6184 { 6251 {
@@ -6188,44 +6255,44 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6188 switch (code) 6255 switch (code)
6189 { 6256 {
6190 case (int)ScriptBaseClass.PRIM_MATERIAL: 6257 case (int)ScriptBaseClass.PRIM_MATERIAL:
6191 res.Add(new LSL_Types.LSLInteger(m_host.Material)); 6258 res.Add(new LSL_Integer(m_host.Material));
6192 break; 6259 break;
6193 6260
6194 case (int)ScriptBaseClass.PRIM_PHYSICS: 6261 case (int)ScriptBaseClass.PRIM_PHYSICS:
6195 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Physics) != 0) 6262 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Physics) != 0)
6196 res.Add(new LSL_Types.LSLInteger(1)); 6263 res.Add(new LSL_Integer(1));
6197 else 6264 else
6198 res.Add(new LSL_Types.LSLInteger(0)); 6265 res.Add(new LSL_Integer(0));
6199 break; 6266 break;
6200 6267
6201 case (int)ScriptBaseClass.PRIM_TEMP_ON_REZ: 6268 case (int)ScriptBaseClass.PRIM_TEMP_ON_REZ:
6202 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.TemporaryOnRez) != 0) 6269 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.TemporaryOnRez) != 0)
6203 res.Add(new LSL_Types.LSLInteger(1)); 6270 res.Add(new LSL_Integer(1));
6204 else 6271 else
6205 res.Add(new LSL_Types.LSLInteger(0)); 6272 res.Add(new LSL_Integer(0));
6206 break; 6273 break;
6207 6274
6208 case (int)ScriptBaseClass.PRIM_PHANTOM: 6275 case (int)ScriptBaseClass.PRIM_PHANTOM:
6209 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Phantom) != 0) 6276 if ((m_host.GetEffectiveObjectFlags() & (uint)PrimFlags.Phantom) != 0)
6210 res.Add(new LSL_Types.LSLInteger(1)); 6277 res.Add(new LSL_Integer(1));
6211 else 6278 else
6212 res.Add(new LSL_Types.LSLInteger(0)); 6279 res.Add(new LSL_Integer(0));
6213 break; 6280 break;
6214 6281
6215 case (int)ScriptBaseClass.PRIM_POSITION: 6282 case (int)ScriptBaseClass.PRIM_POSITION:
6216 res.Add(new LSL_Types.Vector3(m_host.AbsolutePosition.X, 6283 res.Add(new LSL_Vector(m_host.AbsolutePosition.X,
6217 m_host.AbsolutePosition.Y, 6284 m_host.AbsolutePosition.Y,
6218 m_host.AbsolutePosition.Z)); 6285 m_host.AbsolutePosition.Z));
6219 break; 6286 break;
6220 6287
6221 case (int)ScriptBaseClass.PRIM_SIZE: 6288 case (int)ScriptBaseClass.PRIM_SIZE:
6222 res.Add(new LSL_Types.Vector3(m_host.Scale.X, 6289 res.Add(new LSL_Vector(m_host.Scale.X,
6223 m_host.Scale.Y, 6290 m_host.Scale.Y,
6224 m_host.Scale.Z)); 6291 m_host.Scale.Z));
6225 break; 6292 break;
6226 6293
6227 case (int)ScriptBaseClass.PRIM_ROTATION: 6294 case (int)ScriptBaseClass.PRIM_ROTATION:
6228 res.Add(new LSL_Types.Quaternion(m_host.RotationOffset.X, 6295 res.Add(new LSL_Rotation(m_host.RotationOffset.X,
6229 m_host.RotationOffset.Y, 6296 m_host.RotationOffset.Y,
6230 m_host.RotationOffset.Z, 6297 m_host.RotationOffset.Z,
6231 m_host.RotationOffset.W)); 6298 m_host.RotationOffset.W));
@@ -6235,69 +6302,69 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6235 // implementing box 6302 // implementing box
6236 PrimitiveBaseShape Shape = m_host.Shape; 6303 PrimitiveBaseShape Shape = m_host.Shape;
6237 int primType = getScriptPrimType(m_host.Shape); 6304 int primType = getScriptPrimType(m_host.Shape);
6238 res.Add(new LSL_Types.LSLInteger(primType)); 6305 res.Add(new LSL_Integer(primType));
6239 switch (primType) 6306 switch (primType)
6240 { 6307 {
6241 case ScriptBaseClass.PRIM_TYPE_BOX: 6308 case ScriptBaseClass.PRIM_TYPE_BOX:
6242 case ScriptBaseClass.PRIM_TYPE_CYLINDER: 6309 case ScriptBaseClass.PRIM_TYPE_CYLINDER:
6243 case ScriptBaseClass.PRIM_TYPE_PRISM: 6310 case ScriptBaseClass.PRIM_TYPE_PRISM:
6244 res.Add(new LSL_Types.LSLInteger(Shape.ProfileCurve)); 6311 res.Add(new LSL_Integer(Shape.ProfileCurve));
6245 res.Add(new LSL_Types.Vector3(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0)); 6312 res.Add(new LSL_Vector(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0));
6246 res.Add(new LSL_Types.LSLFloat(Shape.ProfileHollow / 50000.0)); 6313 res.Add(new LSL_Float(Shape.ProfileHollow / 50000.0));
6247 res.Add(new LSL_Types.Vector3(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0)); 6314 res.Add(new LSL_Vector(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0));
6248 res.Add(new LSL_Types.Vector3(1 - (Shape.PathScaleX / 100.0 - 1), 1 - (Shape.PathScaleY / 100.0 - 1), 0)); 6315 res.Add(new LSL_Vector(1 - (Shape.PathScaleX / 100.0 - 1), 1 - (Shape.PathScaleY / 100.0 - 1), 0));
6249 res.Add(new LSL_Types.Vector3(Shape.PathShearX / 100.0, Shape.PathShearY / 100.0, 0)); 6316 res.Add(new LSL_Vector(Shape.PathShearX / 100.0, Shape.PathShearY / 100.0, 0));
6250 break; 6317 break;
6251 6318
6252 case ScriptBaseClass.PRIM_TYPE_SPHERE: 6319 case ScriptBaseClass.PRIM_TYPE_SPHERE:
6253 res.Add(new LSL_Types.LSLInteger(Shape.ProfileCurve)); 6320 res.Add(new LSL_Integer(Shape.ProfileCurve));
6254 res.Add(new LSL_Types.Vector3(Shape.PathBegin / 50000.0, 1 - Shape.PathEnd / 50000.0, 0)); 6321 res.Add(new LSL_Vector(Shape.PathBegin / 50000.0, 1 - Shape.PathEnd / 50000.0, 0));
6255 res.Add(new LSL_Types.LSLFloat(Shape.ProfileHollow / 50000.0)); 6322 res.Add(new LSL_Float(Shape.ProfileHollow / 50000.0));
6256 res.Add(new LSL_Types.Vector3(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0)); 6323 res.Add(new LSL_Vector(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0));
6257 res.Add(new LSL_Types.Vector3(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0)); 6324 res.Add(new LSL_Vector(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0));
6258 break; 6325 break;
6259 6326
6260 case ScriptBaseClass.PRIM_TYPE_SCULPT: 6327 case ScriptBaseClass.PRIM_TYPE_SCULPT:
6261 res.Add(Shape.SculptTexture.ToString()); 6328 res.Add(Shape.SculptTexture.ToString());
6262 res.Add(new LSL_Types.LSLInteger(Shape.SculptType)); 6329 res.Add(new LSL_Integer(Shape.SculptType));
6263 break; 6330 break;
6264 6331
6265 case ScriptBaseClass.PRIM_TYPE_RING: 6332 case ScriptBaseClass.PRIM_TYPE_RING:
6266 case ScriptBaseClass.PRIM_TYPE_TUBE: 6333 case ScriptBaseClass.PRIM_TYPE_TUBE:
6267 case ScriptBaseClass.PRIM_TYPE_TORUS: 6334 case ScriptBaseClass.PRIM_TYPE_TORUS:
6268 // holeshape 6335 // holeshape
6269 res.Add(new LSL_Types.LSLInteger(Shape.ProfileCurve)); 6336 res.Add(new LSL_Integer(Shape.ProfileCurve));
6270 6337
6271 // cut 6338 // cut
6272 res.Add(new LSL_Types.Vector3(Shape.PathBegin / 50000.0, 1 - Shape.PathEnd / 50000.0, 0)); 6339 res.Add(new LSL_Vector(Shape.PathBegin / 50000.0, 1 - Shape.PathEnd / 50000.0, 0));
6273 6340
6274 // hollow 6341 // hollow
6275 res.Add(new LSL_Types.LSLFloat(Shape.ProfileHollow / 50000.0)); 6342 res.Add(new LSL_Float(Shape.ProfileHollow / 50000.0));
6276 6343
6277 // twist 6344 // twist
6278 res.Add(new LSL_Types.Vector3(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0)); 6345 res.Add(new LSL_Vector(Shape.PathTwistBegin / 100.0, Shape.PathTwist / 100.0, 0));
6279 6346
6280 // vector holesize 6347 // vector holesize
6281 res.Add(new LSL_Types.Vector3(1 - (Shape.PathScaleX / 100.0 - 1), 1 - (Shape.PathScaleY / 100.0 - 1), 0)); 6348 res.Add(new LSL_Vector(1 - (Shape.PathScaleX / 100.0 - 1), 1 - (Shape.PathScaleY / 100.0 - 1), 0));
6282 6349
6283 // vector topshear 6350 // vector topshear
6284 res.Add(new LSL_Types.Vector3(Shape.PathShearX / 100.0, Shape.PathShearY / 100.0, 0)); 6351 res.Add(new LSL_Vector(Shape.PathShearX / 100.0, Shape.PathShearY / 100.0, 0));
6285 6352
6286 // vector profilecut 6353 // vector profilecut
6287 res.Add(new LSL_Types.Vector3(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0)); 6354 res.Add(new LSL_Vector(Shape.ProfileBegin / 50000.0, 1 - Shape.ProfileEnd / 50000.0, 0));
6288 6355
6289 6356
6290 // vector tapera 6357 // vector tapera
6291 res.Add(new LSL_Types.Vector3(Shape.PathTaperX / 100.0, Shape.PathTaperY / 100.0, 0)); 6358 res.Add(new LSL_Vector(Shape.PathTaperX / 100.0, Shape.PathTaperY / 100.0, 0));
6292 6359
6293 // float revolutions, 6360 // float revolutions,
6294 res.Add(new LSL_Types.LSLFloat(Shape.PathRevolutions / 50.0)); // needs fixing :( 6361 res.Add(new LSL_Float(Shape.PathRevolutions / 50.0)); // needs fixing :(
6295 6362
6296 // float radiusoffset, 6363 // float radiusoffset,
6297 res.Add(new LSL_Types.LSLFloat(Shape.PathRadiusOffset / 100.0)); 6364 res.Add(new LSL_Float(Shape.PathRadiusOffset / 100.0));
6298 6365
6299 // float skew 6366 // float skew
6300 res.Add(new LSL_Types.LSLFloat(Shape.PathSkew / 100.0)); 6367 res.Add(new LSL_Float(Shape.PathSkew / 100.0));
6301 break; 6368 break;
6302 6369
6303 } 6370 }
@@ -6315,14 +6382,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6315 { 6382 {
6316 Primitive.TextureEntryFace texface = tex.GetFace((uint)face); 6383 Primitive.TextureEntryFace texface = tex.GetFace((uint)face);
6317 6384
6318 res.Add(new LSL_Types.LSLString(texface.TextureID.ToString())); 6385 res.Add(new LSL_String(texface.TextureID.ToString()));
6319 res.Add(new LSL_Types.Vector3(texface.RepeatU, 6386 res.Add(new LSL_Vector(texface.RepeatU,
6320 texface.RepeatV, 6387 texface.RepeatV,
6321 0)); 6388 0));
6322 res.Add(new LSL_Types.Vector3(texface.OffsetU, 6389 res.Add(new LSL_Vector(texface.OffsetU,
6323 texface.OffsetV, 6390 texface.OffsetV,
6324 0)); 6391 0));
6325 res.Add(new LSL_Types.LSLFloat(texface.Rotation)); 6392 res.Add(new LSL_Float(texface.Rotation));
6326 } 6393 }
6327 } 6394 }
6328 else 6395 else
@@ -6331,14 +6398,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6331 { 6398 {
6332 Primitive.TextureEntryFace texface = tex.GetFace((uint)face); 6399 Primitive.TextureEntryFace texface = tex.GetFace((uint)face);
6333 6400
6334 res.Add(new LSL_Types.LSLString(texface.TextureID.ToString())); 6401 res.Add(new LSL_String(texface.TextureID.ToString()));
6335 res.Add(new LSL_Types.Vector3(texface.RepeatU, 6402 res.Add(new LSL_Vector(texface.RepeatU,
6336 texface.RepeatV, 6403 texface.RepeatV,
6337 0)); 6404 0));
6338 res.Add(new LSL_Types.Vector3(texface.OffsetU, 6405 res.Add(new LSL_Vector(texface.OffsetU,
6339 texface.OffsetV, 6406 texface.OffsetV,
6340 0)); 6407 0));
6341 res.Add(new LSL_Types.LSLFloat(texface.Rotation)); 6408 res.Add(new LSL_Float(texface.Rotation));
6342 } 6409 }
6343 } 6410 }
6344 break; 6411 break;
@@ -6356,19 +6423,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6356 for (face = 0 ; face < GetNumberOfSides(m_host) ; face++) 6423 for (face = 0 ; face < GetNumberOfSides(m_host) ; face++)
6357 { 6424 {
6358 texcolor = tex.GetFace((uint)face).RGBA; 6425 texcolor = tex.GetFace((uint)face).RGBA;
6359 res.Add(new LSL_Types.Vector3(texcolor.R, 6426 res.Add(new LSL_Vector(texcolor.R,
6360 texcolor.G, 6427 texcolor.G,
6361 texcolor.B)); 6428 texcolor.B));
6362 res.Add(new LSL_Types.LSLFloat(texcolor.A)); 6429 res.Add(new LSL_Float(texcolor.A));
6363 } 6430 }
6364 } 6431 }
6365 else 6432 else
6366 { 6433 {
6367 texcolor = tex.GetFace((uint)face).RGBA; 6434 texcolor = tex.GetFace((uint)face).RGBA;
6368 res.Add(new LSL_Types.Vector3(texcolor.R, 6435 res.Add(new LSL_Vector(texcolor.R,
6369 texcolor.G, 6436 texcolor.G,
6370 texcolor.B)); 6437 texcolor.B));
6371 res.Add(new LSL_Types.LSLFloat(texcolor.A)); 6438 res.Add(new LSL_Float(texcolor.A));
6372 } 6439 }
6373 break; 6440 break;
6374 6441
@@ -6379,8 +6446,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6379 6446
6380 face=(int)rules.GetLSLIntegerItem(idx++); 6447 face=(int)rules.GetLSLIntegerItem(idx++);
6381 6448
6382 res.Add(new LSL_Types.LSLInteger(0)); 6449 res.Add(new LSL_Integer(0));
6383 res.Add(new LSL_Types.LSLInteger(0)); 6450 res.Add(new LSL_Integer(0));
6384 break; 6451 break;
6385 6452
6386 case (int)ScriptBaseClass.PRIM_FULLBRIGHT: 6453 case (int)ScriptBaseClass.PRIM_FULLBRIGHT:
@@ -6390,22 +6457,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6390 6457
6391 face=(int)rules.GetLSLIntegerItem(idx++); 6458 face=(int)rules.GetLSLIntegerItem(idx++);
6392 6459
6393 res.Add(new LSL_Types.LSLInteger(0)); 6460 res.Add(new LSL_Integer(0));
6394 break; 6461 break;
6395 6462
6396 case (int)ScriptBaseClass.PRIM_FLEXIBLE: 6463 case (int)ScriptBaseClass.PRIM_FLEXIBLE:
6397 PrimitiveBaseShape shape = m_host.Shape; 6464 PrimitiveBaseShape shape = m_host.Shape;
6398 6465
6399 if (shape.FlexiEntry) 6466 if (shape.FlexiEntry)
6400 res.Add(new LSL_Types.LSLInteger(1)); // active 6467 res.Add(new LSL_Integer(1)); // active
6401 else 6468 else
6402 res.Add(new LSL_Types.LSLInteger(0)); 6469 res.Add(new LSL_Integer(0));
6403 res.Add(new LSL_Types.LSLInteger(shape.FlexiSoftness));// softness 6470 res.Add(new LSL_Integer(shape.FlexiSoftness));// softness
6404 res.Add(new LSL_Types.LSLFloat(shape.FlexiGravity)); // gravity 6471 res.Add(new LSL_Float(shape.FlexiGravity)); // gravity
6405 res.Add(new LSL_Types.LSLFloat(shape.FlexiDrag)); // friction 6472 res.Add(new LSL_Float(shape.FlexiDrag)); // friction
6406 res.Add(new LSL_Types.LSLFloat(shape.FlexiWind)); // wind 6473 res.Add(new LSL_Float(shape.FlexiWind)); // wind
6407 res.Add(new LSL_Types.LSLFloat(shape.FlexiTension)); // tension 6474 res.Add(new LSL_Float(shape.FlexiTension)); // tension
6408 res.Add(new LSL_Types.Vector3(shape.FlexiForceX, // force 6475 res.Add(new LSL_Vector(shape.FlexiForceX, // force
6409 shape.FlexiForceY, 6476 shape.FlexiForceY,
6410 shape.FlexiForceZ)); 6477 shape.FlexiForceZ));
6411 break; 6478 break;
@@ -6418,22 +6485,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6418 6485
6419 face=(int)rules.GetLSLIntegerItem(idx++); 6486 face=(int)rules.GetLSLIntegerItem(idx++);
6420 6487
6421 res.Add(new LSL_Types.LSLInteger(0)); 6488 res.Add(new LSL_Integer(0));
6422 break; 6489 break;
6423 6490
6424 case (int)ScriptBaseClass.PRIM_POINT_LIGHT: 6491 case (int)ScriptBaseClass.PRIM_POINT_LIGHT:
6425 shape = m_host.Shape; 6492 shape = m_host.Shape;
6426 6493
6427 if (shape.LightEntry) 6494 if (shape.LightEntry)
6428 res.Add(new LSL_Types.LSLInteger(1)); // active 6495 res.Add(new LSL_Integer(1)); // active
6429 else 6496 else
6430 res.Add(new LSL_Types.LSLInteger(0)); 6497 res.Add(new LSL_Integer(0));
6431 res.Add(new LSL_Types.Vector3(shape.LightColorR, // color 6498 res.Add(new LSL_Vector(shape.LightColorR, // color
6432 shape.LightColorG, 6499 shape.LightColorG,
6433 shape.LightColorB)); 6500 shape.LightColorB));
6434 res.Add(new LSL_Types.LSLFloat(shape.LightIntensity)); // intensity 6501 res.Add(new LSL_Float(shape.LightIntensity)); // intensity
6435 res.Add(new LSL_Types.LSLFloat(shape.LightRadius)); // radius 6502 res.Add(new LSL_Float(shape.LightRadius)); // radius
6436 res.Add(new LSL_Types.LSLFloat(shape.LightFalloff)); // falloff 6503 res.Add(new LSL_Float(shape.LightFalloff)); // falloff
6437 break; 6504 break;
6438 6505
6439 case (int)ScriptBaseClass.PRIM_GLOW: 6506 case (int)ScriptBaseClass.PRIM_GLOW:
@@ -6443,7 +6510,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6443 6510
6444 face=(int)rules.GetLSLIntegerItem(idx++); 6511 face=(int)rules.GetLSLIntegerItem(idx++);
6445 6512
6446 res.Add(new LSL_Types.LSLFloat(0)); 6513 res.Add(new LSL_Float(0));
6447 break; 6514 break;
6448 } 6515 }
6449 } 6516 }
@@ -6577,7 +6644,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6577 // characters are padded with "=". 6644 // characters are padded with "=".
6578 // </returns> 6645 // </returns>
6579 6646
6580 public LSL_Types.LSLString llIntegerToBase64(int number) 6647 public LSL_String llIntegerToBase64(int number)
6581 { 6648 {
6582 // uninitialized string 6649 // uninitialized string
6583 6650
@@ -6640,7 +6707,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6640 // </para> 6707 // </para>
6641 // </remarks> 6708 // </remarks>
6642 6709
6643 public LSL_Types.LSLInteger llBase64ToInteger(string str) 6710 public LSL_Integer llBase64ToInteger(string str)
6644 { 6711 {
6645 int number = 0; 6712 int number = 0;
6646 int digit; 6713 int digit;
@@ -6700,19 +6767,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6700 return number; 6767 return number;
6701 } 6768 }
6702 6769
6703 public LSL_Types.LSLFloat llGetGMTclock() 6770 public LSL_Float llGetGMTclock()
6704 { 6771 {
6705 m_host.AddScriptLPS(1); 6772 m_host.AddScriptLPS(1);
6706 return DateTime.UtcNow.TimeOfDay.TotalSeconds; 6773 return DateTime.UtcNow.TimeOfDay.TotalSeconds;
6707 } 6774 }
6708 6775
6709 public LSL_Types.LSLString llGetSimulatorHostname() 6776 public LSL_String llGetSimulatorHostname()
6710 { 6777 {
6711 m_host.AddScriptLPS(1); 6778 m_host.AddScriptLPS(1);
6712 return System.Environment.MachineName; 6779 return System.Environment.MachineName;
6713 } 6780 }
6714 6781
6715 public void llSetLocalRot(LSL_Types.Quaternion rot) 6782 public void llSetLocalRot(LSL_Rotation rot)
6716 { 6783 {
6717 m_host.AddScriptLPS(1); 6784 m_host.AddScriptLPS(1);
6718 m_host.RotationOffset = new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s); 6785 m_host.RotationOffset = new Quaternion((float)rot.x, (float)rot.y, (float)rot.z, (float)rot.s);
@@ -6767,7 +6834,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6767 // of arrays or other objects. 6834 // of arrays or other objects.
6768 // </remarks> 6835 // </remarks>
6769 6836
6770 public LSL_Types.list llParseStringKeepNulls(string src, LSL_Types.list separators, LSL_Types.list spacers) 6837 public LSL_List llParseStringKeepNulls(string src, LSL_List separators, LSL_List spacers)
6771 { 6838 {
6772 int beginning = 0; 6839 int beginning = 0;
6773 int srclen = src.Length; 6840 int srclen = src.Length;
@@ -6785,7 +6852,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6785 6852
6786 // Initial capacity reduces resize cost 6853 // Initial capacity reduces resize cost
6787 6854
6788 LSL_Types.list tokens = new LSL_Types.list(); 6855 LSL_List tokens = new LSL_List();
6789 6856
6790 m_host.AddScriptLPS(1); 6857 m_host.AddScriptLPS(1);
6791 6858
@@ -6895,7 +6962,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6895 return tokens; 6962 return tokens;
6896 } 6963 }
6897 6964
6898 public LSL_Types.LSLInteger llGetObjectPermMask(int mask) 6965 public LSL_Integer llGetObjectPermMask(int mask)
6899 { 6966 {
6900 m_host.AddScriptLPS(1); 6967 m_host.AddScriptLPS(1);
6901 6968
@@ -6968,7 +7035,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6968 } 7035 }
6969 } 7036 }
6970 7037
6971 public LSL_Types.LSLInteger llGetInventoryPermMask(string item, int mask) 7038 public LSL_Integer llGetInventoryPermMask(string item, int mask)
6972 { 7039 {
6973 m_host.AddScriptLPS(1); 7040 m_host.AddScriptLPS(1);
6974 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) 7041 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
@@ -6999,7 +7066,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6999 NotImplemented("llSetInventoryPermMask"); 7066 NotImplemented("llSetInventoryPermMask");
7000 } 7067 }
7001 7068
7002 public LSL_Types.LSLString llGetInventoryCreator(string item) 7069 public LSL_String llGetInventoryCreator(string item)
7003 { 7070 {
7004 m_host.AddScriptLPS(1); 7071 m_host.AddScriptLPS(1);
7005 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) 7072 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
@@ -7022,7 +7089,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7022// wComm.DeliverMessage(ChatTypeEnum.Owner, 0, m_host.Name, m_host.UUID, msg); 7089// wComm.DeliverMessage(ChatTypeEnum.Owner, 0, m_host.Name, m_host.UUID, msg);
7023 } 7090 }
7024 7091
7025 public LSL_Types.LSLString llRequestSimulatorData(string simulator, int data) 7092 public LSL_String llRequestSimulatorData(string simulator, int data)
7026 { 7093 {
7027 try 7094 try
7028 { 7095 {
@@ -7040,7 +7107,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7040 // ScriptSleep(1000); 7107 // ScriptSleep(1000);
7041 return UUID.Zero.ToString(); 7108 return UUID.Zero.ToString();
7042 } 7109 }
7043 reply = new LSL_Types.Vector3( 7110 reply = new LSL_Vector(
7044 info.RegionLocX * Constants.RegionSize, 7111 info.RegionLocX * Constants.RegionSize,
7045 info.RegionLocY * Constants.RegionSize, 7112 info.RegionLocY * Constants.RegionSize,
7046 0).ToString(); 7113 0).ToString();
@@ -7096,7 +7163,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7096 m_host.SetForceMouselook(mouselook != 0); 7163 m_host.SetForceMouselook(mouselook != 0);
7097 } 7164 }
7098 7165
7099 public LSL_Types.LSLFloat llGetObjectMass(string id) 7166 public LSL_Float llGetObjectMass(string id)
7100 { 7167 {
7101 m_host.AddScriptLPS(1); 7168 m_host.AddScriptLPS(1);
7102 UUID key = new UUID(); 7169 UUID key = new UUID();
@@ -7119,9 +7186,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7119 /// and the source list is added as a suffix. 7186 /// and the source list is added as a suffix.
7120 /// </summary> 7187 /// </summary>
7121 7188
7122 public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end) 7189 public LSL_List llListReplaceList(LSL_List dest, LSL_List src, int start, int end)
7123 { 7190 {
7124 LSL_Types.list pref = null; 7191 LSL_List pref = null;
7125 7192
7126 m_host.AddScriptLPS(1); 7193 m_host.AddScriptLPS(1);
7127 7194
@@ -7198,7 +7265,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7198 // ScriptSleep(10000); 7265 // ScriptSleep(10000);
7199 } 7266 }
7200 7267
7201 public void llParcelMediaCommandList(LSL_Types.list commandList) 7268 public void llParcelMediaCommandList(LSL_List commandList)
7202 { 7269 {
7203 //TO DO: Implement the missing commands 7270 //TO DO: Implement the missing commands
7204 //PARCEL_MEDIA_COMMAND_STOP Stop the media stream and go back to the first frame. 7271 //PARCEL_MEDIA_COMMAND_STOP Stop the media stream and go back to the first frame.
@@ -7296,10 +7363,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7296 // ScriptSleep(2000); 7363 // ScriptSleep(2000);
7297 } 7364 }
7298 7365
7299 public LSL_Types.list llParcelMediaQuery(LSL_Types.list aList) 7366 public LSL_List llParcelMediaQuery(LSL_List aList)
7300 { 7367 {
7301 m_host.AddScriptLPS(1); 7368 m_host.AddScriptLPS(1);
7302 LSL_Types.list list = new LSL_Types.list(); 7369 LSL_List list = new LSL_List();
7303 //TO DO: make the implementation for the missing commands 7370 //TO DO: make the implementation for the missing commands
7304 //PARCEL_MEDIA_COMMAND_TEXTURE key uuid Use this to get or set the parcel's media texture. 7371 //PARCEL_MEDIA_COMMAND_TEXTURE key uuid Use this to get or set the parcel's media texture.
7305 //PARCEL_MEDIA_COMMAND_URL string url Used to get or set the parcel's media url. 7372 //PARCEL_MEDIA_COMMAND_URL string url Used to get or set the parcel's media url.
@@ -7315,13 +7382,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7315 switch ((ParcelMediaCommandEnum) aList.Data[i]) 7382 switch ((ParcelMediaCommandEnum) aList.Data[i])
7316 { 7383 {
7317 case ParcelMediaCommandEnum.Url: 7384 case ParcelMediaCommandEnum.Url:
7318 list.Add(new LSL_Types.LSLString(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).MediaURL)); 7385 list.Add(new LSL_String(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).MediaURL));
7319 break; 7386 break;
7320 case ParcelMediaCommandEnum.Desc: 7387 case ParcelMediaCommandEnum.Desc:
7321 list.Add(new LSL_Types.LSLString(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).Description)); 7388 list.Add(new LSL_String(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).Description));
7322 break; 7389 break;
7323 case ParcelMediaCommandEnum.Texture: 7390 case ParcelMediaCommandEnum.Texture:
7324 list.Add(new LSL_Types.LSLString(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).MediaID.ToString())); 7391 list.Add(new LSL_String(World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y).MediaID.ToString()));
7325 break; 7392 break;
7326 default: 7393 default:
7327 ParcelMediaCommandEnum mediaCommandEnum = ParcelMediaCommandEnum.Url; 7394 ParcelMediaCommandEnum mediaCommandEnum = ParcelMediaCommandEnum.Url;
@@ -7335,7 +7402,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7335 return list; 7402 return list;
7336 } 7403 }
7337 7404
7338 public LSL_Types.LSLInteger llModPow(int a, int b, int c) 7405 public LSL_Integer llModPow(int a, int b, int c)
7339 { 7406 {
7340 m_host.AddScriptLPS(1); 7407 m_host.AddScriptLPS(1);
7341 Int64 tmp = 0; 7408 Int64 tmp = 0;
@@ -7344,7 +7411,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7344 return Convert.ToInt32(tmp); 7411 return Convert.ToInt32(tmp);
7345 } 7412 }
7346 7413
7347 public LSL_Types.LSLInteger llGetInventoryType(string name) 7414 public LSL_Integer llGetInventoryType(string name)
7348 { 7415 {
7349 m_host.AddScriptLPS(1); 7416 m_host.AddScriptLPS(1);
7350 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory) 7417 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
@@ -7357,7 +7424,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7357 return -1; 7424 return -1;
7358 } 7425 }
7359 7426
7360 public void llSetPayPrice(int price, LSL_Types.list quick_pay_buttons) 7427 public void llSetPayPrice(int price, LSL_List quick_pay_buttons)
7361 { 7428 {
7362 m_host.AddScriptLPS(1); 7429 m_host.AddScriptLPS(1);
7363 7430
@@ -7368,40 +7435,40 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7368 } 7435 }
7369 m_host.ParentGroup.RootPart.PayPrice[0]=price; 7436 m_host.ParentGroup.RootPart.PayPrice[0]=price;
7370 7437
7371 m_host.ParentGroup.RootPart.PayPrice[1]=(LSL_Types.LSLInteger)quick_pay_buttons.Data[0]; 7438 m_host.ParentGroup.RootPart.PayPrice[1]=(LSL_Integer)quick_pay_buttons.Data[0];
7372 m_host.ParentGroup.RootPart.PayPrice[2]=(LSL_Types.LSLInteger)quick_pay_buttons.Data[1]; 7439 m_host.ParentGroup.RootPart.PayPrice[2]=(LSL_Integer)quick_pay_buttons.Data[1];
7373 m_host.ParentGroup.RootPart.PayPrice[3]=(LSL_Types.LSLInteger)quick_pay_buttons.Data[2]; 7440 m_host.ParentGroup.RootPart.PayPrice[3]=(LSL_Integer)quick_pay_buttons.Data[2];
7374 m_host.ParentGroup.RootPart.PayPrice[4]=(LSL_Types.LSLInteger)quick_pay_buttons.Data[3]; 7441 m_host.ParentGroup.RootPart.PayPrice[4]=(LSL_Integer)quick_pay_buttons.Data[3];
7375 m_host.ParentGroup.HasGroupChanged = true; 7442 m_host.ParentGroup.HasGroupChanged = true;
7376 } 7443 }
7377 7444
7378 public LSL_Types.Vector3 llGetCameraPos() 7445 public LSL_Vector llGetCameraPos()
7379 { 7446 {
7380 m_host.AddScriptLPS(1); 7447 m_host.AddScriptLPS(1);
7381 UUID invItemID=InventorySelf(); 7448 UUID invItemID=InventorySelf();
7382 if (invItemID == UUID.Zero) 7449 if (invItemID == UUID.Zero)
7383 return new LSL_Types.Vector3(); 7450 return new LSL_Vector();
7384 if (m_host.TaskInventory[invItemID].PermsGranter == UUID.Zero) 7451 if (m_host.TaskInventory[invItemID].PermsGranter == UUID.Zero)
7385 return new LSL_Types.Vector3(); 7452 return new LSL_Vector();
7386 if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_TRACK_CAMERA) == 0) 7453 if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_TRACK_CAMERA) == 0)
7387 { 7454 {
7388 ShoutError("No permissions to track the camera"); 7455 ShoutError("No permissions to track the camera");
7389 return new LSL_Types.Vector3(); 7456 return new LSL_Vector();
7390 } 7457 }
7391 ScenePresence presence = World.GetScenePresence(m_host.OwnerID); 7458 ScenePresence presence = World.GetScenePresence(m_host.OwnerID);
7392 if (presence != null) 7459 if (presence != null)
7393 { 7460 {
7394 LSL_Types.Vector3 pos = new LSL_Types.Vector3(presence.CameraPosition.X, presence.CameraPosition.Y, presence.CameraPosition.Z); 7461 LSL_Vector pos = new LSL_Vector(presence.CameraPosition.X, presence.CameraPosition.Y, presence.CameraPosition.Z);
7395 return pos; 7462 return pos;
7396 } 7463 }
7397 return new LSL_Types.Vector3(); 7464 return new LSL_Vector();
7398 } 7465 }
7399 7466
7400 public LSL_Types.Quaternion llGetCameraRot() 7467 public LSL_Rotation llGetCameraRot()
7401 { 7468 {
7402 m_host.AddScriptLPS(1); 7469 m_host.AddScriptLPS(1);
7403 NotImplemented("llGetCameraRot"); 7470 NotImplemented("llGetCameraRot");
7404 return new LSL_Types.Quaternion(); 7471 return new LSL_Rotation();
7405 } 7472 }
7406 7473
7407 public void llSetPrimURL() 7474 public void llSetPrimURL()
@@ -7418,7 +7485,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7418 // ScriptSleep(20000); 7485 // ScriptSleep(20000);
7419 } 7486 }
7420 7487
7421 public LSL_Types.LSLString llEscapeURL(string url) 7488 public LSL_String llEscapeURL(string url)
7422 { 7489 {
7423 m_host.AddScriptLPS(1); 7490 m_host.AddScriptLPS(1);
7424 try 7491 try
@@ -7431,7 +7498,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7431 } 7498 }
7432 } 7499 }
7433 7500
7434 public LSL_Types.LSLString llUnescapeURL(string url) 7501 public LSL_String llUnescapeURL(string url)
7435 { 7502 {
7436 m_host.AddScriptLPS(1); 7503 m_host.AddScriptLPS(1);
7437 try 7504 try
@@ -7444,7 +7511,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7444 } 7511 }
7445 } 7512 }
7446 7513
7447 public void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at) 7514 public void llMapDestination(string simname, LSL_Vector pos, LSL_Vector look_at)
7448 { 7515 {
7449 m_host.AddScriptLPS(1); 7516 m_host.AddScriptLPS(1);
7450 NotImplemented("llMapDestination"); 7517 NotImplemented("llMapDestination");
@@ -7514,7 +7581,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7514 // ScriptSleep(100); 7581 // ScriptSleep(100);
7515 } 7582 }
7516 7583
7517 public void llSetCameraParams(LSL_Types.list rules) 7584 public void llSetCameraParams(LSL_List rules)
7518 { 7585 {
7519 m_host.AddScriptLPS(1); 7586 m_host.AddScriptLPS(1);
7520 7587
@@ -7547,17 +7614,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7547 case ScriptBaseClass.CAMERA_FOCUS: 7614 case ScriptBaseClass.CAMERA_FOCUS:
7548 case ScriptBaseClass.CAMERA_FOCUS_OFFSET: 7615 case ScriptBaseClass.CAMERA_FOCUS_OFFSET:
7549 case ScriptBaseClass.CAMERA_POSITION: 7616 case ScriptBaseClass.CAMERA_POSITION:
7550 LSL_Types.Vector3 v = (LSL_Types.Vector3)data[i]; 7617 LSL_Vector v = (LSL_Vector)data[i];
7551 parameters.Add(type + 1, (float)v.x); 7618 parameters.Add(type + 1, (float)v.x);
7552 parameters.Add(type + 2, (float)v.y); 7619 parameters.Add(type + 2, (float)v.y);
7553 parameters.Add(type + 3, (float)v.z); 7620 parameters.Add(type + 3, (float)v.z);
7554 break; 7621 break;
7555 default: 7622 default:
7556 // TODO: clean that up as soon as the implicit casts are in 7623 // TODO: clean that up as soon as the implicit casts are in
7557 if (data[i] is LSL_Types.LSLFloat) 7624 if (data[i] is LSL_Float)
7558 parameters.Add(type, (float)((LSL_Types.LSLFloat)data[i]).value); 7625 parameters.Add(type, (float)((LSL_Float)data[i]).value);
7559 else if (data[i] is LSL_Types.LSLInteger) 7626 else if (data[i] is LSL_Integer)
7560 parameters.Add(type, (float)((LSL_Types.LSLInteger)data[i]).value); 7627 parameters.Add(type, (float)((LSL_Integer)data[i]).value);
7561 else parameters.Add(type, Convert.ToSingle(data[i])); 7628 else parameters.Add(type, Convert.ToSingle(data[i]));
7562 break; 7629 break;
7563 } 7630 }
@@ -7590,10 +7657,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7590 presence.ControllingClient.SendClearFollowCamProperties(objectID); 7657 presence.ControllingClient.SendClearFollowCamProperties(objectID);
7591 } 7658 }
7592 7659
7593 public LSL_Types.LSLFloat llListStatistics(int operation, LSL_Types.list src) 7660 public LSL_Float llListStatistics(int operation, LSL_List src)
7594 { 7661 {
7595 m_host.AddScriptLPS(1); 7662 m_host.AddScriptLPS(1);
7596 LSL_Types.list nums = LSL_Types.list.ToDoubleList(src); 7663 LSL_List nums = LSL_List.ToDoubleList(src);
7597 switch (operation) 7664 switch (operation)
7598 { 7665 {
7599 case ScriptBaseClass.LIST_STAT_RANGE: 7666 case ScriptBaseClass.LIST_STAT_RANGE:
@@ -7623,19 +7690,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7623 } 7690 }
7624 } 7691 }
7625 7692
7626 public LSL_Types.LSLInteger llGetUnixTime() 7693 public LSL_Integer llGetUnixTime()
7627 { 7694 {
7628 m_host.AddScriptLPS(1); 7695 m_host.AddScriptLPS(1);
7629 return Util.UnixTimeSinceEpoch(); 7696 return Util.UnixTimeSinceEpoch();
7630 } 7697 }
7631 7698
7632 public LSL_Types.LSLInteger llGetParcelFlags(LSL_Types.Vector3 pos) 7699 public LSL_Integer llGetParcelFlags(LSL_Vector pos)
7633 { 7700 {
7634 m_host.AddScriptLPS(1); 7701 m_host.AddScriptLPS(1);
7635 return (int)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y).landData.Flags; 7702 return (int)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y).landData.Flags;
7636 } 7703 }
7637 7704
7638 public LSL_Types.LSLInteger llGetRegionFlags() 7705 public LSL_Integer llGetRegionFlags()
7639 { 7706 {
7640 m_host.AddScriptLPS(1); 7707 m_host.AddScriptLPS(1);
7641 IEstateModule estate = World.RequestModuleInterface<IEstateModule>(); 7708 IEstateModule estate = World.RequestModuleInterface<IEstateModule>();
@@ -7644,7 +7711,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7644 return (int)estate.GetRegionFlags(); 7711 return (int)estate.GetRegionFlags();
7645 } 7712 }
7646 7713
7647 public LSL_Types.LSLString llXorBase64StringsCorrect(string str1, string str2) 7714 public LSL_String llXorBase64StringsCorrect(string str1, string str2)
7648 { 7715 {
7649 m_host.AddScriptLPS(1); 7716 m_host.AddScriptLPS(1);
7650 string ret = String.Empty; 7717 string ret = String.Empty;
@@ -7662,7 +7729,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7662 return llStringToBase64(ret); 7729 return llStringToBase64(ret);
7663 } 7730 }
7664 7731
7665 public LSL_Types.LSLString llHTTPRequest(string url, LSL_Types.list parameters, string body) 7732 public LSL_String llHTTPRequest(string url, LSL_List parameters, string body)
7666 { 7733 {
7667 // Partial implementation: support for parameter flags needed 7734 // Partial implementation: support for parameter flags needed
7668 // see http://wiki.secondlife.com/wiki/LlHTTPRequest 7735 // see http://wiki.secondlife.com/wiki/LlHTTPRequest
@@ -7739,7 +7806,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7739 // ScriptSleep(100); 7806 // ScriptSleep(100);
7740 } 7807 }
7741 7808
7742 public LSL_Types.LSLInteger llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide) 7809 public LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide)
7743 { 7810 {
7744 m_host.AddScriptLPS(1); 7811 m_host.AddScriptLPS(1);
7745 7812
@@ -7802,11 +7869,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7802 return 0; 7869 return 0;
7803 } 7870 }
7804 7871
7805 public LSL_Types.list llGetParcelPrimOwners(LSL_Types.Vector3 pos) 7872 public LSL_List llGetParcelPrimOwners(LSL_Vector pos)
7806 { 7873 {
7807 m_host.AddScriptLPS(1); 7874 m_host.AddScriptLPS(1);
7808 LandObject land = (LandObject)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y); 7875 LandObject land = (LandObject)World.LandChannel.GetLandObject((float)pos.x, (float)pos.y);
7809 LSL_Types.list ret = new LSL_Types.list(); 7876 LSL_List ret = new LSL_List();
7810 if (land != null) 7877 if (land != null)
7811 { 7878 {
7812 foreach (KeyValuePair<UUID, int> d in land.getLandObjectOwners()) 7879 foreach (KeyValuePair<UUID, int> d in land.getLandObjectOwners())
@@ -7819,7 +7886,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7819 return ret; 7886 return ret;
7820 } 7887 }
7821 7888
7822 public LSL_Types.LSLInteger llGetObjectPrimCount(string object_id) 7889 public LSL_Integer llGetObjectPrimCount(string object_id)
7823 { 7890 {
7824 m_host.AddScriptLPS(1); 7891 m_host.AddScriptLPS(1);
7825 SceneObjectPart part = World.GetSceneObjectPart(new UUID(object_id)); 7892 SceneObjectPart part = World.GetSceneObjectPart(new UUID(object_id));
@@ -7833,7 +7900,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7833 } 7900 }
7834 } 7901 }
7835 7902
7836 public LSL_Types.LSLInteger llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide) 7903 public LSL_Integer llGetParcelMaxPrims(LSL_Vector pos, int sim_wide)
7837 { 7904 {
7838 m_host.AddScriptLPS(1); 7905 m_host.AddScriptLPS(1);
7839 // Alondria: This currently just is utilizing the normal grid's 0.22 prims/m2 calculation 7906 // Alondria: This currently just is utilizing the normal grid's 0.22 prims/m2 calculation
@@ -7863,36 +7930,36 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7863 7930
7864 } 7931 }
7865 7932
7866 public LSL_Types.list llGetParcelDetails(LSL_Types.Vector3 pos, LSL_Types.list param) 7933 public LSL_List llGetParcelDetails(LSL_Vector pos, LSL_List param)
7867 { 7934 {
7868 m_host.AddScriptLPS(1); 7935 m_host.AddScriptLPS(1);
7869 LandData land = World.GetLandData((float)pos.x, (float)pos.y); 7936 LandData land = World.GetLandData((float)pos.x, (float)pos.y);
7870 if (land == null) 7937 if (land == null)
7871 { 7938 {
7872 return new LSL_Types.list(0); 7939 return new LSL_List(0);
7873 } 7940 }
7874 LSL_Types.list ret = new LSL_Types.list(); 7941 LSL_List ret = new LSL_List();
7875 foreach (object o in param.Data) 7942 foreach (object o in param.Data)
7876 { 7943 {
7877 switch (o.ToString()) 7944 switch (o.ToString())
7878 { 7945 {
7879 case "0": 7946 case "0":
7880 ret = ret + new LSL_Types.list(land.Name); 7947 ret = ret + new LSL_List(land.Name);
7881 break; 7948 break;
7882 case "1": 7949 case "1":
7883 ret = ret + new LSL_Types.list(land.Description); 7950 ret = ret + new LSL_List(land.Description);
7884 break; 7951 break;
7885 case "2": 7952 case "2":
7886 ret = ret + new LSL_Types.list(land.OwnerID.ToString()); 7953 ret = ret + new LSL_List(land.OwnerID.ToString());
7887 break; 7954 break;
7888 case "3": 7955 case "3":
7889 ret = ret + new LSL_Types.list(land.GroupID.ToString()); 7956 ret = ret + new LSL_List(land.GroupID.ToString());
7890 break; 7957 break;
7891 case "4": 7958 case "4":
7892 ret = ret + new LSL_Types.list(land.Area); 7959 ret = ret + new LSL_List(land.Area);
7893 break; 7960 break;
7894 default: 7961 default:
7895 ret = ret + new LSL_Types.list(0); 7962 ret = ret + new LSL_List(0);
7896 break; 7963 break;
7897 } 7964 }
7898 } 7965 }
@@ -7915,7 +7982,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7915 // ScriptSleep(200); 7982 // ScriptSleep(200);
7916 } 7983 }
7917 7984
7918 public LSL_Types.LSLString llStringTrim(string src, int type) 7985 public LSL_String llStringTrim(string src, int type)
7919 { 7986 {
7920 m_host.AddScriptLPS(1); 7987 m_host.AddScriptLPS(1);
7921 if (type == (int)ScriptBaseClass.STRING_TRIM_HEAD) { return src.TrimStart(); } 7988 if (type == (int)ScriptBaseClass.STRING_TRIM_HEAD) { return src.TrimStart(); }
@@ -7924,10 +7991,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7924 return src; 7991 return src;
7925 } 7992 }
7926 7993
7927 public LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args) 7994 public LSL_List llGetObjectDetails(string id, LSL_List args)
7928 { 7995 {
7929 m_host.AddScriptLPS(1); 7996 m_host.AddScriptLPS(1);
7930 LSL_Types.list ret = new LSL_Types.list(); 7997 LSL_List ret = new LSL_List();
7931 UUID key = new UUID(); 7998 UUID key = new UUID();
7932 if (UUID.TryParse(id, out key)) 7999 if (UUID.TryParse(id, out key))
7933 { 8000 {
@@ -7946,13 +8013,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7946 ret.Add(""); 8013 ret.Add("");
7947 break; 8014 break;
7948 case "3": 8015 case "3":
7949 ret.Add(new LSL_Types.Vector3((double)av.AbsolutePosition.X, (double)av.AbsolutePosition.Y, (double)av.AbsolutePosition.Z)); 8016 ret.Add(new LSL_Vector((double)av.AbsolutePosition.X, (double)av.AbsolutePosition.Y, (double)av.AbsolutePosition.Z));
7950 break; 8017 break;
7951 case "4": 8018 case "4":
7952 ret.Add(new LSL_Types.Quaternion((double)av.Rotation.X, (double)av.Rotation.Y, (double)av.Rotation.Z, (double)av.Rotation.W)); 8019 ret.Add(new LSL_Rotation((double)av.Rotation.X, (double)av.Rotation.Y, (double)av.Rotation.Z, (double)av.Rotation.W));
7953 break; 8020 break;
7954 case "5": 8021 case "5":
7955 ret.Add(new LSL_Types.Vector3(av.Velocity.X, av.Velocity.Y, av.Velocity.Z)); 8022 ret.Add(new LSL_Vector(av.Velocity.X, av.Velocity.Y, av.Velocity.Z));
7956 break; 8023 break;
7957 case "6": 8024 case "6":
7958 ret.Add(id); 8025 ret.Add(id);
@@ -7981,13 +8048,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7981 ret.Add(obj.Description); 8048 ret.Add(obj.Description);
7982 break; 8049 break;
7983 case "3": 8050 case "3":
7984 ret.Add(new LSL_Types.Vector3(obj.AbsolutePosition.X, obj.AbsolutePosition.Y, obj.AbsolutePosition.Z)); 8051 ret.Add(new LSL_Vector(obj.AbsolutePosition.X, obj.AbsolutePosition.Y, obj.AbsolutePosition.Z));
7985 break; 8052 break;
7986 case "4": 8053 case "4":
7987 ret.Add(new LSL_Types.Quaternion(obj.RotationOffset.X, obj.RotationOffset.Y, obj.RotationOffset.Z, obj.RotationOffset.W)); 8054 ret.Add(new LSL_Rotation(obj.RotationOffset.X, obj.RotationOffset.Y, obj.RotationOffset.Z, obj.RotationOffset.W));
7988 break; 8055 break;
7989 case "5": 8056 case "5":
7990 ret.Add(new LSL_Types.Vector3(obj.Velocity.X, obj.Velocity.Y, obj.Velocity.Z)); 8057 ret.Add(new LSL_Vector(obj.Velocity.X, obj.Velocity.Y, obj.Velocity.Z));
7991 break; 8058 break;
7992 case "6": 8059 case "6":
7993 ret.Add(obj.OwnerID.ToString()); 8060 ret.Add(obj.OwnerID.ToString());
@@ -8003,7 +8070,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
8003 return ret; 8070 return ret;
8004 } 8071 }
8005 } 8072 }
8006 return new LSL_Types.list(); 8073 return new LSL_List();
8007 } 8074 }
8008 8075
8009 8076
@@ -8044,7 +8111,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
8044 World.AssetCache.GetAsset(assetID, delegate(UUID i, AssetBase a) { cb(i, a); }, false); 8111 World.AssetCache.GetAsset(assetID, delegate(UUID i, AssetBase a) { cb(i, a); }, false);
8045 } 8112 }
8046 8113
8047 public LSL_Types.LSLString llGetNumberOfNotecardLines(string name) 8114 public LSL_String llGetNumberOfNotecardLines(string name)
8048 { 8115 {
8049 m_host.AddScriptLPS(1); 8116 m_host.AddScriptLPS(1);
8050 8117
@@ -8086,7 +8153,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
8086 return UUID.Zero.ToString(); 8153 return UUID.Zero.ToString();
8087 } 8154 }
8088 8155
8089 public LSL_Types.LSLString llGetNotecardLine(string name, int line) 8156 public LSL_String llGetNotecardLine(string name, int line)
8090 { 8157 {
8091 m_host.AddScriptLPS(1); 8158 m_host.AddScriptLPS(1);
8092 8159
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
index 785bfd0..744dc99 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
@@ -26,624 +26,362 @@
26 */ 26 */
27 27
28using System; 28using System;
29using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
30using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
31 29
30using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
31using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
32using LSL_Key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
33using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
34using LSL_Rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
35using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
36using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
32 37
33namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces 38namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
34{ 39{
35 public interface ILSL_Api 40 public interface ILSL_Api
36 { 41 {
37 void state(string newState); 42 void state(string newState);
38 void llSay(int channelID, string text);
39 LSL_Types.LSLFloat llSin(double f);
40 LSL_Types.LSLFloat llCos(double f);
41 LSL_Types.LSLFloat llTan(double f);
42 LSL_Types.LSLFloat llAtan2(double x, double y);
43 LSL_Types.LSLFloat llSqrt(double f);
44 LSL_Types.LSLFloat llPow(double fbase, double fexponent);
45 LSL_Types.LSLInteger llAbs(int i);
46 LSL_Types.LSLFloat llFabs(double f);
47 LSL_Types.LSLFloat llFrand(double mag);
48 LSL_Types.LSLInteger llFloor(double f);
49 LSL_Types.LSLInteger llCeil(double f);
50 LSL_Types.LSLInteger llRound(double f);
51 LSL_Types.LSLFloat llVecMag(LSL_Types.Vector3 v);
52 LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v);
53 LSL_Types.LSLFloat llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b);
54 LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r);
55 LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v);
56 LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up);
57 LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r);
58 LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r);
59 LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r);
60 LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end);
61 void llWhisper(int channelID, string text);
62 //void llSay(int channelID, string text);
63 void llShout(int channelID, string text);
64 void llRegionSay(int channelID, string text);
65 LSL_Types.LSLInteger llListen(int channelID, string name, string ID, string msg);
66 void llListenControl(int number, int active);
67 void llListenRemove(int number);
68 void llSensor(string name, string id, int type, double range, double arc);
69 void llSensorRepeat(string name, string id, int type, double range, double arc, double rate);
70 void llSensorRemove();
71 LSL_Types.LSLString llDetectedName(int number);
72 LSL_Types.LSLString llDetectedKey(int number);
73 LSL_Types.LSLString llDetectedOwner(int number);
74 LSL_Types.LSLInteger llDetectedType(int number);
75 LSL_Types.Vector3 llDetectedPos(int number);
76 LSL_Types.Vector3 llDetectedVel(int number);
77 LSL_Types.Vector3 llDetectedGrab(int number);
78 LSL_Types.Quaternion llDetectedRot(int number);
79 LSL_Types.LSLInteger llDetectedGroup(int number);
80 LSL_Types.LSLInteger llDetectedLinkNumber(int number);
81 void llDie();
82 LSL_Types.LSLFloat llGround(LSL_Types.Vector3 offset);
83 LSL_Types.LSLFloat llCloud(LSL_Types.Vector3 offset);
84 LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset);
85 void llSetStatus(int status, int value);
86 LSL_Types.LSLInteger llGetStatus(int status);
87 void llSetScale(LSL_Types.Vector3 scale);
88 LSL_Types.Vector3 llGetScale();
89 void llSetColor(LSL_Types.Vector3 color, int face);
90 LSL_Types.LSLFloat llGetAlpha(int face);
91 void llSetAlpha(double alpha, int face);
92 LSL_Types.Vector3 llGetColor(int face);
93 void llSetTexture(string texture, int face);
94 void llScaleTexture(double u, double v, int face);
95 void llOffsetTexture(double u, double v, int face);
96 void llRotateTexture(double rotation, int face);
97 LSL_Types.LSLString llGetTexture(int face);
98 void llSetPos(LSL_Types.Vector3 pos);
99 43
100 //wiki: vector llGetPos() 44 LSL_Integer llAbs(int i);
101 LSL_Types.Vector3 llGetPos(); 45 LSL_Float llAcos(double val);
102 //wiki: vector llGetLocalPos() 46 void llAddToLandBanList(string avatar, double hours);
103 LSL_Types.Vector3 llGetLocalPos(); 47 void llAddToLandPassList(string avatar, double hours);
104 //wiki: llSetRot(rotation rot) 48 void llAdjustSoundVolume(double volume);
105 void llSetRot(LSL_Types.Quaternion rot); 49 void llAllowInventoryDrop(int add);
106 //wiki: rotation llGetRot() 50 LSL_Float llAngleBetween(LSL_Rotation a, LSL_Rotation b);
107 LSL_Types.Quaternion llGetRot(); 51 void llApplyImpulse(LSL_Vector force, int local);
108 //wiki: rotation llGetLocalRot() 52 void llApplyRotationalImpulse(LSL_Vector force, int local);
109 LSL_Types.Quaternion llGetLocalRot(); 53 LSL_Float llAsin(double val);
110 //wiki: llSetForce(vector force, integer local) 54 LSL_Float llAtan2(double x, double y);
111 void llSetForce(LSL_Types.Vector3 force, int local); 55 void llAttachToAvatar(int attachment);
112 //wiki: vector llGetForce() 56 LSL_Key llAvatarOnSitTarget();
113 LSL_Types.Vector3 llGetForce(); 57 LSL_Rotation llAxes2Rot(LSL_Vector fwd, LSL_Vector left, LSL_Vector up);
114 //wiki: integer llTarget(vector position, double range) 58 LSL_Rotation llAxisAngle2Rot(LSL_Vector axis, double angle);
115 LSL_Types.LSLInteger llTarget(LSL_Types.Vector3 position, double range); 59 LSL_Integer llBase64ToInteger(string str);
116 //wiki: llTargetRemove(integer number) 60 LSL_String llBase64ToString(string str);
117 void llTargetRemove(int number); 61 void llBreakAllLinks();
118 //wiki: integer llRotTarget(rotation rot, double error) 62 void llBreakLink(int linknum);
119 LSL_Types.LSLInteger llRotTarget(LSL_Types.Quaternion rot, double error); 63 LSL_Integer llCeil(double f);
120 //wiki: integer llRotTargetRemove(integer number) 64 void llClearCameraParams();
121 void llRotTargetRemove(int number); 65 void llCloseRemoteDataChannel(string channel);
122 //wiki: llMoveToTarget(vector target, double tau) 66 LSL_Float llCloud(LSL_Vector offset);
123 void llMoveToTarget(LSL_Types.Vector3 target, double tau); 67 void llCollisionFilter(string name, string id, int accept);
124 //wiki: llStopMoveToTarget() 68 void llCollisionSound(string impact_sound, double impact_volume);
125 void llStopMoveToTarget(); 69 void llCollisionSprite(string impact_sprite);
126 //wiki: llApplyImpulse(vector force, integer local) 70 LSL_Float llCos(double f);
127 void llApplyImpulse(LSL_Types.Vector3 force, int local); 71 void llCreateLink(string target, int parent);
128 //wiki: llapplyRotationalImpulse(vector force, integer local) 72 LSL_List llCSV2List(string src);
129 void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local); 73 LSL_List llDeleteSubList(LSL_List src, int start, int end);
130 //wiki: llSetTorque(vector torque, integer local) 74 LSL_String llDeleteSubString(string src, int start, int end);
131 void llSetTorque(LSL_Types.Vector3 torque, int local); 75 void llDetachFromAvatar();
132 //wiki: vector llGetTorque() 76 LSL_Vector llDetectedGrab(int number);
133 LSL_Types.Vector3 llGetTorque(); 77 LSL_Integer llDetectedGroup(int number);
134 //wiki: llSeForceAndTorque(vector force, vector torque, integer local) 78 LSL_Key llDetectedKey(int number);
135 void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local); 79 LSL_Integer llDetectedLinkNumber(int number);
136 //wiki: vector llGetVel() 80 LSL_String llDetectedName(int number);
137 LSL_Types.Vector3 llGetVel(); 81 LSL_Key llDetectedOwner(int number);
138 //wiki: vector llGetAccel() 82 LSL_Vector llDetectedPos(int number);
139 LSL_Types.Vector3 llGetAccel(); 83 LSL_Rotation llDetectedRot(int number);
140 //wiki: vector llGetOmega() 84 LSL_Integer llDetectedType(int number);
141 LSL_Types.Vector3 llGetOmega(); 85 LSL_Vector llDetectedTouchBinormal(int index);
142 //wiki: LSL_Types.LSLFloat llGetTimeOfDay() 86 LSL_Integer llDetectedTouchFace(int index);
143 LSL_Types.LSLFloat llGetTimeOfDay(); 87 LSL_Vector llDetectedTouchNormal(int index);
144 //wiki: LSL_Types.LSLFloat llGetWallclock() 88 LSL_Vector llDetectedTouchPos(int index);
145 LSL_Types.LSLFloat llGetWallclock(); 89 LSL_Vector llDetectedTouchST(int index);
146 //wiki: LSL_Types.LSLFloat llGetTime() 90 LSL_Vector llDetectedTouchUV(int index);
147 LSL_Types.LSLFloat llGetTime(); 91 LSL_Vector llDetectedVel(int number);
148 //wiki: llResetTime() 92 void llDialog(string avatar, string message, LSL_List buttons, int chat_channel);
149 void llResetTime(); 93 void llDie();
150 //wiki: LSL_Types.LSLFloat llGetAndResetTime() 94 LSL_String llDumpList2String(LSL_List src, string seperator);
151 LSL_Types.LSLFloat llGetAndResetTime(); 95 LSL_Integer llEdgeOfWorld(LSL_Vector pos, LSL_Vector dir);
152 //wiki (deprecated) llSound(string sound, double volume, integer queue, integer loop) 96 void llEjectFromLand(string pest);
153 void llSound(); 97 void llEmail(string address, string subject, string message);
154 //wiki: llPlaySound(string sound, double volume) 98 LSL_String llEscapeURL(string url);
155 void llPlaySound(string sound, double volume); 99 LSL_Rotation llEuler2Rot(LSL_Vector v);
156 //wiki: llLoopSound(string sound, double volume) 100 LSL_Float llFabs(double f);
157 void llLoopSound(string sound, double volume); 101 LSL_Integer llFloor(double f);
158 //wiki: llLoopSoundMaster(string sound, double volume) 102 void llForceMouselook(int mouselook);
159 void llLoopSoundMaster(string sound, double volume); 103 LSL_Float llFrand(double mag);
160 //wiki: llLoopSoundSlave(string sound, double volume) 104 LSL_Vector llGetAccel();
161 void llLoopSoundSlave(string sound, double volume); 105 LSL_Integer llGetAgentInfo(string id);
162 //wiki llPlaySoundSlave(string sound, double volume) 106 LSL_Vector llGetAgentSize(string id);
163 void llPlaySoundSlave(string sound, double volume); 107 LSL_Float llGetAlpha(int face);
164 //wiki: llTriggerSound(string sound, double volume) 108 LSL_Float llGetAndResetTime();
165 void llTriggerSound(string sound, double volume); 109 LSL_String llGetAnimation(string id);
166 //wiki: llStopSound() 110 LSL_List llGetAnimationList(string id);
167 void llStopSound(); 111 LSL_Integer llGetAttached();
168 //wiki: llPreloadSound(string sound) 112 LSL_List llGetBoundingBox(string obj);
169 void llPreloadSound(string sound); 113 LSL_Vector llGetCameraPos();
170 //wiki: LSL_Types.LSLString llGetSubString(string src, integer start, integer end) 114 LSL_Rotation llGetCameraRot();
171 LSL_Types.LSLString llGetSubString(string src, int start, int end); 115 LSL_Vector llGetCenterOfMass();
172 //wiki: LSL_Types.LSLString llDeleteSubString(string src, integer start, integer end) 116 LSL_Vector llGetColor(int face);
173 LSL_Types.LSLString llDeleteSubString(string src, int start, int end); 117 LSL_String llGetCreator();
174 //wiki LSL_Types.LSLString llInsertString(string dst, integer position, string src) 118 LSL_String llGetDate();
175 LSL_Types.LSLString llInsertString(string dst, int position, string src); 119 LSL_Float llGetEnergy();
176 //wiki: LSL_Types.LSLString llToUpper(string source) 120 LSL_Vector llGetForce();
177 LSL_Types.LSLString llToUpper(string source); 121 LSL_Integer llGetFreeMemory();
178 //wiki: LSL_Types.LSLString llToLower(string source) 122 LSL_Vector llGetGeometricCenter();
179 LSL_Types.LSLString llToLower(string source); 123 LSL_Float llGetGMTclock();
180 //wiki: integer llGiveMoney(key destination, integer amount) 124 LSL_Key llGetInventoryCreator(string item);
181 LSL_Types.LSLInteger llGiveMoney(string destination, int amount); 125 LSL_Key llGetInventoryKey(string name);
182 //wiki: (deprecated) 126 LSL_String llGetInventoryName(int type, int number);
183 void llMakeExplosion(); 127 LSL_Integer llGetInventoryNumber(int type);
184 //wiki: (deprecated) 128 LSL_Integer llGetInventoryPermMask(string item, int mask);
185 void llMakeFountain(); 129 LSL_Integer llGetInventoryType(string name);
186 //wiki: (deprecated) 130 LSL_Key llGetKey();
187 void llMakeSmoke(); 131 LSL_Key llGetLandOwnerAt(LSL_Vector pos);
188 //wiki: (deprecated) 132 LSL_Key llGetLinkKey(int linknum);
189 void llMakeFire(); 133 LSL_String llGetLinkName(int linknum);
190 //wiki: llRezObject(string inventory, vector pos, vector rel, rotation rot, integer param) 134 LSL_Integer llGetLinkNumber();
191 void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Vector3 vel, LSL_Types.Quaternion rot, int param); 135 LSL_Integer llGetListEntryType(LSL_List src, int index);
192 //wiki: llLookAt(vector target, double strength, double damping) 136 LSL_Integer llGetListLength(LSL_List src);
193 void llLookAt(LSL_Types.Vector3 target, double strength, double damping); 137 LSL_Vector llGetLocalPos();
194 //wiki: llStopLookAt() 138 LSL_Rotation llGetLocalRot();
195 void llStopLookAt(); 139 LSL_Float llGetMass();
196 //wiki: llSetTimerEvent(double sec) 140 void llGetNextEmail(string address, string subject);
197 void llSetTimerEvent(double sec); 141 LSL_String llGetNotecardLine(string name, int line);
198 //wiki: llSleep(double sec) 142 LSL_Key llGetNumberOfNotecardLines(string name);
199 void llSleep(double sec); 143 LSL_Integer llGetNumberOfPrims();
200 //wiki: LSL_Types.LSLFloat llGetMass() 144 LSL_Integer llGetNumberOfSides();
201 LSL_Types.LSLFloat llGetMass(); 145 LSL_String llGetObjectDesc();
202 //wiki: llCollisionFilter(string name, key id, integer accept) 146 LSL_List llGetObjectDetails(string id, LSL_List args);
203 void llCollisionFilter(string name, string id, int accept); 147 LSL_Float llGetObjectMass(string id);
204 //wiki: llTakeControls(integer controls, integer accept, integer pass_on) 148 LSL_String llGetObjectName();
205 void llTakeControls(int controls, int accept, int pass_on); 149 LSL_Integer llGetObjectPermMask(int mask);
206 //wiki: llReleaseControls() 150 LSL_Integer llGetObjectPrimCount(string object_id);
207 void llReleaseControls(); 151 LSL_Vector llGetOmega();
208 //wiki: llAttachToAvatar(integer attachment) 152 LSL_Key llGetOwner();
209 void llAttachToAvatar(int attachment); 153 LSL_Key llGetOwnerKey(string id);
210 //wiki: llDetachFromAvatar() 154 LSL_List llGetParcelDetails(LSL_Vector pos, LSL_List param);
211 void llDetachFromAvatar(); 155 LSL_Integer llGetParcelFlags(LSL_Vector pos);
212 //wiki: (deprecated) llTakeCamera(key avatar) 156 LSL_Integer llGetParcelMaxPrims(LSL_Vector pos, int sim_wide);
213 void llTakeCamera(string avatar); 157 LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide);
214 //wiki: (deprecated) llReleaseCamera(key avatar) 158 LSL_List llGetParcelPrimOwners(LSL_Vector pos);
215 void llReleaseCamera(string avatar); 159 LSL_Integer llGetPermissions();
216 //wiki: key llGetOwner() 160 LSL_Key llGetPermissionsKey();
217 LSL_Types.LSLString llGetOwner(); 161 LSL_Vector llGetPos();
218 //wiki: llInstantMessage(key user, string message) 162 LSL_List llGetPrimitiveParams(LSL_List rules);
219 void llInstantMessage(string user, string message); 163 LSL_Integer llGetRegionAgentCount();
220 //wiki: llEmail(string address, string subject, string message) 164 LSL_Vector llGetRegionCorner();
221 void llEmail(string address, string subject, string message); 165 LSL_Integer llGetRegionFlags();
222 //wiki: llGetNextEmail(string address, string subject) 166 LSL_Float llGetRegionFPS();
223 void llGetNextEmail(string address, string subject); 167 LSL_String llGetRegionName();
224 //wiki: key llGetKey() 168 LSL_Float llGetRegionTimeDilation();
225 LSL_Types.LSLString llGetKey(); 169 LSL_Vector llGetRootPosition();
226 //wiki: llSetBuoyancy(double buoyancy) 170 LSL_Rotation llGetRootRotation();
227 void llSetBuoyancy(double buoyancy); 171 LSL_Rotation llGetRot();
228 //wiki: llSetHoverHeight(double height, integer water, double tau) 172 LSL_Vector llGetScale();
229 void llSetHoverHeight(double height, int water, double tau); 173 LSL_String llGetScriptName();
230 //wiki: llStopHover 174 LSL_Integer llGetScriptState(string name);
231 void llStopHover(); 175 LSL_String llGetSimulatorHostname();
232 //wiki: llMinEventDelay(double delay) 176 LSL_Integer llGetStartParameter();
233 void llMinEventDelay(double delay); 177 LSL_Integer llGetStatus(int status);
234 //wiki: (deprecated) llSoundPreload() 178 LSL_String llGetSubString(string src, int start, int end);
235 void llSoundPreload(); 179 LSL_Vector llGetSunDirection();
236 //wiki: llRotLookAt(rotation target, double strength, double damping) 180 LSL_String llGetTexture(int face);
237 void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping); 181 LSL_Vector llGetTextureOffset(int face);
238 //wiki: integer llStringLength(string str) 182 LSL_Float llGetTextureRot(int side);
239 LSL_Types.LSLInteger llStringLength(string str); 183 LSL_Vector llGetTextureScale(int side);
240 //wiki: llStartAnimation(string anim) 184 LSL_Float llGetTime();
241 void llStartAnimation(string anim); 185 LSL_Float llGetTimeOfDay();
242 //wiki: llStopAnimation(string anim) 186 LSL_String llGetTimestamp();
243 void llStopAnimation(string anim); 187 LSL_Vector llGetTorque();
244 //wiki: (deprecated) llPointAt 188 LSL_Integer llGetUnixTime();
245 void llPointAt(); 189 LSL_Vector llGetVel();
246 //wiki: (deprecated) llStopPointAt 190 LSL_Float llGetWallclock();
247 void llStopPointAt(); 191 void llGiveInventory(string destination, string inventory);
248 //wiki: llTargetOmega(vector axis, double spinrate, double gain) 192 void llGiveInventoryList(string destination, string category, LSL_List inventory);
249 void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain); 193 LSL_Integer llGiveMoney(string destination, int amount);
250 //wiki: integer llGetStartParameter() 194 void llGodLikeRezObject(string inventory, LSL_Vector pos);
251 LSL_Types.LSLInteger llGetStartParameter(); 195 LSL_Float llGround(LSL_Vector offset);
252 //wiki: llGodLikeRezObject(key inventory, vector pos) 196 LSL_Vector llGroundContour(LSL_Vector offset);
253 void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos); 197 LSL_Vector llGroundNormal(LSL_Vector offset);
254 //wiki: llRequestPermissions(key agent, integer perm) 198 void llGroundRepel(double height, int water, double tau);
255 void llRequestPermissions(string agent, int perm); 199 LSL_Vector llGroundSlope(LSL_Vector offset);
256 //wiki: key llGetPermissionsKey() 200 LSL_String llHTTPRequest(string url, LSL_List parameters, string body);
257 LSL_Types.LSLString llGetPermissionsKey(); 201 LSL_String llInsertString(string dst, int position, string src);
258 //wiki: integer llGetPermissions() 202 void llInstantMessage(string user, string message);
259 LSL_Types.LSLInteger llGetPermissions(); 203 LSL_String llIntegerToBase64(int number);
260 //wiki integer llGetLinkNumber() 204 LSL_String llKey2Name(string id);
261 LSL_Types.LSLInteger llGetLinkNumber(); 205 LSL_String llList2CSV(LSL_List src);
262 //wiki: llSetLinkColor(integer linknumber, vector color, integer face) 206 LSL_Float llList2Float(LSL_List src, int index);
263 void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face); 207 LSL_Integer llList2Integer(LSL_List src, int index);
264 //wiki: llCreateLink(key target, integer parent) 208 LSL_Key llList2Key(LSL_List src, int index);
265 void llCreateLink(string target, int parent); 209 LSL_List llList2List(LSL_List src, int start, int end);
266 //wiki: llBreakLink(integer linknum) 210 LSL_List llList2ListStrided(LSL_List src, int start, int end, int stride);
267 void llBreakLink(int linknum); 211 LSL_Rotation llList2Rot(LSL_List src, int index);
268 //wiki: llBreakAllLinks() 212 LSL_String llList2String(LSL_List src, int index);
269 void llBreakAllLinks(); 213 LSL_Vector llList2Vector(LSL_List src, int index);
270 //wiki: key llGetLinkKey(integer linknum) 214 LSL_Integer llListen(int channelID, string name, string ID, string msg);
271 LSL_Types.LSLString llGetLinkKey(int linknum); 215 void llListenControl(int number, int active);
272 //wiki: llGetLinkName(integer linknum) 216 void llListenRemove(int number);
273 LSL_Types.LSLString llGetLinkName(int linknum); 217 LSL_Integer llListFindList(LSL_List src, LSL_List test);
274 //wiki: integer llGetInventoryNumber(integer type) 218 LSL_List llListInsertList(LSL_List dest, LSL_List src, int start);
275 LSL_Types.LSLInteger llGetInventoryNumber(int type); 219 LSL_List llListRandomize(LSL_List src, int stride);
276 //wiki: LSL_Types.LSLString llGetInventoryName(integer type, integer number) 220 LSL_List llListReplaceList(LSL_List dest, LSL_List src, int start, int end);
277 LSL_Types.LSLString llGetInventoryName(int type, int number); 221 LSL_List llListSort(LSL_List src, int stride, int ascending);
278 //wiki: llSetScriptState(string name, integer run) 222 LSL_Float llListStatistics(int operation, LSL_List src);
279 void llSetScriptState(string name, int run); 223 void llLoadURL(string avatar_id, string message, string url);
280 //wiki: LSL_Types.LSLFloat llGetEnergy() 224 LSL_Float llLog(double val);
281 LSL_Types.LSLFloat llGetEnergy(); 225 LSL_Float llLog10(double val);
282 //wiki: llGiveInventory(key destination, string inventory) 226 void llLookAt(LSL_Vector target, double strength, double damping);
283 void llGiveInventory(string destination, string inventory); 227 void llLoopSound(string sound, double volume);
284 //wiki: llRemoveInventory(string item) 228 void llLoopSoundMaster(string sound, double volume);
285 void llRemoveInventory(string item); 229 void llLoopSoundSlave(string sound, double volume);
286 //wiki: llSetText(string text, vector color, double alpha) 230 void llMakeExplosion();
287 void llSetText(string text, LSL_Types.Vector3 color, double alpha); 231 void llMakeFire();
288 //wiki: LSL_Types.LSLFloat llWater(vector offset) 232 void llMakeFountain();
289 LSL_Types.LSLFloat llWater(LSL_Types.Vector3 offset); 233 void llMakeSmoke();
290 //wiki: llPassTouches(integer pass) 234 void llMapDestination(string simname, LSL_Vector pos, LSL_Vector look_at);
291 void llPassTouches(int pass); 235 LSL_String llMD5String(string src, int nonce);
292 //wiki: key llRequestAgentData(key id, integer data) 236 void llMessageLinked(int linknum, int num, string str, string id);
293 LSL_Types.LSLString llRequestAgentData(string id, int data); 237 void llMinEventDelay(double delay);
294 //wiki: key llRequestInventoryData(string name) 238 void llModifyLand(int action, int brush);
295 LSL_Types.LSLString llRequestInventoryData(string name); 239 LSL_Integer llModPow(int a, int b, int c);
296 //wiki: llSetDamage(double damage) 240 void llMoveToTarget(LSL_Vector target, double tau);
297 void llSetDamage(double damage); 241 void llOffsetTexture(double u, double v, int face);
298 //wiki: llTeleportAgentHome(key agent) 242 void llOpenRemoteDataChannel();
299 void llTeleportAgentHome(string agent); 243 LSL_Integer llOverMyLand(string id);
300 //wiki: llModifyLand(integer action, integer brush) 244 void llOwnerSay(string msg);
301 void llModifyLand(int action, int brush); 245 void llParcelMediaCommandList(LSL_List commandList);
302 //wiki: llCollisionSound(string impact_sound, double impact_volume) 246 LSL_List llParcelMediaQuery(LSL_List aList);
303 void llCollisionSound(string impact_sound, double impact_volume); 247 LSL_List llParseString2List(string str, LSL_List separators, LSL_List spacers);
304 //wiki: llCollisionSprite(string impact_sprite) 248 LSL_List llParseStringKeepNulls(string src, LSL_List seperators, LSL_List spacers);
305 void llCollisionSprite(string impact_sprite); 249 void llParticleSystem(LSL_List rules);
306 //wiki: LSL_Types.LSLString llGetAnimation(key id) 250 void llPassCollisions(int pass);
307 LSL_Types.LSLString llGetAnimation(string id); 251 void llPassTouches(int pass);
308 //wiki: llResetScript() 252 void llPlaySound(string sound, double volume);
309 void llResetScript(); 253 void llPlaySoundSlave(string sound, double volume);
310 //wiki: llMessageLinked(integer linknum, integer num, string str, key id) 254 void llPointAt();
311 void llMessageLinked(int linknum, int num, string str, string id); 255 LSL_Float llPow(double fbase, double fexponent);
312 //wiki: llPushObject(key target, vector impulse, vector ang_impulse, integer local) 256 void llPreloadSound(string sound);
313 void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local); 257 void llPushObject(string target, LSL_Vector impulse, LSL_Vector ang_impulse, int local);
314 //wiki: llPassCollisions(integer pass) 258 void llRefreshPrimURL();
315 void llPassCollisions(int pass); 259 void llRegionSay(int channelID, string text);
316 //wiki: LSL_Types.LSLString llGetScriptName() 260 void llReleaseCamera(string avatar);
317 LSL_Types.LSLString llGetScriptName(); 261 void llReleaseControls();
318 //wiki: integer llGetNumberOfSides() 262 void llRemoteDataReply(string channel, string message_id, string sdata, int idata);
319 LSL_Types.LSLInteger llGetNumberOfSides(); 263 void llRemoteDataSetRegion();
320 //wiki: rotation llAxisAngle2Rot(vector axis, double angle) 264 void llRemoteLoadScript();
321 LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle); 265 void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param);
322 //wiki: vector llRot2Axis(rotation rot) 266 void llRemoveFromLandBanList(string avatar);
323 LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot); 267 void llRemoveFromLandPassList(string avatar);
324 //wiki: LSL_Types.LSLFloat llRot2Angle(rotation rot); 268 void llRemoveInventory(string item);
325 LSL_Types.LSLFloat llRot2Angle(LSL_Types.Quaternion rot); 269 void llRemoveVehicleFlags(int flags);
326 //wiki: LSL_Types.LSLFloat llAcos(double val) 270 LSL_Key llRequestAgentData(string id, int data);
327 LSL_Types.LSLFloat llAcos(double val); 271 LSL_Key llRequestInventoryData(string name);
328 //wiki: LSL_Types.LSLFloat llAsin(double val) 272 void llRequestPermissions(string agent, int perm);
329 LSL_Types.LSLFloat llAsin(double val); 273 LSL_Key llRequestSimulatorData(string simulator, int data);
330 //wiki: LSL_Types.LSLFloat llAngleBetween(rotation a, rotation b) 274 void llResetLandBanList();
331 LSL_Types.LSLFloat llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b); 275 void llResetLandPassList();
332 //wiki: LSL_Types.LSLString llGetInventoryKey(string name) 276 void llResetOtherScript(string name);
333 LSL_Types.LSLString llGetInventoryKey(string name); 277 void llResetScript();
334 //wiki: llAllowInventoryDrop(integer add) 278 void llResetTime();
335 void llAllowInventoryDrop(int add); 279 void llRezAtRoot(string inventory, LSL_Vector position, LSL_Vector velocity, LSL_Rotation rot, int param);
336 //wiki: vector llGetSunDirection() 280 void llRezObject(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param);
337 LSL_Types.Vector3 llGetSunDirection(); 281 LSL_Float llRot2Angle(LSL_Rotation rot);
338 //wiki: vector llGetTextureOffset(integer face) 282 LSL_Vector llRot2Axis(LSL_Rotation rot);
339 LSL_Types.Vector3 llGetTextureOffset(int face); 283 LSL_Vector llRot2Euler(LSL_Rotation r);
340 //wiki: vector llGetTextureScale(integer side) 284 LSL_Vector llRot2Fwd(LSL_Rotation r);
341 LSL_Types.Vector3 llGetTextureScale(int side); 285 LSL_Vector llRot2Left(LSL_Rotation r);
342 //wiki: LSL_Types.LSLFloat llGetTextureRot(integer side) 286 LSL_Vector llRot2Up(LSL_Rotation r);
343 LSL_Types.LSLFloat llGetTextureRot(int side); 287 void llRotateTexture(double rotation, int face);
344 //wiki: integer llSubStringIndex(string source, string pattern) 288 LSL_Rotation llRotBetween(LSL_Vector start, LSL_Vector end);
345 LSL_Types.LSLInteger llSubStringIndex(string source, string pattern); 289 void llRotLookAt(LSL_Rotation target, double strength, double damping);
346 //wiki: key llGetOwnerKey(key id) 290 LSL_Integer llRotTarget(LSL_Rotation rot, double error);
347 LSL_Types.LSLString llGetOwnerKey(string id); 291 void llRotTargetRemove(int number);
348 //wiki: vector llGetCenterOfMass() 292 LSL_Integer llRound(double f);
349 LSL_Types.Vector3 llGetCenterOfMass(); 293 LSL_Integer llSameGroup(string agent);
350 //wiki: list llListSort(list src, integer stride, integer ascending) 294 void llSay(int channelID, string text);
351 LSL_Types.list llListSort(LSL_Types.list src, int stride, int ascending); 295 void llScaleTexture(double u, double v, int face);
352 //integer llGetListLength(list src) 296 LSL_Integer llScriptDanger(LSL_Vector pos);
353 LSL_Types.LSLInteger llGetListLength(LSL_Types.list src); 297 LSL_Key llSendRemoteData(string channel, string dest, int idata, string sdata);
354 //wiki: integer llList2Integer(list src, integer index) 298 void llSensor(string name, string id, int type, double range, double arc);
355 LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index); 299 void llSensorRemove();
356 //wiki: LSL_Types.LSLFloat llList2double(list src, integer index) 300 void llSensorRepeat(string name, string id, int type, double range, double arc, double rate);
357 LSL_Types.LSLFloat llList2Float(LSL_Types.list src, int index); 301 void llSetAlpha(double alpha, int face);
358 //wiki: LSL_Types.LSLString llList2String(list src, integer index) 302 void llSetBuoyancy(double buoyancy);
359 LSL_Types.LSLString llList2String(LSL_Types.list src, int index); 303 void llSetCameraAtOffset(LSL_Vector offset);
360 //wiki: key llList2Key(list src, integer index) 304 void llSetCameraEyeOffset(LSL_Vector offset);
361 LSL_Types.LSLString llList2Key(LSL_Types.list src, int index); 305 void llSetCameraParams(LSL_List rules);
362 //wiki: vector llList2Vector(list src, integer index) 306 void llSetClickAction(int action);
363 LSL_Types.Vector3 llList2Vector(LSL_Types.list src, int index); 307 void llSetColor(LSL_Vector color, int face);
364 //wiki rotation llList2Rot(list src, integer index) 308 void llSetDamage(double damage);
365 LSL_Types.Quaternion llList2Rot(LSL_Types.list src, int index); 309 void llSetForce(LSL_Vector force, int local);
366 //wiki: list llList2List(list src, integer start, integer end) 310 void llSetForceAndTorque(LSL_Vector force, LSL_Vector torque, int local);
367 LSL_Types.list llList2List(LSL_Types.list src, int start, int end); 311 void llSetHoverHeight(double height, int water, double tau);
368 //wiki: llDeleteSubList(list src, integer start, integer end) 312 void llSetInventoryPermMask(string item, int mask, int value);
369 LSL_Types.list llDeleteSubList(LSL_Types.list src, int start, int end); 313 void llSetLinkAlpha(int linknumber, double alpha, int face);
370 //wiki: integer llGetListEntryType(list src, integer index) 314 void llSetLinkColor(int linknumber, LSL_Vector color, int face);
371 LSL_Types.LSLInteger llGetListEntryType(LSL_Types.list src, int index); 315 void llSetLinkPrimitiveParams(int linknumber, LSL_List rules);
372 //wiki: LSL_Types.LSLString llList2CSV(list src) 316 void llSetLinkTexture(int linknumber, string texture, int face);
373 LSL_Types.LSLString llList2CSV(LSL_Types.list src); 317 void llSetLocalRot(LSL_Rotation rot);
374 //wiki: list llCSV2List(string src) 318 void llSetObjectDesc(string desc);
375 LSL_Types.list llCSV2List(string src); 319 void llSetObjectName(string name);
376 //wiki: list llListRandomize(list src, integer stride) 320 void llSetObjectPermMask(int mask, int value);
377 LSL_Types.list llListRandomize(LSL_Types.list src, int stride); 321 void llSetParcelMusicURL(string url);
378 //wiki: list llList2ListStrided(list src, integer start, integer end, integer stride) 322 void llSetPayPrice(int price, LSL_List quick_pay_buttons);
379 LSL_Types.list llList2ListStrided(LSL_Types.list src, int start, int end, int stride); 323 void llSetPos(LSL_Vector pos);
380 //wiki: vector llGetRegionCorner() 324 void llSetPrimitiveParams(LSL_List rules);
381 LSL_Types.Vector3 llGetRegionCorner(); 325 void llSetPrimURL();
382 //wiki: list llListInsertList(list dest, list src, integer start) 326 void llSetRemoteScriptAccessPin(int pin);
383 LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int start); 327 void llSetRot(LSL_Rotation rot);
384 //wiki: integer llListFindList(list src, list test) 328 void llSetScale(LSL_Vector scale);
385 LSL_Types.LSLInteger llListFindList(LSL_Types.list src, LSL_Types.list test); 329 void llSetScriptState(string name, int run);
386 //wiki: LSL_Types.LSLString llGetObjectName() 330 void llSetSitText(string text);
387 LSL_Types.LSLString llGetObjectName(); 331 void llSetSoundQueueing(int queue);
388 //wiki: llSetObjectName(string name) 332 void llSetSoundRadius(double radius);
389 void llSetObjectName(string name); 333 void llSetStatus(int status, int value);
390 //wiki: LSL_Types.LSLString llGetDate() 334 void llSetText(string text, LSL_Vector color, double alpha);
391 LSL_Types.LSLString llGetDate(); 335 void llSetTexture(string texture, int face);
392 //wiki: integer llEdgeOfWorld(vector pos, vector dir) 336 void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate);
393 LSL_Types.LSLInteger llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir); 337 void llSetTimerEvent(double sec);
394 //wiki: integer llGetAgentInfo(key id) 338 void llSetTorque(LSL_Vector torque, int local);
395 LSL_Types.LSLInteger llGetAgentInfo(string id); 339 void llSetTouchText(string text);
396 //wiki: llAdjustSoundVolume(double volume) 340 void llSetVehicleFlags(int flags);
397 void llAdjustSoundVolume(double volume); 341 void llSetVehicleFloatParam(int param, float value);
398 //wiki: llSetSoundQueueing(integer queue) 342 void llSetVehicleRotationParam(int param, LSL_Rotation rot);
399 void llSetSoundQueueing(int queue); 343 void llSetVehicleType(int type);
400 //wiki: llSetSoundRadius(double radius) 344 void llSetVehicleVectorParam(int param, LSL_Vector vec);
401 void llSetSoundRadius(double radius); 345 void llShout(int channelID, string text);
402 //wiki: LSL_Types.LSLString llKey2Name(key id) 346 LSL_Float llSin(double f);
403 LSL_Types.LSLString llKey2Name(string id); 347 void llSitTarget(LSL_Vector offset, LSL_Rotation rot);
404 //wiki: llSetTextureAnim(integer mode, integer face, integer sizex, integer sizey, double start, double length, double rate) 348 void llSleep(double sec);
405 void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate); 349 void llSound();
406 //wiki: llTriggerSoundLimited(string sound, double volume, vector top_north_east, vector bottom_south_west) 350 void llSoundPreload();
407 void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, 351 LSL_Float llSqrt(double f);
408 LSL_Types.Vector3 bottom_south_west); 352 void llStartAnimation(string anim);
409 353 void llStopAnimation(string anim);
410 //wiki: llEjectFromLand(key pest) 354 void llStopHover();
411 void llEjectFromLand(string pest); 355 void llStopLookAt();
412 LSL_Types.list llParseString2List(string str, LSL_Types.list separators, LSL_Types.list spacers); 356 void llStopMoveToTarget();
413 //wiki: integer llOverMyLand(key id) 357 void llStopPointAt();
414 LSL_Types.LSLInteger llOverMyLand(string id); 358 void llStopSound();
415 //wiki: key llGetLandOwnerAt(vector pos) 359 LSL_Integer llStringLength(string str);
416 LSL_Types.LSLString llGetLandOwnerAt(LSL_Types.Vector3 pos); 360 LSL_String llStringToBase64(string str);
417 //wiki: key llGetNotecardLine(string name, integer line) 361 LSL_String llStringTrim(string src, int type);
418 LSL_Types.LSLString llGetNotecardLine(string name, int line); 362 LSL_Integer llSubStringIndex(string source, string pattern);
419 //wiki: vector llGetAgentSize(key id) 363 void llTakeCamera(string avatar);
420 LSL_Types.Vector3 llGetAgentSize(string id); 364 void llTakeControls(int controls, int accept, int pass_on);
421 //wiki: integer llSameGroup(key agent) 365 LSL_Float llTan(double f);
422 LSL_Types.LSLInteger llSameGroup(string agent); 366 LSL_Integer llTarget(LSL_Vector position, double range);
423 //wiki: llUnSit(key id) 367 void llTargetOmega(LSL_Vector axis, double spinrate, double gain);
424 void llUnSit(string id); 368 void llTargetRemove(int number);
425 //wiki: vector llGroundSlope(vector offset) 369 void llTeleportAgentHome(string agent);
426 LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset); 370 void llTextBox(string avatar, string message, int chat_channel);
427 //wiki: vector llGroundNormal(vector offset) 371 LSL_String llToLower(string source);
428 LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset); 372 LSL_String llToUpper(string source);
429 //wiki: vector llGroundContour(vector offset) 373 void llTriggerSound(string sound, double volume);
430 LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset); 374 void llTriggerSoundLimited(string sound, double volume, LSL_Vector top_north_east, LSL_Vector bottom_south_west);
431 //wiki: integer llGetAttached() 375 LSL_String llUnescapeURL(string url);
432 LSL_Types.LSLInteger llGetAttached(); 376 void llUnSit(string id);
433 //wiki: integer llGetFreeMemory() 377 LSL_Float llVecDist(LSL_Vector a, LSL_Vector b);
434 LSL_Types.LSLInteger llGetFreeMemory(); 378 LSL_Float llVecMag(LSL_Vector v);
435 //wiki: LSL_Types.LSLString llGetRegionName() 379 LSL_Vector llVecNorm(LSL_Vector v);
436 LSL_Types.LSLString llGetRegionName(); 380 void llVolumeDetect(int detect);
437 //wiki: LSL_Types.LSLFloat llGetRegionTimeDilation() 381 LSL_Float llWater(LSL_Vector offset);
438 LSL_Types.LSLFloat llGetRegionTimeDilation(); 382 void llWhisper(int channelID, string text);
439 //wiki: LSL_Types.LSLFloat llGetRegionFPS() 383 LSL_Vector llWind(LSL_Vector offset);
440 LSL_Types.LSLFloat llGetRegionFPS(); 384 void llXorBase64Strings();
441 //wiki: llParticleSystem(List<Object> rules 385 LSL_String llXorBase64StringsCorrect(string str1, string str2);
442 void llParticleSystem(LSL_Types.list rules);
443 //wiki: llGroundRepel(double height, integer water, double tau)
444 void llGroundRepel(double height, int water, double tau);
445 //wiki: llGiveInventoryList(string destination, string category, LSL_Types.list inventory)
446 void llGiveInventoryList(string destination, string category, LSL_Types.list inventory);
447 //wiki: llSetVehicleType(integer type)
448 void llSetVehicleType(int type);
449 //wiki: llSetVehicledoubleParam(integer param, double value)
450 void llSetVehicledoubleParam(int param, double value);
451 // wiki: llSetVehicleFloatParam(integer param, float value)
452 void llSetVehicleFloatParam(int param, float value);
453 //wiki: llSetVehicleVectorParam(integer param, vector vec)
454 void llSetVehicleVectorParam(int param, LSL_Types.Vector3 vec);
455 //wiki: llSetVehicleRotationParam(integer param, rotation rot)
456 void llSetVehicleRotationParam(int param, LSL_Types.Quaternion rot);
457 //wiki: llSetVehicleFlags(integer flags)
458 void llSetVehicleFlags(int flags);
459 //wiki: llRemoveVehicleFlags(integer flags)
460 void llRemoveVehicleFlags(int flags);
461 //wiki: llSitTarget(vector offset, rotation rot)
462 void llSitTarget(LSL_Types.Vector3 offset, LSL_Types.Quaternion rot);
463 //wiki key llAvatarOnSitTarget()
464 LSL_Types.LSLString llAvatarOnSitTarget();
465 //wiki: llAddToLandPassList(key avatar, double hours)
466 void llAddToLandPassList(string avatar, double hours);
467 //wiki: llSetTouchText(string text)
468 void llSetTouchText(string text);
469 //wiki: llSetSitText(string text)
470 void llSetSitText(string text);
471 //wiki: llSetCameraEyeOffset(vector offset)
472 void llSetCameraEyeOffset(LSL_Types.Vector3 offset);
473 //wiki: llSeteCameraAtOffset(vector offset)
474 void llSetCameraAtOffset(LSL_Types.Vector3 offset);
475 //
476 LSL_Types.LSLString llDumpList2String(LSL_Types.list src, string seperator);
477 //wiki: integer llScriptDanger(vector pos)
478 LSL_Types.LSLInteger llScriptDanger(LSL_Types.Vector3 pos);
479 //wiki: llDialog(key avatar, string message, list buttons, integer chat_channel)
480 void llDialog(string avatar, string message, LSL_Types.list buttons, int chat_channel);
481 //wiki: llVolumeDetect(integer detect)
482 void llVolumeDetect(int detect);
483 //wiki: llResetOtherScript(string name)
484 void llResetOtherScript(string name);
485 //wiki: integer llGetScriptState(string name)
486 LSL_Types.LSLInteger llGetScriptState(string name);
487 //wiki: (deprecated)
488 void llRemoteLoadScript();
489 //wiki: llSetRemoteScriptAccessPin(integer pin)
490 void llSetRemoteScriptAccessPin(int pin);
491 //wiki: llRemoteLoadScriptPin(key target, string name, integer pin, integer running, integer start_param)
492 void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param);
493 //wiki: llOpenRemoteDataChannel()
494 void llOpenRemoteDataChannel();
495 //wiki: key llSendRemoteData(key channel, string dest, integer idata, string sdata)
496 LSL_Types.LSLString llSendRemoteData(string channel, string dest, int idata, string sdata);
497 //wiki: llRemoteDataReply(key channel, key message_id, string sdata, integer idata)
498 void llRemoteDataReply(string channel, string message_id, string sdata, int idata);
499 //wiki: llCloseRemoteDataChannel(key channel)
500 void llCloseRemoteDataChannel(string channel);
501 //wiki: LSL_Types.LSLString llMD5String(string src, integer nonce)
502 LSL_Types.LSLString llMD5String(string src, int nonce);
503 //wiki: llSetPrimitiveParams(list rules)
504 void llSetPrimitiveParams(LSL_Types.list rules);
505 //wiki: llSetLinkPrimitiveParams(integer linknumber, list rules)
506 void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules);
507 //wiki: LSL_Types.LSLString llStringToBase64(string str)
508 LSL_Types.LSLString llStringToBase64(string str);
509 //wiki: LSL_Types.LSLString llBase64ToString(string str)
510 LSL_Types.LSLString llBase64ToString(string str);
511 //wiki: (deprecated)
512 void llXorBase64Strings();
513 //wiki: llRemoteDataSetRegion()
514 void llRemoteDataSetRegion();
515 //wiki: LSL_Types.LSLFloat llLog10(double val)
516 LSL_Types.LSLFloat llLog10(double val);
517 //wiki: LSL_Types.LSLFloat llLog(double val)
518 LSL_Types.LSLFloat llLog(double val);
519 //wiki: list llGetAnimationList(key id)
520 LSL_Types.list llGetAnimationList(string id);
521 //wiki: llSetParcelMusicURL(string url)
522 void llSetParcelMusicURL(string url);
523 //wiki: vector llGetRootPosition()
524 LSL_Types.Vector3 llGetRootPosition();
525 //wiki: rotation llGetRootRotation()
526 LSL_Types.Quaternion llGetRootRotation();
527 //wiki: LSL_Types.LSLString llGetObjectDesc()
528 LSL_Types.LSLString llGetObjectDesc();
529 //wiki: llSetObjectDesc(string desc)
530 void llSetObjectDesc(string desc);
531 //wiki: key llGetCreator()
532 LSL_Types.LSLString llGetCreator();
533 //wiki: LSL_Types.LSLString llGetTimestamp()
534 LSL_Types.LSLString llGetTimestamp();
535 //wiki: llSetLinkAlpha(integer linknumber, double alpha, integer face)
536 void llSetLinkAlpha(int linknumber, double alpha, int face);
537 //wiki: integer llGetNumberOfPrims()
538 LSL_Types.LSLInteger llGetNumberOfPrims();
539 //wiki: key llGetNumberOfNotecardLines(string name)
540 LSL_Types.LSLString llGetNumberOfNotecardLines(string name);
541 //wiki: list llGetBoundingBox(key object)
542 LSL_Types.list llGetBoundingBox(string obj);
543 //wiki: vector llGetGeometricCenter()
544 LSL_Types.Vector3 llGetGeometricCenter();
545 //wiki: list llGetPrimitiveParams(list rules)
546 LSL_Types.list llGetPrimitiveParams(LSL_Types.list rules);
547 //wiki: LSL_Types.LSLString llIntegerToBase64(integer number)
548 LSL_Types.LSLString llIntegerToBase64(int number);
549 //wiki integer llBase64ToInteger(string str)
550 LSL_Types.LSLInteger llBase64ToInteger(string str);
551 //wiki: LSL_Types.LSLFloat llGetGMTclock()
552 LSL_Types.LSLFloat llGetGMTclock();
553 //wiki: LSL_Types.LSLString llGetSimulatorHostname()
554 LSL_Types.LSLString llGetSimulatorHostname();
555 //llSetLocalRot(rotation rot)
556 void llSetLocalRot(LSL_Types.Quaternion rot);
557 //wiki: list llParseStringKeepNulls(string src, list separators, list spacers)
558 LSL_Types.list llParseStringKeepNulls(string src, LSL_Types.list seperators, LSL_Types.list spacers);
559 //wiki: llRezAtRoot(string inventory, vector position, vector velocity, rotation rot, integer param)
560 void llRezAtRoot(string inventory, LSL_Types.Vector3 position, LSL_Types.Vector3 velocity,
561 LSL_Types.Quaternion rot, int param);
562
563 //wiki: integer llGetObjectPermMask(integer mask)
564 LSL_Types.LSLInteger llGetObjectPermMask(int mask);
565 //wiki: llSetObjectPermMask(integer mask, integer value)
566 void llSetObjectPermMask(int mask, int value);
567 //wiki integer llGetInventoryPermMask(string item, integer mask)
568 LSL_Types.LSLInteger llGetInventoryPermMask(string item, int mask);
569 //wiki: llSetInventoryPermMask(string item, integer mask, integer value)
570 void llSetInventoryPermMask(string item, int mask, int value);
571 //wiki: key llGetInventoryCreator(string item)
572 LSL_Types.LSLString llGetInventoryCreator(string item);
573 //wiki: llOwnerSay(string msg)
574 void llOwnerSay(string msg);
575 //wiki: key llRequestSimulatorData(string simulator, integer data)
576 LSL_Types.LSLString llRequestSimulatorData(string simulator, int data);
577 //wiki: llForceMouselook(integer mouselook)
578 void llForceMouselook(int mouselook);
579 //wiki: LSL_Types.LSLFloat llGetObjectMass(key id)
580 LSL_Types.LSLFloat llGetObjectMass(string id);
581 LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end);
582 //wiki: llLoadURL(key avatar_id, string message, string url)
583 void llLoadURL(string avatar_id, string message, string url);
584 //wiki: llParcelMediaCommandList(list commandList)
585 void llParcelMediaCommandList(LSL_Types.list commandList);
586 LSL_Types.list llParcelMediaQuery(LSL_Types.list aList);
587 //wiki integer llModPow(integer a, integer b, integer c)
588 LSL_Types.LSLInteger llModPow(int a, int b, int c);
589 //wiki: integer llGetInventoryType(string name)
590 LSL_Types.LSLInteger llGetInventoryType(string name);
591 //wiki: llSetPayPrice(integer price, list quick_pay_buttons)
592 void llSetPayPrice(int price, LSL_Types.list quick_pay_buttons);
593 //wiki: vector llGetCameraPos()
594 LSL_Types.Vector3 llGetCameraPos();
595 //wiki rotation llGetCameraRot()
596 LSL_Types.Quaternion llGetCameraRot();
597 //wiki: (deprecated)
598 void llSetPrimURL();
599 //wiki: (deprecated)
600 void llRefreshPrimURL();
601 //wiki: LSL_Types.LSLString llEscapeURL(string url)
602 LSL_Types.LSLString llEscapeURL(string url);
603 //wiki: LSL_Types.LSLString llUnescapeURL(string url)
604 LSL_Types.LSLString llUnescapeURL(string url);
605 //wiki: llMapDestination(string simname, vector pos, vector look_at)
606 void llMapDestination(string simname, LSL_Types.Vector3 pos, LSL_Types.Vector3 look_at);
607 //wiki: llAddToLandBanList(key avatar, double hours)
608 void llAddToLandBanList(string avatar, double hours);
609 //wiki: llRemoveFromLandPassList(key avatar)
610 void llRemoveFromLandPassList(string avatar);
611 //wiki: llRemoveFromLandBanList(key avatar)
612 void llRemoveFromLandBanList(string avatar);
613 //wiki: llSetCameraParams(list rules)
614 void llSetCameraParams(LSL_Types.list rules);
615 //wiki: llClearCameraParams()
616 void llClearCameraParams();
617 //wiki: LSL_Types.LSLFloat llListStatistics(integer operation, list src)
618 LSL_Types.LSLFloat llListStatistics(int operation, LSL_Types.list src);
619 //wiki: integer llGetUnixTime()
620 LSL_Types.LSLInteger llGetUnixTime();
621 //wiki: integer llGetParcelFlags(vector pos)
622 LSL_Types.LSLInteger llGetParcelFlags(LSL_Types.Vector3 pos);
623 //wiki: integer llGetRegionFlags()
624 LSL_Types.LSLInteger llGetRegionFlags();
625 //wiki: LSL_Types.LSLString llXorBase64StringsCorrect(string str1, string str2)
626 LSL_Types.LSLString llXorBase64StringsCorrect(string str1, string str2);
627 LSL_Types.LSLString llHTTPRequest(string url, LSL_Types.list parameters, string body);
628 //wiki: llResetLandBanList()
629 void llResetLandBanList();
630 //wiki: llResetLandPassList()
631 void llResetLandPassList();
632 //wiki: integer llGetParcelPrimCount(vector pos, integer category, integer sim_wide)
633 LSL_Types.LSLInteger llGetParcelPrimCount(LSL_Types.Vector3 pos, int category, int sim_wide);
634 //wiki: list llGetParcelPrimOwners(vector pos)
635 LSL_Types.list llGetParcelPrimOwners(LSL_Types.Vector3 pos);
636 //wiki: integer llGetObjectPrimCount(key object_id)
637 LSL_Types.LSLInteger llGetObjectPrimCount(string object_id);
638 //wiki: integer llGetParcelMaxPrims(vector pos, integer sim_wide)
639 LSL_Types.LSLInteger llGetParcelMaxPrims(LSL_Types.Vector3 pos, int sim_wide);
640 //wiki: llGetParcelDetails(vector pos, list params)
641 LSL_Types.list llGetParcelDetails(LSL_Types.Vector3 pos, LSL_Types.list param);
642 //wiki: llSetLinkTexture(integer linknumber, string texture, integer face)
643 void llSetLinkTexture(int linknumber, string texture, int face);
644 //wiki: LSL_Types.LSLString llStringTrim(string src, int type)
645 LSL_Types.LSLString llStringTrim(string src, int type);
646 //wiki: LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args)
647 LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args);
648 } 386 }
649} 387}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
index 5f0a1bc..a23e731 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
@@ -33,10 +33,14 @@ using System.Collections;
33using System.Collections.Generic; 33using System.Collections.Generic;
34using OpenSim.Region.ScriptEngine.Interfaces; 34using OpenSim.Region.ScriptEngine.Interfaces;
35using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces; 35using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
36using integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger; 36
37using key = System.String; 37using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
38using vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3; 38using LSL_Integer = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger;
39using rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion; 39using LSL_Key = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
40using LSL_List = OpenSim.Region.ScriptEngine.Shared.LSL_Types.list;
41using LSL_Rotation = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Quaternion;
42using LSL_String = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString;
43using LSL_Vector = OpenSim.Region.ScriptEngine.Shared.LSL_Types.Vector3;
40 44
41namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase 45namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
42{ 46{
@@ -60,214 +64,249 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
60 // 64 //
61 // Script functions 65 // Script functions
62 // 66 //
63 public void llSay(int channelID, string text) 67 public LSL_Integer llAbs(int i)
64 { 68 {
65 m_LSL_Functions.llSay(channelID, text); 69 return m_LSL_Functions.llAbs(i);
66 } 70 }
67 71
68 public double llSin(double f) 72 public LSL_Float llAcos(double val)
69 { 73 {
70 return m_LSL_Functions.llSin(f); 74 return m_LSL_Functions.llAcos(val);
71 } 75 }
72 76
73 public double llCos(double f) 77 public void llAddToLandBanList(string avatar, double hours)
74 { 78 {
75 return m_LSL_Functions.llCos(f); 79 m_LSL_Functions.llAddToLandBanList(avatar, hours);
76 } 80 }
77 81
78 public double llTan(double f) 82 public void llAddToLandPassList(string avatar, double hours)
79 { 83 {
80 return m_LSL_Functions.llTan(f); 84 m_LSL_Functions.llAddToLandPassList(avatar, hours);
81 } 85 }
82 86
83 public double llAtan2(double x, double y) 87 public void llAdjustSoundVolume(double volume)
84 { 88 {
85 return m_LSL_Functions.llAtan2(x, y); 89 m_LSL_Functions.llAdjustSoundVolume(volume);
86 } 90 }
87 91
88 public double llSqrt(double f) 92 public void llAllowInventoryDrop(int add)
89 { 93 {
90 return m_LSL_Functions.llSqrt(f); 94 m_LSL_Functions.llAllowInventoryDrop(add);
91 } 95 }
92 96
93 public double llPow(double fbase, double fexponent) 97 public LSL_Float llAngleBetween(LSL_Rotation a, LSL_Rotation b)
94 { 98 {
95 return m_LSL_Functions.llPow(fbase, fexponent); 99 return m_LSL_Functions.llAngleBetween(a, b);
96 } 100 }
97 101
98 public LSL_Types.LSLInteger llAbs(int i) 102 public void llApplyImpulse(LSL_Vector force, int local)
99 { 103 {
100 return m_LSL_Functions.llAbs(i); 104 m_LSL_Functions.llApplyImpulse(force, local);
101 } 105 }
102 106
103 public double llFabs(double f) 107 public void llApplyRotationalImpulse(LSL_Vector force, int local)
104 { 108 {
105 return m_LSL_Functions.llFabs(f); 109 m_LSL_Functions.llApplyRotationalImpulse(force, local);
106 } 110 }
107 111
108 public double llFrand(double mag) 112 public LSL_Float llAsin(double val)
109 { 113 {
110 return m_LSL_Functions.llFrand(mag); 114 return m_LSL_Functions.llAsin(val);
111 } 115 }
112 116
113 public LSL_Types.LSLInteger llFloor(double f) 117 public LSL_Float llAtan2(double x, double y)
114 { 118 {
115 return m_LSL_Functions.llFloor(f); 119 return m_LSL_Functions.llAtan2(x, y);
116 } 120 }
117 121
118 public LSL_Types.LSLInteger llCeil(double f) 122 public void llAttachToAvatar(int attachment)
119 { 123 {
120 return m_LSL_Functions.llCeil(f); 124 m_LSL_Functions.llAttachToAvatar(attachment);
121 } 125 }
122 126
123 public LSL_Types.LSLInteger llRound(double f) 127 public LSL_Key llAvatarOnSitTarget()
124 { 128 {
125 return m_LSL_Functions.llRound(f); 129 return m_LSL_Functions.llAvatarOnSitTarget();
126 } 130 }
127 131
128 public double llVecMag(vector v) 132 public LSL_Rotation llAxes2Rot(LSL_Vector fwd, LSL_Vector left, LSL_Vector up)
129 { 133 {
130 return m_LSL_Functions.llVecMag(v); 134 return m_LSL_Functions.llAxes2Rot(fwd, left, up);
131 } 135 }
132 136
133 public vector llVecNorm(vector v) 137 public LSL_Rotation llAxisAngle2Rot(LSL_Vector axis, double angle)
134 { 138 {
135 return m_LSL_Functions.llVecNorm(v); 139 return m_LSL_Functions.llAxisAngle2Rot(axis, angle);
136 } 140 }
137 141
138 public double llVecDist(vector a, vector b) 142 public LSL_Integer llBase64ToInteger(string str)
139 { 143 {
140 return m_LSL_Functions.llVecDist(a, b); 144 return m_LSL_Functions.llBase64ToInteger(str);
141 } 145 }
142 146
143 public vector llRot2Euler(rotation r) 147 public LSL_String llBase64ToString(string str)
144 { 148 {
145 return m_LSL_Functions.llRot2Euler(r); 149 return m_LSL_Functions.llBase64ToString(str);
146 } 150 }
147 151
148 public rotation llEuler2Rot(vector v) 152 public void llBreakAllLinks()
149 { 153 {
150 return m_LSL_Functions.llEuler2Rot(v); 154 m_LSL_Functions.llBreakAllLinks();
151 } 155 }
152 156
153 public rotation llAxes2Rot(vector fwd, vector left, vector up) 157 public void llBreakLink(int linknum)
154 { 158 {
155 return m_LSL_Functions.llAxes2Rot(fwd, left, up); 159 m_LSL_Functions.llBreakLink(linknum);
156 } 160 }
157 161
158 public vector llRot2Fwd(rotation r) 162 public LSL_Integer llCeil(double f)
159 { 163 {
160 return m_LSL_Functions.llRot2Fwd(r); 164 return m_LSL_Functions.llCeil(f);
161 } 165 }
162 166
163 public vector llRot2Left(rotation r) 167 public void llClearCameraParams()
164 { 168 {
165 return m_LSL_Functions.llRot2Left(r); 169 m_LSL_Functions.llClearCameraParams();
166 } 170 }
167 171
168 public vector llRot2Up(rotation r) 172 public void llCloseRemoteDataChannel(string channel)
169 { 173 {
170 return m_LSL_Functions.llRot2Up(r); 174 m_LSL_Functions.llCloseRemoteDataChannel(channel);
171 } 175 }
172 176
173 public rotation llRotBetween(vector start, vector end) 177 public LSL_Float llCloud(LSL_Vector offset)
174 { 178 {
175 return m_LSL_Functions.llRotBetween(start, end); 179 return m_LSL_Functions.llCloud(offset);
176 } 180 }
177 181
178 public void llWhisper(int channelID, string text) 182 public void llCollisionFilter(string name, string id, int accept)
179 { 183 {
180 m_LSL_Functions.llWhisper(channelID, text); 184 m_LSL_Functions.llCollisionFilter(name, id, accept);
181 } 185 }
182 186
183 public void llShout(int channelID, string text) 187 public void llCollisionSound(string impact_sound, double impact_volume)
184 { 188 {
185 m_LSL_Functions.llShout(channelID, text); 189 m_LSL_Functions.llCollisionSound(impact_sound, impact_volume);
186 } 190 }
187 191
188 public void llRegionSay(int channelID, string text) 192 public void llCollisionSprite(string impact_sprite)
189 { 193 {
190 m_LSL_Functions.llRegionSay(channelID, text); 194 m_LSL_Functions.llCollisionSprite(impact_sprite);
191 } 195 }
192 196
193 public LSL_Types.LSLInteger llListen(int channelID, string name, string ID, string msg) 197 public LSL_Float llCos(double f)
194 { 198 {
195 return m_LSL_Functions.llListen(channelID, name, ID, msg); 199 return m_LSL_Functions.llCos(f);
196 } 200 }
197 201
198 public void llListenControl(int number, int active) 202 public void llCreateLink(string target, int parent)
199 { 203 {
200 m_LSL_Functions.llListenControl(number, active); 204 m_LSL_Functions.llCreateLink(target, parent);
201 } 205 }
202 206
203 public void llListenRemove(int number) 207 public LSL_List llCSV2List(string src)
204 { 208 {
205 m_LSL_Functions.llListenRemove(number); 209 return m_LSL_Functions.llCSV2List(src);
206 } 210 }
207 211
208 public void llSensor(string name, string id, int type, double range, double arc) 212 public LSL_List llDeleteSubList(LSL_List src, int start, int end)
209 { 213 {
210 m_LSL_Functions.llSensor(name, id, type, range, arc); 214 return m_LSL_Functions.llDeleteSubList(src, start, end);
211 } 215 }
212 216
213 public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate) 217 public LSL_String llDeleteSubString(string src, int start, int end)
214 { 218 {
215 m_LSL_Functions.llSensorRepeat(name, id, type, range, arc, rate); 219 return m_LSL_Functions.llDeleteSubString(src, start, end);
216 } 220 }
217 221
218 public void llSensorRemove() 222 public void llDetachFromAvatar()
219 { 223 {
220 m_LSL_Functions.llSensorRemove(); 224 m_LSL_Functions.llDetachFromAvatar();
221 } 225 }
222 226
223 public string llDetectedName(int number) 227 public LSL_Vector llDetectedGrab(int number)
224 { 228 {
225 return m_LSL_Functions.llDetectedName(number); 229 return m_LSL_Functions.llDetectedGrab(number);
230 }
231
232 public LSL_Integer llDetectedGroup(int number)
233 {
234 return m_LSL_Functions.llDetectedGroup(number);
226 } 235 }
227 236
228 public string llDetectedKey(int number) 237 public LSL_Key llDetectedKey(int number)
229 { 238 {
230 return m_LSL_Functions.llDetectedKey(number); 239 return m_LSL_Functions.llDetectedKey(number);
231 } 240 }
232 241
233 public string llDetectedOwner(int number) 242 public LSL_Integer llDetectedLinkNumber(int number)
243 {
244 return m_LSL_Functions.llDetectedLinkNumber(number);
245 }
246
247 public LSL_String llDetectedName(int number)
248 {
249 return m_LSL_Functions.llDetectedName(number);
250 }
251
252 public LSL_Key llDetectedOwner(int number)
234 { 253 {
235 return m_LSL_Functions.llDetectedOwner(number); 254 return m_LSL_Functions.llDetectedOwner(number);
236 } 255 }
237 256
238 public LSL_Types.LSLInteger llDetectedType(int number) 257 public LSL_Vector llDetectedPos(int number)
258 {
259 return m_LSL_Functions.llDetectedPos(number);
260 }
261
262 public LSL_Rotation llDetectedRot(int number)
263 {
264 return m_LSL_Functions.llDetectedRot(number);
265 }
266
267 public LSL_Integer llDetectedType(int number)
239 { 268 {
240 return m_LSL_Functions.llDetectedType(number); 269 return m_LSL_Functions.llDetectedType(number);
241 } 270 }
242 271
243 public vector llDetectedPos(int number) 272 public LSL_Vector llDetectedTouchBinormal(int index)
244 { 273 {
245 return m_LSL_Functions.llDetectedPos(number); 274 return m_LSL_Functions.llDetectedTouchBinormal(index);
246 } 275 }
247 276
248 public vector llDetectedVel(int number) 277 public LSL_Integer llDetectedTouchFace(int index)
249 { 278 {
250 return m_LSL_Functions.llDetectedVel(number); 279 return m_LSL_Functions.llDetectedTouchFace(index);
251 } 280 }
252 281
253 public vector llDetectedGrab(int number) 282 public LSL_Vector llDetectedTouchNormal(int index)
254 { 283 {
255 return m_LSL_Functions.llDetectedGrab(number); 284 return m_LSL_Functions.llDetectedTouchNormal(index);
256 } 285 }
257 286
258 public rotation llDetectedRot(int number) 287 public LSL_Vector llDetectedTouchPos(int index)
259 { 288 {
260 return m_LSL_Functions.llDetectedRot(number); 289 return m_LSL_Functions.llDetectedTouchPos(index);
261 } 290 }
262 291
263 public LSL_Types.LSLInteger llDetectedGroup(int number) 292 public LSL_Vector llDetectedTouchST(int index)
264 { 293 {
265 return m_LSL_Functions.llDetectedGroup(number); 294 return m_LSL_Functions.llDetectedTouchST(index);
266 } 295 }
267 296
268 public LSL_Types.LSLInteger llDetectedLinkNumber(int number) 297 public LSL_Vector llDetectedTouchUV(int index)
269 { 298 {
270 return m_LSL_Functions.llDetectedLinkNumber(number); 299 return m_LSL_Functions.llDetectedTouchUV(index);
300 }
301
302 public LSL_Vector llDetectedVel(int number)
303 {
304 return m_LSL_Functions.llDetectedVel(number);
305 }
306
307 public void llDialog(string avatar, string message, LSL_List buttons, int chat_channel)
308 {
309 m_LSL_Functions.llDialog(avatar, message, buttons, chat_channel);
271 } 310 }
272 311
273 public void llDie() 312 public void llDie()
@@ -275,1133 +314,1139 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
275 m_LSL_Functions.llDie(); 314 m_LSL_Functions.llDie();
276 } 315 }
277 316
278 public double llGround(vector offset) 317 public LSL_String llDumpList2String(LSL_List src, string seperator)
279 { 318 {
280 return m_LSL_Functions.llGround(offset); 319 return m_LSL_Functions.llDumpList2String(src, seperator);
281 } 320 }
282 321
283 public double llCloud(vector offset) 322 public LSL_Integer llEdgeOfWorld(LSL_Vector pos, LSL_Vector dir)
284 { 323 {
285 return m_LSL_Functions.llCloud(offset); 324 return m_LSL_Functions.llEdgeOfWorld(pos, dir);
286 } 325 }
287 326
288 public vector llWind(vector offset) 327 public void llEjectFromLand(string pest)
289 { 328 {
290 return m_LSL_Functions.llWind(offset); 329 m_LSL_Functions.llEjectFromLand(pest);
291 } 330 }
292 331
293 public void llSetStatus(int status, int value) 332 public void llEmail(string address, string subject, string message)
294 { 333 {
295 m_LSL_Functions.llSetStatus(status, value); 334 m_LSL_Functions.llEmail(address, subject, message);
296 } 335 }
297 336
298 public LSL_Types.LSLInteger llGetStatus(int status) 337 public LSL_String llEscapeURL(string url)
299 { 338 {
300 return m_LSL_Functions.llGetStatus(status); 339 return m_LSL_Functions.llEscapeURL(url);
301 } 340 }
302 341
303 public void llSetScale(vector scale) 342 public LSL_Rotation llEuler2Rot(LSL_Vector v)
304 { 343 {
305 m_LSL_Functions.llSetScale(scale); 344 return m_LSL_Functions.llEuler2Rot(v);
306 } 345 }
307 346
308 public vector llGetScale() 347 public LSL_Float llFabs(double f)
309 { 348 {
310 return m_LSL_Functions.llGetScale(); 349 return m_LSL_Functions.llFabs(f);
311 } 350 }
312 351
313 public void llSetColor(vector color, int face) 352 public LSL_Integer llFloor(double f)
314 { 353 {
315 m_LSL_Functions.llSetColor(color, face); 354 return m_LSL_Functions.llFloor(f);
316 } 355 }
317 356
318 public double llGetAlpha(int face) 357 public void llForceMouselook(int mouselook)
319 { 358 {
320 return m_LSL_Functions.llGetAlpha(face); 359 m_LSL_Functions.llForceMouselook(mouselook);
321 } 360 }
322 361
323 public void llSetAlpha(double alpha, int face) 362 public LSL_Float llFrand(double mag)
324 { 363 {
325 m_LSL_Functions.llSetAlpha(alpha, face); 364 return m_LSL_Functions.llFrand(mag);
326 } 365 }
327 366
328 public vector llGetColor(int face) 367 public LSL_Vector llGetAccel()
329 { 368 {
330 return m_LSL_Functions.llGetColor(face); 369 return m_LSL_Functions.llGetAccel();
331 } 370 }
332 371
333 public void llSetTexture(string texture, int face) 372 public LSL_Integer llGetAgentInfo(string id)
334 { 373 {
335 m_LSL_Functions.llSetTexture(texture, face); 374 return m_LSL_Functions.llGetAgentInfo(id);
336 } 375 }
337 376
338 public void llScaleTexture(double u, double v, int face) 377 public LSL_Vector llGetAgentSize(string id)
339 { 378 {
340 m_LSL_Functions.llScaleTexture(u, v, face); 379 return m_LSL_Functions.llGetAgentSize(id);
341 } 380 }
342 381
343 public void llOffsetTexture(double u, double v, int face) 382 public LSL_Float llGetAlpha(int face)
344 { 383 {
345 m_LSL_Functions.llOffsetTexture(u, v, face); 384 return m_LSL_Functions.llGetAlpha(face);
346 } 385 }
347 386
348 public void llRotateTexture(double rotation, int face) 387 public LSL_Float llGetAndResetTime()
349 { 388 {
350 m_LSL_Functions.llRotateTexture(rotation, face); 389 return m_LSL_Functions.llGetAndResetTime();
351 } 390 }
352 391
353 public string llGetTexture(int face) 392 public LSL_String llGetAnimation(string id)
354 { 393 {
355 return m_LSL_Functions.llGetTexture(face); 394 return m_LSL_Functions.llGetAnimation(id);
356 } 395 }
357 396
358 public void llSetPos(vector pos) 397 public LSL_List llGetAnimationList(string id)
359 { 398 {
360 m_LSL_Functions.llSetPos(pos); 399 return m_LSL_Functions.llGetAnimationList(id);
361 } 400 }
362 401
363 public vector llGetPos() 402 public LSL_Integer llGetAttached()
364 { 403 {
365 return m_LSL_Functions.llGetPos(); 404 return m_LSL_Functions.llGetAttached();
366 } 405 }
367 406
368 public vector llGetLocalPos() 407 public LSL_List llGetBoundingBox(string obj)
369 { 408 {
370 return m_LSL_Functions.llGetLocalPos(); 409 return m_LSL_Functions.llGetBoundingBox(obj);
371 } 410 }
372 411
373 public void llSetRot(rotation rot) 412 public LSL_Vector llGetCameraPos()
374 { 413 {
375 m_LSL_Functions.llSetRot(rot); 414 return m_LSL_Functions.llGetCameraPos();
376 } 415 }
377 416
378 public rotation llGetRot() 417 public LSL_Rotation llGetCameraRot()
379 { 418 {
380 return m_LSL_Functions.llGetRot(); 419 return m_LSL_Functions.llGetCameraRot();
381 } 420 }
382 421
383 public rotation llGetLocalRot() 422 public LSL_Vector llGetCenterOfMass()
384 { 423 {
385 return m_LSL_Functions.llGetLocalRot(); 424 return m_LSL_Functions.llGetCenterOfMass();
386 } 425 }
387 426
388 public void llSetForce(vector force, int local) 427 public LSL_Vector llGetColor(int face)
389 { 428 {
390 m_LSL_Functions.llSetForce(force, local); 429 return m_LSL_Functions.llGetColor(face);
391 } 430 }
392 431
393 public vector llGetForce() 432 public LSL_String llGetCreator()
394 { 433 {
395 return m_LSL_Functions.llGetForce(); 434 return m_LSL_Functions.llGetCreator();
396 } 435 }
397 436
398 public LSL_Types.LSLInteger llTarget(vector position, double range) 437 public LSL_String llGetDate()
399 { 438 {
400 return m_LSL_Functions.llTarget(position, range); 439 return m_LSL_Functions.llGetDate();
401 } 440 }
402 441
403 public void llTargetRemove(int number) 442 public LSL_Float llGetEnergy()
404 { 443 {
405 m_LSL_Functions.llTargetRemove(number); 444 return m_LSL_Functions.llGetEnergy();
406 } 445 }
407 446
408 public LSL_Types.LSLInteger llRotTarget(rotation rot, double error) 447 public LSL_Vector llGetForce()
409 { 448 {
410 return m_LSL_Functions.llRotTarget(rot, error); 449 return m_LSL_Functions.llGetForce();
411 } 450 }
412 451
413 public void llRotTargetRemove(int number) 452 public LSL_Integer llGetFreeMemory()
414 { 453 {
415 m_LSL_Functions.llRotTargetRemove(number); 454 return m_LSL_Functions.llGetFreeMemory();
416 } 455 }
417 456
418 public void llMoveToTarget(vector target, double tau) 457 public LSL_Vector llGetGeometricCenter()
419 { 458 {
420 m_LSL_Functions.llMoveToTarget(target, tau); 459 return m_LSL_Functions.llGetGeometricCenter();
421 } 460 }
422 461
423 public void llStopMoveToTarget() 462 public LSL_Float llGetGMTclock()
424 { 463 {
425 m_LSL_Functions.llStopMoveToTarget(); 464 return m_LSL_Functions.llGetGMTclock();
426 } 465 }
427 466
428 public void llApplyImpulse(vector force, int local) 467 public LSL_Key llGetInventoryCreator(string item)
429 { 468 {
430 m_LSL_Functions.llApplyImpulse(force, local); 469 return m_LSL_Functions.llGetInventoryCreator(item);
431 } 470 }
432 471
433 public void llApplyRotationalImpulse(vector force, int local) 472 public LSL_Key llGetInventoryKey(string name)
434 { 473 {
435 m_LSL_Functions.llApplyRotationalImpulse(force, local); 474 return m_LSL_Functions.llGetInventoryKey(name);
436 } 475 }
437 476
438 public void llSetTorque(vector torque, int local) 477 public LSL_String llGetInventoryName(int type, int number)
439 { 478 {
440 m_LSL_Functions.llSetTorque(torque, local); 479 return m_LSL_Functions.llGetInventoryName(type, number);
441 } 480 }
442 481
443 public vector llGetTorque() 482 public LSL_Integer llGetInventoryNumber(int type)
444 { 483 {
445 return m_LSL_Functions.llGetTorque(); 484 return m_LSL_Functions.llGetInventoryNumber(type);
446 } 485 }
447 486
448 public void llSetForceAndTorque(vector force, vector torque, int local) 487 public LSL_Integer llGetInventoryPermMask(string item, int mask)
449 { 488 {
450 m_LSL_Functions.llSetForceAndTorque(force, torque, local); 489 return m_LSL_Functions.llGetInventoryPermMask(item, mask);
451 } 490 }
452 491
453 public vector llGetVel() 492 public LSL_Integer llGetInventoryType(string name)
454 { 493 {
455 return m_LSL_Functions.llGetVel(); 494 return m_LSL_Functions.llGetInventoryType(name);
456 } 495 }
457 496
458 public vector llGetAccel() 497 public LSL_Key llGetKey()
459 { 498 {
460 return m_LSL_Functions.llGetAccel(); 499 return m_LSL_Functions.llGetKey();
461 } 500 }
462 501
463 public vector llGetOmega() 502 public LSL_Key llGetLandOwnerAt(LSL_Vector pos)
464 { 503 {
465 return m_LSL_Functions.llGetOmega(); 504 return m_LSL_Functions.llGetLandOwnerAt(pos);
466 } 505 }
467 506
468 public double llGetTimeOfDay() 507 public LSL_Key llGetLinkKey(int linknum)
469 { 508 {
470 return m_LSL_Functions.llGetTimeOfDay(); 509 return m_LSL_Functions.llGetLinkKey(linknum);
471 } 510 }
472 511
473 public double llGetWallclock() 512 public LSL_String llGetLinkName(int linknum)
474 { 513 {
475 return m_LSL_Functions.llGetWallclock(); 514 return m_LSL_Functions.llGetLinkName(linknum);
476 } 515 }
477 516
478 public double llGetTime() 517 public LSL_Integer llGetLinkNumber()
479 { 518 {
480 return m_LSL_Functions.llGetTime(); 519 return m_LSL_Functions.llGetLinkNumber();
481 } 520 }
482 521
483 public void llResetTime() 522 public LSL_Integer llGetListEntryType(LSL_List src, int index)
484 { 523 {
485 m_LSL_Functions.llResetTime(); 524 return m_LSL_Functions.llGetListEntryType(src, index);
486 } 525 }
487 526
488 public double llGetAndResetTime() 527 public LSL_Integer llGetListLength(LSL_List src)
489 { 528 {
490 return m_LSL_Functions.llGetAndResetTime(); 529 return m_LSL_Functions.llGetListLength(src);
491 } 530 }
492 531
493 public void llSound() 532 public LSL_Vector llGetLocalPos()
494 { 533 {
495 m_LSL_Functions.llSound(); 534 return m_LSL_Functions.llGetLocalPos();
496 } 535 }
497 536
498 public void llPlaySound(string sound, double volume) 537 public LSL_Rotation llGetLocalRot()
499 { 538 {
500 m_LSL_Functions.llPlaySound(sound, volume); 539 return m_LSL_Functions.llGetLocalRot();
501 } 540 }
502 541
503 public void llLoopSound(string sound, double volume) 542 public LSL_Float llGetMass()
504 { 543 {
505 m_LSL_Functions.llLoopSound(sound, volume); 544 return m_LSL_Functions.llGetMass();
506 } 545 }
507 546
508 public void llLoopSoundMaster(string sound, double volume) 547 public void llGetNextEmail(string address, string subject)
509 { 548 {
510 m_LSL_Functions.llLoopSoundMaster(sound, volume); 549 m_LSL_Functions.llGetNextEmail(address, subject);
511 } 550 }
512 551
513 public void llLoopSoundSlave(string sound, double volume) 552 public LSL_String llGetNotecardLine(string name, int line)
514 { 553 {
515 m_LSL_Functions.llLoopSoundSlave(sound, volume); 554 return m_LSL_Functions.llGetNotecardLine(name, line);
516 } 555 }
517 556
518 public void llPlaySoundSlave(string sound, double volume) 557 public LSL_Key llGetNumberOfNotecardLines(string name)
519 { 558 {
520 m_LSL_Functions.llPlaySoundSlave(sound, volume); 559 return m_LSL_Functions.llGetNumberOfNotecardLines(name);
521 } 560 }
522 561
523 public void llTriggerSound(string sound, double volume) 562 public LSL_Integer llGetNumberOfPrims()
524 { 563 {
525 m_LSL_Functions.llTriggerSound(sound, volume); 564 return m_LSL_Functions.llGetNumberOfPrims();
526 } 565 }
527 566
528 public void llStopSound() 567 public LSL_Integer llGetNumberOfSides()
529 { 568 {
530 m_LSL_Functions.llStopSound(); 569 return m_LSL_Functions.llGetNumberOfSides();
531 } 570 }
532 571
533 public void llPreloadSound(string sound) 572 public LSL_String llGetObjectDesc()
534 { 573 {
535 m_LSL_Functions.llPreloadSound(sound); 574 return m_LSL_Functions.llGetObjectDesc();
536 } 575 }
537 576
538 public string llGetSubString(string src, int start, int end) 577 public LSL_List llGetObjectDetails(string id, LSL_List args)
539 { 578 {
540 return m_LSL_Functions.llGetSubString(src, start, end); 579 return m_LSL_Functions.llGetObjectDetails(id, args);
541 } 580 }
542 581
543 public string llDeleteSubString(string src, int start, int end) 582 public LSL_Float llGetObjectMass(string id)
544 { 583 {
545 return m_LSL_Functions.llDeleteSubString(src, start, end); 584 return m_LSL_Functions.llGetObjectMass(id);
546 } 585 }
547 586
548 public string llInsertString(string dst, int position, string src) 587 public LSL_String llGetObjectName()
549 { 588 {
550 return m_LSL_Functions.llInsertString(dst, position, src); 589 return m_LSL_Functions.llGetObjectName();
551 } 590 }
552 591
553 public string llToUpper(string source) 592 public LSL_Integer llGetObjectPermMask(int mask)
554 { 593 {
555 return m_LSL_Functions.llToUpper(source); 594 return m_LSL_Functions.llGetObjectPermMask(mask);
556 } 595 }
557 596
558 public string llToLower(string source) 597 public LSL_Integer llGetObjectPrimCount(string object_id)
559 { 598 {
560 return m_LSL_Functions.llToLower(source); 599 return m_LSL_Functions.llGetObjectPrimCount(object_id);
561 } 600 }
562 601
563 public LSL_Types.LSLInteger llGiveMoney(string destination, int amount) 602 public LSL_Vector llGetOmega()
564 { 603 {
565 return m_LSL_Functions.llGiveMoney(destination, amount); 604 return m_LSL_Functions.llGetOmega();
566 } 605 }
567 606
568 public void llMakeExplosion() 607 public LSL_Key llGetOwner()
569 { 608 {
570 m_LSL_Functions.llMakeExplosion(); 609 return m_LSL_Functions.llGetOwner();
571 } 610 }
572 611
573 public void llMakeFountain() 612 public LSL_Key llGetOwnerKey(string id)
574 { 613 {
575 m_LSL_Functions.llMakeFountain(); 614 return m_LSL_Functions.llGetOwnerKey(id);
576 } 615 }
577 616
578 public void llMakeSmoke() 617 public LSL_List llGetParcelDetails(LSL_Vector pos, LSL_List param)
579 { 618 {
580 m_LSL_Functions.llMakeSmoke(); 619 return m_LSL_Functions.llGetParcelDetails(pos, param);
581 } 620 }
582 621
583 public void llMakeFire() 622 public LSL_Integer llGetParcelFlags(LSL_Vector pos)
584 { 623 {
585 m_LSL_Functions.llMakeFire(); 624 return m_LSL_Functions.llGetParcelFlags(pos);
586 } 625 }
587 626
588 public void llRezObject(string inventory, vector pos, vector vel, rotation rot, int param) 627 public LSL_Integer llGetParcelMaxPrims(LSL_Vector pos, int sim_wide)
589 { 628 {
590 m_LSL_Functions.llRezObject(inventory, pos, vel, rot, param); 629 return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide);
591 } 630 }
592 631
593 public void llLookAt(vector target, double strength, double damping) 632 public LSL_Integer llGetParcelPrimCount(LSL_Vector pos, int category, int sim_wide)
594 { 633 {
595 m_LSL_Functions.llLookAt(target, strength, damping); 634 return m_LSL_Functions.llGetParcelPrimCount(pos, category, sim_wide);
596 } 635 }
597 636
598 public void llStopLookAt() 637 public LSL_List llGetParcelPrimOwners(LSL_Vector pos)
599 { 638 {
600 m_LSL_Functions.llStopLookAt(); 639 return m_LSL_Functions.llGetParcelPrimOwners(pos);
601 } 640 }
602 641
603 public void llSetTimerEvent(double sec) 642 public LSL_Integer llGetPermissions()
604 { 643 {
605 m_LSL_Functions.llSetTimerEvent(sec); 644 return m_LSL_Functions.llGetPermissions();
606 } 645 }
607 646
608 public void llSleep(double sec) 647 public LSL_Key llGetPermissionsKey()
609 { 648 {
610 m_LSL_Functions.llSleep(sec); 649 return m_LSL_Functions.llGetPermissionsKey();
611 } 650 }
612 651
613 public double llGetMass() 652 public LSL_Vector llGetPos()
614 { 653 {
615 return m_LSL_Functions.llGetMass(); 654 return m_LSL_Functions.llGetPos();
616 } 655 }
617 656
618 public void llCollisionFilter(string name, string id, int accept) 657 public LSL_List llGetPrimitiveParams(LSL_List rules)
619 { 658 {
620 m_LSL_Functions.llCollisionFilter(name, id, accept); 659 return m_LSL_Functions.llGetPrimitiveParams(rules);
621 } 660 }
622 661
623 public void llTakeControls(int controls, int accept, int pass_on) 662 public LSL_Integer llGetRegionAgentCount()
624 { 663 {
625 m_LSL_Functions.llTakeControls(controls, accept, pass_on); 664 return m_LSL_Functions.llGetRegionAgentCount();
626 } 665 }
627 666
628 public void llReleaseControls() 667 public LSL_Vector llGetRegionCorner()
629 { 668 {
630 m_LSL_Functions.llReleaseControls(); 669 return m_LSL_Functions.llGetRegionCorner();
631 } 670 }
632 671
633 public void llAttachToAvatar(int attachment) 672 public LSL_Integer llGetRegionFlags()
634 { 673 {
635 m_LSL_Functions.llAttachToAvatar(attachment); 674 return m_LSL_Functions.llGetRegionFlags();
636 } 675 }
637 676
638 public void llDetachFromAvatar() 677 public LSL_Float llGetRegionFPS()
639 { 678 {
640 m_LSL_Functions.llDetachFromAvatar(); 679 return m_LSL_Functions.llGetRegionFPS();
641 } 680 }
642 681
643 public void llTakeCamera(string avatar) 682 public LSL_String llGetRegionName()
644 { 683 {
645 m_LSL_Functions.llTakeCamera(avatar); 684 return m_LSL_Functions.llGetRegionName();
646 } 685 }
647 686
648 public void llReleaseCamera(string avatar) 687 public LSL_Float llGetRegionTimeDilation()
649 { 688 {
650 m_LSL_Functions.llReleaseCamera(avatar); 689 return m_LSL_Functions.llGetRegionTimeDilation();
651 } 690 }
652 691
653 public string llGetOwner() 692 public LSL_Vector llGetRootPosition()
654 { 693 {
655 return m_LSL_Functions.llGetOwner(); 694 return m_LSL_Functions.llGetRootPosition();
656 } 695 }
657 696
658 public void llInstantMessage(string user, string message) 697 public LSL_Rotation llGetRootRotation()
659 { 698 {
660 m_LSL_Functions.llInstantMessage(user, message); 699 return m_LSL_Functions.llGetRootRotation();
661 } 700 }
662 701
663 public void llEmail(string address, string subject, string message) 702 public LSL_Rotation llGetRot()
664 { 703 {
665 m_LSL_Functions.llEmail(address, subject, message); 704 return m_LSL_Functions.llGetRot();
666 } 705 }
667 706
668 public void llGetNextEmail(string address, string subject) 707 public LSL_Vector llGetScale()
669 { 708 {
670 m_LSL_Functions.llGetNextEmail(address, subject); 709 return m_LSL_Functions.llGetScale();
671 } 710 }
672 711
673 public string llGetKey() 712 public LSL_String llGetScriptName()
674 { 713 {
675 return m_LSL_Functions.llGetKey(); 714 return m_LSL_Functions.llGetScriptName();
676 } 715 }
677 716
678 public void llSetBuoyancy(double buoyancy) 717 public LSL_Integer llGetScriptState(string name)
679 { 718 {
680 m_LSL_Functions.llSetBuoyancy(buoyancy); 719 return m_LSL_Functions.llGetScriptState(name);
681 } 720 }
682 721
683 public void llSetHoverHeight(double height, int water, double tau) 722 public LSL_String llGetSimulatorHostname()
684 { 723 {
685 m_LSL_Functions.llSetHoverHeight(height, water, tau); 724 return m_LSL_Functions.llGetSimulatorHostname();
686 } 725 }
687 726
688 public void llStopHover() 727 public LSL_Integer llGetStartParameter()
689 { 728 {
690 m_LSL_Functions.llStopHover(); 729 return m_LSL_Functions.llGetStartParameter();
691 } 730 }
692 731
693 public void llMinEventDelay(double delay) 732 public LSL_Integer llGetStatus(int status)
694 { 733 {
695 m_LSL_Functions.llMinEventDelay(delay); 734 return m_LSL_Functions.llGetStatus(status);
696 } 735 }
697 736
698 public void llSoundPreload() 737 public LSL_String llGetSubString(string src, int start, int end)
699 { 738 {
700 m_LSL_Functions.llSoundPreload(); 739 return m_LSL_Functions.llGetSubString(src, start, end);
701 } 740 }
702 741
703 public void llRotLookAt(rotation target, double strength, double damping) 742 public LSL_Vector llGetSunDirection()
704 { 743 {
705 m_LSL_Functions.llRotLookAt(target, strength, damping); 744 return m_LSL_Functions.llGetSunDirection();
706 } 745 }
707 746
708 public LSL_Types.LSLInteger llStringLength(string str) 747 public LSL_String llGetTexture(int face)
709 { 748 {
710 return m_LSL_Functions.llStringLength(str); 749 return m_LSL_Functions.llGetTexture(face);
711 } 750 }
712 751
713 public void llStartAnimation(string anim) 752 public LSL_Vector llGetTextureOffset(int face)
714 { 753 {
715 m_LSL_Functions.llStartAnimation(anim); 754 return m_LSL_Functions.llGetTextureOffset(face);
716 } 755 }
717 756
718 public void llStopAnimation(string anim) 757 public LSL_Float llGetTextureRot(int side)
719 { 758 {
720 m_LSL_Functions.llStopAnimation(anim); 759 return m_LSL_Functions.llGetTextureRot(side);
721 } 760 }
722 761
723 public void llPointAt() 762 public LSL_Vector llGetTextureScale(int side)
724 { 763 {
725 m_LSL_Functions.llPointAt(); 764 return m_LSL_Functions.llGetTextureScale(side);
726 } 765 }
727 766
728 public void llStopPointAt() 767 public LSL_Float llGetTime()
729 { 768 {
730 m_LSL_Functions.llStopPointAt(); 769 return m_LSL_Functions.llGetTime();
731 } 770 }
732 771
733 public void llTargetOmega(vector axis, double spinrate, double gain) 772 public LSL_Float llGetTimeOfDay()
734 { 773 {
735 m_LSL_Functions.llTargetOmega(axis, spinrate, gain); 774 return m_LSL_Functions.llGetTimeOfDay();
736 } 775 }
737 776
738 public LSL_Types.LSLInteger llGetStartParameter() 777 public LSL_String llGetTimestamp()
739 { 778 {
740 return m_LSL_Functions.llGetStartParameter(); 779 return m_LSL_Functions.llGetTimestamp();
741 } 780 }
742 781
743 public void llGodLikeRezObject(string inventory, vector pos) 782 public LSL_Vector llGetTorque()
744 { 783 {
745 m_LSL_Functions.llGodLikeRezObject(inventory, pos); 784 return m_LSL_Functions.llGetTorque();
746 } 785 }
747 786
748 public void llRequestPermissions(string agent, int perm) 787 public LSL_Integer llGetUnixTime()
749 { 788 {
750 m_LSL_Functions.llRequestPermissions(agent, perm); 789 return m_LSL_Functions.llGetUnixTime();
751 } 790 }
752 791
753 public string llGetPermissionsKey() 792 public LSL_Vector llGetVel()
754 { 793 {
755 return m_LSL_Functions.llGetPermissionsKey(); 794 return m_LSL_Functions.llGetVel();
756 } 795 }
757 796
758 public LSL_Types.LSLInteger llGetPermissions() 797 public LSL_Float llGetWallclock()
759 { 798 {
760 return m_LSL_Functions.llGetPermissions(); 799 return m_LSL_Functions.llGetWallclock();
761 } 800 }
762 801
763 public LSL_Types.LSLInteger llGetLinkNumber() 802 public void llGiveInventory(string destination, string inventory)
764 { 803 {
765 return m_LSL_Functions.llGetLinkNumber(); 804 m_LSL_Functions.llGiveInventory(destination, inventory);
766 } 805 }
767 806
768 public void llSetLinkColor(int linknumber, vector color, int face) 807 public void llGiveInventoryList(string destination, string category, LSL_List inventory)
769 { 808 {
770 m_LSL_Functions.llSetLinkColor(linknumber, color, face); 809 m_LSL_Functions.llGiveInventoryList(destination, category, inventory);
771 } 810 }
772 811
773 public void llCreateLink(string target, int parent) 812 public LSL_Integer llGiveMoney(string destination, int amount)
774 { 813 {
775 m_LSL_Functions.llCreateLink(target, parent); 814 return m_LSL_Functions.llGiveMoney(destination, amount);
776 } 815 }
777 816
778 public void llBreakLink(int linknum) 817 public void llGodLikeRezObject(string inventory, LSL_Vector pos)
779 { 818 {
780 m_LSL_Functions.llBreakLink(linknum); 819 m_LSL_Functions.llGodLikeRezObject(inventory, pos);
781 } 820 }
782 821
783 public void llBreakAllLinks() 822 public LSL_Float llGround(LSL_Vector offset)
784 { 823 {
785 m_LSL_Functions.llBreakAllLinks(); 824 return m_LSL_Functions.llGround(offset);
786 } 825 }
787 826
788 public string llGetLinkKey(int linknum) 827 public LSL_Vector llGroundContour(LSL_Vector offset)
789 { 828 {
790 return m_LSL_Functions.llGetLinkKey(linknum); 829 return m_LSL_Functions.llGroundContour(offset);
791 } 830 }
792 831
793 public string llGetLinkName(int linknum) 832 public LSL_Vector llGroundNormal(LSL_Vector offset)
794 { 833 {
795 return m_LSL_Functions.llGetLinkName(linknum); 834 return m_LSL_Functions.llGroundNormal(offset);
796 } 835 }
797 836
798 public LSL_Types.LSLInteger llGetInventoryNumber(int type) 837 public void llGroundRepel(double height, int water, double tau)
799 { 838 {
800 return m_LSL_Functions.llGetInventoryNumber(type); 839 m_LSL_Functions.llGroundRepel(height, water, tau);
801 } 840 }
802 841
803 public string llGetInventoryName(int type, int number) 842 public LSL_Vector llGroundSlope(LSL_Vector offset)
804 { 843 {
805 return m_LSL_Functions.llGetInventoryName(type, number); 844 return m_LSL_Functions.llGroundSlope(offset);
806 } 845 }
807 846
808 public void llSetScriptState(string name, int run) 847 public LSL_String llHTTPRequest(string url, LSL_List parameters, string body)
809 { 848 {
810 m_LSL_Functions.llSetScriptState(name, run); 849 return m_LSL_Functions.llHTTPRequest(url, parameters, body);
811 } 850 }
812 851
813 public double llGetEnergy() 852 public LSL_String llInsertString(string dst, int position, string src)
814 { 853 {
815 return m_LSL_Functions.llGetEnergy(); 854 return m_LSL_Functions.llInsertString(dst, position, src);
816 } 855 }
817 856
818 public void llGiveInventory(string destination, string inventory) 857 public void llInstantMessage(string user, string message)
819 { 858 {
820 m_LSL_Functions.llGiveInventory(destination, inventory); 859 m_LSL_Functions.llInstantMessage(user, message);
821 } 860 }
822 861
823 public void llRemoveInventory(string item) 862 public LSL_String llIntegerToBase64(int number)
824 { 863 {
825 m_LSL_Functions.llRemoveInventory(item); 864 return m_LSL_Functions.llIntegerToBase64(number);
826 } 865 }
827 866
828 public void llSetText(string text, vector color, double alpha) 867 public LSL_String llKey2Name(string id)
829 { 868 {
830 m_LSL_Functions.llSetText(text, color, alpha); 869 return m_LSL_Functions.llKey2Name(id);
831 } 870 }
832 871
833 public double llWater(vector offset) 872 public LSL_String llList2CSV(LSL_List src)
834 { 873 {
835 return m_LSL_Functions.llWater(offset); 874 return m_LSL_Functions.llList2CSV(src);
836 } 875 }
837 876
838 public void llPassTouches(int pass) 877 public LSL_Float llList2Float(LSL_List src, int index)
839 { 878 {
840 m_LSL_Functions.llPassTouches(pass); 879 return m_LSL_Functions.llList2Float(src, index);
841 } 880 }
842 881
843 public string llRequestAgentData(string id, int data) 882 public LSL_Integer llList2Integer(LSL_List src, int index)
844 { 883 {
845 return m_LSL_Functions.llRequestAgentData(id, data); 884 return m_LSL_Functions.llList2Integer(src, index);
846 } 885 }
847 886
848 public string llRequestInventoryData(string name) 887 public LSL_Key llList2Key(LSL_List src, int index)
849 { 888 {
850 return m_LSL_Functions.llRequestInventoryData(name); 889 return m_LSL_Functions.llList2Key(src, index);
851 } 890 }
852 891
853 public void llSetDamage(double damage) 892 public LSL_List llList2List(LSL_List src, int start, int end)
854 { 893 {
855 m_LSL_Functions.llSetDamage(damage); 894 return m_LSL_Functions.llList2List(src, start, end);
856 } 895 }
857 896
858 public void llTeleportAgentHome(string agent) 897 public LSL_List llList2ListStrided(LSL_List src, int start, int end, int stride)
859 { 898 {
860 m_LSL_Functions.llTeleportAgentHome(agent); 899 return m_LSL_Functions.llList2ListStrided(src, start, end, stride);
861 } 900 }
862 901
863 public void llModifyLand(int action, int brush) 902 public LSL_Rotation llList2Rot(LSL_List src, int index)
864 { 903 {
865 m_LSL_Functions.llModifyLand(action, brush); 904 return m_LSL_Functions.llList2Rot(src, index);
866 } 905 }
867 906
868 public void llCollisionSound(string impact_sound, double impact_volume) 907 public LSL_String llList2String(LSL_List src, int index)
869 { 908 {
870 m_LSL_Functions.llCollisionSound(impact_sound, impact_volume); 909 return m_LSL_Functions.llList2String(src, index);
871 } 910 }
872 911
873 public void llCollisionSprite(string impact_sprite) 912 public LSL_Vector llList2Vector(LSL_List src, int index)
874 { 913 {
875 m_LSL_Functions.llCollisionSprite(impact_sprite); 914 return m_LSL_Functions.llList2Vector(src, index);
876 } 915 }
877 916
878 public string llGetAnimation(string id) 917 public LSL_Integer llListen(int channelID, string name, string ID, string msg)
879 { 918 {
880 return m_LSL_Functions.llGetAnimation(id); 919 return m_LSL_Functions.llListen(channelID, name, ID, msg);
881 } 920 }
882 921
883 public void llResetScript() 922 public void llListenControl(int number, int active)
884 { 923 {
885 m_LSL_Functions.llResetScript(); 924 m_LSL_Functions.llListenControl(number, active);
886 } 925 }
887 926
888 public void llMessageLinked(int linknum, int num, string str, string id) 927 public void llListenRemove(int number)
889 { 928 {
890 m_LSL_Functions.llMessageLinked(linknum, num, str, id); 929 m_LSL_Functions.llListenRemove(number);
891 } 930 }
892 931
893 public void llPushObject(string target, vector impulse, vector ang_impulse, int local) 932 public LSL_Integer llListFindList(LSL_List src, LSL_List test)
894 { 933 {
895 m_LSL_Functions.llPushObject(target, impulse, ang_impulse, local); 934 return m_LSL_Functions.llListFindList(src, test);
896 } 935 }
897 936
898 public void llPassCollisions(int pass) 937 public LSL_List llListInsertList(LSL_List dest, LSL_List src, int start)
899 { 938 {
900 m_LSL_Functions.llPassCollisions(pass); 939 return m_LSL_Functions.llListInsertList(dest, src, start);
901 } 940 }
902 941
903 public string llGetScriptName() 942 public LSL_List llListRandomize(LSL_List src, int stride)
904 { 943 {
905 return m_LSL_Functions.llGetScriptName(); 944 return m_LSL_Functions.llListRandomize(src, stride);
906 } 945 }
907 946
908 public LSL_Types.LSLInteger llGetNumberOfSides() 947 public LSL_List llListReplaceList(LSL_List dest, LSL_List src, int start, int end)
909 { 948 {
910 return m_LSL_Functions.llGetNumberOfSides(); 949 return m_LSL_Functions.llListReplaceList(dest, src, start, end);
911 } 950 }
912 951
913 public rotation llAxisAngle2Rot(vector axis, double angle) 952 public LSL_List llListSort(LSL_List src, int stride, int ascending)
914 { 953 {
915 return m_LSL_Functions.llAxisAngle2Rot(axis, angle); 954 return m_LSL_Functions.llListSort(src, stride, ascending);
916 } 955 }
917 956
918 public vector llRot2Axis(rotation rot) 957 public LSL_Float llListStatistics(int operation, LSL_List src)
919 { 958 {
920 return m_LSL_Functions.llRot2Axis(rot); 959 return m_LSL_Functions.llListStatistics(operation, src);
960 }
961
962 public void llLoadURL(string avatar_id, string message, string url)
963 {
964 m_LSL_Functions.llLoadURL(avatar_id, message, url);
921 } 965 }
922 966
923 public double llRot2Angle(rotation rot) 967 public LSL_Float llLog(double val)
924 { 968 {
925 return m_LSL_Functions.llRot2Angle(rot); 969 return m_LSL_Functions.llLog(val);
926 } 970 }
927 971
928 public double llAcos(double val) 972 public LSL_Float llLog10(double val)
929 { 973 {
930 return m_LSL_Functions.llAcos(val); 974 return m_LSL_Functions.llLog10(val);
931 } 975 }
932 976
933 public double llAsin(double val) 977 public void llLookAt(LSL_Vector target, double strength, double damping)
934 { 978 {
935 return m_LSL_Functions.llAsin(val); 979 m_LSL_Functions.llLookAt(target, strength, damping);
936 } 980 }
937 981
938 public double llAngleBetween(rotation a, rotation b) 982 public void llLoopSound(string sound, double volume)
939 { 983 {
940 return m_LSL_Functions.llAngleBetween(a, b); 984 m_LSL_Functions.llLoopSound(sound, volume);
941 } 985 }
942 986
943 public string llGetInventoryKey(string name) 987 public void llLoopSoundMaster(string sound, double volume)
944 { 988 {
945 return m_LSL_Functions.llGetInventoryKey(name); 989 m_LSL_Functions.llLoopSoundMaster(sound, volume);
946 } 990 }
947 991
948 public void llAllowInventoryDrop(int add) 992 public void llLoopSoundSlave(string sound, double volume)
949 { 993 {
950 m_LSL_Functions.llAllowInventoryDrop(add); 994 m_LSL_Functions.llLoopSoundSlave(sound, volume);
951 } 995 }
952 996
953 public vector llGetSunDirection() 997 public void llMakeExplosion()
954 { 998 {
955 return m_LSL_Functions.llGetSunDirection(); 999 m_LSL_Functions.llMakeExplosion();
956 } 1000 }
957 1001
958 public vector llGetTextureOffset(int face) 1002 public void llMakeFire()
959 { 1003 {
960 return m_LSL_Functions.llGetTextureOffset(face); 1004 m_LSL_Functions.llMakeFire();
961 } 1005 }
962 1006
963 public vector llGetTextureScale(int side) 1007 public void llMakeFountain()
964 { 1008 {
965 return m_LSL_Functions.llGetTextureScale(side); 1009 m_LSL_Functions.llMakeFountain();
966 } 1010 }
967 1011
968 public double llGetTextureRot(int side) 1012 public void llMakeSmoke()
969 { 1013 {
970 return m_LSL_Functions.llGetTextureRot(side); 1014 m_LSL_Functions.llMakeSmoke();
971 } 1015 }
972 1016
973 public LSL_Types.LSLInteger llSubStringIndex(string source, string pattern) 1017 public void llMapDestination(string simname, LSL_Vector pos, LSL_Vector look_at)
974 { 1018 {
975 return m_LSL_Functions.llSubStringIndex(source, pattern); 1019 m_LSL_Functions.llMapDestination(simname, pos, look_at);
976 } 1020 }
977 1021
978 public string llGetOwnerKey(string id) 1022 public LSL_String llMD5String(string src, int nonce)
979 { 1023 {
980 return m_LSL_Functions.llGetOwnerKey(id); 1024 return m_LSL_Functions.llMD5String(src, nonce);
981 } 1025 }
982 1026
983 public vector llGetCenterOfMass() 1027 public void llMessageLinked(int linknum, int num, string str, string id)
984 { 1028 {
985 return m_LSL_Functions.llGetCenterOfMass(); 1029 m_LSL_Functions.llMessageLinked(linknum, num, str, id);
986 } 1030 }
987 1031
988 public LSL_Types.list llListSort(LSL_Types.list src, int stride, int ascending) 1032 public void llMinEventDelay(double delay)
989 { 1033 {
990 return m_LSL_Functions.llListSort(src, stride, ascending); 1034 m_LSL_Functions.llMinEventDelay(delay);
991 } 1035 }
992 1036
993 public LSL_Types.LSLInteger llGetListLength(LSL_Types.list src) 1037 public void llModifyLand(int action, int brush)
994 { 1038 {
995 return m_LSL_Functions.llGetListLength(src); 1039 m_LSL_Functions.llModifyLand(action, brush);
996 } 1040 }
997 1041
998 public LSL_Types.LSLInteger llList2Integer(LSL_Types.list src, int index) 1042 public LSL_Integer llModPow(int a, int b, int c)
999 { 1043 {
1000 return m_LSL_Functions.llList2Integer(src, index); 1044 return m_LSL_Functions.llModPow(a, b, c);
1001 } 1045 }
1002 1046
1003 public string llList2String(LSL_Types.list src, int index) 1047 public void llMoveToTarget(LSL_Vector target, double tau)
1004 { 1048 {
1005 return m_LSL_Functions.llList2String(src, index); 1049 m_LSL_Functions.llMoveToTarget(target, tau);
1006 } 1050 }
1007 1051
1008 public string llList2Key(LSL_Types.list src, int index) 1052 public void llOffsetTexture(double u, double v, int face)
1009 { 1053 {
1010 return m_LSL_Functions.llList2Key(src, index); 1054 m_LSL_Functions.llOffsetTexture(u, v, face);
1011 } 1055 }
1012 1056
1013 public vector llList2Vector(LSL_Types.list src, int index) 1057 public void llOpenRemoteDataChannel()
1014 { 1058 {
1015 return m_LSL_Functions.llList2Vector(src, index); 1059 m_LSL_Functions.llOpenRemoteDataChannel();
1016 } 1060 }
1017 1061
1018 public rotation llList2Rot(LSL_Types.list src, int index) 1062 public LSL_Integer llOverMyLand(string id)
1019 { 1063 {
1020 return m_LSL_Functions.llList2Rot(src, index); 1064 return m_LSL_Functions.llOverMyLand(id);
1021 } 1065 }
1022 1066
1023 public LSL_Types.list llList2List(LSL_Types.list src, int start, int end) 1067 public void llOwnerSay(string msg)
1024 { 1068 {
1025 return m_LSL_Functions.llList2List(src, start, end); 1069 m_LSL_Functions.llOwnerSay(msg);
1026 } 1070 }
1027 1071
1028 public LSL_Types.list llDeleteSubList(LSL_Types.list src, int start, int end) 1072 public void llParcelMediaCommandList(LSL_List commandList)
1029 { 1073 {
1030 return m_LSL_Functions.llDeleteSubList(src, start, end); 1074 m_LSL_Functions.llParcelMediaCommandList(commandList);
1031 } 1075 }
1032 1076
1033 public LSL_Types.LSLInteger llGetListEntryType(LSL_Types.list src, int index) 1077 public LSL_List llParcelMediaQuery(LSL_List aList)
1034 { 1078 {
1035 return m_LSL_Functions.llGetListEntryType(src, index); 1079 return m_LSL_Functions.llParcelMediaQuery(aList);
1036 } 1080 }
1037 1081
1038 public string llList2CSV(LSL_Types.list src) 1082 public LSL_List llParseString2List(string str, LSL_List separators, LSL_List spacers)
1039 { 1083 {
1040 return m_LSL_Functions.llList2CSV(src); 1084 return m_LSL_Functions.llParseString2List(str, separators, spacers);
1041 } 1085 }
1042 1086
1043 public LSL_Types.list llCSV2List(string src) 1087 public LSL_List llParseStringKeepNulls(string src, LSL_List seperators, LSL_List spacers)
1044 { 1088 {
1045 return m_LSL_Functions.llCSV2List(src); 1089 return m_LSL_Functions.llParseStringKeepNulls(src, seperators, spacers);
1046 } 1090 }
1047 1091
1048 public LSL_Types.list llListRandomize(LSL_Types.list src, int stride) 1092 public void llParticleSystem(LSL_List rules)
1049 { 1093 {
1050 return m_LSL_Functions.llListRandomize(src, stride); 1094 m_LSL_Functions.llParticleSystem(rules);
1051 } 1095 }
1052 1096
1053 public LSL_Types.list llList2ListStrided(LSL_Types.list src, int start, int end, int stride) 1097 public void llPassCollisions(int pass)
1054 { 1098 {
1055 return m_LSL_Functions.llList2ListStrided(src, start, end, stride); 1099 m_LSL_Functions.llPassCollisions(pass);
1056 } 1100 }
1057 1101
1058 public vector llGetRegionCorner() 1102 public void llPassTouches(int pass)
1059 { 1103 {
1060 return m_LSL_Functions.llGetRegionCorner(); 1104 m_LSL_Functions.llPassTouches(pass);
1061 } 1105 }
1062 1106
1063 public LSL_Types.list llListInsertList(LSL_Types.list dest, LSL_Types.list src, int start) 1107 public void llPlaySound(string sound, double volume)
1064 { 1108 {
1065 return m_LSL_Functions.llListInsertList(dest, src, start); 1109 m_LSL_Functions.llPlaySound(sound, volume);
1066 } 1110 }
1067 1111
1068 public LSL_Types.LSLInteger llListFindList(LSL_Types.list src, LSL_Types.list test) 1112 public void llPlaySoundSlave(string sound, double volume)
1069 { 1113 {
1070 return m_LSL_Functions.llListFindList(src, test); 1114 m_LSL_Functions.llPlaySoundSlave(sound, volume);
1071 } 1115 }
1072 1116
1073 public string llGetObjectName() 1117 public void llPointAt()
1074 { 1118 {
1075 return m_LSL_Functions.llGetObjectName(); 1119 m_LSL_Functions.llPointAt();
1076 } 1120 }
1077 1121
1078 public void llSetObjectName(string name) 1122 public LSL_Float llPow(double fbase, double fexponent)
1079 { 1123 {
1080 m_LSL_Functions.llSetObjectName(name); 1124 return m_LSL_Functions.llPow(fbase, fexponent);
1081 } 1125 }
1082 1126
1083 public string llGetDate() 1127 public void llPreloadSound(string sound)
1084 { 1128 {
1085 return m_LSL_Functions.llGetDate(); 1129 m_LSL_Functions.llPreloadSound(sound);
1086 } 1130 }
1087 1131
1088 public LSL_Types.LSLInteger llEdgeOfWorld(vector pos, vector dir) 1132 public void llPushObject(string target, LSL_Vector impulse, LSL_Vector ang_impulse, int local)
1089 { 1133 {
1090 return m_LSL_Functions.llEdgeOfWorld(pos, dir); 1134 m_LSL_Functions.llPushObject(target, impulse, ang_impulse, local);
1091 } 1135 }
1092 1136
1093 public LSL_Types.LSLInteger llGetAgentInfo(string id) 1137 public void llRefreshPrimURL()
1094 { 1138 {
1095 return m_LSL_Functions.llGetAgentInfo(id); 1139 m_LSL_Functions.llRefreshPrimURL();
1096 } 1140 }
1097 1141
1098 public void llAdjustSoundVolume(double volume) 1142 public void llRegionSay(int channelID, string text)
1099 { 1143 {
1100 m_LSL_Functions.llAdjustSoundVolume(volume); 1144 m_LSL_Functions.llRegionSay(channelID, text);
1101 } 1145 }
1102 1146
1103 public void llSetSoundQueueing(int queue) 1147 public void llReleaseCamera(string avatar)
1104 { 1148 {
1105 m_LSL_Functions.llSetSoundQueueing(queue); 1149 m_LSL_Functions.llReleaseCamera(avatar);
1106 } 1150 }
1107 1151
1108 public void llSetSoundRadius(double radius) 1152 public void llReleaseControls()
1109 { 1153 {
1110 m_LSL_Functions.llSetSoundRadius(radius); 1154 m_LSL_Functions.llReleaseControls();
1111 } 1155 }
1112 1156
1113 public string llKey2Name(string id) 1157 public void llRemoteDataReply(string channel, string message_id, string sdata, int idata)
1114 { 1158 {
1115 return m_LSL_Functions.llKey2Name(id); 1159 m_LSL_Functions.llRemoteDataReply(channel, message_id, sdata, idata);
1116 } 1160 }
1117 1161
1118 public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) 1162 public void llRemoteDataSetRegion()
1119 { 1163 {
1120 m_LSL_Functions.llSetTextureAnim(mode, face, sizex, sizey, start, length, rate); 1164 m_LSL_Functions.llRemoteDataSetRegion();
1121 } 1165 }
1122 1166
1123 public void llTriggerSoundLimited(string sound, double volume, vector top_north_east, vector bottom_south_west) 1167 public void llRemoteLoadScript()
1124 { 1168 {
1125 m_LSL_Functions.llTriggerSoundLimited(sound, volume, top_north_east, bottom_south_west); 1169 m_LSL_Functions.llRemoteLoadScript();
1126 } 1170 }
1127 1171
1128 public void llEjectFromLand(string pest) 1172 public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param)
1129 { 1173 {
1130 m_LSL_Functions.llEjectFromLand(pest); 1174 m_LSL_Functions.llRemoteLoadScriptPin(target, name, pin, running, start_param);
1131 } 1175 }
1132 1176
1133 public LSL_Types.list llParseString2List(string str, LSL_Types.list separators, LSL_Types.list spacers) 1177 public void llRemoveFromLandBanList(string avatar)
1134 { 1178 {
1135 return m_LSL_Functions.llParseString2List(str,separators,spacers); 1179 m_LSL_Functions.llRemoveFromLandBanList(avatar);
1136 } 1180 }
1137 1181
1138 public LSL_Types.LSLInteger llOverMyLand(string id) 1182 public void llRemoveFromLandPassList(string avatar)
1139 { 1183 {
1140 return m_LSL_Functions.llOverMyLand(id); 1184 m_LSL_Functions.llRemoveFromLandPassList(avatar);
1141 } 1185 }
1142 1186
1143 public string llGetLandOwnerAt(vector pos) 1187 public void llRemoveInventory(string item)
1144 { 1188 {
1145 return m_LSL_Functions.llGetLandOwnerAt(pos); 1189 m_LSL_Functions.llRemoveInventory(item);
1146 } 1190 }
1147 1191
1148 public string llGetNotecardLine(string name, int line) 1192 public void llRemoveVehicleFlags(int flags)
1149 { 1193 {
1150 return m_LSL_Functions.llGetNotecardLine(name, line); 1194 m_LSL_Functions.llRemoveVehicleFlags(flags);
1151 } 1195 }
1152 1196
1153 public vector llGetAgentSize(string id) 1197 public LSL_Key llRequestAgentData(string id, int data)
1154 { 1198 {
1155 return m_LSL_Functions.llGetAgentSize(id); 1199 return m_LSL_Functions.llRequestAgentData(id, data);
1156 } 1200 }
1157 1201
1158 public LSL_Types.LSLInteger llSameGroup(string agent) 1202 public LSL_Key llRequestInventoryData(string name)
1159 { 1203 {
1160 return m_LSL_Functions.llSameGroup(agent); 1204 return m_LSL_Functions.llRequestInventoryData(name);
1161 } 1205 }
1162 1206
1163 public void llUnSit(string id) 1207 public void llRequestPermissions(string agent, int perm)
1164 { 1208 {
1165 m_LSL_Functions.llUnSit(id); 1209 m_LSL_Functions.llRequestPermissions(agent, perm);
1166 } 1210 }
1167 1211
1168 public vector llGroundSlope(vector offset) 1212 public LSL_Key llRequestSimulatorData(string simulator, int data)
1169 { 1213 {
1170 return m_LSL_Functions.llGroundSlope(offset); 1214 return m_LSL_Functions.llRequestSimulatorData(simulator, data);
1171 } 1215 }
1172 1216
1173 public vector llGroundNormal(vector offset) 1217 public void llResetLandBanList()
1174 { 1218 {
1175 return m_LSL_Functions.llGroundNormal(offset); 1219 m_LSL_Functions.llResetLandBanList();
1176 } 1220 }
1177 1221
1178 public vector llGroundContour(vector offset) 1222 public void llResetLandPassList()
1179 { 1223 {
1180 return m_LSL_Functions.llGroundContour(offset); 1224 m_LSL_Functions.llResetLandPassList();
1181 } 1225 }
1182 1226
1183 public LSL_Types.LSLInteger llGetAttached() 1227 public void llResetOtherScript(string name)
1184 { 1228 {
1185 return m_LSL_Functions.llGetAttached(); 1229 m_LSL_Functions.llResetOtherScript(name);
1186 } 1230 }
1187 1231
1188 public LSL_Types.LSLInteger llGetFreeMemory() 1232 public void llResetScript()
1189 { 1233 {
1190 return m_LSL_Functions.llGetFreeMemory(); 1234 m_LSL_Functions.llResetScript();
1191 } 1235 }
1192 1236
1193 public string llGetRegionName() 1237 public void llResetTime()
1194 { 1238 {
1195 return m_LSL_Functions.llGetRegionName(); 1239 m_LSL_Functions.llResetTime();
1196 } 1240 }
1197 1241
1198 public double llGetRegionTimeDilation() 1242 public void llRezAtRoot(string inventory, LSL_Vector position, LSL_Vector velocity, LSL_Rotation rot, int param)
1199 { 1243 {
1200 return m_LSL_Functions.llGetRegionTimeDilation(); 1244 m_LSL_Functions.llRezAtRoot(inventory, position, velocity, rot, param);
1201 } 1245 }
1202 1246
1203 public double llGetRegionFPS() 1247 public void llRezObject(string inventory, LSL_Vector pos, LSL_Vector vel, LSL_Rotation rot, int param)
1204 { 1248 {
1205 return m_LSL_Functions.llGetRegionFPS(); 1249 m_LSL_Functions.llRezObject(inventory, pos, vel, rot, param);
1206 } 1250 }
1207 1251
1208 public void llParticleSystem(LSL_Types.list rules) 1252 public LSL_Float llRot2Angle(LSL_Rotation rot)
1209 { 1253 {
1210 m_LSL_Functions.llParticleSystem(rules); 1254 return m_LSL_Functions.llRot2Angle(rot);
1211 } 1255 }
1212 1256
1213 public void llGroundRepel(double height, int water, double tau) 1257 public LSL_Vector llRot2Axis(LSL_Rotation rot)
1214 { 1258 {
1215 m_LSL_Functions.llGroundRepel(height, water, tau); 1259 return m_LSL_Functions.llRot2Axis(rot);
1216 } 1260 }
1217 1261
1218 public void llGiveInventoryList(string destination, string category, LSL_Types.list inventory) 1262 public LSL_Vector llRot2Euler(LSL_Rotation r)
1219 { 1263 {
1220 m_LSL_Functions.llGiveInventoryList(destination, category, inventory); 1264 return m_LSL_Functions.llRot2Euler(r);
1221 } 1265 }
1222 1266
1223 public void llSetVehicleType(int type) 1267 public LSL_Vector llRot2Fwd(LSL_Rotation r)
1224 { 1268 {
1225 m_LSL_Functions.llSetVehicleType(type); 1269 return m_LSL_Functions.llRot2Fwd(r);
1226 } 1270 }
1227 1271
1228 public void llSetVehicledoubleParam(int param, double value) 1272 public LSL_Vector llRot2Left(LSL_Rotation r)
1229 { 1273 {
1230 m_LSL_Functions.llSetVehicledoubleParam(param, value); 1274 return m_LSL_Functions.llRot2Left(r);
1231 } 1275 }
1232 1276
1233 public void llSetVehicleFloatParam(int param, float value) 1277 public LSL_Vector llRot2Up(LSL_Rotation r)
1234 { 1278 {
1235 m_LSL_Functions.llSetVehicleFloatParam(param, value); 1279 return m_LSL_Functions.llRot2Up(r);
1236 } 1280 }
1237 1281
1238 public void llSetVehicleVectorParam(int param, vector vec) 1282 public void llRotateTexture(double rotation, int face)
1239 { 1283 {
1240 m_LSL_Functions.llSetVehicleVectorParam(param, vec); 1284 m_LSL_Functions.llRotateTexture(rotation, face);
1241 } 1285 }
1242 1286
1243 public void llSetVehicleRotationParam(int param, rotation rot) 1287 public LSL_Rotation llRotBetween(LSL_Vector start, LSL_Vector end)
1244 { 1288 {
1245 m_LSL_Functions.llSetVehicleRotationParam(param, rot); 1289 return m_LSL_Functions.llRotBetween(start, end);
1246 } 1290 }
1247 1291
1248 public void llSetVehicleFlags(int flags) 1292 public void llRotLookAt(LSL_Rotation target, double strength, double damping)
1249 { 1293 {
1250 m_LSL_Functions.llSetVehicleFlags(flags); 1294 m_LSL_Functions.llRotLookAt(target, strength, damping);
1251 } 1295 }
1252 1296
1253 public void llRemoveVehicleFlags(int flags) 1297 public LSL_Integer llRotTarget(LSL_Rotation rot, double error)
1254 { 1298 {
1255 m_LSL_Functions.llRemoveVehicleFlags(flags); 1299 return m_LSL_Functions.llRotTarget(rot, error);
1256 } 1300 }
1257 1301
1258 public void llSitTarget(vector offset, rotation rot) 1302 public void llRotTargetRemove(int number)
1259 { 1303 {
1260 m_LSL_Functions.llSitTarget(offset, rot); 1304 m_LSL_Functions.llRotTargetRemove(number);
1261 } 1305 }
1262 1306
1263 public string llAvatarOnSitTarget() 1307 public LSL_Integer llRound(double f)
1264 { 1308 {
1265 return m_LSL_Functions.llAvatarOnSitTarget(); 1309 return m_LSL_Functions.llRound(f);
1266 } 1310 }
1267 1311
1268 public void llAddToLandPassList(string avatar, double hours) 1312 public LSL_Integer llSameGroup(string agent)
1269 { 1313 {
1270 m_LSL_Functions.llAddToLandPassList(avatar, hours); 1314 return m_LSL_Functions.llSameGroup(agent);
1271 } 1315 }
1272 1316
1273 public void llSetTouchText(string text) 1317 public void llSay(int channelID, string text)
1274 { 1318 {
1275 m_LSL_Functions.llSetTouchText(text); 1319 m_LSL_Functions.llSay(channelID, text);
1276 } 1320 }
1277 1321
1278 public void llSetSitText(string text) 1322 public void llScaleTexture(double u, double v, int face)
1279 { 1323 {
1280 m_LSL_Functions.llSetSitText(text); 1324 m_LSL_Functions.llScaleTexture(u, v, face);
1281 } 1325 }
1282 1326
1283 public void llSetCameraEyeOffset(vector offset) 1327 public LSL_Integer llScriptDanger(LSL_Vector pos)
1284 { 1328 {
1285 m_LSL_Functions.llSetCameraEyeOffset(offset); 1329 return m_LSL_Functions.llScriptDanger(pos);
1286 } 1330 }
1287 1331
1288 public void llSetCameraAtOffset(vector offset) 1332 public LSL_Key llSendRemoteData(string channel, string dest, int idata, string sdata)
1289 { 1333 {
1290 m_LSL_Functions.llSetCameraAtOffset(offset); 1334 return m_LSL_Functions.llSendRemoteData(channel, dest, idata, sdata);
1291 } 1335 }
1292 1336
1293 public string llDumpList2String(LSL_Types.list src, string seperator) 1337 public void llSensor(string name, string id, int type, double range, double arc)
1294 { 1338 {
1295 return m_LSL_Functions.llDumpList2String(src, seperator); 1339 m_LSL_Functions.llSensor(name, id, type, range, arc);
1296 } 1340 }
1297 1341
1298 public LSL_Types.LSLInteger llScriptDanger(vector pos) 1342 public void llSensorRemove()
1299 { 1343 {
1300 return m_LSL_Functions.llScriptDanger(pos); 1344 m_LSL_Functions.llSensorRemove();
1301 } 1345 }
1302 1346
1303 public void llDialog(string avatar, string message, LSL_Types.list buttons, int chat_channel) 1347 public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate)
1304 { 1348 {
1305 m_LSL_Functions.llDialog(avatar, message, buttons, chat_channel); 1349 m_LSL_Functions.llSensorRepeat(name, id, type, range, arc, rate);
1306 } 1350 }
1307 1351
1308 public void llVolumeDetect(int detect) 1352 public void llSetAlpha(double alpha, int face)
1309 { 1353 {
1310 m_LSL_Functions.llVolumeDetect(detect); 1354 m_LSL_Functions.llSetAlpha(alpha, face);
1311 } 1355 }
1312 1356
1313 public void llResetOtherScript(string name) 1357 public void llSetBuoyancy(double buoyancy)
1314 { 1358 {
1315 m_LSL_Functions.llResetOtherScript(name); 1359 m_LSL_Functions.llSetBuoyancy(buoyancy);
1316 } 1360 }
1317 1361
1318 public LSL_Types.LSLInteger llGetScriptState(string name) 1362 public void llSetCameraAtOffset(LSL_Vector offset)
1319 { 1363 {
1320 return m_LSL_Functions.llGetScriptState(name); 1364 m_LSL_Functions.llSetCameraAtOffset(offset);
1321 } 1365 }
1322 1366
1323 public void llRemoteLoadScript() 1367 public void llSetCameraEyeOffset(LSL_Vector offset)
1324 { 1368 {
1325 m_LSL_Functions.llRemoteLoadScript(); 1369 m_LSL_Functions.llSetCameraEyeOffset(offset);
1326 } 1370 }
1327 1371
1328 public void llSetRemoteScriptAccessPin(int pin) 1372 public void llSetCameraParams(LSL_List rules)
1329 { 1373 {
1330 m_LSL_Functions.llSetRemoteScriptAccessPin(pin); 1374 m_LSL_Functions.llSetCameraParams(rules);
1331 } 1375 }
1332 1376
1333 public void llRemoteLoadScriptPin(string target, string name, int pin, int running, int start_param) 1377 public void llSetClickAction(int action)
1334 { 1378 {
1335 m_LSL_Functions.llRemoteLoadScriptPin(target, name, pin, running, start_param); 1379 m_LSL_Functions.llSetClickAction(action);
1336 } 1380 }
1337 1381
1338 public void llOpenRemoteDataChannel() 1382 public void llSetColor(LSL_Vector color, int face)
1339 { 1383 {
1340 m_LSL_Functions.llOpenRemoteDataChannel(); 1384 m_LSL_Functions.llSetColor(color, face);
1341 } 1385 }
1342 1386
1343 public string llSendRemoteData(string channel, string dest, int idata, string sdata) 1387 public void llSetDamage(double damage)
1344 { 1388 {
1345 return m_LSL_Functions.llSendRemoteData(channel, dest, idata, sdata); 1389 m_LSL_Functions.llSetDamage(damage);
1346 } 1390 }
1347 1391
1348 public void llRemoteDataReply(string channel, string message_id, string sdata, int idata) 1392 public void llSetForce(LSL_Vector force, int local)
1349 { 1393 {
1350 m_LSL_Functions.llRemoteDataReply(channel, message_id, sdata, idata); 1394 m_LSL_Functions.llSetForce(force, local);
1351 } 1395 }
1352 1396
1353 public void llCloseRemoteDataChannel(string channel) 1397 public void llSetForceAndTorque(LSL_Vector force, LSL_Vector torque, int local)
1354 { 1398 {
1355 m_LSL_Functions.llCloseRemoteDataChannel(channel); 1399 m_LSL_Functions.llSetForceAndTorque(force, torque, local);
1356 } 1400 }
1357 1401
1358 public string llMD5String(string src, int nonce) 1402 public void llSetHoverHeight(double height, int water, double tau)
1359 { 1403 {
1360 return m_LSL_Functions.llMD5String(src, nonce); 1404 m_LSL_Functions.llSetHoverHeight(height, water, tau);
1361 } 1405 }
1362 1406
1363 public void llSetPrimitiveParams(LSL_Types.list rules) 1407 public void llSetInventoryPermMask(string item, int mask, int value)
1364 { 1408 {
1365 m_LSL_Functions.llSetPrimitiveParams(rules); 1409 m_LSL_Functions.llSetInventoryPermMask(item, mask, value);
1366 } 1410 }
1367 1411
1368 public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules) 1412 public void llSetLinkAlpha(int linknumber, double alpha, int face)
1369 { 1413 {
1370 m_LSL_Functions.llSetLinkPrimitiveParams(linknumber, rules); 1414 m_LSL_Functions.llSetLinkAlpha(linknumber, alpha, face);
1371 } 1415 }
1372 public string llStringToBase64(string str) 1416
1417 public void llSetLinkColor(int linknumber, LSL_Vector color, int face)
1373 { 1418 {
1374 return m_LSL_Functions.llStringToBase64(str); 1419 m_LSL_Functions.llSetLinkColor(linknumber, color, face);
1375 } 1420 }
1376 1421
1377 public string llBase64ToString(string str) 1422 public void llSetLinkPrimitiveParams(int linknumber, LSL_List rules)
1378 { 1423 {
1379 return m_LSL_Functions.llBase64ToString(str); 1424 m_LSL_Functions.llSetLinkPrimitiveParams(linknumber, rules);
1380 } 1425 }
1381 1426
1382 public void llXorBase64Strings() 1427 public void llSetLinkTexture(int linknumber, string texture, int face)
1383 { 1428 {
1384 m_LSL_Functions.llXorBase64Strings(); 1429 m_LSL_Functions.llSetLinkTexture(linknumber, texture, face);
1385 } 1430 }
1386 1431
1387 public void llRemoteDataSetRegion() 1432 public void llSetLocalRot(LSL_Rotation rot)
1388 { 1433 {
1389 m_LSL_Functions.llRemoteDataSetRegion(); 1434 m_LSL_Functions.llSetLocalRot(rot);
1390 } 1435 }
1391 1436
1392 public double llLog10(double val) 1437 public void llSetObjectDesc(string desc)
1393 { 1438 {
1394 return m_LSL_Functions.llLog10(val); 1439 m_LSL_Functions.llSetObjectDesc(desc);
1395 } 1440 }
1396 1441
1397 public double llLog(double val) 1442 public void llSetObjectName(string name)
1398 { 1443 {
1399 return m_LSL_Functions.llLog(val); 1444 m_LSL_Functions.llSetObjectName(name);
1400 } 1445 }
1401 1446
1402 public LSL_Types.list llGetAnimationList(string id) 1447 public void llSetObjectPermMask(int mask, int value)
1403 { 1448 {
1404 return m_LSL_Functions.llGetAnimationList(id); 1449 m_LSL_Functions.llSetObjectPermMask(mask, value);
1405 } 1450 }
1406 1451
1407 public void llSetParcelMusicURL(string url) 1452 public void llSetParcelMusicURL(string url)
@@ -1409,324 +1454,324 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
1409 m_LSL_Functions.llSetParcelMusicURL(url); 1454 m_LSL_Functions.llSetParcelMusicURL(url);
1410 } 1455 }
1411 1456
1412 public vector llGetRootPosition() 1457 public void llSetPayPrice(int price, LSL_List quick_pay_buttons)
1413 { 1458 {
1414 return m_LSL_Functions.llGetRootPosition(); 1459 m_LSL_Functions.llSetPayPrice(price, quick_pay_buttons);
1415 } 1460 }
1416 1461
1417 public rotation llGetRootRotation() 1462 public void llSetPos(LSL_Vector pos)
1418 { 1463 {
1419 return m_LSL_Functions.llGetRootRotation(); 1464 m_LSL_Functions.llSetPos(pos);
1420 } 1465 }
1421 1466
1422 public string llGetObjectDesc() 1467 public void llSetPrimitiveParams(LSL_List rules)
1423 { 1468 {
1424 return m_LSL_Functions.llGetObjectDesc(); 1469 m_LSL_Functions.llSetPrimitiveParams(rules);
1425 } 1470 }
1426 1471
1427 public void llSetObjectDesc(string desc) 1472 public void llSetPrimURL()
1428 { 1473 {
1429 m_LSL_Functions.llSetObjectDesc(desc); 1474 m_LSL_Functions.llSetPrimURL();
1430 } 1475 }
1431 1476
1432 public string llGetCreator() 1477 public void llSetRemoteScriptAccessPin(int pin)
1433 { 1478 {
1434 return m_LSL_Functions.llGetCreator(); 1479 m_LSL_Functions.llSetRemoteScriptAccessPin(pin);
1435 } 1480 }
1436 1481
1437 public string llGetTimestamp() 1482 public void llSetRot(LSL_Rotation rot)
1438 { 1483 {
1439 return m_LSL_Functions.llGetTimestamp(); 1484 m_LSL_Functions.llSetRot(rot);
1440 } 1485 }
1441 1486
1442 public void llSetLinkAlpha(int linknumber, double alpha, int face) 1487 public void llSetScale(LSL_Vector scale)
1443 { 1488 {
1444 m_LSL_Functions.llSetLinkAlpha(linknumber, alpha, face); 1489 m_LSL_Functions.llSetScale(scale);
1445 } 1490 }
1446 1491
1447 public LSL_Types.LSLInteger llGetNumberOfPrims() 1492 public void llSetScriptState(string name, int run)
1448 { 1493 {
1449 return m_LSL_Functions.llGetNumberOfPrims(); 1494 m_LSL_Functions.llSetScriptState(name, run);
1450 } 1495 }
1451 1496
1452 public string llGetNumberOfNotecardLines(string name) 1497 public void llSetSitText(string text)
1453 { 1498 {
1454 return m_LSL_Functions.llGetNumberOfNotecardLines(name); 1499 m_LSL_Functions.llSetSitText(text);
1455 } 1500 }
1456 1501
1457 public LSL_Types.list llGetBoundingBox(string obj) 1502 public void llSetSoundQueueing(int queue)
1458 { 1503 {
1459 return m_LSL_Functions.llGetBoundingBox(obj); 1504 m_LSL_Functions.llSetSoundQueueing(queue);
1460 } 1505 }
1461 1506
1462 public vector llGetGeometricCenter() 1507 public void llSetSoundRadius(double radius)
1463 { 1508 {
1464 return m_LSL_Functions.llGetGeometricCenter(); 1509 m_LSL_Functions.llSetSoundRadius(radius);
1465 } 1510 }
1466 1511
1467 public LSL_Types.list llGetPrimitiveParams(LSL_Types.list rules) 1512 public void llSetStatus(int status, int value)
1468 { 1513 {
1469 return m_LSL_Functions.llGetPrimitiveParams(rules); 1514 m_LSL_Functions.llSetStatus(status, value);
1470 } 1515 }
1471 1516
1472 public string llIntegerToBase64(int number) 1517 public void llSetText(string text, LSL_Vector color, double alpha)
1473 { 1518 {
1474 return m_LSL_Functions.llIntegerToBase64(number); 1519 m_LSL_Functions.llSetText(text, color, alpha);
1475 } 1520 }
1476 1521
1477 public LSL_Types.LSLInteger llBase64ToInteger(string str) 1522 public void llSetTexture(string texture, int face)
1478 { 1523 {
1479 return m_LSL_Functions.llBase64ToInteger(str); 1524 m_LSL_Functions.llSetTexture(texture, face);
1480 } 1525 }
1481 1526
1482 public double llGetGMTclock() 1527 public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate)
1483 { 1528 {
1484 return m_LSL_Functions.llGetGMTclock(); 1529 m_LSL_Functions.llSetTextureAnim(mode, face, sizex, sizey, start, length, rate);
1485 } 1530 }
1486 1531
1487 public string llGetSimulatorHostname() 1532 public void llSetTimerEvent(double sec)
1488 { 1533 {
1489 return m_LSL_Functions.llGetSimulatorHostname(); 1534 m_LSL_Functions.llSetTimerEvent(sec);
1490 } 1535 }
1491 1536
1492 public void llSetLocalRot(rotation rot) 1537 public void llSetTorque(LSL_Vector torque, int local)
1493 { 1538 {
1494 m_LSL_Functions.llSetLocalRot(rot); 1539 m_LSL_Functions.llSetTorque(torque, local);
1495 } 1540 }
1496 1541
1497 public LSL_Types.list llParseStringKeepNulls(string src, LSL_Types.list seperators, LSL_Types.list spacers) 1542 public void llSetTouchText(string text)
1498 { 1543 {
1499 return m_LSL_Functions.llParseStringKeepNulls(src, seperators, spacers); 1544 m_LSL_Functions.llSetTouchText(text);
1500 } 1545 }
1501 1546
1502 public void llRezAtRoot(string inventory, vector position, vector velocity, rotation rot, int param) 1547 public void llSetVehicleFlags(int flags)
1503 { 1548 {
1504 m_LSL_Functions.llRezAtRoot(inventory, position, velocity, rot, param); 1549 m_LSL_Functions.llSetVehicleFlags(flags);
1505 } 1550 }
1506 1551
1507 public LSL_Types.LSLInteger llGetObjectPermMask(int mask) 1552 public void llSetVehicleFloatParam(int param, float value)
1508 { 1553 {
1509 return m_LSL_Functions.llGetObjectPermMask(mask); 1554 m_LSL_Functions.llSetVehicleFloatParam(param, value);
1510 } 1555 }
1511 1556
1512 public void llSetObjectPermMask(int mask, int value) 1557 public void llSetVehicleRotationParam(int param, LSL_Rotation rot)
1513 { 1558 {
1514 m_LSL_Functions.llSetObjectPermMask(mask, value); 1559 m_LSL_Functions.llSetVehicleRotationParam(param, rot);
1515 } 1560 }
1516 1561
1517 public LSL_Types.LSLInteger llGetInventoryPermMask(string item, int mask) 1562 public void llSetVehicleType(int type)
1518 { 1563 {
1519 return m_LSL_Functions.llGetInventoryPermMask(item, mask); 1564 m_LSL_Functions.llSetVehicleType(type);
1520 } 1565 }
1521 1566
1522 public void llSetInventoryPermMask(string item, int mask, int value) 1567 public void llSetVehicleVectorParam(int param, LSL_Vector vec)
1523 { 1568 {
1524 m_LSL_Functions.llSetInventoryPermMask(item, mask, value); 1569 m_LSL_Functions.llSetVehicleVectorParam(param, vec);
1525 } 1570 }
1526 1571
1527 public string llGetInventoryCreator(string item) 1572 public void llShout(int channelID, string text)
1528 { 1573 {
1529 return m_LSL_Functions.llGetInventoryCreator(item); 1574 m_LSL_Functions.llShout(channelID, text);
1530 } 1575 }
1531 1576
1532 public void llOwnerSay(string msg) 1577 public LSL_Float llSin(double f)
1533 { 1578 {
1534 m_LSL_Functions.llOwnerSay(msg); 1579 return m_LSL_Functions.llSin(f);
1535 } 1580 }
1536 1581
1537 public string llRequestSimulatorData(string simulator, int data) 1582 public void llSitTarget(LSL_Vector offset, LSL_Rotation rot)
1538 { 1583 {
1539 return m_LSL_Functions.llRequestSimulatorData(simulator, data); 1584 m_LSL_Functions.llSitTarget(offset, rot);
1540 } 1585 }
1541 1586
1542 public void llForceMouselook(int mouselook) 1587 public void llSleep(double sec)
1543 { 1588 {
1544 m_LSL_Functions.llForceMouselook(mouselook); 1589 m_LSL_Functions.llSleep(sec);
1545 } 1590 }
1546 1591
1547 public double llGetObjectMass(string id) 1592 public void llSound()
1548 { 1593 {
1549 return m_LSL_Functions.llGetObjectMass(id); 1594 m_LSL_Functions.llSound();
1550 } 1595 }
1551 1596
1552 public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end) 1597 public void llSoundPreload()
1553 { 1598 {
1554 return m_LSL_Functions.llListReplaceList(dest, src, start, end); 1599 m_LSL_Functions.llSoundPreload();
1555 } 1600 }
1556 1601
1557 public void llLoadURL(string avatar_id, string message, string url) 1602 public LSL_Float llSqrt(double f)
1558 { 1603 {
1559 m_LSL_Functions.llLoadURL(avatar_id, message, url); 1604 return m_LSL_Functions.llSqrt(f);
1560 } 1605 }
1561 1606
1562 public void llParcelMediaCommandList(LSL_Types.list commandList) 1607 public void llStartAnimation(string anim)
1563 { 1608 {
1564 m_LSL_Functions.llParcelMediaCommandList(commandList); 1609 m_LSL_Functions.llStartAnimation(anim);
1565 } 1610 }
1566 1611
1567 public LSL_Types.list llParcelMediaQuery(LSL_Types.list aList) 1612 public void llStopAnimation(string anim)
1568 { 1613 {
1569 return m_LSL_Functions.llParcelMediaQuery(aList); 1614 m_LSL_Functions.llStopAnimation(anim);
1570 } 1615 }
1571 1616
1572 public LSL_Types.LSLInteger llModPow(int a, int b, int c) 1617 public void llStopHover()
1573 { 1618 {
1574 return m_LSL_Functions.llModPow(a, b, c); 1619 m_LSL_Functions.llStopHover();
1575 } 1620 }
1576 1621
1577 public LSL_Types.LSLInteger llGetInventoryType(string name) 1622 public void llStopLookAt()
1578 { 1623 {
1579 return m_LSL_Functions.llGetInventoryType(name); 1624 m_LSL_Functions.llStopLookAt();
1580 } 1625 }
1581 1626
1582 public void llSetPayPrice(int price, LSL_Types.list quick_pay_buttons) 1627 public void llStopMoveToTarget()
1583 { 1628 {
1584 m_LSL_Functions.llSetPayPrice(price, quick_pay_buttons); 1629 m_LSL_Functions.llStopMoveToTarget();
1585 } 1630 }
1586 1631
1587 public vector llGetCameraPos() 1632 public void llStopPointAt()
1588 { 1633 {
1589 return m_LSL_Functions.llGetCameraPos(); 1634 m_LSL_Functions.llStopPointAt();
1590 } 1635 }
1591 1636
1592 public rotation llGetCameraRot() 1637 public void llStopSound()
1593 { 1638 {
1594 return m_LSL_Functions.llGetCameraRot(); 1639 m_LSL_Functions.llStopSound();
1595 } 1640 }
1596 1641
1597 public void llSetPrimURL() 1642 public LSL_Integer llStringLength(string str)
1598 { 1643 {
1599 m_LSL_Functions.llSetPrimURL(); 1644 return m_LSL_Functions.llStringLength(str);
1600 } 1645 }
1601 1646
1602 public void llRefreshPrimURL() 1647 public LSL_String llStringToBase64(string str)
1603 { 1648 {
1604 m_LSL_Functions.llRefreshPrimURL(); 1649 return m_LSL_Functions.llStringToBase64(str);
1605 } 1650 }
1606 1651
1607 public string llEscapeURL(string url) 1652 public LSL_String llStringTrim(string src, int type)
1608 { 1653 {
1609 return m_LSL_Functions.llEscapeURL(url); 1654 return m_LSL_Functions.llStringTrim(src, type);
1610 } 1655 }
1611 1656
1612 public string llUnescapeURL(string url) 1657 public LSL_Integer llSubStringIndex(string source, string pattern)
1613 { 1658 {
1614 return m_LSL_Functions.llUnescapeURL(url); 1659 return m_LSL_Functions.llSubStringIndex(source, pattern);
1615 } 1660 }
1616 1661
1617 public void llMapDestination(string simname, vector pos, vector look_at) 1662 public void llTakeCamera(string avatar)
1618 { 1663 {
1619 m_LSL_Functions.llMapDestination(simname, pos, look_at); 1664 m_LSL_Functions.llTakeCamera(avatar);
1620 } 1665 }
1621 1666
1622 public void llAddToLandBanList(string avatar, double hours) 1667 public void llTakeControls(int controls, int accept, int pass_on)
1623 { 1668 {
1624 m_LSL_Functions.llAddToLandBanList(avatar, hours); 1669 m_LSL_Functions.llTakeControls(controls, accept, pass_on);
1625 } 1670 }
1626 1671
1627 public void llRemoveFromLandPassList(string avatar) 1672 public LSL_Float llTan(double f)
1628 { 1673 {
1629 m_LSL_Functions.llRemoveFromLandPassList(avatar); 1674 return m_LSL_Functions.llTan(f);
1630 } 1675 }
1631 1676
1632 public void llRemoveFromLandBanList(string avatar) 1677 public LSL_Integer llTarget(LSL_Vector position, double range)
1633 { 1678 {
1634 m_LSL_Functions.llRemoveFromLandBanList(avatar); 1679 return m_LSL_Functions.llTarget(position, range);
1635 } 1680 }
1636 1681
1637 public void llSetCameraParams(LSL_Types.list rules) 1682 public void llTargetOmega(LSL_Vector axis, double spinrate, double gain)
1638 { 1683 {
1639 m_LSL_Functions.llSetCameraParams(rules); 1684 m_LSL_Functions.llTargetOmega(axis, spinrate, gain);
1640 } 1685 }
1641 1686
1642 public void llClearCameraParams() 1687 public void llTargetRemove(int number)
1643 { 1688 {
1644 m_LSL_Functions.llClearCameraParams(); 1689 m_LSL_Functions.llTargetRemove(number);
1645 } 1690 }
1646 1691
1647 public double llListStatistics(int operation, LSL_Types.list src) 1692 public void llTeleportAgentHome(string agent)
1648 { 1693 {
1649 return m_LSL_Functions.llListStatistics(operation, src); 1694 m_LSL_Functions.llTeleportAgentHome(agent);
1650 } 1695 }
1651 1696
1652 public LSL_Types.LSLInteger llGetUnixTime() 1697 public void llTextBox(string avatar, string message, int chat_channel)
1653 { 1698 {
1654 return m_LSL_Functions.llGetUnixTime(); 1699 m_LSL_Functions.llTextBox(avatar, message, chat_channel);
1655 } 1700 }
1656 1701
1657 public LSL_Types.LSLInteger llGetParcelFlags(vector pos) 1702 public LSL_String llToLower(string source)
1658 { 1703 {
1659 return m_LSL_Functions.llGetParcelFlags(pos); 1704 return m_LSL_Functions.llToLower(source);
1660 } 1705 }
1661 1706
1662 public LSL_Types.LSLInteger llGetRegionFlags() 1707 public LSL_String llToUpper(string source)
1663 { 1708 {
1664 return m_LSL_Functions.llGetRegionFlags(); 1709 return m_LSL_Functions.llToUpper(source);
1665 } 1710 }
1666 1711
1667 public string llXorBase64StringsCorrect(string str1, string str2) 1712 public void llTriggerSound(string sound, double volume)
1668 { 1713 {
1669 return m_LSL_Functions.llXorBase64StringsCorrect(str1, str2); 1714 m_LSL_Functions.llTriggerSound(sound, volume);
1670 } 1715 }
1671 1716
1672 public string llHTTPRequest(string url, LSL_Types.list parameters, string body) 1717 public void llTriggerSoundLimited(string sound, double volume, LSL_Vector top_north_east, LSL_Vector bottom_south_west)
1673 { 1718 {
1674 return m_LSL_Functions.llHTTPRequest(url, parameters, body); 1719 m_LSL_Functions.llTriggerSoundLimited(sound, volume, top_north_east, bottom_south_west);
1675 } 1720 }
1676 1721
1677 public void llResetLandBanList() 1722 public LSL_String llUnescapeURL(string url)
1678 { 1723 {
1679 m_LSL_Functions.llResetLandBanList(); 1724 return m_LSL_Functions.llUnescapeURL(url);
1680 } 1725 }
1681 1726
1682 public void llResetLandPassList() 1727 public void llUnSit(string id)
1683 { 1728 {
1684 m_LSL_Functions.llResetLandPassList(); 1729 m_LSL_Functions.llUnSit(id);
1685 } 1730 }
1686 1731
1687 public LSL_Types.LSLInteger llGetParcelPrimCount(vector pos, int category, int sim_wide) 1732 public LSL_Float llVecDist(LSL_Vector a, LSL_Vector b)
1688 { 1733 {
1689 return m_LSL_Functions.llGetParcelPrimCount(pos, category, sim_wide); 1734 return m_LSL_Functions.llVecDist(a, b);
1690 } 1735 }
1691 1736
1692 public LSL_Types.list llGetParcelPrimOwners(vector pos) 1737 public LSL_Float llVecMag(LSL_Vector v)
1693 { 1738 {
1694 return m_LSL_Functions.llGetParcelPrimOwners(pos); 1739 return m_LSL_Functions.llVecMag(v);
1695 } 1740 }
1696 1741
1697 public LSL_Types.LSLInteger llGetObjectPrimCount(string object_id) 1742 public LSL_Vector llVecNorm(LSL_Vector v)
1698 { 1743 {
1699 return m_LSL_Functions.llGetObjectPrimCount(object_id); 1744 return m_LSL_Functions.llVecNorm(v);
1700 } 1745 }
1701 1746
1702 public LSL_Types.LSLInteger llGetParcelMaxPrims(vector pos, int sim_wide) 1747 public void llVolumeDetect(int detect)
1703 { 1748 {
1704 return m_LSL_Functions.llGetParcelMaxPrims(pos, sim_wide); 1749 m_LSL_Functions.llVolumeDetect(detect);
1705 } 1750 }
1706 1751
1707 public LSL_Types.list llGetParcelDetails(vector pos, LSL_Types.list param) 1752 public LSL_Float llWater(LSL_Vector offset)
1708 { 1753 {
1709 return m_LSL_Functions.llGetParcelDetails(pos, param); 1754 return m_LSL_Functions.llWater(offset);
1710 } 1755 }
1711 1756
1712 public void llSetLinkTexture(int linknumber, string texture, int face) 1757 public void llWhisper(int channelID, string text)
1713 { 1758 {
1714 m_LSL_Functions.llSetLinkTexture(linknumber, texture, face); 1759 m_LSL_Functions.llWhisper(channelID, text);
1715 } 1760 }
1716 1761
1717 public string llStringTrim(string src, int type) 1762 public LSL_Vector llWind(LSL_Vector offset)
1718 { 1763 {
1719 return m_LSL_Functions.llStringTrim(src, type); 1764 return m_LSL_Functions.llWind(offset);
1720 } 1765 }
1721 1766
1722 public LSL_Types.list llGetObjectDetails(string id, LSL_Types.list args) 1767 public void llXorBase64Strings()
1723 { 1768 {
1724 return m_LSL_Functions.llGetObjectDetails(id, args); 1769 m_LSL_Functions.llXorBase64Strings();
1725 } 1770 }
1726 1771
1727 public double llList2Float(LSL_Types.list src, int index) 1772 public LSL_String llXorBase64StringsCorrect(string str1, string str2)
1728 { 1773 {
1729 return m_LSL_Functions.llList2Float(src, index); 1774 return m_LSL_Functions.llXorBase64StringsCorrect(str1, str2);
1730 } 1775 }
1731 } 1776 }
1732} 1777}
diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
index b8d72e0..5f64743 100644
--- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
@@ -1238,12 +1238,12 @@ namespace OpenSim.Region.ScriptEngine.Shared
1238 1238
1239 static public implicit operator String(key k) 1239 static public implicit operator String(key k)
1240 { 1240 {
1241 return k.value; 1241 return k.value;
1242 } 1242 }
1243 1243
1244 static public implicit operator LSLString(key k) 1244 static public implicit operator LSLString(key k)
1245 { 1245 {
1246 return k.value; 1246 return k.value;
1247 } 1247 }
1248 1248
1249 public static bool operator ==(key k1, key k2) 1249 public static bool operator ==(key k1, key k2)
@@ -1449,11 +1449,13 @@ namespace OpenSim.Region.ScriptEngine.Shared
1449 try 1449 try
1450 { 1450 {
1451 if (v.Contains("x") || v.Contains("X")) 1451 if (v.Contains("x") || v.Contains("X"))
1452 value = int.Parse(v.Substring(2), 1452 {
1453 System.Globalization.NumberStyles.HexNumber); 1453 value = int.Parse(v.Substring(2), System.Globalization.NumberStyles.HexNumber);
1454 }
1454 else 1455 else
1455 value = int.Parse(v, 1456 {
1456 System.Globalization.NumberStyles.Integer); 1457 value = int.Parse(v, System.Globalization.NumberStyles.Integer);
1458 }
1457 } 1459 }
1458 catch (OverflowException) 1460 catch (OverflowException)
1459 { 1461 {
@@ -1669,12 +1671,12 @@ namespace OpenSim.Region.ScriptEngine.Shared
1669 1671
1670 static public explicit operator float(LSLFloat f) 1672 static public explicit operator float(LSLFloat f)
1671 { 1673 {
1672 return (float)f.value; 1674 return (float)f.value;
1673 } 1675 }
1674 1676
1675 static public explicit operator int(LSLFloat f) 1677 static public explicit operator int(LSLFloat f)
1676 { 1678 {
1677 return (int)f.value; 1679 return (int)f.value;
1678 } 1680 }
1679 1681
1680 static public explicit operator uint(LSLFloat f) 1682 static public explicit operator uint(LSLFloat f)