#pragma once #include "plugin/PluginContainer.h" #include #include #include #include #include class PluginManagement { public: static std::vector> loadPlugins(const std::forward_list> &pluginList, relocation_trampoline_entry_t *trampoline_data, uint32_t trampoline_data_length); static void callInitHooks(const std::vector> &plugins); static bool doRelocations(const std::vector> &plugins, relocation_trampoline_entry_t *trampData, uint32_t tramp_size, std::map &usedRPls); static bool doRelocation(const std::vector> &relocData, relocation_trampoline_entry_t *tramp_data, uint32_t tramp_length, uint32_t trampolineID, std::map &usedRPls); static bool DoFunctionPatches(const std::vector> &plugins); static bool RestoreFunctionPatches(const std::vector> &plugins); };