summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/output.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/output.cc')
-rw-r--r--crawl-ref/source/output.cc23
1 files changed, 20 insertions, 3 deletions
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index c5ff49069e..c0a57cabd7 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -1209,6 +1209,16 @@ monster_pane_info::less_than(const monster_pane_info& m1,
else if (m1.m_attitude > m2.m_attitude)
return (false);
+ // Force plain but different coloured draconians to be treated like the
+ // same sub-type.
+ if (!zombified && m1.m_mon->type >= MONS_DRACONIAN
+ && m1.m_mon->type <= MONS_PALE_DRACONIAN
+ && m2.m_mon->type >= MONS_DRACONIAN
+ && m2.m_mon->type <= MONS_PALE_DRACONIAN)
+ {
+ return (false);
+ }
+
// By descending difficulty
if (m1.m_difficulty > m2.m_difficulty)
return (true);
@@ -1234,8 +1244,8 @@ monster_pane_info::less_than(const monster_pane_info& m1,
if (zombified)
{
- // Because of the type checks above, if one of the two is zombified, so is
- // the other, and of the same type.
+ // Because of the type checks above, if one of the two is zombified, so
+ // is the other, and of the same type.
if (mons_is_zombified(m1.m_mon)
&& m1.m_mon->base_monster < m2.m_mon->base_monster)
{
@@ -1282,16 +1292,23 @@ void monster_pane_info::to_string( int count, std::string& desc,
}
else
{
- // Don't differentiate between dancing weapons or mimics
+ // Don't differentiate between dancing weapons, mimics, or draconians
// of different types.
if (m_fullname
&& m_mon->type != MONS_DANCING_WEAPON
+ && mons_genus(m_mon->type) != MONS_DRACONIAN
&& !mons_is_mimic(m_mon->type)
&& m_mon->mname.empty())
{
out << count << " "
<< pluralise(m_mon->name(DESC_PLAIN));
}
+ else if (m_mon->type >= MONS_DRACONIAN
+ && m_mon->type <= MONS_PALE_DRACONIAN)
+ {
+ out << count << " "
+ << pluralise(mons_type_name(MONS_DRACONIAN, DESC_PLAIN));
+ }
else
{
out << count << " "