From 71666a894aef15f3ada4c409cd2c3ba84e08e108 Mon Sep 17 00:00:00 2001 From: Charles Krinke Date: Tue, 8 Jul 2008 15:05:23 +0000 Subject: Mantis#1691. Applied Melanie's modification of Phrearch's iiGetCameraPos() patch, but not the original yet. Thank you Phrearch and Melanie. --- .../ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index b89965a..57f9141 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -6379,8 +6379,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public LSL_Types.Vector3 llGetCameraPos() { m_host.AddScriptLPS(1); - NotImplemented("llGetCameraPos"); - return new LSL_Types.Vector3(); + LLUUID invItemID=InventorySelf(); + if (invItemID == LLUUID.Zero) + return new LSL_Types.Vector3(); + if (m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) + return new LSL_Types.Vector3(); + if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_TRACK_CAMERA) == 0) + { + ShoutError("No permissions to track the camera"); + return new LSL_Types.Vector3(); + } + ScenePresence presence = World.GetScenePresence(m_host.OwnerID); + LSL_Types.Vector3 pos = new LSL_Types.Vector3(presence.CameraPosition.x,presence.CameraPosition.y,presence.CameraPosition.z); + return pos; } public LSL_Types.Quaternion llGetCameraRot() -- cgit v1.1