From d4887311e39527e036419ebd966f399fdbdae67a Mon Sep 17 00:00:00 2001 From: Traesh Date: Sun, 25 Sep 2016 16:13:12 +0200 Subject: Core/Scenes: Implemented scene system Closes #17858 Closes #17976 --- src/server/game/Scripting/ScriptMgr.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/server/game/Scripting/ScriptMgr.h') diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index a8458af987b..22d8426796e 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -69,6 +69,7 @@ struct Condition; struct ItemTemplate; struct MapEntry; struct OutdoorPvPData; +struct SceneTemplate; #define VISIBLE_RANGE 166.0f //MAX visible range (size of grid) @@ -831,6 +832,26 @@ class TC_GAME_API GroupScript : public ScriptObject virtual void OnDisband(Group* /*group*/) { } }; +class TC_GAME_API SceneScript : public ScriptObject +{ + protected: + + SceneScript(const char* name); + + public: + // Called when a player start a scene + virtual void OnSceneStart(Player* /*player*/, uint32 /*sceneInstanceID*/, SceneTemplate const* /*sceneTemplate*/) { } + + // Called when a player receive trigger from scene + virtual void OnSceneTriggerEvent(Player* /*player*/, uint32 /*sceneInstanceID*/, SceneTemplate const* /*sceneTemplate*/, std::string const& /*triggerName*/) { } + + // Called when a scene is canceled + virtual void OnSceneCancel(Player* /*player*/, uint32 /*sceneInstanceID*/, SceneTemplate const* /*sceneTemplate*/) { } + + // Called when a scene is completed + virtual void OnSceneComplete(Player* /*player*/, uint32 /*sceneInstanceID*/, SceneTemplate const* /*sceneTemplate*/) { } +}; + // Manages registration, loading, and execution of scripts. class TC_GAME_API ScriptMgr { @@ -1107,6 +1128,12 @@ class TC_GAME_API ScriptMgr void ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage); void ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage); + public: /* SceneScript */ + void OnSceneStart(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate); + void OnSceneTrigger(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate, std::string const& triggerName); + void OnSceneCancel(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate); + void OnSceneComplete(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate); + private: uint32 _scriptCount; -- cgit v1.2.3