OSDN Git Service

モンスター対モンスターの魔法使用時に, 実装されていない魔法が選択され
authornothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 6 Jul 2003 17:26:24 +0000 (17:26 +0000)
committernothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sun, 6 Jul 2003 17:26:24 +0000 (17:26 +0000)
たことで魔法使用に失敗しないように, 未実装魔法 (魔力消去, 時間停止,
記憶消去, シンボル'B'以外の特別な行動) のフラグを最初から落とすように
修正. また, コメントの修正を含む.

src/mspells1.c
src/mspells2.c

index fd18ed2..ea7662e 100644 (file)
@@ -1701,7 +1701,7 @@ msg_format("%^s
                        break;
                }
 
-               /* RF4_XXX4X4 */
+               /* RF4_ROCKET */
                case 96+3:
                {
                        disturb(1, 0);
index ef707fd..e53b240 100644 (file)
@@ -317,6 +317,16 @@ bool monst_spell_monst(int m_idx)
        /* Extract the monster level */
        rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
 
+       /* Remove unimplemented spells */
+       f4 &= ~(RF4_DISPEL);
+       f6 &= ~(RF6_WORLD | RF6_FORGET);
+
+       /* Remove unimplemented special moves */
+       if (f6 & RF6_SPECIAL)
+       {
+               if (r_ptr->d_char != 'B') f6 &= ~(RF6_SPECIAL);
+       }
+
        if (in_no_magic_dungeon && !(r_ptr->flags2 & RF2_STUPID))
        {
                f4 &= (RF4_NOMAGIC_MASK);
@@ -606,7 +616,7 @@ bool monst_spell_monst(int m_idx)
        case 96+2:
                return FALSE;
 
-       /* RF4_XXX4X4 */
+       /* RF4_ROCKET */
        case 96+3:
                if (known)
                {
@@ -1567,7 +1577,7 @@ bool monst_spell_monst(int m_idx)
 
                break;
 
-       /* RF4_RF4_BR_NUKE */
+       /* RF4_BR_NUKE */
        case 96+29:
                if (known)
                {