OSDN Git Service

[Refactor] #38997 is_known_trap() とis_hidden_door()にplayer_type * 引数を追加 / Added playe...
[hengband/hengband.git] / src / rooms-special.c
index f052ede..ede0618 100644 (file)
@@ -31,7 +31,7 @@ bool build_type15(player_type *player_ptr)
 
        /* Find and reserve some space in the dungeon.  Get center of room. */
        floor_type *floor_ptr = player_ptr->current_floor_ptr;
-       if (!find_space(floor_ptr, &yval, &xval, ysize + 2, xsize + 2)) return FALSE;
+       if (!find_space(player_ptr, &yval, &xval, ysize + 2, xsize + 2)) return FALSE;
 
        /* Choose lite or dark */
        light = ((floor_ptr->dun_level <= randint1(25)) && !(d_info[floor_ptr->dungeon_idx].flags1 & DF1_DARKNESS));
@@ -48,7 +48,7 @@ bool build_type15(player_type *player_ptr)
                for (x = x1 - 1; x <= x2 + 1; x++)
                {
                        g_ptr = &floor_ptr->grid_array[y][x];
-                       place_floor_grid(g_ptr);
+                       place_grid(player_ptr, g_ptr, floor);
                        g_ptr->feat = feat_glass_floor;
                        g_ptr->info |= (CAVE_ROOM);
                        if (light) g_ptr->info |= (CAVE_GLOW);
@@ -59,19 +59,20 @@ bool build_type15(player_type *player_ptr)
        for (y = y1 - 1; y <= y2 + 1; y++)
        {
                g_ptr = &floor_ptr->grid_array[y][x1 - 1];
-               place_outer_grid(g_ptr);
+               place_grid(player_ptr, g_ptr, outer);
                g_ptr->feat = feat_glass_wall;
                g_ptr = &floor_ptr->grid_array[y][x2 + 1];
-               place_outer_grid(g_ptr);
+               place_grid(player_ptr, g_ptr, outer);
                g_ptr->feat = feat_glass_wall;
        }
+
        for (x = x1 - 1; x <= x2 + 1; x++)
        {
                g_ptr = &floor_ptr->grid_array[y1 - 1][x];
-               place_outer_grid(g_ptr);
+               place_grid(player_ptr, g_ptr, outer);
                g_ptr->feat = feat_glass_wall;
                g_ptr = &floor_ptr->grid_array[y2 + 1][x];
-               place_outer_grid(g_ptr);
+               place_grid(player_ptr, g_ptr, outer);
                g_ptr->feat = feat_glass_wall;
        }
 
@@ -80,22 +81,22 @@ bool build_type15(player_type *player_ptr)
        case 1: /* 4 lite breathers + potion */
        {
                DIRECTION dir1, dir2;
-               get_mon_num_prep(vault_aux_lite, NULL);
+               get_mon_num_prep(player_ptr, vault_aux_lite, NULL);
 
                /* Place fixed lite berathers */
                for (dir1 = 4; dir1 < 8; dir1++)
                {
-                       MONRACE_IDX r_idx = get_mon_num(floor_ptr->dun_level);
+                       MONRACE_IDX r_idx = get_mon_num(player_ptr, floor_ptr->dun_level);
 
                        y = yval + 2 * ddy_ddd[dir1];
                        x = xval + 2 * ddx_ddd[dir1];
-                       if (r_idx) place_monster_aux(0, y, x, r_idx, PM_ALLOW_SLEEP);
+                       if (r_idx) place_monster_aux(player_ptr, 0, y, x, r_idx, PM_ALLOW_SLEEP);
 
                        /* Walls around the breather */
                        for (dir2 = 0; dir2 < 8; dir2++)
                        {
                                g_ptr = &floor_ptr->grid_array[y + ddy_ddd[dir2]][x + ddx_ddd[dir2]];
-                               place_inner_grid(g_ptr);
+                               place_grid(player_ptr, g_ptr, inner);
                                g_ptr->feat = feat_glass_wall;
                        }
                }
@@ -106,7 +107,7 @@ bool build_type15(player_type *player_ptr)
                        y = yval + 2 * ddy_ddd[dir1];
                        x = xval + 2 * ddx_ddd[dir1];
                        g_ptr = &floor_ptr->grid_array[y][x];
-                       place_inner_perm_grid(g_ptr);
+                       place_grid(player_ptr, g_ptr, inner_perm);
                        g_ptr->feat = feat_permanent_glass_wall;
                        floor_ptr->grid_array[yval + ddy_ddd[dir1]][xval + ddx_ddd[dir1]].info |= (CAVE_ICKY);
                }
@@ -115,9 +116,9 @@ bool build_type15(player_type *player_ptr)
                dir1 = randint0(4);
                y = yval + 2 * ddy_ddd[dir1];
                x = xval + 2 * ddx_ddd[dir1];
-               place_secret_door(floor_ptr, y, x, DOOR_GLASS_DOOR);
+               place_secret_door(player_ptr, y, x, DOOR_GLASS_DOOR);
                g_ptr = &floor_ptr->grid_array[y][x];
-               if (is_closed_door(g_ptr->feat)) g_ptr->mimic = feat_glass_wall;
+               if (is_closed_door(player_ptr, g_ptr->feat)) g_ptr->mimic = feat_glass_wall;
 
                /* Place a potion */
                get_obj_num_hook = kind_is_potion;
@@ -133,43 +134,44 @@ bool build_type15(player_type *player_ptr)
 
                /* Pillars */
                g_ptr = &floor_ptr->grid_array[y1 + 1][x1 + 1];
-               place_inner_grid(g_ptr);
+               place_grid(player_ptr, g_ptr, inner);
                g_ptr->feat = feat_glass_wall;
 
                g_ptr = &floor_ptr->grid_array[y1 + 1][x2 - 1];
-               place_inner_grid(g_ptr);
+               place_grid(player_ptr, g_ptr, inner);
                g_ptr->feat = feat_glass_wall;
 
                g_ptr = &floor_ptr->grid_array[y2 - 1][x1 + 1];
-               place_inner_grid(g_ptr);
+               place_grid(player_ptr, g_ptr, inner);
                g_ptr->feat = feat_glass_wall;
 
                g_ptr = &floor_ptr->grid_array[y2 - 1][x2 - 1];
-               place_inner_grid(g_ptr);
+               place_grid(player_ptr, g_ptr, inner);
                g_ptr->feat = feat_glass_wall;
-               get_mon_num_prep(vault_aux_lite, NULL);
+               get_mon_num_prep(player_ptr, vault_aux_lite, NULL);
 
-               r_idx = get_mon_num(floor_ptr->dun_level);
-               if (r_idx) place_monster_aux(0, yval, xval, r_idx, 0L);
+               r_idx = get_mon_num(player_ptr, floor_ptr->dun_level);
+               if (r_idx) place_monster_aux(player_ptr, 0, yval, xval, r_idx, 0L);
 
                /* Walls around the breather */
                for (dir1 = 0; dir1 < 8; dir1++)
                {
                        g_ptr = &floor_ptr->grid_array[yval + ddy_ddd[dir1]][xval + ddx_ddd[dir1]];
-                       place_inner_grid(g_ptr);
+                       place_grid(player_ptr, g_ptr, inner);
                        g_ptr->feat = feat_glass_wall;
                }
 
                /* Curtains around the breather */
                for (y = yval - 1; y <= yval + 1; y++)
                {
-                       place_closed_door(floor_ptr, y, xval - 2, DOOR_CURTAIN);
-                       place_closed_door(floor_ptr, y, xval + 2, DOOR_CURTAIN);
+                       place_secret_door(player_ptr, y, xval - 2, DOOR_CURTAIN);
+                       place_secret_door(player_ptr, y, xval + 2, DOOR_CURTAIN);
                }
+
                for (x = xval - 1; x <= xval + 1; x++)
                {
-                       place_closed_door(floor_ptr, yval - 2, x, DOOR_CURTAIN);
-                       place_closed_door(floor_ptr, yval + 2, x, DOOR_CURTAIN);
+                       place_secret_door(player_ptr, yval - 2, x, DOOR_CURTAIN);
+                       place_secret_door(player_ptr, yval + 2, x, DOOR_CURTAIN);
                }
 
                /* Place an object */
@@ -186,37 +188,40 @@ bool build_type15(player_type *player_ptr)
                for (y = yval - 2; y <= yval + 2; y++)
                {
                        g_ptr = &floor_ptr->grid_array[y][xval - 3];
-                       place_inner_grid(g_ptr);
+                       place_grid(player_ptr, g_ptr, inner);
                        g_ptr->feat = feat_glass_wall;
                        g_ptr = &floor_ptr->grid_array[y][xval + 3];
-                       place_inner_grid(g_ptr);
+                       place_grid(player_ptr, g_ptr, inner);
                        g_ptr->feat = feat_glass_wall;
                }
+
                for (x = xval - 2; x <= xval + 2; x++)
                {
                        g_ptr = &floor_ptr->grid_array[yval - 3][x];
-                       place_inner_grid(g_ptr);
+                       place_grid(player_ptr, g_ptr, inner);
                        g_ptr->feat = feat_glass_wall;
                        g_ptr = &floor_ptr->grid_array[yval + 3][x];
-                       place_inner_grid(g_ptr);
+                       place_grid(player_ptr, g_ptr, inner);
                        g_ptr->feat = feat_glass_wall;
                }
+
                for (dir1 = 4; dir1 < 8; dir1++)
                {
                        g_ptr = &floor_ptr->grid_array[yval + 2 * ddy_ddd[dir1]][xval + 2 * ddx_ddd[dir1]];
-                       place_inner_grid(g_ptr);
+                       place_grid(player_ptr, g_ptr, inner);
                        g_ptr->feat = feat_glass_wall;
                }
-               get_mon_num_prep(vault_aux_shards, NULL);
+
+               get_mon_num_prep(player_ptr, vault_aux_shards, NULL);
 
                /* Place shard berathers */
                for (dir1 = 4; dir1 < 8; dir1++)
                {
-                       MONRACE_IDX r_idx = get_mon_num(floor_ptr->dun_level);
+                       MONRACE_IDX r_idx = get_mon_num(player_ptr, floor_ptr->dun_level);
 
                        y = yval + ddy_ddd[dir1];
                        x = xval + ddx_ddd[dir1];
-                       if (r_idx) place_monster_aux(0, y, x, r_idx, 0L);
+                       if (r_idx) place_monster_aux(player_ptr, 0, y, x, r_idx, 0L);
                }
 
                /* Place two potions */