Core/Scripts: Implemented OnlyOnceAreaTriggerScript (#20288)

(cherry picked from commit 971ed856a4)
This commit is contained in:
Treeston
2017-09-15 03:53:02 +02:00
committed by Shauren
parent 77d13a7b97
commit fe938b99f8
26 changed files with 210 additions and 165 deletions

View File

@@ -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: