aboutsummaryrefslogtreecommitdiff
path: root/extension/src/openvic-extension/singletons
diff options
context:
space:
mode:
Diffstat (limited to 'extension/src/openvic-extension/singletons')
-rw-r--r--extension/src/openvic-extension/singletons/GameSingleton.cpp5
-rw-r--r--extension/src/openvic-extension/singletons/LoadLocalisation.cpp1
-rw-r--r--extension/src/openvic-extension/singletons/LoadLocalisation.hpp4
3 files changed, 7 insertions, 3 deletions
diff --git a/extension/src/openvic-extension/singletons/GameSingleton.cpp b/extension/src/openvic-extension/singletons/GameSingleton.cpp
index db3dd3f..4a80eb9 100644
--- a/extension/src/openvic-extension/singletons/GameSingleton.cpp
+++ b/extension/src/openvic-extension/singletons/GameSingleton.cpp
@@ -1,5 +1,7 @@
#include "GameSingleton.hpp"
+#include <functional>
+
#include <godot_cpp/core/class_db.hpp>
#include <godot_cpp/core/error_macros.hpp>
#include <godot_cpp/variant/utility_functions.hpp>
@@ -553,7 +555,8 @@ Error GameSingleton::load_defines_compatibility_mode(PackedStringArray const& fi
UtilityFunctions::push_error("Failed to hardcoded defines!");
err = FAILED;
}
- if (!dataloader.load_localisation_files(LoadLocalisation::add_message)) {
+ auto add_message = std::bind_front(&LoadLocalisation::add_message, LoadLocalisation::get_singleton());
+ if (!dataloader.load_localisation_files(add_message)) {
UtilityFunctions::push_error("Failed to load localisation!");
err = FAILED;
}
diff --git a/extension/src/openvic-extension/singletons/LoadLocalisation.cpp b/extension/src/openvic-extension/singletons/LoadLocalisation.cpp
index 96c67e8..3da8bc8 100644
--- a/extension/src/openvic-extension/singletons/LoadLocalisation.cpp
+++ b/extension/src/openvic-extension/singletons/LoadLocalisation.cpp
@@ -135,7 +135,6 @@ Error LoadLocalisation::load_localisation_dir(String const& dir_path) const {
return err;
}
bool LoadLocalisation::add_message(std::string_view key, Dataloader::locale_t locale, std::string_view localisation) {
- static Ref<Translation> translations[Dataloader::_LocaleCount] = { nullptr };
Ref<Translation>& translation = translations[locale];
if (translation.is_null()) {
translation = _singleton->_get_translation(Dataloader::locale_names[locale]);
diff --git a/extension/src/openvic-extension/singletons/LoadLocalisation.hpp b/extension/src/openvic-extension/singletons/LoadLocalisation.hpp
index b093fdf..aeee076 100644
--- a/extension/src/openvic-extension/singletons/LoadLocalisation.hpp
+++ b/extension/src/openvic-extension/singletons/LoadLocalisation.hpp
@@ -10,6 +10,8 @@ namespace OpenVic {
static inline LoadLocalisation* _singleton = nullptr;
+ godot::Ref<godot::Translation> translations[Dataloader::_LocaleCount];
+
godot::Error _load_file(godot::String const& file_path, godot::Ref<godot::Translation> translation) const;
godot::Ref<godot::Translation> _get_translation(godot::String const& locale) const;
@@ -26,6 +28,6 @@ namespace OpenVic {
godot::Error load_locale_dir(godot::String const& dir_path, godot::String const& locale) const;
godot::Error load_localisation_dir(godot::String const& dir_path) const;
- static bool add_message(std::string_view key, Dataloader::locale_t locale, std::string_view localisation);
+ bool add_message(std::string_view key, Dataloader::locale_t locale, std::string_view localisation);
};
}