summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/dgn-overview.cc
diff options
context:
space:
mode:
authorAaron Becker <akbecker@gmail.com>2011-12-09 12:18:44 -0600
committerNeil Moore <neil@s-z.org>2011-12-09 14:20:23 -0500
commitf789c54d63a54a7a57797681d0e5798bf7e1743c (patch)
treea498de2e66bb88ff211cda966090b1771d051251 /crawl-ref/source/dgn-overview.cc
parent84c4991a6dc7b7b64d925021fe6fda8b35e7821a (diff)
downloadcrawl-ref-f789c54d63a54a7a57797681d0e5798bf7e1743c.tar.gz
crawl-ref-f789c54d63a54a7a57797681d0e5798bf7e1743c.zip
For unique annotations, check whether monster has ever been unique.
When uniques are polymorphed, mons_is_unique becomes false, and you have to separately check the original_was_unique property, otherwise their annotations won't work correctly.
Diffstat (limited to 'crawl-ref/source/dgn-overview.cc')
-rw-r--r--crawl-ref/source/dgn-overview.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/crawl-ref/source/dgn-overview.cc b/crawl-ref/source/dgn-overview.cc
index f4bcee22fb..f1885b3159 100644
--- a/crawl-ref/source/dgn-overview.cc
+++ b/crawl-ref/source/dgn-overview.cc
@@ -903,7 +903,10 @@ void set_unique_annotation(monster* mons, const level_id level)
// Abyss persists its denizens.
if (level.level_type != LEVEL_DUNGEON && level.level_type != LEVEL_ABYSS)
return;
- if (!mons_is_unique(mons->type) && mons->type != MONS_PLAYER_GHOST)
+ if (!mons_is_unique(mons->type)
+ && !(mons->props.exists("original_was_unique")
+ && mons->props["original_was_unique"].get_bool())
+ && mons->type != MONS_PLAYER_GHOST)
return;
remove_unique_annotation(mons);