diff options
author | Adam Borowski <kilobyte@angband.pl> | 2012-04-13 23:57:02 +0200 |
---|---|---|
committer | Adam Borowski <kilobyte@angband.pl> | 2012-04-13 23:57:02 +0200 |
commit | aeb1c60395655219ea7567b94590659a590b0559 (patch) | |
tree | 301d73e5eac8d925c7d62f9e3b63c890008bc9aa /crawl-ref/source/lang-fake.cc | |
parent | 305c49cc1502de1f8a4cb3d44f8c2ec3aad9e9a9 (diff) | |
download | crawl-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.cc | 22 |
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]); |