#include "load/angband-version-comparer.h"
+#include "system/angband-system.h"
#include "system/angband-version.h"
-#include "world/world.h"
/*!
* @brief 変愚蛮怒のバージョン比較処理 / This function determines if the version of the savefile currently being read is older than version
return false;
}
- if (w_ptr->h_ver_major < major) {
+ const auto &system = AngbandSystem::get_instance();
+ if (system.h_ver_major < major) {
return true;
}
- if (w_ptr->h_ver_major > major) {
+
+ if (system.h_ver_major > major) {
return false;
}
- if (w_ptr->h_ver_minor < minor) {
+ if (system.h_ver_minor < minor) {
return true;
}
- if (w_ptr->h_ver_minor > minor) {
+
+ if (system.h_ver_minor > minor) {
return false;
}
- if (w_ptr->h_ver_patch < patch) {
+ if (system.h_ver_patch < patch) {
return true;
}
- if (w_ptr->h_ver_patch > patch) {
+
+ if (system.h_ver_patch > patch) {
return false;
}
- if (w_ptr->h_ver_extra < extra) {
+ if (system.h_ver_extra < extra) {
return true;
}
- if (w_ptr->h_ver_extra > extra) {
+
+ if (system.h_ver_extra > extra) {
return false;
}
return false;
}
- if (w_ptr->h_ver_major < major) {
+ const auto &system = AngbandSystem::get_instance();
+ if (system.h_ver_major < major) {
return true;
}
- if (w_ptr->h_ver_major > major) {
+
+ if (system.h_ver_major > major) {
return false;
}
- if (w_ptr->h_ver_minor < minor) {
+ if (system.h_ver_minor < minor) {
return true;
}
- if (w_ptr->h_ver_minor > minor) {
+
+ if (system.h_ver_minor > minor) {
return false;
}
- if (w_ptr->h_ver_patch < patch) {
+ if (system.h_ver_patch < patch) {
return true;
}
- if (w_ptr->h_ver_patch > patch) {
+
+ if (system.h_ver_patch > patch) {
return false;
}
#include "monster/monster-info.h"
#include "monster/monster-list.h"
#include "save/floor-writer.h"
+#include "system/angband-system.h"
#include "system/angband-version.h"
#include "system/floor-type-definition.h"
#include "system/grid-type-definition.h"
#include "term/z-form.h"
#include "util/angband-files.h"
#include "world/world-object.h"
-#include "world/world.h"
/*!
* @brief 保存されたフロアを読み込む / Read the saved floor
v_check = 0L;
x_check = 0L;
- w_ptr->h_ver_extra = H_VER_EXTRA;
- w_ptr->h_ver_patch = H_VER_PATCH;
- w_ptr->h_ver_minor = H_VER_MINOR;
- w_ptr->h_ver_major = H_VER_MAJOR;
+ auto &system = AngbandSystem::get_instance();
+ system.h_ver_extra = H_VER_EXTRA;
+ system.h_ver_patch = H_VER_PATCH;
+ system.h_ver_minor = H_VER_MINOR;
+ system.h_ver_major = H_VER_MAJOR;
loading_savefile_version = SAVEFILE_VERSION;
if (saved_floor_file_sign != rd_u32b()) {
byte old_h_ver_patch = 0;
byte old_h_ver_extra = 0;
uint32_t old_loading_savefile_version = 0;
+ auto &system = AngbandSystem::get_instance();
if (mode & SLF_SECOND) {
old_fff = loading_savefile;
old_xor_byte = load_xor_byte;
old_v_check = v_check;
old_x_check = x_check;
- old_h_ver_major = w_ptr->h_ver_major;
- old_h_ver_minor = w_ptr->h_ver_minor;
- old_h_ver_patch = w_ptr->h_ver_patch;
- old_h_ver_extra = w_ptr->h_ver_extra;
+ old_h_ver_major = system.h_ver_major;
+ old_h_ver_minor = system.h_ver_minor;
+ old_h_ver_patch = system.h_ver_patch;
+ old_h_ver_extra = system.h_ver_extra;
old_loading_savefile_version = loading_savefile_version;
}
load_xor_byte = old_xor_byte;
v_check = old_v_check;
x_check = old_x_check;
- w_ptr->h_ver_major = old_h_ver_major;
- w_ptr->h_ver_minor = old_h_ver_minor;
- w_ptr->h_ver_patch = old_h_ver_patch;
- w_ptr->h_ver_extra = old_h_ver_extra;
+ system.h_ver_major = old_h_ver_major;
+ system.h_ver_minor = old_h_ver_minor;
+ system.h_ver_patch = old_h_ver_patch;
+ system.h_ver_extra = old_h_ver_extra;
loading_savefile_version = old_loading_savefile_version;
}
#include "load/angband-version-comparer.h"
#include "load/load-util.h"
#include "load/option-loader.h"
+#include "system/angband-system.h"
#include "system/angband-version.h"
#include "system/angband.h"
#include "view/display-messages.h"
auto tmp_major = rd_byte();
auto is_old_ver = (10 <= tmp_major) && (tmp_major <= 13);
constexpr auto variant_length = VARIANT_NAME.length();
+ auto &system = AngbandSystem::get_instance();
if (tmp_major == variant_length) {
strip_bytes(variant_length);
load_xor_byte = 0;
- w_ptr->h_ver_major = rd_byte();
- w_ptr->h_ver_minor = rd_byte();
- w_ptr->h_ver_patch = rd_byte();
- w_ptr->h_ver_extra = rd_byte();
+ system.h_ver_major = rd_byte();
+ system.h_ver_minor = rd_byte();
+ system.h_ver_patch = rd_byte();
+ system.h_ver_extra = rd_byte();
strip_bytes(1);
} else if (is_old_ver) {
strip_bytes(3);
if (is_old_ver) {
/* Old savefile will be version 0.0.0.3 */
- w_ptr->h_ver_extra = rd_byte();
- w_ptr->h_ver_patch = rd_byte();
- w_ptr->h_ver_minor = rd_byte();
- w_ptr->h_ver_major = rd_byte();
+ system.h_ver_extra = rd_byte();
+ system.h_ver_patch = rd_byte();
+ system.h_ver_minor = rd_byte();
+ system.h_ver_major = rd_byte();
}
w_ptr->sf_system = rd_u32b();
/* h_ver_majorがfake_ver_majorと同じだったころへの対策 */
if (loading_savefile_version_is_older_than(10)) {
constexpr auto fake_ver_plus = 10;
- if (tmp_major - w_ptr->h_ver_major < fake_ver_plus) {
- w_ptr->h_ver_major -= fake_ver_plus;
+ if (tmp_major - system.h_ver_major < fake_ver_plus) {
+ system.h_ver_major -= fake_ver_plus;
}
}
- load_note(format(_("バージョン %d.%d.%d のセーブデータ(SAVE%u形式)をロード中...", "Loading a version %d.%d.%d savefile (SAVE%u format)..."),
- w_ptr->h_ver_major, w_ptr->h_ver_minor, w_ptr->h_ver_patch,
- loading_savefile_version));
+ constexpr auto fmt = _("バージョン %d.%d.%d のセーブデータ(SAVE%u形式)をロード中...", "Loading a version %d.%d.%d savefile (SAVE%u format)...");
+ load_note(format(fmt, system.h_ver_major, system.h_ver_minor, system.h_ver_patch, loading_savefile_version));
}
/*!
{
strip_bytes(4);
- Xoshiro128StarStar::state_type state;
+ Xoshiro128StarStar::state_type state{};
for (auto &s : state) {
s = rd_u32b();
}
#include "player/player-sex.h"
#include "player/race-info-table.h"
#include "system/angband-exceptions.h"
+#include "system/angband-system.h"
#include "system/angband-version.h"
#include "system/player-type-definition.h"
#include "system/system-variables.h"
}
if (err) {
- msg_format(_("エラー(%s)がバージョン %d.%d.%d.%d 用セーブファイル読み込み中に発生。", "Error (%s) reading %d.%d.%d.%d savefile."), what,
- w_ptr->h_ver_major, w_ptr->h_ver_minor, w_ptr->h_ver_patch, w_ptr->h_ver_extra);
+ auto &system = AngbandSystem::get_instance();
+ constexpr auto fmt = _("エラー(%s)がバージョン %d.%d.%d.%d 用セーブファイル読み込み中に発生。", "Error (%s) reading %d.%d.%d.%d savefile.");
+ msg_format(fmt, what, system.h_ver_major, system.h_ver_minor, system.h_ver_patch, system.h_ver_extra);
msg_print(nullptr);
return false;
}
#pragma once
+#include <stdint.h>
+
class AngbandSystem {
public:
AngbandSystem(const AngbandSystem &) = delete;
bool is_phase_out() const;
int get_max_range() const;
+ uint8_t h_ver_major{}; //!< 変愚蛮怒バージョン(メジャー番号) / Hengband version (major ver.)
+ uint8_t h_ver_minor{}; //!< 変愚蛮怒バージョン(マイナー番号) / Hengband version (minor ver.)
+ uint8_t h_ver_patch{}; //!< 変愚蛮怒バージョン(パッチ番号) / Hengband version (patch ver.)
+ uint8_t h_ver_extra{}; //!< 変愚蛮怒バージョン(エクストラ番号) / Hengband version (extra ver.)
+
private:
AngbandSystem() = default;
bool is_loading_now{}; /*!< ロード処理中フラグ...ロード直後にcalc_bonus()時の徳変化、及びsanity_blast()による異常を抑止する */
- byte h_ver_major{}; //!< 変愚蛮怒バージョン(メジャー番号) / Hengband version (major ver.)
- byte h_ver_minor{}; //!< 変愚蛮怒バージョン(マイナー番号) / Hengband version (minor ver.)
- byte h_ver_patch{}; //!< 変愚蛮怒バージョン(パッチ番号) / Hengband version (patch ver.)
- byte h_ver_extra{}; //!< 変愚蛮怒バージョン(エクストラ番号) / Hengband version (extra ver.)
-
byte sf_extra{}; //!< セーブファイルエンコードキー(XOR)
uint32_t sf_system{}; //!< OS情報 / OS information