summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorDarshan Shaligram <dshaligram@users.sourceforge.net>2009-12-30 05:40:12 +0530
committerDarshan Shaligram <dshaligram@users.sourceforge.net>2009-12-30 05:40:31 +0530
commitb40563be508e08864722f026bb5154b39135b0c0 (patch)
tree1154948ba5c62f0b37df31b37c0618264aac1dae /crawl-ref
parent91adc427383b9284af5f2347a6e50c81ed3db00c (diff)
downloadcrawl-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.cc17
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))