diff options
author | Naios <naios-dev@live.de> | 2015-11-04 21:20:07 +0100 |
---|---|---|
committer | Naios <naios-dev@live.de> | 2016-04-11 21:13:59 +0200 |
commit | bc0f2b6e5acd24f414508edb3b826a20a12bce62 (patch) | |
tree | 7ffe1acf1f0eaf8bc272d4f7691d68946811fcee /src/server/game/Scripting/ScriptMgr.cpp | |
parent | 848b8a4136a4b395bfab74899520c74812d7f08e (diff) |
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.
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.cpp')
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 7b3dc3085e3..0f378a6545d 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) \ |