From f8afcec9f3efc58ce8a38a6c63e2ebfc24d2e01d Mon Sep 17 00:00:00 2001 From: Treeston Date: Wed, 30 Dec 2020 21:08:22 +0100 Subject: Core/Maps: move pooling hand-off outside of Map::CheckRespawn (PR#25785) fixes #25777 --- src/server/game/Pools/PoolMgr.cpp | 15 +++++++++++++++ src/server/game/Pools/PoolMgr.h | 1 + 2 files changed, 16 insertions(+) (limited to 'src/server/game/Pools') diff --git a/src/server/game/Pools/PoolMgr.cpp b/src/server/game/Pools/PoolMgr.cpp index 3f427526dcf..e685c1f1b15 100644 --- a/src/server/game/Pools/PoolMgr.cpp +++ b/src/server/game/Pools/PoolMgr.cpp @@ -845,3 +845,18 @@ void PoolMgr::UpdatePool(uint32 pool_id, uint32 db_guid_or_pool_id) template void PoolMgr::UpdatePool(uint32 pool_id, uint32 db_guid_or_pool_id); template void PoolMgr::UpdatePool(uint32 pool_id, uint32 db_guid_or_pool_id); template void PoolMgr::UpdatePool(uint32 pool_id, uint32 db_guid_or_pool_id); + +void PoolMgr::UpdatePool(uint32 pool_id, SpawnObjectType type, uint32 spawnId) +{ + switch (type) + { + case SPAWN_TYPE_CREATURE: + UpdatePool(pool_id, spawnId); + break; + case SPAWN_TYPE_GAMEOBJECT: + UpdatePool(pool_id, spawnId); + break; + default: + ABORT_MSG("Invalid spawn type %u passed to PoolMgr::IsPartOfPool (with spawnId %u)", uint32(type), spawnId); + } +} diff --git a/src/server/game/Pools/PoolMgr.h b/src/server/game/Pools/PoolMgr.h index 7ee026998b3..d60fad2e3d0 100644 --- a/src/server/game/Pools/PoolMgr.h +++ b/src/server/game/Pools/PoolMgr.h @@ -120,6 +120,7 @@ class TC_GAME_API PoolMgr template void UpdatePool(uint32 pool_id, uint32 db_guid_or_pool_id); + void UpdatePool(uint32 pool_id, SpawnObjectType type, ObjectGuid::LowType spawnId); private: template -- cgit v1.2.3