diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2019-07-15 17:14:58 +0200 |
|---|---|---|
| committer | Treeston <treeston.mmoc@gmail.com> | 2019-07-15 17:14:58 +0200 |
| commit | d60082ae866d77a12a9e6d09dfce27fc1cb5df90 (patch) | |
| tree | 7c2d7de63e3658604d8a7b70ec3d3e25ef32e2f5 /src/server/game/Entities/Creature | |
| parent | 26440857c1a74031ea0a0234ca0b0fcb09b6bcb0 (diff) | |
Core/Misc: Various dynspawn cleanup and refactors split off from pooling rewrite:
- Map::RemoveRespawnTime(SpawnObjectType, LowType, doRespawn) split into Map::Respawn and Map::RemoveRespawnTime, without the extra boolean
- Map::RemoveRespawnTime(RespawnInfo*) merged into Map::DeleteRespawnInfo(RespawnInfo*) and is now private
- Map::DeleteRespawnInfo(void) renamed to Map::UnloadAllRespawnInfos to properly describe what it does
- Map::ProcessRespawns now actually saves the delayed respawn time to DB if the respawn was delayed
- Map::AddRespawnInfo now takes const reference, and returns success as a boolean
- Map::AddRespawnInfo no longer offers an unused "replace" parameter
- Map::DeleteRespawnInfo no longer offers a variety of unused private overloads
- Map::SaveRespawnTime no longer offers a tantalizing writeDB parameter. Parameter is now called "startup" to properly describe what it does.
- Map::SaveRespawnInfoDB now takes RespawnInfo reference instead of all the various fields. Still public because compatibility mode. QQ.
- Map::GetWorldObjectBySpawnId sanitized
- Map::GetXRespawnTime methods sanitized to all go through Map::GetRespawnTime
Diffstat (limited to 'src/server/game/Entities/Creature')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 98e68cc0e65..4c68ccd77e3 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -1743,7 +1743,7 @@ bool Creature::hasInvolvedQuest(uint32 quest_id) const toUnload.push_back(pair.second); for (Creature* creature : toUnload) map->AddObjectToRemoveList(creature); - map->RemoveRespawnTime(SPAWN_TYPE_CREATURE, spawnId, false, trans); + map->RemoveRespawnTime(SPAWN_TYPE_CREATURE, spawnId, trans); } ); @@ -2026,9 +2026,6 @@ void Creature::Respawn(bool force) if (getDeathState() == DEAD) { - if (m_spawnId) - GetMap()->RemoveRespawnTime(SPAWN_TYPE_CREATURE, m_spawnId); - TC_LOG_DEBUG("entities.unit", "Respawning creature %s (%s)", GetName().c_str(), GetGUID().ToString().c_str()); m_respawnTime = 0; ResetPickPocketRefillTimer(); @@ -2067,7 +2064,7 @@ void Creature::Respawn(bool force) else { if (m_spawnId) - GetMap()->RemoveRespawnTime(SPAWN_TYPE_CREATURE, m_spawnId, true); + GetMap()->Respawn(SPAWN_TYPE_CREATURE, m_spawnId); } TC_LOG_DEBUG("entities.unit", "Respawning creature %s (%s)", @@ -2398,8 +2395,11 @@ void Creature::SaveRespawnTime(uint32 forceDelay) if (m_respawnCompatibilityMode) { - GetMap()->SaveRespawnTimeDB(SPAWN_TYPE_CREATURE, m_spawnId, m_respawnTime); - return; + RespawnInfo ri; + ri.type = SPAWN_TYPE_CREATURE; + ri.spawnId = m_spawnId; + ri.respawnTime = m_respawnTime; + GetMap()->SaveRespawnInfoDB(ri); } time_t thisRespawnTime = forceDelay ? GameTime::GetGameTime() + forceDelay : m_respawnTime; |
