diff options
author | Jude Brown <bookofjude@users.sourceforge.net> | 2009-12-27 13:45:19 +1000 |
---|---|---|
committer | Jude Brown <bookofjude@users.sourceforge.net> | 2009-12-27 13:45:19 +1000 |
commit | 79479ce91ed4542ed9ceec458f9260cc5d579283 (patch) | |
tree | 34ff7d8971808825e263ae55e9461e0a5e3c84f9 /crawl-ref/source/kills.cc | |
parent | 061e97f1722560e2180323b3e38c76add540b4b6 (diff) | |
download | crawl-ref-79479ce91ed4542ed9ceec458f9260cc5d579283.tar.gz crawl-ref-79479ce91ed4542ed9ceec458f9260cc5d579283.zip |
Don't mark milestones for summoned ghosts or uniques.
This should also hopefully deal with summoned ghosts in the kills
tracker.
Diffstat (limited to 'crawl-ref/source/kills.cc')
-rw-r--r-- | crawl-ref/source/kills.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/crawl-ref/source/kills.cc b/crawl-ref/source/kills.cc index f0ea8ee3f0..3d577cb283 100644 --- a/crawl-ref/source/kills.cc +++ b/crawl-ref/source/kills.cc @@ -279,7 +279,8 @@ void Kills::merge(const Kills &k) void Kills::record_kill(const struct monsters *mon) { - // Handle player ghosts separately. + // Handle player ghosts separately, but don't handle summoned + // ghosts at all. {due} if (mon->type == MONS_PLAYER_GHOST && !mon->is_summoned()) { record_ghost_kill(mon); @@ -365,6 +366,9 @@ void Kills::load(reader& inf) void Kills::record_ghost_kill(const struct monsters *mon) { + // We should never get to this point, but just in case... {due} + if (mon->is_summoned()) + return; kill_ghost ghostk(mon); ghosts.push_back(ghostk); } @@ -482,7 +486,8 @@ void kill_def::merge(const kill_def &k, bool uniq) void kill_def::add_kill(const struct monsters *mon, unsigned short place) { kills++; - add_place(place, mons_is_unique(mon->type)); + // They're only unique if they aren't summoned. + add_place(place, mons_is_unique(mon->type) && !mon->is_summoned()); } void kill_def::add_place(unsigned short place, bool force) |