OSDN Git Service

[Refactor] #3783 PlayerType::start_race とAngbandWorld::game_turn_limit をInnerGameData...
authorHourier <66951241+Hourier@users.noreply.github.com>
Sat, 1 Jun 2024 12:54:24 +0000 (21:54 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sun, 2 Jun 2024 11:24:04 +0000 (20:24 +0900)
22 files changed:
src/birth/birth-stat.cpp
src/birth/game-play-initializer.cpp
src/cmd-building/cmd-inn.cpp
src/cmd-io/cmd-dump.cpp
src/core/scores.cpp
src/core/turn-compensator.cpp
src/core/turn-compensator.h
src/io-dump/character-dump.cpp
src/io/report.cpp
src/io/write-diary.cpp
src/load/load-zangband.cpp
src/load/player-info-loader.cpp
src/load/world-loader.cpp
src/main/scene-table-monster.cpp
src/player-info/race-types.h
src/save/player-writer.cpp
src/system/inner-game-data.cpp
src/system/inner-game-data.h
src/system/player-type-definition.h
src/view/display-player-middle.cpp
src/world/world-turn-processor.cpp
src/world/world.h

index 303c892..5cd5b74 100644 (file)
@@ -10,6 +10,7 @@
 #include "player/player-skill.h"
 #include "spell/spells-status.h"
 #include "sv-definition/sv-weapon-types.h"
+#include "system/inner-game-data.h"
 #include "system/player-type-definition.h"
 #include "system/redrawing-flags-updater.h"
 #include <array>
@@ -119,7 +120,7 @@ void get_extra(PlayerType *player_ptr, bool roll_hitdie)
     player_ptr->expfact = get_expfact(player_ptr);
 
     /* Reset record of race/realm changes */
-    player_ptr->start_race = player_ptr->prace;
+    InnerGameData::get_instance().set_start_race(player_ptr->prace);
     player_ptr->old_race1 = 0L;
     player_ptr->old_race2 = 0L;
     player_ptr->old_realm = 0;
index e0e6506..53e0f2f 100644 (file)
@@ -17,6 +17,7 @@
 #include "system/baseitem-info.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/item-entity.h"
 #include "system/monster-race-info.h"
 #include "system/player-type-definition.h"
@@ -189,12 +190,11 @@ void init_turn(PlayerType *player_ptr)
 {
     if (PlayerRace(player_ptr).life() == PlayerRaceLifeType::UNDEAD) {
         w_ptr->game_turn = (TURNS_PER_TICK * 3 * TOWN_DAWN) / 4 + 1;
-        w_ptr->game_turn_limit = TURNS_PER_TICK * TOWN_DAWN * MAX_DAYS + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
     } else {
         w_ptr->game_turn = 1;
-        w_ptr->game_turn_limit = TURNS_PER_TICK * TOWN_DAWN * (MAX_DAYS - 1) + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
     }
 
+    InnerGameData::get_instance().init_turn_limit();
     w_ptr->dungeon_turn = 1;
     w_ptr->dungeon_turn_limit = TURNS_PER_TICK * TOWN_DAWN * (MAX_DAYS - 1) + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
 }
index dd7eab2..94de6db 100644 (file)
@@ -14,6 +14,7 @@
 #include "player/eldritch-horror.h"
 #include "status/bad-status-setter.h"
 #include "store/rumor.h"
+#include "system/inner-game-data.h"
 #include "system/player-type-definition.h"
 #include "timed-effect/timed-effects.h"
 #include "view/display-messages.h"
@@ -189,7 +190,7 @@ static bool stay_inn(PlayerType *player_ptr)
         return false;
     }
 
-    const auto &[prev_day, prev_hour, prev_min] = w_ptr->extract_date_time(player_ptr->start_race);
+    const auto &[prev_day, prev_hour, prev_min] = w_ptr->extract_date_time(InnerGameData::get_instance().get_start_race());
     write_diary_stay_inn(player_ptr, prev_hour);
 
     pass_game_turn_by_stay();
index fd59f7a..ed9efb5 100644 (file)
@@ -29,6 +29,7 @@
 #include "system/angband-version.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/player-type-definition.h"
 #include "term/gameterm.h"
 #include "term/screen-processor.h"
