diff options
-rw-r--r-- | src/strgen/strgen.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index c216940c3..bcb44f4fe 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -928,9 +928,17 @@ static void WriteStringsH(const char *filename) fprintf(_output_file, "\nstatic const StringID STR_LAST_STRINGID = 0x%X;\n\n", next - 1); + /* Find the plural form with the most amount of cases. */ + int max_plural_forms = 0; + for (uint i = 0; i < lengthof(_plural_forms); i++) { + max_plural_forms = max(max_plural_forms, _plural_forms[i].plural_count); + } + fprintf(_output_file, - "static const uint LANGUAGE_PACK_VERSION = 0x%X;\n" - "static const uint LANGUAGE_MAX_PLURAL = %d;\n\n", (uint)_hash, (uint)lengthof(_plural_forms) + "static const uint LANGUAGE_PACK_VERSION = 0x%X;\n" + "static const uint LANGUAGE_MAX_PLURAL = %d;\n" + "static const uint LANGUAGE_MAX_PLURAL_FORMS = %d;\n\n", + (uint)_hash, (uint)lengthof(_plural_forms), max_plural_forms ); fprintf(_output_file, "#endif /* TABLE_STRINGS_H */\n"); |