OSDN Git Service

[Refactor] #3177 get_artifact() がnullptrを返す可能性がなくなったので参照を返すように修正した
authorHourier <66951241+Hourier@users.noreply.github.com>
Sun, 23 Apr 2023 07:58:53 +0000 (16:58 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sun, 30 Apr 2023 05:54:57 +0000 (14:54 +0900)
src/store/rumor.cpp
src/system/artifact-type-definition.cpp
src/system/artifact-type-definition.h

index 05c6de4..a82ca48 100644 (file)
@@ -81,13 +81,9 @@ static std::pair<FixedArtifactId, const ArtifactType *> get_artifact_definition(
     const auto max_idx = enum2i(artifacts_info.rbegin()->first);
     while (true) {
         const auto a_idx = i2enum<FixedArtifactId>(get_rumor_num(artifact_name.data(), max_idx));
-        const auto *a_ptr = ArtifactsInfo::get_instance().get_artifact(a_idx);
-        if (a_ptr == nullptr) {
-            continue;
-        }
-
-        if (!a_ptr->name.empty()) {
-            return { a_idx, a_ptr };
+        const auto &artifact = ArtifactsInfo::get_instance().get_artifact(a_idx);
+        if (!artifact.name.empty()) {
+            return { a_idx, &artifact };
         }
     }
 }
index 13b3c3b..2b5f12a 100644 (file)
@@ -16,7 +16,7 @@ ArtifactsInfo &ArtifactsInfo::get_instance()
     return instance;
 }
 
-ArtifactType *ArtifactsInfo::get_artifact(const FixedArtifactId id) const
+ArtifactType &ArtifactsInfo::get_artifact(const FixedArtifactId id) const
 {
-    return &artifacts_info.at(id);
+    return artifacts_info.at(id);
 }
index e4b223a..b7ffe7c 100644 (file)
@@ -51,7 +51,7 @@ public:
     ~ArtifactsInfo() = default;
 
     static ArtifactsInfo &get_instance();
-    ArtifactType *get_artifact(const FixedArtifactId id) const;
+    ArtifactType &get_artifact(const FixedArtifactId id) const;
 
 private:
     ArtifactsInfo() = default;