@@ -271,7 +272,7 @@ void do_cmd_feeling(PlayerType *player_ptr)
  */
 void do_cmd_time(PlayerType *player_ptr)
 {
-    const auto &[day, hour, min] = w_ptr->extract_date_time(player_ptr->start_race);
+    const auto &[day, hour, min] = w_ptr->extract_date_time(InnerGameData::get_instance().get_start_race());
     std::string day_buf = (day < MAX_DAYS) ? std::to_string(day) : "*****";
     constexpr auto mes = _("%s日目, 時刻は%d:%02d %sです。", "This is day %s. The time is %d:%02d %s.");
     msg_format(mes, day_buf.data(), (hour % 12 == 0) ? 12 : (hour % 12), min, (hour < 12) ? "AM" : "PM");
index 21e2e98..9254eb6 100644 (file)
@@ -29,6 +29,7 @@
 #include "player/player-status.h"
 #include "player/race-info-table.h"
 #include "system/angband-version.h"
+#include "system/inner-game-data.h"
 #include "system/player-type-definition.h"
 #include "term/screen-processor.h"
 #include "term/term-color-types.h"
@@ -194,7 +195,8 @@ errr top_twenty(PlayerType *player_ptr)
     snprintf(the_score.gold, sizeof(the_score.gold), "%9lu", (long)player_ptr->au);
     the_score.gold[9] = '\0';
 
-    snprintf(the_score.turns, sizeof(the_score.turns), "%9lu", (long)turn_real(player_ptr, w_ptr->game_turn));
+    const auto &igd = InnerGameData::get_instance();
+    snprintf(the_score.turns, sizeof(the_score.turns), "%9d", igd.get_real_turns(w_ptr->game_turn));
     the_score.turns[9] = '\0';
 
     auto ct = time((time_t *)0);
@@ -252,10 +254,11 @@ errr predict_score(PlayerType *player_ptr)
         return 0;
     }
 
+    const auto &igd = InnerGameData::get_instance();
     snprintf(the_score.what, sizeof(the_score.what), "%u.%u.%u", H_VER_MAJOR, H_VER_MINOR, H_VER_PATCH);
     snprintf(the_score.pts, sizeof(the_score.pts), "%9ld", (long)calc_score(player_ptr));
     snprintf(the_score.gold, sizeof(the_score.gold), "%9lu", (long)player_ptr->au);
-    snprintf(the_score.turns, sizeof(the_score.turns), "%9lu", (long)turn_real(player_ptr, w_ptr->game_turn));
+    snprintf(the_score.turns, sizeof(the_score.turns), "%9d", igd.get_real_turns(w_ptr->game_turn));
     angband_strcpy(the_score.day, _("今日", "TODAY"), sizeof(the_score.day));
     the_score.copy_info(*player_ptr);
     strcpy(the_score.how, _("yet", "nobody (yet!)"));
