void Timer::GlobalTick() { map<NetworkID, Timer*>::iterator it; for (it = timers.begin(); it != timers.end();) { Timer* timer = it->second; if (timer->markdelete) { timers.erase(it++); delete timer; continue; } if ((msecs() - timer->ms) > timer->interval) { last_timer = it->first; timer->Call(timer->args); timer->ms = msecs(); } ++it; } }