aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/GameObject
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2019-07-15 15:57:04 +0200
committerShauren <shauren.trinity@gmail.com>2021-12-16 01:18:15 +0100
commitd5e58cef694d3db65f0a27b93099ae4e517685a4 (patch)
tree5014f4f0bace9ebeef257bd7428d763515b60ffe /src/server/game/Entities/GameObject
parentbe05590a12607cbf6c7f8e5436cfac0fb3625128 (diff)
Core/Spawns: Exterminate CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY with extreme prejudice. (It didn't work anyway.)
(cherry picked from commit 26440857c1a74031ea0a0234ca0b0fcb09b6bcb0)
Diffstat (limited to 'src/server/game/Entities/GameObject')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp25
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h2
2 files changed, 9 insertions, 18 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 0d20d360d55..394a668a9fa 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -669,7 +669,7 @@ void GameObject::Update(uint32 diff)
SetRespawnTime(WEEK);
else
m_respawnTime = (now > linkedRespawntime ? now : linkedRespawntime) + urand(5, MINUTE); // else copy time from master and add a little
- SaveRespawnTime(); // also save to DB immediately
+ SaveRespawnTime();
return;
}
@@ -730,7 +730,7 @@ void GameObject::Update(uint32 diff)
// Set respawn timer
if (!m_respawnCompatibilityMode && m_respawnTime > 0)
- SaveRespawnTime(0, false);
+ SaveRespawnTime();
if (isSpawned())
{
@@ -967,22 +967,13 @@ void GameObject::Update(uint32 diff)
// if option not set then object will be saved at grid unload
// Otherwise just save respawn time to map object memory
- if (sWorld->getBoolConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY))
- SaveRespawnTime();
-
- if (!m_respawnCompatibilityMode)
- {
- // Respawn time was just saved if set to save to DB
- // If not, we save only to map memory
- if (!sWorld->getBoolConfig(CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY))
- SaveRespawnTime(0, false);
+ SaveRespawnTime();
- // Then despawn
+ if (m_respawnCompatibilityMode)
+ DestroyForNearbyPlayers();
+ else
AddObjectToRemoveList();
- return;
- }
- DestroyForNearbyPlayers(); // old UpdateObjectVisibility()
break;
}
@@ -1389,7 +1380,7 @@ bool GameObject::IsDestructibleBuilding() const
return gInfo->type == GAMEOBJECT_TYPE_DESTRUCTIBLE_BUILDING;
}
-void GameObject::SaveRespawnTime(uint32 forceDelay, bool savetodb)
+void GameObject::SaveRespawnTime(uint32 forceDelay)
{
if (m_goData && (forceDelay || m_respawnTime > GameTime::GetGameTime()) && m_spawnedByDefault)
{
@@ -1400,7 +1391,7 @@ void GameObject::SaveRespawnTime(uint32 forceDelay, bool savetodb)
}
uint32 thisRespawnTime = forceDelay ? GameTime::GetGameTime() + forceDelay : m_respawnTime;
- GetMap()->SaveRespawnTime(SPAWN_TYPE_GAMEOBJECT, m_spawnId, GetEntry(), thisRespawnTime, GetZoneId(), Trinity::ComputeGridCoord(GetPositionX(), GetPositionY()).GetId(), m_goData->dbData ? savetodb : false);
+ GetMap()->SaveRespawnTime(SPAWN_TYPE_GAMEOBJECT, m_spawnId, GetEntry(), thisRespawnTime, GetZoneId(), Trinity::ComputeGridCoord(GetPositionX(), GetPositionY()).GetId());
}
}
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 72f466aa327..1bcd010e773 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -219,7 +219,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
uint32 GetUseCount() const { return m_usetimes; }
uint32 GetUniqueUseCount() const { return uint32(m_unique_users.size()); }
- void SaveRespawnTime(uint32 forceDelay = 0, bool savetodb = true) override;
+ void SaveRespawnTime(uint32 forceDelay = 0);
Loot loot;