summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Kozlov <zaba@thorium.homeunix.org>2009-11-06 11:48:29 +0300
committerRobert Vollmert <rvollmert@gmx.net>2009-11-06 09:56:26 +0100
commit37dddc69c063b655d028bdb33e5ab831b4af8a55 (patch)
tree55f621318adec99bda23eb02da3f8895381cd80e
parentdbdfb48c0639aa101f25d210496e66bd6326873b (diff)
downloadcrawl-ref-37dddc69c063b655d028bdb33e5ab831b4af8a55.tar.gz
crawl-ref-37dddc69c063b655d028bdb33e5ab831b4af8a55.zip
Add actor::petrified, which replaces mons_is_petrified.
Signed-off-by: Robert Vollmert <rvollmert@gmx.net>
-rw-r--r--crawl-ref/source/abl-show.cc2
-rw-r--r--crawl-ref/source/acr.cc6
-rw-r--r--crawl-ref/source/actor.h1
-rw-r--r--crawl-ref/source/beam.cc8
-rw-r--r--crawl-ref/source/fight.cc4
-rw-r--r--crawl-ref/source/mon-act.cc2
-rw-r--r--crawl-ref/source/mon-info.cc2
-rw-r--r--crawl-ref/source/mon-util.cc7
-rw-r--r--crawl-ref/source/mon-util.h1
-rw-r--r--crawl-ref/source/monster.cc7
-rw-r--r--crawl-ref/source/monster.h1
-rw-r--r--crawl-ref/source/output.cc2
-rw-r--r--crawl-ref/source/player.cc7
-rw-r--r--crawl-ref/source/player.h1
-rw-r--r--crawl-ref/source/spells1.cc2
-rw-r--r--crawl-ref/source/spells4.cc4
16 files changed, 32 insertions, 25 deletions
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc
index 218bd0d648..867fa8b626 100644
--- a/crawl-ref/source/abl-show.cc
+++ b/crawl-ref/source/abl-show.cc
@@ -1021,7 +1021,7 @@ static bool _check_ability_possible(const ability_def& abil,
case ABIL_ELYVILON_PURIFICATION:
if (!you.disease && !you.rotting && !you.duration[DUR_POISONING]
&& !you.duration[DUR_CONF] && !you.duration[DUR_SLOW]
- && !you.duration[DUR_PARALYSIS] && !you.duration[DUR_PETRIFIED])
+ && !you.duration[DUR_PARALYSIS] && !you.petrified())
{
mpr("Nothing ails you!");
return (false);
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index 4a020a2183..290a3bf5aa 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -2348,12 +2348,12 @@ static void _decrement_durations()
_decrement_a_duration(DUR_SLIMIFY, "You feel less slimy.",
coinflip(), "Your slime is starting to congeal.");
- if (you.duration[DUR_PARALYSIS] || you.duration[DUR_PETRIFIED])
+ if (you.duration[DUR_PARALYSIS] || you.petrified())
{
_decrement_a_duration(DUR_PARALYSIS);
_decrement_a_duration(DUR_PETRIFIED);
- if (!you.duration[DUR_PARALYSIS] && !you.duration[DUR_PETRIFIED])
+ if (!you.duration[DUR_PARALYSIS] && !you.petrified())
{
mpr("You can move again.", MSGCH_DURATION);
you.redraw_evasion = true;
@@ -2426,7 +2426,7 @@ static void _decrement_durations()
}
}
- if (!you.duration[DUR_PARALYSIS] && !you.duration[DUR_PETRIFIED])
+ if (!you.duration[DUR_PARALYSIS] && !you.petrified())
mpr("You are exhausted.", MSGCH_WARN);
// This resets from an actual penalty or from NO_BERSERK_PENALTY.
diff --git a/crawl-ref/source/actor.h b/crawl-ref/source/actor.h
index cced93cb0c..13bc372f4b 100644
--- a/crawl-ref/source/actor.h
+++ b/crawl-ref/source/actor.h
@@ -196,6 +196,7 @@ public:
virtual bool asleep() const { return (false); }
virtual bool backlit(bool check_haloed = true) const = 0;
virtual bool haloed() const = 0;
+ virtual bool petrified() const = 0;
virtual bool handle_trap();
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index 48a28d0076..af014304af 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -2665,9 +2665,9 @@ bool mass_enchantment( enchant_type wh_enchant, int pow, int origin,
void bolt::apply_bolt_paralysis(monsters *monster)
{
- if (!monster->has_ench(ENCH_PARALYSIS)
+ if (!monster->paralysed()
&& monster->add_ench(ENCH_PARALYSIS)
- && (!monster->has_ench(ENCH_PETRIFIED)
+ && (!monster->petrified()
|| monster->has_ench(ENCH_PETRIFYING)))
{
if (simple_monster_message(monster, " suddenly stops moving!"))
@@ -2685,7 +2685,7 @@ void bolt::apply_bolt_paralysis(monsters *monster)
void bolt::apply_bolt_petrify(monsters *monster)
{
int petrifying = monster->has_ench(ENCH_PETRIFYING);
- if (monster->has_ench(ENCH_PETRIFIED))
+ if (monster->petrified())
{
// If the petrifying is not yet finished, we can force it to happen
// right away by casting again. Otherwise, the spell has no further
@@ -5192,7 +5192,7 @@ mon_resist_type bolt::apply_enchantment_to_monster(monsters* mon)
&& !mons_is_stationary(mon)
&& mon->add_ench(ENCH_HASTE))
{
- if (!mon->paralysed() && !mons_is_petrified(mon)
+ if (!mon->paralysed() && !mon->petrified()
&& simple_monster_message(mon, " seems to speed up."))
{
obvious_effect = true;
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index 003b546b59..c1b4217e97 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -321,7 +321,7 @@ unchivalric_attack_type is_unchivalric_attack(const actor *attacker,
unchivalric = UCAT_PETRIFYING;
// petrified
- if (def && mons_is_petrified(def))
+ if (defender->petrified())
unchivalric = UCAT_PETRIFIED;
// paralysed
@@ -1685,7 +1685,7 @@ int melee_attack::player_apply_monster_ac(int damage)
damage -= random2(1 + defender->armour_class());
}
- if (mons_is_petrified(defender_as_monster()))
+ if (defender->petrified())
damage /= 3;
return (damage);
diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc
index ebd07d6fcf..12dd4bb1ad 100644
--- a/crawl-ref/source/mon-act.cc
+++ b/crawl-ref/source/mon-act.cc
@@ -1855,7 +1855,7 @@ static void _handle_monster_move(monsters *monster)
// Struggling against the net takes time.
_swim_or_move_energy(monster);
}
- else if (!mons_is_petrified(monster))
+ else if (!monster->petrified())
{
// Calculates mmov based on monster target.
_handle_movement(monster);
diff --git a/crawl-ref/source/mon-info.cc b/crawl-ref/source/mon-info.cc
index 767f49c4a8..92673a586b 100644
--- a/crawl-ref/source/mon-info.cc
+++ b/crawl-ref/source/mon-info.cc
@@ -154,7 +154,7 @@ static std::string _verbose_info(const monsters* m)
if (mons_behaviour_perceptible(m))
{
- if (mons_is_petrified(m))
+ if (m->petrified())
return (" (petrified)");
if (m->paralysed())
return (" (paralysed)");
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index b1e54bbfc3..4dc815106d 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -2035,11 +2035,6 @@ mon_attitude_type mons_attitude(const monsters *m)
return ATT_HOSTILE;
}
-bool mons_is_petrified(const monsters *m)
-{
- return (m->has_ench(ENCH_PETRIFIED));
-}
-
bool mons_is_petrifying(const monsters *m)
{
return (m->has_ench(ENCH_PETRIFYING));
@@ -2048,7 +2043,7 @@ bool mons_is_petrifying(const monsters *m)
bool mons_cannot_act(const monsters *m)
{
return (m->paralysed()
- || mons_is_petrified(m) && !mons_is_petrifying(m));
+ || m->petrified() && !mons_is_petrifying(m));
}
bool mons_cannot_move(const monsters *m)
diff --git a/crawl-ref/source/mon-util.h b/crawl-ref/source/mon-util.h
index e8a35999df..60c7a5d1e7 100644
--- a/crawl-ref/source/mon-util.h
+++ b/crawl-ref/source/mon-util.h
@@ -675,7 +675,6 @@ bool invalid_monster_type(monster_type mt);
bool invalid_monster_index(int i);
bool monster_shover(const monsters *m);
-bool mons_is_petrified(const monsters *m);
bool mons_is_petrifying(const monsters *m);
bool mons_cannot_act(const monsters *m);
bool mons_cannot_move(const monsters *m);
diff --git a/crawl-ref/source/monster.cc b/crawl-ref/source/monster.cc
index a29c36b3be..7c8e1cc0a9 100644
--- a/crawl-ref/source/monster.cc
+++ b/crawl-ref/source/monster.cc
@@ -2803,6 +2803,11 @@ bool monsters::caught() const
return this->has_ench(ENCH_HELD);
}
+bool monsters::petrified() const
+{
+ return has_ench(ENCH_PETRIFIED);
+}
+
int monsters::shield_bonus() const
{
const item_def *shld = const_cast<monsters*>(this)->shield();
@@ -4096,7 +4101,7 @@ void monsters::remove_enchantment_effect(const mon_enchant &me, bool quiet)
break;
case ENCH_PETRIFYING:
- if (!has_ench(ENCH_PETRIFIED))
+ if (!petrified())
break;
if (!quiet)
diff --git a/crawl-ref/source/monster.h b/crawl-ref/source/monster.h
index 1eb019347a..d19af87d5f 100644
--- a/crawl-ref/source/monster.h
+++ b/crawl-ref/source/monster.h
@@ -331,6 +331,7 @@ public:
bool asleep() const;
bool backlit(bool check_haloed = true) const;
bool haloed() const;
+ bool petrified() const;
bool has_spells() const;
bool has_spell(spell_type spell) const;
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index fcc94f0cd7..1ed3cf10a5 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -2041,7 +2041,7 @@ std::string _status_mut_abilities()
if (you.paralysed())
status.push_back("paralysed");
- if (you.duration[DUR_PETRIFIED])
+ if (you.petrified())
status.push_back("petrified");
if (you.duration[DUR_SLEEP])
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 591a6d68fa..0c7fe03b39 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -6274,7 +6274,7 @@ bool player::paralysed() const
bool player::cannot_move() const
{
- return (duration[DUR_PARALYSIS] || duration[DUR_PETRIFIED]);
+ return (paralysed() || petrified());
}
bool player::confused() const
@@ -6287,6 +6287,11 @@ bool player::caught() const
return (attribute[ATTR_HELD]);
}
+bool player::petrified() const
+{
+ return (duration[DUR_PETRIFIED]);
+}
+
int player::shield_block_penalty() const
{
return (5 * shield_blocks * shield_blocks);
diff --git a/crawl-ref/source/player.h b/crawl-ref/source/player.h
index a2c4acb21b..147572a053 100644
--- a/crawl-ref/source/player.h
+++ b/crawl-ref/source/player.h
@@ -455,6 +455,7 @@ public:
bool caught() const;
bool backlit(bool check_haloed = true) const;
bool haloed() const;
+ bool petrified() const;
bool asleep() const;
void put_to_sleep(int power = 0);
diff --git a/crawl-ref/source/spells1.cc b/crawl-ref/source/spells1.cc
index e94fc43957..e4f451dc6b 100644
--- a/crawl-ref/source/spells1.cc
+++ b/crawl-ref/source/spells1.cc
@@ -960,7 +960,7 @@ bool cast_vitalisation()
// Remove negative afflictions.
if (you.disease || you.rotting || you.confused()
|| you.duration[DUR_PARALYSIS] || you.duration[DUR_POISONING]
- || you.duration[DUR_PETRIFIED])
+ || you.petrified())
{
do
{
diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc
index bf965913da..3502c0db09 100644
--- a/crawl-ref/source/spells4.cc
+++ b/crawl-ref/source/spells4.cc
@@ -1531,7 +1531,7 @@ bool cast_fragmentation(int pow, const dist& spd)
else
{
const bool petrifying = mons_is_petrifying(mon);
- const bool petrified = mons_is_petrified(mon) && !petrifying;
+ const bool petrified = mon->petrified() && !petrifying;
// Petrifying or petrified monsters can be exploded.
if (petrifying || petrified)
@@ -2100,7 +2100,7 @@ bool do_slow_monster(monsters* mon, kill_category whose_kill)
&& !mons_is_stationary(mon)
&& mon->add_ench(mon_enchant(ENCH_SLOW, 0, whose_kill)))
{
- if (!mon->paralysed() && !mons_is_petrified(mon)
+ if (!mon->paralysed() && !mon->petrified()
&& simple_monster_message(mon, " seems to slow down."))
{
return (true);