diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 23 |
1 files changed, 19 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 1fb4c1b..ef8f0ed 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -13508,7 +13508,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
13508 | } | 13508 | } |
13509 | 13509 | ||
13510 | if (m_item.PermsGranter == UUID.Zero) | 13510 | if (m_item.PermsGranter == UUID.Zero) |
13511 | { | ||
13512 | llShout(ScriptBaseClass.DEBUG_CHANNEL, "No permission to override animations"); | ||
13511 | return; | 13513 | return; |
13514 | } | ||
13512 | 13515 | ||
13513 | if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_OVERRIDE_ANIMATIONS) == 0) | 13516 | if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_OVERRIDE_ANIMATIONS) == 0) |
13514 | { | 13517 | { |
@@ -13521,11 +13524,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
13521 | if (presence == null) | 13524 | if (presence == null) |
13522 | return; | 13525 | return; |
13523 | 13526 | ||
13524 | UUID animID = ScriptUtils.GetAssetIdFromItemName(m_host, anim, (int)AssetType.Animation); | 13527 | UUID animID; |
13525 | if (animID == UUID.Zero) | 13528 | if (animState == anim) |
13526 | { | 13529 | { |
13527 | llShout(ScriptBaseClass.DEBUG_CHANNEL, "Animation not found"); | 13530 | animID = UUID.Zero; |
13528 | return; | 13531 | } |
13532 | else if (MovementAnimationsForLSL.ContainsKey(anim)) | ||
13533 | { | ||
13534 | animID = DefaultAvatarAnimations.AnimsUUID[MovementAnimationsForLSL[anim]]; | ||
13535 | } | ||
13536 | else | ||
13537 | { | ||
13538 | animID = ScriptUtils.GetAssetIdFromItemName(m_host, anim, (int)AssetType.Animation); | ||
13539 | if (animID == UUID.Zero) | ||
13540 | { | ||
13541 | llShout(ScriptBaseClass.DEBUG_CHANNEL, "Animation not found"); | ||
13542 | return; | ||
13543 | } | ||
13529 | } | 13544 | } |
13530 | 13545 | ||
13531 | presence.SetAnimationOverride(state, animID); | 13546 | presence.SetAnimationOverride(state, animID); |