From 1870ce04b5ff47483469b96f5a8763a105b23f18 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Wed, 29 Aug 2018 04:57:22 +0200 Subject: [PATCH] Core/Creature: merged some missed changes for dynamic spawn regarding despawn functionality --- src/server/game/Entities/Creature/Creature.cpp | 9 +++++++-- src/server/game/Entities/Creature/Creature.h | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 54aacbd402..7745fa966b 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1938,7 +1938,7 @@ void Creature::ForcedDespawn(uint32 timeMSToDespawn, Seconds forceRespawnTimer) uint32 respawnDelay = m_respawnDelay; if (uint32 scalingMode = sWorld->getIntConfig(CONFIG_RESPAWN_DYNAMICMODE)) GetMap()->ApplyDynamicModeRespawnScaling(this, m_spawnId, respawnDelay, scalingMode); - m_respawnTime = time(NULL) + respawnDelay; + m_respawnTime = GameTime::GetGameTime() + respawnDelay; SaveRespawnTime(); } @@ -2303,7 +2303,7 @@ void Creature::SaveRespawnTime(uint32 forceDelay, bool savetodb) return; } - time_t thisRespawnTime = forceDelay ? time(NULL) + forceDelay : m_respawnTime; + time_t thisRespawnTime = forceDelay ? GameTime::GetGameTime() + forceDelay : m_respawnTime; GetMap()->SaveRespawnTime(SPAWN_TYPE_CREATURE, m_spawnId, GetEntry(), thisRespawnTime, GetMap()->GetZoneId(GetPhaseShift(), GetHomePosition()), Trinity::ComputeGridCoord(GetHomePosition().GetPositionX(), GetHomePosition().GetPositionY()).GetId(), savetodb && m_creatureData && m_creatureData->dbData); } @@ -2493,6 +2493,11 @@ time_t Creature::GetRespawnTimeEx() const return now; } +void Creature::SetRespawnTime(uint32 respawn) +{ + m_respawnTime = respawn ? GameTime::GetGameTime() + respawn : 0; +} + void Creature::GetRespawnPosition(float &x, float &y, float &z, float* ori, float* dist) const { if (m_creatureData) diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h index 36fcc75b13..5d63f18007 100644 --- a/src/server/game/Entities/Creature/Creature.h +++ b/src/server/game/Entities/Creature/Creature.h @@ -229,7 +229,7 @@ class TC_GAME_API Creature : public Unit, public GridObject, public Ma time_t const& GetRespawnTime() const { return m_respawnTime; } time_t GetRespawnTimeEx() const; - void SetRespawnTime(uint32 respawn) { m_respawnTime = respawn ? time(nullptr) + respawn : 0; } + void SetRespawnTime(uint32 respawn); void Respawn(bool force = false); void SaveRespawnTime(uint32 forceDelay = 0, bool savetodb = true) override;