OSDN Git Service

[Refactor] #3541 obj_desc_list::slays の型をconcptr[] からvector<string> に変えた
authorHourier <66951241+Hourier@users.noreply.github.com>
Tue, 11 Jul 2023 11:54:42 +0000 (20:54 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Fri, 14 Jul 2023 12:56:11 +0000 (21:56 +0900)
src/wizard/artifact-analyzer.cpp
src/wizard/spoiler-table.cpp
src/wizard/spoiler-table.h
src/wizard/spoiler-util.h

index 9dc4de0..0cc1332 100644 (file)
@@ -63,11 +63,10 @@ static std::string analyze_general(PlayerType *player_ptr, ItemEntity *o_ptr)
  * @param o_ptr オブジェクト構造体の参照ポインタ
  * @param slay_list 種族スレイ構造体の参照ポインタ
  */
-static void analyze_slay(ItemEntity *o_ptr, concptr *slay_list)
+static std::vector<std::string> analyze_slay(ItemEntity *o_ptr)
 {
     auto flags = object_flags(o_ptr);
-    slay_list = spoiler_flag_aux(flags, slay_flags_desc, slay_list, N_ELEMENTS(slay_flags_desc));
-    *slay_list = nullptr;
+    return extract_spoiler_flags(flags, slay_flags_desc);
 }
 
 /*!
@@ -287,7 +286,7 @@ void object_analyze(PlayerType *player_ptr, ItemEntity *o_ptr, obj_desc_list *de
     angband_strcpy(desc_ptr->description, analyze_general(player_ptr, o_ptr), MAX_NLEN);
     desc_ptr->pval_info.analyze(*o_ptr);
     analyze_brand(o_ptr, desc_ptr->brands);
-    analyze_slay(o_ptr, desc_ptr->slays);
+    desc_ptr->slays = analyze_slay(o_ptr);
     analyze_immune(o_ptr, desc_ptr->immunities);
     analyze_resist(o_ptr, desc_ptr->resistances);
     analyze_vulnerable(o_ptr, desc_ptr->vulnerables);
@@ -309,7 +308,7 @@ void random_artifact_analyze(PlayerType *player_ptr, ItemEntity *o_ptr, obj_desc
     angband_strcpy(desc_ptr->description, analyze_general(player_ptr, o_ptr), MAX_NLEN);
     desc_ptr->pval_info.analyze(*o_ptr);
     analyze_brand(o_ptr, desc_ptr->brands);
-    analyze_slay(o_ptr, desc_ptr->slays);
+    desc_ptr->slays = analyze_slay(o_ptr);
     analyze_immune(o_ptr, desc_ptr->immunities);
     analyze_resist(o_ptr, desc_ptr->resistances);
     analyze_vulnerable(o_ptr, desc_ptr->vulnerables);
index 97b9c4b..de02574 100644 (file)
@@ -75,7 +75,7 @@ const std::vector<flag_desc> pval_flags1_desc = { { TR_MAGIC_MASTERY, _("魔法
     { TR_SEARCH, _("探索", "Searching") }, { TR_INFRA, _("赤外線視力", "Infravision") }, { TR_TUNNEL, _("採掘", "Tunneling") },
     { TR_BLOWS, _("攻撃回数", "Attacks") }, { TR_SPEED, _("スピード", "Speed") } };
 
-flag_desc slay_flags_desc[MAX_SLAY_FLAGS_DESCRIPTION] = {
+const std::vector<flag_desc> slay_flags_desc = {
     { TR_SLAY_ANIMAL, _("動物", "Animal") },
     { TR_KILL_ANIMAL, _("*動物*", "XAnimal") },
     { TR_SLAY_EVIL, _("邪悪", "Evil") },
index ad5347c..a4661c3 100644 (file)
@@ -3,10 +3,8 @@
 #include "object-enchant/tr-types.h"
 #include "object/tval-types.h"
 #include "system/angband.h"
-
 #include <vector>
 
-#define MAX_SLAY_FLAGS_DESCRIPTION 20
 #define MAX_BRAND_FLAGS_DESCRIPTION 12
 #define MAX_RESISTANCE_FLAGS_DESCRIPTION 19
 #define MAX_VULNERABLE_FLAGS_DESCRIPTION 6
@@ -34,7 +32,7 @@ extern const std::vector<grouper> group_item_list;
 extern const std::vector<grouper> group_artifact_list;
 extern const std::vector<flag_desc> stat_flags_desc;
 extern const std::vector<flag_desc> pval_flags1_desc;
-extern flag_desc slay_flags_desc[MAX_SLAY_FLAGS_DESCRIPTION];
+extern const std::vector<flag_desc> slay_flags_desc;
 extern flag_desc brand_flags_desc[MAX_BRAND_FLAGS_DESCRIPTION];
 extern const flag_desc resist_flags_desc[MAX_RESISTANCE_FLAGS_DESCRIPTION];
 extern const flag_desc vulnerable_flags_desc[MAX_VULNERABLE_FLAGS_DESCRIPTION];
index f8cebfb..1e570ca 100644 (file)
@@ -36,7 +36,7 @@ public:
 struct obj_desc_list {
     char description[MAX_NLEN]{}; /* "The Longsword Dragonsmiter (6d4) (+20, +25)" */
     ParameterValueInfo pval_info{}; /* Description of what is affected by an object's pval */
-    concptr slays[N_ELEMENTS(slay_flags_desc) + 1]{}; /* A list of an object's slaying preferences */
+    std::vector<std::string> slays{}; /* A list of an object's slaying preferences */
     concptr brands[N_ELEMENTS(brand_flags_desc) + 1]{}; /* A list if an object's elemental brands */
     concptr immunities[N_ELEMENTS(immune_flags_desc) + 1]{}; /* A list of immunities granted by an object */
     concptr resistances[N_ELEMENTS(resist_flags_desc) + 1]{}; /* A list of resistances granted by an object */