diff --git a/Client/game_sa/CVehicleSA.cpp b/Client/game_sa/CVehicleSA.cpp index e5620f0143..0f44673f50 100644 --- a/Client/game_sa/CVehicleSA.cpp +++ b/Client/game_sa/CVehicleSA.cpp @@ -1470,8 +1470,20 @@ bool CVehicleSA::IsWheelCollided(BYTE eWheelPosition) int CVehicleSA::GetWheelFrictionState(BYTE eWheelPosition) { - auto vehicle = static_cast(GetInterface()); - return vehicle->m_wheelFrictionState[eWheelPosition]; + switch (static_cast(GetVehicleInterface()->m_vehicleClass)) + { + case VehicleClass::BIKE: + case VehicleClass::BMX: + { + auto* bikeInterface = static_cast(GetVehicleInterface()); + return bikeInterface->m_aiWheelState[eWheelPosition]; + } + default: + { + auto* vehicleInterface = static_cast(GetVehicleInterface()); + return vehicleInterface->m_wheelFrictionState[eWheelPosition]; + } + } } void CVehicleSA::SetTaxiLightOn(bool bLightOn) diff --git a/Client/mods/deathmatch/logic/luadefs/CLuaVehicleDefs.cpp b/Client/mods/deathmatch/logic/luadefs/CLuaVehicleDefs.cpp index 94945f0fbc..29dcc222f9 100644 --- a/Client/mods/deathmatch/logic/luadefs/CLuaVehicleDefs.cpp +++ b/Client/mods/deathmatch/logic/luadefs/CLuaVehicleDefs.cpp @@ -4205,13 +4205,18 @@ bool CLuaVehicleDefs::SetVehicleModelWheelSize(const unsigned short usModel, con int CLuaVehicleDefs::GetVehicleWheelFrictionState(CClientVehicle* pVehicle, unsigned char wheel) { - if (wheel < 0 || wheel > 3) + if (wheel >= MAX_WHEELS) throw std::invalid_argument("Invalid wheel number"); - if (CClientVehicleManager::GetVehicleType(pVehicle->GetModel()) != CLIENTVEHICLE_CAR) - throw std::invalid_argument("Invalid vehicle type"); + auto vehicleType = pVehicle->GetVehicleType(); - return pVehicle->GetWheelFrictionState(wheel); + if (vehicleType == CLIENTVEHICLE_CAR || vehicleType == CLIENTVEHICLE_MONSTERTRUCK || vehicleType == CLIENTVEHICLE_QUADBIKE || + vehicleType == CLIENTVEHICLE_BIKE || vehicleType == CLIENTVEHICLE_BMX || vehicleType == CLIENTVEHICLE_TRAILER) + { + return pVehicle->GetWheelFrictionState(wheel); + } + + throw std::invalid_argument("Invalid vehicle type"); } std::variant> CLuaVehicleDefs::GetVehicleModelDummyDefaultPosition(unsigned short vehicleModel,