From 3123c278b9f7dca36d4edcafc95f40f37ec3e4eb Mon Sep 17 00:00:00 2001 From: Naios Date: Wed, 4 Nov 2015 21:20:07 +0100 Subject: Core/Game: Add a dynamic script reloader which reloads scripts modules on changes. * is responsible for registering plain modules. * requires compilation with the `WITH_DYNAMIC_LINKING` flag. * requires further support of the ScriptMgr. (cherry picked from commit bc0f2b6e5acd24f414508edb3b826a20a12bce62) --- src/server/game/Scripting/ScriptMgr.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/server/game/Scripting/ScriptMgr.cpp') diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index fbf32bd18ba..26a7809eaa9 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -263,12 +263,18 @@ void ScriptMgr::Initialize() FillSpellSummary(); + // Load core script systems + // SmartAI + BeginScriptContext("core scripts"); AddSC_SmartScripts(); + FinishScriptContext(); + // Load all static linked scripts through the script loader function. + BeginScriptContext("static scripts"); ASSERT(_script_loader_callback, "Script loader callback wasn't registered!"); - _script_loader_callback(); + FinishScriptContext(); #ifdef SCRIPTS for (std::string const& scriptName : UnusedScriptNames) @@ -280,6 +286,21 @@ void ScriptMgr::Initialize() TC_LOG_INFO("server.loading", ">> Loaded %u C++ scripts in %u ms", GetScriptCount(), GetMSTimeDiffToNow(oldMSTime)); } +void ScriptMgr::BeginScriptContext(std::string const& context) +{ + _currentContext = context; +} + +void ScriptMgr::FinishScriptContext() +{ + _currentContext.clear(); +} + +void ScriptMgr::ReleaseScriptContext(std::string const& /*context*/) +{ + // ToDo +} + void ScriptMgr::Unload() { #define SCR_CLEAR(T) \ -- cgit v1.2.3