aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Scripting/ScriptMgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.h')
-rw-r--r--src/server/game/Scripting/ScriptMgr.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index 6c0b660fb0b..76a5f663f82 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -28,6 +28,7 @@
#include "Weather.h"
class AccountMgr;
+class AreaTrigger;
class AuctionHouseObject;
class Aura;
class AuraScript;
@@ -836,6 +837,38 @@ class TC_GAME_API GroupScript : public ScriptObject
virtual void OnDisband(Group* /*group*/) { }
};
+class TC_GAME_API AreaTriggerEntityScript : public ScriptObject
+{
+ protected:
+
+ AreaTriggerEntityScript(const char* name);
+
+ public:
+ // Called when the AreaTrigger has just been initialized, just before added to map
+ virtual void OnInitialize(AreaTrigger* /*areaTrigger*/) { }
+
+ // Called when the AreaTrigger has just been created
+ virtual void OnCreate(AreaTrigger* /*areaTrigger*/) { }
+
+ // Called on each AreaTrigger update
+ virtual void OnUpdate(AreaTrigger* /*areaTrigger*/, uint32 /*diff*/) { }
+
+ // Called when the AreaTrigger reach splineIndex
+ virtual void OnSplineIndexReached(AreaTrigger* /*areaTrigger*/, int /*splineIndex*/) { }
+
+ // Called when the AreaTrigger reach its destination
+ virtual void OnDestinationReached(AreaTrigger* /*areaTrigger*/) { }
+
+ // Called when an unit enter the AreaTrigger
+ virtual void OnUnitEnter(AreaTrigger* /*areaTrigger*/, Unit* /*unit*/) { }
+
+ // Called when an unit exit the AreaTrigger, or when the AreaTrigger is removed
+ virtual void OnUnitExit(AreaTrigger* /*areaTrigger*/, Unit* /*unit*/) { }
+
+ // Called when the AreaTrigger is removed
+ virtual void OnRemove(AreaTrigger* /*areaTrigger*/) { }
+};
+
class TC_GAME_API SceneScript : public ScriptObject
{
protected:
@@ -1133,6 +1166,17 @@ class TC_GAME_API ScriptMgr
void ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage);
void ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage);
+ public: /* AreaTriggerEntityScript */
+
+ void OnAreaTriggerEntityInitialize(AreaTrigger* areaTrigger);
+ void OnAreaTriggerEntityCreate(AreaTrigger* areaTrigger);
+ void OnAreaTriggerEntityUpdate(AreaTrigger* areaTrigger, uint32 diff);
+ void OnAreaTriggerEntitySplineIndexReached(AreaTrigger* areaTrigger, int splineIndex);
+ void OnAreaTriggerEntityDestinationReached(AreaTrigger* areaTrigger);
+ void OnAreaTriggerEntityUnitEnter(AreaTrigger* areaTrigger, Unit* unit);
+ void OnAreaTriggerEntityUnitExit(AreaTrigger* areaTrigger, Unit* unit);
+ void OnAreaTriggerEntityRemove(AreaTrigger* areaTrigger);
+
public: /* SceneScript */
void OnSceneStart(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate);
void OnSceneTrigger(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate, std::string const& triggerName);