index bb65ec6..2788d59 100644 (file)
@@ -5,30 +5,12 @@
 #include "store/store-util.h"
 #include "store/store.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/item-entity.h"
 #include "system/player-type-definition.h"
 #include "world/world.h"
 
 /*!
- * @brief ゲームターンからの実時間換算を行うための補正をかける
- * @param hoge ゲームターン
- * @details アンデッド種族は18:00からゲームを開始するので、この修正を予め行う。
- * @return 修正をかけた後のゲームターン
- */
-int32_t turn_real(PlayerType *player_ptr, int32_t hoge)
-{
-    switch (player_ptr->start_race) {
-    case PlayerRaceType::VAMPIRE:
-    case PlayerRaceType::SKELETON:
-    case PlayerRaceType::ZOMBIE:
-    case PlayerRaceType::SPECTRE:
-        return hoge - (TURNS_PER_TICK * TOWN_DAWN * 3 / 4);
-    default:
-        return hoge;
-    }
-}
-
-/*!
  * @brief ターンのオーバーフローに対する対処
  * @param player_ptr プレイヤーへの参照ポインタ
  * @details ターン及びターンを記録する変数をターンの限界の1日前まで巻き戻す.
@@ -36,11 +18,13 @@ int32_t turn_real(PlayerType *player_ptr, int32_t hoge)
  */
 void prevent_turn_overflow(PlayerType *player_ptr)
 {
-    if (w_ptr->game_turn < w_ptr->game_turn_limit) {
+    const auto &igd = InnerGameData::get_instance();
+    const auto game_turn_limit = igd.get_game_turn_limit();
+    if (w_ptr->game_turn < game_turn_limit) {
         return;
     }
 
-    int rollback_days = 1 + (w_ptr->game_turn - w_ptr->game_turn_limit) / (TURNS_PER_TICK * TOWN_DAWN);
+    int rollback_days = 1 + (w_ptr->game_turn - game_turn_limit) / (TURNS_PER_TICK * TOWN_DAWN);
     int32_t rollback_turns = TURNS_PER_TICK * TOWN_DAWN * rollback_days;
 
     if (w_ptr->game_turn > rollback_turns) {
index e6045ee..dd8399f 100644 (file)
@@ -3,5 +3,4 @@
 #include "system/angband.h"
 
 class PlayerType;
-int32_t turn_real(PlayerType *player_ptr, int32_t hoge);
 void prevent_turn_overflow(PlayerType *player_ptr);
index 8a04a76..4a4f50f 100644 (file)
@@ -34,6 +34,7 @@
 #include "system/building-type-definition.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/item-entity.h"
 #include "system/monster-entity.h"
 #include "system/monster-race-info.h"
@@ -401,9 +402,10 @@ static void dump_aux_race_history(PlayerType *player_ptr, FILE *fff)
         return;
     }
 
-    fprintf(fff, _("\n\n あなたは%sとして生まれた。", "\n\n You were born as %s."), race_info[enum2i(player_ptr->start_race)].title);
+    const auto start_race = InnerGameData::get_instance().get_start_race();
+    fprintf(fff, _("\n\n あなたは%sとして生まれた。", "\n\n You were born as %s."), race_info[enum2i(start_race)].title);
     for (int i = 0; i < MAX_RACES; i++) {
-        if (enum2i(player_ptr->start_race) == i) {
+        if (enum2i(start_race) == i) {
             continue;
         }
         if (i < 32) {
index 3c3f91c..557ab34 100644 (file)
@@ -24,6 +24,7 @@
 #include "system/angband-version.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/player-type-definition.h"
 #include "system/redrawing-flags-updater.h"
 #include "system/system-variables.h"
@@ -278,8 +279,9 @@ bool report_score(PlayerType *player_ptr)
              << format("depth: %d\n", player_ptr->current_floor_ptr->dun_level)
              << format("maxlv: %d\n", player_ptr->max_plv)
              << format("maxdp: %d\n", max_dlv[DUNGEON_ANGBAND])
-             << format("au: %d\n", player_ptr->au)
-             << format("turns: %d\n", turn_real(player_ptr, w_ptr->game_turn))
+             << format("au: %d\n", player_ptr->au);
+    const auto &igd = InnerGameData::get_instance();
+    score_ss << format("turns: %d\n", igd.get_real_turns(w_ptr->game_turn))
              << format("sex: %d\n", player_ptr->psex)
              << format("race: %s\n", rp_ptr->title)
              << format("class: %s\n", cp_ptr->title)
index 4eb66c2..532405b 100644 (file)
@@ -13,6 +13,7 @@
 #include "player/player-status.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/monster-race-info.h"
 #include "system/player-type-definition.h"
 #include "term/z-form.h"
@@ -174,7 +175,7 @@ static void write_diary_pet(FILE *fff, int num, std::string_view note)
 int exe_write_diary_quest(PlayerType *player_ptr, DiaryKind dk, QuestId quest_id)
 {
     static auto disable_diary = false;
-    const auto &[day, hour, min] = w_ptr->extract_date_time(player_ptr->start_race);
+    const auto &[day, hour, min] = w_ptr->extract_date_time(InnerGameData::get_instance().get_start_race());
     if (disable_diary) {
         return -1;
     }
@@ -255,7 +256,7 @@ int exe_write_diary_quest(PlayerType *player_ptr, DiaryKind dk, QuestId quest_id
 void exe_write_diary(PlayerType *player_ptr, DiaryKind dk, int num, std::string_view note)
 {
     static auto disable_diary = false;
-    const auto &[day, hour, min] = w_ptr->extract_date_time(player_ptr->start_race);
+    const auto &[day, hour, min] = w_ptr->extract_date_time(InnerGameData::get_instance().get_start_race());
     if (disable_diary) {
         return;
     }
index 0be2338..2118a8e 100644 (file)
@@ -20,6 +20,7 @@
 #include "spell/spells-status.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/monster-race-info.h"
 #include "system/player-type-definition.h"
 #include "system/system-variables.h"
@@ -112,7 +113,7 @@ void set_zangband_skill(PlayerType *player_ptr)
 
 void set_zangband_race(PlayerType *player_ptr)
 {
-    player_ptr->start_race = player_ptr->prace;
+    InnerGameData::get_instance().set_start_race(player_ptr->prace);
     player_ptr->old_race1 = 0L;
     player_ptr->old_race2 = 0L;
     player_ptr->old_realm = 0;
index db63508..035afc0 100644 (file)
@@ -23,6 +23,7 @@
 #include "system/angband-system.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/player-type-definition.h"
 #include "timed-effect/timed-effects.h"
 #include "world/world.h"
@@ -145,7 +146,7 @@ void rd_skills(PlayerType *player_ptr)
 
 static void set_race(PlayerType *player_ptr)
 {
-    player_ptr->start_race = i2enum<PlayerRaceType>(rd_byte());
+    InnerGameData::get_instance().set_start_race(i2enum<PlayerRaceType>(rd_byte()));
     player_ptr->old_race1 = rd_u32b();
     player_ptr->old_race2 = rd_u32b();
     player_ptr->old_realm = rd_s16b();
index f18b92f..3f03628 100644 (file)
@@ -9,6 +9,7 @@
 #include "system/building-type-definition.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/player-type-definition.h"
 #include "world/world.h"
 
@@ -81,24 +82,10 @@ void rd_autopick(PlayerType *player_ptr)
     player_ptr->autopick_autoregister = rd_bool();
 }
 
-static void set_undead_turn_limit(PlayerType *player_ptr)
-{
-    switch (player_ptr->start_race) {
-    case PlayerRaceType::VAMPIRE:
-    case PlayerRaceType::SKELETON:
-    case PlayerRaceType::ZOMBIE:
-    case PlayerRaceType::SPECTRE:
-        w_ptr->game_turn_limit = TURNS_PER_TICK * TOWN_DAWN * MAX_DAYS + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
-        break;
-    default:
-        w_ptr->game_turn_limit = TURNS_PER_TICK * TOWN_DAWN * (MAX_DAYS - 1) + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
-        break;
-    }
-}
-
 static void rd_world_info(PlayerType *player_ptr)
 {
-    set_undead_turn_limit(player_ptr);
+    auto &igd = InnerGameData::get_instance();
+    igd.init_turn_limit();
     w_ptr->dungeon_turn_limit = TURNS_PER_TICK * TOWN_DAWN * (MAX_DAYS - 1) + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
     player_ptr->current_floor_ptr->generated_turn = rd_s32b();
     if (h_older_than(1, 7, 0, 4)) {
index 46db83b..a157550 100644 (file)
@@ -8,6 +8,7 @@
 #include "main/music-definitions-table.h"
 #include "monster-race/monster-race.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/monster-entity.h"
 #include "system/monster-race-info.h"
 #include "system/player-type-definition.h"
@@ -43,13 +44,14 @@ void clear_scene_target_monster()
     scene_target_monster.ap_r_ptr = nullptr;
 }
 
-static GAME_TURN get_game_turn()
+static int get_game_turn()
 {
-    GAME_TURN ret = w_ptr->game_turn;
-    if (ret == w_ptr->game_turn_limit) {
-        ret = 0;
+    auto turns = w_ptr->game_turn;
+    if (turns == InnerGameData::get_instance().get_game_turn_limit()) {
+        return 0;
     }
-    return ret;
+
+    return turns;
 }
 
 /*!
index d6f3894..2639bab 100644 (file)
@@ -5,7 +5,7 @@
 /*!
  * @details 既にplayer_raceが存在するので_typeと付けた
  */
-enum class PlayerRaceType {
+enum class PlayerRaceType : int {
     HUMAN = 0,
     HALF_ELF = 1,
     ELF = 2,
index 3457c21..beaa25b 100644 (file)
@@ -10,6 +10,7 @@
 #include "system/building-type-definition.h"
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/player-type-definition.h"
 #include "timed-effect/timed-effects.h"
 #include "world/world.h"
@@ -101,7 +102,7 @@ void wr_player(PlayerType *player_ptr)
 
     std::visit(PlayerClassSpecificDataWriter(), player_ptr->class_specific_data);
 
-    wr_byte((byte)player_ptr->start_race);
+    wr_byte(static_cast<uint8_t>(InnerGameData::get_instance().get_start_race()));
     wr_s32b(player_ptr->old_race1);
     wr_s32b(player_ptr->old_race2);
     wr_s16b(player_ptr->old_realm);
index 755e91a..10a7fa6 100644 (file)
@@ -5,10 +5,66 @@
  */
 
 #include "system/inner-game-data.h"
+#include "player-info/race-types.h"
+#include "system/gamevalue.h"
 
 InnerGameData InnerGameData::instance{};
 
+InnerGameData::InnerGameData()
+    : start_race(PlayerRaceType::HUMAN)
+{
+}
+
 InnerGameData &InnerGameData::get_instance()
 {
     return instance;
 }
+
+PlayerRaceType InnerGameData::get_start_race() const
+{
+    return this->start_race;
+}
+
+int InnerGameData::get_game_turn_limit() const
+{
+    return this->game_turn_limit;
+}
+
+void InnerGameData::init_turn_limit()
+{
+    switch (this->start_race) {
+    case PlayerRaceType::VAMPIRE:
+    case PlayerRaceType::SKELETON:
+    case PlayerRaceType::ZOMBIE:
+    case PlayerRaceType::SPECTRE:
+        this->game_turn_limit = TURNS_PER_TICK * TOWN_DAWN * MAX_DAYS + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
+        return;
+    default:
+        this->game_turn_limit = TURNS_PER_TICK * TOWN_DAWN * (MAX_DAYS - 1) + TURNS_PER_TICK * TOWN_DAWN * 3 / 4;
+        return;
+    }
+}
+
+void InnerGameData::set_start_race(PlayerRaceType race)
+{
+    this->start_race = race;
+}
+
+/*!
+ * @brief ゲームターンからの実時間換算を行うための補正をかける
+ * @param turns ゲームターン
+ * @details アンデッド種族は18:00からゲームを開始するので、この修正を予め行う。
+ * @return 修正をかけた後のゲームターン
+ */
+int InnerGameData::get_real_turns(int turns) const
+{
+    switch (this->start_race) {
+    case PlayerRaceType::VAMPIRE:
+    case PlayerRaceType::SKELETON:
+    case PlayerRaceType::ZOMBIE:
+    case PlayerRaceType::SPECTRE:
+        return turns - (TURNS_PER_TICK * TOWN_DAWN * 3 / 4);
+    default:
+        return turns;
+    }
+}
index 574926b..86a221e 100644 (file)
@@ -1,5 +1,6 @@
 #pragma once
 
+enum class PlayerRaceType : int;
 class InnerGameData {
 public:
     InnerGameData(InnerGameData &&) = delete;
@@ -9,7 +10,16 @@ public:
     ~InnerGameData() = default;
     static InnerGameData &get_instance();
 
+    PlayerRaceType get_start_race() const;
+    int get_game_turn_limit() const;
+    int get_real_turns(int turns) const;
+    void set_start_race(PlayerRaceType race);
+    void init_turn_limit();
+
 private:
-    InnerGameData() = default;
+    InnerGameData();
     static InnerGameData instance;
+
+    PlayerRaceType start_race; //!< ゲーム開始時の種族.
+    int game_turn_limit = 0; //!< 最大ゲームターン
 };
index 112f625..61f4abe 100644 (file)
@@ -202,7 +202,6 @@ public:
     BIT_FLAGS8 knowledge{}; /* Knowledge about yourself */
     BIT_FLAGS visit{}; /* Visited towns */
 
-    PlayerRaceType start_race{}; /* Race at birth */
     BIT_FLAGS old_race1{}; /* Record of race changes */
     BIT_FLAGS old_race2{}; /* Record of race changes */
     int16_t old_realm{}; /* Record of realm changes */
index 0c6fff8..c4e3c66 100644 (file)
@@ -21,6 +21,7 @@
 #include "player/player-status.h"
 #include "sv-definition/sv-bow-types.h"
 #include "system/floor-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/item-entity.h"
 #include "system/monster-entity.h"
 #include "system/player-type-definition.h"
@@ -283,7 +284,7 @@ static void display_player_exp(PlayerType *player_ptr)
  */
 static void display_playtime_in_game(PlayerType *player_ptr)
 {
-    const auto &[day, hour, min] = w_ptr->extract_date_time(player_ptr->start_race);
+    const auto &[day, hour, min] = w_ptr->extract_date_time(InnerGameData::get_instance().get_start_race());
     const auto is_days_countable = day < MAX_DAYS;
     const std::string fmt = is_days_countable ? _("%d日目 %2d:%02d", "Day %d %2d:%02d") : _("*****日目 %2d:%02d", "Day ***** %2d:%02d");
     const auto mes = is_days_countable ? format(fmt.data(), day, hour, min) : format(fmt.data(), hour, min);
index c0478c9..4043a51 100644 (file)
@@ -34,6 +34,7 @@
 #include "system/dungeon-info.h"
 #include "system/floor-type-definition.h"
 #include "system/grid-type-definition.h"
+#include "system/inner-game-data.h"
 #include "system/monster-entity.h"
 #include "system/player-type-definition.h"
 #include "system/terrain-type-definition.h"
@@ -60,7 +61,7 @@ void WorldTurnProcessor::process_world()
     const int a_day = TURNS_PER_TICK * TOWN_DAWN;
     const int prev_turn_in_today = ((w_ptr->game_turn - TURNS_PER_TICK) % a_day + a_day / 4) % a_day;
     const int prev_min = (1440 * prev_turn_in_today / a_day) % 60;
-    std::tie(std::ignore, this->hour, this->min) = w_ptr->extract_date_time(this->player_ptr->start_race);
+    std::tie(std::ignore, this->hour, this->min) = w_ptr->extract_date_time(InnerGameData::get_instance().get_start_race());
     update_dungeon_feeling(this->player_ptr);
     process_downward();
     process_monster_arena();
@@ -108,7 +109,7 @@ void WorldTurnProcessor::print_time()
 
     c_put_str(TERM_WHITE, "             ", row, COL_DAY);
     auto day = 0;
-    std::tie(day, this->hour, this->min) = w_ptr->extract_date_time(this->player_ptr->start_race);
+    std::tie(day, this->hour, this->min) = w_ptr->extract_date_time(InnerGameData::get_instance().get_start_race());
     if (day < 1000) {
         c_put_str(TERM_WHITE, format(_("%2d日目", "Day%3d"), day), row, COL_DAY);
     } else {
index ce5fedb..4473b74 100644 (file)
@@ -20,7 +20,6 @@ public:
     POSITION max_wild_x{}; /*!< Maximum size of the wilderness */
     POSITION max_wild_y{}; /*!< Maximum size of the wilderness */
     GAME_TURN game_turn{}; /*!< 画面表示上のゲーム時間基準となるターン / Current game turn */
-    GAME_TURN game_turn_limit{}; /*!< game_turnの最大値 / Limit of game_turn */
     GAME_TURN dungeon_turn{}; /*!< NASTY生成の計算に関わる内部ターン値 / Game turn in dungeon */
     GAME_TURN dungeon_turn_limit{}; /*!< dungeon_turnの最大値 / Limit of game_turn in dungeon */
     GAME_TURN arena_start_turn{}; /*!< 闘技場賭博の開始ターン値 */