From d460c3863e47728057e18ba21c04bbdd1c7a9ca6 Mon Sep 17 00:00:00 2001
From: erorcun <erorcunerorcun@hotmail.com.tr>
Date: Mon, 8 Feb 2021 18:21:00 +0300
Subject: [PATCH] Also check font textures for new languages

---
 src/core/re3.cpp | 29 ++++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/src/core/re3.cpp b/src/core/re3.cpp
index 720aeb46..3584e226 100644
--- a/src/core/re3.cpp
+++ b/src/core/re3.cpp
@@ -120,9 +120,9 @@ void LangJapSelect(int8 action)
 void
 CustomFrontendOptionsPopulate(void)
 {
-	// Moved to an array in MenuScreensCustom.cpp, but APIs are still available. see frontendoption.h
+	// Most of custom options are done statically in MenuScreensCustom.cpp, we add them here only if they're dependent to extra files
 
-	// These work only if we have neo folder, so they're dynamically added
+	// These work only if we have neo folder
 	int fd;
 #ifdef EXTENDED_PIPELINES
 	const char *vehPipelineNames[] = { "FED_MFX", "FED_NEO" };
@@ -148,22 +148,29 @@ CustomFrontendOptionsPopulate(void)
 
 	// Add outsourced language translations, if files are found
 #ifdef MORE_LANGUAGES
+	int fd2;
 	FrontendOptionSetCursor(MENUPAGE_LANGUAGE_SETTINGS, 5, false);
-	fd = CFileMgr::OpenFile("text/polish.gxt","r");
-	if (fd) {
-		FrontendOptionAddDynamic("FEL_POL", nil, nil, LangPolSelect, nil, nil);
+	if (fd = CFileMgr::OpenFile("text/polish.gxt","r")) {
+		if (fd2 = CFileMgr::OpenFile("models/fonts_p.txd","r")) {
+			FrontendOptionAddDynamic("FEL_POL", nil, nil, LangPolSelect, nil, nil);
+			CFileMgr::CloseFile(fd2);
+		}
 		CFileMgr::CloseFile(fd);
 	}
 
-	fd = CFileMgr::OpenFile("text/russian.gxt","r");
-	if (fd) {
-		FrontendOptionAddDynamic("FEL_RUS", nil, nil, LangRusSelect, nil, nil);
+	if (fd = CFileMgr::OpenFile("text/russian.gxt","r")) {
+		if (fd2 = CFileMgr::OpenFile("models/fonts_r.txd","r")) {
+			FrontendOptionAddDynamic("FEL_RUS", nil, nil, LangRusSelect, nil, nil);
+			CFileMgr::CloseFile(fd2);
+		}
 		CFileMgr::CloseFile(fd);
 	}
 
-	fd = CFileMgr::OpenFile("text/japanese.gxt","r");
-	if (fd) {
-		FrontendOptionAddDynamic("FEL_JAP", nil, nil, LangJapSelect, nil, nil);
+	if (fd = CFileMgr::OpenFile("text/japanese.gxt","r")) {
+		if (fd2 = CFileMgr::OpenFile("models/fonts_j.txd","r")) {
+			FrontendOptionAddDynamic("FEL_JAP", nil, nil, LangJapSelect, nil, nil);
+			CFileMgr::CloseFile(fd2);
+		}
 		CFileMgr::CloseFile(fd);
 	}
 #endif