public void Reset() { m_IsTerminated = false; m_IsPaused = false; int ct = m_MessageHandlers.Count; for (int i = ct - 1; i >= 0; --i) { StoryMessageHandler handler = m_MessageHandlers[i]; handler.Reset(); Queue <MessageInfo> queue; if (m_MessageQueues.TryGetValue(handler.MessageId, out queue)) { queue.Clear(); } if (m_ConcurrentMessageQueues.TryGetValue(handler.MessageId, out queue)) { queue.Clear(); } } ct = m_ConcurrentMessageHandlers.Count; for (int i = ct - 1; i >= 0; --i) { StoryMessageHandler handler = m_ConcurrentMessageHandlers[i]; RecycleConcurrentMessageHandler(handler); } m_ConcurrentMessageHandlers.Clear(); m_LocalVariables.Clear(); m_Message2TriggerTimes.Clear(); }
private void RecycleConcurrentMessageHandler(StoryMessageHandler handler) { string msgId = handler.MessageId; Queue <StoryMessageHandler> queue; if (m_ConcurrentMessageHandlerPool.TryGetValue(msgId, out queue)) { handler.Reset(); queue.Enqueue(handler); } }
static public int Reset(IntPtr l) { try { StorySystem.StoryMessageHandler self = (StorySystem.StoryMessageHandler)checkSelf(l); self.Reset(); pushValue(l, true); return(1); } catch (Exception e) { return(error(l, e)); } }
public void Reset(bool logIfTriggered) { m_IsTerminated = false; m_IsPaused = false; int ct = m_MessageHandlers.Count; for (int i = ct - 1; i >= 0; --i) { StoryMessageHandler handler = m_MessageHandlers[i]; handler.Reset(logIfTriggered); } ct = m_ConcurrentMessageHandlers.Count; for (int i = ct - 1; i >= 0; --i) { StoryMessageHandler handler = m_ConcurrentMessageHandlers[i]; RecycleConcurrentMessageHandler(handler, logIfTriggered); } foreach (KeyValuePair <string, Queue <MessageInfo> > pair in m_MessageQueues) { Queue <MessageInfo> queue = pair.Value; if (null != queue) { queue.Clear(); } } foreach (KeyValuePair <string, Queue <MessageInfo> > pair in m_ConcurrentMessageQueues) { Queue <MessageInfo> queue = pair.Value; if (null != queue) { queue.Clear(); } } m_ConcurrentMessageHandlers.Clear(); m_LocalVariables.Clear(); m_Message2TriggerTimes.Clear(); m_MessageCount = 0; m_ConcurrentMessageCount = 0; m_TriggeredHandlerCount = 0; }