From 1034c1cdc1a75b6e37a266e15048b9f9ab965b04 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Mon, 8 Sep 2008 22:19:06 +0000 Subject: Correct state handling and state event masks. Prims will now show touch, pay, etc script states correctly. --- .../Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs') diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 30002e8..24813b0 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs @@ -255,6 +255,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance m_Engine.Log.DebugFormat("[Script] Successfully retrieved state for script {0}.{1}", m_PrimName, m_ScriptName); + part.SetScriptEvents(m_ItemID, + (int)m_Script.GetStateEventFlags(State)); + if (m_RunEvents && (!m_ShuttingDown)) { m_RunEvents = false; @@ -612,6 +615,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance m_EventQueue.Clear(); m_Script.ResetVars(); m_State = "default"; + + part.SetScriptEvents(m_ItemID, + (int)m_Script.GetStateEventFlags(State)); if (running) Start(); m_SaveState = true; @@ -631,6 +637,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance part.GetInventoryItem(m_ItemID).PermsGranter = UUID.Zero; AsyncCommandManager async = (AsyncCommandManager)m_Engine.AsyncCommands; async.RemoveScript(m_LocalID, m_ItemID); + + m_EventQueue.Clear(); + m_Script.ResetVars(); + m_State = "default"; + + part.SetScriptEvents(m_ItemID, + (int)m_Script.GetStateEventFlags(State)); + if (m_CurrentEvent != "state_entry") { m_SaveState = true; -- cgit v1.1