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 Remove(TimeEvent pLink) { TimerManager pTimerMan = TimerManager.privGetInstance(); Debug.Assert(pTimerMan != null); Debug.Assert(pLink != null); pTimerMan.baseRemove(pLink); }