From 3232b4719ebfaccae12c628b01c6ca37ad38254e Mon Sep 17 00:00:00 2001 From: Vsevolod Kozlov Date: Sat, 7 Nov 2009 12:33:40 +0300 Subject: Replace mons_neutral with monsters::neutral. Signed-off-by: Jude Brown --- crawl-ref/source/attitude-change.cc | 2 +- crawl-ref/source/delay.cc | 2 +- crawl-ref/source/directn.cc | 6 +++--- crawl-ref/source/menu.cc | 2 +- crawl-ref/source/misc.cc | 2 +- crawl-ref/source/mon-act.cc | 2 +- crawl-ref/source/mon-behv.cc | 8 ++++---- crawl-ref/source/mon-info.cc | 2 +- crawl-ref/source/mon-util.cc | 9 +-------- crawl-ref/source/mon-util.h | 1 - crawl-ref/source/monspeak.cc | 2 +- crawl-ref/source/monster.cc | 9 ++++++++- crawl-ref/source/monster.h | 1 + crawl-ref/source/monstuff.h | 2 +- crawl-ref/source/output.cc | 6 +++--- crawl-ref/source/player.cc | 2 +- crawl-ref/source/religion.cc | 2 +- crawl-ref/source/showsymb.cc | 2 +- crawl-ref/source/spells1.cc | 2 +- crawl-ref/source/tilepick.cc | 2 +- crawl-ref/source/tilesdl.cc | 2 +- crawl-ref/source/view.cc | 2 +- 22 files changed, 35 insertions(+), 35 deletions(-) diff --git a/crawl-ref/source/attitude-change.cc b/crawl-ref/source/attitude-change.cc index 953bd164bb..5af5a8e753 100644 --- a/crawl-ref/source/attitude-change.cc +++ b/crawl-ref/source/attitude-change.cc @@ -110,7 +110,7 @@ void slime_convert(monsters* monster) if (you.religion == GOD_JIYVA && mons_is_slime(monster) && !mons_is_summoned(monster) && !mons_is_shapeshifter(monster) - && !mons_neutral(monster) + && !monster->neutral() && !monster->friendly() && !testbits(monster->flags, MF_ATT_CHANGE_ATTEMPT) && you.visible_to(monster) && !monster->asleep() diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc index b7b47f195a..09b88514fc 100644 --- a/crawl-ref/source/delay.cc +++ b/crawl-ref/source/delay.cc @@ -78,7 +78,7 @@ static bool _recite_mons_useless(const monsters *mon) || mons_is_fleeing(mon) || mon->asleep() || mons_wont_attack(mon) - || mons_neutral(mon) + || mon->neutral() || mons_is_confused(mon) || mon->paralysed() || mon->has_ench(ENCH_BATTLE_FRENZY) diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc index 87cda945c4..1152999ce0 100644 --- a/crawl-ref/source/directn.cc +++ b/crawl-ref/source/directn.cc @@ -3123,7 +3123,7 @@ static std::string _get_monster_desc(const monsters *mon) else if (mons_is_fleeing(mon)) text += pronoun + " is retreating.\n"; // hostile with target != you - else if (!mon->friendly() && !mons_neutral(mon) + else if (!mon->friendly() && !mon->neutral() && mon->foe != MHITYOU && !crawl_state.arena_suspended) { // Special case: batty monsters get set to BEH_WANDER as @@ -3135,7 +3135,7 @@ static std::string _get_monster_desc(const monsters *mon) if (mon->attitude == ATT_FRIENDLY) text += pronoun + " is friendly.\n"; - else if (mons_neutral(mon)) // don't differentiate between permanent or not + else if (mon->neutral()) // don't differentiate between permanent or not text += pronoun + " is indifferent to you.\n"; if (mons_is_summoned(mon) && mon->type != MONS_RAKSHASA_FAKE) @@ -3233,7 +3233,7 @@ std::string get_monster_equipment_desc(const monsters *mon, bool full_desc, std::string str = ""; if (mon->friendly()) str = "friendly"; - else if (mons_neutral(mon)) + else if (mon->neutral()) str = "neutral"; if (mons_is_summoned(mon)) diff --git a/crawl-ref/source/menu.cc b/crawl-ref/source/menu.cc index df4e586665..690b8cdcb5 100644 --- a/crawl-ref/source/menu.cc +++ b/crawl-ref/source/menu.cc @@ -813,7 +813,7 @@ bool MonsterMenuEntry::get_tiles(std::vector& tileset) const if (m->friendly()) tileset.push_back(tile_def(TILE_HEART, TEX_DEFAULT)); - else if (mons_neutral(m)) + else if (m->neutral()) tileset.push_back(tile_def(TILE_NEUTRAL, TEX_DEFAULT)); else if (mons_looks_stabbable(m)) tileset.push_back(tile_def(TILE_STAB_BRAND, TEX_DEFAULT)); diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc index 208b3d9916..c4d3d9a591 100644 --- a/crawl-ref/source/misc.cc +++ b/crawl-ref/source/misc.cc @@ -3162,7 +3162,7 @@ bool stop_attack_prompt(const monsters *mon, bool beam_attack, || is_sanctuary(mon->pos())); const bool wontAttack = mons_wont_attack(mon); const bool isFriendly = mon->friendly(); - const bool isNeutral = mons_neutral(mon); + const bool isNeutral = mon->neutral(); const bool isUnchivalric = is_unchivalric_attack(&you, mon); const bool isHoly = mons_is_holy(mon) && (mon->attitude != ATT_HOSTILE diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc index 32b2b734b5..d83783f537 100644 --- a/crawl-ref/source/mon-act.cc +++ b/crawl-ref/source/mon-act.cc @@ -1799,7 +1799,7 @@ static void _handle_monster_move(monsters *monster) { // Keep neutral and charmed monsters from picking up stuff. // Same for friendlies if friendly_pickup is set to "none". - if (!mons_neutral(monster) && !monster->has_ench(ENCH_CHARM) + if (!monster->neutral() && !monster->has_ench(ENCH_CHARM) || (you.religion == GOD_JIYVA && mons_is_slime(monster)) && (!monster->friendly() || you.friendly_pickup != FRIENDLY_PICKUP_NONE)) diff --git a/crawl-ref/source/mon-behv.cc b/crawl-ref/source/mon-behv.cc index cf65f76b01..a5822cc401 100644 --- a/crawl-ref/source/mon-behv.cc +++ b/crawl-ref/source/mon-behv.cc @@ -1085,7 +1085,7 @@ void handle_behaviour(monsters *mon) { bool changed = true; bool isFriendly = mon->friendly(); - bool isNeutral = mons_neutral(mon); + bool isNeutral = mon->neutral(); bool wontAttack = mons_wont_attack(mon); // Whether the player is in LOS of the monster and can see @@ -1229,7 +1229,7 @@ void handle_behaviour(monsters *mon) // Neutral monsters prefer not to attack players, or other neutrals. if (isNeutral && mon->foe != MHITNOT - && (mon->foe == MHITYOU || mons_neutral(&menv[mon->foe]))) + && (mon->foe == MHITYOU || menv[mon->foe].neutral())) { mon->foe = MHITNOT; } @@ -1606,7 +1606,7 @@ static bool _mons_check_foe(monsters *mon, const coord_def& p, && mon->can_see(foe) && (friendly || !is_sanctuary(p)) && (foe->friendly() != friendly - || (neutral && !mons_neutral(foe)))) + || (neutral && !foe->neutral()))) { return (true); } @@ -1618,7 +1618,7 @@ static bool _mons_check_foe(monsters *mon, const coord_def& p, void _set_nearest_monster_foe(monsters *mon) { const bool friendly = mon->friendly(); - const bool neutral = mons_neutral(mon); + const bool neutral = mon->neutral(); for (int k = 1; k <= LOS_RADIUS; ++k) { diff --git a/crawl-ref/source/mon-info.cc b/crawl-ref/source/mon-info.cc index db0a44240c..24bfd8c7e9 100644 --- a/crawl-ref/source/mon-info.cc +++ b/crawl-ref/source/mon-info.cc @@ -177,7 +177,7 @@ static std::string _verbose_info(const monsters* m) // Labeling strictly neutral monsters as fellow slimes is more important. return (" (wandering)"); } - if (m->foe == MHITNOT && !mons_is_batty(m) && !mons_neutral(m) + if (m->foe == MHITNOT && !mons_is_batty(m) && !m->neutral() && !m->friendly()) { return (" (unaware)"); diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 6383fef27c..c3647ef44d 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -1974,13 +1974,6 @@ int mons_base_damage_brand(const monsters *m) return (SPWPN_NORMAL); } -bool mons_neutral(const monsters *m) -{ - return (m->attitude == ATT_NEUTRAL || m->has_ench(ENCH_NEUTRAL) - || m->attitude == ATT_GOOD_NEUTRAL - || m->attitude == ATT_STRICT_NEUTRAL); -} - bool mons_good_neutral(const monsters *m) { return (m->attitude == ATT_GOOD_NEUTRAL); @@ -2014,7 +2007,7 @@ mon_attitude_type mons_attitude(const monsters *m) return ATT_GOOD_NEUTRAL; else if (mons_strict_neutral(m)) return ATT_STRICT_NEUTRAL; - else if (mons_neutral(m)) + else if (m->neutral()) return ATT_NEUTRAL; else return ATT_HOSTILE; diff --git a/crawl-ref/source/mon-util.h b/crawl-ref/source/mon-util.h index 7c2f8dff69..94d1290130 100644 --- a/crawl-ref/source/mon-util.h +++ b/crawl-ref/source/mon-util.h @@ -608,7 +608,6 @@ const char *mons_pronoun(monster_type mon_type, pronoun_type variant, bool mons_aligned(int m1, int m2); bool mons_atts_aligned(mon_attitude_type fr1, mon_attitude_type fr2); -bool mons_neutral(const monsters *m); bool mons_good_neutral(const monsters *m); bool mons_strict_neutral(const monsters *m); bool mons_is_pacified(const monsters *m); diff --git a/crawl-ref/source/monspeak.cc b/crawl-ref/source/monspeak.cc index 393440f36c..ef0547010a 100644 --- a/crawl-ref/source/monspeak.cc +++ b/crawl-ref/source/monspeak.cc @@ -405,7 +405,7 @@ bool mons_speaks(monsters *monster) } std::vector prefixes; - if (mons_neutral(monster)) + if (monster->neutral()) { if (!force_speak && coinflip()) // Neutrals speak half as often. return (false); diff --git a/crawl-ref/source/monster.cc b/crawl-ref/source/monster.cc index 27c7180a4d..37a75de41a 100644 --- a/crawl-ref/source/monster.cc +++ b/crawl-ref/source/monster.cc @@ -2832,6 +2832,13 @@ bool monsters::friendly() const return (attitude == ATT_FRIENDLY || has_ench(ENCH_CHARM)); } +bool monsters::neutral() const +{ + return (attitude == ATT_NEUTRAL || has_ench(ENCH_NEUTRAL) + || attitude == ATT_GOOD_NEUTRAL + || attitude == ATT_STRICT_NEUTRAL); +} + int monsters::shield_bonus() const { const item_def *shld = const_cast(this)->shield(); @@ -3168,7 +3175,7 @@ int monsters::res_holy_energy(const actor *attacker) const if (is_good_god(god) || mons_is_holy(this) - || mons_neutral(this) + || neutral() || is_unchivalric_attack(attacker, this) || is_good_god(you.religion) && is_follower(this)) { diff --git a/crawl-ref/source/monster.h b/crawl-ref/source/monster.h index f9ffee5adb..2121d0bfa8 100644 --- a/crawl-ref/source/monster.h +++ b/crawl-ref/source/monster.h @@ -334,6 +334,7 @@ public: bool petrified() const; bool friendly() const; + bool neutral() const; bool has_spells() const; bool has_spell(spell_type spell) const; diff --git a/crawl-ref/source/monstuff.h b/crawl-ref/source/monstuff.h index 9a81bbf280..b0b5b24ef6 100644 --- a/crawl-ref/source/monstuff.h +++ b/crawl-ref/source/monstuff.h @@ -51,7 +51,7 @@ public: #define SAME_ATTITUDE(x) (x->friendly() ? BEH_FRIENDLY : \ mons_good_neutral(x) ? BEH_GOOD_NEUTRAL : \ mons_strict_neutral(x) ? BEH_STRICT_NEUTRAL : \ - mons_neutral(x) ? BEH_NEUTRAL \ + x->neutral() ? BEH_NEUTRAL \ : BEH_HOSTILE) #define MONST_INTERESTING(x) (x->flags & MF_INTERESTING) diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc index c1c22bc802..605a20edfd 100644 --- a/crawl-ref/source/output.cc +++ b/crawl-ref/source/output.cc @@ -1086,7 +1086,7 @@ void draw_border(void) static bool _mons_hostile(const monsters *mon) { - return (!mon->friendly() && !mons_neutral(mon)); + return (!mon->friendly() && !mon->neutral()); } static std::string _get_monster_name(const monster_info& m, @@ -1101,7 +1101,7 @@ static std::string _get_monster_name(const monster_info& m, desc += "friendly "; adj = true; } - else if (mons_neutral(mon)) + else if (mon->neutral()) { desc += "neutral "; adj = true; @@ -1136,7 +1136,7 @@ bool compare_monsters_attitude( const monsters *m1, const monsters *m2 ) if (_mons_hostile(m1) && !_mons_hostile(m2)) return (true); - if (mons_neutral(m1)) + if (m1->neutral()) { if (m2->friendly()) return (true); diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc index 53fb6991db..9cf2e879fa 100644 --- a/crawl-ref/source/player.cc +++ b/crawl-ref/source/player.cc @@ -6147,7 +6147,7 @@ void player::attacking(actor *other) if (other && other->atype() == ACT_MONSTER) { const monsters *mon = dynamic_cast(other); - if (!mon->friendly() && !mons_neutral(mon)) + if (!mon->friendly() && !mon->neutral()) pet_target = mon->mindex(); } diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc index 81929195db..879120caa3 100644 --- a/crawl-ref/source/religion.cc +++ b/crawl-ref/source/religion.cc @@ -3534,7 +3534,7 @@ void set_attack_conducts(god_conduct_trigger conduct[3], const monsters *mon, _first_attack_was_friendly[midx] = true; } } - else if (mons_neutral(mon)) + else if (mon->neutral()) conduct[0].set(DID_ATTACK_NEUTRAL, 5, known, mon); if (is_unchivalric_attack(&you, mon) diff --git a/crawl-ref/source/showsymb.cc b/crawl-ref/source/showsymb.cc index f39a589dce..faa95207ea 100644 --- a/crawl-ref/source/showsymb.cc +++ b/crawl-ref/source/showsymb.cc @@ -204,7 +204,7 @@ int get_mons_colour(const monsters *mons) { col |= COLFLAG_FRIENDLY_MONSTER; } - else if (mons_neutral(mons)) + else if (mons->neutral()) { col |= COLFLAG_NEUTRAL_MONSTER; } diff --git a/crawl-ref/source/spells1.cc b/crawl-ref/source/spells1.cc index 4abc752eb7..1b067f505c 100644 --- a/crawl-ref/source/spells1.cc +++ b/crawl-ref/source/spells1.cc @@ -687,7 +687,7 @@ void big_cloud(cloud_type cl_type, kill_category whose, killer_type killer, static bool _mons_hostile(const monsters *mon) { // Needs to be done this way because of friendly/neutral enchantments. - return (!mons_wont_attack(mon) && !mons_neutral(mon)); + return (!mons_wont_attack(mon) && !mon->neutral()); } static bool _can_pacify_monster(const monsters *mon, const int healed) diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc index 75606c854b..e2da8c8343 100644 --- a/crawl-ref/source/tilepick.cc +++ b/crawl-ref/source/tilepick.cc @@ -1058,7 +1058,7 @@ int tileidx_monster(const monsters *mons, bool detected) if (mons->friendly()) ch |= TILE_FLAG_PET; - else if (mons_neutral(mons)) + else if (mons->neutral()) ch |= TILE_FLAG_NEUTRAL; else if (mons_looks_stabbable(mons)) ch |= TILE_FLAG_STAB; diff --git a/crawl-ref/source/tilesdl.cc b/crawl-ref/source/tilesdl.cc index bde6eb679c..f9b903114b 100644 --- a/crawl-ref/source/tilesdl.cc +++ b/crawl-ref/source/tilesdl.cc @@ -1337,7 +1337,7 @@ void TilesFramework::update_minimap(int gx, int gy, map_feature f) const monsters *mon = monster_at(gc); if (mon->friendly()) f = MF_MONS_FRIENDLY; - else if (mons_neutral(mon)) + else if (mon->neutral()) f = MF_MONS_NEUTRAL; else if (mons_class_flag(mon->type, M_NO_EXP_GAIN)) f = MF_MONS_NO_EXP; diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index 3ab8041efa..bf861ab8cd 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -147,7 +147,7 @@ void handle_monster_shouts(monsters* monster, bool force) return; // Friendly or neutral monsters don't shout. - if (!force && (monster->friendly() || mons_neutral(monster))) + if (!force && (monster->friendly() || monster->neutral())) return; // Get it once, since monster might be S_RANDOM, in which case -- cgit v1.2.3-54-g00ecf