aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Instances/InstanceScript.h
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2017-09-15 03:53:02 +0200
committerKeader <keader.android@gmail.com>2017-09-14 22:53:02 -0300
commit971ed856a49dc56ea33d9a0779b1386eea5cd3ca (patch)
treeb2b8a1f724ff44504151715df5cd530dedc132a7 /src/server/game/Instances/InstanceScript.h
parent49daef4b77baca7266e9a0ea7c916318ba6af6b0 (diff)
Core/Scripts: Implemented OnlyOnceAreaTriggerScript (#20288)
Diffstat (limited to 'src/server/game/Instances/InstanceScript.h')
-rw-r--r--src/server/game/Instances/InstanceScript.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h
index 36fea3990eb..d9802aa548b 100644
--- a/src/server/game/Instances/InstanceScript.h
+++ b/src/server/game/Instances/InstanceScript.h
@@ -253,6 +253,11 @@ class TC_GAME_API InstanceScript : public ZoneScript
uint32 GetEncounterCount() const { return bosses.size(); }
+ // Only used by areatriggers that inherit from OnlyOnceAreaTriggerScript
+ void MarkAreaTriggerDone(uint32 id) { _activatedAreaTriggers.insert(id); }
+ void ResetAreaTriggerDone(uint32 id) { _activatedAreaTriggers.erase(id); }
+ bool IsAreaTriggerDone(uint32 id) const { return _activatedAreaTriggers.find(id) != _activatedAreaTriggers.end(); }
+
protected:
void SetHeaders(std::string const& dataHeaders);
void SetBossNumber(uint32 number) { bosses.resize(number); }
@@ -300,6 +305,7 @@ class TC_GAME_API InstanceScript : public ZoneScript
ObjectGuidMap _objectGuids;
uint32 completedEncounters; // completed encounter mask, bit indexes are DungeonEncounter.dbc boss numbers, used for packets
std::vector<InstanceSpawnGroupInfo> const* const _instanceSpawnGroups;
+ std::unordered_set<uint32> _activatedAreaTriggers;
#ifdef TRINITY_API_USE_DYNAMIC_LINKING
// Strong reference to the associated script module