void SpriteHolder::DrawSprites(){ SpriteList * result = new SpriteList(); for (int i = 0; i <= spritetype_t::UI; i++){ GetSprites((spritetype_t)i, result); for (std::list<Sprite *>::iterator it = result->begin(); it != result->end(); ++it){ Sprite * s = (*it); spritestate_t state = s->GetState(); if (state == spritestate_t::ALIVE){ s->Draw(); } else if (state == spritestate_t::DEAD) { if (s->GetType() != spritetype_t::PLAYER) LatelyDestroyable::Add(s); s->SetState(spritestate_t::WAIT); } } } delete result; }