From 465012978f1f90a6917ba9129424d2bf749fe269 Mon Sep 17 00:00:00 2001 From: funjoker Date: Sat, 18 Nov 2017 12:40:56 +0100 Subject: Core/Scripting: Implemented Conversation scripts (#20758) --- src/server/game/Scripting/ScriptMgr.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 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 3eed0132d3c..2e7bd6b52da 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -20,6 +20,7 @@ #include "AreaTrigger.h" #include "AreaTriggerAI.h" #include "Chat.h" +#include "Conversation.h" #include "Creature.h" #include "CreatureAI.h" #include "CreatureAIImpl.h" @@ -109,6 +110,10 @@ template<> struct is_script_database_bound : std::true_type { }; +template<> +struct is_script_database_bound + : std::true_type { }; + template<> struct is_script_database_bound : std::true_type { }; @@ -328,7 +333,6 @@ class ScriptRegistrySwapHooks { }; -/// This hook is responsible for swapping OutdoorPvP's template class UnsupportedScriptRegistrySwapHooks : public ScriptRegistrySwapHookBase @@ -2410,6 +2414,15 @@ void ScriptMgr::ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& dama FOREACH_SCRIPT(PlayerScript)->ModifySpellDamageTaken(target, attacker, damage); } +// Conversation +void ScriptMgr::OnConversationCreate(Conversation* conversation, Unit* creator) +{ + ASSERT(conversation); + + GET_SCRIPT(ConversationScript, conversation->GetScriptId(), tmpscript); + tmpscript->OnConversationCreate(conversation, creator); +} + // Scene void ScriptMgr::OnSceneStart(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate) { @@ -2644,6 +2657,12 @@ AreaTriggerEntityScript::AreaTriggerEntityScript(const char* name) ScriptRegistry::Instance()->AddScript(this); } +ConversationScript::ConversationScript(char const* name) + : ScriptObject(name) +{ + ScriptRegistry::Instance()->AddScript(this); +} + // Specialize for each script type class like so: template class TC_GAME_API ScriptRegistry; template class TC_GAME_API ScriptRegistry; @@ -2672,4 +2691,5 @@ template class TC_GAME_API ScriptRegistry; template class TC_GAME_API ScriptRegistry; template class TC_GAME_API ScriptRegistry; template class TC_GAME_API ScriptRegistry; +template class TC_GAME_API ScriptRegistry; template class TC_GAME_API ScriptRegistry; -- cgit v1.2.3