From 3eda43bfa777bf3fba376b31d04032c418806a97 Mon Sep 17 00:00:00 2001 From: Hourier <66951241+Hourier@users.noreply.github.com> Date: Sun, 10 Dec 2023 11:23:42 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#1372=20AngbandWorld::sf=5Fextra=20?= =?utf8?q?=E3=82=92AngbandSystem::savefile=5Fkey=20=E3=81=B8=E7=A7=BB?= =?utf8?q?=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/load/info-loader.cpp | 2 +- src/load/load.cpp | 5 +++-- src/system/angband-system.h | 2 ++ src/world/world.h | 2 -- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/load/info-loader.cpp b/src/load/info-loader.cpp index 8351eb1a7..832a221e6 100644 --- a/src/load/info-loader.cpp +++ b/src/load/info-loader.cpp @@ -35,7 +35,7 @@ void rd_version_info(void) throw("Invalid version is detected!"); } - load_xor_byte = w_ptr->sf_extra; + load_xor_byte = system.savefile_key; v_check = 0L; x_check = 0L; diff --git a/src/load/load.cpp b/src/load/load.cpp index 1ff55f958..e09b6e9c2 100644 --- a/src/load/load.cpp +++ b/src/load/load.cpp @@ -393,6 +393,7 @@ bool load_savedata(PlayerType *player_ptr, bool *new_game) // v0.0.X~v3.0.0 Alpha51までは、セーブデータの第1バイトがFAKE_MAJOR_VERというZangbandと互換性を取ったバージョン番号フィールドだった. // v3.0.0 Alpha52以降は、バリアント名の長さフィールドとして再定義した. // 10~13はその名残。変愚蛮怒から更にバリアントを切ったらこの評価は不要. + auto &system = AngbandSystem::get_instance(); auto tmp_major = tmp_ver[0]; auto is_old_ver = (10 <= tmp_major) && (tmp_major <= 13); if (tmp_major == variant_length) { @@ -400,10 +401,10 @@ bool load_savedata(PlayerType *player_ptr, bool *new_game) throw(_("セーブデータのバリアントは変愚蛮怒以外です", "The variant of save data is other than Hengband!")); } - w_ptr->sf_extra = tmp_ver[version_length - 1]; + system.savefile_key = tmp_ver[version_length - 1]; (void)fd_close(fd); } else if (is_old_ver) { - w_ptr->sf_extra = tmp_ver[3]; + system.savefile_key = tmp_ver[3]; (void)fd_close(fd); } else { (void)fd_close(fd); diff --git a/src/system/angband-system.h b/src/system/angband-system.h index 26f688d7c..10e6e79ec 100644 --- a/src/system/angband-system.h +++ b/src/system/angband-system.h @@ -15,6 +15,8 @@ public: uint8_t version_patch{}; //!< 変愚蛮怒バージョン(パッチ番号) uint8_t version_extra{}; //!< 変愚蛮怒バージョン(エクストラ番号) + uint8_t savefile_key{}; //!< セーブファイルエンコードキー(XOR) + void set_phase_out(bool new_status); bool is_phase_out() const; int get_max_range() const; diff --git a/src/world/world.h b/src/world/world.h index 81ac03ab2..eae2364f0 100644 --- a/src/world/world.h +++ b/src/world/world.h @@ -43,8 +43,6 @@ public: bool is_loading_now{}; /*!< ロード処理中フラグ...ロード直後にcalc_bonus()時の徳変化、及びsanity_blast()による異常を抑止する */ - byte sf_extra{}; //!< セーブファイルエンコードキー(XOR) - uint32_t sf_system{}; //!< OS情報 / OS information uint32_t sf_when{}; //!< 作成日時 / Created Date uint16_t sf_lives{}; //!< このセーブファイルで何人プレイしたか / Number of past "lives" with this file -- 2.11.0