#include "angband.h"\r
#include "object-hook.h"\r
#include "spells-summon.h"\r
+#include "artifact.h"\r
+#include "avatar.h"\r
+#include "player-status.h"\r
\r
/*!\r
* @brief 巻物を読むコマンドのサブルーチン\r
case SV_SCROLL_CURSE_WEAPON:\r
{\r
k = 0;\r
- if (buki_motteruka(INVEN_RARM))\r
+ if (has_melee_weapon(INVEN_RARM))\r
{\r
k = INVEN_RARM;\r
- if (buki_motteruka(INVEN_LARM) && one_in_(2)) k = INVEN_LARM;\r
+ if (has_melee_weapon(INVEN_LARM) && one_in_(2)) k = INVEN_LARM;\r
}\r
- else if (buki_motteruka(INVEN_LARM)) k = INVEN_LARM;\r
+ else if (has_melee_weapon(INVEN_LARM)) k = INVEN_LARM;\r
if (k && curse_weapon(FALSE, k)) ident = TRUE;\r
break;\r
}\r
\r
case SV_SCROLL_WORD_OF_RECALL:\r
{\r
- if (!word_of_recall()) used_up = FALSE;\r
+ if (!recall_player(p_ptr, randint0(21) + 15)) used_up = FALSE;\r
ident = TRUE;\r
break;\r
}\r
}\r
else if (o_ptr->tval==TV_PARCHMENT)\r
{\r
- cptr q;\r
+ concptr q;\r
GAME_TEXT o_name[MAX_NLEN];\r
char buf[1024];\r
screen_save();\r
{\r
object_type *o_ptr;\r
OBJECT_IDX item;\r
- cptr q, s;\r
+ concptr q, s;\r
+\r
+ if (p_ptr->wild_mode)\r
+ {\r
+ return;\r
+ }\r
+\r
+ if (p_ptr->inside_arena)\r
+ {\r
+ msg_print(_("アリーナが魔法を吸収した!", "The arena absorbs all attempted magic!"));\r
+ msg_print(NULL);\r
+ return;\r
+ }\r
\r
if (p_ptr->special_defense & (KATA_MUSOU | KATA_KOUKIJIN))\r
{\r
q = _("どの巻物を読みますか? ", "Read which scroll? ");\r
s = _("読める巻物がない。", "You have no scrolls to read.");\r
\r
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return;\r
-\r
- /* Get the item (in the pack) */\r
- if (item >= 0)\r
- {\r
- o_ptr = &inventory[item];\r
- }\r
-\r
- /* Get the item (on the floor) */\r
- else\r
- {\r
- o_ptr = &o_list[0 - item];\r
- }\r
+ o_ptr = choose_object(&item, q, s, (USE_INVEN | USE_FLOOR));\r
+ if (!o_ptr) return;\r
\r
/* Read the scroll */\r
do_cmd_read_scroll_aux(item, object_is_aware(o_ptr));\r