diff options
author | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-02 12:40:44 +0000 |
---|---|---|
committer | j-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-02 12:40:44 +0000 |
commit | 0d2fd7a12bdc1fba93f2ee1cb5b35abad877ade5 (patch) | |
tree | dd7bb323a3ceb796a00450627352949e9ff7a5f6 /crawl-ref/source/message.cc | |
parent | b367d7d62fb29d7938f260999c634c5f11fa4cc8 (diff) | |
download | crawl-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.cc | 33 |
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, |