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 {
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++;
}