if (!o_ptr->k_idx) continue;
/* Make sure we can wield it and that there's nothing else in that slot */
- slot = wield_slot(o_ptr);
+ slot = wield_slot(creature_ptr, o_ptr);
if (slot < INVEN_RARM) continue;
if (slot == INVEN_LITE) continue; /* Does not wield toaches because buys a lantern soon */
if (creature_ptr->inventory_list[slot].k_idx) continue;
if (!o_ptr) return;
/* Check the slot */
- slot = wield_slot(o_ptr);
+ slot = wield_slot(creature_ptr, o_ptr);
switch (o_ptr->tval)
{
if (p_ptr->psex == SEX_MALE) return FALSE;
/* Check for a usable slot */
- if (wield_slot(o_ptr) >= INVEN_RARM) return (TRUE);
+ if (wield_slot(p_ptr, o_ptr) >= INVEN_RARM) return (TRUE);
return (FALSE);
}
extern bool screen_object(object_type *o_ptr, BIT_FLAGS mode);
extern char index_to_label(int i);
-extern s16b wield_slot(object_type *o_ptr);
+extern s16b wield_slot(player_type *owner_ptr, object_type *o_ptr);
extern bool check_book_realm(const OBJECT_TYPE_VALUE book_tval, const OBJECT_SUBTYPE_VALUE book_sval);
* @param o_ptr 名称を取得する元のオブジェクト構造体参照ポインタ
* @return 対応する装備部位ID
*/
-s16b wield_slot(object_type *o_ptr)
+s16b wield_slot(player_type *owner_ptr, object_type *o_ptr)
{
/* Slot for equipment */
switch (o_ptr->tval)
case TV_POLEARM:
case TV_SWORD:
{
- if (!p_ptr->inventory_list[INVEN_RARM].k_idx) return (INVEN_RARM);
- if (p_ptr->inventory_list[INVEN_LARM].k_idx) return (INVEN_RARM);
+ if (!owner_ptr->inventory_list[INVEN_RARM].k_idx) return (INVEN_RARM);
+ if (owner_ptr->inventory_list[INVEN_LARM].k_idx) return (INVEN_RARM);
return (INVEN_LARM);
}
case TV_CARD:
case TV_SHIELD:
{
- if (!p_ptr->inventory_list[INVEN_LARM].k_idx) return (INVEN_LARM);
- if (p_ptr->inventory_list[INVEN_RARM].k_idx) return (INVEN_LARM);
+ if (!owner_ptr->inventory_list[INVEN_LARM].k_idx) return (INVEN_LARM);
+ if (owner_ptr->inventory_list[INVEN_RARM].k_idx) return (INVEN_LARM);
return (INVEN_RARM);
}
case TV_RING:
{
/* Use the right hand first */
- if (!p_ptr->inventory_list[INVEN_RIGHT].k_idx) return (INVEN_RIGHT);
+ if (!owner_ptr->inventory_list[INVEN_RIGHT].k_idx) return (INVEN_RIGHT);
/* Use the left hand for swapping (by default) */
return (INVEN_LEFT);