OSDN Git Service

refactor: remove learnable from arguments
[hengband/hengband.git] / src / mspells2.c
index 1beba7e..aba7e39 100644 (file)
  * @param rad È¾·Â
  * @param breath TRUE¤Ê¤é¤Ð¥Ö¥ì¥¹ / FALSE¤Ê¤é¤Ð¥Ü¡¼¥ë
  * @param monspell Æü칶·â¤ÎID
- * @param learnable ¥é¡¼¥Ë¥ó¥°²Äǽ¤ÊÁ°Äó¤¬Â·¤Ã¤Æ¤¤¤ë¤Ê¤é¤ÐTRUE
  * @return ¤Ê¤·
  * @details
  * Pass over any monsters that may be in the way
  * Affect grids, objects, monsters, and the player
  */
-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)
+void monst_breath_monst(int m_idx, int y, int x, int typ, int dam_hp, int rad, bool breath, int monspell)
 {
        int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
+    bool learnable = spell_learnable(m_idx);
 
        monster_type *m_ptr = &m_list[m_idx];
        monster_race *r_ptr = &r_info[m_ptr->r_idx];
@@ -80,9 +80,11 @@ static void monst_breath_monst(int m_idx, int y, int x, int typ, int dam_hp, int
  * Stop if we hit a monster
  * Affect monsters and the player
  */
-static void monst_bolt_monst(int m_idx, int y, int x, int typ, int dam_hp, int monspell, bool learnable)
+static void monst_bolt_monst(int m_idx, int y, int x, int typ, int dam_hp, int monspell)
 {
        int flg = PROJECT_STOP | PROJECT_KILL;
+    bool learnable = spell_learnable(m_idx);
+
        if (typ != GF_ARROW) flg |= PROJECT_REFLECTABLE;
        (void)project(m_idx, 0, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
 }
@@ -100,9 +102,10 @@ static void monst_bolt_monst(int m_idx, int y, int x, int typ, int dam_hp, int m
  * @param learnable ¥é¡¼¥Ë¥ó¥°²Äǽ¤ÊÁ°Äó¤¬Â·¤Ã¤Æ¤¤¤ë¤Ê¤é¤ÐTRUE
  * @return ¤Ê¤·
  */
-static void monst_beam_monst(int m_idx, int y, int x, int typ, int dam_hp, int monspell, bool learnable)
+static void monst_beam_monst(int m_idx, int y, int x, int typ, int dam_hp, int monspell)
 {
        int flg = PROJECT_BEAM | PROJECT_KILL | PROJECT_THRU;
+    bool learnable = spell_learnable(m_idx);
 
        (void)project(m_idx, 0, y, x, dam_hp, typ, flg, (learnable ? monspell : -1));
 }
@@ -385,7 +388,6 @@ bool monst_spell_monst(int m_idx)
 
        bool see_m = is_seen(m_ptr);
        bool maneable = player_has_los_bold(m_ptr->fy, m_ptr->fx);
-       bool learnable = (m_ptr->ml && maneable && !world_monster);
        bool see_t;
        bool see_either;
        bool known;
@@ -830,78 +832,11 @@ bool monst_spell_monst(int m_idx)
 
        switch (thrown_spell)
        {
-       /* RF4_SHRIEK */
-       case 96+0:
-               if (known)
-               {
-                       if (see_m)
-                       {
-                               msg_format(_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶«¤ó¤À¡£", "%^s shrieks at %s."), m_name, t_name);
-                       }
-                       else
-                       {
-                               mon_fight = TRUE;
-                       }
-               }
-
-               wake_up = TRUE;
-
-               break;
-
-       /* RF4_XXX1 */
-       case 96+1:
-               /* XXX XXX XXX */
-               return FALSE;
-
-       /* RF4_DISPEL */
-       case 96+2:
-               if (known)
-               {
-                       if (see_m)
-                       {
-                               msg_format(_("%^s¤¬%s¤ËÂФ·¤ÆËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", 
-                                                "%^s invokes a dispel magic at %s."), m_name, t_name);
-                       }
-                       else
-                       {
-                               mon_fight = TRUE;
-                       }
-               }
-
-               if (t_idx == p_ptr->riding) dispel_player();
-               dispel_monster_status(t_idx);
-
-               break;
-
-       /* RF4_ROCKET */
-       case 96+3:
-               if (known)
-               {
-                       if (see_either)
-                       {
-                               disturb(1, 1);
-
-                               if (blind)
-                               {
-                                       msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
-                               }
-                               else
-                               {
-                                       msg_format(_("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket at %s."), m_name, t_name);
-                               }
-                       }
-                       else
-                       {
-                               mon_fight = TRUE;
-                       }
-               }
-
-               dam = ((m_ptr->hp / 4) > 800 ? 800 : (m_ptr->hp / 4));
-               monst_breath_monst(m_idx, y, x, GF_ROCKET,
-                                  dam, 2, FALSE, MS_ROCKET, learnable);
-
-               break;
-
+    case 96 + 0: MM_spell_RF4_SHRIEK(m_idx, t_idx); break; /* RF4_SHRIEK */
+    case 96 + 1: return FALSE;  /* RF4_XXX1 */
+    case 96 + 2: MM_spell_RF4_DISPEL(m_idx, t_idx); break; /* RF4_DISPEL */
+    case 96 + 3: dam = MM_spell_RF4_ROCKET(y, x, m_idx, t_idx); break; /* RF4_ROCKET */
+       
        /* RF4_SHOOT */
        case 96+4:
                if (known)
@@ -926,7 +861,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
-               monst_bolt_monst(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_ARROW, dam, MS_SHOOT);
 
                break;
 
@@ -972,7 +907,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_ACID,
-                                  dam,0, TRUE, MS_BR_ACID, learnable);
+                                  dam,0, TRUE, MS_BR_ACID);
 
                break;
 
@@ -1003,7 +938,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_ELEC,
-                                  dam,0, TRUE, MS_BR_ELEC, learnable);
+                                  dam,0, TRUE, MS_BR_ELEC);
 
                break;
 
@@ -1034,7 +969,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_FIRE,
-                                  dam,0, TRUE, MS_BR_FIRE, learnable);
+                                  dam,0, TRUE, MS_BR_FIRE);
 
                break;
 
