--- a/src/newgrf_text.cpp Wed Jun 13 12:05:56 2007 +0000
+++ b/src/newgrf_text.cpp Tue Jun 19 07:21:01 2007 +0000
@@ -438,13 +438,27 @@
for (i=0; i < lengthof(iso_codes); i++) {
if (strncmp(iso_codes[i].code, iso_name, strlen(iso_codes[i].code)) == 0) {
/* We found a match, so let's use it. */
- ret = i;
+ ret = iso_codes[i].grfLangID;
break;
}
}
_currentLangID = ret;
}
+bool CheckGrfLangID(byte lang_id, byte grf_version)
+{
+ if (grf_version < 7) {
+ switch (_currentLangID) {
+ case GRFLX_GERMAN: return (lang_id & GRFLB_GERMAN) != 0;
+ case GRFLX_FRENCH: return (lang_id & GRFLB_FRENCH) != 0;
+ case GRFLX_SPANISH: return (lang_id & GRFLB_SPANISH) != 0;
+ default: return (lang_id & (GRFLB_ENGLISH | GRFLB_AMERICAN)) != 0;
+ }
+ }
+
+ return (lang_id == _currentLangID || lang_id == GRFLX_UNSPECIFIED);
+}
+
/**
* House cleaning.
* Remove all strings and reset the text counter.