OSDN Git Service

[Refactor] 徳の定義をenum化.
authorDeskull <61610939+sikabane-works@users.noreply.github.com>
Sat, 8 May 2021 13:40:39 +0000 (22:40 +0900)
committerDeskull <61610939+sikabane-works@users.noreply.github.com>
Sat, 8 May 2021 13:40:39 +0000 (22:40 +0900)
src/player-info/avatar.cpp
src/player-info/avatar.h
src/system/h-type.h

index 5b1b0da..645b83a 100644 (file)
@@ -153,7 +153,7 @@ static void get_random_virtue(player_type *creature_ptr, int which)
  * @param realm 魔法領域のID
  * @return 対応する徳のID
  */
-static VIRTUES_IDX get_realm_virtues(player_type *creature_ptr, REALM_IDX realm)
+static enum virtue_idx get_realm_virtues(player_type *creature_ptr, REALM_IDX realm)
 {
     switch (realm) {
     case REALM_LIFE:
@@ -181,7 +181,7 @@ static VIRTUES_IDX get_realm_virtues(player_type *creature_ptr, REALM_IDX realm)
     case REALM_TRUMP:
         return V_KNOWLEDGE;
     case REALM_ARCANE:
-        return 0;
+        return V_NONE;
     case REALM_CRAFT:
         if (virtue_number(creature_ptr, V_ENCHANT))
             return V_INDIVIDUALISM;
@@ -203,7 +203,7 @@ static VIRTUES_IDX get_realm_virtues(player_type *creature_ptr, REALM_IDX realm)
         else
             return V_COMPASSION;
     default:
-        return 0;
+        return V_NONE;
     };
 }
 
index 2e245bf..dcbbb1c 100644 (file)
@@ -4,24 +4,27 @@
 
 #define MAX_VIRTUE 18 /*!< 徳定義の最大数 */
 
-#define V_COMPASSION    1
-#define V_HONOUR           2
-#define V_JUSTICE          3
-#define V_SACRIFICE        4
-#define V_KNOWLEDGE        5
-#define V_FAITH            6
-#define V_ENLIGHTEN        7
-#define V_ENCHANT          8
-#define V_CHANCE           9
-#define V_NATURE          10
-#define V_HARMONY         11
-#define V_VITALITY        12
-#define V_UNLIFE          13
-#define V_PATIENCE        14
-#define V_TEMPERANCE      15
-#define V_DILIGENCE       16
-#define V_VALOUR          17
-#define V_INDIVIDUALISM    18
+enum virtue_idx {
+    V_NONE = 0,
+    V_COMPASSION = 1,
+       V_HONOUR = 2,
+       V_JUSTICE = 3,
+       V_SACRIFICE = 4,
+       V_KNOWLEDGE = 5,
+       V_FAITH = 6,
+       V_ENLIGHTEN = 7,
+       V_ENCHANT = 8,
+       V_CHANCE = 9,
+       V_NATURE = 10,
+       V_HARMONY = 11,
+       V_VITALITY = 12,
+       V_UNLIFE = 13,
+       V_PATIENCE = 14,
+       V_TEMPERANCE = 15,
+       V_DILIGENCE = 16,
+       V_VALOUR = 17,
+       V_INDIVIDUALISM = 18,
+};
 
 #define VIRTUE_LARGE 1
 #define VIRTUE_SMALL 2
index 5ade093..aabe8b5 100644 (file)
@@ -113,7 +113,6 @@ typedef s16b REALM_IDX; /*!< ゲーム中の魔法領域ID型を定義 */
 typedef s16b ARTIFACT_IDX; /*!< ゲーム中のアーティファクトID型を定義 */
 typedef s16b EGO_IDX; /*!< アイテムエゴのID型を定義 */
 typedef s16b ACTIVATION_IDX; /*!< アイテムの発動効果ID型を定義 */
-typedef s16b VIRTUES_IDX; /*!< ゲーム中の徳ID型を定義 */
 typedef s16b QUEST_IDX; /*!< ゲーム中のクエストID型を定義 */
 typedef byte ROOM_IDX; /*!< 部屋のID型を定義 */