OSDN Git Service

[Refacotr] update_new_floor_feature() の再構成
authordis- <dis.rogue@gmail.com>
Wed, 31 Jan 2024 13:50:23 +0000 (22:50 +0900)
committerdis- <dis.rogue@gmail.com>
Wed, 31 Jan 2024 13:50:28 +0000 (22:50 +0900)
実際にこの周辺で行われている処理は保存済フロアの読込、読込不可の場合新規フロアの設置から事後処理である。
処理が明確になるよう関数の切り出し範囲の変更及びリネームを行う。

src/floor/floor-changer.cpp

index dc3e47f..9f31f6d 100644 (file)
@@ -344,13 +344,13 @@ static void set_stairs(PlayerType *player_ptr)
     g_ptr->special = player_ptr->floor_id;
 }
 
-static void update_new_floor_feature(PlayerType *player_ptr, saved_floor_type *sf_ptr, const bool loaded)
+/*!
+ * @brief 保存済フロア読込不可時の新規フロア生成を行う。
+ * @param player_ptr プレイヤーへの参照ポインタ
+ * @params sf_ptr 保存済フロアへの参照ポインタ
+ */
+static void generate_new_floor(PlayerType *player_ptr, saved_floor_type *sf_ptr)
 {
-    if (loaded) {
-        allocate_loaded_floor(player_ptr, sf_ptr);
-        return;
-    }
-
     if (!is_visited_floor(sf_ptr)) {
         generate_floor(player_ptr);
     } else {
@@ -402,7 +402,13 @@ static void update_floor(PlayerType *player_ptr)
     const bool loaded = is_visited_floor(sf_ptr) && load_floor(player_ptr, sf_ptr, 0);
     set_player_grid(player_ptr);
     update_floor_id(player_ptr, sf_ptr);
-    update_new_floor_feature(player_ptr, sf_ptr, loaded);
+
+    if (loaded) {
+        allocate_loaded_floor(player_ptr, sf_ptr);
+    } else {
+        generate_new_floor(player_ptr, sf_ptr);
+    }
+
     cut_off_the_upstair(player_ptr);
     sf_ptr->visit_mark = latest_visit_mark++;
 }