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:42:16 +0200 |
commit | 3123c278b9f7dca36d4edcafc95f40f37ec3e4eb (patch) | |
tree | 3d77e4e7c42510bd20c2f2b34edacb4129361e04 /src/server/game/Scripting/ScriptMgr.cpp | |
parent | 8660f90bdfaeb33afd9bf63988b30d7783a527cc (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.
(cherry picked from commit bc0f2b6e5acd24f414508edb3b826a20a12bce62)
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 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) \ |