/* Build maze */
if (dungeon_ptr->flags1 & DF1_MAZE)
{
- build_maze_vault(floor_ptr->width/2-1, floor_ptr->height/2-1, floor_ptr->width-4, floor_ptr->height-4, FALSE);
+ build_maze_vault(floor_ptr, floor_ptr->width/2-1, floor_ptr->height/2-1, floor_ptr->width-4, floor_ptr->height-4, FALSE);
/* Place 3 or 4 down stairs near some walls */
if (!alloc_stairs(floor_ptr, feat_down_stair, rand_range(2, 3), 3)) return FALSE;
case 1: case 9: build_bubble_vault(floor_ptr, x0, y0, xsize, ysize); break;
case 2: case 10: build_room_vault(floor_ptr, x0, y0, xsize, ysize); break;
case 3: case 11: build_cave_vault(x0, y0, xsize, ysize); break;
- case 4: case 12: build_maze_vault(x0, y0, xsize, ysize, TRUE); break;
+ case 4: case 12: build_maze_vault(floor_ptr, x0, y0, xsize, ysize, TRUE); break;
case 5: case 13: build_mini_c_vault(floor_ptr, x0, y0, xsize, ysize); break;
case 6: case 14: build_castle_vault(floor_ptr, x0, y0, xsize, ysize); break;
case 7: case 15: build_target_vault(floor_ptr, x0, y0, xsize, ysize); break;
}
-void build_maze_vault(POSITION x0, POSITION y0, POSITION xsize, POSITION ysize, bool is_vault)
+void build_maze_vault(floor_type *floor_ptr, POSITION x0, POSITION y0, POSITION xsize, POSITION ysize, bool is_vault)
{
POSITION y, x, dy, dx;
POSITION y1, x1, y2, x2;
msg_print_wizard(CHEAT_DUNGEON, _("迷路ランダムVaultを生成しました。", "Maze Vault."));
/* Choose lite or dark */
- light = ((p_ptr->current_floor_ptr->dun_level <= randint1(25)) && is_vault && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS));
+ light = ((floor_ptr->dun_level <= randint1(25)) && is_vault && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS));
/* Pick a random room size - randomized by calling routine */
dy = ysize / 2 - 1;
{
for (x = x1 - 1; x <= x2 + 1; x++)
{
- g_ptr = &p_ptr->current_floor_ptr->grid_array[y][x];
+ g_ptr = &floor_ptr->grid_array[y][x];
g_ptr->info |= CAVE_ROOM;
if (is_vault) g_ptr->info |= CAVE_ICKY;
if ((x == x1 - 1) || (x == x2 + 1) || (y == y1 - 1) || (y == y2 + 1))
C_MAKE(visited, num_vertices, int);
/* traverse the graph to create a spaning tree, pick a random root */
- r_visit(p_ptr->current_floor_ptr, y1, x1, y2, x2, randint0(num_vertices), 0, visited);
+ r_visit(floor_ptr, y1, x1, y2, x2, randint0(num_vertices), 0, visited);
/* Fill with monsters and treasure, low difficulty */
- if (is_vault) fill_treasure(p_ptr->current_floor_ptr, x1, x2, y1, y2, randint1(5));
+ if (is_vault) fill_treasure(floor_ptr, x1, x2, y1, y2, randint1(5));
C_KILL(visited, num_vertices, int);
}
door_type feat_door[MAX_DOOR_TYPES];
extern bool generate_rooms(floor_type *floor_ptr);
-extern void build_maze_vault(POSITION x0, POSITION y0, POSITION xsize, POSITION ysize, bool is_vault);
+extern void build_maze_vault(floor_type *floor_ptr, POSITION x0, POSITION y0, POSITION xsize, POSITION ysize, bool is_vault);
extern bool find_space(POSITION *y, POSITION *x, POSITION height, POSITION width);
extern void build_small_room(floor_type *floor_ptr, POSITION x0, POSITION y0);
extern void add_outer_wall(POSITION x, POSITION y, int light, POSITION x1, POSITION y1, POSITION x2, POSITION y2);