From eb0d43aadd6f423fa961dd81e4fdfb49ce9e92a2 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 13 Mar 2009 00:30:26 +0000 Subject: (svn r15696) -Codechange: move the NewGRF language ID into the language file instead of maintaining a table in the code. --- src/strgen/strgen.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/strgen/strgen.cpp') diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 02de3c076..0cb2d02eb 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -88,6 +88,7 @@ static char _lang_name[32], _lang_ownname[32], _lang_isocode[16]; static byte _lang_pluralform; static byte _lang_textdir; static uint16 _lang_winlangid; +static uint8 _lang_newgrflangid; #define MAX_NUM_GENDER 8 static char _genders[MAX_NUM_GENDER][16]; static uint _numgenders; @@ -663,12 +664,19 @@ static void HandlePragma(char *str) error("Invalid textdir %s", str + 8); } } else if (!memcmp(str, "winlangid ", 10)) { - char *buf = str + 10; + const char *buf = str + 10; long langid = strtol(buf, NULL, 16); if (langid > UINT16_MAX || langid < 0) { error("Invalid winlangid %s", buf); } _lang_winlangid = (uint16)langid; + } else if (!memcmp(str, "grflangid ", 10)) { + const char *buf = str + 10; + long langid = strtol(buf, NULL, 16); + if (langid >= 0x7F || langid < 0) { + error("Invalid grflangid %s", buf); + } + _lang_newgrflangid = (uint8)langid; } else if (!memcmp(str, "gender ", 7)) { char *buf = str + 7; @@ -933,6 +941,7 @@ static void ParseFile(const char *file, bool english) _lang_name[0] = _lang_ownname[0] = _lang_isocode[0] = '\0'; _lang_textdir = TD_LTR; _lang_winlangid = 0x0000; // neutral language code + _lang_newgrflangid = 0; // standard english // TODO:!! We can't reset the cases. In case the translated strings // derive some strings from english.... @@ -1183,6 +1192,7 @@ static void WriteLangfile(const char *filename) hdr.plural_form = _lang_pluralform; hdr.text_dir = _lang_textdir; hdr.winlangid = TO_LE16(_lang_winlangid); + hdr.newgrflangid = _lang_newgrflangid; strcpy(hdr.name, _lang_name); strcpy(hdr.own_name, _lang_ownname); strcpy(hdr.isocode, _lang_isocode); -- cgit v1.2.3-70-g09d2