From 41d41df3a56745a99a766edadcdcce1dc91796d8 Mon Sep 17 00:00:00 2001 From: Ted John Date: Wed, 13 May 2020 23:35:58 +0100 Subject: [PATCH] Add ability to get current language --- src/openrct2/scripting/ScConfiguration.hpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/openrct2/scripting/ScConfiguration.hpp b/src/openrct2/scripting/ScConfiguration.hpp index 4dc295a65c..8443cf182a 100644 --- a/src/openrct2/scripting/ScConfiguration.hpp +++ b/src/openrct2/scripting/ScConfiguration.hpp @@ -13,6 +13,7 @@ # include "../Context.h" # include "../config/Config.h" +# include "../localisation/LocalisationService.h" # include "Duktape.hpp" # include "ScriptEngine.h" @@ -138,6 +139,7 @@ namespace OpenRCT2::Scripting DukObject obj(ctx); if (ns == "general") { + obj.Set("general.language", gConfigGeneral.language); obj.Set("general.showFps", gConfigGeneral.show_fps); } result = obj.Take(); @@ -160,7 +162,19 @@ namespace OpenRCT2::Scripting auto ctx = GetContext()->GetScriptEngine().GetContext(); if (_isUserConfig) { - if (key == "general.showFps") + if (key == "general.language") + { + auto& localisationService = GetContext()->GetLocalisationService(); + auto language = localisationService.GetCurrentLanguage(); + auto locale = ""; + if (language >= 0 && static_cast(language) < std::size(LanguagesDescriptors)) + { + locale = LanguagesDescriptors[language].locale; + } + duk_push_string(ctx, locale); + return DukValue::take_from_stack(ctx); + } + else if (key == "general.showFps") { duk_push_boolean(ctx, gConfigGeneral.show_fps); return DukValue::take_from_stack(ctx);