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); }
void eol_spawn_delete(eolSpawn **spawn) { if ((!spawn) || (!*spawn))return; eol_spawn_free(*spawn); free(*spawn); *spawn = NULL; }