public static void Update(float totalTime) { TimerManager pTimerMan = TimerManager.privGetInstance(); Debug.Assert(pTimerMan != null); pTimerMan.mCurrentTime = totalTime; TimeEvent pTimeEvent = (TimeEvent)pTimerMan.baseGetActive(); TimeEvent pNextEvent = null; // for iterating while (pTimeEvent != null) { //cache pNextEvent = (TimeEvent)pTimeEvent.pNext; if (pTimerMan.mCurrentTime >= pTimeEvent.GetTriggerTime()) { // do it pTimeEvent.Process(); //remove it pTimerMan.baseRemove(pTimeEvent); } // go to next pTimeEvent = pNextEvent; } }
public static void PauseUpdate(float delta) { // Get the instance TimerManager pMan = TimerManager.privGetInstance(); Debug.Assert(pMan != null); // walk the list TimeEvent pEvent = (TimeEvent)pMan.baseGetActive(); while (pEvent != null) { pEvent.triggerTime += delta; // advance the pointer pEvent = (TimeEvent)pEvent.pNext; } }