From bc701dd8e092a6a079061f7ed158bb4096202d4d Mon Sep 17 00:00:00 2001
From: DarkGod <darkgod@net-core.org>
Date: Tue, 17 Mar 2020 15:42:23 +0100
Subject: [PATCH] force font package

---
 game/engines/default/engine/FontPackage.lua | 11 +++++++++++
 game/engines/default/engine/I18N.lua        |  5 ++++-
 game/engines/default/engine/Module.lua      |  5 ++---
 game/engines/default/engine/init.lua        |  1 -
 4 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/game/engines/default/engine/FontPackage.lua b/game/engines/default/engine/FontPackage.lua
index 542b7c9186..52f842d797 100644
--- a/game/engines/default/engine/FontPackage.lua
+++ b/game/engines/default/engine/FontPackage.lua
@@ -48,13 +48,24 @@ end
 
 --- Default font id, "default"
 local cur_id = "default"
+
+--- Forced id, usuly only needed by some translations
+local forced_id = nil
+
 --- Set default font to use
 -- @string id if it can't find it, then the font will be "basic"
 function _M:setDefaultId(id)
+	if forced_id then id = forced_id end
 	if not packages[id] then id = "basic" end
 	cur_id = id
 end
 
+--- Force all fonts to use this package, no matter what is actually requested
+function _M:forceId(id)
+	cur_id = id
+	forced_id = id
+end
+
 --- Resolves a font
 -- @string name
 -- @string orname
diff --git a/game/engines/default/engine/I18N.lua b/game/engines/default/engine/I18N.lua
index 2e3792bb3d..19d4052151 100644
--- a/game/engines/default/engine/I18N.lua
+++ b/game/engines/default/engine/I18N.lua
@@ -97,6 +97,10 @@ function _M:loadLocale(file)
 		setFlag = function(flag, data) 
 			self.setFlag(lc, flag, data)
 		end,
+		forceFontPackage = function(id)
+			local FontPackage = require "engine.FontPackage"
+			FontPackage:forceId(id)
+		end,
 	}, {__index=getfenv(2)})
 	local f, err = util.loadfilemods(file, env)
 	if not f and err then error(err) end
@@ -151,7 +155,6 @@ function _M.setFlag(lc, flag, data)
 	end
 end
 
-
 function _M:test()
 	self:loadLocale("/data/locales/fr_FR.lua")
 	self:setLocale("fr_FR")
diff --git a/game/engines/default/engine/Module.lua b/game/engines/default/engine/Module.lua
index 2067360b6a..0e3cbf2af9 100644
--- a/game/engines/default/engine/Module.lua
+++ b/game/engines/default/engine/Module.lua
@@ -945,9 +945,8 @@ function _M:instanciate(mod, name, new_game, no_reboot, extra_module_info)
 		I18N:loadLocale("/data/i18n/"..locale..".lua")
 	end
 	
-	-- I18N:loadLocale("/data/locales/zh_hans.lua")
-	-- I18N:setLocale("zh_hans")
-	-- config.settings.tome.fonts = {type="chinese", size="big"}
+	I18N:loadLocale("/data/locales/zh_hans.lua")
+	I18N:setLocale("zh_hans")
 
 	-- Load font packages
 	FontPackage:loadDefinition("/data/font/packages/default.lua")
diff --git a/game/engines/default/engine/init.lua b/game/engines/default/engine/init.lua
index d330e0cb4c..f2399cef30 100644
--- a/game/engines/default/engine/init.lua
+++ b/game/engines/default/engine/init.lua
@@ -127,7 +127,6 @@ end
 
 -- I18N:loadLocale("/data/locales/zh_hans.lua")
 -- I18N:setLocale("zh_hans")
--- config.settings.tome.fonts = {type="chinese", size="big"} 
 
 
 -- Default resolution as big as possible
-- 
GitLab