static void dungeon_generate_small_test(void) { struct dungeon *dungeon = dungeon_alloc(); dungeon_generate_small(dungeon); struct box box = dungeon_box_for_level(dungeon, 1); assert(box_equals(box, box_make(point_make(-7, 0, 1), size_make(16, 15, 1)))); struct tile *tile = dungeon_tile_at(dungeon, point_make(0, 0, 1)); assert(tile); assert(tile_type_stairs_up == tile->type); tile = dungeon_tile_at(dungeon, point_make(0, 1, 1)); assert(tile); assert(tile_type_stairs_up == tile->type); tile = dungeon_tile_at(dungeon, point_make(0, 2, 1)); assert(tile); assert(tile_type_empty == tile->type); tile = dungeon_tile_at(dungeon, point_make(-1, -8, 1)); assert(tile); assert(tile_type_filled == tile->type); dungeon_free(dungeon); }
static void generate_sample_dungeon(struct rnd *rnd, FILE *out) { struct dungeon *dungeon = dungeon_alloc(); dungeon_generate_small(dungeon); print_dungeon(dungeon, out); dungeon_free(dungeon); }
static void generate_random_dungeon(struct rnd *rnd, FILE *out) { struct dungeon *dungeon = dungeon_alloc(); dungeon_generate(dungeon, rnd); print_dungeon(dungeon, out); dungeon_free(dungeon); }
static void generator_add_digger_test(void) { struct dungeon *dungeon = dungeon_alloc(); struct dungeon_options *dungeon_options = dungeon_options_alloc_default(); struct generator *generator = generator_alloc(dungeon, global_rnd, dungeon_options, NULL, NULL); assert(0 == generator->diggers_count); struct digger *digger1 = generator_add_digger(generator, point_make(1, 1, 1), direction_north); assert(1 == generator->diggers_count); generator_delete_digger(generator, digger1); assert(0 == generator->diggers_count); digger1 = generator_add_digger(generator, point_make(1, 1, 1), direction_north); assert(1 == generator->diggers_count); struct digger *digger2 = generator_add_digger(generator, point_make(2, 2, 2), direction_north); assert(2 == generator->diggers_count); struct digger *digger3 = generator_add_digger(generator, point_make(3, 3, 3), direction_north); assert(3 == generator->diggers_count); generator_delete_digger(generator, digger2); assert(2 == generator->diggers_count); assert(digger1 == generator->diggers[0]); assert(digger3 == generator->diggers[1]); generator_delete_digger(generator, digger1); assert(1 == generator->diggers_count); assert(digger3 == generator->diggers[0]); generator_free(generator); dungeon_options_free(dungeon_options); dungeon_free(dungeon); }