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 };
}
}
}
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);
}
~ArtifactsInfo() = default;
static ArtifactsInfo &get_instance();
- ArtifactType *get_artifact(const FixedArtifactId id) const;
+ ArtifactType &get_artifact(const FixedArtifactId id) const;
private:
ArtifactsInfo() = default;