aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2013-03-14 21:46:29 +0000
committerJustin Clark-Casey (justincc)2013-03-14 21:46:29 +0000
commitad9bd3fe93e3d48b17ca28b3e036fe39991f2203 (patch)
treee7571ad01e61b20c95258d5d15c2391b0cc19c8c /OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
parentMake llGetObjectDetails() return the correct world rotation for a sitting avatar (diff)
downloadopensim-SC_OLD-ad9bd3fe93e3d48b17ca28b3e036fe39991f2203.zip
opensim-SC_OLD-ad9bd3fe93e3d48b17ca28b3e036fe39991f2203.tar.gz
opensim-SC_OLD-ad9bd3fe93e3d48b17ca28b3e036fe39991f2203.tar.bz2
opensim-SC_OLD-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.cs9
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);