OSDN Git Service

[Refactor] #2631 create_named_art() を呼んでいる関数群を整形した
authorHourier <66951241+Hourier@users.noreply.github.com>
Wed, 14 Sep 2022 12:38:21 +0000 (21:38 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Wed, 14 Sep 2022 12:40:47 +0000 (21:40 +0900)
src/monster-floor/monster-death.cpp
src/monster-floor/special-death-switcher.cpp

index 2c56917..18fdba1 100644 (file)
@@ -184,35 +184,38 @@ bool drop_single_artifact(PlayerType *player_ptr, monster_death_type *md_ptr, Fi
         return false;
     }
 
-    if (create_named_art(player_ptr, a_idx, md_ptr->md_y, md_ptr->md_x)) {
-        if (w_ptr->character_dungeon) {
-            a_ref.floor_id = player_ptr->floor_id;
-        }
+    if (!create_named_art(player_ptr, a_idx, md_ptr->md_y, md_ptr->md_x)) {
+        return false;
+    }
 
-        return true;
+    if (w_ptr->character_dungeon) {
+        a_ref.floor_id = player_ptr->floor_id;
     }
-    return false;
+
+    return true;
 }
 
 static KIND_OBJECT_IDX drop_dungeon_final_artifact(PlayerType *player_ptr, monster_death_type *md_ptr, FixedArtifactId a_idx)
 {
-    auto k_idx = d_info[player_ptr->dungeon_idx].final_object != 0 ? d_info[player_ptr->dungeon_idx].final_object : lookup_kind(ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT);
-    if (d_info[player_ptr->dungeon_idx].final_artifact == FixedArtifactId::NONE) {
+    const auto &dungeon = d_info[player_ptr->dungeon_idx];
+    auto k_idx = dungeon.final_object != 0 ? dungeon.final_object : lookup_kind(ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT);
+    if (dungeon.final_artifact == FixedArtifactId::NONE) {
         return k_idx;
     }
 
-    a_idx = d_info[player_ptr->dungeon_idx].final_artifact;
+    a_idx = dungeon.final_artifact;
     auto &a_ref = a_info.at(a_idx);
     if (a_ref.is_generated) {
         return k_idx;
     }
+
     if (create_named_art(player_ptr, a_idx, md_ptr->md_y, md_ptr->md_x)) {
         if (w_ptr->character_dungeon) {
             a_ref.floor_id = player_ptr->floor_id;
         }
     }
 
-    return d_info[player_ptr->dungeon_idx].final_object ? k_idx : 0;
+    return dungeon.final_object ? k_idx : 0;
 }
 
 static void drop_artifact(PlayerType *player_ptr, monster_death_type *md_ptr)
index c4daa95..a88327a 100644 (file)
@@ -186,13 +186,13 @@ static void on_dead_sacred_treasures(PlayerType *player_ptr, monster_death_type
         a_ptr = &a_info.at(a_idx);
     } while (a_ptr->is_generated);
 
-    if (create_named_art(player_ptr, a_idx, md_ptr->md_y, md_ptr->md_x)) {
-        if (w_ptr->character_dungeon) {
-            a_ptr->floor_id = player_ptr->floor_id;
-        }
-
+    if (!create_named_art(player_ptr, a_idx, md_ptr->md_y, md_ptr->md_x)) {
         return;
     }
+
+    if (w_ptr->character_dungeon) {
+        a_ptr->floor_id = player_ptr->floor_id;
+    }
 }
 
 static void on_dead_serpent(PlayerType *player_ptr, monster_death_type *md_ptr)