Esempio n. 1
0
/**
 * 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);
}
Esempio n. 2
0
/**
 * 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);
}