diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2019-07-15 17:14:58 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-12-16 01:33:09 +0100 |
| commit | eee950cdd7bcbe9443a53ea5c4cce35444a503f7 (patch) | |
| tree | eba357353a54d8a6dc308e0a4c732f6459eb1bee /src/server/game/Entities/GameObject | |
| parent | d5e58cef694d3db65f0a27b93099ae4e517685a4 (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
(cherry picked from commit d60082ae866d77a12a9e6d09dfce27fc1cb5df90)
Diffstat (limited to 'src/server/game/Entities/GameObject')
| -rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 394a668a9fa..50ed73a832d 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1271,7 +1271,7 @@ bool GameObject::LoadFromDB(ObjectGuid::LowType spawnId, Map* map, bool addToMap toUnload.push_back(pair.second); for (GameObject* obj : toUnload) map->AddObjectToRemoveList(obj); - map->RemoveRespawnTime(SPAWN_TYPE_GAMEOBJECT, spawnId, false, charTrans); + map->RemoveRespawnTime(SPAWN_TYPE_GAMEOBJECT, spawnId, charTrans); } ); @@ -1386,7 +1386,11 @@ void GameObject::SaveRespawnTime(uint32 forceDelay) { if (m_respawnCompatibilityMode) { - GetMap()->SaveRespawnTimeDB(SPAWN_TYPE_GAMEOBJECT, m_spawnId, m_respawnTime); + RespawnInfo ri; + ri.type = SPAWN_TYPE_GAMEOBJECT; + ri.spawnId = m_spawnId; + ri.respawnTime = m_respawnTime; + GetMap()->SaveRespawnInfoDB(ri); return; } @@ -1477,7 +1481,7 @@ void GameObject::Respawn() if (m_spawnedByDefault && m_respawnTime > 0) { m_respawnTime = GameTime::GetGameTime(); - GetMap()->RemoveRespawnTime(SPAWN_TYPE_GAMEOBJECT, m_spawnId, true); + GetMap()->Respawn(SPAWN_TYPE_GAMEOBJECT, m_spawnId); } } |
