OSDN Git Service

[Refactor] #37783 (2.2.1.5) 「魅了」と「支配」処理の分化作業中。 / Differentiating "charm" and "control".
authorDeskull <deskull@users.sourceforge.jp>
Sat, 1 Sep 2018 10:17:11 +0000 (19:17 +0900)
committerDeskull <deskull@users.sourceforge.jp>
Sat, 1 Sep 2018 10:17:11 +0000 (19:17 +0900)
src/artifact.c
src/cmd5.c
src/defines.h
src/files.c
src/racial.c
src/spells1.c
src/spells2.c
src/wizard1.c

index 54b6c7a..ae01c1e 100644 (file)
@@ -2688,14 +2688,14 @@ bool activate_random_artifact(object_type *o_ptr)
                case ACT_CHARM_ANIMAL:
                {
                        if (!get_aim_dir(&dir)) return FALSE;
-                       (void)charm_animal(dir, plev * 2);
+                       (void)charm_animal(dir, plev);
                        break;
                }
 
                case ACT_CHARM_UNDEAD:
                {
                        if (!get_aim_dir(&dir)) return FALSE;
-                       (void)control_one_undead(dir, plev * 2);
+                       (void)control_one_undead(dir, plev);
                        break;
                }
 
index 42c837f..dafb9dc 100644 (file)
@@ -1177,9 +1177,8 @@ void do_cmd_cast(void)
 
        /* Ask for a spell */
 #ifdef JP
