summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorDavid Lawrence Ramsey <dolorous@users.sourceforge.net>2009-10-06 19:12:25 -0500
committerDavid Lawrence Ramsey <dolorous@users.sourceforge.net>2009-10-06 19:12:25 -0500
commit55ba0f6e4d8fd62ea1011426df0499606401006b (patch)
tree40166ece7bd80bdd1eb7aa0f156d1820366ac9e5 /crawl-ref
parent26ca2cac760a75dc931ee3a9ad9135f785e111c4 (diff)
downloadcrawl-ref-55ba0f6e4d8fd62ea1011426df0499606401006b.tar.gz
crawl-ref-55ba0f6e4d8fd62ea1011426df0499606401006b.zip
Display (very) ugly things' colors in their descriptions.
Diffstat (limited to 'crawl-ref')
-rw-r--r--crawl-ref/source/mon-util.cc60
-rw-r--r--crawl-ref/source/output.cc19
2 files changed, 56 insertions, 23 deletions
diff --git a/crawl-ref/source/mon-util.cc b/crawl-ref/source/mon-util.cc
index e3eedd2795..3d1a721029 100644
--- a/crawl-ref/source/mon-util.cc
+++ b/crawl-ref/source/mon-util.cc
@@ -2005,6 +2005,30 @@ void define_monster(monsters &mons)
mons.ench_countdown = 0;
}
+static std::string _ugly_thing_colour_name(const monsters *mon)
+{
+ if (mons_genus(mon->type) != MONS_UGLY_THING)
+ return ("buggy");
+
+ switch (make_low_colour(mon->colour))
+ {
+ case CYAN:
+ return ("turquoise");
+ case GREEN:
+ return ("green");
+ case RED:
+ return ("red");
+ case LIGHTGREY:
+ return ("white");
+ case BROWN:
+ return ("brown");
+ case MAGENTA:
+ return ("purple");
+ default:
+ return ("buggy");
+ }
+}
+
static const char *drac_colour_names[] = {
"black", "mottled", "yellow", "green", "purple", "red", "white", "pale"
};
@@ -2049,11 +2073,11 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
switch (desc)
{
case DESC_CAP_THE: case DESC_CAP_A:
- return "It";
+ return ("It");
case DESC_NOCAP_THE: case DESC_NOCAP_A: case DESC_PLAIN:
- return "it";
+ return ("it");
default:
- return "it (buggy)";
+ return ("it (buggy)");
}
}
@@ -2064,8 +2088,8 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
if (mons_is_mimic(mon.type) && mon.type != MONS_GOLD_MIMIC)
{
item_def item;
- get_mimic_item( &mon, item );
- return item.name(desc);
+ get_mimic_item(&mon, item);
+ return (item.name(desc));
}
if (mon.type == MONS_DANCING_WEAPON && mon.inv[MSLOT_WEAPON] != NON_ITEM)
@@ -2080,14 +2104,15 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
}
const item_def& item = mitm[mon.inv[MSLOT_WEAPON]];
- return item.name(desc, false, false, use_inscrip, false, ignore_flags);
+ return (item.name(desc, false, false, use_inscrip, false,
+ ignore_flags));
}
if (desc == DESC_DBNAME)
- return get_monster_data(mon.type)->name;
+ return (get_monster_data(mon.type)->name);
if (mon.type == MONS_PLAYER_GHOST)
- return apostrophise(mon.mname) + " ghost";
+ return (apostrophise(mon.mname) + " ghost");
// Some monsters might want the name of a different creature.
int nametype = mon.type;
@@ -2111,7 +2136,7 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
if (desc != DESC_BASENAME && !mon.mname.empty()
&& mons_genus(nametype) != MONS_HYDRA)
{
- return mon.mname;
+ return (mon.mname);
}
std::string result;
@@ -2156,6 +2181,11 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
// Tack on other prefixes.
switch (mon.type)
{
+ case MONS_UGLY_THING:
+ case MONS_VERY_UGLY_THING:
+ result += _ugly_thing_colour_name(&mon) + " ";
+ break;
+
case MONS_SPECTRAL_THING:
result += "spectral ";
break;
@@ -2261,10 +2291,10 @@ static std::string _str_monam(const monsters& mon, description_level_type desc,
}
// All done.
- return result;
+ return (result);
}
-std::string mons_type_name(int type, description_level_type desc )
+std::string mons_type_name(int type, description_level_type desc)
{
std::string result;
@@ -2320,7 +2350,7 @@ std::string mons_type_name(int type, description_level_type desc )
result.insert(1, "n");
}
- return result;
+ return (result);
}
static std::string _get_proper_monster_name(const monsters *mon)
@@ -2331,16 +2361,16 @@ static std::string _get_proper_monster_name(const monsters *mon)
std::string name = getRandNameString(me->name, " name");
if (!name.empty())
- return name;
+ return (name);
name = getRandNameString(get_monster_data(mons_genus(mon->type))->name,
" name");
if (!name.empty())
- return name;
+ return (name);
name = getRandNameString("generic_monster_name");
- return name;
+ return (name);
}
// Names a previously unnamed monster.
diff --git a/crawl-ref/source/output.cc b/crawl-ref/source/output.cc
index 2f74f41b0c..e036ab19ca 100644
--- a/crawl-ref/source/output.cc
+++ b/crawl-ref/source/output.cc
@@ -1349,8 +1349,8 @@ static std::string _verbose_info(const monsters* m)
return ("");
}
-void monster_pane_info::to_string( int count, std::string& desc,
- int& desc_color) const
+void monster_pane_info::to_string(int count, std::string& desc,
+ int& desc_color) const
{
std::ostringstream out;
@@ -1371,11 +1371,13 @@ void monster_pane_info::to_string( int count, std::string& desc,
out << count << " "
<< m_mon->name(DESC_PLAIN);
}
- // Don't differentiate between dancing weapons, mimics or draconians
- // of different types.
+ // Don't differentiate between dancing weapons, mimics, (very)
+ // ugly things or draconians of different types.
else if (m_fullname
&& m_mon->type != MONS_DANCING_WEAPON
&& mons_genus(m_mon->type) != MONS_DRACONIAN
+ && m_mon->type != MONS_UGLY_THING
+ && m_mon->type != MONS_VERY_UGLY_THING
&& !mons_is_mimic(m_mon->type)
&& m_mon->mname.empty())
{
@@ -1512,7 +1514,7 @@ static void _print_next_monster_desc(const std::vector<monster_pane_info>& mons,
if (glyph == '%')
cprintf("%%");
else
- cprintf( stringize_glyph(glyph).c_str() );
+ cprintf(stringize_glyph(glyph).c_str());
++printed;
// Printing too many looks pretty bad, though.
@@ -1653,7 +1655,8 @@ int update_monster_pane()
#endif
// Print the monsters!
- std::string blank; blank.resize(crawl_view.mlistsz.x, ' ');
+ std::string blank;
+ blank.resize(crawl_view.mlistsz.x, ' ');
int i_mons = 0;
for (int i_print = 0; i_print < max_print; ++i_print)
{
@@ -1669,7 +1672,7 @@ int update_monster_pane()
cprintf("%s", blank.c_str());
}
- if (i_mons < (int) mons.size())
+ if (i_mons < (int)mons.size())
{
// Didn't get to all of them.
cgotoxy(crawl_view.mlistsz.x - 4, crawl_view.mlistsz.y, GOTO_MLIST);
@@ -1679,7 +1682,7 @@ int update_monster_pane()
if (mons.empty())
return (-1);
- return full_info;
+ return (full_info);
}
#else
// FIXME: Implement this for Tiles!