From 7e8544f26ea0442b11b8724438430bf7e5006947 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Thu, 1 Oct 2015 05:20:04 +0100 Subject: [PATCH] fix missing clear of queued timer even and state transition flags on scripts reset --- .../Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 1d15d616f5..674144bc23 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs @@ -1018,11 +1018,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance part.Inventory.GetInventoryItem(ItemID).PermsGranter = UUID.Zero; part.CollisionSound = UUID.Zero; AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID); + + m_TimerQueued = false; + m_StateChangeInProgress = false; EventQueue.Clear(); + m_Script.ResetVars(); StartParam = 0; State = "default"; + part.SetScriptEvents(ItemID, (int)m_Script.GetStateEventFlags(State)); if (running) @@ -1049,6 +1054,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance part.CollisionSound = UUID.Zero; AsyncCommandManager.RemoveScript(Engine, LocalID, ItemID); + m_TimerQueued = false; + m_StateChangeInProgress = false; EventQueue.Clear(); m_Script.ResetVars(); string oldState = State;