-       if (!get_spell(&spell,  
-                               ((mp_ptr->spell_book == TV_LIFE_BOOK) ? "詠唱する" : (mp_ptr->spell_book == TV_MUSIC_BOOK) ? "歌う" : "唱える"), 
-                      sval, TRUE, realm))
+       if (!get_spell(&spell, ((mp_ptr->spell_book == TV_LIFE_BOOK) ? "詠唱する" : (mp_ptr->spell_book == TV_MUSIC_BOOK) ? "歌う" : "唱える"), 
+                       sval, TRUE, realm))
        {
                if (spell == -2) msg_format("その本には知っている%sがない。", prayer);
                return;
index 63c1987..811bd72 100644 (file)
 #define GF_DISP_EVIL    68                     /*!< 魔法効果: 邪悪退散*/
 #define GF_DISP_ALL     69                     /*!< 魔法効果: モンスター退散*/
 /* New types for Zangband begin here... */
-#define GF_DISP_DEMON   70                     /*!< 魔法効果: 悪魔退散*/
-#define GF_DISP_LIVING  71                     /*!< 魔法効果: 生命退散*/
-#define GF_ROCKET       72                     /*!< 魔法効果: ロケット*/
-#define GF_NUKE         73                     /*!< 魔法効果: 放射性廃棄物*/
-#define GF_MAKE_GLYPH   74                     /*!< 魔法効果: 守りのルーン生成*/
-#define GF_STASIS       75                     /*!< 魔法効果: モンスター拘束*/
-#define GF_STONE_WALL   76                     /*!< 魔法効果: 壁生成*/
-#define GF_DEATH_RAY    77                     /*!< 魔法効果: 死の光線*/
-#define GF_STUN         78                     /*!< 魔法効果: 朦朧*/
-#define GF_HOLY_FIRE    79                     /*!< 魔法効果: 聖光*/
-#define GF_HELL_FIRE    80                     /*!< 魔法効果: 地獄の劫火*/
-#define GF_DISINTEGRATE 81                     /*!< 魔法効果: 分解*/
-#define GF_CHARM        82                     /*!< 魔法効果: 魅了*/
+#define GF_DISP_DEMON      70          /*!< 魔法効果: 悪魔退散*/
+#define GF_DISP_LIVING     71          /*!< 魔法効果: 生命退散*/
+#define GF_ROCKET          72          /*!< 魔法効果: ロケット*/
+#define GF_NUKE            73          /*!< 魔法効果: 放射性廃棄物*/
+#define GF_MAKE_GLYPH      74          /*!< 魔法効果: 守りのルーン生成*/
+#define GF_STASIS          75          /*!< 魔法効果: モンスター拘束*/
+#define GF_STONE_WALL      76          /*!< 魔法効果: 壁生成*/
+#define GF_DEATH_RAY       77          /*!< 魔法効果: 死の光線*/
+#define GF_STUN            78          /*!< 魔法効果: 朦朧*/
+#define GF_HOLY_FIRE       79          /*!< 魔法効果: 聖光*/
+#define GF_HELL_FIRE       80          /*!< 魔法効果: 地獄の劫火*/
+#define GF_DISINTEGRATE    81          /*!< 魔法効果: 分解*/
+#define GF_CHARM           82          /*!< 魔法効果: モンスター魅了*/
 #define GF_CONTROL_UNDEAD  83          /*!< 魔法効果: アンデッド支配*/
 #define GF_CONTROL_ANIMAL  84          /*!< 魔法効果: 動物支配*/
-#define GF_PSI          85                     /*!< 魔法効果: サイキック攻撃*/
-#define GF_PSI_DRAIN    86                     /*!< 魔法効果: 精神吸収*/
-#define GF_TELEKINESIS  87                     /*!< 魔法効果: テレキシネス*/
-#define GF_JAM_DOOR     88                     /*!< 魔法効果: 施錠*/
-#define GF_DOMINATION   89                     /*!< 魔法効果: 精神支配*/
-#define GF_DISP_GOOD    90                     /*!< 魔法効果: 善良退散*/
-#define GF_DRAIN_MANA   91                     /*!< 魔法効果: 魔力吸収*/
-#define GF_MIND_BLAST   92                     /*!< 魔法効果: 精神攻撃*/
-#define GF_BRAIN_SMASH  93                     /*!< 魔法効果: 脳攻撃*/
-#define GF_CAUSE_1      94                     /*!< 魔法効果: 軽傷の呪い*/
-#define GF_CAUSE_2      95                     /*!< 魔法効果: 重傷の呪い*/
-#define GF_CAUSE_3      96                     /*!< 魔法効果: 致命傷の呪い*/
-#define GF_CAUSE_4      97                     /*!< 魔法効果: 秘孔を突く*/
-#define GF_HAND_DOOM    98                     /*!< 魔法効果: 破滅の手*/
-#define GF_CAPTURE      99                     /*!< 魔法効果: 捕縛*/
-#define GF_ANIM_DEAD   100                     /*!< 魔法効果: 死者復活*/
-#define GF_CONTROL_LIVING   101                /*!< 魔法効果: 生命支配*/
-#define GF_IDENTIFY    102                     /*!< 魔法効果: 鑑定*/
-#define GF_ATTACK      103                     /*!< 魔法効果: 白兵*/
-#define GF_ENGETSU     104                     /*!< 魔法効果: 円月*/
-#define GF_GENOCIDE    105                     /*!< 魔法効果: 抹殺*/
-#define GF_PHOTO       106                     /*!< 魔法効果: 撮影*/
-#define GF_CONTROL_DEMON   107         /*!< 魔法効果: 悪魔支配*/
-#define GF_LAVA_FLOW   108                     /*!< 魔法効果: 溶岩噴出*/
-#define GF_BLOOD_CURSE 109                     /*!< 魔法効果: 血の呪い*/
-#define GF_SEEKER      110                     /*!< 魔法効果: シーカーレイ*/
-#define GF_SUPER_RAY   111                     /*!< 魔法効果: スーパーレイ*/
-#define GF_STAR_HEAL   112                     /*!< 魔法効果: 星の癒し*/
-#define GF_WATER_FLOW  113                     /*!< 魔法効果: 流水*/
-#define GF_CRUSADE     114                     /*!< 魔法効果: 聖戦*/
-#define GF_STASIS_EVIL 115                     /*!< 魔法効果: 邪悪拘束*/
-#define GF_WOUNDS      116                     /*!< 魔法効果: 創傷*/
+#define GF_PSI             85          /*!< 魔法効果: サイキック攻撃*/
+#define GF_PSI_DRAIN       86          /*!< 魔法効果: 精神吸収*/
+#define GF_TELEKINESIS     87          /*!< 魔法効果: テレキシネス*/
+#define GF_JAM_DOOR        88          /*!< 魔法効果: 施錠*/
+#define GF_DOMINATION      89          /*!< 魔法効果: 精神支配*/
+#define GF_DISP_GOOD       90          /*!< 魔法効果: 善良退散*/
+#define GF_DRAIN_MANA      91          /*!< 魔法効果: 魔力吸収*/
+#define GF_MIND_BLAST      92          /*!< 魔法効果: 精神攻撃*/
+#define GF_BRAIN_SMASH     93          /*!< 魔法効果: 脳攻撃*/
+#define GF_CAUSE_1         94          /*!< 魔法効果: 軽傷の呪い*/
+#define GF_CAUSE_2         95          /*!< 魔法効果: 重傷の呪い*/
+#define GF_CAUSE_3         96          /*!< 魔法効果: 致命傷の呪い*/
+#define GF_CAUSE_4         97          /*!< 魔法効果: 秘孔を突く*/
+#define GF_HAND_DOOM       98          /*!< 魔法効果: 破滅の手*/
+#define GF_CAPTURE         99          /*!< 魔法効果: 捕縛*/
+#define GF_ANIM_DEAD      100          /*!< 魔法効果: 死者復活*/
+#define GF_CHARM_LIVING   101          /*!< 魔法効果: 生命魅了*/
+#define GF_IDENTIFY       102          /*!< 魔法効果: 鑑定*/
+#define GF_ATTACK         103          /*!< 魔法効果: 白兵*/
+#define GF_ENGETSU        104          /*!< 魔法効果: 円月*/
+#define GF_GENOCIDE       105          /*!< 魔法効果: 抹殺*/
+#define GF_PHOTO          106          /*!< 魔法効果: 撮影*/
+#define GF_CONTROL_DEMON  107          /*!< 魔法効果: 悪魔支配*/
+#define GF_LAVA_FLOW      108          /*!< 魔法効果: 溶岩噴出*/
+#define GF_BLOOD_CURSE    109          /*!< 魔法効果: 血の呪い*/
+#define GF_SEEKER         110          /*!< 魔法効果: シーカーレイ*/
+#define GF_SUPER_RAY      111          /*!< 魔法効果: スーパーレイ*/
+#define GF_STAR_HEAL      112          /*!< 魔法効果: 星の癒し*/
+#define GF_WATER_FLOW     113          /*!< 魔法効果: 流水*/
+#define GF_CRUSADE        114          /*!< 魔法効果: 聖戦*/
+#define GF_STASIS_EVIL    115          /*!< 魔法効果: 邪悪拘束*/
+#define GF_WOUNDS         116          /*!< 魔法効果: 創傷*/
 
 #define MAX_GF         117
 
index 0e17ede..8e571dd 100644 (file)
@@ -202,27 +202,27 @@ static named_num gf_desc[] =
        {"GF_ACID",                             GF_ACID                         },
        {"GF_COLD",                             GF_COLD                         },
        {"GF_FIRE",                                     GF_FIRE                         },
-       {"GF_PSY_SPEAR",                        GF_PSY_SPEAR                    },
+       {"GF_PSY_SPEAR",                        GF_PSY_SPEAR            },
        {"GF_MISSILE",                          GF_MISSILE                      },
-       {"GF_ARROW",                            GF_ARROW                                },
+       {"GF_ARROW",                            GF_ARROW                        },
        {"GF_PLASMA",                           GF_PLASMA                       },
-       {"GF_WATER",                            GF_WATER                                },
+       {"GF_WATER",                            GF_WATER                        },
        {"GF_LITE",                                     GF_LITE                         },
        {"GF_DARK",                                     GF_DARK                         },
        {"GF_LITE_WEAK",                        GF_LITE_WEAK            },
        {"GF_DARK_WEAK",                        GF_DARK_WEAK            },
        {"GF_SHARDS",                           GF_SHARDS                       },
-       {"GF_SOUND",                            GF_SOUND                                },
+       {"GF_SOUND",                            GF_SOUND                        },
        {"GF_CONFUSION",                        GF_CONFUSION            },
-       {"GF_FORCE",                            GF_FORCE                                },
+       {"GF_FORCE",                            GF_FORCE                        },
        {"GF_INERTIA",                          GF_INERTIAL                     },
        {"GF_MANA",                                     GF_MANA                         },
        {"GF_METEOR",                           GF_METEOR                       },
        {"GF_ICE",                                      GF_ICE                          },
-       {"GF_CHAOS",                            GF_CHAOS                                },
+       {"GF_CHAOS",                            GF_CHAOS                        },
        {"GF_NETHER",                           GF_NETHER                       },
        {"GF_DISENCHANT",                       GF_DISENCHANT           },
-       {"GF_NEXUS",                            GF_NEXUS                                },
+       {"GF_NEXUS",                            GF_NEXUS                        },
        {"GF_TIME",                                     GF_TIME                         },
        {"GF_GRAVITY",                          GF_GRAVITY                      },
        {"GF_KILL_WALL",                        GF_KILL_WALL            },
@@ -233,24 +233,24 @@ static named_num gf_desc[] =
        {"GF_MAKE_TRAP",                        GF_MAKE_TRAP            },
        {"GF_MAKE_TREE",                        GF_MAKE_TREE            },
        {"GF_OLD_CLONE",                        GF_OLD_CLONE            },
-       {"GF_OLD_POLY",                 GF_OLD_POLY                     },
-       {"GF_OLD_HEAL",                 GF_OLD_HEAL                     },
+       {"GF_OLD_POLY",                         GF_OLD_POLY                     },
+       {"GF_OLD_HEAL",                         GF_OLD_HEAL                     },
        {"GF_OLD_SPEED",                        GF_OLD_SPEED            },
-       {"GF_OLD_SLOW",                 GF_OLD_SLOW                     },
-       {"GF_OLD_CONF",                 GF_OLD_CONF                     },
+       {"GF_OLD_SLOW",                         GF_OLD_SLOW                     },
+       {"GF_OLD_CONF",                         GF_OLD_CONF                     },
        {"GF_OLD_SLEEP",                        GF_OLD_SLEEP            },
        {"GF_HYPODYNAMIA",                      GF_HYPODYNAMIA          },
-       {"GF_AWAY_UNDEAD",              GF_AWAY_UNDEAD          },
+       {"GF_AWAY_UNDEAD",                      GF_AWAY_UNDEAD          },
        {"GF_AWAY_EVIL",                        GF_AWAY_EVIL            },
-       {"GF_AWAY_ALL",                 GF_AWAY_ALL                     },
-       {"GF_TURN_UNDEAD",              GF_TURN_UNDEAD          },
+       {"GF_AWAY_ALL",                         GF_AWAY_ALL                     },
+       {"GF_TURN_UNDEAD",                      GF_TURN_UNDEAD          },
        {"GF_TURN_EVIL",                        GF_TURN_EVIL            },
-       {"GF_TURN_ALL",                 GF_TURN_ALL                     },
-       {"GF_DISP_UNDEAD",              GF_DISP_UNDEAD          },
+       {"GF_TURN_ALL",                         GF_TURN_ALL                     },
+       {"GF_DISP_UNDEAD",                      GF_DISP_UNDEAD          },
        {"GF_DISP_EVIL",                        GF_DISP_EVIL            },
-       {"GF_DISP_ALL",                 GF_DISP_ALL                     },
+       {"GF_DISP_ALL",                         GF_DISP_ALL                     },
        {"GF_DISP_DEMON",                       GF_DISP_DEMON           },
-       {"GF_DISP_LIVING",              GF_DISP_LIVING          },
+       {"GF_DISP_LIVING",                      GF_DISP_LIVING          },
        {"GF_ROCKET",                           GF_ROCKET                       },
        {"GF_NUKE",                                     GF_NUKE                         },
        {"GF_MAKE_GLYPH",                       GF_MAKE_GLYPH           },
@@ -260,43 +260,43 @@ static named_num gf_desc[] =
        {"GF_STUN",                                     GF_STUN                         },
        {"GF_HOLY_FIRE",                        GF_HOLY_FIRE            },
        {"GF_HELL_FIRE",                        GF_HELL_FIRE            },
-       {"GF_DISINTEGRATE",             GF_DISINTEGRATE },
-       {"GF_CHARM",                            GF_CHARM                                },
-       {"GF_CONTROL_UNDEAD",   GF_CONTROL_UNDEAD       },
-       {"GF_CONTROL_ANIMAL",   GF_CONTROL_ANIMAL       },
+       {"GF_DISINTEGRATE",                     GF_DISINTEGRATE         },
+       {"GF_CHARM",                            GF_CHARM                        },
+       {"GF_CONTROL_UNDEAD",           GF_CONTROL_UNDEAD       },
+       {"GF_CONTROL_ANIMAL",           GF_CONTROL_ANIMAL       },
        {"GF_PSI",                                      GF_PSI                          },
        {"GF_PSI_DRAIN",                        GF_PSI_DRAIN            },
-       {"GF_TELEKINESIS",              GF_TELEKINESIS          },
-       {"GF_JAM_DOOR",                 GF_JAM_DOOR                     },
+       {"GF_TELEKINESIS",                      GF_TELEKINESIS          },
+       {"GF_JAM_DOOR",                         GF_JAM_DOOR                     },
        {"GF_DOMINATION",                       GF_DOMINATION           },
        {"GF_DISP_GOOD",                        GF_DISP_GOOD            },
        {"GF_DRAIN_MANA",                       GF_DRAIN_MANA           },
        {"GF_MIND_BLAST",                       GF_MIND_BLAST           },
        {"GF_BRAIN_SMASH",                      GF_BRAIN_SMASH          },
-       {"GF_CAUSE_1",                  GF_CAUSE_1              },
-       {"GF_CAUSE_2",                  GF_CAUSE_2              },
-       {"GF_CAUSE_3",                  GF_CAUSE_3              },
-       {"GF_CAUSE_4",                  GF_CAUSE_4              },
+       {"GF_CAUSE_1",                          GF_CAUSE_1                      },
+       {"GF_CAUSE_2",                          GF_CAUSE_2                      },
+       {"GF_CAUSE_3",                          GF_CAUSE_3                      },
+       {"GF_CAUSE_4",                          GF_CAUSE_4                      },
        {"GF_HAND_DOOM",                        GF_HAND_DOOM            },
-       {"GF_CAPTURE",                  GF_CAPTURE              },
+       {"GF_CAPTURE",                          GF_CAPTURE                      },
        {"GF_ANIM_DEAD",                        GF_ANIM_DEAD            },
-       {"GF_CONTROL_LIVING",           GF_CONTROL_LIVING       },
-       {"GF_IDENTIFY",                 GF_IDENTIFY     },
-       {"GF_ATTACK",                   GF_ATTACK       },
-       {"GF_ENGETSU",                  GF_ENGETSU      },
-       {"GF_GENOCIDE",                 GF_GENOCIDE     },
-       {"GF_PHOTO",                    GF_PHOTO        },
-       {"GF_CONTROL_DEMON",    GF_CONTROL_DEMON        },
-       {"GF_LAVA_FLOW",        GF_LAVA_FLOW    },
-       {"GF_BLOOD_CURSE",      GF_BLOOD_CURSE  },
-       {"GF_SEEKER",                   GF_SEEKER                       },
-       {"GF_SUPER_RAY",                GF_SUPER_RAY                    },
-       {"GF_STAR_HEAL",                GF_STAR_HEAL                    },
-       {"GF_WATER_FLOW",               GF_WATER_FLOW                   },
-       {"GF_CRUSADE",          GF_CRUSADE                      },
+       {"GF_CHARM_LIVING",                     GF_CHARM_LIVING         },
+       {"GF_IDENTIFY",                         GF_IDENTIFY                     },
+       {"GF_ATTACK",                           GF_ATTACK                       },
+       {"GF_ENGETSU",                          GF_ENGETSU                      },
+       {"GF_GENOCIDE",                         GF_GENOCIDE                     },
+       {"GF_PHOTO",                            GF_PHOTO                        },
+       {"GF_CONTROL_DEMON",            GF_CONTROL_DEMON        },
+       {"GF_LAVA_FLOW",                        GF_LAVA_FLOW            },
+       {"GF_BLOOD_CURSE",                      GF_BLOOD_CURSE          },
+       {"GF_SEEKER",                           GF_SEEKER                       },
+       {"GF_SUPER_RAY",                        GF_SUPER_RAY            },
+       {"GF_STAR_HEAL",                        GF_STAR_HEAL            },
+       {"GF_WATER_FLOW",                       GF_WATER_FLOW           },
+       {"GF_CRUSADE",                          GF_CRUSADE                      },
        {"GF_STASIS_EVIL",                      GF_STASIS_EVIL          },
-       {"GF_WOUNDS",                   GF_WOUNDS               },
-       {NULL,                                          0                                               }
+       {"GF_WOUNDS",                           GF_WOUNDS                       },
+       {NULL,                                          0                                       }
 };
 
 