@@ -1065,7 +1000,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_COLD,
-                                  dam,0, TRUE, MS_BR_COLD, learnable);
+                                  dam,0, TRUE, MS_BR_COLD);
                break;
 
        /* RF4_BR_POIS */
@@ -1095,7 +1030,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_POIS,
-                                  dam,0, TRUE, MS_BR_POIS, learnable);
+                                  dam,0, TRUE, MS_BR_POIS);
 
                break;
 
@@ -1126,7 +1061,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_NETHER,
-                                  dam,0, TRUE, MS_BR_NETHER, learnable);
+                                  dam,0, TRUE, MS_BR_NETHER);
 
                break;
 
@@ -1157,7 +1092,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_LITE,
-                                  dam,0, TRUE, MS_BR_LITE, learnable);
+                                  dam,0, TRUE, MS_BR_LITE);
 
                break;
 
@@ -1188,7 +1123,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_DARK,
-                                  dam,0, TRUE, MS_BR_DARK, learnable);
+                                  dam,0, TRUE, MS_BR_DARK);
 
                break;
 
@@ -1219,7 +1154,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_CONFUSION,
-                                  dam,0, TRUE, MS_BR_CONF, learnable);
+                                  dam,0, TRUE, MS_BR_CONF);
 
                break;
 
@@ -1254,7 +1189,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_SOUND,
-                                  dam,0, TRUE, MS_BR_SOUND, learnable);
+                                  dam,0, TRUE, MS_BR_SOUND);
 
                break;
 
@@ -1285,7 +1220,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_CHAOS,
-                                  dam,0, TRUE, MS_BR_CHAOS, learnable);
+                                  dam,0, TRUE, MS_BR_CHAOS);
 
                break;
 
@@ -1316,7 +1251,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_DISENCHANT,
-                                  dam,0, TRUE, MS_BR_DISEN, learnable);
+                                  dam,0, TRUE, MS_BR_DISEN);
 
                break;
 
@@ -1347,7 +1282,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_NEXUS,
-                                  dam,0, TRUE, MS_BR_NEXUS, learnable);
+                                  dam,0, TRUE, MS_BR_NEXUS);
 
                break;
 
@@ -1378,7 +1313,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_TIME,
-                                  dam,0, TRUE, MS_BR_TIME, learnable);
+                                  dam,0, TRUE, MS_BR_TIME);
 
                break;
 
@@ -1409,7 +1344,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_INERTIA,
-                                  dam,0, TRUE, MS_BR_INERTIA, learnable);
+                                  dam,0, TRUE, MS_BR_INERTIA);
 
                break;
 
@@ -1440,7 +1375,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_GRAVITY,
-                                  dam,0, TRUE, MS_BR_GRAVITY, learnable);
+                                  dam,0, TRUE, MS_BR_GRAVITY);
 
                break;
 
@@ -1475,7 +1410,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_SHARDS,
-                                  dam,0, TRUE, MS_BR_SHARDS, learnable);
+                                  dam,0, TRUE, MS_BR_SHARDS);
 
                break;
 
@@ -1506,7 +1441,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_PLASMA,
-                                  dam,0, TRUE, MS_BR_PLASMA, learnable);
+                                  dam,0, TRUE, MS_BR_PLASMA);
 
                break;
 
