public void llTakeControls(int controls, int accept, int pass_on)
{
if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL", m_itemID)) return;
TaskInventoryItem item;
lock (m_host.TaskInventory)
{
if (!m_host.TaskInventory.ContainsKey(InventorySelf()))
return;
item = m_host.TaskInventory[InventorySelf()];
}
if (item.PermsGranter != UUID.Zero)
{
IScenePresence presence = World.GetScenePresence(item.PermsGranter);
if (presence != null)
{
if ((item.PermsMask & ScriptBaseClass.PERMISSION_TAKE_CONTROLS) != 0)
{
IScriptControllerModule m = presence.RequestModuleInterface<IScriptControllerModule>();
if (m != null)
m.RegisterControlEventsToScript(controls, accept, pass_on, m_host, m_itemID);
}
}
}
}