From 76596a5ea224f9ed96f1282b526a86a32032c547 Mon Sep 17 00:00:00 2001 From: abrahamwl Date: Sat, 31 Oct 2009 06:16:23 -0700 Subject: Combine mons_is_submerged(monsters *m) into monsters::submerged() ...and replace all references to mons_is_submerged() with submerged(). It's a dirty job, but someone's got to do it. (Thank God for regex!) --- crawl-ref/source/acr.cc | 2 +- crawl-ref/source/delay.cc | 2 +- crawl-ref/source/misc.cc | 2 +- crawl-ref/source/mon-util.cc | 35 ++++++++++++++++------------------- crawl-ref/source/mon-util.h | 1 - crawl-ref/source/monstuff.cc | 26 +++++++++++++------------- crawl-ref/source/player.cc | 6 +++--- crawl-ref/source/terrain.cc | 2 +- crawl-ref/source/tilepick.cc | 2 +- crawl-ref/source/view.cc | 2 +- crawl-ref/source/xom.cc | 2 +- 11 files changed, 39 insertions(+), 43 deletions(-) (limited to 'crawl-ref/source') diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc index bb6c9cbc4c..75a813d937 100644 --- a/crawl-ref/source/acr.cc +++ b/crawl-ref/source/acr.cc @@ -3892,7 +3892,7 @@ static void _move_player(coord_def move) coord_def mon_swap_dest; - if (targ_monst && !mons_is_submerged(targ_monst)) + if (targ_monst && !targ_monst->submerged()) { if (can_swap_places && !beholder) { diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc index e308fb3e6a..8cc8bce644 100644 --- a/crawl-ref/source/delay.cc +++ b/crawl-ref/source/delay.cc @@ -1933,7 +1933,7 @@ static bool _paranoid_option_disable( activity_interrupt_type ai, if (ai == AI_HIT_MONSTER || ai == AI_MONSTER_ATTACKS) { const monsters* mon = static_cast(at.data); - if (mon && !mon->visible_to(&you) && !mons_is_submerged(mon)) + if (mon && !mon->visible_to(&you) && !mon->submerged()) autotoggle_autopickup(true); return (true); } diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc index 4cdd12829e..b17bbb422f 100644 --- a/crawl-ref/source/misc.cc +++ b/crawl-ref/source/misc.cc @@ -2799,7 +2799,7 @@ std::vector get_nearby_monsters(bool want_move, { if (mon->alive() && (!require_visible || mon->visible_to(&you)) - && !mons_is_submerged(mon) + && !mon->submerged() && !mons_is_unknown_mimic(mon) && (!dangerous_only || !mons_is_safe(mon, want_move, consider_user_options))) diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index f8d3085c05..67c6e4fca6 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -2058,7 +2058,7 @@ static std::string _str_monam(const monsters& mon, description_level_type desc, return make_stringf("INVALID MONSTER (#%d)", mon.type); const bool arena_submerged = crawl_state.arena && !force_seen - && mons_is_submerged(&mon); + && mon.submerged(); // Handle non-visible case first. if (!force_seen && !you.can_see(&mon) && !arena_submerged) @@ -2699,21 +2699,6 @@ mon_attitude_type mons_attitude(const monsters *m) return ATT_HOSTILE; } -bool mons_is_submerged(const monsters *m) -{ - // FIXME, switch to 4.1's MF_SUBMERGED system which is much cleaner. - if (m->has_ench(ENCH_SUBMERGED)) - return (true); - - if (grd(m->pos()) == DNGN_DEEP_WATER - && !monster_habitable_grid(m, DNGN_DEEP_WATER)) - { - return (true); - } - - return (false); -} - bool mons_is_paralysed(const monsters *m) { return (m->has_ench(ENCH_PARALYSIS)); @@ -3732,7 +3717,19 @@ bool monsters::wants_submerge() const bool monsters::submerged() const { - return (mons_is_submerged(this)); + // FIXME, switch to 4.1's MF_SUBMERGED system which is much cleaner. + // Can't find any reference to MF_SUBMERGED anywhere. Don't know what + // this means. - abrahamwl + if (has_ench(ENCH_SUBMERGED)) + return (true); + + if (grd(pos()) == DNGN_DEEP_WATER + && !monster_habitable_grid(this, DNGN_DEEP_WATER)) + { + return (true); + } + + return (false); } bool monsters::extra_balanced() const @@ -5854,14 +5851,14 @@ bool monsters::fumbles_attack(bool verbose) mprf("%s splashes around in the water.", this->name(DESC_CAP_THE).c_str()); } - else if (player_can_hear(this->pos())) + else if (player_can_hear(pos())) mpr("You hear a splashing noise.", MSGCH_SOUND); } return (true); } - if (mons_is_submerged(this)) + if (submerged()) return (true); return (false); diff --git a/crawl-ref/source/mon-util.h b/crawl-ref/source/mon-util.h index ca3d87c4f9..02ff85115b 100644 --- a/crawl-ref/source/mon-util.h +++ b/crawl-ref/source/mon-util.h @@ -838,7 +838,6 @@ bool mons_is_fast( const monsters *mon ); bool mons_is_insubstantial(int mc); bool mons_has_blood(int mc); -bool mons_is_submerged(const monsters *m); bool invalid_monster(const monsters *mon); bool invalid_monster_type(monster_type mt); diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index c7f5f5c775..77bdebd4e3 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -2860,7 +2860,7 @@ bool swap_check(monsters *monster, coord_def &loc, bool quiet) // monster has tentacles). bool monster_can_hit_monster(monsters *monster, const monsters *targ) { - if (!mons_is_submerged(targ) || monster->has_damage_type(DVORP_TENTACLE)) + if (!targ->submerged() || monster->has_damage_type(DVORP_TENTACLE)) return (true); if (grd(targ->pos()) != DNGN_SHALLOW_WATER) @@ -5653,7 +5653,7 @@ static void _handle_nearby_ability(monsters *monster) if (!foe || !monster->can_see(foe) || monster->asleep() - || mons_is_submerged(monster)) + || monster->submerged()) { return; } @@ -5808,7 +5808,7 @@ static bool _siren_movement_effect(const monsters *monster) { swapping = true; } - else if (!mons_is_submerged(mon)) + else if (!mon->submerged()) do_resist = true; } @@ -5865,7 +5865,7 @@ static bool _handle_special_ability(monsters *monster, bolt & beem) // Slime creatures can split while out of sight. if ((!mons_near(monster) || monster->asleep() - || mons_is_submerged(monster)) + || monster->submerged()) && monster->mons_species() != MONS_SLIME_CREATURE) { return (false); @@ -6442,7 +6442,7 @@ static bool _handle_reaching(monsters *monster) bool ret = false; const int wpn = monster->inv[MSLOT_WEAPON]; - if (mons_is_submerged(monster)) + if (monster->submerged()) return (false); if (mons_aligned(monster_index(monster), monster->foe)) @@ -6504,7 +6504,7 @@ static bool _handle_scroll(monsters *monster) // Yes, there is a logic to this ordering {dlb}: if (monster->asleep() || mons_is_confused(monster) - || mons_is_submerged(monster) + || monster->submerged() || monster->inv[MSLOT_SCROLL] == NON_ITEM || !one_chance_in(3)) { @@ -6845,7 +6845,7 @@ static bool _handle_spell(monsters *monster, bolt &beem) // Yes, there is a logic to this ordering {dlb}: if (monster->asleep() - || mons_is_submerged(monster) + || monster->submerged() || !mons_class_flag(monster->type, M_SPELLCASTER) && !spellcasting_poly && draco_breath == SPELL_NO_SPELL) @@ -7557,7 +7557,7 @@ static void _handle_monster_move(monsters *monster) // Handle clouds on nonmoving monsters. if (monster->speed == 0 && env.cgrid(monster->pos()) != EMPTY_CLOUD - && !mons_is_submerged(monster)) + && !monster->submerged()) { _mons_in_cloud( monster ); } @@ -7677,7 +7677,7 @@ static void _handle_monster_move(monsters *monster) { if (avoid_cloud) { - if (mons_is_submerged(monster)) + if (monster->submerged()) { monster->speed_increment -= entry->energy_usage.swim; break; @@ -7768,7 +7768,7 @@ static void _handle_monster_move(monsters *monster) if (monster->foe != MHITNOT && grid_distance(monster->target, monster->pos()) <= 1) { - if (mons_is_submerged(monster)) + if (monster->submerged()) { // Don't unsubmerge if the monster is too damaged or // if the monster is afraid, or if it's avoiding the @@ -7809,7 +7809,7 @@ static void _handle_monster_move(monsters *monster) if (mons_is_confused(monster) || monster->type == MONS_AIR_ELEMENTAL - && mons_is_submerged(monster)) + && monster->submerged()) { mmov.reset(); int pfound = 0; @@ -8339,7 +8339,7 @@ static bool _monster_eat_food(monsters *monster, bool nearby) //--------------------------------------------------------------- static bool _handle_pickup(monsters *monster) { - if (monster->asleep() || mons_is_submerged(monster)) + if (monster->asleep() || monster->submerged()) return (false); const bool nearby = mons_near(monster); @@ -9060,7 +9060,7 @@ static bool _monster_move(monsters *monster) if (monster->type == MONS_TRAPDOOR_SPIDER) { - if (mons_is_submerged(monster)) + if (monster->submerged()) return (false); // Trapdoor spiders hide if they can't see their foe. diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc index 272eceb391..d5c6ccf3c6 100644 --- a/crawl-ref/source/player.cc +++ b/crawl-ref/source/player.cc @@ -119,7 +119,7 @@ bool move_player_to_grid( const coord_def& p, bool stepped, bool allow_shift, // Better not be an unsubmerged monster either. ASSERT(swapping && mgrd(p) != NON_MONSTER || !swapping && (mgrd(p) == NON_MONSTER - || mons_is_submerged( &menv[ mgrd(p) ]) + || menv[ mgrd(p) ].submerged() || feawn_passthrough(&menv[mgrd(p)]))); // Don't prompt if force is true. @@ -1053,7 +1053,7 @@ int player_damage_type(void) // the player has a polearm). bool player_can_hit_monster(const monsters *mon) { - if (!mons_is_submerged(mon)) + if (!mon->submerged()) return (true); if (grd(mon->pos()) != DNGN_SHALLOW_WATER) @@ -2729,7 +2729,7 @@ void check_beholders() { const monsters* mon = &menv[you.mesmerised_by[i]]; if (!mon->alive() || mons_genus(mon->type) != MONS_MERMAID - || mons_is_submerged(mon)) + || mon->submerged()) { #ifdef DEBUG if (!mon->alive()) diff --git a/crawl-ref/source/terrain.cc b/crawl-ref/source/terrain.cc index b3ea553313..86b4e9cf14 100644 --- a/crawl-ref/source/terrain.cc +++ b/crawl-ref/source/terrain.cc @@ -705,7 +705,7 @@ void _dgn_check_terrain_player(const coord_def pos) // there aren't any adjacent squares where it can stay // submerged then move it. monsters* mon = monster_at(pos); - if (mon && !mons_is_submerged(mon)) + if (mon && !mon->submerged()) monster_teleport(mon, true, false); move_player_to_grid(pos, false, true, true); } diff --git a/crawl-ref/source/tilepick.cc b/crawl-ref/source/tilepick.cc index c56e79f1e6..775f51b939 100644 --- a/crawl-ref/source/tilepick.cc +++ b/crawl-ref/source/tilepick.cc @@ -2409,7 +2409,7 @@ int tileidx_feature(int object, int gx, int gy) { monsters *mon = &menv[mgrd[gx][gy]]; // Add disturbance to tile. - if (mons_is_submerged(mon)) + if (mon->submerged()) t += tile_dngn_count(t); } diff --git a/crawl-ref/source/view.cc b/crawl-ref/source/view.cc index 85a06eea98..204803c98c 100644 --- a/crawl-ref/source/view.cc +++ b/crawl-ref/source/view.cc @@ -1277,7 +1277,7 @@ void handle_monster_shouts(monsters* monster, bool force) channel = MSGCH_SOUND; // Monster must come up from being submerged if it wants to shout. - if (mons_is_submerged(monster)) + if (monster->submerged()) { if (!monster->del_ench(ENCH_SUBMERGED)) { diff --git a/crawl-ref/source/xom.cc b/crawl-ref/source/xom.cc index 3627197c6e..7c77d0d76d 100644 --- a/crawl-ref/source/xom.cc +++ b/crawl-ref/source/xom.cc @@ -867,7 +867,7 @@ static int _xom_give_item(int power, bool debug = false) static bool _choose_mutatable_monster(const monsters* mon) { return (mon->alive() && mon->can_safely_mutate() - && !mons_is_submerged(mon)); + && !mon->submerged()); } static bool _is_chaos_upgradeable(const item_def &item, -- cgit v1.2.3-54-g00ecf