summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/language.h1
-rw-r--r--src/strings.cpp14
2 files changed, 8 insertions, 7 deletions
diff --git a/src/language.h b/src/language.h
index a8de8c0f7..5ba424c66 100644
--- a/src/language.h
+++ b/src/language.h
@@ -103,5 +103,6 @@ extern LanguageList _languages;
extern const LanguageMetadata *_current_language;
bool ReadLanguagePack(const LanguageMetadata *lang);
+const LanguageMetadata *GetLanguage(byte newgrflangid);
#endif /* LANGUAGE_H */
diff --git a/src/strings.cpp b/src/strings.cpp
index a51fb84d4..8cb362a1f 100644
--- a/src/strings.cpp
+++ b/src/strings.cpp
@@ -1443,17 +1443,17 @@ int CDECL StringIDSorter(const StringID *a, const StringID *b)
}
/**
- * Checks whether the given language is already found.
- * @param newgrflangid NewGRF languages ID to check
- * @return true if and only if a language file with the same language ID has not been found
+ * Get the language with the given NewGRF language ID.
+ * @param newgrflangid NewGRF languages ID to check.
+ * @return The language's metadata, or NULL if it is not known.
*/
-static bool UniqueLanguageFile(byte newgrflangid)
+const LanguageMetadata *GetLanguage(byte newgrflangid)
{
for (const LanguageMetadata *lang = _languages.Begin(); lang != _languages.End(); lang++) {
- if (newgrflangid == lang->newgrflangid) return false;
+ if (newgrflangid == lang->newgrflangid) return lang;
}
- return true;
+ return NULL;
}
/**
@@ -1499,7 +1499,7 @@ static void GetLanguageList(const char *path)
/* Check whether the file is of the correct version */
if (!GetLanguageFileHeader(lmd.file, &lmd)) {
DEBUG(misc, 3, "%s is not a valid language file", lmd.file);
- } else if (!UniqueLanguageFile(lmd.newgrflangid)) {
+ } else if (GetLanguage(lmd.newgrflangid) != NULL) {
DEBUG(misc, 3, "%s's language ID is already known", lmd.file);
} else {
*_languages.Append() = lmd;