OSDN Git Service

[Hotfix] a_info.at() がキー不存在例外を吐いてソフトウェアが落ちる事象を修正した
authorHourier <66951241+Hourier@users.noreply.github.com>
Mon, 19 Sep 2022 01:56:34 +0000 (10:56 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Mon, 19 Sep 2022 09:00:05 +0000 (18:00 +0900)
src/artifact/artifact-info.cpp

index b13b9ac..83f53e1 100644 (file)
@@ -28,9 +28,11 @@ RandomArtActType activation_index(const ObjectType *o_ptr)
         return act_idx.value();
     }
 
-    const auto &fixed_artifact = a_info.at(o_ptr->fixed_artifact_idx);
-    if (o_ptr->is_fixed_artifact() && fixed_artifact.flags.has(TR_ACTIVATE)) {
-        return fixed_artifact.act_idx;
+    if (o_ptr->is_fixed_artifact()) {
+        const auto &fixed_artifact = a_info.at(o_ptr->fixed_artifact_idx);
+        if (fixed_artifact.flags.has(TR_ACTIVATE)) {
+            return fixed_artifact.act_idx;
+        }
     }
 
     if (o_ptr->is_ego() && e_info[o_ptr->ego_idx].flags.has(TR_ACTIVATE)) {