summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/lang-fake.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2012-04-13 23:57:02 +0200
committerAdam Borowski <kilobyte@angband.pl>2012-04-13 23:57:02 +0200
commitaeb1c60395655219ea7567b94590659a590b0559 (patch)
tree301d73e5eac8d925c7d62f9e3b63c890008bc9aa /crawl-ref/source/lang-fake.cc
parent305c49cc1502de1f8a4cb3d44f8c2ec3aad9e9a9 (diff)
downloadcrawl-ref-aeb1c60395655219ea7567b94590659a590b0559.tar.gz
crawl-ref-aeb1c60395655219ea7567b94590659a590b0559.zip
Use enums rather than string comparison for fake languages.
It was good enough for a single day throw away joke. Also, don't store a copy of the language for every db object.
Diffstat (limited to 'crawl-ref/source/lang-fake.cc')
-rw-r--r--crawl-ref/source/lang-fake.cc22
1 files changed, 13 insertions, 9 deletions
diff --git a/crawl-ref/source/lang-fake.cc b/crawl-ref/source/lang-fake.cc
index a06012aac9..2a57d8bc05 100644
--- a/crawl-ref/source/lang-fake.cc
+++ b/crawl-ref/source/lang-fake.cc
@@ -352,23 +352,27 @@ static void _wide(std::string &txt)
void filter_lang(std::string &str)
{
- if (!Options.lang)
- return;
-
const char* (*repl)[4];
- if (!strcmp(Options.lang, "dwarven"))
+ switch (Options.lang)
+ {
+ case LANG_DWARVEN:
repl = dwarven;
- else if (!strcmp(Options.lang, "jägerkin"))
+ break;
+ case LANG_JAGERKIN:
repl = jager;
- else if (!strcmp(Options.lang, "lisp"))
+ break;
+ case LANG_LISP:
repl = lisp;
- else if (!strcmp(Options.lang, "de"))
+ break;
+ case LANG_DE:
_german(str), repl = german;
- else if (!strcmp(Options.lang, "wide"))
+ break;
+ case LANG_WIDE:
return _wide(str);
- else
+ default:
return;
+ }
for (; **repl; repl++)
_replace_cap_variants(str, (*repl)[0], (*repl)[1], (*repl)[2], (*repl)[3]);