From 0daecc28590c824de9c6c276f134d0737f678eb5 Mon Sep 17 00:00:00 2001 From: xfurry Date: Mon, 23 Mar 2015 22:03:06 +0000 Subject: [PATCH] [Core] Implement instance data call for OnCreatureDespawn. (c2602) --- src/game/Object/Creature.cpp | 3 +++ src/game/WorldHandlers/InstanceData.h | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/game/Object/Creature.cpp b/src/game/Object/Creature.cpp index 813250b6..b946b5f2 100644 --- a/src/game/Object/Creature.cpp +++ b/src/game/Object/Creature.cpp @@ -253,6 +253,9 @@ void Creature::RemoveCorpse() if (m_isCreatureLinkingTrigger) GetMap()->GetCreatureLinkingHolder()->DoCreatureLinkingEvent(LINKING_EVENT_DESPAWN, this); + if (InstanceData* mapInstance = GetInstanceData()) + { mapInstance->OnCreatureDespawn(this); } + // script can set time (in seconds) explicit, override the original if (respawnDelay) { m_respawnTime = time(NULL) + respawnDelay; } diff --git a/src/game/WorldHandlers/InstanceData.h b/src/game/WorldHandlers/InstanceData.h index 3ce494a0..575aa326 100644 --- a/src/game/WorldHandlers/InstanceData.h +++ b/src/game/WorldHandlers/InstanceData.h @@ -99,6 +99,9 @@ class InstanceData // called on creature death virtual void OnCreatureDeath(Creature* /*creature*/) {} + // called on creature despawn + virtual void OnCreatureDespawn(Creature* /*creature*/) {} + // All-purpose data storage 64 bit virtual uint64 GetData64(uint32 /*Data*/) const { return 0; } virtual void SetData64(uint32 /*Data*/, uint64 /*Value*/) { }