\r
\r
#include "angband.h"\r
+#include "object-hook.h"\r
\r
/*!\r
* @brief 食料を食べるコマンドのサブルーチン\r
* @param item 食べるオブジェクトの所持品ID\r
* @return なし\r
*/\r
-void do_cmd_eat_food_aux(int item)\r
+void do_cmd_eat_food_aux(INVENTORY_IDX item)\r
{\r
int ident, lev;\r
object_type *o_ptr;\r
o_ptr = &o_list[0 - item];\r
}\r
\r
- /* Sound */\r
sound(SOUND_EAT);\r
\r
- /* Take a turn */\r
p_ptr->energy_use = 100;\r
\r
/* Identity not known yet */\r
\r
case SV_FOOD_CURE_SERIOUS:\r
{\r
- if (hp_player(damroll(4, 8))) ident = TRUE;\r
+ ident = cure_serious_wounds(4, 8);\r
break;\r
}\r
\r
\r
case SV_FOOD_RESTORING:\r
{\r
- if (do_res_stat(A_STR)) ident = TRUE;\r
- if (do_res_stat(A_INT)) ident = TRUE;\r
- if (do_res_stat(A_WIS)) ident = TRUE;\r
- if (do_res_stat(A_DEX)) ident = TRUE;\r
- if (do_res_stat(A_CON)) ident = TRUE;\r
- if (do_res_stat(A_CHR)) ident = TRUE;\r
+ ident = restore_all_status();\r
break;\r
}\r
\r
}\r
\r
/* Combine / Reorder the pack (later) */\r
- p_ptr->notice |= (PN_COMBINE | PN_REORDER);\r
+ p_ptr->update |= (PU_COMBINE | PU_REORDER);\r
\r
if (!(object_is_aware(o_ptr)))\r
{\r
gain_exp((lev + (p_ptr->lev >> 1)) / p_ptr->lev);\r
}\r
\r
- /* Window stuff */\r
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);\r
\r
\r
o_ptr->ident |= (IDENT_EMPTY);\r
\r
/* Combine / Reorder the pack (later) */\r
- p_ptr->notice |= (PN_COMBINE | PN_REORDER);\r
+ p_ptr->update |= (PU_COMBINE | PU_REORDER);\r
p_ptr->window |= (PW_INVEN);\r
\r
return;\r
{\r
object_type forge;\r
object_type *q_ptr;\r
-\r
- /* Get local object */\r
q_ptr = &forge;\r
\r
/* Obtain a local object */\r
p_ptr->total_weight -= q_ptr->weight;\r
item = inven_carry(q_ptr);\r
\r
- /* Message */\r
msg_format(_("杖をまとめなおした。", "You unstack your staff."));\r
}\r
\r
floor_item_charges(0 - item);\r
}\r
\r
- /* Window stuff */\r
p_ptr->window |= (PW_INVEN | PW_EQUIP);\r
\r
/* Don't eat a staff/wand itself */\r
my_strchr("pht", r_info[o_ptr->pval].d_char)))\r
{\r
/* Drain vitality of humanoids */\r
- char o_name[MAX_NLEN];\r
+ GAME_TEXT o_name[MAX_NLEN];\r
object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));\r
msg_format(_("%sは燃え上り灰になった。精力を吸収した気がする。", "%^s is burnt to ashes. You absorb its vitality!"), o_name);\r
(void)set_food(PY_FOOD_MAX - 1);\r
object_type *q_ptr = &forge;\r
\r
msg_print(_("食べ物がアゴを素通りして落ちた!", "The food falls through your jaws!"));\r
-\r
- /* Create the item */\r
object_prep(q_ptr, lookup_kind(o_ptr->tval, o_ptr->sval));\r
\r
/* Drop the object from heaven */\r
\r
\r
/*!\r
- * @brief オブジェクトをプレイヤーが食べることができるかを判定する /\r
- * Hook to determine if an object is eatable\r
- * @param o_ptr 判定したいオブジェクトの構造体参照ポインタ\r
- * @return 食べることが可能ならばTRUEを返す\r
- */\r
-static bool item_tester_hook_eatable(object_type *o_ptr)\r
-{\r
- if (o_ptr->tval == TV_FOOD) return TRUE;\r
-\r
-#if 0\r
- if (prace_is_(RACE_SKELETON))\r
- {\r
- if (o_ptr->tval == TV_SKELETON ||\r
- (o_ptr->tval == TV_CORPSE && o_ptr->sval == SV_SKELETON))\r
- return TRUE;\r
- }\r
- else\r
-#endif\r
-\r
- if (prace_is_(RACE_SKELETON) ||\r
- prace_is_(RACE_GOLEM) ||\r
- prace_is_(RACE_ZOMBIE) ||\r
- prace_is_(RACE_SPECTRE))\r
- {\r
- if (o_ptr->tval == TV_STAFF || o_ptr->tval == TV_WAND)\r
- return TRUE;\r
- }\r
- else if (prace_is_(RACE_DEMON) ||\r
- (mimic_info[p_ptr->mimic_form].MIMIC_FLAGS & MIMIC_IS_DEMON))\r
- {\r
- if (o_ptr->tval == TV_CORPSE &&\r
- o_ptr->sval == SV_CORPSE &&\r
- my_strchr("pht", r_info[o_ptr->pval].d_char))\r
- return TRUE;\r
- }\r
-\r
- /* Assume not */\r
- return (FALSE);\r
-}\r
-\r
-\r
-/*!\r
* @brief 食料を食べるコマンドのメインルーチン /\r
* Eat some food (from the pack or floor)\r
* @return なし\r
OBJECT_IDX item;\r
cptr q, s;\r
\r
-\r
if (p_ptr->special_defense & (KATA_MUSOU | KATA_KOUKIJIN))\r
{\r
set_action(ACTION_NONE);\r
/* Restrict choices to food */\r
item_tester_hook = item_tester_hook_eatable;\r
\r
- /* Get an item */\r
q = _("どれを食べますか? ", "Eat which item? ");\r
s = _("食べ物がない。", "You have nothing to eat.");\r
\r
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return;\r
+ if (!choose_object(&item, q, s, (USE_INVEN | USE_FLOOR))) return;\r
\r
/* Eat the object */\r
do_cmd_eat_food_aux(item);\r