From 42c92be121d406e70a0431ab0dacc7f6934ee9a5 Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 1 Dec 2011 19:42:51 +0000 Subject: (svn r23391) -Feature: [NewGRF] Allow translating multiple languages with Action 13 in GRFv8 --- src/newgrf.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 2d9006345..5a2175737 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -7016,6 +7016,12 @@ static void TranslateGRFStrings(ByteReader *buf) return; } + /* Since no language id is supplied for with version 7 and lower NewGRFs, this string has + * to be added as a generic string, thus the language id of 0x7F. For this to work + * new_scheme has to be true as well, which will also be implicitly the case for version 8 + * and higher. A language id of 0x7F will be overridden by a non-generic id, so this will + * not change anything if a string has been provided specifically for this language. */ + byte language = _cur.grffile->grf_version >= 8 ? buf->ReadByte() : 0x7F; byte num_strings = buf->ReadByte(); uint16 first_id = buf->ReadWord(); @@ -7032,12 +7038,7 @@ static void TranslateGRFStrings(ByteReader *buf) continue; } - /* Since no language id is supplied this string has to be added as a - * generic string, thus the language id of 0x7F. For this to work - * new_scheme has to be true as well. A language id of 0x7F will be - * overridden by a non-generic id, so this will not change anything if - * a string has been provided specifically for this language. */ - AddGRFString(grfid, first_id + i, 0x7F, true, true, string, STR_UNDEFINED); + AddGRFString(grfid, first_id + i, language, true, true, string, STR_UNDEFINED); } } -- cgit v1.2.3-70-g09d2