diff options
author | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-10-15 16:43:23 +0000 |
---|---|---|
committer | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-10-15 16:43:23 +0000 |
commit | 1dabce86629483c4ad0bf921b4105333d2be293c (patch) | |
tree | f217aa66a61bb16896e3030f3733229ae4b3ccb9 /crawl-ref/source | |
parent | 156084b6fdbc2c6ffbb3dc462c3739038884ccc7 (diff) | |
download | crawl-ref-1dabce86629483c4ad0bf921b4105333d2be293c.tar.gz crawl-ref-1dabce86629483c4ad0bf921b4105333d2be293c.zip |
Allow checking regeneration ability at the level of individual monsters.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7254 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source')
-rw-r--r-- | crawl-ref/source/effects.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/mon-util.cc | 24 | ||||
-rw-r--r-- | crawl-ref/source/mon-util.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/monstuff.cc | 2 |
4 files changed, 21 insertions, 9 deletions
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc index 798bf65a89..250ebe19bf 100644 --- a/crawl-ref/source/effects.cc +++ b/crawl-ref/source/effects.cc @@ -2836,7 +2836,7 @@ void update_level(double elapsedTime) { heal_monster(mon, turns, false); } - else if (!mons_class_flag(mon->type, M_NO_REGEN)) + else if (mons_can_regenerate(mon)) { // Set a lower ceiling of 0.1 on the regen rate. const int regen_rate = diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc index 1a2b261e11..6744e03a99 100644 --- a/crawl-ref/source/mon-util.cc +++ b/crawl-ref/source/mon-util.cc @@ -562,12 +562,6 @@ bool mons_foe_is_mons(const monsters *mons) return foe && foe->atype() == ACT_MONSTER; } -int mons_zombie_size(int mc) -{ - ASSERT(smc); - return (smc->zombie_size); -} - int mons_weight(int mc) { ASSERT(smc); @@ -788,6 +782,22 @@ int mons_colour(const monsters *mon) return (mon->colour); } +bool mons_class_can_regenerate(int mc) +{ + return (!mons_class_flag(mc, M_NO_REGEN)); +} + +bool mons_can_regenerate(const monsters *mon) +{ + return (mons_class_can_regenerate(mon->type)); +} + +int mons_zombie_size(int mc) +{ + ASSERT(smc); + return (smc->zombie_size); +} + monster_type mons_zombie_base(const monsters *mon) { return (mon->base_monster); @@ -1270,7 +1280,7 @@ bool mons_skeleton(int mc) } return (true); -} // end mons_skeleton() +} flight_type mons_class_flies(int mc) { diff --git a/crawl-ref/source/mon-util.h b/crawl-ref/source/mon-util.h index ccdd5f50ff..e653674afe 100644 --- a/crawl-ref/source/mon-util.h +++ b/crawl-ref/source/mon-util.h @@ -598,6 +598,8 @@ int mons_speed(int mc); /* *********************************************************************** * called from: dungeon - mon-util - spells2 * *********************************************************************** */ +bool mons_class_can_regenerate(int mc); +bool mons_can_regenerate(const monsters *mon); int mons_zombie_size(int mc); monster_type mons_zombie_base(const monsters *mon); bool mons_class_is_zombified(int mc); diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc index 58bbeb9af4..ff42d7d438 100644 --- a/crawl-ref/source/monstuff.cc +++ b/crawl-ref/source/monstuff.cc @@ -5461,7 +5461,7 @@ static inline bool _mons_natural_regen_roll(monsters *monster) static void _monster_regenerate(monsters *monster) { if (monster->has_ench(ENCH_SICK) - || mons_class_flag(monster->type, M_NO_REGEN)) + || !mons_can_regenerate(monster)) { return; } |