OSDN Git Service

[Release] 3.0.0Alpha61
[hengbandforosx/hengbandosx.git] / src / system / angband-version.h
index 370138d..55ce4cd 100644 (file)
@@ -1,52 +1,50 @@
 #pragma once
 
 #include <stdint.h>
+#include <string>
 
-#define VERSION_NAME "Hengband" /*!< バリアント名称 / Name of the version/variant */
+/*!
+ * @brief 現在のバリアント名
+ */
+constexpr std::string_view VARIANT_NAME("Hengband");
 
 /*!
- * @brief セーブファイル上のバージョン定義(メジャー番号) / "Savefile Version Number" for Hengband 1.1.1 and later
+ * @brief 基底バリアント名
  * @details
- * 当面FAKE_VER_*を参照しておく。
- * <pre>
- * Program Version of Hengband version is
- *   "(H_VER_MAJOR).(H_VER_MINOR).(H_VER_PATCH).(H_VER_EXTRA)".
- * Upper compatibility is always guaranteed when it is more than 1.0.0 .
- * </pre>
+ * 変愚蛮怒から更にバリアントを派生させても、ここは変更しないこと.
+ * 変更ではなく削除はOKだが、h_older_than() 及びそれを呼んでいる箇所全てを削除すること.
  */
-#define H_VER_MAJOR  3 //!< ゲームのバージョン定義(メジャー番号)
-#define H_VER_MINOR  0 //!< ゲームのバージョン定義(マイナー番号)
-#define H_VER_PATCH  0 //!< ゲームのバージョン定義(パッチ番号)
-#define H_VER_EXTRA 46 //!< ゲームのバージョン定義(エクストラ番号)
+constexpr std::string_view ROOT_VARIANT_NAME("Hengband");
 
 /*!
- * @brief セーブファイルのバージョン(3.0.0から導入)
+ * @brief セーブファイル上のバージョン定義 / "Savefile Version Number" for Hengband
+ * @details v1.1.1以上にのみ適用
  */
-constexpr uint32_t SAVEFILE_VERSION = 10;
+#define H_VER_MAJOR 3 //!< ゲームのバージョン定義(メジャー番号)
+#define H_VER_MINOR 0 //!< ゲームのバージョン定義(マイナー番号)
+#define H_VER_PATCH 0 //!< ゲームのバージョン定義(パッチ番号)
+#define H_VER_EXTRA 61 //!< ゲームのバージョン定義(エクストラ番号)
 
 /*!
- * @brief ã\83\90ã\83¼ã\82¸ã\83§ã\83³ã\81\8cé\96\8bç\99ºç\89\88ã\81\8cå®\89å®\9aç\89\88ã\81\8bã\82\92è¿\94ã\81\99(å»\83æ­¢äº\88å®\9a)
+ * @brief ã\82»ã\83¼ã\83\96ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\83\90ã\83¼ã\82¸ã\83§ã\83³(3.0.0ã\81\8bã\82\89å°\8eå\85¥)
  */
-#define IS_STABLE_VERSION (H_VER_MINOR % 2 == 0 && H_VER_EXTRA == 0)
+constexpr uint32_t SAVEFILE_VERSION = 19;
 
 /*!
- * @brief 状態がアルファ版かどうかを返す
- * @note アルファ版はエクストラ番号一定値までをアルファとし、一定まで進めて安定次第ベータ版、さらにそれも解除して無印版とする。
+ * @brief バージョンが開発版が安定版かを返す(廃止予定)
  */
-#define IS_ALPHA_VERSION 1
+constexpr bool IS_STABLE_VERSION = (H_VER_MINOR % 2 == 0 && H_VER_EXTRA == 0);
+
+enum class VersionStatusType {
+    ALPHA,
+    BETA,
+    RELEASE_CANDIDATE,
+    RELEASE,
+};
 
 /*!
- * @brief ゲームのバージョン番号定義 / "Program Version Number" of the game
- * @details
- * 本FAKE_VERSIONそのものは未使用である。Zangと整合性を合わせるための疑似的処理のためFAKE_VER_MAJORは実値-10が該当のバージョン番号となる。
- * <pre>
- * FAKE_VER_MAJOR=1,2 were reserved for ZAngband version 1.x.x/2.x.x .
- * </pre>
+ * @brief バージョンの立ち位置
  */
-#define FAKE_VER_PLUS 10 //!< 偽バージョン番号としていくつ足すか
-#define FAKE_VER_MAJOR (H_VER_MAJOR + FAKE_VER_PLUS) //!< 偽バージョン番号定義(メジャー番号) */
-#define FAKE_VER_MINOR H_VER_MINOR //!< 偽バージョン番号定義(マイナー番号) */
-#define FAKE_VER_PATCH H_VER_PATCH //!< 偽バージョン番号定義(パッチ番号) */
-#define FAKE_VER_EXTRA H_VER_EXTRA //!< 偽バージョン番号定義(エクストラ番号) */
+constexpr VersionStatusType VERSION_STATUS = VersionStatusType::ALPHA;
 
 void put_version(char *buf);