From c0682e98c360e188d5070b3f367e62ecfcff7210 Mon Sep 17 00:00:00 2001 From: nothere Date: Sat, 31 May 2003 09:57:09 +0000 Subject: [PATCH] =?utf8?q?=E3=83=97=E3=83=AC=E3=82=A4=E3=83=A4=E3=83=BC?= =?utf8?q?=E3=81=AE=E5=BA=A7=E6=A8=99=E3=81=AE=E6=AF=94=E8=BC=83=E3=81=8C2?= =?utf8?q?=E9=87=8D=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=A6=E3=81=84=E3=81=A6?= =?utf8?q?=E4=B8=8D=E8=A6=81=E3=81=A0=E3=81=A3=E3=81=9F=E9=83=A8=E5=88=86?= =?utf8?q?=E3=82=92=E4=BF=AE=E6=AD=A3.=20=E3=81=BE=E3=81=9F,=20=E9=87=8D?= =?utf8?q?=20=E5=8A=9B=E5=B1=9E=E6=80=A7=E3=81=AE=E3=83=9C=E3=83=BC?= =?utf8?q?=E3=83=AB=E3=82=84=E3=83=96=E3=83=AC=E3=82=B9=E3=81=A7=E5=A4=9A?= =?utf8?q?=E9=87=8D=E3=83=80=E3=83=A1=E3=83=BC=E3=82=B8=E3=82=92=E5=8F=97?= =?utf8?q?=E3=81=91=E3=82=8B=E3=83=90=E3=82=B0=E3=82=92=E4=BF=AE=E6=AD=A3.?= =?utf8?q?=20TAB=E3=81=AE=E5=BE=AE=E5=A6=99=E3=81=AA=E4=BF=AE=20=E6=AD=A3.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/spells1.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/spells1.c b/src/spells1.c index ea7c4ffa1..4c9708125 100644 --- a/src/spells1.c +++ b/src/spells1.c @@ -7935,7 +7935,7 @@ static bool do_disintegration(int by, int bx, int y, int x) /* Disintegration balls explosions are stopped by perma-walls */ if (!in_disintegration_range(by, bx, y, x)) return FALSE; - + /* Permanent walls and artifacts don't get effect */ /* But not protect monsters and other objects */ if (!cave_valid_bold(y, x)) return TRUE; @@ -8012,7 +8012,6 @@ void breath_shape(u16b *path_g, int dist, int *pgrids, byte *gx, byte *gy, byte /* Enforce an arc */ if (distance(by, bx, y, x) != cdis) continue; - if (disint_ball) { /* Disintegration are stopped only by perma-walls */ @@ -8989,7 +8988,6 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons t_x = x_saver - 1 + randint1(3); max_attempts--; } - while (max_attempts && in_bounds2u(t_y, t_x) && !(los(y, x, t_y, t_x))); @@ -9026,7 +9024,6 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons } } - /* Find the closest point in the blast */ if (breath) { @@ -9036,8 +9033,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons { effective_dist = dist; } - - + /* Target may be the riding player */ if (p_ptr->riding && (y == py) && (x == px)) { @@ -9050,19 +9046,18 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons /* Aimed on the mount */ /* The monster takes full damage */ } - + /* Otherwise partly affect the mount */ else { effective_dist++; } } - + /* Affect the monster in the grid */ if (project_m(who, effective_dist, y, x, dam, typ,flg)) notice = TRUE; } - - + /* Player affected one monster (without "jumping") */ if (!who && (project_m_n == 1) && !jump) { @@ -9117,7 +9112,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons } /* Target may be your horse */ - if (p_ptr->riding && (y == py) && (x == px)) + if (p_ptr->riding) { /* A beam or bolt is well aimed */ if ((flg & (PROJECT_BEAM | PROJECT_REFLECTABLE)) && (y == y2) && (x == x2)) @@ -9128,7 +9123,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons /* Aimed on the player */ /* The player takes full damage */ } - + /* Otherwise partly affect the player */ else { @@ -9138,6 +9133,9 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons /* Affect the player */ if (project_p(who, who_name, effective_dist, y, x, dam, typ, flg, monspell)) notice = TRUE; + + /* Affect done */ + break; } } -- 2.11.0