OSDN Git Service

[Refactor] #40014 Moved monster_drop_carried_objects() from monster2.c/h to monster...
authorHourier <hourier@users.sourceforge.jp>
Thu, 11 Jun 2020 11:41:49 +0000 (20:41 +0900)
committerHourier <hourier@users.sourceforge.jp>
Thu, 11 Jun 2020 11:41:49 +0000 (20:41 +0900)
src/cmd-action/cmd-pet.c
src/monster/monster-death.c
src/monster/monster-object.c
src/monster/monster-object.h
src/monster/monster2.c
src/monster/monster2.h

index cb7c680..69ee278 100644 (file)
@@ -14,9 +14,9 @@
 #include "monster/monster-describer.h"
 #include "monster/monster-description-types.h"
 #include "monster/monster-info.h"
+#include "monster/monster-object.h"
 #include "monster/monster-remover.h"
 #include "monster/monster-status.h"
-#include "monster/monster2.h"
 #include "monster/smart-learn-types.h"
 #include "object/object-hook.h"
 #include "pet/pet-util.h"
index e93601f..110e0ad 100644 (file)
@@ -24,6 +24,7 @@
 #include "monster/monster-flag-types.h"
 #include "monster/monster-generator.h"
 #include "monster/monster-info.h"
+#include "monster/monster-object.h"
 #include "monster/monster2.h"
 #include "monster/place-monster-types.h"
 #include "monster/smart-learn-types.h"
index ac98eab..36b62ca 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * @brief モンスターが移動した結果、床のアイテムに重なった時の処理
+ * @brief モンスターが移動した結果、床のアイテムに重なった時の処理と、モンスターがアイテムを落とす処理
  * @date 2020/03/07
  * @author Hourier
  */
@@ -16,6 +16,7 @@
 #include "object-enchant/tr-types.h"
 #include "object/object-flags.h"
 #include "object/object-flavor.h"
+#include "object/object-generator.h"
 #include "object/object-hook.h"
 #include "object/object-mark-types.h"
 
@@ -156,3 +157,28 @@ void update_object_by_monster_movement(player_type *target_ptr, turn_flags *turn
                monster_pickup_object(target_ptr, turn_flags_ptr, m_idx, o_ptr, is_special_object, ny, nx, m_name, o_name, this_o_idx);
        }
 }
+
+/*!
+ * @brief モンスターが盗みや拾いで確保していたアイテムを全てドロップさせる / Drop all items carried by a monster
+ * @param player_ptr プレーヤーへの参照ポインタ
+ * @param m_ptr モンスター参照ポインタ
+ * @return なし
+ */
+void monster_drop_carried_objects(player_type *player_ptr, monster_type *m_ptr)
+{
+    OBJECT_IDX next_o_idx = 0;
+    for (OBJECT_IDX this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx) {
+        object_type forge;
+        object_type *o_ptr;
+        object_type *q_ptr;
+        o_ptr = &player_ptr->current_floor_ptr->o_list[this_o_idx];
+        next_o_idx = o_ptr->next_o_idx;
+        q_ptr = &forge;
+        object_copy(q_ptr, o_ptr);
+        q_ptr->held_m_idx = 0;
+        delete_object_idx(player_ptr, this_o_idx);
+        (void)drop_near(player_ptr, q_ptr, -1, m_ptr->fy, m_ptr->fx);
+    }
+
+    m_ptr->hold_o_idx = 0;
+}
index 2314bfc..78050d7 100644 (file)
@@ -1,12 +1,7 @@
-/*!
- * @brief monster-processのための構造体群
- * @date 2020/03/07
- * @author Hourier
- */
-
-#pragma once
+#pragma once
 
 #include "system/angband.h"
 #include "monster/monster-processor-util.h"
 
 void update_object_by_monster_movement(player_type *target_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, POSITION ny, POSITION nx);
+void monster_drop_carried_objects(player_type *player_ptr, monster_type *m_ptr);
index 1c07645..b3884e8 100644 (file)
@@ -403,33 +403,6 @@ SPEED get_mspeed(player_type *player_ptr, monster_race *r_ptr)
 }
 
 /*!
- * @brief モンスターが盗みや拾いで確保していたアイテムを全てドロップさせる / Drop all items carried by a monster
- * @param player_ptr プレーヤーへの参照ポインタ
- * @param m_ptr モンスター参照ポインタ
- * @return なし
- */
-void monster_drop_carried_objects(player_type *player_ptr, monster_type *m_ptr)
-{
-    floor_type *floor_ptr = player_ptr->current_floor_ptr;
-    OBJECT_IDX next_o_idx = 0;
-    for (OBJECT_IDX this_o_idx = m_ptr->hold_o_idx; this_o_idx; this_o_idx = next_o_idx) {
-        object_type forge;
-        object_type *o_ptr;
-        object_type *q_ptr;
-        o_ptr = &floor_ptr->o_list[this_o_idx];
-        next_o_idx = o_ptr->next_o_idx;
-        q_ptr = &forge;
-
-        object_copy(q_ptr, o_ptr);
-        q_ptr->held_m_idx = 0;
-        delete_object_idx(player_ptr, this_o_idx);
-        (void)drop_near(player_ptr, q_ptr, -1, m_ptr->fy, m_ptr->fx);
-    }
-
-    m_ptr->hold_o_idx = 0;
-}
-
-/*!
  * @brief 指定したモンスターに隣接しているモンスターの数を返す。
  * / Count number of adjacent monsters
  * @param player_ptr プレーヤーへの参照ポインタ
index c650127..24b2ff9 100644 (file)
@@ -10,6 +10,4 @@ MONSTER_IDX m_pop(floor_type *floor_ptr);
 MONRACE_IDX get_mon_num(player_type *player_ptr, DEPTH level, BIT_FLAGS option);
 void choose_new_monster(player_type *player_ptr, MONSTER_IDX m_idx, bool born, MONRACE_IDX r_idx);
 SPEED get_mspeed(player_type *player_ptr, monster_race *r_ptr);
-void monster_drop_carried_objects(player_type *player_ptr, monster_type *m_ptr);
-
 int get_monster_crowd_number(floor_type *floor_ptr, MONSTER_IDX m_idx);