diff options
author | Justin Clark-Casey (justincc) | 2013-03-14 21:46:29 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-03-14 21:46:29 +0000 |
commit | ad9bd3fe93e3d48b17ca28b3e036fe39991f2203 (patch) | |
tree | e7571ad01e61b20c95258d5d15c2391b0cc19c8c /OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |
parent | Make llGetObjectDetails() return the correct world rotation for a sitting avatar (diff) | |
download | opensim-SC-ad9bd3fe93e3d48b17ca28b3e036fe39991f2203.zip opensim-SC-ad9bd3fe93e3d48b17ca28b3e036fe39991f2203.tar.gz opensim-SC-ad9bd3fe93e3d48b17ca28b3e036fe39991f2203.tar.bz2 opensim-SC-ad9bd3fe93e3d48b17ca28b3e036fe39991f2203.tar.xz |
Fix sensors, llGetRootRotation(), llGet*Param() and other functions to use the world rotation if the avatar to which they are attached is sitting
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 48c6b50..bd83f02 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -2578,18 +2578,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2578 | { | 2578 | { |
2579 | UUID npcId; | 2579 | UUID npcId; |
2580 | if (!UUID.TryParse(npc.m_string, out npcId)) | 2580 | if (!UUID.TryParse(npc.m_string, out npcId)) |
2581 | return new LSL_Rotation(Quaternion.Identity.X, Quaternion.Identity.Y, Quaternion.Identity.Z, Quaternion.Identity.W); | 2581 | return new LSL_Rotation(Quaternion.Identity); |
2582 | 2582 | ||
2583 | if (!npcModule.CheckPermissions(npcId, m_host.OwnerID)) | 2583 | if (!npcModule.CheckPermissions(npcId, m_host.OwnerID)) |
2584 | return new LSL_Rotation(Quaternion.Identity.X, Quaternion.Identity.Y, Quaternion.Identity.Z, Quaternion.Identity.W); | 2584 | return new LSL_Rotation(Quaternion.Identity); |
2585 | 2585 | ||
2586 | ScenePresence sp = World.GetScenePresence(npcId); | 2586 | ScenePresence sp = World.GetScenePresence(npcId); |
2587 | 2587 | ||
2588 | if (sp != null) | 2588 | if (sp != null) |
2589 | { | 2589 | return new LSL_Rotation(sp.GetWorldRotation()); |
2590 | Quaternion rot = sp.Rotation; | ||
2591 | return new LSL_Rotation(rot.X, rot.Y, rot.Z, rot.W); | ||
2592 | } | ||
2593 | } | 2590 | } |
2594 | 2591 | ||
2595 | return new LSL_Rotation(Quaternion.Identity.X, Quaternion.Identity.Y, Quaternion.Identity.Z, Quaternion.Identity.W); | 2592 | return new LSL_Rotation(Quaternion.Identity.X, Quaternion.Identity.Y, Quaternion.Identity.Z, Quaternion.Identity.W); |