#include "angband.h"
-#include "projection.h"
+#include "util.h"
+
+#include "player-race.h"
#include "spells-summon.h"
#include "avatar.h"
#include "player-status.h"
+#include "player-effects.h"
+#include "player-class.h"
+#include "spells.h"
#include "spells-status.h"
+#include "spells-floor.h"
+#include "object-hook.h"
+#include "cmd-basic.h"
+#include "floor.h"
+#include "objectkind.h"
+#include "view-mainwindow.h"
const int times = randint1(powerful ? 8 : 4);
for (k = 0; k < times; k++)
{
- if (summon_specific(0, p_ptr->y, p_ptr->x, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET), '\0'))
+ if (summon_specific(0, p_ptr->y, p_ptr->x, current_floor_ptr->dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET)))
{
ident = TRUE;
}
case SV_STAFF_THE_MAGI:
{
- if (do_res_stat(A_INT)) ident = TRUE;
+ if (do_res_stat(p_ptr, A_INT)) ident = TRUE;
ident |= restore_mana(FALSE);
if (set_shero(0, TRUE)) ident = TRUE;
break;
case SV_STAFF_EARTHQUAKES:
{
- if (earthquake(p_ptr->y, p_ptr->x, (powerful ? 15 : 10)))
+ if (earthquake(p_ptr->y, p_ptr->x, (powerful ? 15 : 10), 0))
ident = TRUE;
else
msg_print(_("ダンジョンが揺れた。", "The dungeon trembles."));
case SV_STAFF_NOTHING:
{
msg_print(_("何も起らなかった。", "Nothing happen."));
- if (prace_is_(RACE_SKELETON) || prace_is_(RACE_GOLEM) ||
- prace_is_(RACE_ZOMBIE) || prace_is_(RACE_SPECTRE))
+ if (PRACE_IS_(p_ptr, RACE_SKELETON) || PRACE_IS_(p_ptr, RACE_GOLEM) ||
+ PRACE_IS_(p_ptr, RACE_ZOMBIE) || PRACE_IS_(p_ptr, RACE_SPECTRE))
msg_print(_("もったいない事をしたような気がする。食べ物は大切にしなくては。", "What a waste. It's your food!"));
break;
}
* One charge of one staff disappears.
* Hack -- staffs of identify can be "cancelled".
*/
-void do_cmd_use_staff_aux(INVENTORY_IDX item)
+void exe_use_staff(INVENTORY_IDX item)
{
int ident, chance, lev;
object_type *o_ptr;
/* 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];
}
}
- take_turn(p_ptr, 100);;
+ take_turn(p_ptr, 100);
- /* Extract the item level */
lev = k_info[o_ptr->k_idx].level;
if (lev > 50) lev = 50 + (lev - 50) / 2;
object_type forge;
object_type *q_ptr;
q_ptr = &forge;
-
- /* Obtain a local object */
object_copy(q_ptr, o_ptr);
/* Modify quantity */
set_action(ACTION_NONE);
}
- /* Restrict choices to wands */
- item_tester_tval = TV_STAFF;
-
q = _("どの杖を使いますか? ", "Use which staff? ");
s = _("使える杖がない。", "You have no staff to use.");
+ if (!choose_object(&item, q, s, (USE_INVEN | USE_FLOOR), TV_STAFF)) return;
- if (!choose_object(&item, q, s, (USE_INVEN | USE_FLOOR))) return;
-
- do_cmd_use_staff_aux(item);
+ exe_use_staff(item);
}