OSDN Git Service

Changed Japanese translation for "New" to match what was suggested in hengbandforosx...
[hengbandforosx/hengbandosx.git] / src / spells1.c
index 0eabaa1..502d795 100644 (file)
@@ -19,6 +19,8 @@
 
 #include "monster.h"
 #include "monster-status.h"
+#include "monster-spell.h"
+#include "spells-status.h"
 #include "spells-diceroll.h"
 #include "spells-summon.h"
 #include "monsterrace-hook.h"
 #include "artifact.h"
 #include "avatar.h"
 #include "player-status.h"
+#include "player-move.h"
 #include "realm-hex.h"
 #include "object-hook.h"
+#include "object-broken.h"
 #include "term.h"
 #include "grid.h"
 #include "feature.h"
@@ -60,11 +64,11 @@ static void next_mirror(POSITION* next_y, POSITION* next_x, POSITION cury, POSIT
        POSITION x, y;
        int num;
 
-       for (x = 0; x < cur_wid; x++)
+       for (x = 0; x < current_floor_ptr->width; x++)
        {
-               for (y = 0; y < cur_hgt; y++)
+               for (y = 0; y < current_floor_ptr->height; y++)
                {
-                       if (is_mirror_grid(&current_floor->grid_array[y][x])) {
+                       if (is_mirror_grid(&current_floor_ptr->grid_array[y][x])) {
                                mirror_y[mirror_num] = y;
                                mirror_x[mirror_num] = x;
                                mirror_num++;
@@ -122,7 +126,7 @@ static POSITION monster_target_y; /*!< モンスターの攻撃目標Y座標 */
  */
 static bool project_f(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ)
 {
-       grid_type *g_ptr = &current_floor->grid_array[y][x];
+       grid_type *g_ptr = &current_floor_ptr->grid_array[y][x];
        feature_type *f_ptr = &f_info[g_ptr->feat];
 
        bool obvious = FALSE;
@@ -339,8 +343,6 @@ static bool project_f(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
 
                                /* Destroy the wall */
                                cave_alter_feat(y, x, FF_HURT_ROCK);
-
-                               /* Update some things */
                                p_ptr->update |= (PU_FLOW);
                        }
 
@@ -457,7 +459,7 @@ static bool project_f(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                        /* Turn off the light. */
                        if (do_dark)
                        {
-                               if (dun_level || !is_daytime())
+                               if (current_floor_ptr->dun_level || !is_daytime())
                                {
                                        for (j = 0; j < 9; j++)
                                        {
@@ -466,7 +468,7 @@ static bool project_f(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
 
                                                if (in_bounds2(by, bx))
                                                {
-                                                       grid_type *cc_ptr = &current_floor->grid_array[by][bx];
+                                                       grid_type *cc_ptr = &current_floor_ptr->grid_array[by][bx];
 
                                                        if (have_flag(f_info[get_feat_mimic(cc_ptr)].flags, FF_GLOW))
                                                        {
@@ -510,7 +512,7 @@ static bool project_f(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                {
                        if (is_mirror_grid(g_ptr))
                        {
-                               msg_print(_("鏡が割れた!", "The mirror was crashed!"));
+                               msg_print(_("鏡が割れた!", "The mirror was shattered!"));
                                sound(SOUND_GLASS);
                                remove_mirror(y, x);
                                project(0, 2, y, x, p_ptr->lev / 2 + 5, GF_SHARDS, (PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP | PROJECT_NO_HANGEKI), -1);
@@ -520,14 +522,12 @@ static bool project_f(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                        {
                                if (known && (g_ptr->info & CAVE_MARK))
                                {
-                                       msg_format(_("%sが割れた!", "The %s was crashed!"), f_name + f_info[get_feat_mimic(g_ptr)].name);
+                                       msg_format(_("%sが割れた!", "The %s crumbled!"), f_name + f_info[get_feat_mimic(g_ptr)].name);
                                        sound(SOUND_GLASS);
                                }
 
                                /* Destroy the wall */
                                cave_alter_feat(y, x, FF_HURT_ROCK);
-
-                               /* Update some things */
                                p_ptr->update |= (PU_FLOW);
                        }
                        break;
@@ -537,7 +537,7 @@ static bool project_f(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                {
                        if (is_mirror_grid(g_ptr) && p_ptr->lev < 40)
                        {
-                               msg_print(_("鏡が割れた!", "The mirror was crashed!"));
+                               msg_print(_("鏡が割れた!", "The mirror was shattered!"));
                                sound(SOUND_GLASS);
                                remove_mirror(y, x);
                                project(0, 2, y, x, p_ptr->lev / 2 + 5, GF_SHARDS, (PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP | PROJECT_NO_HANGEKI), -1);
@@ -547,14 +547,12 @@ static bool project_f(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                        {
                                if (known && (g_ptr->info & CAVE_MARK))
                                {
-                                       msg_format(_("%sが割れた!", "The %s was crashed!"), f_name + f_info[get_feat_mimic(g_ptr)].name);
+                                       msg_format(_("%sが割れた!", "The %s crumbled!"), f_name + f_info[get_feat_mimic(g_ptr)].name);
                                        sound(SOUND_GLASS);
                                }
 
                                /* Destroy the wall */
                                cave_alter_feat(y, x, FF_HURT_ROCK);
-
-                               /* Update some things */
                                p_ptr->update |= (PU_FLOW);
                        }
                        break;
@@ -615,7 +613,7 @@ static bool project_f(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
  */
 static bool project_o(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_POINT dam, EFFECT_ID typ)
 {
-       grid_type *g_ptr = &current_floor->grid_array[y][x];
+       grid_type *g_ptr = &current_floor_ptr->grid_array[y][x];
 
        OBJECT_IDX this_o_idx, next_o_idx = 0;
 
@@ -639,7 +637,7 @@ static bool project_o(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
        /* Scan all objects in the grid */
        for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx)
        {
-               object_type *o_ptr = &o_list[this_o_idx];
+               object_type *o_ptr = &current_floor_ptr->o_list[this_o_idx];
 
                bool is_art = FALSE;
                bool ignore = FALSE;
@@ -651,8 +649,6 @@ static bool project_o(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                /* Get the "plural"-ness */
                bool plural = (o_ptr->number > 1);
 #endif
-
-               /* Acquire next object */
                next_o_idx = o_ptr->next_o_idx;
                object_flags(o_ptr, flgs);
 
@@ -842,7 +838,7 @@ static bool project_o(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                                        int i;
                                        BIT_FLAGS mode = 0L;
 
-                                       if (!who || is_pet(&m_list[who]))
+                                       if (!who || is_pet(&current_floor_ptr->m_list[who]))
                                                mode |= PM_FORCE_PET;
 
                                        for (i = 0; i < o_ptr->number ; i++)
@@ -995,10 +991,10 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
 {
        int tmp;
 
-       grid_type *g_ptr = &current_floor->grid_array[y][x];
+       grid_type *g_ptr = &current_floor_ptr->grid_array[y][x];
 
-       monster_type *m_ptr = &m_list[g_ptr->m_idx];
-       monster_type *caster_ptr = (who > 0) ? &m_list[who] : NULL;
+       monster_type *m_ptr = &current_floor_ptr->m_list[g_ptr->m_idx];
+       monster_type *caster_ptr = (who > 0) ? &current_floor_ptr->m_list[who] : NULL;
 
        monster_race *r_ptr = &r_info[m_ptr->r_idx];
 
@@ -1597,7 +1593,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                                                else
                                                {
                                                        /* Injure +/- confusion */
-                                                       monster_desc(killer, m_ptr, MD_IGNORE_HALLU | MD_ASSUME_VISIBLE | MD_INDEF_VISIBLE);
+                                                       monster_desc(killer, m_ptr, MD_WRONGDOER_NAME);
                                                        take_hit(DAMAGE_ATTACK, dam, killer, -1);  /* has already been /3 */
                                                        if (one_in_(4) && !CHECK_MULTISHADOW())
                                                        {
@@ -1687,7 +1683,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                                                else
                                                {
                                                        /* Injure + mana drain */
-                                                       monster_desc(killer, m_ptr, MD_IGNORE_HALLU | MD_ASSUME_VISIBLE | MD_INDEF_VISIBLE);
+                                                       monster_desc(killer, m_ptr, MD_WRONGDOER_NAME);
                                                        if (!CHECK_MULTISHADOW())
                                                        {
                                                                msg_print(_("超能力パワーを吸いとられた!", "Your psychic energy is drained!"));
@@ -2014,7 +2010,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                                }
                                if (MON_MONFEAR(m_ptr))
                                {
-                                       if (seen_msg) msg_format(_("%^sは勇気を取り戻した。", "%^s recovers %s courage."), m_name);
+                                       if (seen_msg) msg_format(_("%^sは勇気を取り戻した。", "%^s recovers %s courage."), m_name, m_poss);
                                        (void)set_monster_monfear(g_ptr->m_idx, 0);
                                }
 
@@ -3335,7 +3331,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                                if (seen) obvious = TRUE;
                                if (genocide_aux(g_ptr->m_idx, dam, !who, (r_ptr->level + 1) / 2, _("モンスター消滅", "Genocide One")))
                                {
-                                       if (seen_msg) msg_format(_("%sは消滅した!", "%^s disappered!"), m_name);
+                                       if (seen_msg) msg_format(_("%sは消滅した!", "%^s disappeared!"), m_name);
                                        chg_virtue(V_VITALITY, -1);
                                        return TRUE;
                                }
@@ -3586,7 +3582,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                        }
 
                        /* Hack -- Get new monster */
-                       m_ptr = &m_list[g_ptr->m_idx];
+                       m_ptr = &current_floor_ptr->m_list[g_ptr->m_idx];
 
                        /* Hack -- Get new race */
                        r_ptr = &r_info[m_ptr->r_idx];
@@ -3610,7 +3606,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                        x = m_ptr->fx;
 
                        /* Hack -- get new grid */
-                       g_ptr = &current_floor->grid_array[y][x];
+                       g_ptr = &current_floor_ptr->grid_array[y][x];
                }
 
                /* Fear */
@@ -3911,16 +3907,16 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                {
                        do
                        {
-                               t_y = m_list[who].fy - 1 + randint1(3);
-                               t_x = m_list[who].fx - 1 + randint1(3);
+                               t_y = current_floor_ptr->m_list[who].fy - 1 + randint1(3);
+                               t_x = current_floor_ptr->m_list[who].fx - 1 + randint1(3);
                                max_attempts--;
                        }
                        while (max_attempts && in_bounds2u(t_y, t_x) && !projectable(p_ptr->y, p_ptr->x, t_y, t_x));
 
                        if (max_attempts < 1)
                        {
-                               t_y = m_list[who].fy;
-                               t_x = m_list[who].fx;
+                               t_y = current_floor_ptr->m_list[who].fy;
+                               t_x = current_floor_ptr->m_list[who].fx;
                        }
                }
                else
@@ -3948,7 +3944,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
 
        if (who > 0)
        {
-               m_ptr = &m_list[who];
+               m_ptr = &current_floor_ptr->m_list[who];
                rlev = (((&r_info[m_ptr->r_idx])->level >= 1) ? (&r_info[m_ptr->r_idx])->level : 1);
                monster_desc(m_name, m_ptr, 0);
 
@@ -3971,8 +3967,6 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        strcpy(killer, _("罠", "a trap"));
                        break;
                }
-
-               /* Paranoia */
                strcpy(m_name, killer);
        }
 
@@ -4053,7 +4047,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                                        if (one_in_(4)) /* 4 */
                                                do_poly_self();
                                        else
-                                               mutate_player();
+                                               status_shuffle();
                                }
 
                                if (one_in_(6))
@@ -4204,7 +4198,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                                        if (one_in_(3))
                                        {
                                                msg_print(_("あなたの身体はカオスの力で捻じ曲げられた!", "Your body is twisted by chaos!"));
-                                               (void)gain_random_mutation(0);
+                                               (void)gain_mutation(p_ptr, 0);
                                        }
                                }
                                if (!p_ptr->resist_neth && !p_ptr->resist_chaos)
@@ -4440,7 +4434,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                                        case 1: case 2: case 3: case 4: case 5:
                                        {
                                                if (p_ptr->prace == RACE_ANDROID) break;
-                                               msg_print(_("人生が逆戻りした気がする。", "You feel life has clocked back."));
+                                               msg_print(_("人生が逆戻りした気がする。", "You feel like a chunk of the past has been ripped away."));
                                                lose_exp(100 + (p_ptr->exp / 100) * MON_DRAIN_LIFE);
                                                break;
                                        }
@@ -4668,7 +4662,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                {
                        if (CHECK_MULTISHADOW())
                        {
-                               msg_print(_("攻撃は幻影に命中し、あなたには届かなかった。", "The attack hits Shadow, you are unharmed!"));
+                               msg_print(_("攻撃は幻影に命中し、あなたには届かなかった。", "The attack hits Shadow, but you are unharmed!"));
                        }
                        else if (p_ptr->csp)
                        {
@@ -4734,7 +4728,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        {
                                if (!CHECK_MULTISHADOW())
                                {
-                                       msg_print(_("霊的エネルギーで精神が攻撃された。", "Your mind is blasted by psyonic energy."));
+                                       msg_print(_("霊的エネルギーで精神が攻撃された。", "Your mind is blasted by psionic energy."));
 
                                        if (!p_ptr->resist_conf)
                                        {
@@ -4772,7 +4766,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
                        {
                                if (!CHECK_MULTISHADOW())
                                {
-                                       msg_print(_("霊的エネルギーで精神が攻撃された。", "Your mind is blasted by psyonic energy."));
+                                       msg_print(_("霊的エネルギーで精神が攻撃された。", "Your mind is blasted by psionic energy."));
 
                                        p_ptr->csp -= 100;
                                        if (p_ptr->csp < 0)
@@ -4896,7 +4890,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI
 
                                get_damage = take_hit(DAMAGE_ATTACK, dam, m_name, monspell);
 
-                               if (p_ptr->chp < 1) p_ptr->chp = 1; /* Paranoia */
+                               if (p_ptr->chp < 1) p_ptr->chp = 1;
                        }
                        break;
                }
@@ -5503,9 +5497,9 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
        /* Start at monster */
        else if (who > 0)
        {
-               x1 = m_list[who].fx;
-               y1 = m_list[who].fy;
-               monster_desc(who_name, &m_list[who], MD_IGNORE_HALLU | MD_ASSUME_VISIBLE | MD_INDEF_VISIBLE);
+               x1 = current_floor_ptr->m_list[who].fx;
+               y1 = current_floor_ptr->m_list[who].fy;
+               monster_desc(who_name, &current_floor_ptr->m_list[who], MD_WRONGDOER_NAME);
        }
 
        else
@@ -5656,7 +5650,7 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
                                }
                        }
                        if (project_o(0, 0, y, x, dam, GF_SEEKER))notice = TRUE;
-                       if (is_mirror_grid(&current_floor->grid_array[y][x]))
+                       if (is_mirror_grid(&current_floor_ptr->grid_array[y][x]))
                        {
                                /* The target of monsterspell becomes tha mirror(broken) */
                                monster_target_y = y;
@@ -5672,13 +5666,13 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
                                        x = GRID_X(path_g[j]);
                                        if (project_m(0, 0, y, x, dam, GF_SEEKER, flg, TRUE)) notice = TRUE;
                                        if (!who && (project_m_n == 1) && !jump) {
-                                               if (current_floor->grid_array[project_m_y][project_m_x].m_idx > 0) {
-                                                       monster_type *m_ptr = &m_list[current_floor->grid_array[project_m_y][project_m_x].m_idx];
+                                               if (current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx > 0) {
+                                                       monster_type *m_ptr = &current_floor_ptr->m_list[current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx];
 
                                                        if (m_ptr->ml)
                                                        {
                                                                if (!p_ptr->image) monster_race_track(m_ptr->ap_r_idx);
-                                                               health_track(current_floor->grid_array[project_m_y][project_m_x].m_idx);
+                                                               health_track(current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx);
                                                        }
                                                }
                                        }
@@ -5695,14 +5689,14 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
                        if (project_m(0, 0, py, px, dam, GF_SEEKER, flg, TRUE))
                                notice = TRUE;
                        if (!who && (project_m_n == 1) && !jump) {
-                               if (current_floor->grid_array[project_m_y][project_m_x].m_idx > 0)
+                               if (current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx > 0)
                                {
-                                       monster_type *m_ptr = &m_list[current_floor->grid_array[project_m_y][project_m_x].m_idx];
+                                       monster_type *m_ptr = &current_floor_ptr->m_list[current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx];
 
                                        if (m_ptr->ml)
                                        {
                                                if (!p_ptr->image) monster_race_track(m_ptr->ap_r_idx);
-                                               health_track(current_floor->grid_array[project_m_y][project_m_x].m_idx);
+                                               health_track(current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx);
                                        }
                                }
                        }
@@ -5793,7 +5787,7 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
                                if( second_step )continue;
                                break;
                        }
-                       if( is_mirror_grid(&current_floor->grid_array[y][x]) && !second_step )
+                       if( is_mirror_grid(&current_floor_ptr->grid_array[y][x]) && !second_step )
                        {
                          /* The target of monsterspell becomes tha mirror(broken) */
                                monster_target_y = y;
@@ -5825,13 +5819,13 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
                        px = GRID_X(path_g[i]);
                        (void)project_m(0, 0, py, px, dam, GF_SUPER_RAY, flg, TRUE);
                        if(!who && (project_m_n == 1) && !jump){
-                               if(current_floor->grid_array[project_m_y][project_m_x].m_idx >0 ){
-                                       monster_type *m_ptr = &m_list[current_floor->grid_array[project_m_y][project_m_x].m_idx];
+                               if(current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx >0 ){
+                                       monster_type *m_ptr = &current_floor_ptr->m_list[current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx];
 
                                        if (m_ptr->ml)
                                        {
                                                if (!p_ptr->image) monster_race_track(m_ptr->ap_r_idx);
-                                               health_track(current_floor->grid_array[project_m_y][project_m_x].m_idx);
+                                               health_track(current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx);
                                        }
                                }
                        }
@@ -6106,7 +6100,7 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
 
        if (flg & PROJECT_KILL)
        {
-               see_s_msg = (who > 0) ? is_seen(&m_list[who]) :
+               see_s_msg = (who > 0) ? is_seen(&current_floor_ptr->m_list[who]) :
                        (!who ? TRUE : (player_can_see_bold(y1, x1) && projectable(p_ptr->y, p_ptr->x, y1, x1)));
        }
 
@@ -6204,11 +6198,11 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
                        /* A single bolt may be reflected */
                        if (grids <= 1)
                        {
-                               monster_type *m_ptr = &m_list[current_floor->grid_array[y][x].m_idx];
+                               monster_type *m_ptr = &current_floor_ptr->m_list[current_floor_ptr->grid_array[y][x].m_idx];
                                monster_race *ref_ptr = &r_info[m_ptr->r_idx];
 
-                               if ((flg & PROJECT_REFLECTABLE) && current_floor->grid_array[y][x].m_idx && (ref_ptr->flags2 & RF2_REFLECTING) &&
-                                       ((current_floor->grid_array[y][x].m_idx != p_ptr->riding) || !(flg & PROJECT_PLAYER)) &&
+                               if ((flg & PROJECT_REFLECTABLE) && current_floor_ptr->grid_array[y][x].m_idx && (ref_ptr->flags2 & RF2_REFLECTING) &&
+                                       ((current_floor_ptr->grid_array[y][x].m_idx != p_ptr->riding) || !(flg & PROJECT_PLAYER)) &&
                                        (!who || dist_hack > 1) && !one_in_(10))
                                {
                                        POSITION t_y, t_x;
@@ -6246,7 +6240,7 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
                                        else flg |= PROJECT_PLAYER;
 
                                        /* The bolt is reflected */
-                                       project(current_floor->grid_array[y][x].m_idx, 0, t_y, t_x, dam, typ, flg, monspell);
+                                       project(current_floor_ptr->grid_array[y][x].m_idx, 0, t_y, t_x, dam, typ, flg, monspell);
 
                                        /* Don't affect the monster any longer */
                                        continue;
@@ -6348,14 +6342,14 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
                        y = project_m_y;
 
                        /* Track if possible */
-                       if (current_floor->grid_array[y][x].m_idx > 0)
+                       if (current_floor_ptr->grid_array[y][x].m_idx > 0)
                        {
-                               monster_type *m_ptr = &m_list[current_floor->grid_array[y][x].m_idx];
+                               monster_type *m_ptr = &current_floor_ptr->m_list[current_floor_ptr->grid_array[y][x].m_idx];
 
                                if (m_ptr->ml)
                                {
                                        if (!p_ptr->image) monster_race_track(m_ptr->ap_r_idx);
-                                       health_track(current_floor->grid_array[y][x].m_idx);
+                                       health_track(current_floor_ptr->grid_array[y][x].m_idx);
                                }
                        }
                }
@@ -6441,7 +6435,7 @@ bool project(MONSTER_IDX who, POSITION rad, POSITION y, POSITION x, HIT_POINT da
        {
                GAME_TEXT m_name[MAX_NLEN];
 
-               monster_desc(m_name, &m_list[p_ptr->riding], 0);
+               monster_desc(m_name, &current_floor_ptr->m_list[p_ptr->riding], 0);
 
                if (rakubadam_m > 0)
                {
@@ -6486,11 +6480,11 @@ bool binding_field(HIT_POINT dam)
        monster_target_y = p_ptr->y;
        monster_target_x = p_ptr->x;
 
-       for (x = 0; x < cur_wid; x++)
+       for (x = 0; x < current_floor_ptr->width; x++)
        {
-               for (y = 0; y < cur_hgt; y++)
+               for (y = 0; y < current_floor_ptr->height; y++)
                {
-                       if (is_mirror_grid(&current_floor->grid_array[y][x]) &&
+                       if (is_mirror_grid(&current_floor_ptr->grid_array[y][x]) &&
                                distance(p_ptr->y, p_ptr->x, y, x) <= MAX_RANGE &&
                                distance(p_ptr->y, p_ptr->x, y, x) != 0 &&
                                player_has_los_bold(y, x) &&
@@ -6620,16 +6614,16 @@ void seal_of_mirror(HIT_POINT dam)
 {
        POSITION x, y;
 
-       for (x = 0; x < cur_wid; x++)
+       for (x = 0; x < current_floor_ptr->width; x++)
        {
-               for (y = 0; y < cur_hgt; y++)
+               for (y = 0; y < current_floor_ptr->height; y++)
                {
-                       if (is_mirror_grid(&current_floor->grid_array[y][x]))
+                       if (is_mirror_grid(&current_floor_ptr->grid_array[y][x]))
                        {
                                if (project_m(0, 0, y, x, dam, GF_GENOCIDE,
                                        (PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_JUMP), TRUE))
                                {
-                                       if (!current_floor->grid_array[y][x].m_idx)
+                                       if (!current_floor_ptr->grid_array[y][x].m_idx)
                                        {
                                                remove_mirror(y, x);
                                        }