OSDN Git Service

Revert "Merge branch 'master' of git.osdn.net:/gitroot/hengband/hengband"
[hengband/hengband.git] / src / mind.c
index cc9ee89..2b010b2 100644 (file)
  */
 
 #include "angband.h"
-#include "core.h"
-#include "util.h"
-
-#include "mind.h"
-
-#include "floor.h"
 #include "melee.h"
-#include "spells.h"
+#include "projection.h"
 #include "spells-summon.h"
 #include "avatar.h"
-#include "player-move.h"
 #include "player-status.h"
-#include "player-class.h"
 #include "spells-status.h"
 #include "cmd-spell.h"
 #include "spells-floor.h"
 #include "feature.h"
 #include "grid.h"
-#include "cmd-basic.h"
-#include "monster-status.h"
-#include "player-effects.h"
-#include "player-damage.h"
-#include "view-mainwindow.h"
-#include "targeting.h"
-#include "realm-song.h"
 
 /*! 特殊技能の一覧テーブル */
 mind_power const mind_powers[5] =
@@ -441,7 +426,7 @@ static concptr const mind_tips[5][MAX_MIND_POWERS] =
        "Gives stone skin and some resistance to elements for a while. The level increased, the more number of resistances given.",
        "Gives feeling of an item. Or identify an item at level 25.",
        "Generate a ball centered on you which inflict monster with PSI damage. Or inflict all monsters with PSI damage at level 25.",
-       "Removes fear and stun. Gives heroism and speed. Heals HP a little unless you already have heroism and a temporary speed boost.",
+       "Removes fear and stun. Gives heroism and speed. Heals HP a little unless you already have heroism and temporal speed boost.",
        "Pulls a distant item close to you.",
        "Fires a ball which damages, co. Absorbing is takes more turns which from 0 to 1.5.",
        "Fires a beam of pure energy which penetrate the invulnerability barrier.",
@@ -464,7 +449,7 @@ static concptr const mind_tips[5][MAX_MIND_POWERS] =
        "Gives aura which damages all monsters which attacked you for a while.",
        "Damages an adjacent monster, and blow it away.",
        "Fires a large energy ball.",
-       "Dispels all magics which is affecting a monster.",
+       "Dispels all magics which is effecting a monster.",
        "Summons ghosts.",
        "Generates a huge ball of frame which centered on you.",
        "Fires a long, powerful energy beam.",
@@ -528,7 +513,7 @@ static concptr const mind_tips[5][MAX_MIND_POWERS] =
        "Darken nearby area and inside of a room.",
        "Detects visible monsters in your vicinity and more and more. Detects traps, doors and stairs at level 5, items at level 15. Lights and know the whole level at level 45.",
        "Teleport short distance.",
-       "Teleport as you receive an attack. Might be able to teleport just before recieveing damages at higher level.",
+       "Teleport as you recieve an attack. Might be able to teleport just before recieveing damages at higher level.",
        "Teleport long distance.",
        "Attack and teleport in a time.",
        "Attempt to freeze a monster.",
@@ -557,9 +542,9 @@ static concptr const mind_tips[5][MAX_MIND_POWERS] =
  * @param power モンスター魔法のID
  * @return なし
  */
