@@ -4077,38 +4077,41 @@ bool CLuaVehicleDefs::SetVehicleWheelScale(CClientVehicle* const pVehicle, const
4077
4077
std::variant<float, std::unordered_map<std::string, float>> CLuaVehicleDefs::GetVehicleModelWheelSize(
4078
4078
const unsigned short usModel, const std::optional<eResizableVehicleWheelGroup> eWheelGroup)
4079
4079
{
4080
- eResizableVehicleWheelGroup eActualWheelGroup = eWheelGroup.value_or(eResizableVehicleWheelGroup::ALL_WHEELS);
4080
+ CModelInfo* pModelInfo = nullptr;
4081
+ if (CClientVehicleManager::IsValidModel(usModel))
4082
+ pModelInfo = g_pGame->GetModelInfo(usModel);
4083
+
4084
+ if (!pModelInfo)
4085
+ throw std::invalid_argument("Invalid model ID");
4081
4086
4087
+ eResizableVehicleWheelGroup eActualWheelGroup = eWheelGroup.value_or(eResizableVehicleWheelGroup::ALL_WHEELS);
4082
4088
if (eActualWheelGroup == eResizableVehicleWheelGroup::ALL_WHEELS)
4083
4089
{
4084
- float fFrontWheelSize;
4085
- if (!CStaticFunctionDefinitions::GetVehicleModelWheelSize(usModel, eResizableVehicleWheelGroup::FRONT_AXLE, fFrontWheelSize))
4086
- throw std::invalid_argument("Invalid model ID");
4087
-
4088
- float fRearWheelSize;
4089
- if (!CStaticFunctionDefinitions::GetVehicleModelWheelSize(usModel, eResizableVehicleWheelGroup::REAR_AXLE, fRearWheelSize))
4090
- throw std::invalid_argument("Invalid model ID");
4091
-
4092
4090
// Return a table like { ["front_axle"] = 0.7, ["rear_axle"] = 0.8 }
4093
4091
return std::unordered_map<std::string, float>{
4094
- {"front_axle", fFrontWheelSize },
4095
- {"rear_axle", fRearWheelSize },
4092
+ {"front_axle", pModelInfo->GetVehicleWheelSize(eResizableVehicleWheelGroup::FRONT_AXLE) },
4093
+ {"rear_axle", pModelInfo->GetVehicleWheelSize(eResizableVehicleWheelGroup::REAR_AXLE) },
4096
4094
};
4097
4095
}
4098
- else
4099
- {
4100
- float fWheelSize;
4101
- if (!CStaticFunctionDefinitions::GetVehicleModelWheelSize(usModel, eActualWheelGroup, fWheelSize))
4102
- throw std::invalid_argument("Invalid model ID");
4103
-
4104
- return fWheelSize;
4105
- }
4096
+ return pModelInfo->GetVehicleWheelSize(eActualWheelGroup);
4106
4097
}
4107
4098
4108
4099
bool CLuaVehicleDefs::SetVehicleModelWheelSize(const unsigned short usModel, const eResizableVehicleWheelGroup eWheelGroup, const float fWheelSize)
4109
4100
{
4101
+ CModelInfo* pModelInfo = nullptr;
4102
+
4110
4103
if (fWheelSize <= 0)
4111
4104
throw std::invalid_argument("Invalid wheel size");
4112
4105
4113
- return CStaticFunctionDefinitions::SetVehicleModelWheelSize(usModel, eWheelGroup, fWheelSize);
4106
+ if (CClientVehicleManager::IsValidModel(usModel))
4107
+ pModelInfo = g_pGame->GetModelInfo(usModel);
4108
+
4109
+ if (!pModelInfo)
4110
+ throw std::invalid_argument("Invalid model ID");
4111
+
4112
+ pModelInfo->SetVehicleWheelSize(eWheelGroup, fWheelSize);
4113
+ // Restream needed to update ride height
4114
+ m_pVehicleManager->RestreamVehicles(usModel);
4115
+
4116
+ return true;
4114
4117
}
0 commit comments