Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // context
- void Room_killEntity(Room self, Entity entity)
- {
- List_delete(self->entities, Room_getEntityIdx(self, entity), ((Entity)entity)->kill);
- }
- // only place it's called
- switch (e->type)
- {
- case SDL_QUIT:
- Room_kill(currentRoom, GAME_KILLED);
- SDL_Quit();
- exit(0);
- break;
- ....
- // actual problem
- void Room_kill(Room self, enum KillType kt)
- {
- for (List cur = self->entities; cur; cur = cur->cdr)
- {
- if (cur && cur->car)
- Room_killEntity(self, (Entity)cur->car);
- }
- Sprite_kill(self->bg);
- // everything else is either autocollected or outlives us, so...
- free(self);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement