aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-10-09 18:59:01 +0000
committerJustin Clarke Casey2008-10-09 18:59:01 +0000
commit997f1d465d9eccf6854daa0ee476c05aeb5856f3 (patch)
tree1e1febf5c3bf85a8af09f44ce11676ac53f5b039 /OpenSim/Region
parentClean up webmap-generation a bit: (diff)
downloadopensim-SC_OLD-997f1d465d9eccf6854daa0ee476c05aeb5856f3.zip
opensim-SC_OLD-997f1d465d9eccf6854daa0ee476c05aeb5856f3.tar.gz
opensim-SC_OLD-997f1d465d9eccf6854daa0ee476c05aeb5856f3.tar.bz2
opensim-SC_OLD-997f1d465d9eccf6854daa0ee476c05aeb5856f3.tar.xz
* Apply http://opensimulator.org/mantis/view.php?id=2370
* Refactor lLMessageLinked() to use internal method GetLinkParts * thanks ralphos
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs180
1 files changed, 16 insertions, 164 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index a33b5cf..a2c82cf 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3419,179 +3419,31 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3419 return String.Empty; 3419 return String.Empty;
3420 } 3420 }
3421 3421
3422 public void llMessageLinked(int linknum, int num, string msg, string id) 3422 public void llMessageLinked(int linknumber, int num, string msg, string id)
3423 { 3423 {
3424
3425 m_host.AddScriptLPS(1); 3424 m_host.AddScriptLPS(1);
3426 3425
3427 // uint partLocalID; 3426 List<SceneObjectPart> parts = GetLinkParts(linknumber);
3428 UUID partItemID;
3429
3430 switch ((int)linknum)
3431 {
3432
3433 case (int)ScriptBaseClass.LINK_ROOT:
3434
3435 SceneObjectPart part = m_host.ParentGroup.RootPart;
3436
3437 foreach (TaskInventoryItem item in part.TaskInventory.Values)
3438 {
3439 if (item.Type == 10)
3440 {
3441 // partLocalID = part.LocalId;
3442 partItemID = item.ItemID;
3443
3444 object[] resobj = new object[]
3445 {
3446 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3447 };
3448
3449 m_ScriptEngine.PostScriptEvent(partItemID,
3450 new EventParams("link_message",
3451 resobj, new DetectParams[0]));
3452 }
3453 }
3454
3455 break;
3456
3457 case (int)ScriptBaseClass.LINK_SET:
3458
3459 foreach (SceneObjectPart partInst in m_host.ParentGroup.GetParts())
3460 {
3461
3462 foreach (TaskInventoryItem item in partInst.TaskInventory.Values)
3463 {
3464 if (item.Type == 10)
3465 {
3466 // partLocalID = partInst.LocalId;
3467 partItemID = item.ItemID;
3468 Object[] resobj = new object[]
3469 {
3470 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3471 };
3472
3473 m_ScriptEngine.PostScriptEvent(partItemID,
3474 new EventParams("link_message",
3475 resobj, new DetectParams[0]));
3476 }
3477 }
3478 }
3479
3480 break;
3481
3482 case (int)ScriptBaseClass.LINK_ALL_OTHERS:
3483
3484 foreach (SceneObjectPart partInst in m_host.ParentGroup.GetParts())
3485 {
3486
3487 if (partInst.LocalId != m_host.LocalId)
3488 {
3489
3490 foreach (TaskInventoryItem item in partInst.TaskInventory.Values)
3491 {
3492 if (item.Type == 10)
3493 {
3494 // partLocalID = partInst.LocalId;
3495 partItemID = item.ItemID;
3496 Object[] resobj = new object[]
3497 {
3498 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3499 };
3500
3501 m_ScriptEngine.PostScriptEvent(partItemID,
3502 new EventParams("link_message",
3503 resobj, new DetectParams[0]));
3504 }
3505 }
3506
3507 }
3508 }
3509
3510 break;
3511
3512 case (int)ScriptBaseClass.LINK_ALL_CHILDREN:
3513
3514 foreach (SceneObjectPart partInst in m_host.ParentGroup.GetParts())
3515 {
3516
3517 if (partInst.LocalId != m_host.ParentGroup.RootPart.LocalId)
3518 {
3519
3520 foreach (TaskInventoryItem item in partInst.TaskInventory.Values)
3521 {
3522 if (item.Type == 10)
3523 {
3524 // partLocalID = partInst.LocalId;
3525 partItemID = item.ItemID;
3526 Object[] resobj = new object[]
3527 {
3528 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3529 };
3530
3531 m_ScriptEngine.PostScriptEvent(partItemID,
3532 new EventParams("link_message",
3533 resobj, new DetectParams[0]));
3534 }
3535 }
3536
3537 }
3538 }
3539
3540 break;
3541
3542 case (int)ScriptBaseClass.LINK_THIS:
3543
3544 foreach (TaskInventoryItem item in m_host.TaskInventory.Values)
3545 {
3546 if (item.Type == 10)
3547 {
3548 partItemID = item.ItemID;
3549
3550 object[] resobj = new object[]
3551 {
3552 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3553 };
3554
3555 m_ScriptEngine.PostScriptEvent(partItemID,
3556 new EventParams("link_message",
3557 resobj, new DetectParams[0]));
3558 }
3559 }
3560
3561 break;
3562
3563 default:
3564 3427
3565 foreach (SceneObjectPart partInst in m_host.ParentGroup.GetParts()) 3428 UUID partItemID;
3429 foreach (SceneObjectPart part in parts)
3430 foreach (TaskInventoryItem item in part.TaskInventory.Values)
3431 {
3432 if (item.Type == ScriptBaseClass.INVENTORY_SCRIPT)
3566 { 3433 {
3567 3434
3568 if ((partInst.LinkNum) == linknum) 3435 partItemID = item.ItemID;
3569 {
3570 3436
3571 foreach (TaskInventoryItem item in partInst.TaskInventory.Values) 3437 object[] resobj = new object[]
3572 { 3438 {
3573 if (item.Type == 10) 3439 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3574 { 3440 };
3575 // partLocalID = partInst.LocalId;
3576 partItemID = item.ItemID;
3577 Object[] resObjDef = new object[]
3578 {
3579 new LSL_Integer(m_host.LinkNum), new LSL_Integer(num), new LSL_String(msg), new LSL_String(id)
3580 };
3581
3582 m_ScriptEngine.PostScriptEvent(partItemID,
3583 new EventParams("link_message",
3584 resObjDef, new DetectParams[0]));
3585 }
3586 }
3587 3441
3588 } 3442 m_ScriptEngine.PostScriptEvent(partItemID,
3443 new EventParams("link_message",
3444 resobj, new DetectParams[0]));
3589 } 3445 }
3590 3446 }
3591 break;
3592
3593 }
3594
3595 } 3447 }
3596 3448
3597 public void llPushObject(string target, LSL_Vector impulse, LSL_Vector ang_impulse, int local) 3449 public void llPushObject(string target, LSL_Vector impulse, LSL_Vector ang_impulse, int local)