extern int show_inven(int target_item);
extern int show_equip(int target_item);
extern void toggle_inven_equip(void);
+extern bool can_get_item(void);
extern bool get_item(int *cp, cptr pmt, cptr str, int mode);
extern void excise_object_idx(int o_idx);
extern void delete_object_idx(int o_idx);
return (FALSE);
}
+/*
+ * Determine whether get_item() can get some item or not
+ * assuming mode = (USE_EQUIP | USE_INVEN | USE_FLOOR).
+ */
+bool can_get_item(void)
+{
+ int j, floor_list[23], floor_num = 0;
+ for (j = 0; j < INVEN_TOTAL; j++)
+ if (item_tester_okay(&inventory[j]))
+ return TRUE;
+
+ (void)scan_floor(floor_list, &floor_num, py, px, 0x01);
+ if (floor_num)
+ return TRUE;
+
+ return FALSE;
+}
/*
* Let the user select an item, save its "index"
else
item_tester_hook = item_tester_hook_identify;
+ if (!can_get_item())
+ {
+ if (only_equip)
+ {
+ item_tester_hook = item_tester_hook_weapon_armour;
+ }
+ else
+ {
+ item_tester_hook = NULL;
+ }
+ }
+
/* Get an item */
#ifdef JP
q = "¤É¤Î¥¢¥¤¥Æ¥à¤ò´ÕÄꤷ¤Þ¤¹¤«? ";
else
item_tester_hook = item_tester_hook_identify_fully;
+ if (!can_get_item())
+ {
+ if (only_equip)
+ item_tester_hook = item_tester_hook_weapon_armour;
+ else
+ item_tester_hook = NULL;
+ }
+
/* Get an item */
#ifdef JP
q = "¤É¤Î¥¢¥¤¥Æ¥à¤ò´ÕÄꤷ¤Þ¤¹¤«? ";