{\r
int k;\r
int ident = FALSE;\r
- int lev = powerful ? p_ptr->lev * 2 : p_ptr->lev;\r
- int detect_rad = powerful ? DETECT_RAD_DEFAULT * 3 / 2 : DETECT_RAD_DEFAULT;\r
+ PLAYER_LEVEL lev = powerful ? p_ptr->lev * 2 : p_ptr->lev;\r
+ POSITION detect_rad = powerful ? DETECT_RAD_DEFAULT * 3 / 2 : DETECT_RAD_DEFAULT;\r
\r
/* Analyze the staff */\r
switch (sval)\r
bool result = powerful ? remove_all_curse() : remove_curse();\r
if (result)\r
{\r
- if (magic)\r
- {\r
- msg_print(_("誰かに見守られているような気がする。", "You feel as if someone is watching over you."));\r
- }\r
- else if (!p_ptr->blind)\r
- {\r
- msg_print(_("杖は一瞬ブルーに輝いた...", "The staff glows blue for a moment..."));\r
-\r
- }\r
ident = TRUE;\r
}\r
break;\r
\r
case SV_STAFF_CURE_LIGHT:\r
{\r
- if (hp_player(damroll((powerful ? 4 : 2), 8))) ident = TRUE;\r
- if (powerful) {\r
- if (set_blind(0)) ident = TRUE;\r
- if (set_poisoned(0)) ident = TRUE;\r
- if (set_cut(p_ptr->cut - 10)) ident = TRUE;\r
- }\r
- if (set_shero(0, TRUE)) ident = TRUE;\r
+ ident = cure_light_wounds((powerful ? 4 : 2), 8);\r
break;\r
}\r
\r
case SV_STAFF_CURING:\r
{\r
- if (set_blind(0)) ident = TRUE;\r
- if (set_poisoned(0)) ident = TRUE;\r
- if (set_confused(0)) ident = TRUE;\r
- if (set_stun(0)) ident = TRUE;\r
- if (set_cut(0)) ident = TRUE;\r
- if (set_image(0)) ident = TRUE;\r
+ ident = true_healing(0);\r
if (set_shero(0, TRUE)) ident = TRUE;\r
break;\r
}\r
\r
case SV_STAFF_HEALING:\r
{\r
- if (hp_player(powerful ? 500 : 300)) ident = TRUE;\r
- if (set_stun(0)) ident = TRUE;\r
- if (set_cut(0)) ident = TRUE;\r
- if (set_shero(0, TRUE)) ident = TRUE;\r
+ if (cure_critical_wounds(powerful ? 500 : 300)) ident = TRUE;\r
break;\r
}\r
\r
case SV_STAFF_THE_MAGI:\r
{\r
if (do_res_stat(A_INT)) ident = TRUE;\r
- if (p_ptr->csp < p_ptr->msp)\r
- {\r
- p_ptr->csp = p_ptr->msp;\r
- p_ptr->csp_frac = 0;\r
- ident = TRUE;\r
- msg_print(_("頭がハッキリとした。", "You feel your head clear."));\r
-\r
- p_ptr->redraw |= (PR_MANA);\r
- p_ptr->window |= (PW_PLAYER);\r
- p_ptr->window |= (PW_SPELL);\r
- }\r
+ ident |= restore_mana(FALSE);\r
if (set_shero(0, TRUE)) ident = TRUE;\r
break;\r
}\r
* One charge of one staff disappears.\r
* Hack -- staffs of identify can be "cancelled".\r
*/\r
-void do_cmd_use_staff_aux(int item)\r
+void do_cmd_use_staff_aux(INVENTORY_IDX item)\r
{\r
int ident, chance, lev;\r
object_type *o_ptr;\r
}\r
\r
\r
- /* Take a turn */\r
p_ptr->energy_use = 100;\r
\r
/* Extract the item level */\r
}\r
\r
\r
- /* Sound */\r
sound(SOUND_ZAP);\r
\r
ident = staff_effect(o_ptr->sval, &use_charge, FALSE, FALSE, object_is_aware(o_ptr));\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
p_ptr->total_weight -= q_ptr->weight;\r
item = inven_carry(q_ptr);\r
\r
- /* Message */\r
msg_print(_("杖をまとめなおした。", "You unstack your staff."));\r
}\r
\r
/* Restrict choices to wands */\r
item_tester_tval = TV_STAFF;\r
\r
- /* Get an item */\r
q = _("どの杖を使いますか? ", "Use which staff? ");\r
s = _("使える杖がない。", "You have no staff to use.");\r
\r