OSDN Git Service

[Refactor] #3177 アーティファクトに欠番がなくなったのでfind() で探さずat() で直接取得するようにした
authorHourier <66951241+Hourier@users.noreply.github.com>
Sun, 23 Apr 2023 07:53:13 +0000 (16:53 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sun, 23 Apr 2023 11:41:27 +0000 (20:41 +0900)
src/flavor/named-item-describer.cpp
src/floor/fixed-map-generator.cpp
src/load/item/item-loader-base.cpp
src/save/save.cpp
src/system/artifact-type-definition.cpp
src/wizard/wizard-special-process.cpp

index 44cf7e1..7245cbe 100644 (file)
@@ -200,9 +200,9 @@ static std::string describe_unique_name_after_body_ja(const ItemEntity &item, co
     }
 
     if (item.is_fixed_artifact()) {
-        const auto &a_ref = artifacts_info.at(item.fixed_artifact_idx);
-        if (a_ref.name.find("『", 0, 2) == 0) {
-            return a_ref.name;
+        const auto &artifact = artifacts_info.at(item.fixed_artifact_idx);
+        if (artifact.name.find("『", 0, 2) == 0) {
+            return artifact.name;
         }
 
         return "";
@@ -294,8 +294,8 @@ static std::string describe_unique_name_after_body_en(const ItemEntity &item, co
     }
 
     if (item.is_fixed_artifact()) {
-        const auto &a_ref = artifacts_info.at(item.fixed_artifact_idx);
-        ss << ' ' << a_ref.name;
+        const auto &artifact = artifacts_info.at(item.fixed_artifact_idx);
+        ss << ' ' << artifact.name;
         return ss.str();
     }
 
index d19f49c..865c6e1 100644 (file)
@@ -235,13 +235,8 @@ static bool parse_qtw_QQ(quest_type *q_ptr, char **zz, int num)
         return true;
     }
 
-    // @note 半分デッドコード。reward_artifact_idx が定義されているクエストが1つもない.
-    if (const auto it = artifacts_info.find(a_idx); it == artifacts_info.end()) {
-        return true;
-    }
-
-    auto &a_ref = artifacts_info.at(q_ptr->reward_artifact_idx);
-    a_ref.gen_flags.set(ItemGenerationTraitType::QUESTITEM);
+    auto &artifact = artifacts_info.at(q_ptr->reward_artifact_idx);
+    artifact.gen_flags.set(ItemGenerationTraitType::QUESTITEM);
     return true;
 }
 
index 8a40069..f6b7eb1 100644 (file)
@@ -27,14 +27,13 @@ void ItemLoaderBase::load_item(void)
 /*!
  * @brief 固定アーティファクトの出現情報をロードする.
  */
-void ItemLoaderBase::load_artifact(void)
+void ItemLoaderBase::load_artifact()
 {
     ArtifactType dummy;
     auto loading_max_a_idx = rd_u16b();
     for (auto i = 0U; i < loading_max_a_idx; i++) {
         const auto a_idx = i2enum<FixedArtifactId>(i);
-        const auto it = artifacts_info.find(a_idx);
-        auto &artifact = it != artifacts_info.end() ? it->second : dummy;
+        auto &artifact = (i > 0) ? artifacts_info.at(a_idx) : dummy;
         artifact.is_generated = rd_bool();
         if (h_older_than(1, 5, 0, 0)) {
             artifact.floor_id = 0;
index 90d5c9a..74e13ba 100644 (file)
@@ -174,10 +174,9 @@ static bool wr_savefile_new(PlayerType *player_ptr, SaveType type)
     ArtifactType dummy;
     for (auto i = 0U; i < tmp16u; i++) {
         const auto a_idx = i2enum<FixedArtifactId>(i);
-        const auto it = artifacts_info.find(a_idx);
-        const auto &a_ref = it != artifacts_info.end() ? it->second : dummy;
-        wr_bool(a_ref.is_generated);
-        wr_s16b(a_ref.floor_id);
+        const auto &artifact = (i > 0) ? artifacts_info.at(a_idx) : dummy;
+        wr_bool(artifact.is_generated);
+        wr_s16b(artifact.floor_id);
     }
 
     wr_u32b(w_ptr->sf_play_time);
index 51b3399..13b3c3b 100644 (file)
@@ -18,10 +18,5 @@ ArtifactsInfo &ArtifactsInfo::get_instance()
 
 ArtifactType *ArtifactsInfo::get_artifact(const FixedArtifactId id) const
 {
-    auto itr = artifacts_info.find(id);
-    if (itr == artifacts_info.end()) {
-        return nullptr;
-    }
-
-    return &itr->second;
+    return &artifacts_info.at(id);
 }
index ee227db..d2faa48 100644 (file)
@@ -388,14 +388,8 @@ void wiz_create_named_art(PlayerType *player_ptr)
 
     screen_load();
     const auto a_idx = create_a_idx.value();
-    const auto it = artifacts_info.find(a_idx);
-    if (it == artifacts_info.end()) {
-        msg_print("The specified artifact is obsoleted for now.");
-        return;
-    }
-
-    auto &a_ref = it->second;
-    if (a_ref.is_generated) {
+    const auto &artifact = artifacts_info.at(a_idx);
+    if (artifact.is_generated) {
         msg_print("It's already allocated.");
         return;
     }