summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/describe.cc
diff options
context:
space:
mode:
authorJude Brown <bookofjude@users.sourceforge.net>2009-11-15 18:20:00 +1000
committerJude Brown <bookofjude@users.sourceforge.net>2009-11-15 18:20:00 +1000
commitb3db32a1027c60c2ceea9e44697b833e660cb295 (patch)
tree6abb1e70bb3a2921f292025c3560d3a2b57d3d71 /crawl-ref/source/describe.cc
parent31af7d6cff01364f4a62eeffbc31c1a54e3ffcd5 (diff)
downloadcrawl-ref-b3db32a1027c60c2ceea9e44697b833e660cb295.tar.gz
crawl-ref-b3db32a1027c60c2ceea9e44697b833e660cb295.zip
set_feature_quote, complement to set_feature_desc_long/short.
Diffstat (limited to 'crawl-ref/source/describe.cc')
-rw-r--r--crawl-ref/source/describe.cc29
1 files changed, 29 insertions, 0 deletions
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 1ccfd0a5d7..c0a8470d77 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -54,6 +54,7 @@
#include "xom.h"
#define LONG_DESC_KEY "long_desc_key"
+#define QUOTE_KEY "quote_key"
// ========================================================================
// Internal Functions
@@ -2081,6 +2082,15 @@ void get_feature_desc(const coord_def &pos, describe_info &inf)
inf.body << _get_feature_description_wide(grd(pos));
inf.quote = getQuoteString(db_name);
+
+ // Quotes don't care about custom descriptions.
+ if (props.exists(QUOTE_KEY))
+ {
+ const CrawlHashTable &quote_table = props[QUOTE_KEY].get_table();
+
+ if (quote_table.exists(db_name))
+ inf.quote = quote_table[db_name].get_string();
+ }
}
void describe_feature_wide(const coord_def& pos)
@@ -2116,6 +2126,25 @@ void set_feature_desc_long(const std::string &raw_name,
desc_table[raw_name] = desc;
}
+void set_feature_quote(const std::string &raw_name,
+ const std::string &quote)
+{
+ ASSERT(!raw_name.empty());
+
+ CrawlHashTable &props = env.properties;
+
+ if (!props.exists(QUOTE_KEY))
+ props[QUOTE_KEY].new_table();
+
+ CrawlHashTable &quote_table = props[QUOTE_KEY].get_table();
+
+ if (quote.empty())
+ quote_table.erase(raw_name);
+ else
+ quote_table[raw_name] = quote;
+}
+
+
void get_item_desc(const item_def &item, describe_info &inf, bool terse)
{
// Don't use verbose descriptions if terse and the item contains spells,