Esempio n. 1
0
void eol_level_delete_layer(eolLevelLayer * level)
{
  eolBackground *b = NULL;
  GList *s,*e;
  eolSpawn *spawn;
  if (!level)return;
  
  eol_tile_map_free(&level->tileMap);
  
  for (s = level->spawnList; s != NULL; s = s->next)
  {
    if (!s->data)continue;
    spawn = (eolSpawn *)s->data;
    eol_spawn_free(&spawn);
  }
  s = NULL;
  g_list_free(level->spawnList);
  for (s = level->backgrounds; s != NULL; s = s->next)
  {
    if (s->data == NULL)continue;
    b = (eolBackground *)s->data;
    eol_model_free(&b->model);
    free(b);
  }
  s = NULL;
  g_list_free(level->backgrounds);

  for (e = level->entities;e != NULL;e = e->next)
  {
    eol_entity_remove_from_space(e->data);
  }
  g_list_free(level->entities);/*just free our pointers to em, they can delete themselves*/
  if (level->space != NULL)cpSpaceFree(level->space);
}
Esempio n. 2
0
void eol_spawn_delete(eolSpawn **spawn)
{
  if ((!spawn) || (!*spawn))return;
  eol_spawn_free(*spawn);
  free(*spawn);
  *spawn = NULL;
}