aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Instances/InstanceScript.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-04-24 13:58:18 +0200
committerShauren <shauren.trinity@gmail.com>2022-04-24 13:58:18 +0200
commit1c62b0b90f879e5df6c6785c12e9a5bddd65cb48 (patch)
tree685fae412c39a62e7c789e05329637afda19e4be /src/server/game/Instances/InstanceScript.cpp
parente1abd8256be38c299156264424999c0108613198 (diff)
Scripts/Instances: Replace manual criteria timer starts in instances with new GameEvents api
Diffstat (limited to 'src/server/game/Instances/InstanceScript.cpp')
-rw-r--r--src/server/game/Instances/InstanceScript.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index 918a9561634..64fda3b3c81 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -21,6 +21,7 @@
#include "CreatureAI.h"
#include "CreatureAIImpl.h"
#include "DatabaseEnv.h"
+#include "GameEventSender.h"
#include "GameObject.h"
#include "Group.h"
#include "InstancePackets.h"
@@ -129,6 +130,23 @@ ObjectGuid InstanceScript::GetGuidData(uint32 type) const
return GetObjectGuid(type);
}
+void InstanceScript::TriggerGameEvent(uint32 gameEventId, WorldObject* source /*= nullptr*/, WorldObject* target /*= nullptr*/)
+{
+ if (source)
+ {
+ ZoneScript::TriggerGameEvent(gameEventId, source, target);
+ return;
+ }
+
+ ProcessEvent(target, gameEventId, source);
+ instance->DoOnPlayers([gameEventId](Player* player)
+ {
+ GameEvents::TriggerForPlayer(gameEventId, player);
+ });
+
+ GameEvents::TriggerForMap(gameEventId, instance);
+}
+
Creature* InstanceScript::GetCreature(uint32 type)
{
return instance->GetCreature(GetObjectGuid(type));
@@ -622,15 +640,6 @@ void InstanceScript::DoUpdateCriteria(CriteriaType type, uint32 miscValue1 /*= 0
});
}
-// Start timed achievement for all players in instance
-void InstanceScript::DoStartCriteriaTimer(CriteriaStartEvent startEvent, uint32 entry)
-{
- instance->DoOnPlayers([startEvent, entry](Player* player)
- {
- player->StartCriteriaTimer(startEvent, entry);
- });
-}
-
void InstanceScript::DoRemoveAurasDueToSpellOnPlayers(uint32 spell, bool includePets /*= false*/, bool includeControlled /*= false*/)
{
instance->DoOnPlayers([this, spell, includePets, includeControlled](Player* player)