diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index e950e5e99b..6d6d1626c2 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -946,7 +946,6 @@ static void WriteStringsH(const char *filename) fprintf(_output_file, "\nstatic const StringID STR_LAST_STRINGID = 0x%X;\n\n", next - 1); fprintf(_output_file, - "static const uint LANGUAGE_PACK_IDENT = 0x474E414C; // Big Endian value for 'LANG' (LE is 0x 4C 41 4E 47)\n" "static const uint LANGUAGE_PACK_VERSION = 0x%X;\n\n", (uint)_hash ); @@ -1069,8 +1068,7 @@ static void WriteLangfile(const char *filename) _lang.offsets[i] = TO_LE16(n); } - /* see line 655: fprintf(..."\tLANGUAGE_PACK_IDENT = 0x474E414C,...) */ - _lang.ident = TO_LE32(0x474E414C); // Big Endian value for 'LANG' + _lang.ident = TO_LE32(LanguagePackHeader::IDENT); _lang.version = TO_LE32(_hash); _lang.winlangid = TO_LE16(_lang.winlangid); diff --git a/src/strgen/strgen.h b/src/strgen/strgen.h index 40c5f2031a..ecaeb05ff2 100644 --- a/src/strgen/strgen.h +++ b/src/strgen/strgen.h @@ -14,6 +14,8 @@ /** Header of a language file. */ struct LanguagePackHeader { + static const uint32 IDENT = 0x474E414C; ///< Identifier for OpenTTD language files, big endian for "LANG" + uint32 ident; ///< 32-bits identifier uint32 version; ///< 32-bits of auto generated version info which is basically a hash of strings.h char name[32]; ///< the international name of this language diff --git a/src/strings.cpp b/src/strings.cpp index 912acfe652..5b318f20cf 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -1314,7 +1314,7 @@ bool ReadLanguagePack(int lang_index) /* We need at least one byte of lang_pack->data */ if (end <= lang_pack->data || - lang_pack->ident != TO_LE32(LANGUAGE_PACK_IDENT) || + lang_pack->ident != TO_LE32(LanguagePackHeader::IDENT) || lang_pack->version != TO_LE32(LANGUAGE_PACK_VERSION)) { free(lang_pack); return false; @@ -1453,7 +1453,7 @@ static bool GetLanguageFileHeader(const char *file, LanguagePack *hdr) fclose(f); bool ret = read == 1 && - hdr->ident == TO_LE32(LANGUAGE_PACK_IDENT) && + hdr->ident == TO_LE32(LanguagePackHeader::IDENT) && hdr->version == TO_LE32(LANGUAGE_PACK_VERSION); /* Convert endianness for the windows language ID */