void world_timers(void *world_void) { World *world(static_cast<World *>(world_void)); UTIL_FOREACH(world->characters, character) { std::list<Character_StatBuff *> removebuffs; UTIL_FOREACH(character->statbuffs, buff) { if(buff->time > 1) { --buff->time; } else { character->StatusMsg("Your buff wore off."); removebuffs.push_back(buff); } } UTIL_FOREACH(removebuffs, rbuff) { character->RemoveBuff(rbuff); } } }