From 6148024bf0efc00003be05b052da2aefc2a3aec0 Mon Sep 17 00:00:00 2001 From: Hourier Date: Tue, 2 Jun 2020 00:36:08 +0900 Subject: [PATCH] [Refactor] #40399 Separated bow.c/h from object2.c/h --- Hengband/Hengband/Hengband.vcxproj | 2 ++ Hengband/Hengband/Hengband.vcxproj.filters | 6 +++++ src/Makefile.am | 1 + src/object/bow.c | 33 ++++++++++++++++++++++++++ src/object/bow.h | 5 ++++ src/object/object2.c | 38 ------------------------------ src/object/object2.h | 1 - src/player/player-status.c | 1 + src/spell/spells1.h | 1 + 9 files changed, 49 insertions(+), 39 deletions(-) create mode 100644 src/object/bow.c create mode 100644 src/object/bow.h diff --git a/Hengband/Hengband/Hengband.vcxproj b/Hengband/Hengband/Hengband.vcxproj index 4038612c7..a63fa25d7 100644 --- a/Hengband/Hengband/Hengband.vcxproj +++ b/Hengband/Hengband/Hengband.vcxproj @@ -211,6 +211,7 @@ + @@ -494,6 +495,7 @@ + diff --git a/Hengband/Hengband/Hengband.vcxproj.filters b/Hengband/Hengband/Hengband.vcxproj.filters index f9282aa7d..808846097 100644 --- a/Hengband/Hengband/Hengband.vcxproj.filters +++ b/Hengband/Hengband/Hengband.vcxproj.filters @@ -1082,6 +1082,9 @@ realm + + object + @@ -2314,6 +2317,9 @@ realm + + object + diff --git a/src/Makefile.am b/src/Makefile.am index 7f625567a..fe6a174d0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -291,6 +291,7 @@ hengband_SOURCES = \ mutation/mutation-processor.c mutation/mutation-processor.h \ \ object/artifact.c object/artifact.h \ + object/bow.c object/bow.h \ object/chest.c object/chest.h \ object/death-scythe.c object/death-scythe.h \ object/object1.c object/object1.h \ diff --git a/src/object/bow.c b/src/object/bow.c new file mode 100644 index 000000000..9267eb0a1 --- /dev/null +++ b/src/object/bow.c @@ -0,0 +1,33 @@ +#include "object/bow.h" +#include "object/sv-bow-types.h" + +/*! + * @brief 射撃武器に対応する矢/弾薬のベースアイテムIDを返す / + * @param o_ptr 判定する射撃武器のアイテム情報参照ポインタ + * @return 対応する矢/弾薬のベースアイテムID + */ +int bow_tval_ammo(object_type *o_ptr) +{ + switch (o_ptr->sval) { + case SV_SLING: { + return TV_SHOT; + } + + case SV_SHORT_BOW: + case SV_LONG_BOW: + case SV_NAMAKE_BOW: { + return TV_ARROW; + } + + case SV_LIGHT_XBOW: + case SV_HEAVY_XBOW: { + return TV_BOLT; + } + case SV_CRIMSON: + case SV_HARP: { + return TV_NO_AMMO; + } + } + + return 0; +} diff --git a/src/object/bow.h b/src/object/bow.h new file mode 100644 index 000000000..223fc25fb --- /dev/null +++ b/src/object/bow.h @@ -0,0 +1,5 @@ +#pragma once + +#include "system/angband.h" + +int bow_tval_ammo(object_type *o_ptr); diff --git a/src/object/object2.c b/src/object/object2.c index d5b255d8e..aa21eddbb 100644 --- a/src/object/object2.c +++ b/src/object/object2.c @@ -36,7 +36,6 @@ #include "object/special-object-flags.h" #include "object/sv-amulet-types.h" #include "object/sv-armor-types.h" -#include "object/sv-bow-types.h" #include "object/sv-lite-types.h" #include "object/sv-other-types.h" #include "object/sv-protector-types.h" @@ -3401,40 +3400,3 @@ INVENTORY_IDX inven_takeoff(player_type *owner_ptr, INVENTORY_IDX item, ITEM_NUM return slot; } - - -/*! - * @brief 射撃武器に対応する矢/弾薬のベースアイテムIDを返す / - * @param o_ptr 判定する射撃武器のアイテム情報参照ポインタ - * @return 対応する矢/弾薬のベースアイテムID - */ -int bow_tval_ammo(object_type *o_ptr) -{ - switch (o_ptr->sval) - { - case SV_SLING: - { - return TV_SHOT; - } - - case SV_SHORT_BOW: - case SV_LONG_BOW: - case SV_NAMAKE_BOW: - { - return TV_ARROW; - } - - case SV_LIGHT_XBOW: - case SV_HEAVY_XBOW: - { - return TV_BOLT; - } - case SV_CRIMSON: - case SV_HARP: - { - return TV_NO_AMMO; - } - } - - return 0; -} diff --git a/src/object/object2.h b/src/object/object2.h index 50196ce5d..58ede976c 100644 --- a/src/object/object2.h +++ b/src/object/object2.h @@ -6,7 +6,6 @@ extern OBJECT_SUBTYPE_VALUE coin_type; extern bool (*get_obj_num_hook)(KIND_OBJECT_IDX k_idx); -int bow_tval_ammo(object_type *o_ptr); s32b flag_cost(object_type *o_ptr, int plusses); void excise_object_idx(floor_type *floor_ptr, OBJECT_IDX o_idx); void delete_object_idx(player_type *owner_ptr, OBJECT_IDX o_idx); diff --git a/src/player/player-status.c b/src/player/player-status.c index fe86a974a..7d3540ead 100644 --- a/src/player/player-status.c +++ b/src/player/player-status.c @@ -27,6 +27,7 @@ #include "monster/monster.h" #include "mutation/mutation.h" #include "object/artifact.h" +#include "object/bow.h" #include "object/object-appraiser.h" #include "object/object-ego.h" #include "object/object-hook.h" diff --git a/src/spell/spells1.h b/src/spell/spells1.h index 3e2abd610..6802578e5 100644 --- a/src/spell/spells1.h +++ b/src/spell/spells1.h @@ -1,6 +1,7 @@ #pragma once #include "object/object-util.h" +#include "object/tval-types.h" #include "realm/realm-names-table.h" bool in_disintegration_range(floor_type *floor_ptr, POSITION y1, POSITION x1, POSITION y2, POSITION x2); -- 2.11.0