@@ -1537,7 +1472,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_FORCE,
-                                  dam,0, TRUE, MS_BR_FORCE, learnable);
+                                  dam,0, TRUE, MS_BR_FORCE);
                break;
 
        /* RF4_BR_MANA */
@@ -1567,7 +1502,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_MANA,
-                                  dam,0, TRUE, MS_BR_MANA, learnable);
+                                  dam,0, TRUE, MS_BR_MANA);
 
                break;
 
@@ -1596,7 +1531,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = (rlev + damroll(10, 6));
                monst_breath_monst(m_idx, y, x, GF_NUKE,
-                                  dam, 2, FALSE, MS_BALL_NUKE, learnable);
+                                  dam, 2, FALSE, MS_BALL_NUKE);
 
                break;
 
@@ -1627,7 +1562,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
                monst_breath_monst(m_idx, y, x, GF_NUKE,
-                                  dam,0, TRUE, MS_BR_NUKE, learnable);
+                                  dam,0, TRUE, MS_BR_NUKE);
                break;
 
        /* RF4_BA_CHAO */
@@ -1655,7 +1590,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = (rlev * 2) + damroll(10, 10);
                monst_breath_monst(m_idx, y, x, GF_CHAOS,
-                                  dam, 4, FALSE, MS_BALL_CHAOS, learnable);
+                                  dam, 4, FALSE, MS_BALL_CHAOS);
 
                break;
 
@@ -1686,7 +1621,7 @@ bool monst_spell_monst(int m_idx)
 
                dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
                monst_breath_monst(m_idx, y, x, GF_DISINTEGRATE,
-                                  dam,0, TRUE, MS_BR_DISI, learnable);
+                                  dam,0, TRUE, MS_BR_DISI);
                break;
 
        /* RF5_BA_ACID */
@@ -1723,7 +1658,7 @@ bool monst_spell_monst(int m_idx)
                        rad = 2;
                        dam = (randint1(rlev * 3) + 15);
                }
-               monst_breath_monst(m_idx, y, x, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, learnable);
+               monst_breath_monst(m_idx, y, x, GF_ACID, dam, rad, FALSE, MS_BALL_ACID);
                break;
 
        /* RF5_BA_ELEC */
@@ -1759,7 +1694,7 @@ bool monst_spell_monst(int m_idx)
                        rad = 2;
                        dam = (randint1(rlev * 3 / 2) + 8);
                }
-               monst_breath_monst(m_idx, y, x, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, learnable);
+               monst_breath_monst(m_idx, y, x, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC);
                break;
 
        /* RF5_BA_FIRE */
@@ -1806,7 +1741,7 @@ bool monst_spell_monst(int m_idx)
                        rad = 2;
                        dam = (randint1(rlev * 7 / 2) + 10);
                }
-               monst_breath_monst(m_idx, y, x, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, learnable);
+               monst_breath_monst(m_idx, y, x, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE);
                break;
 
        /* RF5_BA_COLD */
@@ -1843,7 +1778,7 @@ bool monst_spell_monst(int m_idx)
                        rad = 2;
                        dam = (randint1(rlev * 3 / 2) + 10);
                }
-               monst_breath_monst(m_idx, y, x, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, learnable);
+               monst_breath_monst(m_idx, y, x, GF_COLD, dam, rad, FALSE, MS_BALL_COLD);
                break;
 
        /* RF5_BA_POIS */
@@ -1871,7 +1806,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(12, 2) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
-               monst_breath_monst(m_idx, y, x, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, learnable);
+               monst_breath_monst(m_idx, y, x, GF_POIS, dam, 2, FALSE, MS_BALL_POIS);
 
                break;
 
@@ -1899,7 +1834,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
-               monst_breath_monst(m_idx, y, x, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, learnable);
+               monst_breath_monst(m_idx, y, x, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER);
 
                break;
 
@@ -1929,7 +1864,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
-               monst_breath_monst(m_idx, y, x, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, learnable);
+               monst_breath_monst(m_idx, y, x, GF_WATER, dam, 4, FALSE, MS_BALL_WATER);
 
                break;
 
@@ -1957,7 +1892,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = (rlev * 4) + 50 + damroll(10, 10);
-               monst_breath_monst(m_idx, y, x, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, learnable);
+               monst_breath_monst(m_idx, y, x, GF_MANA, dam, 4, FALSE, MS_BALL_MANA);
 
                break;
 
@@ -1985,7 +1920,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = (rlev * 4) + 50 + damroll(10, 10);
-               monst_breath_monst(m_idx, y, x, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, learnable);
+               monst_breath_monst(m_idx, y, x, GF_DARK, dam, 4, FALSE, MS_BALL_DARK);
 
                break;
 
