OSDN Git Service

[Refactor] #38844 change_floor_mode を player_type 構造体に取り込む.
authordeskull <deskull@users.sourceforge.jp>
Wed, 12 Jun 2019 14:44:09 +0000 (23:44 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Wed, 12 Jun 2019 14:44:09 +0000 (23:44 +0900)
src/core.c
src/floor-save.c
src/floor-save.h
src/player-status.c
src/player-status.h

index 73d4c54..b0ae3b3 100644 (file)
@@ -5173,7 +5173,7 @@ static void dungeon(bool load_game)
                 * Maintain Unique monsters and artifact, save current
                 * floor, then prepare next floor
                 */
-               leave_floor(change_floor_mode);
+               leave_floor(p_ptr->change_floor_mode);
 
                /* Forget the flag */
                reinit_wilderness = FALSE;
@@ -5547,7 +5547,7 @@ void play_game(bool new_game)
        /* Generate a dungeon level if needed */
        if (!current_world_ptr->character_dungeon)
        {
-               change_floor(change_floor_mode);
+               change_floor(p_ptr->change_floor_mode);
        }
 
        else
@@ -5559,7 +5559,7 @@ void play_game(bool new_game)
                        if (!p_ptr->y || !p_ptr->x)
                        {
                                msg_print(_("プレイヤーの位置がおかしい。フロアを再生成します。", "What a strange player location.  Regenerate the dungeon floor."));
-                               change_floor(change_floor_mode);
+                               change_floor(p_ptr->change_floor_mode);
                        }
 
                        /* Still no player?  -- Try to locate random place */
@@ -5693,7 +5693,7 @@ void play_game(bool new_game)
                                prepare_change_floor_mode(CFM_SAVE_FLOORS | CFM_RAND_CONNECT);
 
                                /* prepare next floor */
-                               leave_floor(change_floor_mode);
+                               leave_floor(p_ptr->change_floor_mode);
                        }
                        else
                        {
@@ -5709,7 +5709,7 @@ void play_game(bool new_game)
                if (p_ptr->is_dead) break;
 
                /* Make a new level */
-               change_floor(change_floor_mode);
+               change_floor(p_ptr->change_floor_mode);
        }
 
        /* Close stuff */
index 8915670..176f804 100644 (file)
@@ -44,7 +44,6 @@
 
 
 static FLOOR_IDX new_floor_id;  /*!<次のフロアのID / floor_id of the destination */
-BIT_FLAGS change_floor_mode;  /*!<フロア移行処理に関するフラグ / Mode flags for changing floor */
 static u32b latest_visit_mark;  /*!<フロアを渡った回数?(確認中) / Max number of visit_mark */
 
 /*
@@ -139,7 +138,7 @@ void init_saved_floors(bool force)
        new_floor_id = 0;
 
        /* No change floor mode yet */
-       change_floor_mode = 0;
+       p_ptr->change_floor_mode = 0;
 
 #ifdef SET_UID
 # ifdef SECURE
@@ -336,7 +335,7 @@ FLOOR_IDX get_new_floor_id(void)
  */
 void prepare_change_floor_mode(BIT_FLAGS mode)
 {
-       change_floor_mode |= mode;
+       p_ptr->change_floor_mode |= mode;
 }
 
 /*!
index 8ee010d..4347695 100644 (file)
@@ -17,7 +17,6 @@ typedef struct
 } saved_floor_type;
 
 extern u32b saved_floor_file_sign;
-extern BIT_FLAGS change_floor_mode;  /*!<フロア移行処理に関するフラグ / Mode flags for changing floor */
 
 extern void init_saved_floors(bool force);
 extern void change_floor(BIT_FLAGS floor_mode);
index ce04bfe..bd81719 100644 (file)
@@ -5882,7 +5882,7 @@ void cheat_death(player_type *creature_ptr)
                        "                            but revived."));
 
        /* Prepare next floor */
-       leave_floor(change_floor_mode);
+       leave_floor(p_ptr->change_floor_mode);
        wipe_m_list();
 
 }
index 04665a7..9eb7cee 100644 (file)
@@ -426,6 +426,7 @@ struct player_type
        bool is_dead;             /* Player is dead */
        bool now_damaged;
        bool ambush_flag;
+       BIT_FLAGS change_floor_mode;  /*!<フロア移行処理に関するフラグ / Mode flags for changing floor */
 
        bool reset_concent;   /* Concentration reset flag */