OSDN Git Service

cea9ad8112ead8aff5046f14f9812f861ef8bd77
[hengband/hengband.git] / src / inventory / pack-overflow.c
1 #include "system/angband.h"
2 #include "inventory/pack-overflow.h"
3 #include "player/player-move.h"
4 #include "object/object-flavor.h"
5 #include "core/stuff-handler.h"
6
7 /*!
8  * @brief アイテムの所持種類数が超えた場合にアイテムを床に落とす処理
9  * @return なし
10  */
11 void pack_overflow(player_type* owner_ptr)
12 {
13     if (owner_ptr->inventory_list[INVEN_PACK].k_idx == 0)
14         return;
15
16     GAME_TEXT o_name[MAX_NLEN];
17     object_type* o_ptr;
18     update_creature(owner_ptr);
19     if (!owner_ptr->inventory_list[INVEN_PACK].k_idx)
20         return;
21
22     o_ptr = &owner_ptr->inventory_list[INVEN_PACK];
23     disturb(owner_ptr, FALSE, TRUE);
24     msg_print(_("ザックからアイテムがあふれた!", "Your pack overflows!"));
25
26     object_desc(owner_ptr, o_name, o_ptr, 0);
27     msg_format(_("%s(%c)を落とした。", "You drop %s (%c)."), o_name, index_to_label(INVEN_PACK));
28     (void)drop_near(owner_ptr, o_ptr, 0, owner_ptr->y, owner_ptr->x);
29
30     vary_item(owner_ptr, INVEN_PACK, -255);
31     handle_stuff(owner_ptr);
32 }