void updateTimeouts() { time_t now = World::instance()->time(); bool next = true; while (next && timeouts.size()) { Timeout* t = timeouts.front(); if (!t->isActive()) { timeouts.pop_front(); delete t; } else if (t->ready(now)) { t->execute(); timeouts.pop_front(); delete t; } else { next = false; } } }