summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/format.cc
diff options
context:
space:
mode:
authorennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-10-25 17:47:37 +0000
committerennewalker <ennewalker@c06c8d41-db1a-0410-9941-cceddc491573>2008-10-25 17:47:37 +0000
commit7db47d41a1e8c783f0cf9aba41b835cc9950fc96 (patch)
tree1fe47a2e3e92ee58a1a49d116202192f8bfd5b6e /crawl-ref/source/format.cc
parentb94b86b02e55c4d458a16cd95f32c943eadff57c (diff)
downloadcrawl-ref-7db47d41a1e8c783f0cf9aba41b835cc9950fc96.tar.gz
crawl-ref-7db47d41a1e8c783f0cf9aba41b835cc9950fc96.zip
More graphical menu improvements. Inventory menus now have columns. Long entries are now wrapped and then truncated.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7296 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/format.cc')
-rw-r--r--crawl-ref/source/format.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/crawl-ref/source/format.cc b/crawl-ref/source/format.cc
index 9cd282e058..cf884f8220 100644
--- a/crawl-ref/source/format.cc
+++ b/crawl-ref/source/format.cc
@@ -329,6 +329,27 @@ inline void cap(int &i, int max)
i = 0;
}
+char &formatted_string::operator [] (size_t idx)
+{
+ size_t rel_idx = idx;
+ int size = ops.size();
+ for (int i = 0; i < size; ++i)
+ {
+ if (ops[i] != FSOP_TEXT)
+ continue;
+
+ size_t len = ops[i].text.length();
+ if (rel_idx >= len)
+ rel_idx -= len;
+ else
+ return ops[i].text[rel_idx];
+ }
+ ASSERT(!"Invalid index");
+ char *invalid = NULL;
+ return *invalid;
+}
+
+
std::string formatted_string::tostring(int s, int e) const
{
std::string st;