-void mindcraft_info(player_type *caster_ptr, char *p, int use_mind, int power)
+void mindcraft_info(char *p, int use_mind, int power)
 {
-       PLAYER_LEVEL plev = caster_ptr->lev;
+       PLAYER_LEVEL plev = p_ptr->lev;
 
        strcpy(p, "");
 
@@ -585,14 +570,14 @@ void mindcraft_info(player_type *caster_ptr, char *p, int use_mind, int power)
 #endif
                case 11: sprintf(p, " %s%dd6", KWD_DAM, plev / 2);  break;
                case 12: sprintf(p, " %sd%d+%d", KWD_DAM, plev * 3, plev * 3); break;
-               case 13: sprintf(p, _(" 行動:%ld回", " %ld acts."), (long int)(caster_ptr->csp + 100-caster_ptr->energy_need - 50)/100); break;
+               case 13: sprintf(p, _(" 行動:%ld回", " %ld acts."), (long int)(p_ptr->csp + 100-p_ptr->energy_need - 50)/100); break;
                }
                break;
        case MIND_KI:
        {
                int boost = P_PTR_KI;
 
-               if (heavy_armor(caster_ptr)) boost /= 2;
+               if (heavy_armor()) boost /= 2;
 
                switch (power)
                {
@@ -689,14 +674,14 @@ void mindcraft_info(player_type *caster_ptr, char *p, int use_mind, int power)
  * when you run it. It's probably easy to fix but I haven't tried,\n
  * sorry.\n
  */
-static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool only_browse)
+static bool_hack get_mind_power(SPELL_IDX *sn, bool only_browse)
 {
        SPELL_IDX i;
        int             num = 0;
        TERM_LEN y = 1;
        TERM_LEN x = 10;
        PERCENTAGE minfail = 0;
-       PLAYER_LEVEL plev = caster_ptr->lev;
+       PLAYER_LEVEL plev = p_ptr->lev;
        PERCENTAGE chance = 0;
        int             ask = TRUE;
        char            choice;
@@ -710,7 +695,7 @@ static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool onl
        int             use_mind;
        int menu_line = (use_menu ? 1 : 0);
 
-       switch (caster_ptr->pclass)
+       switch (p_ptr->pclass)
        {
        case CLASS_MINDCRAFTER:
        {
@@ -767,12 +752,15 @@ static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool onl
                if (mind_ptr->info[*sn].min_lev <= plev)
                {
                        /* Success */
-                       return TRUE;
+                       return (TRUE);
                }
        }
 
-       flag = FALSE;
-       redraw = FALSE;
+    /* Nothing chosen yet */
+    flag = FALSE;
+
+    /* No redraw yet */
+    redraw = FALSE;
 
        for (i = 0; i < MAX_MIND_POWERS; i++)
        {
@@ -812,7 +800,7 @@ static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool onl
                                case '0':
                                {
                                        if (!only_browse) screen_load();
-                                       return FALSE;
+                                       return (FALSE);
                                }
 
                                case '8':
@@ -861,8 +849,8 @@ static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool onl
                                put_str(format(_("Lv   %s   失率 効果", "Lv   %s   Fail Info"),
                                        ((use_mind == MIND_BERSERKER) || (use_mind == MIND_NINJUTSU)) ? "HP" : "MP"), y, x + 35);
 
-                               has_weapon[0] = has_melee_weapon(caster_ptr, INVEN_RARM);
-                               has_weapon[1] = has_melee_weapon(caster_ptr, INVEN_LARM);
+                               has_weapon[0] = has_melee_weapon(INVEN_RARM);
+                               has_weapon[1] = has_melee_weapon(INVEN_LARM);
 
                                /* Dump the spells */
                                for (i = 0; i < MAX_MIND_POWERS; i++)
@@ -884,14 +872,14 @@ static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool onl
                                                chance -= 3 * (plev - spell.min_lev);
 
                                                /* Reduce failure rate by INT/WIS adjustment */
-                                               chance -= 3 * (adj_mag_stat[caster_ptr->stat_ind[mp_ptr->spell_stat]] - 1);
+                                               chance -= 3 * (adj_mag_stat[p_ptr->stat_ind[mp_ptr->spell_stat]] - 1);
 
                                                if (use_mind == MIND_KI)
                                                {
-                                                       if (heavy_armor(caster_ptr)) chance += 20;
-                                                       if (caster_ptr->icky_wield[0]) chance += 20;
+                                                       if (heavy_armor()) chance += 20;
+                                                       if (p_ptr->icky_wield[0]) chance += 20;
                                                        else if (has_weapon[0]) chance += 10;
-                                                       if (caster_ptr->icky_wield[1]) chance += 20;
+                                                       if (p_ptr->icky_wield[1]) chance += 20;
                                                        else if (has_weapon[1]) chance += 10;
                                                        if (i == 5)
                                                        {
@@ -902,35 +890,35 @@ static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool onl
                                                }
 
                                                /* Not enough mana to cast */
-                                               if ((use_mind != MIND_BERSERKER) && (use_mind != MIND_NINJUTSU) && (mana_cost > caster_ptr->csp))
+                                               if ((use_mind != MIND_BERSERKER) && (use_mind != MIND_NINJUTSU) && (mana_cost > p_ptr->csp))
                                                {
-                                                       chance += 5 * (mana_cost - caster_ptr->csp);
+                                                       chance += 5 * (mana_cost - p_ptr->csp);
                                                }
 
-                                               chance += caster_ptr->to_m_chance;
+                                               chance += p_ptr->to_m_chance;
 
                                                /* Extract the minimum failure rate */
-                                               minfail = adj_mag_fail[caster_ptr->stat_ind[mp_ptr->spell_stat]];
+                                               minfail = adj_mag_fail[p_ptr->stat_ind[mp_ptr->spell_stat]];
 
                                                /* Minimum failure rate */
                                                if (chance < minfail) chance = minfail;
 
                                                /* Stunning makes spells harder */
-                                               if (caster_ptr->stun > 50) chance += 25;
-                                               else if (caster_ptr->stun) chance += 15;
+                                               if (p_ptr->stun > 50) chance += 25;
+                                               else if (p_ptr->stun) chance += 15;
 
                                                if (use_mind == MIND_KI)
                                                {
-                                                       if (heavy_armor(caster_ptr)) chance += 5;
-                                                       if (caster_ptr->icky_wield[0]) chance += 5;
-                                                       if (caster_ptr->icky_wield[1]) chance += 5;
+                                                       if (heavy_armor()) chance += 5;
+                                                       if (p_ptr->icky_wield[0]) chance += 5;
+                                                       if (p_ptr->icky_wield[1]) chance += 5;
                                                }
                                                /* Always a 5 percent chance of working */
                                                if (chance > 95) chance = 95;
                                        }
 
                                        /* Get info */
-                                       mindcraft_info(caster_ptr, comment, use_mind, i);
+                                       mindcraft_info(comment, use_mind, i);
 
                                        if (use_menu)
                                        {
@@ -1003,11 +991,11 @@ static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool onl
        }
        if (redraw && !only_browse) screen_load();
 
-       caster_ptr->window |= (PW_SPELL);
-       handle_stuff(caster_ptr);
+       p_ptr->window |= (PW_SPELL);
+       handle_stuff();
 
        /* Abort if needed */
-       if (!flag) return FALSE;
+       if (!flag) return (FALSE);
 
        /* Save the choice */
        (*sn) = i;
@@ -1015,7 +1003,7 @@ static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool onl
        repeat_push((COMMAND_CODE)i);
 
        /* Success */
-       return TRUE;
+       return (TRUE);
 }
 
 /*!
@@ -1024,12 +1012,12 @@ static bool_hack get_mind_power(player_type *caster_ptr, SPELL_IDX *sn, bool onl
  * @param spell 発動する特殊技能のID
  * @return 処理を実行したらTRUE、キャンセルした場合FALSEを返す。
  */
-static bool cast_mindcrafter_spell(player_type *caster_ptr, int spell)
+static bool cast_mindcrafter_spell(int spell)
 {
-       int b = 0;
+       int             b = 0;
        DIRECTION dir;
        TIME_EFFECT t;
-       PLAYER_LEVEL plev = caster_ptr->lev;
+       PLAYER_LEVEL plev = p_ptr->lev;
 
        /* spell code */
        switch (spell)
@@ -1037,140 +1025,140 @@ static bool cast_mindcrafter_spell(player_type *caster_ptr, int spell)
        case 0:   /* Precog */
                if (plev > 44)
                {
-                       chg_virtue(caster_ptr, V_KNOWLEDGE, 1);
-                       chg_virtue(caster_ptr, V_ENLIGHTEN, 1);
-                       wiz_lite(caster_ptr, FALSE);
+                       chg_virtue(V_KNOWLEDGE, 1);
+                       chg_virtue(V_ENLIGHTEN, 1);
+                       wiz_lite(FALSE);
                }
                else if (plev > 19)
-                       map_area(caster_ptr, DETECT_RAD_MAP);
+                       map_area(DETECT_RAD_MAP);
 
                if (plev < 30)
                {
-                       b = detect_monsters_normal(caster_ptr, DETECT_RAD_DEFAULT);
-                       if (plev > 14) b |= detect_monsters_invis(caster_ptr, DETECT_RAD_DEFAULT);
+                       b = detect_monsters_normal(DETECT_RAD_DEFAULT);
+                       if (plev > 14) b |= detect_monsters_invis(DETECT_RAD_DEFAULT);
                        if (plev > 4)  {
-                               b |= detect_traps(caster_ptr, DETECT_RAD_DEFAULT, TRUE);
-                               b |= detect_doors(caster_ptr, DETECT_RAD_DEFAULT);
+                               b |= detect_traps(DETECT_RAD_DEFAULT, TRUE);
+                               b |= detect_doors(DETECT_RAD_DEFAULT);
                        }
                }
                else
                {
-                       b = detect_all(caster_ptr, DETECT_RAD_DEFAULT);
+                       b = detect_all(DETECT_RAD_DEFAULT);
                }
 
                if ((plev > 24) && (plev < 40))
-                       set_tim_esp(caster_ptr, (TIME_EFFECT)plev, FALSE);
+                       set_tim_esp((TIME_EFFECT)plev, FALSE);
 
                if (!b) msg_print(_("安全な気がする。", "You feel safe."));
 
                break;
        case 1:
                /* Mindblast */
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
+               if (!get_aim_dir(&dir)) return FALSE;
 
                if (randint1(100) < plev * 2)
-                       fire_beam(caster_ptr, GF_PSI, dir, damroll(3 + ((plev - 1) / 4), (3 + plev / 15)));
+                       fire_beam(GF_PSI, dir, damroll(3 + ((plev - 1) / 4), (3 + plev / 15)));
                else
-                       fire_ball(caster_ptr, GF_PSI, dir, damroll(3 + ((plev - 1) / 4), (3 + plev / 15)), 0);
+                       fire_ball(GF_PSI, dir, damroll(3 + ((plev - 1) / 4), (3 + plev / 15)), 0);
                break;
        case 2:
                /* Minor displace */
-               teleport_player(caster_ptr, 10, 0L);
+               teleport_player(10, 0L);
                break;
        case 3:
                /* Major displace */
-               teleport_player(caster_ptr, plev * 5, 0L);
+               teleport_player(plev * 5, 0L);
                break;
        case 4:
                /* Domination */
                if (plev < 30)
                {
-                       if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
+                       if (!get_aim_dir(&dir)) return FALSE;
 
-                       fire_ball(caster_ptr, GF_DOMINATION, dir, plev, 0);
+                       fire_ball(GF_DOMINATION, dir, plev, 0);
                }
                else
                {
-                       charm_monsters(caster_ptr, plev * 2);
+                       charm_monsters(plev * 2);
                }
                break;
        case 5:
                /* Fist of Force  ---  not 'true' TK  */
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
+               if (!get_aim_dir(&dir)) return FALSE;
 
-               fire_ball(caster_ptr, GF_TELEKINESIS, dir, damroll(8 + ((plev - 5) / 4), 8),
+               fire_ball(GF_TELEKINESIS, dir, damroll(8 + ((plev - 5) / 4), 8),
                        (plev > 20 ? (plev - 20) / 8 + 1 : 0));
                break;
        case 6:
                /* Character Armour */
-               set_shield(caster_ptr, (TIME_EFFECT)plev, FALSE);
-               if (plev > 14) set_oppose_acid(caster_ptr, (TIME_EFFECT)plev, FALSE);
-               if (plev > 19) set_oppose_fire(caster_ptr, (TIME_EFFECT)plev, FALSE);
-               if (plev > 24) set_oppose_cold(caster_ptr, (TIME_EFFECT)plev, FALSE);
-               if (plev > 29) set_oppose_elec(caster_ptr, (TIME_EFFECT)plev, FALSE);
-               if (plev > 34) set_oppose_pois(caster_ptr, (TIME_EFFECT)plev, FALSE);
+               set_shield((TIME_EFFECT)plev, FALSE);
+               if (plev > 14) set_oppose_acid((TIME_EFFECT)plev, FALSE);
+               if (plev > 19) set_oppose_fire((TIME_EFFECT)plev, FALSE);
+               if (plev > 24) set_oppose_cold((TIME_EFFECT)plev, FALSE);
+               if (plev > 29) set_oppose_elec((TIME_EFFECT)plev, FALSE);
+               if (plev > 34) set_oppose_pois((TIME_EFFECT)plev, FALSE);
                break;
        case 7:
                /* Psychometry */
                if (plev < 25)
-                       return psychometry(caster_ptr);
+                       return psychometry();
                else
-                       return ident_spell(caster_ptr, FALSE);
+                       return ident_spell(FALSE);
        case 8:
                /* Mindwave */
                msg_print(_("精神を捻じ曲げる波動を発生させた!", "Mind-warping forces emanate from your brain!"));
 
                if (plev < 25)
-                       project(caster_ptr, 0, 2 + plev / 10, caster_ptr->y, caster_ptr->x,
+                       project(0, 2 + plev / 10, p_ptr->y, p_ptr->x,
                        (plev * 3), GF_PSI, PROJECT_KILL, -1);
                else
-                       (void)mindblast_monsters(caster_ptr, randint1(plev * ((plev - 5) / 10 + 1)));
+                       (void)mindblast_monsters(randint1(plev * ((plev - 5) / 10 + 1)));
                break;
        case 9:
                /* Adrenaline */
-               set_afraid(caster_ptr, 0);
-               set_stun(caster_ptr, 0);
+               set_afraid(0);
+               set_stun(0);
 
                /*
                 * Only heal when Adrenalin Channeling is not active. We check
                 * that by checking if the player isn't fast and 'heroed' atm.
                 */
-               if (!IS_FAST(caster_ptr) || !IS_HERO(caster_ptr))
+               if (!IS_FAST() || !IS_HERO())
                {
-                       hp_player(caster_ptr, plev);
+                       hp_player(plev);
                }
 
                t = 10 + randint1((plev * 3) / 2);
-               set_hero(caster_ptr, t, FALSE);
+               set_hero(t, FALSE);
                /* Haste */
-               (void)set_fast(caster_ptr, t, FALSE);
+               (void)set_fast(t, FALSE);
                break;
        case 10:
                /* Telekinesis */
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
+               if (!get_aim_dir(&dir)) return FALSE;
 
-               fetch(caster_ptr, dir, plev * 15, FALSE);
+               fetch(dir, plev * 15, FALSE);
 
                break;
        case 11:
                /* Psychic Drain */
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
+               if (!get_aim_dir(&dir)) return FALSE;
 
                b = damroll(plev / 2, 6);
 
                /* This is always a radius-0 ball now */
-               if (fire_ball(caster_ptr, GF_PSI_DRAIN, dir, b, 0))
-                       caster_ptr->energy_need += randint1(150);
+               if (fire_ball(GF_PSI_DRAIN, dir, b, 0))
+                       p_ptr->energy_need += randint1(150);
                break;
        case 12:
                /* psycho-spear */
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
+               if (!get_aim_dir(&dir)) return FALSE;
 
-               fire_beam(caster_ptr, GF_PSY_SPEAR, dir, randint1(plev*3)+plev*3);
+               fire_beam(GF_PSY_SPEAR, dir, randint1(plev*3)+plev*3);
                break;
        case 13:
        {
-               time_walk(caster_ptr);
+               time_walk(p_ptr);
                break;
        }
        default:
@@ -1186,68 +1174,68 @@ static bool cast_mindcrafter_spell(player_type *caster_ptr, int spell)
  * @param spell 発動する特殊技能のID
  * @return 処理を実行したらTRUE、キャンセルした場合FALSEを返す。
  */
-static bool cast_force_spell(player_type *caster_ptr, int spell)
+static bool cast_force_spell(int spell)
 {
        DIRECTION dir;
-       PLAYER_LEVEL plev = caster_ptr->lev;
+       PLAYER_LEVEL plev = p_ptr->lev;
        int boost = P_PTR_KI;
 
-       if (heavy_armor(caster_ptr)) boost /= 2;
+       if (heavy_armor()) boost /= 2;
 
        /* spell code */
        switch (spell)
        {
        case 0:
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
-               fire_ball(caster_ptr, GF_MISSILE, dir, damroll(3 + ((plev - 1) / 5) + boost / 12, 4), 0);
+               if (!get_aim_dir(&dir)) return FALSE;
+               fire_ball(GF_MISSILE, dir, damroll(3 + ((plev - 1) / 5) + boost / 12, 4), 0);
                break;
        case 1:
-               (void)lite_area(caster_ptr, damroll(2, (plev / 2)), (plev / 10) + 1);
+               (void)lite_area(damroll(2, (plev / 2)), (plev / 10) + 1);
                break;
        case 2:
-               set_tim_levitation(caster_ptr, randint1(30) + 30 + boost / 5, FALSE);
+               set_tim_levitation(randint1(30) + 30 + boost / 5, FALSE);
                break;
        case 3:
                project_length = plev / 8 + 3;
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
+               if (!get_aim_dir(&dir)) return FALSE;
 
-               fire_beam(caster_ptr, GF_MISSILE, dir, damroll(5 + ((plev - 1) / 5) + boost / 10, 5));
+               fire_beam(GF_MISSILE, dir, damroll(5 + ((plev - 1) / 5) + boost / 10, 5));
                break;
        case 4:
-               set_resist_magic(caster_ptr, randint1(20) + 20 + boost / 5, FALSE);
+               set_resist_magic(randint1(20) + 20 + boost / 5, FALSE);
                break;
        case 5:
                msg_print(_("気を練った。", "You improved the Force."));
                P_PTR_KI += (70 + plev);
-               caster_ptr->update |= (PU_BONUS);
+               p_ptr->update |= (PU_BONUS);
                if (randint1(P_PTR_KI) > (plev * 4 + 120))
                {
                        msg_print(_("気が暴走した!", "The Force exploded!"));
-                       fire_ball(caster_ptr, GF_MANA, 0, P_PTR_KI / 2, 10);
-                       take_hit(caster_ptr, DAMAGE_LOSELIFE, caster_ptr->magic_num1[0] / 2, _("気の暴走", "Explosion of the Force"), -1);
+                       fire_ball(GF_MANA, 0, P_PTR_KI / 2, 10);
+                       take_hit(DAMAGE_LOSELIFE, p_ptr->magic_num1[0] / 2, _("気の暴走", "Explosion of the Force"), -1);
                }
                else return TRUE;
                break;
        case 6:
-               set_tim_sh_touki(caster_ptr, randint1(plev / 2) + 15 + boost / 7, FALSE);
+               set_tim_sh_touki(randint1(plev / 2) + 15 + boost / 7, FALSE);
                break;
        case 7:
-               return shock_power(caster_ptr);
+               return shock_power();
                break;
        case 8:
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
-               fire_ball(caster_ptr, GF_MISSILE, dir, damroll(10, 6) + plev * 3 / 2 + boost * 3 / 5, (plev < 30) ? 2 : 3);
+               if (!get_aim_dir(&dir)) return FALSE;
+               fire_ball(GF_MISSILE, dir, damroll(10, 6) + plev * 3 / 2 + boost * 3 / 5, (plev < 30) ? 2 : 3);
                break;
        case 9:
        {
                MONSTER_IDX m_idx;
 
-               if (!target_set(caster_ptr, TARGET_KILL)) return FALSE;
-               m_idx = caster_ptr->current_floor_ptr->grid_array[target_row][target_col].m_idx;
+               if (!target_set(TARGET_KILL)) return FALSE;
+               m_idx = current_floor_ptr->grid_array[target_row][target_col].m_idx;
                if (!m_idx) break;
-               if (!player_has_los_bold(caster_ptr, target_row, target_col)) break;
-               if (!projectable(caster_ptr, caster_ptr->y, caster_ptr->x, target_row, target_col)) break;
-               dispel_monster_status(caster_ptr, m_idx);
+               if (!player_has_los_bold(target_row, target_col)) break;
+               if (!projectable(p_ptr->y, p_ptr->x, target_row, target_col)) break;
+               dispel_monster_status(m_idx);
                break;
        }
        case 10:
@@ -1256,7 +1244,7 @@ static bool cast_force_spell(player_type *caster_ptr, int spell)
                bool success = FALSE;
 
                for (i = 0; i < 1 + boost/100; i++)
-                       if (summon_specific(caster_ptr, -1, caster_ptr->y, caster_ptr->x, plev, SUMMON_PHANTOM, PM_FORCE_PET))
+                       if (summon_specific(-1, p_ptr->y, p_ptr->x, plev, SUMMON_PHANTOM, PM_FORCE_PET, '\0'))
                                success = TRUE;
                if (success)
                {
@@ -1269,22 +1257,21 @@ static bool cast_force_spell(player_type *caster_ptr, int spell)
                break;
        }
        case 11:
-               fire_ball(caster_ptr, GF_FIRE, 0, 200 + (2 * plev) + boost * 2, 10);
+               fire_ball(GF_FIRE, 0, 200 + (2 * plev) + boost * 2, 10);
                break;
        case 12:
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
+               if (!get_aim_dir(&dir)) return FALSE;
 
-               fire_beam(caster_ptr, GF_MANA, dir, damroll(10 + (plev / 2) + boost * 3 / 10, 15));
+               fire_beam(GF_MANA, dir, damroll(10 + (plev / 2) + boost * 3 / 10, 15));
                break;
        case 13:
-               set_lightspeed(caster_ptr, randint1(16) + 16 + boost / 20, FALSE);
+               set_lightspeed(randint1(16) + 16 + boost / 20, FALSE);
                break;
        default:
                msg_print(_("なに?", "Zap?"));
        }
-
        P_PTR_KI = 0;
-       caster_ptr->update |= (PU_BONUS);
+       p_ptr->update |= (PU_BONUS);
 
        return TRUE;
 }
@@ -1294,166 +1281,165 @@ static bool cast_force_spell(player_type *caster_ptr, int spell)
  * @brief 現在フロアに存在している鏡の数を数える / calculate mirrors
  * @return 鏡の枚数
  */
-static int number_of_mirrors(floor_type *floor_ptr)
+static int number_of_mirrors(void)
 {
+       POSITION x, y;
        int val = 0;
-       for (POSITION x = 0; x < floor_ptr->width; x++) {
-               for (POSITION y = 0; y < floor_ptr->height; y++) {
-                       if (is_mirror_grid(&floor_ptr->grid_array[y][x])) val++;
+       for (x = 0; x < current_floor_ptr->width; x++) {
+               for (y = 0; y < current_floor_ptr->height; y++) {
+                       if (is_mirror_grid(&current_floor_ptr->grid_array[y][x])) val++;
                }
        }
-
        return val;
 }
 
-
 /*!
  * @brief 鏡魔法の発動 /
  * do_cmd_cast calls this function if the player's class is 'Mirror magic'.
  * @param spell 発動する特殊技能のID
  * @return 処理を実行したらTRUE、キャンセルした場合FALSEを返す。
  */
-static bool cast_mirror_spell(player_type *caster_ptr, int spell)
+static bool cast_mirror_spell(int spell)
 {
        DIRECTION dir;
-       PLAYER_LEVEL plev = caster_ptr->lev;
-       int tmp;
+       PLAYER_LEVEL plev = p_ptr->lev;
+       int             tmp;
        TIME_EFFECT t;
-       POSITION x, y;
+       int             x, y;
 
        /* spell code */
        switch (spell)
        {
                /* mirror of seeing */
        case 0:
-               tmp = is_mirror_grid(&caster_ptr->current_floor_ptr->grid_array[caster_ptr->y][caster_ptr->x]) ? 4 : 0;
-               if (plev + tmp > 4)detect_monsters_normal(caster_ptr, DETECT_RAD_DEFAULT);
-               if (plev + tmp > 18)detect_monsters_invis(caster_ptr, DETECT_RAD_DEFAULT);
-               if (plev + tmp > 28)set_tim_esp(caster_ptr, (TIME_EFFECT)plev, FALSE);
-               if (plev + tmp > 38)map_area(caster_ptr, DETECT_RAD_MAP);
+               tmp = is_mirror_grid(&current_floor_ptr->grid_array[p_ptr->y][p_ptr->x]) ? 4 : 0;
+               if (plev + tmp > 4)detect_monsters_normal(DETECT_RAD_DEFAULT);
+               if (plev + tmp > 18)detect_monsters_invis(DETECT_RAD_DEFAULT);
+               if (plev + tmp > 28)set_tim_esp((TIME_EFFECT)plev, FALSE);
+               if (plev + tmp > 38)map_area(DETECT_RAD_MAP);
                if (tmp == 0 && plev < 5) {
                        msg_print(_("鏡がなくて集中できなかった!", "You need a mirror to concentrate!"));
                }
                break;
                /* drip of light */
        case 1:
-               if (number_of_mirrors(caster_ptr->current_floor_ptr) < 4 + plev / 10) {
-                       place_mirror(caster_ptr);
+               if (number_of_mirrors() < 4 + plev / 10) {
+                       place_mirror();
                }
                else {
                        msg_format(_("これ以上鏡は制御できない!", "There are too many mirrors to control!"));
                }
                break;
        case 2:
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
-               if (plev > 9 && is_mirror_grid(&caster_ptr->current_floor_ptr->grid_array[caster_ptr->y][caster_ptr->x])) {
-                       fire_beam(caster_ptr, GF_LITE, dir, damroll(3 + ((plev - 1) / 5), 4));
+               if (!get_aim_dir(&dir)) return FALSE;
+               if (plev > 9 && is_mirror_grid(&current_floor_ptr->grid_array[p_ptr->y][p_ptr->x])) {
+                       fire_beam(GF_LITE, dir, damroll(3 + ((plev - 1) / 5), 4));
                }
                else {
-                       fire_bolt(caster_ptr, GF_LITE, dir, damroll(3 + ((plev - 1) / 5), 4));
+                       fire_bolt(GF_LITE, dir, damroll(3 + ((plev - 1) / 5), 4));
                }
                break;
                /* warped mirror */
        case 3:
-               teleport_player(caster_ptr, 10, 0L);
+               teleport_player(10, 0L);
                break;
                /* mirror of light */
        case 4:
-               (void)lite_area(caster_ptr, damroll(2, (plev / 2)), (plev / 10) + 1);
+               (void)lite_area(damroll(2, (plev / 2)), (plev / 10) + 1);
                break;
                /* mirror of wandering */
        case 5:
-               teleport_player(caster_ptr, plev * 5, 0L);
+               teleport_player(plev * 5, 0L);
                break;
                /* robe of dust */
        case 6:
-               set_dustrobe(caster_ptr, 20 + randint1(20), FALSE);
+               set_dustrobe(20 + randint1(20), FALSE);
                break;
                /* banishing mirror */
        case 7:
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
-               (void)fire_beam(caster_ptr, GF_AWAY_ALL, dir, plev);
+               if (!get_aim_dir(&dir)) return FALSE;
+               (void)fire_beam(GF_AWAY_ALL, dir, plev);
                break;
                /* mirror clashing */
        case 8:
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
-               fire_ball(caster_ptr, GF_SHARDS, dir, damroll(8 + ((plev - 5) / 4), 8),
+               if (!get_aim_dir(&dir)) return FALSE;
+               fire_ball(GF_SHARDS, dir, damroll(8 + ((plev - 5) / 4), 8),
                        (plev > 20 ? (plev - 20) / 8 + 1 : 0));
                break;
                /* mirror sleeping */
        case 9:
-               for (x = 0; x < caster_ptr->current_floor_ptr->width; x++) {
-                       for (y = 0; y < caster_ptr->current_floor_ptr->height; y++) {
-                               if (is_mirror_grid(&caster_ptr->current_floor_ptr->grid_array[y][x])) {
-                                       project(caster_ptr, 0, 2, y, x, (HIT_POINT)plev, GF_OLD_SLEEP, (PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP | PROJECT_NO_HANGEKI), -1);
+               for (x = 0; x < current_floor_ptr->width; x++) {
+                       for (y = 0; y < current_floor_ptr->height; y++) {
+                               if (is_mirror_grid(&current_floor_ptr->grid_array[y][x])) {
+                                       project(0, 2, y, x, (HIT_POINT)plev, GF_OLD_SLEEP, (PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP | PROJECT_NO_HANGEKI), -1);
                                }
                        }
                }
                break;
                /* seeker ray */
        case 10:
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
-               fire_beam(caster_ptr, GF_SEEKER, dir, damroll(11 + (plev - 5) / 4, 8));
+               if (!get_aim_dir(&dir)) return FALSE;
+               fire_beam(GF_SEEKER, dir, damroll(11 + (plev - 5) / 4, 8));
                break;
                /* seal of mirror */
        case 11:
-               seal_of_mirror(caster_ptr, plev * 4 + 100);
+               seal_of_mirror(plev * 4 + 100);
                break;
                /* shield of water */
        case 12:
                t = 20 + randint1(20);
-               set_shield(caster_ptr, t, FALSE);
-               if (plev > 31)set_tim_reflect(caster_ptr, t, FALSE);
-               if (plev > 39)set_resist_magic(caster_ptr, t, FALSE);
+               set_shield(t, FALSE);
+               if (plev > 31)set_tim_reflect(t, FALSE);
+               if (plev > 39)set_resist_magic(t, FALSE);
                break;
                /* super ray */
        case 13:
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
-               fire_beam(caster_ptr, GF_SUPER_RAY, dir, 150 + randint1(2 * plev));
+               if (!get_aim_dir(&dir)) return FALSE;
+               fire_beam(GF_SUPER_RAY, dir, 150 + randint1(2 * plev));
                break;
                /* illusion light */
        case 14:
-               tmp = is_mirror_grid(&caster_ptr->current_floor_ptr->grid_array[caster_ptr->y][caster_ptr->x]) ? 4 : 3;
-               slow_monsters(caster_ptr, plev);
-               stun_monsters(caster_ptr, plev*tmp);
-               confuse_monsters(caster_ptr, plev*tmp);
-               turn_monsters(caster_ptr, plev*tmp);
-               stun_monsters(caster_ptr, plev*tmp);
-               stasis_monsters(caster_ptr, plev*tmp);
+               tmp = is_mirror_grid(&current_floor_ptr->grid_array[p_ptr->y][p_ptr->x]) ? 4 : 3;
+               slow_monsters(plev);
+               stun_monsters(plev*tmp);
+               confuse_monsters(plev*tmp);
+               turn_monsters(plev*tmp);
+               stun_monsters(plev*tmp);
+               stasis_monsters(plev*tmp);
                break;
                /* mirror shift */
        case 15:
-               if (!is_mirror_grid(&caster_ptr->current_floor_ptr->grid_array[caster_ptr->y][caster_ptr->x])) {
+               if (!is_mirror_grid(&current_floor_ptr->grid_array[p_ptr->y][p_ptr->x])) {
                        msg_print(_("鏡の国の場所がわからない!", "You cannot find out where is the world of mirror!"));
                        break;
                }
-               reserve_alter_reality(caster_ptr);
+               alter_reality();
                break;
                /* mirror tunnel */
        case 16:
                msg_print(_("鏡の世界を通り抜け…  ", "Go through the world of mirror..."));
-               return mirror_tunnel(caster_ptr);
+               return mirror_tunnel();
 
                /* mirror of recall */
        case 17:
-               return recall_player(caster_ptr, randint0(21) + 15);
+               return recall_player(p_ptr, randint0(21) + 15);
                /* multi-shadow */
        case 18:
-               set_multishadow(caster_ptr, 6 + randint1(6), FALSE);
+               set_multishadow(6 + randint1(6), FALSE);
                break;
                /* binding field */
        case 19:
-               if (!binding_field(caster_ptr, plev * 11 + 5))msg_print(_("適当な鏡を選べなかった!", "You were not able to choose suitable mirrors!"));
+               if (!binding_field(plev * 11 + 5))msg_print(_("適当な鏡を選べなかった!", "You were not able to choose suitable mirrors!"));
                break;
                /* mirror of Ruffnor */
        case 20:
-               (void)set_invuln(caster_ptr, randint1(4) + 4, FALSE);
+               (void)set_invuln(randint1(4) + 4, FALSE);
                break;
        default:
                msg_print(_("なに?", "Zap?"));
 
        }
-       caster_ptr->magic_num1[0] = 0;
+       p_ptr->magic_num1[0] = 0;
 
        return TRUE;
 }
@@ -1464,7 +1450,7 @@ static bool cast_mirror_spell(player_type *caster_ptr, int spell)
  * @param spell 発動する特殊技能のID
  * @return 処理を実行したらTRUE、キャンセルした場合FALSEを返す。
  */
-static bool cast_berserk_spell(player_type *caster_ptr, int spell)
+static bool cast_berserk_spell(int spell)
 {
        POSITION y, x;
        DIRECTION dir;
@@ -1473,56 +1459,56 @@ static bool cast_berserk_spell(player_type *caster_ptr, int spell)
        switch (spell)
        {
        case 0:
-               detect_monsters_mind(caster_ptr, DETECT_RAD_DEFAULT);
+               detect_monsters_mind(DETECT_RAD_DEFAULT);
                break;
        case 1:
        {
-               if (caster_ptr->riding)
+               if (p_ptr->riding)
                {
                        msg_print(_("乗馬中には無理だ。", "You cannot do it when riding."));
                        return FALSE;
                }
 
-               if (!get_direction(caster_ptr, &dir, FALSE, FALSE)) return FALSE;
+               if (!get_direction(&dir, FALSE, FALSE)) return FALSE;
 
                if (dir == 5) return FALSE;
-               y = caster_ptr->y + ddy[dir];
-               x = caster_ptr->x + ddx[dir];
+               y = p_ptr->y + ddy[dir];
+               x = p_ptr->x + ddx[dir];
 
-               if (!caster_ptr->current_floor_ptr->grid_array[y][x].m_idx)
+               if (!current_floor_ptr->grid_array[y][x].m_idx)
                {
                        msg_print(_("その方向にはモンスターはいません。", "There is no monster."));
                        return FALSE;
                }
 
-               py_attack(caster_ptr, y, x, 0);
+               py_attack(y, x, 0);
 
-               if (!player_can_enter(caster_ptr, caster_ptr->current_floor_ptr->grid_array[y][x].feat, 0) || is_trap(caster_ptr, caster_ptr->current_floor_ptr->grid_array[y][x].feat))
+               if (!player_can_enter(current_floor_ptr->grid_array[y][x].feat, 0) || is_trap(current_floor_ptr->grid_array[y][x].feat))
                        break;
 
                y += ddy[dir];
                x += ddx[dir];
 
-               if (player_can_enter(caster_ptr, caster_ptr->current_floor_ptr->grid_array[y][x].feat, 0) && !is_trap(caster_ptr, caster_ptr->current_floor_ptr->grid_array[y][x].feat) && !caster_ptr->current_floor_ptr->grid_array[y][x].m_idx)
+               if (player_can_enter(current_floor_ptr->grid_array[y][x].feat, 0) && !is_trap(current_floor_ptr->grid_array[y][x].feat) && !current_floor_ptr->grid_array[y][x].m_idx)
                {
                        msg_print(NULL);
-                       (void)move_player_effect(caster_ptr, y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
+                       (void)move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP);
                }
                break;
        }
        case 2:
        {
-               if (!get_direction(caster_ptr, &dir, FALSE, FALSE)) return FALSE;
-               y = caster_ptr->y + ddy[dir];
-               x = caster_ptr->x + ddx[dir];
-               move_player(caster_ptr, dir, easy_disarm, TRUE);
+               if (!get_direction(&dir, FALSE, FALSE)) return FALSE;
+               y = p_ptr->y + ddy[dir];
+               x = p_ptr->x + ddx[dir];
+               move_player(dir, easy_disarm, TRUE);
                break;
        }
        case 3:
-               earthquake(caster_ptr, caster_ptr->y, caster_ptr->x, 8+randint0(5), 0);
+               earthquake(p_ptr->y, p_ptr->x, 8+randint0(5));
                break;
        case 4:
-               massacre(caster_ptr);
+               massacre();
                break;
        default:
                msg_print(_("なに?", "Zap?"));
@@ -1534,82 +1520,81 @@ static bool cast_berserk_spell(player_type *caster_ptr, int spell)
 /*!
  * @brief 忍術の発動 /
  * do_cmd_cast calls this function if the player's class is 'ninja'.
- * @param caster_ptr プレーヤーへの参照ポインタ
  * @param spell 発動する特殊技能のID
  * @return 処理を実行したらTRUE、キャンセルした場合FALSEを返す。
  */
-static bool cast_ninja_spell(player_type *caster_ptr, int spell)
+static bool cast_ninja_spell(int spell)
 {
        POSITION x = 0, y = 0;
        DIRECTION dir;
-       PLAYER_LEVEL plev = caster_ptr->lev;
+       PLAYER_LEVEL plev = p_ptr->lev;
 
        /* spell code */
        switch (spell)
        {
        case 0:
-               (void)unlite_area(caster_ptr, 0, 3);
+               (void)unlite_area(0, 3);
                break;
        case 1:
                if (plev > 44)
                {
-                       wiz_lite(caster_ptr, TRUE);
+                       wiz_lite(TRUE);
                }
-               detect_monsters_normal(caster_ptr, DETECT_RAD_DEFAULT);
+               detect_monsters_normal(DETECT_RAD_DEFAULT);
                if (plev > 4)
                {
-                       detect_traps(caster_ptr, DETECT_RAD_DEFAULT, TRUE);
-                       detect_doors(caster_ptr, DETECT_RAD_DEFAULT);
-                       detect_stairs(caster_ptr, DETECT_RAD_DEFAULT);
+                       detect_traps(DETECT_RAD_DEFAULT, TRUE);
+                       detect_doors(DETECT_RAD_DEFAULT);
+                       detect_stairs(DETECT_RAD_DEFAULT);
                }
                if (plev > 14)
                {
-                       detect_objects_normal(caster_ptr, DETECT_RAD_DEFAULT);
+                       detect_objects_normal(DETECT_RAD_DEFAULT);
                }
                break;
        case 2:
        {
-               teleport_player(caster_ptr, 10, 0L);
+               teleport_player(10, 0L);
                break;
        }
        case 3:
        {
-               if (!(caster_ptr->special_defense & NINJA_KAWARIMI))
+               if (!(p_ptr->special_defense & NINJA_KAWARIMI))
                {
                        msg_print(_("敵の攻撃に対して敏感になった。", "You are now prepare to evade any attacks."));
-                       caster_ptr->special_defense |= NINJA_KAWARIMI;
-                       caster_ptr->redraw |= (PR_STATUS);
+                       p_ptr->special_defense |= NINJA_KAWARIMI;
+                       p_ptr->redraw |= (PR_STATUS);
                }
                break;
        }
        case 4:
        {
-               teleport_player(caster_ptr, caster_ptr->lev * 5, 0L);
+               teleport_player(p_ptr->lev * 5, 0L);
                break;
        }
        case 5:
        {
-               if(!hit_and_away(caster_ptr)) return FALSE;
+               if(!panic_hit()) return FALSE;
                break;
        }
        case 6:
        {
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
-               (void)stasis_monster(caster_ptr, dir);
+               if (!get_aim_dir(&dir)) return FALSE;
+               (void)stasis_monster(dir);
                break;
        }
        case 7:
-               return ident_spell(caster_ptr, FALSE);
+               return ident_spell(FALSE);
        case 8:
-               set_tim_levitation(caster_ptr, randint1(20) + 20, FALSE);
+               set_tim_levitation(randint1(20) + 20, FALSE);
                break;
        case 9:
-               fire_ball(caster_ptr, GF_FIRE, 0, 50+plev, plev/10+2);
-               teleport_player(caster_ptr, 30, 0L);
-               set_oppose_fire(caster_ptr, (TIME_EFFECT)plev, FALSE);
+               fire_ball(GF_FIRE, 0, 50+plev, plev/10+2);
+               teleport_player(30, 0L);
+               set_oppose_fire((TIME_EFFECT)plev, FALSE);
                break;
        case 10:
-               return rush_attack(caster_ptr, NULL);
+               return rush_attack(NULL);
        case 11:
        {
                int i;
@@ -1619,7 +1604,7 @@ static bool cast_ninja_spell(player_type *caster_ptr, int spell)
 
                        for (slot = 0; slot < INVEN_PACK; slot++)
                        {
-                               if (caster_ptr->inventory_list[slot].tval == TV_SPIKE) break;
+                               if (inventory[slot].tval == TV_SPIKE) break;
                        }
                        if (slot == INVEN_PACK)
                        {
@@ -1629,9 +1614,9 @@ static bool cast_ninja_spell(player_type *caster_ptr, int spell)
                        }
 
                        /* Gives a multiplier of 2 at first, up to 3 at 40th */
-                       do_cmd_throw(caster_ptr, 1, FALSE, slot);
+                       do_cmd_throw(1, FALSE, slot);
 
-                       take_turn(caster_ptr, 100);
+                       take_turn(p_ptr, 100);
                }
                break;
        }
@@ -1645,24 +1630,24 @@ static bool cast_ninja_spell(player_type *caster_ptr, int spell)
                u16b path_g[512];
                POSITION ty, tx;
 
-               if (!target_set(caster_ptr, TARGET_KILL)) return FALSE;
-               m_idx = caster_ptr->current_floor_ptr->grid_array[target_row][target_col].m_idx;
+               if (!target_set(TARGET_KILL)) return FALSE;
+               m_idx = current_floor_ptr->grid_array[target_row][target_col].m_idx;
                if (!m_idx) break;
-               if (m_idx == caster_ptr->riding) break;
-               if (!player_has_los_bold(caster_ptr, target_row, target_col)) break;
-               if (!projectable(caster_ptr, caster_ptr->y, caster_ptr->x, target_row, target_col)) break;
-               m_ptr = &caster_ptr->current_floor_ptr->m_list[m_idx];
-               monster_desc(caster_ptr, m_name, m_ptr, 0);
+               if (m_idx == p_ptr->riding) break;
+               if (!player_has_los_bold(target_row, target_col)) break;
+               if (!projectable(p_ptr->y, p_ptr->x, target_row, target_col)) break;
+               m_ptr = &current_floor_ptr->m_list[m_idx];
+               monster_desc(m_name, m_ptr, 0);
                msg_format(_("%sを引き戻した。", "You pull back %s."), m_name);
-               path_n = project_path(caster_ptr, path_g, MAX_RANGE, target_row, target_col, caster_ptr->y, caster_ptr->x, 0);
+               path_n = project_path(path_g, MAX_RANGE, target_row, target_col, p_ptr->y, p_ptr->x, 0);
                ty = target_row, tx = target_col;
                for (i = 1; i < path_n; i++)
                {
                        POSITION ny = GRID_Y(path_g[i]);
                        POSITION nx = GRID_X(path_g[i]);
-                       grid_type *g_ptr = &caster_ptr->current_floor_ptr->grid_array[ny][nx];
+                       grid_type *g_ptr = &current_floor_ptr->grid_array[ny][nx];
 
-                       if (in_bounds(caster_ptr->current_floor_ptr, ny, nx) && cave_empty_bold(caster_ptr->current_floor_ptr, ny, nx) &&
+                       if (in_bounds(ny, nx) && cave_empty_bold(ny, nx) &&
                            !(g_ptr->info & CAVE_OBJECT) &&
                                !pattern_tile(ny, nx))
                        {
@@ -1671,61 +1656,63 @@ static bool cast_ninja_spell(player_type *caster_ptr, int spell)
                        }
                }
                /* Update the old location */
-               caster_ptr->current_floor_ptr->grid_array[target_row][target_col].m_idx = 0;
+               current_floor_ptr->grid_array[target_row][target_col].m_idx = 0;
 
                /* Update the new location */
-               caster_ptr->current_floor_ptr->grid_array[ty][tx].m_idx = m_idx;
+               current_floor_ptr->grid_array[ty][tx].m_idx = m_idx;
 
                /* Move the monster */
                m_ptr->fy = ty;
                m_ptr->fx = tx;
 
                /* Wake the monster up */
-               (void)set_monster_csleep(caster_ptr, m_idx, 0);
+               (void)set_monster_csleep(m_idx, 0);
 
-               update_monster(caster_ptr, m_idx, TRUE);
-               lite_spot(caster_ptr, target_row, target_col);
-               lite_spot(caster_ptr, ty, tx);
+               update_monster(m_idx, TRUE);
+               lite_spot(target_row, target_col);
+               lite_spot(ty, tx);
 
                if (r_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK))
-                       caster_ptr->update |= (PU_MON_LITE);
+                       p_ptr->update |= (PU_MON_LITE);
 
                if (m_ptr->ml)
                {
                        /* Auto-Recall if possible and visible */
-                       if (!caster_ptr->image) monster_race_track(caster_ptr, m_ptr->ap_r_idx);
-                       health_track(caster_ptr, m_idx);
+                       if (!p_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+
+                       /* Track a new monster */
+                       health_track(m_idx);
                }
 
                break;
        }
        case 13:
-               if (!get_aim_dir(caster_ptr, &dir)) return FALSE;
-               fire_ball(caster_ptr, GF_OLD_CONF, dir, plev*3, 3);
+               if (!get_aim_dir(&dir)) return FALSE;
+               fire_ball(GF_OLD_CONF, dir, plev*3, 3);
                break;
        case 14:
                project_length = -1;
-               if (!get_aim_dir(caster_ptr, &dir))
+               if (!get_aim_dir(&dir))
                {
                        project_length = 0;
                        return FALSE;
                }
                project_length = 0;
 
-               (void)teleport_swap(caster_ptr, dir);
+               (void)teleport_swap(dir);
                break;
        case 15:
-               explosive_rune(caster_ptr, caster_ptr->y, caster_ptr->x);
+               explosive_rune();
                break;
        case 16:
-               (void)set_kabenuke(caster_ptr, randint1(plev/2) + plev/2, FALSE);
-               set_oppose_acid(caster_ptr, (TIME_EFFECT)plev, FALSE);
+               (void)set_kabenuke(randint1(plev/2) + plev/2, FALSE);
+               set_oppose_acid((TIME_EFFECT)plev, FALSE);
                break;
        case 17:
-               fire_ball(caster_ptr, GF_POIS, 0, 75+plev*2/3, plev/5+2);
-               fire_ball(caster_ptr, GF_HYPODYNAMIA, 0, 75+plev*2/3, plev/5+2);
-               fire_ball(caster_ptr, GF_CONFUSION, 0, 75+plev*2/3, plev/5+2);
-               teleport_player(caster_ptr, 30, 0L);
+               fire_ball(GF_POIS, 0, 75+plev*2/3, plev/5+2);
+               fire_ball(GF_HYPODYNAMIA, 0, 75+plev*2/3, plev/5+2);
+               fire_ball(GF_CONFUSION, 0, 75+plev*2/3, plev/5+2);
+               teleport_player(30, 0L);
                break;
        case 18:
        {
@@ -1739,17 +1726,17 @@ static bool cast_ninja_spell(player_type *caster_ptr, int spell)
 
                        while (attempts--)
                        {
-                               scatter(caster_ptr, &y, &x, caster_ptr->y, caster_ptr->x, 4, 0);
+                               scatter(&y, &x, p_ptr->y, p_ptr->x, 4, 0);
 
-                               if (!player_bold(caster_ptr, y, x)) break;
+                               if (!player_bold(y, x)) break;
                        }
-                       project(caster_ptr, 0, 0, y, x, damroll(6 + plev / 8, 10), typ,
+                       project(0, 0, y, x, damroll(6 + plev / 8, 10), typ,
                                (PROJECT_BEAM | PROJECT_THRU | PROJECT_GRID | PROJECT_KILL), -1);
                }
                break;
        }
        case 19:
-               set_multishadow(caster_ptr, 6+randint1(6), FALSE);
+               set_multishadow(6+randint1(6), FALSE);
                break;
        default:
                msg_print(_("なに?", "Zap?"));
@@ -1762,25 +1749,26 @@ static bool cast_ninja_spell(player_type *caster_ptr, int spell)
  * @brief 特殊技能コマンドのメインルーチン /
  * @return なし
  */
-void do_cmd_mind(player_type *caster_ptr)
+void do_cmd_mind(void)
 {
        SPELL_IDX n = 0;
        int b = 0;
        PERCENTAGE chance;
        PERCENTAGE minfail = 0;
-       PLAYER_LEVEL plev = caster_ptr->lev;
-       int             old_csp = caster_ptr->csp;
+       PLAYER_LEVEL plev = p_ptr->lev;
+       int             old_csp = p_ptr->csp;
        mind_type       spell;
        bool            cast;
        int             use_mind, mana_cost;
        concptr            p;
        bool            on_mirror = FALSE;
 
-       if (cmd_limit_confused(caster_ptr)) return;
-       if (!get_mind_power(caster_ptr, &n, FALSE)) return;
+       if (cmd_limit_confused(p_ptr)) return;
+
+       if (!get_mind_power(&n, FALSE)) return;
 
 #ifdef JP
-       switch(caster_ptr->pclass)
+       switch(p_ptr->pclass)
        {
                case CLASS_MINDCRAFTER: use_mind = MIND_MINDCRAFTER; p = "精神";break;
                case CLASS_FORCETRAINER:          use_mind = MIND_KI; p = "気";break;
@@ -1790,16 +1778,15 @@ void do_cmd_mind(player_type *caster_ptr)
                default:                use_mind = 0 ;p = "超能力"; break;
        }
 #else
-       switch(caster_ptr->pclass)
+       switch(p_ptr->pclass)
        {
                case CLASS_MINDCRAFTER: use_mind = MIND_MINDCRAFTER; break;
-               case CLASS_FORCETRAINER: use_mind = MIND_KI; break;
+               case CLASS_FORCETRAINER:          use_mind = MIND_KI; break;
                case CLASS_BERSERKER:   use_mind = MIND_BERSERKER; break;
                case CLASS_MIRROR_MASTER:   use_mind = MIND_MIRROR_MASTER; break;
                case CLASS_NINJA:       use_mind = MIND_NINJUTSU; break;
                default:                use_mind = 0; break;
        }
-       p = "skill";
 #endif
        spell = mind_powers[use_mind].info[n];
 
@@ -1809,11 +1796,11 @@ void do_cmd_mind(player_type *caster_ptr)
        mana_cost = spell.mana_cost;
        if (use_mind == MIND_KI)
        {
-               if (heavy_armor(caster_ptr)) chance += 20;
-               if (caster_ptr->icky_wield[0]) chance += 20;
-               else if (has_melee_weapon(caster_ptr, INVEN_RARM)) chance += 10;
-               if (caster_ptr->icky_wield[1]) chance += 20;
-               else if (has_melee_weapon(caster_ptr, INVEN_LARM)) chance += 10;
+               if (heavy_armor()) chance += 20;
+               if (p_ptr->icky_wield[0]) chance += 20;
+               else if (has_melee_weapon(INVEN_RARM)) chance += 10;
+               if (p_ptr->icky_wield[1]) chance += 20;
+               else if (has_melee_weapon(INVEN_LARM)) chance += 10;
                if (n == 5)
                {
                        int j;
@@ -1825,13 +1812,13 @@ void do_cmd_mind(player_type *caster_ptr)
        /* Verify "dangerous" spells */
        if ((use_mind == MIND_BERSERKER) || (use_mind == MIND_NINJUTSU))
        {
-               if (mana_cost > caster_ptr->chp)
+               if (mana_cost > p_ptr->chp)
                {
                        msg_print(_("HPが足りません。", "You do not have enough hp to use this power."));
                        return;
                }
        }
-       else if (mana_cost > caster_ptr->csp)
+       else if (mana_cost > p_ptr->csp)
        {
                /* Warning */
                msg_print(_("MPが足りません。", "You do not have enough mana to use this power."));
@@ -1848,32 +1835,32 @@ void do_cmd_mind(player_type *caster_ptr)
                /* Reduce failure rate by "effective" level adjustment */
                chance -= 3 * (plev - spell.min_lev);
 
-               chance += caster_ptr->to_m_chance;
+               chance += p_ptr->to_m_chance;
 
                /* Reduce failure rate by INT/WIS adjustment */
-               chance -= 3 * (adj_mag_stat[caster_ptr->stat_ind[mp_ptr->spell_stat]] - 1);
+               chance -= 3 * (adj_mag_stat[p_ptr->stat_ind[mp_ptr->spell_stat]] - 1);
 
                /* Not enough mana to cast */
-               if ((mana_cost > caster_ptr->csp) && (use_mind != MIND_BERSERKER) && (use_mind != MIND_NINJUTSU))
+               if ((mana_cost > p_ptr->csp) && (use_mind != MIND_BERSERKER) && (use_mind != MIND_NINJUTSU))
                {
-                       chance += 5 * (mana_cost - caster_ptr->csp);
+                       chance += 5 * (mana_cost - p_ptr->csp);
                }
 
                /* Extract the minimum failure rate */
-               minfail = adj_mag_fail[caster_ptr->stat_ind[mp_ptr->spell_stat]];
+               minfail = adj_mag_fail[p_ptr->stat_ind[mp_ptr->spell_stat]];
 
                /* Minimum failure rate */
                if (chance < minfail) chance = minfail;
 
                /* Stunning makes spells harder */
-               if (caster_ptr->stun > 50) chance += 25;
-               else if (caster_ptr->stun) chance += 15;
+               if (p_ptr->stun > 50) chance += 25;
+               else if (p_ptr->stun) chance += 15;
 
                if (use_mind == MIND_KI)
                {
-                       if (heavy_armor(caster_ptr)) chance += 5;
-                       if (caster_ptr->icky_wield[0]) chance += 5;
-                       if (caster_ptr->icky_wield[1]) chance += 5;
+                       if (heavy_armor()) chance += 5;
+                       if (p_ptr->icky_wield[0]) chance += 5;
+                       if (p_ptr->icky_wield[1]) chance += 5;
                }
        }
 
@@ -1884,7 +1871,7 @@ void do_cmd_mind(player_type *caster_ptr)
        if (randint0(100) < chance)
        {
                if (flush_failure) flush();
-               msg_format(_("%sの集中に失敗した!", "You failed to concentrate hard enough for %s!"), p);
+               msg_format(_("%sの集中に失敗した!", "You failed to concentrate hard enough!"), p);
 
                sound(SOUND_FAIL);
 
@@ -1905,30 +1892,30 @@ void do_cmd_mind(player_type *caster_ptr)
                                if (b < 5)
                                {
                                        msg_print(_("なんてこった!頭の中が真っ白になった!", "Oh, no! Your mind has gone blank!"));
-                                       lose_all_info(caster_ptr);
+                                       lose_all_info();
                                }
                                else if (b < 15)
                                {
                                        msg_print(_("奇妙な光景が目の前で踊っている...", "Weird visions seem to dance before your eyes..."));
-                                       set_image(caster_ptr, caster_ptr->image + 5 + randint1(10));
+                                       set_image(p_ptr->image + 5 + randint1(10));
                                }
                                else if (b < 45)
                                {
                                        msg_print(_("あなたの頭は混乱した!", "Your brain is addled!"));
-                                       set_confused(caster_ptr, caster_ptr->confused + randint1(8));
+                                       set_confused(p_ptr->confused + randint1(8));
                                }
                                else if (b < 90)
                                {
-                                       set_stun(caster_ptr, caster_ptr->stun + randint1(8));
+                                       set_stun(p_ptr->stun + randint1(8));
                                }
                                else
                                {
                                        /* Mana storm */
                                        msg_format(_("%sの力が制御できない氾流となって解放された!", "Your mind unleashes its power in an uncontrollable storm!"), p);
 
-                                       project(caster_ptr, PROJECT_WHO_UNCTRL_POWER, 2 + plev / 10, caster_ptr->y, caster_ptr->x, plev * 2,
+                                       project(PROJECT_WHO_UNCTRL_POWER, 2 + plev / 10, p_ptr->y, p_ptr->x, plev * 2,
                                                GF_MANA, PROJECT_JUMP | PROJECT_KILL | PROJECT_GRID | PROJECT_ITEM, -1);
-                                       caster_ptr->csp = MAX(0, caster_ptr->csp - plev * MAX(1, plev / 10));
+                                       p_ptr->csp = MAX(0, p_ptr->csp - plev * MAX(1, plev / 10));
                                }
                          }
                          if( use_mind == MIND_MIRROR_MASTER ){
@@ -1939,21 +1926,21 @@ void do_cmd_mind(player_type *caster_ptr)
                                else if (b < 81)
                                {
                                        msg_print(_("鏡の世界の干渉を受けた!", "Weird visions seem to dance before your eyes..."));
-                                       teleport_player(caster_ptr, 10, TELEPORT_PASSIVE);
+                                       teleport_player(10, TELEPORT_PASSIVE);
                                }
                                else if (b < 96)
                                {
                                        msg_print(_("まわりのものがキラキラ輝いている!", "Your brain is addled!"));
-                                       set_image(caster_ptr, caster_ptr->image + 5 + randint1(10));
+                                       set_image(p_ptr->image + 5 + randint1(10));
                                }
                                else
                                {
                                        /* Mana storm */
                                        msg_format(_("%sの力が制御できない氾流となって解放された!", "Your mind unleashes its power in an uncontrollable storm!"), p);
 
-                                       project(caster_ptr, PROJECT_WHO_UNCTRL_POWER, 2 + plev / 10, caster_ptr->y, caster_ptr->x, plev * 2,
+                                       project(PROJECT_WHO_UNCTRL_POWER, 2 + plev / 10, p_ptr->y, p_ptr->x, plev * 2,
                                                GF_MANA, PROJECT_JUMP | PROJECT_KILL | PROJECT_GRID | PROJECT_ITEM, -1);
-                                       caster_ptr->csp = MAX(0, caster_ptr->csp - plev * MAX(1, plev / 10));
+                                       p_ptr->csp = MAX(0, p_ptr->csp - plev * MAX(1, plev / 10));
                                }
                          }
                        }
@@ -1967,24 +1954,24 @@ void do_cmd_mind(player_type *caster_ptr)
                {
                case MIND_MINDCRAFTER:
                        
-                       cast = cast_mindcrafter_spell(caster_ptr, n);
+                       cast = cast_mindcrafter_spell(n);
                        break;
                case MIND_KI:
                        
-                       cast = cast_force_spell(caster_ptr, n);
+                       cast = cast_force_spell(n);
                        break;
                case MIND_BERSERKER:
                        
-                       cast = cast_berserk_spell(caster_ptr, n);
+                       cast = cast_berserk_spell(n);
                        break;
                case MIND_MIRROR_MASTER:
                        
-                       if(is_mirror_grid(&caster_ptr->current_floor_ptr->grid_array[caster_ptr->y][caster_ptr->x]) )on_mirror = TRUE;
-                       cast = cast_mirror_spell(caster_ptr, n);
+                       if( is_mirror_grid(&current_floor_ptr->grid_array[p_ptr->y][p_ptr->x]) )on_mirror = TRUE;
+                       cast = cast_mirror_spell(n);
                        break;
                case MIND_NINJUTSU:
                        
-                       cast = cast_ninja_spell(caster_ptr, n);
+                       cast = cast_ninja_spell(n);
                        break;
                default:
                        msg_format(_("謎の能力:%d, %d", "Mystery power:%d, %d"),use_mind, n);
@@ -1996,36 +1983,36 @@ void do_cmd_mind(player_type *caster_ptr)
 
 
        /* teleport from mirror costs small energy */
-       if(on_mirror && caster_ptr->pclass == CLASS_MIRROR_MASTER)
+       if(on_mirror && p_ptr->pclass == CLASS_MIRROR_MASTER)
        {
-         if( n==3 || n==5 || n==7 || n==16 ) take_turn(caster_ptr, 50);
+         if( n==3 || n==5 || n==7 || n==16 ) take_turn(p_ptr, 50);
        }
        else
        {
-               take_turn(caster_ptr, 100);
+               take_turn(p_ptr, 100);
        }
 
        if ((use_mind == MIND_BERSERKER) || (use_mind == MIND_NINJUTSU))
        {
-               take_hit(caster_ptr, DAMAGE_USELIFE, mana_cost, _("過度の集中", "concentrating too hard"), -1);
+               take_hit(DAMAGE_USELIFE, mana_cost, _("過度の集中", "concentrating too hard"), -1);
                /* Redraw hp */
-               caster_ptr->redraw |= (PR_HP);
+               p_ptr->redraw |= (PR_HP);
        }
 
        /* Sufficient mana */
        else if (mana_cost <= old_csp)
        {
                /* Use some mana */
-               caster_ptr->csp -= mana_cost;
+               p_ptr->csp -= mana_cost;
 
                /* Limit */
-               if (caster_ptr->csp < 0) caster_ptr->csp = 0;
+               if (p_ptr->csp < 0) p_ptr->csp = 0;
 
                if ((use_mind == MIND_MINDCRAFTER) && (n == 13))
                {
                        /* No mana left */
-                       caster_ptr->csp = 0;
-                       caster_ptr->csp_frac = 0;
+                       p_ptr->csp = 0;
+                       p_ptr->csp_frac = 0;
                }
        }
 
@@ -2035,13 +2022,13 @@ void do_cmd_mind(player_type *caster_ptr)
                int oops = mana_cost - old_csp;
 
                /* No mana left */
-               if ((caster_ptr->csp - mana_cost) < 0) caster_ptr->csp_frac = 0;
-               caster_ptr->csp = MAX(0, caster_ptr->csp - mana_cost);
+               if ((p_ptr->csp - mana_cost) < 0) p_ptr->csp_frac = 0;
+               p_ptr->csp = MAX(0, p_ptr->csp - mana_cost);
 
                msg_format(_("%sを集中しすぎて気を失ってしまった!", "You faint from the effort!"),p);
 
                /* Hack -- Bypass free action */
-               (void)set_paralyzed(caster_ptr, caster_ptr->paralyzed + randint1(5 * oops + 1));
+               (void)set_paralyzed(p_ptr->paralyzed + randint1(5 * oops + 1));
 
                /* Damage WIS (possibly permanently) */
                if (randint0(100) < 50)
@@ -2051,12 +2038,12 @@ void do_cmd_mind(player_type *caster_ptr)
                        msg_print(_("自分の精神を攻撃してしまった!", "You have damaged your mind!"));
 
                        /* Reduce constitution */
-                       (void)dec_stat(caster_ptr, A_WIS, 15 + randint1(10), perm);
+                       (void)dec_stat(A_WIS, 15 + randint1(10), perm);
                }
        }
-       caster_ptr->redraw |= (PR_MANA);
-       caster_ptr->window |= (PW_PLAYER);
-       caster_ptr->window |= (PW_SPELL);
+       p_ptr->redraw |= (PR_MANA);
+       p_ptr->window |= (PW_PLAYER);
+       p_ptr->window |= (PW_SPELL);
 }
 
 
@@ -2064,25 +2051,25 @@ void do_cmd_mind(player_type *caster_ptr)
  * @brief 現在プレイヤーが使用可能な特殊技能の一覧表示 /
  * @return なし
  */
-void do_cmd_mind_browse(player_type *caster_ptr)
+void do_cmd_mind_browse(void)
 {
        SPELL_IDX n = 0;
        int j, line;
        char temp[62*5];
        int use_mind = 0;
 
-       if (caster_ptr->pclass == CLASS_MINDCRAFTER) use_mind = MIND_MINDCRAFTER;
-       else if (caster_ptr->pclass == CLASS_FORCETRAINER) use_mind = MIND_KI;
-       else if (caster_ptr->pclass == CLASS_BERSERKER) use_mind = MIND_BERSERKER;
-       else if (caster_ptr->pclass == CLASS_NINJA) use_mind = MIND_NINJUTSU;
-       else if (caster_ptr->pclass == CLASS_MIRROR_MASTER)
+       if (p_ptr->pclass == CLASS_MINDCRAFTER) use_mind = MIND_MINDCRAFTER;
+       else if (p_ptr->pclass == CLASS_FORCETRAINER) use_mind = MIND_KI;
+       else if (p_ptr->pclass == CLASS_BERSERKER) use_mind = MIND_BERSERKER;
+       else if (p_ptr->pclass == CLASS_NINJA) use_mind = MIND_NINJUTSU;
+       else if (p_ptr->pclass == CLASS_MIRROR_MASTER)
          use_mind = MIND_MIRROR_MASTER;
 
        screen_save();
 
-       while (TRUE)
+       while(1)
        {
-               if (!get_mind_power(caster_ptr, &n, TRUE))
+               if (!get_mind_power(&n, TRUE))
                {
                        screen_load();
                        return;