Reset() public method

public Reset ( ) : void
return void
        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);
            }
        }
Ejemplo n.º 3
0
 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;
        }