OSDN Git Service

乗馬中のプレイヤーとモンスターに対する半径0のボールの挙動のバグ修正.
authornothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 3 Sep 2003 15:57:38 +0000 (15:57 +0000)
committernothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 3 Sep 2003 15:57:38 +0000 (15:57 +0000)
PROJECT_MONSTERは全く参照されていなかったので, 新しくPROJECT_AIMEDと
いうフラグを導入. このフラグと同時にPROJECT_PLAYERがあれば乗馬中の
モンスターには絶対に当たらず, このフラグだけの場合は乗馬中のプレイ
ヤーには当たらない. これらを用い, プレイヤーに対する呪い系魔法, モン
スター同士の打撃戦 (実装上は至近距離でのボール魔法の撃ち合い) の挙動
を修正. プレイヤーに対する呪い系魔法では乗馬は巻き添えにならず, 乗馬
に対する打撃ではプレイヤーが巻き添えにならないように修正. この過程で,
以下の修正を含む.
* 乗馬中のプレイヤーが呪い系攻撃を受けるとその直後にプレイヤー自身が
  乗馬を呪ったメッセージが出ていたバグを修正.
* 乗馬中のモンスターが劣化属性打撃を受けるとプレイヤーが劣化ボールの
  巻き添えになり, プレイヤーの装備まで劣化していたバグを修正.
* 座標に関する論理演算のミスと思われる部分の修正. "||" -> "&&".
* Typo fix.

src/defines.h
src/melee2.c
src/mspells1.c
src/mspells2.c
src/spells1.c
src/spells2.c

index 2fa67cb..2ab36e2 100644 (file)
  *   ITEM: Affect each object in the "blast area" in some way
  *   KILL: Affect each monster in the "blast area" in some way
  *   HIDE: Hack -- disable "visual" feedback from projection
+ *   DISI: Disintegrate non-permanent features
+ *   PLAYER: Main target is player (used for riding player)
+ *   AIMED: Target is only player or monster, so don't affect another.
+ *          Depend on PROJECT_PLAYER.
+ *          (used for minimum (rad == 0) balls on riding player)
+ *   REFLECTABLE: Refrectable spell attacks (used for "bolts")
+ *   NO_HANGEKI: Avoid counter attacks of monsters
+ *   PATH: Only used for printing project path
+ *   FAST: Hide "visual" of flying bolts until blast
  */
 #define PROJECT_JUMP        0x01
 #define PROJECT_BEAM        0x02
 #define PROJECT_HIDE        0x80
 #define PROJECT_DISI        0x100
 #define PROJECT_PLAYER      0x200
-#define PROJECT_MONSTER     0x400
+#define PROJECT_AIMED       0x400
 #define PROJECT_REFLECTABLE 0x800
 #define PROJECT_NO_HANGEKI  0x1000
 #define PROJECT_PATH        0x2000
index a9c36f1..648553e 100644 (file)
@@ -2013,7 +2013,7 @@ act = "%s
                                if (!explode)
                                {
                                        project(m_idx, 0, t_ptr->fy, t_ptr->fx,
-                                               (pt == GF_OLD_SLEEP ? r_ptr->level : damage), pt, PROJECT_KILL | PROJECT_STOP | PROJECT_MONSTER, -1);
+                                               (pt == GF_OLD_SLEEP ? r_ptr->level : damage), pt, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
                                }
 
                                if (heal_effect)
