#include "angband.h"
+#include "util.h"
+
+#include "avatar.h"
+#include "player-status.h"
+#include "player-effects.h"
+#include "objectkind.h"
+#include "object-hook.h"
+#include "spells.h"
+#include "spells-status.h"
+#include "spells-floor.h"
+#include "cmd-basic.h"
+#include "floor.h"
/*!
* @brief ロッドの効果を発動する
case SV_ROD_RECALL:
{
- if (!word_of_recall()) *use_charge = FALSE;
+ if (!recall_player(p_ptr, randint0(21) + 15)) *use_charge = FALSE;
ident = TRUE;
break;
}
/* Get the item (in the pack) */
if (item >= 0)
{
- o_ptr = &inventory[item];
+ o_ptr = &p_ptr->inventory_list[item];
}
/* Get the item (on the floor) */
else
{
- o_ptr = &o_list[0 - item];
+ o_ptr = ¤t_floor_ptr->o_list[0 - item];
}
}
- p_ptr->energy_use = 100;
+ take_turn(p_ptr, 100);
/* Extract the item level */
lev = k_info[o_ptr->k_idx].level;
if (fail < USE_DEVICE) fail = USE_DEVICE;
if (chance < USE_DEVICE) chance = USE_DEVICE;
- if (world_player)
- {
- if (flush_failure) flush();
- msg_print(_("止まった時の中ではうまく働かないようだ。", "Nothing happen. Maybe this rod is freezing too."));
- sound(SOUND_FAIL);
- return;
- }
+ if (cmd_limit_time_walk(p_ptr)) return;
if (p_ptr->pclass == CLASS_BERSERKER) success = FALSE;
else if (chance > fail)
/* Increase the timeout by the rod kind's pval. -LM- */
if (use_charge) o_ptr->timeout += k_ptr->pval;
-
- /* Combine / Reorder the pack (later) */
p_ptr->update |= (PU_COMBINE | PU_REORDER);
if (!(object_is_aware(o_ptr)))
void do_cmd_zap_rod(void)
{
OBJECT_IDX item;
- cptr q, s;
+ concptr q, s;
if (p_ptr->wild_mode)
{
return;
}
- if (p_ptr->inside_arena)
- {
- msg_print(_("アリーナが魔法を吸収した!", "The arena absorbs all attempted magic!"));
- msg_print(NULL);
- return;
- }
+ if (cmd_limit_arena(p_ptr)) return;
if (p_ptr->special_defense & (KATA_MUSOU | KATA_KOUKIJIN))
{
q = _("どのロッドを振りますか? ", "Zap which rod? ");
s = _("使えるロッドがない。", "You have no rod to zap.");
- if (!get_item(&item, q, s, (USE_INVEN | USE_FLOOR))) return;
+ if (!choose_object(&item, q, s, (USE_INVEN | USE_FLOOR))) return;
/* Zap the rod */
do_cmd_zap_rod_aux(item);