diff options
author | Darshan Shaligram <dshaligram@users.sourceforge.net> | 2009-12-30 05:40:12 +0530 |
---|---|---|
committer | Darshan Shaligram <dshaligram@users.sourceforge.net> | 2009-12-30 05:40:31 +0530 |
commit | b40563be508e08864722f026bb5154b39135b0c0 (patch) | |
tree | 1154948ba5c62f0b37df31b37c0618264aac1dae /crawl-ref | |
parent | 91adc427383b9284af5f2347a6e50c81ed3db00c (diff) | |
download | crawl-ref-b40563be508e08864722f026bb5154b39135b0c0.tar.gz crawl-ref-b40563be508e08864722f026bb5154b39135b0c0.zip |
Fix grouping of monster names in wizmode &"
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/wiz-mon.cc | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/crawl-ref/source/wiz-mon.cc b/crawl-ref/source/wiz-mon.cc index 632b716b54..e237401b5d 100644 --- a/crawl-ref/source/wiz-mon.cc +++ b/crawl-ref/source/wiz-mon.cc @@ -228,6 +228,11 @@ static bool _sort_monster_list(int a, int b) const monsters* m1 = &menv[a]; const monsters* m2 = &menv[b]; + if (m1->alive() != m2->alive()) + return m1->alive(); + else if (!m1->alive()) + return a < b; + if (m1->type == m2->type) { if (!m1->alive() || !m2->alive()) @@ -263,8 +268,16 @@ void debug_list_monsters() std::string prev_name = ""; int count = 0; - for (monster_iterator mi; mi; ++mi) + for (int i = 0; i < MAX_MONSTERS; ++i) { + const int idx = mon_nums[i]; + if (invalid_monster_index(idx)) + continue; + + const monsters *mi(&menv[idx]); + if (!mi->alive()) + continue; + std::string name = mi->name(DESC_PLAIN, true); if (prev_name != name && count > 0) @@ -282,7 +295,7 @@ void debug_list_monsters() count++; prev_name = name; - int exp = exper_value(*mi); + int exp = exper_value(mi); total_exp += exp; if ((mi->flags & (MF_WAS_NEUTRAL | MF_NO_REWARD)) |