diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
3 files changed, 96 insertions, 4 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index da2a90f..5cbb9c7 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3708,7 +3708,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3708 | if (animID == UUID.Zero) | 3708 | if (animID == UUID.Zero) |
3709 | presence.Animator.RemoveAnimation(anim); | 3709 | presence.Animator.RemoveAnimation(anim); |
3710 | else | 3710 | else |
3711 | presence.Animator.RemoveAnimation(animID); | 3711 | presence.Animator.RemoveAnimation(animID, true); |
3712 | } | 3712 | } |
3713 | } | 3713 | } |
3714 | } | 3714 | } |
@@ -6228,13 +6228,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6228 | if (parcelOwned && land.LandData.OwnerID == id || | 6228 | if (parcelOwned && land.LandData.OwnerID == id || |
6229 | parcel && land.LandData.GlobalID == id) | 6229 | parcel && land.LandData.GlobalID == id) |
6230 | { | 6230 | { |
6231 | result.Add(ssp.UUID.ToString()); | 6231 | result.Add(new LSL_Key(ssp.UUID.ToString())); |
6232 | } | 6232 | } |
6233 | } | 6233 | } |
6234 | } | 6234 | } |
6235 | else | 6235 | else |
6236 | { | 6236 | { |
6237 | result.Add(ssp.UUID.ToString()); | 6237 | result.Add(new LSL_Key(ssp.UUID.ToString())); |
6238 | } | 6238 | } |
6239 | } | 6239 | } |
6240 | // Maximum of 100 results | 6240 | // Maximum of 100 results |
@@ -11528,6 +11528,35 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
11528 | case ScriptBaseClass.OBJECT_PHYSICS_COST: | 11528 | case ScriptBaseClass.OBJECT_PHYSICS_COST: |
11529 | ret.Add(new LSL_Float(0)); | 11529 | ret.Add(new LSL_Float(0)); |
11530 | break; | 11530 | break; |
11531 | case ScriptBaseClass.OBJECT_CHARACTER_TIME: // Pathfinding | ||
11532 | ret.Add(new LSL_Float(0)); | ||
11533 | break; | ||
11534 | case ScriptBaseClass.OBJECT_ROOT: | ||
11535 | SceneObjectPart p = av.ParentPart; | ||
11536 | if (p != null) | ||
11537 | { | ||
11538 | ret.Add(new LSL_String(p.ParentGroup.RootPart.UUID.ToString())); | ||
11539 | } | ||
11540 | else | ||
11541 | { | ||
11542 | ret.Add(new LSL_String(id)); | ||
11543 | } | ||
11544 | break; | ||
11545 | case ScriptBaseClass.OBJECT_ATTACHED_POINT: | ||
11546 | ret.Add(new LSL_Integer(0)); | ||
11547 | break; | ||
11548 | case ScriptBaseClass.OBJECT_PATHFINDING_TYPE: // Pathfinding | ||
11549 | ret.Add(new LSL_Integer(ScriptBaseClass.OPT_AVATAR)); | ||
11550 | break; | ||
11551 | case ScriptBaseClass.OBJECT_PHYSICS: | ||
11552 | ret.Add(new LSL_Integer(0)); | ||
11553 | break; | ||
11554 | case ScriptBaseClass.OBJECT_PHANTOM: | ||
11555 | ret.Add(new LSL_Integer(0)); | ||
11556 | break; | ||
11557 | case ScriptBaseClass.OBJECT_TEMP_ON_REZ: | ||
11558 | ret.Add(new LSL_Integer(0)); | ||
11559 | break; | ||
11531 | default: | 11560 | default: |
11532 | // Invalid or unhandled constant. | 11561 | // Invalid or unhandled constant. |
11533 | ret.Add(new LSL_Integer(ScriptBaseClass.OBJECT_UNKNOWN_DETAIL)); | 11562 | ret.Add(new LSL_Integer(ScriptBaseClass.OBJECT_UNKNOWN_DETAIL)); |
@@ -11619,6 +11648,52 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
11619 | // The value returned in SL for normal prims is prim count | 11648 | // The value returned in SL for normal prims is prim count |
11620 | ret.Add(new LSL_Float(obj.PhysicsCost)); | 11649 | ret.Add(new LSL_Float(obj.PhysicsCost)); |
11621 | break; | 11650 | break; |
11651 | case ScriptBaseClass.OBJECT_CHARACTER_TIME: // Pathfinding | ||
11652 | ret.Add(new LSL_Float(0)); | ||
11653 | break; | ||
11654 | case ScriptBaseClass.OBJECT_ROOT: | ||
11655 | ret.Add(new LSL_String(obj.ParentGroup.RootPart.UUID.ToString())); | ||
11656 | break; | ||
11657 | case ScriptBaseClass.OBJECT_ATTACHED_POINT: | ||
11658 | ret.Add(new LSL_Integer(obj.ParentGroup.AttachmentPoint)); | ||
11659 | break; | ||
11660 | case ScriptBaseClass.OBJECT_PATHFINDING_TYPE: | ||
11661 | byte pcode = obj.Shape.PCode; | ||
11662 | if (obj.ParentGroup.AttachmentPoint != 0 | ||
11663 | || pcode == (byte)PCode.Grass | ||
11664 | || pcode == (byte)PCode.Tree | ||
11665 | || pcode == (byte)PCode.NewTree) | ||
11666 | { | ||
11667 | ret.Add(new LSL_Integer(ScriptBaseClass.OPT_OTHER)); | ||
11668 | } | ||
11669 | else | ||
11670 | { | ||
11671 | ret.Add(new LSL_Integer(ScriptBaseClass.OPT_LEGACY_LINKSET)); | ||
11672 | } | ||
11673 | break; | ||
11674 | case ScriptBaseClass.OBJECT_PHYSICS: | ||
11675 | if (obj.ParentGroup.AttachmentPoint != 0) | ||
11676 | { | ||
11677 | ret.Add(new LSL_Integer(0)); // Always false if attached | ||
11678 | } | ||
11679 | else | ||
11680 | { | ||
11681 | ret.Add(new LSL_Integer(obj.ParentGroup.UsesPhysics ? 1 : 0)); | ||
11682 | } | ||
11683 | break; | ||
11684 | case ScriptBaseClass.OBJECT_PHANTOM: | ||
11685 | if (obj.ParentGroup.AttachmentPoint != 0) | ||
11686 | { | ||
11687 | ret.Add(new LSL_Integer(0)); // Always false if attached | ||
11688 | } | ||
11689 | else | ||
11690 | { | ||
11691 | ret.Add(new LSL_Integer(obj.ParentGroup.IsPhantom ? 1 : 0)); | ||
11692 | } | ||
11693 | break; | ||
11694 | case ScriptBaseClass.OBJECT_TEMP_ON_REZ: | ||
11695 | ret.Add(new LSL_Integer(obj.ParentGroup.IsTemporary ? 1 : 0)); | ||
11696 | break; | ||
11622 | default: | 11697 | default: |
11623 | // Invalid or unhandled constant. | 11698 | // Invalid or unhandled constant. |
11624 | ret.Add(new LSL_Integer(ScriptBaseClass.OBJECT_UNKNOWN_DETAIL)); | 11699 | ret.Add(new LSL_Integer(ScriptBaseClass.OBJECT_UNKNOWN_DETAIL)); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 49857cf..d6ce069 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -995,7 +995,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
995 | if (animID == UUID.Zero) | 995 | if (animID == UUID.Zero) |
996 | target.Animator.RemoveAnimation(animation); | 996 | target.Animator.RemoveAnimation(animation); |
997 | else | 997 | else |
998 | target.Animator.RemoveAnimation(animID); | 998 | target.Animator.RemoveAnimation(animID, true); |
999 | } | 999 | } |
1000 | } | 1000 | } |
1001 | } | 1001 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs index 0dd5a57..da3b31f 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs | |||
@@ -557,6 +557,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
557 | public const int OBJECT_SERVER_COST = 14; | 557 | public const int OBJECT_SERVER_COST = 14; |
558 | public const int OBJECT_STREAMING_COST = 15; | 558 | public const int OBJECT_STREAMING_COST = 15; |
559 | public const int OBJECT_PHYSICS_COST = 16; | 559 | public const int OBJECT_PHYSICS_COST = 16; |
560 | public const int OBJECT_CHARACTER_TIME = 17; | ||
561 | public const int OBJECT_ROOT = 18; | ||
562 | public const int OBJECT_ATTACHED_POINT = 19; | ||
563 | public const int OBJECT_PATHFINDING_TYPE = 20; | ||
564 | public const int OBJECT_PHYSICS = 21; | ||
565 | public const int OBJECT_PHANTOM = 22; | ||
566 | public const int OBJECT_TEMP_ON_REZ = 23; | ||
567 | |||
568 | // Pathfinding types | ||
569 | public const int OPT_OTHER = -1; | ||
570 | public const int OPT_LEGACY_LINKSET = 0; | ||
571 | public const int OPT_AVATAR = 1; | ||
572 | public const int OPT_CHARACTER = 2; | ||
573 | public const int OPT_WALKABLE = 3; | ||
574 | public const int OPT_STATIC_OBSTACLE = 4; | ||
575 | public const int OPT_MATERIAL_VOLUME = 5; | ||
576 | public const int OPT_EXCLUSION_VOLUME = 6; | ||
560 | 577 | ||
561 | // for llGetAgentList | 578 | // for llGetAgentList |
562 | public const int AGENT_LIST_PARCEL = 1; | 579 | public const int AGENT_LIST_PARCEL = 1; |