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.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h
index 79925f338ce..375b75264b2 100644
--- a/src/server/game/Scripting/ScriptMgr.h
+++ b/src/server/game/Scripting/ScriptMgr.h
@@ -451,6 +451,19 @@ class TC_GAME_API AreaTriggerScript : public ScriptObject
virtual bool OnTrigger(Player* /*player*/, AreaTriggerEntry const* /*trigger*/, bool /*entered*/) { return false; }
};
+class TC_GAME_API OnlyOnceAreaTriggerScript : public AreaTriggerScript
+{
+ using AreaTriggerScript::AreaTriggerScript;
+
+ public:
+ bool OnTrigger(Player* player, AreaTriggerEntry const* trigger, bool entered) override;
+
+ protected:
+ virtual bool _OnTrigger(Player* player, AreaTriggerEntry const* trigger, bool entered) = 0;
+ void ResetAreaTriggerDone(InstanceScript* instance, uint32 triggerId);
+ void ResetAreaTriggerDone(Player const* player, AreaTriggerEntry const* trigger);
+};
+
class TC_GAME_API BattlegroundScript : public ScriptObject
{
protected: