From: Hourier Date: Tue, 2 Jun 2020 08:52:21 +0000 (+0900) Subject: [Refactor] #40399 Moved floor_increase() and floor_optimize() from object2.c/h to... X-Git-Tag: vmacos3.0.0-alpha52~937^2~32 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=77cca58f81c48ffc3d09236f4e9e033b52012e05;p=hengbandforosx%2Fhengbandosx.git [Refactor] #40399 Moved floor_increase() and floor_optimize() from object2.c/h to floor-object.c/h --- diff --git a/src/birth/inventory-initializer.c b/src/birth/inventory-initializer.c index bbf0332c6..435245538 100644 --- a/src/birth/inventory-initializer.c +++ b/src/birth/inventory-initializer.c @@ -1,6 +1,7 @@ #include "birth/inventory-initializer.h" #include "autopick/autopick.h" #include "birth/initial-equipments-table.h" +#include "floor/floor-object.h" #include "inventory/inventory-object.h" #include "monster/monster-race-hook.h" #include "object/item-apply-magic.h" diff --git a/src/cmd-item/cmd-item.c b/src/cmd-item/cmd-item.c index bf144b647..a8704bda1 100644 --- a/src/cmd-item/cmd-item.c +++ b/src/cmd-item/cmd-item.c @@ -25,6 +25,7 @@ #include "core/sort.h" #include "core/stuff-handler.h" #include "dungeon/quest.h" +#include "floor/floor-object.h" #include "inventory/inventory-object.h" #include "inventory/player-inventory.h" #include "io/targeting.h" diff --git a/src/cmd/cmd-basic.c b/src/cmd/cmd-basic.c index 1a77b5e6e..37132d9b7 100644 --- a/src/cmd/cmd-basic.c +++ b/src/cmd/cmd-basic.c @@ -22,6 +22,7 @@ #include "dungeon/dungeon.h" #include "dungeon/quest.h" #include "effect/spells-effect-util.h" +#include "floor/floor-object.h" #include "floor/geometry.h" #include "floor/wild.h" #include "grid/grid.h" diff --git a/src/floor/floor-object.c b/src/floor/floor-object.c index f1282f26a..1b3fe0789 100644 --- a/src/floor/floor-object.c +++ b/src/floor/floor-object.c @@ -166,3 +166,42 @@ void delete_all_items_from_floor(player_type *player_ptr, POSITION y, POSITION x g_ptr->o_idx = 0; lite_spot(player_ptr, y, x); } + +/*! + * @brief 床上のアイテムの数を増やす / + * Increase the "number" of an item on the floor + * @param floo_ptr 現在フロアへの参照ポインタ + * @param item 増やしたいアイテムの所持スロット + * @param num 増やしたいアイテムの数 + * @return なし + */ +void floor_item_increase(floor_type *floor_ptr, INVENTORY_IDX item, ITEM_NUMBER num) +{ + object_type *o_ptr = &floor_ptr->o_list[item]; + num += o_ptr->number; + if (num > 255) + num = 255; + else if (num < 0) + num = 0; + + num -= o_ptr->number; + o_ptr->number += num; +} + +/*! + * @brief 床上の数の無くなったアイテムスロットを消去する / + * Optimize an item on the floor (destroy "empty" items) + * @param player_ptr プレーヤーへの参照ポインタ + * @param item 消去したいアイテムの所持スロット + * @return なし + */ +void floor_item_optimize(player_type *owner_ptr, INVENTORY_IDX item) +{ + object_type *o_ptr = &owner_ptr->current_floor_ptr->o_list[item]; + if (!o_ptr->k_idx) + return; + if (o_ptr->number) + return; + + delete_object_idx(owner_ptr, item); +} diff --git a/src/floor/floor-object.h b/src/floor/floor-object.h index e7bc63caa..166ea3e85 100644 --- a/src/floor/floor-object.h +++ b/src/floor/floor-object.h @@ -5,3 +5,5 @@ bool make_object(player_type *owner_ptr, object_type *j_ptr, BIT_FLAGS mode); bool make_gold(floor_type *floor_ptr, object_type *j_ptr); void delete_all_items_from_floor(player_type *owner_ptr, POSITION y, POSITION x); +void floor_item_increase(floor_type *floor_ptr, INVENTORY_IDX item, ITEM_NUMBER num); +void floor_item_optimize(player_type *owner_ptr, INVENTORY_IDX item); diff --git a/src/inventory/inventory-object.c b/src/inventory/inventory-object.c index 0f18bd485..a7296fea6 100644 --- a/src/inventory/inventory-object.c +++ b/src/inventory/inventory-object.c @@ -1,4 +1,5 @@ #include "inventory/inventory-object.h" +#include "floor/floor-object.h" #include "object/object-flavor.h" #include "object/object-mark-types.h" #include "object/object-value.h" diff --git a/src/object/object2.c b/src/object/object2.c index aa21eddbb..af592e274 100644 --- a/src/object/object2.c +++ b/src/object/object2.c @@ -912,7 +912,6 @@ void object_prep(object_type *o_ptr, KIND_OBJECT_IDX k_idx) /*! - * * @brief アイテムのエゴをレア度の重みに合わせてランダムに選択する * Choose random ego type * @param slot 取得したいエゴの装備部位 @@ -3206,43 +3205,6 @@ void floor_item_describe(player_type *owner_ptr, INVENTORY_IDX item) /*! - * @brief 床上のアイテムの数を増やす / - * Increase the "number" of an item on the floor - * @param floo_ptr 現在フロアへの参照ポインタ - * @param item 増やしたいアイテムの所持スロット - * @param num 増やしたいアイテムの数 - * @return なし - */ -void floor_item_increase(floor_type *floor_ptr, INVENTORY_IDX item, ITEM_NUMBER num) -{ - object_type *o_ptr = &floor_ptr->o_list[item]; - num += o_ptr->number; - if (num > 255) num = 255; - else if (num < 0) num = 0; - - num -= o_ptr->number; - o_ptr->number += num; -} - - -/*! - * @brief 床上の数の無くなったアイテムスロットを消去する / - * Optimize an item on the floor (destroy "empty" items) - * @param player_ptr プレーヤーへの参照ポインタ - * @param item 消去したいアイテムの所持スロット - * @return なし - */ -void floor_item_optimize(player_type *owner_ptr, INVENTORY_IDX item) -{ - object_type *o_ptr = &owner_ptr->current_floor_ptr->o_list[item]; - if (!o_ptr->k_idx) return; - if (o_ptr->number) return; - - delete_object_idx(owner_ptr, item); -} - - -/*! * todo ここのp_ptrだけは抜けない……関数ポインタの嵐でにっちもさっちもいかない * @brief アイテムを拾う際にザックから溢れずに済むかを判定する / * Check if we have space for an item in the pack without overflow diff --git a/src/object/object2.h b/src/object/object2.h index 58ede976c..82a3f85c9 100644 --- a/src/object/object2.h +++ b/src/object/object2.h @@ -30,8 +30,6 @@ void apply_magic(player_type *owner_type, object_type *o_ptr, DEPTH lev, BIT_FLA OBJECT_IDX drop_near(player_type *owner_type, object_type *o_ptr, PERCENTAGE chance, POSITION y, POSITION x); void floor_item_charges(floor_type *owner_ptr, INVENTORY_IDX item); -void floor_item_increase(floor_type *floor_ptr, INVENTORY_IDX item, ITEM_NUMBER num); -void floor_item_optimize(player_type *owner_ptr, INVENTORY_IDX item); bool inven_carry_okay(object_type *o_ptr); bool object_sort_comp(object_type *o_ptr, s32b o_value, object_type *j_ptr); INVENTORY_IDX inven_takeoff(player_type *owner_ptr, INVENTORY_IDX item, ITEM_NUMBER amt); diff --git a/src/spell/spells3.c b/src/spell/spells3.c index 827cc30b9..3b990ba1d 100644 --- a/src/spell/spells3.c +++ b/src/spell/spells3.c @@ -23,6 +23,7 @@ #include "dungeon/quest.h" #include "effect/effect-characteristics.h" #include "effect/spells-effect-util.h" +#include "floor/floor-object.h" #include "floor/floor-save.h" #include "floor/floor-town.h" #include "floor/wild.h"