diff options
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 4ea4b1ca033..80dfedc357d 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -2647,6 +2647,51 @@ void ObjectMgr::LoadVehicleAccessories() sLog.outString(">> Loaded %u Vehicle Accessories", count); } +void ObjectMgr::LoadVehicleScaling() +{ + m_VehicleScalingMap.clear(); // needed for reload case + + uint32 count = 0; + + QueryResult_AutoPtr result = WorldDatabase.Query("SELECT `entry`,`baseItemLevel`,`scalingFactor` FROM `vehicle_scaling_info`"); + + if (!result) + { + barGoLink bar(1); + bar.step(); + sLog.outString(); + sLog.outErrorDb(">> Loaded 0 vehicle scaling entries. DB table `vehicle_scaling_info` is empty."); + return; + } + + barGoLink bar(result->GetRowCount()); + + do + { + Field *fields = result->Fetch(); + bar.step(); + + uint32 vehicleEntry = fields[0].GetUInt32(); + float baseItemLevel = fields[1].GetFloat(); + float scalingFactor = fields[2].GetFloat(); + + if (!sVehicleStore.LookupEntry(vehicleEntry)) + { + sLog.outErrorDb("Table `vehicle_scaling_info`: vehicle entry %u does not exist.", vehicleEntry); + continue; + } + + m_VehicleScalingMap[vehicleEntry].ID = vehicleEntry; + m_VehicleScalingMap[vehicleEntry].baseItemLevel = baseItemLevel; + m_VehicleScalingMap[vehicleEntry].scalingFactor = scalingFactor; + + ++count; + } while (result->NextRow()); + + sLog.outString(); + sLog.outString(">> Loaded %u vehicle scaling entries.", count); +} + void ObjectMgr::LoadPetLevelInfo() { // Loading levels data |