OSDN Git Service

[Refactor] #38997 choose_random_trap() に floor_type * 引数を追加. / Add floor_type * argum...
authordeskull <deskull@users.sourceforge.jp>
Thu, 2 Jan 2020 11:07:00 +0000 (20:07 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Thu, 2 Jan 2020 11:07:00 +0000 (20:07 +0900)
src/load.c
src/trap.c
src/trap.h

index d1086e6..345195e 100644 (file)
@@ -2804,7 +2804,7 @@ static errr rd_dungeon_old(floor_type *floor_ptr)
                        {
                                g_ptr->info &= ~CAVE_TRAP;
                                g_ptr->mimic = g_ptr->feat;
-                               g_ptr->feat = choose_random_trap();
+                               g_ptr->feat = choose_random_trap(floor_ptr);
                        }
 
                        /* Another hidden trap */
index e0d756c..817c859 100644 (file)
@@ -144,7 +144,7 @@ void init_normal_traps(void)
 * Actually, it is not this routine, but the "trap instantiation"\n
 * code, which should also check for "trap doors" on quest levels.\n
 */
-FEAT_IDX choose_random_trap(void)
+FEAT_IDX choose_random_trap(floor_type *floor_ptr)
 {
        FEAT_IDX feat;
 
@@ -158,10 +158,10 @@ FEAT_IDX choose_random_trap(void)
                if (!have_flag(f_info[feat].flags, FF_MORE)) break;
 
                /* Hack -- no trap doors on special levels */
-               if (p_ptr->current_floor_ptr->inside_arena || quest_number(p_ptr->current_floor_ptr->dun_level)) continue;
+               if (floor_ptr->inside_arena || quest_number(floor_ptr->dun_level)) continue;
 
                /* Hack -- no trap doors on the deepest level */
-               if (p_ptr->current_floor_ptr->dun_level >= d_info[p_ptr->dungeon_idx].maxdepth) continue;
+               if (floor_ptr->dun_level >= d_info[floor_ptr->dungeon_idx].maxdepth) continue;
 
                break;
        }
@@ -217,7 +217,7 @@ void place_trap(floor_type *floor_ptr, POSITION y, POSITION x)
 
        /* Place an invisible trap */
        g_ptr->mimic = g_ptr->feat;
-       g_ptr->feat = choose_random_trap();
+       g_ptr->feat = choose_random_trap(floor_ptr);
 }
 
 
index d2f8943..5283f46 100644 (file)
@@ -1,6 +1,6 @@
 
 extern void init_normal_traps(void);
-extern FEAT_IDX choose_random_trap(void);
+extern FEAT_IDX choose_random_trap(floor_type *floor_ptr);
 extern void disclose_grid(POSITION y, POSITION x);
 extern void place_trap(floor_type *floor_ptr, POSITION y, POSITION x);
 extern void hit_trap(player_type *trapped_ptr, bool break_trap);