index f0607f4..3977cc7 100644 (file)
@@ -1001,11 +1001,11 @@ static bool cmd_racial_power_aux(s32b command)
                        if (command == -3)
                        {
                                if (!get_aim_dir(&dir)) return FALSE;
-                               (void)fire_ball_hide(GF_CONTROL_LIVING, dir, p_ptr->lev, 0);
+                               (void)fire_ball_hide(GF_CHARM_LIVING, dir, p_ptr->lev, 0);
                        }
                        else if (command == -4)
                        {
-                               project_hack(GF_CONTROL_LIVING, p_ptr->lev);
+                               project_hack(GF_CHARM_LIVING, p_ptr->lev);
                        }
                        break;
                }
index fa56627..db223d2 100644 (file)
@@ -23,7 +23,7 @@ int project_length = 0; /*!< 投射の射程距離 */
 
 
 /*!
- * @brief モンスター魅了用セービングスロー共通部
+ * @brief モンスター魅了用セービングスロー共通部(汎用系)
  * @param pow 魅了パワー
  * @param m_ptr 対象モンスター
  * @return 魅了に抵抗したらTRUE
@@ -55,6 +55,33 @@ static bool_hack common_saving_throw_charm(player_type *player_ptr, HIT_POINT po
 }
 
 /*!
+ * @brief モンスター服従用セービングスロー共通部(部族依存系)
+ * @param pow 服従パワー
+ * @param m_ptr 対象モンスター
+ * @return 服従に抵抗したらTRUE
+ */
+static bool_hack common_saving_throw_control(player_type *player_ptr, HIT_POINT pow, monster_type *m_ptr)
+{
+       monster_race *r_ptr = &r_info[m_ptr->r_idx];
+
+       if (p_ptr->inside_arena) return TRUE;
+
+       /* Memorize a flag */
+       if (r_ptr->flagsr & RFR_RES_ALL)
+       {
+               if (is_original_ap_and_seen(m_ptr)) r_ptr->r_flagsr |= (RFR_RES_ALL);
+               return TRUE;
+       }
+
+       if (r_ptr->flags1 & RF1_QUESTOR || m_ptr->mflag2 & MFLAG2_NOPET) return TRUE;
+
+       pow += adj_chr_chm[player_ptr->stat_ind[A_CHR]] - 1;
+       if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) pow = pow * 2 / 3;
+       return (r_ptr->level > randint1((pow - 10) < 1 ? 1 : (pow - 10)) + 5);
+}
+
+
+/*!
  * @brief 配置した鏡リストの次を取得する /
  * Get another mirror. for SEEKER 
  * @param next_y 次の鏡のy座標を返す参照ポインタ
@@ -3209,7 +3236,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                        }
 
                        /* Attempt a saving throw */
