@@ -49,6 +49,7 @@ void CLuaVehicleDefs::LoadFunctions()
4949 {" getVehiclePaintjob" , GetVehiclePaintjob},
5050 {" getVehiclePlateText" , GetVehiclePlateText},
5151 {" getVehicleWheelStates" , GetVehicleWheelStates},
52+ {" getVehicleWheelState" , GetVehicleWheelState},
5253 {" isVehicleWheelOnGround" , IsVehicleWheelCollided},
5354 {" isVehicleDamageProof" , IsVehicleDamageProof},
5455 {" isVehicleFuelTankExplodable" , IsVehicleFuelTankExplodable},
@@ -223,6 +224,7 @@ void CLuaVehicleDefs::AddClass(lua_State* luaVM)
223224 lua_classfunction (luaVM, " getPaintjob" , " getVehiclePaintjob" );
224225 lua_classfunction (luaVM, " getTurretPosition" , " getVehicleTurretPosition" );
225226 lua_classfunction (luaVM, " getWheelStates" , " getVehicleWheelStates" );
227+ lua_classfunction (luaVM, " getWheelState" , " getVehicleWheelState" );
226228 lua_classfunction (luaVM, " isWheelOnGround" , " isVehicleWheelOnGround" );
227229 lua_classfunction (luaVM, " getDoorOpenRatio" , " getVehicleDoorOpenRatio" );
228230 lua_classfunction (luaVM, " getVariant" , " getVehicleVariant" );
@@ -980,6 +982,48 @@ int CLuaVehicleDefs::GetVehicleWheelStates(lua_State* luaVM)
980982 return 1 ;
981983}
982984
985+ int CLuaVehicleDefs::GetVehicleWheelState (lua_State* luaVM)
986+ {
987+ CClientVehicle* pVehicle = nullptr ;
988+ unsigned char ucWheel = 0 ;
989+
990+ CScriptArgReader argStream (luaVM);
991+ argStream.ReadUserData (pVehicle);
992+ argStream.ReadNumber (ucWheel);
993+
994+ if (!argStream.HasErrors () && pVehicle)
995+ {
996+ unsigned char ucState = 0 ;
997+
998+ switch (ucWheel)
999+ {
1000+ case 1 :
1001+ ucState = pVehicle->GetWheelStatus (FRONT_LEFT_WHEEL);
1002+ break ;
1003+ case 2 :
1004+ ucState = pVehicle->GetWheelStatus (REAR_LEFT_WHEEL);
1005+ break ;
1006+ case 3 :
1007+ ucState = pVehicle->GetWheelStatus (FRONT_RIGHT_WHEEL);
1008+ break ;
1009+ case 4 :
1010+ ucState = pVehicle->GetWheelStatus (REAR_RIGHT_WHEEL);
1011+ break ;
1012+ default :
1013+ lua_pushboolean (luaVM, false );
1014+ return 1 ;
1015+ }
1016+
1017+ lua_pushnumber (luaVM, ucState);
1018+ return 1 ;
1019+ }
1020+ else
1021+ m_pScriptDebugging->LogCustom (luaVM, argStream.GetFullErrorMessage ());
1022+
1023+ lua_pushboolean (luaVM, false );
1024+ return 1 ;
1025+ }
1026+
9831027int CLuaVehicleDefs::IsVehicleWheelCollided (lua_State* luaVM)
9841028{
9851029 CClientVehicle* pVehicle = nullptr ;
0 commit comments