summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/message.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-02 12:40:44 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2007-09-02 12:40:44 +0000
commit0d2fd7a12bdc1fba93f2ee1cb5b35abad877ade5 (patch)
treedd7bb323a3ceb796a00450627352949e9ff7a5f6 /crawl-ref/source/message.cc
parentb367d7d62fb29d7938f260999c634c5f11fa4cc8 (diff)
downloadcrawl-ref-0d2fd7a12bdc1fba93f2ee1cb5b35abad877ade5.tar.gz
crawl-ref-0d2fd7a12bdc1fba93f2ee1cb5b35abad877ade5.zip
Implemented patch 1773718 (improved wizard commands) and
patch 1783003 (ímproved menu sorting), both by zelgadis. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2041 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/message.cc')
-rw-r--r--crawl-ref/source/message.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/crawl-ref/source/message.cc b/crawl-ref/source/message.cc
index ef34e89355..123533f1de 100644
--- a/crawl-ref/source/message.cc
+++ b/crawl-ref/source/message.cc
@@ -431,6 +431,39 @@ void mpr(const char *inf, msg_channel_type channel, int param)
}
}
+// mpr() an arbitrarily long list of strings without truncation or risk
+// of overflow.
+void mpr_comma_separated_list(const std::string prefix,
+ const std::vector<std::string> list,
+ const std::string &andc,
+ const std::string &comma,
+ const msg_channel_type channel,
+ const int param)
+{
+ std::string out = prefix;
+ unsigned width = get_number_of_cols() - 1;
+
+ for(int i = 0, size = list.size(); i < size; i++)
+ {
+ std::string new_str = list[i];
+
+ if (size > 0 && i < (size - 2))
+ new_str += comma;
+ else if (i == (size - 2))
+ new_str += andc;
+
+ if (out.length() + new_str.length() >= width)
+ {
+ mpr(out.c_str(), channel, param);
+ out = new_str;
+ }
+ else
+ out += new_str;
+ }
+ mpr(out.c_str(), channel, param);
+}
+
+
// checks whether a given message contains patterns relevant for
// notes, stop_running or sounds and handles these cases
static void mpr_check_patterns(const std::string& message,