changeset 18547:f39255f3fef9 draft

(svn r23391) -Feature: [NewGRF] Allow translating multiple languages with Action 13 in GRFv8
author rubidium <rubidium@openttd.org>
date Thu, 01 Dec 2011 19:42:51 +0000
parents 1181945e4dca
children d19acdb25577
files src/newgrf.cpp
diffstat 1 files changed, 7 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -7016,6 +7016,12 @@
 		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 @@
 			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);
 	}
 }