aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-08-31 14:28:27 +0200
committerShauren <shauren.trinity@gmail.com>2025-08-31 14:28:27 +0200
commit187e74ac722747192d4a26508c58c857221a6703 (patch)
tree64c3fe4b15a27ee0d2126433db4eaef83537631e
parentbf61cc7a48cb8cac1180bb0f1935ae1bc08577b2 (diff)
Core/Vehicles: Prevent bad database data in vehicle_template from crashing the server when vehicle despawns
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index f75382bc474..8f858b9ffd1 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3545,6 +3545,15 @@ void ObjectMgr::LoadVehicleTemplate()
vehicleTemplate.Pitch = fields[2].GetFloatOrNull();
vehicleTemplate.CustomFlags = VehicleCustomFlags(fields[3].GetInt32());
+ if (vehicleTemplate.DespawnDelay < 0ms)
+ {
+ TC_LOG_ERROR("sql.sql", "Table `vehicle_template`: Creature (Entry: {}) has negative despawnDelayMs ({}).`. Ignoring",
+ creatureId, vehicleTemplate.DespawnDelay.count());
+ vehicleTemplate.DespawnDelay = 1ms;
+ }
+ else if (vehicleTemplate.DespawnDelay == 0ms)
+ vehicleTemplate.DespawnDelay = 1ms;
+
if (vehicleTemplate.Pitch)
{
if (VehicleEntry const* vehicle = sVehicleStore.LookupEntry(creatureInfo->VehicleId))