From c2946191028333b29ea9543df94b20df30ca1999 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Fri, 21 Jul 2023 20:25:56 +0200 Subject: [PATCH] impr: Make script loaders be initialized synchronously --- .../source/loaders/dotnet/dotnet_loader.cpp | 2 +- .../source/plugin_script_loader.cpp | 23 ++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/plugins/script_loader/source/loaders/dotnet/dotnet_loader.cpp b/plugins/script_loader/source/loaders/dotnet/dotnet_loader.cpp index c18e13f6f..f8573b64e 100644 --- a/plugins/script_loader/source/loaders/dotnet/dotnet_loader.cpp +++ b/plugins/script_loader/source/loaders/dotnet/dotnet_loader.cpp @@ -121,7 +121,7 @@ namespace hex::script::loader { result = hostfxr_get_runtime_delegate( ctx, - hdt_load_assembly_and_get_function_pointer, + hostfxr_delegate_type::hdt_load_assembly_and_get_function_pointer, (void**)&loadAssemblyFunction ); diff --git a/plugins/script_loader/source/plugin_script_loader.cpp b/plugins/script_loader/source/plugin_script_loader.cpp index 63bb51b58..6d075b502 100644 --- a/plugins/script_loader/source/plugin_script_loader.cpp +++ b/plugins/script_loader/source/plugin_script_loader.cpp @@ -68,14 +68,7 @@ namespace { return count > 0; } -} - -IMHEX_PLUGIN_SETUP("Script Loader", "WerWolv", "Script Loader plugin") { - hex::log::debug("Using romfs: '{}'", romfs::name()); - for (auto &path : romfs::list("lang")) - hex::ContentRegistry::Language::addLocalization(nlohmann::json::parse(romfs::get(path).string())); - - if (initializeAllLoaders()) { + void addScriptsMenu() { static TaskHolder runnerTask, updaterTask; hex::ContentRegistry::Interface::addMenuItemSubMenu({ "hex.builtin.menu.extras" }, 5000, [] { static bool menuJustOpened = true; @@ -115,4 +108,18 @@ IMHEX_PLUGIN_SETUP("Script Loader", "WerWolv", "Script Loader plugin") { return !runnerTask.isRunning(); }); } + +} + +IMHEX_PLUGIN_SETUP("Script Loader", "WerWolv", "Script Loader plugin") { + hex::log::debug("Using romfs: '{}'", romfs::name()); + for (auto &path : romfs::list("lang")) + hex::ContentRegistry::Language::addLocalization(nlohmann::json::parse(romfs::get(path).string())); + + TaskManager::doLater([] { + if (initializeAllLoaders()) { + addScriptsMenu(); + } + }); + }