@@ -2066,7 +2066,7 @@ msg_format("%s
                                                        project(t_idx, 0, m_ptr->fy, m_ptr->fx,
                                                                damroll (1 + ((tr_ptr->level) / 26),
                                                                1 + ((tr_ptr->level) / 17)),
-                                                               GF_FIRE, PROJECT_KILL | PROJECT_STOP | PROJECT_MONSTER, -1);
+                                                               GF_FIRE, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
                                                }
                                                else
                                                {
@@ -2093,7 +2093,7 @@ msg_format("%s
                                                        project(t_idx, 0, m_ptr->fy, m_ptr->fx,
                                                                damroll (1 + ((tr_ptr->level) / 26),
                                                                1 + ((tr_ptr->level) / 17)),
-                                                               GF_COLD, PROJECT_KILL | PROJECT_STOP | PROJECT_MONSTER, -1);
+                                                               GF_COLD, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
                                                }
                                                else
                                                {
@@ -2120,7 +2120,7 @@ msg_format("%s
                                                        project(t_idx, 0, m_ptr->fy, m_ptr->fx,
                                                                damroll (1 + ((tr_ptr->level) / 26),
                                                                1 + ((tr_ptr->level) / 17)),
-                                                               GF_ELEC, PROJECT_KILL | PROJECT_STOP | PROJECT_MONSTER, -1);
+                                                               GF_ELEC, PROJECT_KILL | PROJECT_STOP | PROJECT_AIMED, -1);
                                                }
                                                else
                                                {
index a5a8516..724bef5 100644 (file)
@@ -521,10 +521,21 @@ static void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool b
        /* Handle breath attacks */
        if (breath) rad = 0 - rad;
 
-       if (typ == GF_ROCKET) flg |= PROJECT_STOP;
-       if (typ == GF_MIND_BLAST || typ == GF_BRAIN_SMASH ||
-           typ == GF_CAUSE_1 || typ == GF_CAUSE_2 || typ == GF_CAUSE_3 ||
-           typ == GF_CAUSE_4 || typ == GF_HAND_DOOM) flg |= PROJECT_HIDE;
+       switch (typ)
+       {
+       case GF_ROCKET:
+               flg |= PROJECT_STOP;
+               break;
+       case GF_MIND_BLAST:
+       case GF_BRAIN_SMASH:
+       case GF_CAUSE_1:
+       case GF_CAUSE_2:
+       case GF_CAUSE_3:
+       case GF_CAUSE_4:
+       case GF_HAND_DOOM:
+               flg |= (PROJECT_HIDE | PROJECT_AIMED);
+               break;
+       }
 
        /* Target the player with a ball attack */
        (void)project(m_idx, rad, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
index 4ff2085..2a09c10 100644 (file)
@@ -20,7 +20,7 @@
  */
 static void monst_breath_monst(int m_idx, int y, int x, int typ, int dam_hp, int rad, bool breath, int monspell, bool learnable)
 {
-       int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_MONSTER;
+       int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
 
        monster_type *m_ptr = &m_list[m_idx];
        monster_race *r_ptr = &r_info[m_ptr->r_idx];
@@ -44,14 +44,14 @@ static void monst_breath_monst(int m_idx, int y, int x, int typ, int dam_hp, int
  */
 static void monst_bolt_monst(int m_idx, int y, int x, int typ, int dam_hp, int monspell, bool learnable)
 {
-       int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_MONSTER | PROJECT_REFLECTABLE;
+       int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
 
        (void)project(m_idx, 0, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
 }
 
 static void monst_beam_monst(int m_idx, int y, int x, int typ, int dam_hp, int monspell, bool learnable)
 {
-       int flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_THRU | PROJECT_MONSTER;
+       int flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_THRU;
 
        (void)project(m_idx, 0, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
 }
@@ -2141,7 +2141,7 @@ bool monst_spell_monst(int m_idx)
                if (see_m)
                {
 #ifdef JP
-                       msg_format("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À", m_name, t_name);
+                       msg_format("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", m_name, t_name);
 #else
                        msg_format("%^s gazes intently at %s.", m_name, t_name);
 #endif
@@ -2203,7 +2203,7 @@ bool monst_spell_monst(int m_idx)
                if (see_m)
                {
 #ifdef JP
-                       msg_format("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À", m_name, t_name);
+                       msg_format("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", m_name, t_name);
 #else
                        msg_format("%^s gazes intently at %s.", m_name, t_name);
 #endif
@@ -3629,7 +3629,7 @@ bool monst_spell_monst(int m_idx)
                        }
                }
 
-               (void)project(m_idx, 3, y, x, 0, GF_DARK_WEAK, PROJECT_GRID | PROJECT_KILL | PROJECT_MONSTER, MS_DARKNESS);
+               (void)project(m_idx, 3, y, x, 0, GF_DARK_WEAK, PROJECT_GRID | PROJECT_KILL, MS_DARKNESS);
 
                unlite_room(y, x);
 
index 528fbe7..1589100 100644 (file)
@@ -5049,19 +5049,22 @@ note_dies = "
 
                        if ((r_ptr->flags4 & ~(RF4_NOMAGIC_MASK)) || (r_ptr->flags5 & ~(RF5_NOMAGIC_MASK)) || (r_ptr->flags6 & ~(RF6_NOMAGIC_MASK)))
                        {
-                               /* Message */
+                               if (!who)
+                               {
+                                       /* Message */
 #ifdef JP
-msg_format("%s¤«¤éÀº¿À¥¨¥Í¥ë¥®¡¼¤òµÛ¤¤¤È¤Ã¤¿¡£",m_name);
+                                       msg_format("%s¤«¤éÀº¿À¥¨¥Í¥ë¥®¡¼¤òµÛ¤¤¤È¤Ã¤¿¡£", m_name);
 #else
-                               msg_format("You draw psychic energy from %s.", m_name);
+                                       msg_format("You draw psychic energy from %s.", m_name);
 #endif
 
-                               (void)hp_player(dam);
+                                       (void)hp_player(dam);
+                               }
                        }
                        else
                        {
 #ifdef JP
-msg_format("%s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£",m_name);
+                               msg_format("%s¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£", m_name);
 #else
                                msg_format("%s is unaffected.", m_name);
 #endif
@@ -5076,9 +5079,9 @@ msg_format("%s
                        if (seen) obvious = TRUE;
                        /* Message */
 #ifdef JP
-msg_format("%s¤ò¤¸¤Ã¤Èâˤó¤À¡£",m_name);
+                       if (!who) msg_format("%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", m_name);
 #else
-                       msg_format("You gaze intently at %s.", m_name);
+                       if (!who) msg_format("You gaze intently at %s.", m_name);
 #endif
 
                        if (r_ptr->flagsr & RFR_RES_ALL)
@@ -5104,7 +5107,7 @@ msg_format("%s
                                        if (seen && is_original_ap(m_ptr)) r_ptr->r_flags3 |= (RF3_NO_CONF);
                                }
 #ifdef JP
-note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
+                               note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
 #else
                                note = "is unaffected!";
 #endif
@@ -5113,8 +5116,8 @@ note = "
                        else
                        {
 #ifdef JP
-msg_format("%s¤ÏÀº¿À¹¶·â¤ò¿©¤é¤Ã¤¿¡£",m_name);
-note_dies = "¤ÎÀº¿À¤ÏÊø²õ¤·¡¢ÆùÂΤÏÈ´¤±³Ì¤È¤Ê¤Ã¤¿¡£";
+                               msg_format("%s¤ÏÀº¿À¹¶·â¤ò¿©¤é¤Ã¤¿¡£", m_name);
+                               note_dies = "¤ÎÀº¿À¤ÏÊø²õ¤·¡¢ÆùÂΤÏÈ´¤±³Ì¤È¤Ê¤Ã¤¿¡£";
 #else
                                msg_format("%^s is blasted by psionic energy.", m_name);
                                note_dies = " collapses, a mindless husk.";
@@ -5131,9 +5134,9 @@ note_dies = "
                        if (seen) obvious = TRUE;
                        /* Message */
 #ifdef JP
-msg_format("%s¤ò¤¸¤Ã¤Èâˤó¤À¡£",m_name);
+                       if (!who) msg_format("%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", m_name);
 #else
-                       msg_format("You gaze intently at %s.", m_name);
+                       if (!who) msg_format("You gaze intently at %s.", m_name);
 #endif
 
                        if (r_ptr->flagsr & RFR_RES_ALL)
@@ -5159,7 +5162,7 @@ msg_format("%s
                                        if (seen && is_original_ap(m_ptr)) r_ptr->r_flags3 |= (RF3_NO_CONF);
                                }
 #ifdef JP
-note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
+                               note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
 #else
                                note = "is unaffected!";
 #endif
@@ -5168,8 +5171,8 @@ note = "
                        else
                        {
 #ifdef JP
-msg_format("%s¤ÏÀº¿À¹¶·â¤ò¿©¤é¤Ã¤¿¡£",m_name);
-note_dies = "¤ÎÀº¿À¤ÏÊø²õ¤·¡¢ÆùÂΤÏÈ´¤±³Ì¤È¤Ê¤Ã¤¿¡£";
+                               msg_format("%s¤ÏÀº¿À¹¶·â¤ò¿©¤é¤Ã¤¿¡£", m_name);
+                               note_dies = "¤ÎÀº¿À¤ÏÊø²õ¤·¡¢ÆùÂΤÏÈ´¤±³Ì¤È¤Ê¤Ã¤¿¡£";
 #else
                                msg_format("%^s is blasted by psionic energy.", m_name);
                                note_dies = " collapses, a mindless husk.";
@@ -5190,9 +5193,9 @@ note_dies = "
                        if (seen) obvious = TRUE;
                        /* Message */
 #ifdef JP
-msg_format("%s¤ò»Øº¹¤·¤Æ¼ö¤¤¤ò¤«¤±¤¿¡£",m_name);
+                       if (!who) msg_format("%s¤ò»Øº¹¤·¤Æ¼ö¤¤¤ò¤«¤±¤¿¡£", m_name);
 #else
-                       msg_format("You point at %s and curses.", m_name);
+                       if (!who) msg_format("You point at %s and curses.", m_name);
 #endif
 
                        if (r_ptr->flagsr & RFR_RES_ALL)
@@ -5210,9 +5213,8 @@ msg_format("%s
                        /* Attempt a saving throw */
                        if (randint0(100 + caster_lev) < (r_ptr->level + 35))
                        {
-
 #ifdef JP
-note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
+                               note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
 #else
                                note = "is unaffected!";
 #endif
@@ -5227,9 +5229,9 @@ note = "
                        if (seen) obvious = TRUE;
                        /* Message */
 #ifdef JP
-msg_format("%s¤ò»Øº¹¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤¤¤ò¤«¤±¤¿¡£",m_name);
+                       if (!who) msg_format("%s¤ò»Øº¹¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤¤¤ò¤«¤±¤¿¡£", m_name);
 #else
-                       msg_format("You point at %s and curses horribly.", m_name);
+                       if (!who) msg_format("You point at %s and curses horribly.", m_name);
 #endif
 
                        if (r_ptr->flagsr & RFR_RES_ALL)
@@ -5247,9 +5249,8 @@ msg_format("%s
                        /* Attempt a saving throw */
                        if (randint0(100 + caster_lev) < (r_ptr->level + 35))
                        {
-
 #ifdef JP
-note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
+                               note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
 #else
                                note = "is unaffected!";
 #endif
@@ -5264,9 +5265,9 @@ note = "
                        if (seen) obvious = TRUE;
                        /* Message */
 #ifdef JP
-msg_format("%s¤ò»Øº¹¤·¡¢¶²¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª",m_name);
+                       if (!who) msg_format("%s¤ò»Øº¹¤·¡¢¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", m_name);
 #else
-                       msg_format("You point at %s, incanting terribly!", m_name);
+                       if (!who) msg_format("You point at %s, incanting terribly!", m_name);
 #endif
 
                        if (r_ptr->flagsr & RFR_RES_ALL)
@@ -5284,9 +5285,8 @@ msg_format("%s
                        /* Attempt a saving throw */
                        if (randint0(100 + caster_lev) < (r_ptr->level + 35))
                        {
-
 #ifdef JP
-note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
+                               note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
 #else
                                note = "is unaffected!";
 #endif
@@ -5301,9 +5301,9 @@ note = "
                        if (seen) obvious = TRUE;
                        /* Message */
 #ifdef JP
-msg_format("%s¤ÎÈ빦¤òÆͤ¤¤Æ¡¢¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£",m_name);
+                       if (!who) msg_format("%s¤ÎÈ빦¤òÆͤ¤¤Æ¡¢¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", m_name);
 #else
-                       msg_format("You point at %s, screaming th word, 'DIE!'.", m_name);
+                       if (!who) msg_format("You point at %s, screaming the word, 'DIE!'.", m_name);
 #endif
 
                        if (r_ptr->flagsr & RFR_RES_ALL)
@@ -5319,11 +5319,10 @@ msg_format("%s
                        }
 
                        /* Attempt a saving throw */
-                       if (randint0(100 + caster_lev) < (r_ptr->level + 35))
+                       if ((randint0(100 + caster_lev) < (r_ptr->level + 35)) && ((who <= 0) || (m_list[who].r_idx != MON_KENSHIROU)))
                        {
-
 #ifdef JP
-note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
+                               note = "¤Ë¤Ï¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£";
 #else
                                note = "is unaffected!";
 #endif
@@ -5688,9 +5687,9 @@ note = "
                case GF_PHOTO:
                {
 #ifdef JP
-                       msg_format("%s¤ò¼Ì¿¿¤Ë»£¤Ã¤¿¡£",m_name);
+                       if (!who) msg_format("%s¤ò¼Ì¿¿¤Ë»£¤Ã¤¿¡£", m_name);
 #else
-                       msg_format("You take a photograph of %s.",m_name);
+                       if (!who) msg_format("You take a photograph of %s.", m_name);
 #endif
                        /* Hurt by light */
                        if (r_ptr->flags3 & (RF3_HURT_LITE))
@@ -5706,8 +5705,8 @@ note = "
 
                                /* Special effect */
 #ifdef JP
-note = "¤Ï¸÷¤Ë¿È¤ò¤¹¤¯¤á¤¿¡ª";
-note_dies = "¤Ï¸÷¤ò¼õ¤±¤Æ¤·¤Ü¤ó¤Ç¤·¤Þ¤Ã¤¿¡ª";
+                               note = "¤Ï¸÷¤Ë¿È¤ò¤¹¤¯¤á¤¿¡ª";
+                               note_dies = "¤Ï¸÷¤ò¼õ¤±¤Æ¤·¤Ü¤ó¤Ç¤·¤Þ¤Ã¤¿¡ª";
 #else
                                note = " cringes from the light!";
                                note_dies = " shrivels away in the light!";
@@ -8681,7 +8680,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                }
 
                /* Only do visuals if requested */
-               if (!blind && !(flg & (PROJECT_HIDE)) && !(flg & PROJECT_FAST))
+               if (!blind && !(flg & (PROJECT_HIDE | PROJECT_FAST)))
                {
                        /* Only do visuals if the player can "see" the bolt */
                        if (panel_contains(y, x) && player_has_los_bold(y, x))
@@ -9033,9 +9032,8 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                                        }
 
                                        /* Reflected bolts randomly target either one */
-                                       flg &= ~(PROJECT_MONSTER | PROJECT_PLAYER);
-                                       if (one_in_(2)) flg |= PROJECT_MONSTER;
-                                       else flg |= PROJECT_PLAYER;
+                                       if (one_in_(2)) flg |= PROJECT_PLAYER;
+                                       else flg &= ~(PROJECT_PLAYER);
 
                                        /* The bolt is reflected */
                                        project(cave[y][x].m_idx, 0, t_y, t_x, dam, typ, flg, monspell);
@@ -9063,7 +9061,7 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                                /* Aimed on the player */
                                if (flg & PROJECT_PLAYER)
                                {
-                                       if (flg & (PROJECT_BEAM | PROJECT_REFLECTABLE))
+                                       if (flg & (PROJECT_BEAM | PROJECT_REFLECTABLE | PROJECT_AIMED))
                                        {
                                                /*
                                                 * A beam or bolt is well aimed
@@ -9084,8 +9082,9 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
 
                                /*
                                 * This grid is the original target.
+                                * Or aimed on your horse.
                                 */
-                               else if ((y == y2) || (x == x2))
+                               else if (((y == y2) && (x == x2)) || (flg & PROJECT_AIMED))
                                {
                                        /* Hit the mount with full damage */
                                }
@@ -9109,9 +9108,8 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                                        else
                                        {
                                                /* Hit the player later */
-                                               flg &= ~(PROJECT_MONSTER);
                                                flg |= PROJECT_PLAYER;
-                                                       
+
                                                /* Don't affect the mount */
                                                continue;
                                        }
@@ -9203,8 +9201,10 @@ bool project(int who, int rad, int y, int x, int dam, int typ, int flg, int mons
                                 *
                                 * But already choosen to hit the
                                 * mount at this point.
+                                *
+                                * Or aimed on your horse.
                                 */
-                               else if (flg & (PROJECT_BEAM | PROJECT_REFLECTABLE))
+                               else if (flg & (PROJECT_BEAM | PROJECT_REFLECTABLE | PROJECT_AIMED))
                                {
                                        /*
                                         * A beam or bolt is well aimed
index 3cb9c24..fdee954 100644 (file)
@@ -6109,7 +6109,7 @@ void discharge_minion(void)
                if (dam > 800) dam = 800;
                project(i, 2+(r_ptr->level/20), m_ptr->fy,
                        m_ptr->fx, dam, GF_PLASMA, 
-                       PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_MONSTER, -1);
+                       PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL, -1);
                delete_monster_idx(i);
        }
 }