Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.64 KB | None | 0 0
  1. // context
  2. void Room_killEntity(Room self, Entity entity)
  3. {
  4.     List_delete(self->entities, Room_getEntityIdx(self, entity), ((Entity)entity)->kill);
  5. }
  6.  
  7. // only place it's called
  8.     switch (e->type)
  9.         {
  10.         case SDL_QUIT:
  11.         Room_kill(currentRoom, GAME_KILLED);
  12.         SDL_Quit();
  13.         exit(0);
  14.         break;
  15.             ....
  16. // actual problem
  17.  
  18. void Room_kill(Room self, enum KillType kt)
  19. {
  20.     for (List cur = self->entities; cur; cur = cur->cdr)
  21.     {
  22.     if (cur && cur->car)
  23.         Room_killEntity(self, (Entity)cur->car);
  24.     }
  25.     Sprite_kill(self->bg);
  26.     // everything else is either autocollected or outlives us, so...
  27.     free(self);
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement