diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
4 files changed, 99 insertions, 7 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index d47fd6b..507c399 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3364,7 +3364,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3364 | if (animID == UUID.Zero) | 3364 | if (animID == UUID.Zero) |
3365 | presence.Animator.RemoveAnimation(anim); | 3365 | presence.Animator.RemoveAnimation(anim); |
3366 | else | 3366 | else |
3367 | presence.Animator.RemoveAnimation(animID); | 3367 | presence.Animator.RemoveAnimation(animID, true); |
3368 | } | 3368 | } |
3369 | } | 3369 | } |
3370 | } | 3370 | } |
@@ -4923,7 +4923,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4923 | public LSL_Vector llGetCenterOfMass() | 4923 | public LSL_Vector llGetCenterOfMass() |
4924 | { | 4924 | { |
4925 | m_host.AddScriptLPS(1); | 4925 | m_host.AddScriptLPS(1); |
4926 | Vector3 center = m_host.GetGeometricCenter(); | 4926 | Vector3 center = m_host.GetCenterOfMass(); |
4927 | return new LSL_Vector(center.X,center.Y,center.Z); | 4927 | return new LSL_Vector(center.X,center.Y,center.Z); |
4928 | } | 4928 | } |
4929 | 4929 | ||
@@ -5793,13 +5793,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5793 | if (parcelOwned && land.LandData.OwnerID == id || | 5793 | if (parcelOwned && land.LandData.OwnerID == id || |
5794 | parcel && land.LandData.GlobalID == id) | 5794 | parcel && land.LandData.GlobalID == id) |
5795 | { | 5795 | { |
5796 | result.Add(ssp.UUID.ToString()); | 5796 | result.Add(new LSL_Key(ssp.UUID.ToString())); |
5797 | } | 5797 | } |
5798 | } | 5798 | } |
5799 | } | 5799 | } |
5800 | else | 5800 | else |
5801 | { | 5801 | { |
5802 | result.Add(ssp.UUID.ToString()); | 5802 | result.Add(new LSL_Key(ssp.UUID.ToString())); |
5803 | } | 5803 | } |
5804 | } | 5804 | } |
5805 | // Maximum of 100 results | 5805 | // Maximum of 100 results |
@@ -10590,6 +10590,35 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
10590 | case ScriptBaseClass.OBJECT_PHYSICS_COST: | 10590 | case ScriptBaseClass.OBJECT_PHYSICS_COST: |
10591 | ret.Add(new LSL_Float(0)); | 10591 | ret.Add(new LSL_Float(0)); |
10592 | break; | 10592 | break; |
10593 | case ScriptBaseClass.OBJECT_CHARACTER_TIME: // Pathfinding | ||
10594 | ret.Add(new LSL_Float(0)); | ||
10595 | break; | ||
10596 | case ScriptBaseClass.OBJECT_ROOT: | ||
10597 | SceneObjectPart p = av.ParentPart; | ||
10598 | if (p != null) | ||
10599 | { | ||
10600 | ret.Add(new LSL_String(p.ParentGroup.RootPart.UUID.ToString())); | ||
10601 | } | ||
10602 | else | ||
10603 | { | ||
10604 | ret.Add(new LSL_String(id)); | ||
10605 | } | ||
10606 | break; | ||
10607 | case ScriptBaseClass.OBJECT_ATTACHED_POINT: | ||
10608 | ret.Add(new LSL_Integer(0)); | ||
10609 | break; | ||
10610 | case ScriptBaseClass.OBJECT_PATHFINDING_TYPE: // Pathfinding | ||
10611 | ret.Add(new LSL_Integer(ScriptBaseClass.OPT_AVATAR)); | ||
10612 | break; | ||
10613 | case ScriptBaseClass.OBJECT_PHYSICS: | ||
10614 | ret.Add(new LSL_Integer(0)); | ||
10615 | break; | ||
10616 | case ScriptBaseClass.OBJECT_PHANTOM: | ||
10617 | ret.Add(new LSL_Integer(0)); | ||
10618 | break; | ||
10619 | case ScriptBaseClass.OBJECT_TEMP_ON_REZ: | ||
10620 | ret.Add(new LSL_Integer(0)); | ||
10621 | break; | ||
10593 | default: | 10622 | default: |
10594 | // Invalid or unhandled constant. | 10623 | // Invalid or unhandled constant. |
10595 | ret.Add(new LSL_Integer(ScriptBaseClass.OBJECT_UNKNOWN_DETAIL)); | 10624 | ret.Add(new LSL_Integer(ScriptBaseClass.OBJECT_UNKNOWN_DETAIL)); |
@@ -10685,6 +10714,52 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
10685 | // The value returned in SL for normal prims looks like the prim count | 10714 | // The value returned in SL for normal prims looks like the prim count |
10686 | ret.Add(new LSL_Float(0)); | 10715 | ret.Add(new LSL_Float(0)); |
10687 | break; | 10716 | break; |
10717 | case ScriptBaseClass.OBJECT_CHARACTER_TIME: // Pathfinding | ||
10718 | ret.Add(new LSL_Float(0)); | ||
10719 | break; | ||
10720 | case ScriptBaseClass.OBJECT_ROOT: | ||
10721 | ret.Add(new LSL_String(obj.ParentGroup.RootPart.UUID.ToString())); | ||
10722 | break; | ||
10723 | case ScriptBaseClass.OBJECT_ATTACHED_POINT: | ||
10724 | ret.Add(new LSL_Integer(obj.ParentGroup.AttachmentPoint)); | ||
10725 | break; | ||
10726 | case ScriptBaseClass.OBJECT_PATHFINDING_TYPE: | ||
10727 | byte pcode = obj.Shape.PCode; | ||
10728 | if (obj.ParentGroup.AttachmentPoint != 0 | ||
10729 | || pcode == (byte)PCode.Grass | ||
10730 | || pcode == (byte)PCode.Tree | ||
10731 | || pcode == (byte)PCode.NewTree) | ||
10732 | { | ||
10733 | ret.Add(new LSL_Integer(ScriptBaseClass.OPT_OTHER)); | ||
10734 | } | ||
10735 | else | ||
10736 | { | ||
10737 | ret.Add(new LSL_Integer(ScriptBaseClass.OPT_LEGACY_LINKSET)); | ||
10738 | } | ||
10739 | break; | ||
10740 | case ScriptBaseClass.OBJECT_PHYSICS: | ||
10741 | if (obj.ParentGroup.AttachmentPoint != 0) | ||
10742 | { | ||
10743 | ret.Add(new LSL_Integer(0)); // Always false if attached | ||
10744 | } | ||
10745 | else | ||
10746 | { | ||
10747 | ret.Add(new LSL_Integer(obj.ParentGroup.UsesPhysics ? 1 : 0)); | ||
10748 | } | ||
10749 | break; | ||
10750 | case ScriptBaseClass.OBJECT_PHANTOM: | ||
10751 | if (obj.ParentGroup.AttachmentPoint != 0) | ||
10752 | { | ||
10753 | ret.Add(new LSL_Integer(0)); // Always false if attached | ||
10754 | } | ||
10755 | else | ||
10756 | { | ||
10757 | ret.Add(new LSL_Integer(obj.ParentGroup.IsPhantom ? 1 : 0)); | ||
10758 | } | ||
10759 | break; | ||
10760 | case ScriptBaseClass.OBJECT_TEMP_ON_REZ: | ||
10761 | ret.Add(new LSL_Integer(obj.ParentGroup.IsTemporary ? 1 : 0)); | ||
10762 | break; | ||
10688 | default: | 10763 | default: |
10689 | // Invalid or unhandled constant. | 10764 | // Invalid or unhandled constant. |
10690 | ret.Add(new LSL_Integer(ScriptBaseClass.OBJECT_UNKNOWN_DETAIL)); | 10765 | 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 25635ff..5c0ff1c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -986,7 +986,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
986 | if (animID == UUID.Zero) | 986 | if (animID == UUID.Zero) |
987 | target.Animator.RemoveAnimation(animation); | 987 | target.Animator.RemoveAnimation(animation); |
988 | else | 988 | else |
989 | target.Animator.RemoveAnimation(animID); | 989 | target.Animator.RemoveAnimation(animID, true); |
990 | } | 990 | } |
991 | } | 991 | } |
992 | } | 992 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs index 880841b..9bf1a64 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs | |||
@@ -556,6 +556,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
556 | public const int OBJECT_SERVER_COST = 14; | 556 | public const int OBJECT_SERVER_COST = 14; |
557 | public const int OBJECT_STREAMING_COST = 15; | 557 | public const int OBJECT_STREAMING_COST = 15; |
558 | public const int OBJECT_PHYSICS_COST = 16; | 558 | public const int OBJECT_PHYSICS_COST = 16; |
559 | public const int OBJECT_CHARACTER_TIME = 17; | ||
560 | public const int OBJECT_ROOT = 18; | ||
561 | public const int OBJECT_ATTACHED_POINT = 19; | ||
562 | public const int OBJECT_PATHFINDING_TYPE = 20; | ||
563 | public const int OBJECT_PHYSICS = 21; | ||
564 | public const int OBJECT_PHANTOM = 22; | ||
565 | public const int OBJECT_TEMP_ON_REZ = 23; | ||
566 | |||
567 | // Pathfinding types | ||
568 | public const int OPT_OTHER = -1; | ||
569 | public const int OPT_LEGACY_LINKSET = 0; | ||
570 | public const int OPT_AVATAR = 1; | ||
571 | public const int OPT_CHARACTER = 2; | ||
572 | public const int OPT_WALKABLE = 3; | ||
573 | public const int OPT_STATIC_OBSTACLE = 4; | ||
574 | public const int OPT_MATERIAL_VOLUME = 5; | ||
575 | public const int OPT_EXCLUSION_VOLUME = 6; | ||
559 | 576 | ||
560 | // for llGetAgentList | 577 | // for llGetAgentList |
561 | public const int AGENT_LIST_PARCEL = 1; | 578 | public const int AGENT_LIST_PARCEL = 1; |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index a17a018..72646f6 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -1486,7 +1486,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1486 | m_MaxScriptQueue = maxScriptQueue; | 1486 | m_MaxScriptQueue = maxScriptQueue; |
1487 | 1487 | ||
1488 | STPStartInfo startInfo = new STPStartInfo(); | 1488 | STPStartInfo startInfo = new STPStartInfo(); |
1489 | startInfo.IdleTimeout = idleTimeout*1000; // convert to seconds as stated in .ini | 1489 | startInfo.ThreadPoolName = "XEngine"; |
1490 | startInfo.IdleTimeout = idleTimeout * 1000; // convert to seconds as stated in .ini | ||
1490 | startInfo.MaxWorkerThreads = maxThreads; | 1491 | startInfo.MaxWorkerThreads = maxThreads; |
1491 | startInfo.MinWorkerThreads = minThreads; | 1492 | startInfo.MinWorkerThreads = minThreads; |
1492 | startInfo.ThreadPriority = threadPriority;; | 1493 | startInfo.ThreadPriority = threadPriority;; |
@@ -1494,7 +1495,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1494 | startInfo.StartSuspended = true; | 1495 | startInfo.StartSuspended = true; |
1495 | 1496 | ||
1496 | m_ThreadPool = new SmartThreadPool(startInfo); | 1497 | m_ThreadPool = new SmartThreadPool(startInfo); |
1497 | m_ThreadPool.Name = "XEngine"; | ||
1498 | } | 1498 | } |
1499 | 1499 | ||
1500 | // | 1500 | // |