OSDN Git Service

#37324 (2.2.0.28) obj-desc.spo の出力内容に、にアイテム生成chance値を追加。 / Add chance values to info...
[hengband/hengband.git] / src / spells2.c
index c04b47d..9af8b83 100644 (file)
@@ -109,52 +109,52 @@ void self_knowledge(void)
        info[i++] = buf[1];
        for (v_nr = 0; v_nr < 8; v_nr++)
        {
-               char v_name [20];
+               char vir_name [20];
                char vir_desc[80];
                int tester = p_ptr->virtues[v_nr];
        
-               strcpy(v_name, virtue[(p_ptr->vir_types[v_nr])-1]);
+               strcpy(vir_name, virtue[(p_ptr->vir_types[v_nr])-1]);
  
-               sprintf(vir_desc, _("おっと。%sの情報なし。", "Oops. No info about %s."), v_name);
+               sprintf(vir_desc, _("おっと。%sの情報なし。", "Oops. No info about %s."), vir_name);
                if (tester < -100)
                        sprintf(vir_desc, _("[%s]の対極 (%d)", "You are the polar opposite of %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < -80)
                        sprintf(vir_desc, _("[%s]の大敵 (%d)", "You are an arch-enemy of %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < -60)
                        sprintf(vir_desc, _("[%s]の強敵 (%d)", "You are a bitter enemy of %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < -40)
                        sprintf(vir_desc, _("[%s]の敵 (%d)", "You are an enemy of %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < -20)
                        sprintf(vir_desc, _("[%s]の罪者 (%d)", "You have sinned against %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < 0)
                        sprintf(vir_desc, _("[%s]の迷道者 (%d)", "You have strayed from the path of %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester == 0)
                        sprintf(vir_desc, _("[%s]の中立者 (%d)", "You are neutral to %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < 20)
                        sprintf(vir_desc, _("[%s]の小徳者 (%d)", "You are somewhat virtuous in %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < 40)
                        sprintf(vir_desc, _("[%s]の中徳者 (%d)", "You are virtuous in %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < 60)
                        sprintf(vir_desc, _("[%s]の高徳者 (%d)", "You are very virtuous in %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < 80)
                        sprintf(vir_desc, _("[%s]の覇者 (%d)", "You are a champion of %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else if (tester < 100)
                        sprintf(vir_desc, _("[%s]の偉大な覇者 (%d)", "You are a great champion of %s (%d)."),
-                               v_name, tester);
+                               vir_name, tester);
                else
                        sprintf(vir_desc, _("[%s]の具現者 (%d)", "You are the living embodiment of %s (%d)."),
-               v_name, tester);
+                               vir_name, tester);
        
                strcpy(v_string[v_nr], vir_desc);
        
@@ -1834,7 +1834,7 @@ static bool detect_feat_flag(int range, int flag, bool known)
        {
                for (x = 1; x <= cur_wid - 1; x++)
                {
-                       int dist = distance(py, px, y, x);
+                       int dist = distance(p_ptr->y, p_ptr->x, y, x);
                        if (dist > range) continue;
 
                        /* Access the grid */
@@ -1999,7 +1999,7 @@ bool detect_objects_gold(int range)
                x = o_ptr->ix;
 
                /* Only detect nearby objects */
-               if (distance(py, px, y, x) > range2) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range2) continue;
 
                /* Detect "gold" objects */
                if (o_ptr->tval == TV_GOLD)
@@ -2063,7 +2063,7 @@ bool detect_objects_normal(int range)
                x = o_ptr->ix;
 
                /* Only detect nearby objects */
-               if (distance(py, px, y, x) > range2) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range2) continue;
 
                /* Detect "real" objects */
                if (o_ptr->tval != TV_GOLD)
@@ -2134,7 +2134,7 @@ bool detect_objects_magic(int range)
                x = o_ptr->ix;
 
                /* Only detect nearby objects */
-               if (distance(py, px, y, x) > range) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
 
                /* Examine the tval */
                tv = o_ptr->tval;
@@ -2214,7 +2214,7 @@ bool detect_monsters_normal(int range)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(py, px, y, x) > range) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
 
                /* Detect all non-invisible monsters */
                if (!(r_ptr->flags2 & RF2_INVISIBLE) || p_ptr->see_inv)
@@ -2273,7 +2273,7 @@ bool detect_monsters_invis(int range)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(py, px, y, x) > range) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
 
                /* Detect invisible monsters */
                if (r_ptr->flags2 & RF2_INVISIBLE)
@@ -2338,7 +2338,7 @@ bool detect_monsters_evil(int range)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(py, px, y, x) > range) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
 
                /* Detect evil monsters */
                if (r_ptr->flags3 & RF3_EVIL)
@@ -2407,7 +2407,7 @@ bool detect_monsters_nonliving(int range)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(py, px, y, x) > range) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
 
                /* Detect non-living monsters */
                if (!monster_living(r_ptr))
@@ -2470,7 +2470,7 @@ bool detect_monsters_mind(int range)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(py, px, y, x) > range) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
 
                /* Detect non-living monsters */
                if (!(r_ptr->flags2 & RF2_EMPTY_MIND))
@@ -2535,7 +2535,7 @@ bool detect_monsters_string(int range, cptr Match)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(py, px, y, x) > range) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
 
                /* Detect monsters with the same symbol */
                if (my_strchr(Match, r_ptr->d_char))
@@ -2602,7 +2602,7 @@ bool detect_monsters_xxx(int range, u32b match_flag)
                x = m_ptr->fx;
 
                /* Only detect nearby monsters */
-               if (distance(py, px, y, x) > range) continue;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > range) continue;
 
                /* Detect evil monsters */
                if (r_ptr->flags3 & (match_flag))
@@ -2717,7 +2717,7 @@ bool project_hack(int typ, int dam)
                x = m_ptr->fx;
 
                /* Require line of sight */
-               if (!player_has_los_bold(y, x) || !projectable(py, px, y, x)) continue;
+               if (!player_has_los_bold(y, x) || !projectable(p_ptr->y, p_ptr->x, y, x)) continue;
 
                /* Mark the monster */
                m_ptr->mflag |= (MFLAG_TEMP);
@@ -3001,7 +3001,7 @@ bool genocide_aux(int m_idx, int power, bool player_cast, int dam_side, cptr spe
        }
 
        /* Visual feedback */
-       move_cursor_relative(py, px);
+       move_cursor_relative(p_ptr->y, p_ptr->x);
 
        /* Redraw */
        p_ptr->redraw |= (PR_HP);
@@ -3276,8 +3276,6 @@ sprintf(buf, "%s ... align:%s HP:%d/%d AC:%d speed:%s%d exp:", m_name, align, m_
                        /* Learn everything about this monster */
                        if (lore_do_probe(m_ptr->r_idx))
                        {
-                               char buf[80];
-
                                /* Get base name of monster */
                                strcpy(buf, (r_name + r_ptr->name));
 
@@ -3592,7 +3590,7 @@ bool destroy_area(int y1, int x1, int r, bool in_generate)
 
                if (p_ptr->special_defense & NINJA_S_STEALTH)
                {
-                       if (cave[py][px].info & CAVE_GLOW) set_superstealth(FALSE);
+                       if (cave[p_ptr->y][p_ptr->x].info & CAVE_GLOW) set_superstealth(FALSE);
                }
        }
 
@@ -3701,8 +3699,8 @@ bool earthquake_aux(int cy, int cx, int r, int m_idx)
                for (i = 0; i < 8; i++)
                {
                        /* Access the location */
-                       y = py + ddy_ddd[i];
-                       x = px + ddx_ddd[i];
+                       y = p_ptr->y + ddy_ddd[i];
+                       x = p_ptr->x + ddx_ddd[i];
 
                        /* Skip non-empty grids */
                        if (!cave_empty_bold(y, x)) continue;
@@ -3783,7 +3781,7 @@ bool earthquake_aux(int cy, int cx, int r, int m_idx)
                }
 
                /* Important -- no wall on player */
-               map[16+py-cy][16+px-cx] = FALSE;
+               map[16+p_ptr->y-cy][16+p_ptr->x-cx] = FALSE;
 
                /* Take some damage */
                if (damage)
@@ -3930,13 +3928,13 @@ bool earthquake_aux(int cy, int cx, int r, int m_idx)
                                        /* Hack -- Escape from the rock */
                                        if (sn)
                                        {
-                                               int m_idx = cave[yy][xx].m_idx;
+                                               int m_idx_aux = cave[yy][xx].m_idx;
 
                                                /* Update the old location */
                                                cave[yy][xx].m_idx = 0;
 
                                                /* Update the new location */
-                                               cave[sy][sx].m_idx = m_idx;
+                                               cave[sy][sx].m_idx = m_idx_aux;
 
                                                /* Move the monster */
                                                m_ptr->fy = sy;
@@ -4076,7 +4074,7 @@ bool earthquake_aux(int cy, int cx, int r, int m_idx)
 
        if (p_ptr->special_defense & NINJA_S_STEALTH)
        {
-               if (cave[py][px].info & CAVE_GLOW) set_superstealth(FALSE);
+               if (cave[p_ptr->y][p_ptr->x].info & CAVE_GLOW) set_superstealth(FALSE);
        }
 
        /* Success */
@@ -4425,7 +4423,7 @@ static void cave_temp_room_aux(int y, int x, bool only_room, bool (*pass_bold)(i
                if (!in_bounds2(y, x)) return;
 
                /* Do not exceed the maximum spell range */
-               if (distance(py, px, y, x) > MAX_RANGE) return;
+               if (distance(p_ptr->y, p_ptr->x, y, x) > MAX_RANGE) return;
 
                /* Verify this grid */
                /*
@@ -4537,7 +4535,7 @@ void lite_room(int y1, int x1)
 
        if (p_ptr->special_defense & NINJA_S_STEALTH)
        {
-               if (cave[py][px].info & CAVE_GLOW) set_superstealth(FALSE);
+               if (cave[p_ptr->y][p_ptr->x].info & CAVE_GLOW) set_superstealth(FALSE);
        }
 }
 
@@ -4605,10 +4603,10 @@ bool lite_area(int dam, int rad)
        }
 
        /* Hook into the "project()" function */
-       (void)project(0, rad, py, px, dam, GF_LITE_WEAK, flg, -1);
+       (void)project(0, rad, p_ptr->y, p_ptr->x, dam, GF_LITE_WEAK, flg, -1);
 
        /* Lite up the room */
-       lite_room(py, px);
+       lite_room(p_ptr->y, p_ptr->x);
 
        /* Assume seen */
        return (TRUE);
@@ -4632,10 +4630,10 @@ bool unlite_area(int dam, int rad)
        }
 
        /* Hook into the "project()" function */
-       (void)project(0, rad, py, px, dam, GF_DARK_WEAK, flg, -1);
+       (void)project(0, rad, p_ptr->y, p_ptr->x, dam, GF_DARK_WEAK, flg, -1);
 
        /* Lite up the room */
-       unlite_room(py, px);
+       unlite_room(p_ptr->y, p_ptr->x);
 
        /* Assume seen */
        return (TRUE);
@@ -4665,8 +4663,8 @@ bool fire_ball(int typ, int dir, int dam, int rad)
 
        if (typ == GF_CONTROL_LIVING) flg|= PROJECT_HIDE;
        /* Use the given direction */
-       tx = px + 99 * ddx[dir];
-       ty = py + 99 * ddy[dir];
+       tx = p_ptr->x + 99 * ddx[dir];
+       ty = p_ptr->y + 99 * ddy[dir];
 
        /* Hack -- Use an actual "target" */
        if ((dir == 5) && target_okay())
@@ -4703,8 +4701,8 @@ bool fire_rocket(int typ, int dir, int dam, int rad)
        int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
 
        /* Use the given direction */
-       tx = px + 99 * ddx[dir];
-       ty = py + 99 * ddy[dir];
+       tx = p_ptr->x + 99 * ddx[dir];
+       ty = p_ptr->y + 99 * ddy[dir];
 
        /* Hack -- Use an actual "target" */
        if ((dir == 5) && target_okay())
@@ -4739,8 +4737,8 @@ bool fire_ball_hide(int typ, int dir, int dam, int rad)
        int flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_HIDE;
 
        /* Use the given direction */
-       tx = px + 99 * ddx[dir];
-       ty = py + 99 * ddy[dir];
+       tx = p_ptr->x + 99 * ddx[dir];
+       ty = p_ptr->y + 99 * ddy[dir];
 
        /* Hack -- Use an actual "target" */
        if ((dir == 5) && target_okay())
@@ -4806,8 +4804,8 @@ bool fire_blast(int typ, int dir, int dd, int ds, int num, int dev)
        /* Use the given direction */
        if (dir != 5)
        {
-               ly = ty = py + 20 * ddy[dir];
-               lx = tx = px + 20 * ddx[dir];
+               ly = ty = p_ptr->y + 20 * ddy[dir];
+               lx = tx = p_ptr->x + 20 * ddx[dir];
        }
 
        /* Use an actual "target" */
@@ -4816,11 +4814,11 @@ bool fire_blast(int typ, int dir, int dd, int ds, int num, int dev)
                tx = target_col;
                ty = target_row;
 
-               lx = 20 * (tx - px) + px;
-               ly = 20 * (ty - py) + py;
+               lx = 20 * (tx - p_ptr->x) + p_ptr->x;
+               ly = 20 * (ty - p_ptr->y) + p_ptr->y;
        }
 
-       ld = distance(py, px, ly, lx);
+       ld = distance(p_ptr->y, p_ptr->x, ly, lx);
 
        /* Blast */
        for (i = 0; i < num; i++)
@@ -4864,8 +4862,8 @@ bool teleport_swap(int dir)
        }
        else
        {
-               tx = px + ddx[dir];
-               ty = py + ddy[dir];
+               tx = p_ptr->x + ddx[dir];
+               ty = p_ptr->y + ddy[dir];
        }
        c_ptr = &cave[ty][tx];
 
@@ -4883,7 +4881,7 @@ bool teleport_swap(int dir)
                return FALSE;
        }
 
-       if ((c_ptr->info & CAVE_ICKY) || (distance(ty, tx, py, px) > p_ptr->lev * 3 / 2 + 10))
+       if ((c_ptr->info & CAVE_ICKY) || (distance(ty, tx, p_ptr->y, p_ptr->x) > p_ptr->lev * 3 / 2 + 10))
        {
                msg_print(_("失敗した。", "Failed to swap."));
 
@@ -4932,8 +4930,8 @@ bool project_hook(int typ, int dir, int dam, int flg)
        flg |= (PROJECT_THRU);
 
        /* Use the given direction */
-       tx = px + ddx[dir];
-       ty = py + ddy[dir];
+       tx = p_ptr->x + ddx[dir];
+       ty = p_ptr->y + ddy[dir];
 
        /* Hack -- Use an actual "target" */
        if ((dir == 5) && target_okay())
@@ -5243,7 +5241,7 @@ bool teleport_monster(int dir, int distance)
 bool door_creation(void)
 {
        int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
-       return (project(0, 1, py, px, 0, GF_MAKE_DOOR, flg, -1));
+       return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_MAKE_DOOR, flg, -1));
 }
 
 /*!
@@ -5265,7 +5263,7 @@ bool trap_creation(int y, int x)
 bool tree_creation(void)
 {
        int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
-       return (project(0, 1, py, px, 0, GF_MAKE_TREE, flg, -1));
+       return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_MAKE_TREE, flg, -1));
 }
 
 /*!
@@ -5275,7 +5273,7 @@ bool tree_creation(void)
 bool glyph_creation(void)
 {
        int flg = PROJECT_GRID | PROJECT_ITEM;
-       return (project(0, 1, py, px, 0, GF_MAKE_GLYPH, flg, -1));
+       return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_MAKE_GLYPH, flg, -1));
 }
 
 /*!
@@ -5286,7 +5284,7 @@ bool wall_stone(void)
 {
        int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
 
-       bool dummy = (project(0, 1, py, px, 0, GF_STONE_WALL, flg, -1));
+       bool dummy = (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_STONE_WALL, flg, -1));
 
        /* Update stuff */
        p_ptr->update |= (PU_FLOW);
@@ -5304,7 +5302,7 @@ bool wall_stone(void)
 bool destroy_doors_touch(void)
 {
        int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
-       return (project(0, 1, py, px, 0, GF_KILL_DOOR, flg, -1));
+       return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_KILL_DOOR, flg, -1));
 }
 
 /*!
@@ -5314,7 +5312,7 @@ bool destroy_doors_touch(void)
 bool disarm_traps_touch(void)
 {
        int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_HIDE;
-       return (project(0, 1, py, px, 0, GF_KILL_TRAP, flg, -1));
+       return (project(0, 1, p_ptr->y, p_ptr->x, 0, GF_KILL_TRAP, flg, -1));
 }
 
 /*!
@@ -5324,7 +5322,7 @@ bool disarm_traps_touch(void)
 bool sleep_monsters_touch(void)
 {
        int flg = PROJECT_KILL | PROJECT_HIDE;
-       return (project(0, 1, py, px, p_ptr->lev, GF_OLD_SLEEP, flg, -1));
+       return (project(0, 1, p_ptr->y, p_ptr->x, p_ptr->lev, GF_OLD_SLEEP, flg, -1));
 }
 
 
@@ -5356,7 +5354,7 @@ void call_chaos(void)
                GF_ELEC,      GF_POIS,    GF_ACID,    GF_COLD,
                GF_FIRE,      GF_MISSILE, GF_ARROW,   GF_PLASMA,
                GF_HOLY_FIRE, GF_WATER,   GF_LITE,    GF_DARK,
-               GF_FORCE,     GF_INERTIA, GF_MANA,    GF_METEOR,
+               GF_FORCE,     GF_INERTIAL, GF_MANA,    GF_METEOR,
                GF_ICE,       GF_CHAOS,   GF_NETHER,  GF_DISENCHANT,
                GF_SHARDS,    GF_SOUND,   GF_NEXUS,   GF_CONFUSION,
                GF_TIME,      GF_GRAVITY, GF_ROCKET,  GF_NUKE,
@@ -5418,7 +5416,7 @@ bool activate_ty_curse(bool stop_ty, int *count)
                        if (!(*count))
                        {
                                msg_print(_("地面が揺れた...", "The ground trembles..."));
-                               earthquake(py, px, 5 + randint0(10));
+                               earthquake(p_ptr->y, p_ptr->x, 5 + randint0(10));
                                if (!one_in_(6)) break;
                        }
                case 30: case 31:
@@ -5426,7 +5424,7 @@ bool activate_ty_curse(bool stop_ty, int *count)
                        {
                                int dam = damroll(10, 10);
                                msg_print(_("純粋な魔力の次元への扉が開いた!", "A portal opens to a plane of raw mana!"));
-                               project(0, 8, py, px, dam, GF_MANA, flg, -1);
+                               project(0, 8, p_ptr->y, p_ptr->x, dam, GF_MANA, flg, -1);
                                take_hit(DAMAGE_NOESCAPE, dam, _("純粋な魔力の解放", "released pure mana"), -1);
                                if (!one_in_(6)) break;
                        }
@@ -5435,7 +5433,7 @@ bool activate_ty_curse(bool stop_ty, int *count)
                        {
                                msg_print(_("周囲の空間が歪んだ!", "Space warps about you!"));
                                teleport_player(damroll(10, 10), TELEPORT_PASSIVE);
-                               if (randint0(13)) (*count) += activate_hi_summon(py, px, FALSE);
+                               if (randint0(13)) (*count) += activate_hi_summon(p_ptr->y, p_ptr->x, FALSE);
                                if (!one_in_(6)) break;
                        }
                case 34:
@@ -5443,7 +5441,7 @@ bool activate_ty_curse(bool stop_ty, int *count)
                        wall_breaker();
                        if (!randint0(7))
                        {
-                               project(0, 7, py, px, 50, GF_KILL_WALL, flg, -1);
+                               project(0, 7, p_ptr->y, p_ptr->x, 50, GF_KILL_WALL, flg, -1);
                                take_hit(DAMAGE_NOESCAPE, 50, _("エネルギーのうねり", "surge of energy"), -1);
                        }
                        if (!one_in_(6)) break;
@@ -5451,10 +5449,10 @@ bool activate_ty_curse(bool stop_ty, int *count)
                        aggravate_monsters(0);
                        if (!one_in_(6)) break;
                case 4: case 5: case 6:
-                       (*count) += activate_hi_summon(py, px, FALSE);
+                       (*count) += activate_hi_summon(p_ptr->y, p_ptr->x, FALSE);
                        if (!one_in_(6)) break;
                case 7: case 8: case 9: case 18:
-                       (*count) += summon_specific(0, py, px, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
+                       (*count) += summon_specific(0, p_ptr->y, p_ptr->x, dun_level, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE | PM_NO_PET));
                        if (!one_in_(6)) break;
                case 10: case 11: case 12:
                        msg_print(_("経験値が体から吸い取られた気がする!", "You feel your experience draining away..."));
@@ -5488,7 +5486,7 @@ bool activate_ty_curse(bool stop_ty, int *count)
                         */
                        if ((dun_level > 65) && !stop_ty)
                        {
-                               (*count) += summon_cyber(-1, py, px);
+                               (*count) += summon_cyber(-1, p_ptr->y, p_ptr->x);
                                stop_ty = TRUE;
                                break;
                        }
@@ -5645,7 +5643,7 @@ void wall_breaker(void)
        {
                while (attempts--)
                {
-                       scatter(&y, &x, py, px, 4, 0);
+                       scatter(&y, &x, p_ptr->y, p_ptr->x, 4, 0);
 
                        if (!cave_have_flag_bold(y, x, FF_PROJECT)) continue;
 
@@ -5657,7 +5655,7 @@ void wall_breaker(void)
        }
        else if (randint1(100) > 30)
        {
-               earthquake(py, px, 1);
+               earthquake(p_ptr->y, p_ptr->x, 1);
        }
        else
        {
@@ -5667,7 +5665,7 @@ void wall_breaker(void)
                {
                        while (1)
                        {
-                               scatter(&y, &x, py, px, 10, 0);
+                               scatter(&y, &x, p_ptr->y, p_ptr->x, 10, 0);
 
                                if (!player_bold(y, x)) break;
                        }
@@ -5870,8 +5868,8 @@ bool kawarimi(bool success)
                return FALSE;
        }
 
-       y = py;
-       x = px;
+       y = p_ptr->y;
+       x = p_ptr->x;
 
        teleport_player(10 + randint1(90), 0L);
 
@@ -5921,8 +5919,8 @@ bool rush_attack(bool *mdeath)
        if (!get_aim_dir(&dir)) return FALSE;
 
        /* Use the given direction */
-       tx = px + project_length * ddx[dir];
-       ty = py + project_length * ddy[dir];
+       tx = p_ptr->x + project_length * ddx[dir];
+       ty = p_ptr->y + project_length * ddy[dir];
 
        /* Hack -- Use an actual "target" */
        if ((dir == 5) && target_okay())
@@ -5933,15 +5931,15 @@ bool rush_attack(bool *mdeath)
 
        if (in_bounds(ty, tx)) tm_idx = cave[ty][tx].m_idx;
 
-       path_n = project_path(path_g, project_length, py, px, ty, tx, PROJECT_STOP | PROJECT_KILL);
+       path_n = project_path(path_g, project_length, p_ptr->y, p_ptr->x, ty, tx, PROJECT_STOP | PROJECT_KILL);
        project_length = 0;
 
        /* No need to move */
        if (!path_n) return TRUE;
 
        /* Use ty and tx as to-move point */
-       ty = py;
-       tx = px;
+       ty = p_ptr->y;
+       tx = p_ptr->x;
 
        /* Project along the path */
        for (i = 0; i < path_n; i++)