@@ -1998,7 +1933,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = ((randint1(rlev) / 2) + 1);
-               monst_breath_monst(m_idx, y, x, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, learnable);
+               monst_breath_monst(m_idx, y, x, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA);
 
                break;
 
@@ -2010,7 +1945,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(7, 7);
-               monst_breath_monst(m_idx, y, x, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, learnable);
+               monst_breath_monst(m_idx, y, x, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST);
 
                break;
 
@@ -2022,7 +1957,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(12, 12);
-               monst_breath_monst(m_idx, y, x, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, learnable);
+               monst_breath_monst(m_idx, y, x, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH);
 
                break;
 
@@ -2041,7 +1976,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(3, 8);
-               monst_breath_monst(m_idx, y, x, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, learnable);
+               monst_breath_monst(m_idx, y, x, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1);
 
                break;
 
@@ -2061,7 +1996,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(8, 8);
-               monst_breath_monst(m_idx, y, x, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, learnable);
+               monst_breath_monst(m_idx, y, x, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2);
 
                break;
 
@@ -2081,7 +2016,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(10, 15);
-               monst_breath_monst(m_idx, y, x, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, learnable);
+               monst_breath_monst(m_idx, y, x, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3);
 
                break;
 
@@ -2101,7 +2036,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(15, 15);
-               monst_breath_monst(m_idx, y, x, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, learnable);
+               monst_breath_monst(m_idx, y, x, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4);
 
                break;
 
@@ -2120,8 +2055,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
-               monst_bolt_monst(m_idx, y, x, GF_ACID,
-                                dam, MS_BOLT_ACID, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID);
 
                break;
 
@@ -2140,8 +2074,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
-               monst_bolt_monst(m_idx, y, x, GF_ELEC,
-                                dam, MS_BOLT_ELEC, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC);
 
                break;
 
@@ -2160,8 +2093,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
-               monst_bolt_monst(m_idx, y, x, GF_FIRE,
-                                dam, MS_BOLT_FIRE, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE);
 
                break;
 
@@ -2180,8 +2112,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
-               monst_bolt_monst(m_idx, y, x, GF_COLD,
-                                dam, MS_BOLT_COLD, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD);
 
                break;
 
@@ -2210,7 +2141,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = (rlev * 4) + 50 + damroll(10, 10);
-               monst_breath_monst(m_idx, y, x, GF_LITE, dam, 4, FALSE, MS_STARBURST, learnable);
+               monst_breath_monst(m_idx, y, x, GF_LITE, dam, 4, FALSE, MS_STARBURST);
 
                break;
 
@@ -2230,8 +2161,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = 30 + damroll(5, 5) + (rlev * 4) / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3);
-               monst_bolt_monst(m_idx, y, x, GF_NETHER,
-                                dam, MS_BOLT_NETHER, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER);
 
                break;
 
@@ -2251,8 +2181,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
-               monst_bolt_monst(m_idx, y, x, GF_WATER,
-                                dam, MS_BOLT_WATER, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER);
 
                break;
 
@@ -2272,8 +2201,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = randint1(rlev * 7 / 2) + 50;
-               monst_bolt_monst(m_idx, y, x, GF_MANA,
-                                dam, MS_BOLT_MANA, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA);
 
                break;
 
@@ -2293,8 +2221,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = 10 + damroll(8, 7) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
-               monst_bolt_monst(m_idx, y, x, GF_PLASMA,
-                                dam, MS_BOLT_PLASMA, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA);
 
                break;
 
@@ -2314,8 +2241,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(6, 6) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
-               monst_bolt_monst(m_idx, y, x, GF_ICE,
-                                dam, MS_BOLT_ICE, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE);
 
                break;
 
@@ -2335,8 +2261,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = damroll(2, 6) + (rlev / 3);
-               monst_bolt_monst(m_idx, y, x, GF_MISSILE,
-                                dam, MS_MAGIC_MISSILE, learnable);
+               monst_bolt_monst(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE);
 
                break;
 
@@ -2559,7 +2484,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = 20; /* Dummy power */
-               monst_breath_monst(m_idx, y, x, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, learnable);
+               monst_breath_monst(m_idx, y, x, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM);
 
                break;
 
@@ -2948,8 +2873,7 @@ bool monst_spell_monst(int m_idx)
                }
 
                dam = (r_ptr->flags2 & RF2_POWERFUL) ? (randint1(rlev * 2) + 180) : (randint1(rlev * 3 / 2) + 120);
-               monst_beam_monst(m_idx, y, x, GF_PSY_SPEAR,
-                                dam, MS_PSY_SPEAR, learnable);
+               monst_beam_monst(m_idx, y, x, GF_PSY_SPEAR, dam, MS_PSY_SPEAR);
                break;
 
        /* RF6_DARKNESS */