/** * Free a chunk */ void cave_free(struct chunk *c) { int y, x; while (c->join) { struct connector *current = c->join; mem_free(current->info); c->join = current->next; mem_free(current); } for (y = 0; y < c->height; y++) { for (x = 0; x < c->width; x++) { mem_free(c->squares[y][x].info); if (c->squares[y][x].trap) square_free_trap(c, y, x); if (c->squares[y][x].obj) object_pile_free(c->squares[y][x].obj); } mem_free(c->squares[y]); mem_free(c->noise.grids[y]); mem_free(c->scent.grids[y]); } mem_free(c->squares); mem_free(c->noise.grids); mem_free(c->scent.grids); mem_free(c->feat_count); mem_free(c->objects); mem_free(c->monsters); if (c->name) string_free(c->name); mem_free(c); }
/** * Free a chunk */ void cave_free(struct chunk *c) { int y, x; for (y = 0; y < c->height; y++) { for (x = 0; x < c->width; x++) { mem_free(c->squares[y][x].info); if (c->squares[y][x].trap) square_free_trap(c, y, x); if (c->squares[y][x].obj) object_pile_free(c->squares[y][x].obj); } mem_free(c->squares[y]); } mem_free(c->squares); mem_free(c->feat_count); mem_free(c->monsters); if (c->name) string_free(c->name); mem_free(c); }