-                       if (common_saving_throw_charm(p_ptr, dam, m_ptr) ||
+                       if (common_saving_throw_control(p_ptr, dam, m_ptr) ||
                                !(r_ptr->flags3 & RF3_UNDEAD))
                        {
                                /* No obvious effect */
@@ -3252,7 +3279,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                        }
 
                        /* Attempt a saving throw */
-                       if (common_saving_throw_charm(p_ptr, dam, m_ptr) ||
+                       if (common_saving_throw_control(p_ptr, dam, m_ptr) ||
                                !(r_ptr->flags3 & RF3_DEMON))
                        {
                                /* No obvious effect */
@@ -3295,7 +3322,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                        }
 
                        /* Attempt a saving throw */
-                       if (common_saving_throw_charm(p_ptr, dam, m_ptr) ||
+                       if (common_saving_throw_control(p_ptr, dam, m_ptr) ||
                                !(r_ptr->flags3 & RF3_ANIMAL))
                        {
                                /* Resist */
@@ -3323,7 +3350,7 @@ static bool project_m(MONSTER_IDX who, POSITION r, POSITION y, POSITION x, HIT_P
                }
 
                /* Tame animal */
-               case GF_CONTROL_LIVING:
+               case GF_CHARM_LIVING:
                {
                        int vir;
 
index c84096a..e7210fc 100644 (file)
@@ -4668,7 +4668,7 @@ bool fire_ball(int typ, int dir, HIT_POINT dam, int rad)
 
        BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
 
-       if (typ == GF_CONTROL_LIVING) flg|= PROJECT_HIDE;
+       if (typ == GF_CHARM_LIVING) flg|= PROJECT_HIDE;
        /* Use the given direction */
        tx = p_ptr->x + 99 * ddx[dir];
        ty = p_ptr->y + 99 * ddy[dir];
index 332f56c..f9426c2 100644 (file)
@@ -1834,16 +1834,19 @@ static void spoil_mon_desc(cptr fname)
        {
                monster_race *r_ptr = &r_info[who[i]];
 
+               if (!(r_ptr->flags3 & (RF3_DEMON)))
+               {
+                       continue;
+               }
+
                cptr name = (r_name + r_ptr->name);
                if (r_ptr->flags7 & (RF7_KAGE)) continue;
 
                /* Get the "name" */
-               /*
-               else if (r_ptr->flags1 & (RF1_QUESTOR))
+               else if (r_ptr->flags3 & (RF3_NO_CONF))
                {
-                       sprintf(nam, "[Q] %s", name);
+                       sprintf(nam, "[*] %s", name);
                }
-               */
                else if (r_ptr->flags1 & (RF1_UNIQUE))
                {
                        sprintf(nam, "[U] %s", name);