aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals/ObjectMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index c5f4f51599a..5cfe337d362 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3252,6 +3252,41 @@ void ObjectMgr::LoadVehicleTemplateAccessories()
TC_LOG_INFO("server.loading", ">> Loaded %u Vehicle Template Accessories in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
+void ObjectMgr::LoadVehicleTemplate()
+{
+ uint32 oldMSTime = getMSTime();
+
+ _vehicleTemplateStore.clear();
+
+ // 0 1
+ QueryResult result = WorldDatabase.Query("SELECT creatureId, despawnDelayMs FROM vehicle_template");
+
+ if (!result)
+ {
+ TC_LOG_INFO("server.loading", ">> Loaded 0 vehicle template. DB table `vehicle_template` is empty.");
+ return;
+ }
+
+ do
+ {
+ Field* fields = result->Fetch();
+
+ uint32 creatureId = fields[0].GetUInt32();
+
+ if (!sObjectMgr->GetCreatureTemplate(creatureId))
+ {
+ TC_LOG_ERROR("sql.sql", "Table `vehicle_template`: Vehicle %u does not exist.", creatureId);
+ continue;
+ }
+
+ VehicleTemplate& vehicleTemplate = _vehicleTemplateStore[creatureId];
+ vehicleTemplate.DespawnDelay = Milliseconds(fields[1].GetInt32());
+
+ } while (result->NextRow());
+
+ TC_LOG_INFO("server.loading", ">> Loaded " SZFMTD " Vehicle Template entries in %u ms", _vehicleTemplateStore.size(), GetMSTimeDiffToNow(oldMSTime));
+}
+
void ObjectMgr::LoadVehicleAccessories()
{
uint32 oldMSTime = getMSTime();
@@ -9991,6 +10026,11 @@ CreatureTemplate const* ObjectMgr::GetCreatureTemplate(uint32 entry) const
return nullptr;
}
+VehicleTemplate const* ObjectMgr::GetVehicleTemplate(Vehicle* veh) const
+{
+ return Trinity::Containers::MapGetValuePtr(_vehicleTemplateStore, veh->GetCreatureEntry());
+}
+
VehicleAccessoryList const* ObjectMgr::GetVehicleAccessoryList(Vehicle* veh) const
{
if (Creature* cre = veh->GetBase()->ToCreature())