diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-08-31 14:28:27 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-08-31 14:28:27 +0200 |
commit | 187e74ac722747192d4a26508c58c857221a6703 (patch) | |
tree | 64c3fe4b15a27ee0d2126433db4eaef83537631e | |
parent | bf61cc7a48cb8cac1180bb0f1935ae1bc08577b2 (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.cpp | 9 |
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)) |