OSDN Git Service

[Refactor] #38997 place_secret_door(), place_locked_door() に floor_type * 引数を追加....
authordeskull <deskull@users.sourceforge.jp>
Sat, 2 Nov 2019 23:03:06 +0000 (08:03 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Sat, 2 Nov 2019 23:12:10 +0000 (08:12 +0900)
src/floor.c
src/floor.h
src/grid.c
src/rooms-normal.c
src/rooms-pitnest.c
src/rooms-special.c
src/rooms-vault.c
src/rooms.c

index 8e9db99..b8944eb 100644 (file)
@@ -23,7 +23,7 @@ saved_floor_type saved_floors[MAX_SAVED_FLOORS];
 * @param x 配置したいフロアのX座標
 * @return なし
 */
-void place_locked_door(POSITION y, POSITION x)
+void place_locked_door(floor_type *floor_ptr, POSITION y, POSITION x)
 {
        if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_DOORS)
        {
@@ -45,7 +45,7 @@ void place_locked_door(POSITION y, POSITION x)
 * @param type DOOR_DEFAULT / DOOR_DOOR / DOOR_GLASS_DOOR / DOOR_CURTAIN のいずれか
 * @return なし
 */
-void place_secret_door(POSITION y, POSITION x, int type)
+void place_secret_door(floor_type *floor_ptr, POSITION y, POSITION x, int type)
 {
        if (d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_DOORS)
        {
index d5cfb25..81c3db3 100644 (file)
@@ -372,5 +372,5 @@ extern saved_floor_type saved_floors[MAX_SAVED_FLOORS];
 #define GRID_X(G) \
        ((int)((G) % 256U))
 
-extern void place_secret_door(POSITION y, POSITION x, int type);
-extern void place_locked_door(POSITION y, POSITION x);
+extern void place_secret_door(floor_type *floor_ptr, POSITION y, POSITION x, int type);
+extern void place_locked_door(floor_type *floor_ptr, POSITION y, POSITION x);
index 82a3c7a..4b8be00 100644 (file)
@@ -429,7 +429,7 @@ void add_door(POSITION x, POSITION y)
                (is_outer_bold(p_ptr->current_floor_ptr, y, x - 1) && is_outer_bold(p_ptr->current_floor_ptr, y, x + 1)))
        {
                /* secret door */
-               place_secret_door(y, x, DOOR_DEFAULT);
+               place_secret_door(p_ptr->current_floor_ptr, y, x, DOOR_DEFAULT);
 
                /* set boundarys so don't get wide doors */
                place_solid_bold(y, x - 1);
@@ -449,7 +449,7 @@ void add_door(POSITION x, POSITION y)
                is_floor_bold(p_ptr->current_floor_ptr, y, x - 1) && is_floor_bold(p_ptr->current_floor_ptr, y, x + 1))
        {
                /* secret door */
-               place_secret_door(y, x, DOOR_DEFAULT);
+               place_secret_door(p_ptr->current_floor_ptr, y, x, DOOR_DEFAULT);
 
                /* set boundarys so don't get wide doors */
                place_solid_bold(y - 1, x);
index 9d74463..3b5c436 100644 (file)
@@ -487,10 +487,10 @@ bool build_type3(floor_type *floor_ptr)
                /* Place a secret door on the inner room */
                switch (randint0(4))
                {
-               case 0: place_secret_door(y1b, xval, DOOR_DEFAULT); break;
-               case 1: place_secret_door(y2b, xval, DOOR_DEFAULT); break;
-               case 2: place_secret_door(yval, x1a, DOOR_DEFAULT); break;
-               case 3: place_secret_door(yval, x2a, DOOR_DEFAULT); break;
+               case 0: place_secret_door(floor_ptr, y1b, xval, DOOR_DEFAULT); break;
+               case 1: place_secret_door(floor_ptr, y2b, xval, DOOR_DEFAULT); break;
+               case 2: place_secret_door(floor_ptr, yval, x1a, DOOR_DEFAULT); break;
+               case 3: place_secret_door(floor_ptr, yval, x2a, DOOR_DEFAULT); break;
                }
 
                /* Place a treasure in the vault */
@@ -538,10 +538,10 @@ bool build_type3(floor_type *floor_ptr)
                                        one_in_((d_info[p_ptr->dungeon_idx].flags1 & DF1_NO_CAVE) ? 16 : 256)) ? DOOR_CURTAIN :
                                        ((d_info[p_ptr->dungeon_idx].flags1 & DF1_GLASS_DOOR) ? DOOR_GLASS_DOOR : DOOR_DOOR);
 
-                               place_secret_door(yval, x1a - 1, door_type);
-                               place_secret_door(yval, x2a + 1, door_type);
-                               place_secret_door(y1b - 1, xval, door_type);
-                               place_secret_door(y2b + 1, xval, door_type);
+                               place_secret_door(floor_ptr, yval, x1a - 1, door_type);
+                               place_secret_door(floor_ptr, yval, x2a + 1, door_type);
+                               place_secret_door(floor_ptr, y1b - 1, xval, door_type);
+                               place_secret_door(floor_ptr, y2b + 1, xval, door_type);
                        }
                }
 
@@ -666,10 +666,10 @@ bool build_type4(floor_type *floor_ptr)
                        /* Place a secret door */
                        switch (randint1(4))
                        {
-                       case 1: place_secret_door(y1 - 1, xval, DOOR_DEFAULT); break;
-                       case 2: place_secret_door(y2 + 1, xval, DOOR_DEFAULT); break;
-                       case 3: place_secret_door(yval, x1 - 1, DOOR_DEFAULT); break;
-                       case 4: place_secret_door(yval, x2 + 1, DOOR_DEFAULT); break;
+                       case 1: place_secret_door(floor_ptr, y1 - 1, xval, DOOR_DEFAULT); break;
+                       case 2: place_secret_door(floor_ptr, y2 + 1, xval, DOOR_DEFAULT); break;
+                       case 3: place_secret_door(floor_ptr, yval, x1 - 1, DOOR_DEFAULT); break;
+                       case 4: place_secret_door(floor_ptr, yval, x2 + 1, DOOR_DEFAULT); break;
                        }
 
                        /* Place a monster in the room */
@@ -684,10 +684,10 @@ bool build_type4(floor_type *floor_ptr)
                        /* Place a secret door */
                        switch (randint1(4))
                        {
-                       case 1: place_secret_door(y1 - 1, xval, DOOR_DEFAULT); break;
-                       case 2: place_secret_door(y2 + 1, xval, DOOR_DEFAULT); break;
-                       case 3: place_secret_door(yval, x1 - 1, DOOR_DEFAULT); break;
-                       case 4: place_secret_door(yval, x2 + 1, DOOR_DEFAULT); break;
+                       case 1: place_secret_door(floor_ptr, y1 - 1, xval, DOOR_DEFAULT); break;
+                       case 2: place_secret_door(floor_ptr, y2 + 1, xval, DOOR_DEFAULT); break;
+                       case 3: place_secret_door(floor_ptr, yval, x1 - 1, DOOR_DEFAULT); break;
+                       case 4: place_secret_door(floor_ptr, yval, x2 + 1, DOOR_DEFAULT); break;
                        }
 
                        /* Place another inner room */
@@ -704,10 +704,10 @@ bool build_type4(floor_type *floor_ptr)
                        /* Place a locked door on the inner room */
                        switch (randint1(4))
                        {
-                       case 1: place_locked_door(yval - 1, xval); break;
-                       case 2: place_locked_door(yval + 1, xval); break;
-                       case 3: place_locked_door(yval, xval - 1); break;
-                       case 4: place_locked_door(yval, xval + 1); break;
+                       case 1: place_locked_door(floor_ptr, yval - 1, xval); break;
+                       case 2: place_locked_door(floor_ptr, yval + 1, xval); break;
+                       case 3: place_locked_door(floor_ptr, yval, xval - 1); break;
+                       case 4: place_locked_door(floor_ptr, yval, xval + 1); break;
                        }
 
                        /* Monsters to guard the "treasure" */
@@ -737,10 +737,10 @@ bool build_type4(floor_type *floor_ptr)
                        /* Place a secret door */
                        switch (randint1(4))
                        {
-                       case 1: place_secret_door(y1 - 1, xval, DOOR_DEFAULT); break;
-                       case 2: place_secret_door(y2 + 1, xval, DOOR_DEFAULT); break;
-                       case 3: place_secret_door(yval, x1 - 1, DOOR_DEFAULT); break;
-                       case 4: place_secret_door(yval, x2 + 1, DOOR_DEFAULT); break;
+                       case 1: place_secret_door(floor_ptr, y1 - 1, xval, DOOR_DEFAULT); break;
+                       case 2: place_secret_door(floor_ptr, y2 + 1, xval, DOOR_DEFAULT); break;
+                       case 3: place_secret_door(floor_ptr, yval, x1 - 1, DOOR_DEFAULT); break;
+                       case 4: place_secret_door(floor_ptr, yval, x2 + 1, DOOR_DEFAULT); break;
                        }
 
                        /* Large Inner Pillar */
@@ -795,8 +795,8 @@ bool build_type4(floor_type *floor_ptr)
                                place_inner_grid(g_ptr);
 
                                /* Secret doors (random top/bottom) */
-                               place_secret_door(yval - 3 + (randint1(2) * 2), xval - 3, door_type);
-                               place_secret_door(yval - 3 + (randint1(2) * 2), xval + 3, door_type);
+                               place_secret_door(floor_ptr, yval - 3 + (randint1(2) * 2), xval - 3, door_type);
+                               place_secret_door(floor_ptr, yval - 3 + (randint1(2) * 2), xval + 3, door_type);
 
                                /* Monsters */
                                vault_monsters(yval, xval - 2, randint1(2));
@@ -816,10 +816,10 @@ bool build_type4(floor_type *floor_ptr)
                        /* Place a secret door */
                        switch (randint1(4))
                        {
-                       case 1: place_secret_door(y1 - 1, xval, DOOR_DEFAULT); break;
-                       case 2: place_secret_door(y2 + 1, xval, DOOR_DEFAULT); break;
-                       case 3: place_secret_door(yval, x1 - 1, DOOR_DEFAULT); break;
-                       case 4: place_secret_door(yval, x2 + 1, DOOR_DEFAULT); break;
+                       case 1: place_secret_door(floor_ptr, y1 - 1, xval, DOOR_DEFAULT); break;
+                       case 2: place_secret_door(floor_ptr, y2 + 1, xval, DOOR_DEFAULT); break;
+                       case 3: place_secret_door(floor_ptr, yval, x1 - 1, DOOR_DEFAULT); break;
+                       case 4: place_secret_door(floor_ptr, yval, x2 + 1, DOOR_DEFAULT); break;
                        }
 
                        /* Maze (really a checkerboard) */
@@ -872,18 +872,18 @@ bool build_type4(floor_type *floor_ptr)
                        if (randint0(100) < 50)
                        {
                                int i = randint1(10);
-                               place_secret_door(y1 - 1, xval - i, door_type);
-                               place_secret_door(y1 - 1, xval + i, door_type);
-                               place_secret_door(y2 + 1, xval - i, door_type);
-                               place_secret_door(y2 + 1, xval + i, door_type);
+                               place_secret_door(floor_ptr, y1 - 1, xval - i, door_type);
+                               place_secret_door(floor_ptr, y1 - 1, xval + i, door_type);
+                               place_secret_door(floor_ptr, y2 + 1, xval - i, door_type);
+                               place_secret_door(floor_ptr, y2 + 1, xval + i, door_type);
                        }
                        else
                        {
                                int i = randint1(3);
-                               place_secret_door(yval + i, x1 - 1, door_type);
-                               place_secret_door(yval - i, x1 - 1, door_type);
-                               place_secret_door(yval + i, x2 + 1, door_type);
-                               place_secret_door(yval - i, x2 + 1, door_type);
+                               place_secret_door(floor_ptr, yval + i, x1 - 1, door_type);
+                               place_secret_door(floor_ptr, yval - i, x1 - 1, door_type);
+                               place_secret_door(floor_ptr, yval + i, x2 + 1, door_type);
+                               place_secret_door(floor_ptr, yval - i, x2 + 1, door_type);
                        }
 
                        /* Treasure, centered at the center of the cross */
index c4db1f8..3396c44 100644 (file)
@@ -408,10 +408,10 @@ bool build_type5(floor_type *floor_ptr)
        /* Place a secret door */
        switch (randint1(4))
        {
-       case 1: place_secret_door(y1 - 1, xval, DOOR_DEFAULT); break;
-       case 2: place_secret_door(y2 + 1, xval, DOOR_DEFAULT); break;
-       case 3: place_secret_door(yval, x1 - 1, DOOR_DEFAULT); break;
-       case 4: place_secret_door(yval, x2 + 1, DOOR_DEFAULT); break;
+       case 1: place_secret_door(floor_ptr, y1 - 1, xval, DOOR_DEFAULT); break;
+       case 2: place_secret_door(floor_ptr, y2 + 1, xval, DOOR_DEFAULT); break;
+       case 3: place_secret_door(floor_ptr, yval, x1 - 1, DOOR_DEFAULT); break;
+       case 4: place_secret_door(floor_ptr, yval, x2 + 1, DOOR_DEFAULT); break;
        }
 
        msg_format_wizard(CHEAT_DUNGEON, _("モンスター部屋(nest)(%s%s)を生成します。", "Monster nest (%s%s)"), n_ptr->name, pit_subtype_string(cur_nest_type, TRUE));
@@ -614,10 +614,10 @@ bool build_type6(floor_type *floor_ptr)
        /* Place a secret door */
        switch (randint1(4))
        {
-       case 1: place_secret_door(y1 - 1, xval, DOOR_DEFAULT); break;
-       case 2: place_secret_door(y2 + 1, xval, DOOR_DEFAULT); break;
-       case 3: place_secret_door(yval, x1 - 1, DOOR_DEFAULT); break;
-       case 4: place_secret_door(yval, x2 + 1, DOOR_DEFAULT); break;
+       case 1: place_secret_door(floor_ptr, y1 - 1, xval, DOOR_DEFAULT); break;
+       case 2: place_secret_door(floor_ptr, y2 + 1, xval, DOOR_DEFAULT); break;
+       case 3: place_secret_door(floor_ptr, yval, x1 - 1, DOOR_DEFAULT); break;
+       case 4: place_secret_door(floor_ptr, yval, x2 + 1, DOOR_DEFAULT); break;
        }
 
        /* Sort the entries */
index 439b9ab..f4d8a10 100644 (file)
@@ -113,7 +113,7 @@ bool build_type15(floor_type *floor_ptr)
                dir1 = randint0(4);
                y = yval + 2 * ddy_ddd[dir1];
                x = xval + 2 * ddx_ddd[dir1];
-               place_secret_door(y, x, DOOR_GLASS_DOOR);
+               place_secret_door(floor_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;
 
index d71c755..72bdfb9 100644 (file)
@@ -423,18 +423,18 @@ static void build_vault(floor_type *floor_ptr, POSITION yval, POSITION xval, POS
 
                                /* Secret doors */
                        case '+':
-                               place_secret_door(y, x, DOOR_DEFAULT);
+                               place_secret_door(floor_ptr, y, x, DOOR_DEFAULT);
                                break;
 
                                /* Secret glass doors */
                        case '-':
-                               place_secret_door(y, x, DOOR_GLASS_DOOR);
+                               place_secret_door(floor_ptr, y, x, DOOR_GLASS_DOOR);
                                if (is_closed_door(g_ptr->feat)) g_ptr->mimic = feat_glass_wall;
                                break;
 
                                /* Curtains */
                        case '\'':
-                               place_secret_door(y, x, DOOR_CURTAIN);
+                               place_secret_door(floor_ptr, y, x, DOOR_CURTAIN);
                                break;
 
                                /* Trap */
index 6bc74bc..2afccbe 100644 (file)
@@ -181,10 +181,10 @@ void build_small_room(POSITION x0, POSITION y0)
        /* Place a secret door on one side */
        switch (randint0(4))
        {
-               case 0: place_secret_door(y0, x0 - 1, DOOR_DEFAULT); break;
-               case 1: place_secret_door(y0, x0 + 1, DOOR_DEFAULT); break;
-               case 2: place_secret_door(y0 - 1, x0, DOOR_DEFAULT); break;
-               case 3: place_secret_door(y0 + 1, x0, DOOR_DEFAULT); break;
+               case 0: place_secret_door(p_ptr->current_floor_ptr, y0, x0 - 1, DOOR_DEFAULT); break;
+               case 1: place_secret_door(p_ptr->current_floor_ptr, y0, x0 + 1, DOOR_DEFAULT); break;
+               case 2: place_secret_door(p_ptr->current_floor_ptr, y0 - 1, x0, DOOR_DEFAULT); break;
+               case 3: place_secret_door(p_ptr->current_floor_ptr, y0 + 1, x0, DOOR_DEFAULT); break;
        }
 
        /* Clear mimic type */