Skip to content

Commit 4d3b191

Browse files
committed
fixes
1 parent 70ebb5b commit 4d3b191

File tree

6 files changed

+29
-69
lines changed

6 files changed

+29
-69
lines changed

Client/mods/deathmatch/logic/luadefs/CLuaVehicleDefs.cpp

Lines changed: 12 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ void CLuaVehicleDefs::LoadFunctions()
4949
{"getVehiclePaintjob", GetVehiclePaintjob},
5050
{"getVehiclePlateText", GetVehiclePlateText},
5151
{"getVehicleWheelStates", GetVehicleWheelStates},
52-
{"getVehicleWheelState", GetVehicleWheelState},
52+
{"getVehicleWheelState", ArgumentParser<GetVehicleWheelState>},
5353
{"isVehicleWheelOnGround", IsVehicleWheelCollided},
5454
{"isVehicleDamageProof", IsVehicleDamageProof},
5555
{"isVehicleFuelTankExplodable", IsVehicleFuelTankExplodable},
@@ -982,48 +982,23 @@ int CLuaVehicleDefs::GetVehicleWheelStates(lua_State* luaVM)
982982
return 1;
983983
}
984984

985-
int CLuaVehicleDefs::GetVehicleWheelState(lua_State* luaVM)
985+
std::variant<unsigned char, bool> CLuaVehicleDefs::GetVehicleWheelState(CClientVehicle* vehicle, unsigned char wheelIndex)
986986
{
987-
CClientVehicle* pVehicle = nullptr;
988-
unsigned char ucWheel = 0;
989-
990-
CScriptArgReader argStream(luaVM);
991-
argStream.ReadUserData(pVehicle);
992-
argStream.ReadNumber(ucWheel);
987+
if (!vehicle)
988+
return std::nullopt;
993989

994-
if (!argStream.HasErrors() && pVehicle)
990+
switch (wheelIndex)
995991
{
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;
992+
case 1: return vehicle->GetWheelStatus(FRONT_LEFT_WHEEL);
993+
case 2: return vehicle->GetWheelStatus(REAR_LEFT_WHEEL);
994+
case 3: return vehicle->GetWheelStatus(FRONT_RIGHT_WHEEL);
995+
case 4: return vehicle->GetWheelStatus(REAR_RIGHT_WHEEL);
996+
default:
997+
return std::nullopt;
1019998
}
1020-
else
1021-
m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage());
1022-
1023-
lua_pushboolean(luaVM, false);
1024-
return 1;
1025999
}
10261000

1001+
10271002
int CLuaVehicleDefs::IsVehicleWheelCollided(lua_State* luaVM)
10281003
{
10291004
CClientVehicle* pVehicle = nullptr;

Client/mods/deathmatch/logic/luadefs/CLuaVehicleDefs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class CLuaVehicleDefs : public CLuaDefs
4343
LUA_DECLARE(GetVehicleUpgradeSlotName);
4444
LUA_DECLARE(GetVehicleCompatibleUpgrades);
4545
LUA_DECLARE(GetVehicleWheelStates);
46-
LUA_DECLARE(GetVehicleWheelState);
46+
static std::optional<unsigned char> GetVehicleWheelState(CClientVehicle* vehicle, unsigned char wheelIndex);
4747
LUA_DECLARE(IsVehicleWheelCollided);
4848
LUA_DECLARE(GetVehicleDoorState);
4949
LUA_DECLARE(GetVehicleLightState);

Server/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5284,23 +5284,23 @@ bool CStaticFunctionDefinitions::GetVehicleWheelStates(CVehicle* pVehicle, unsig
52845284
return true;
52855285
}
52865286

5287-
bool CStaticFunctionDefinitions::GetVehicleWheelState(CVehicle* pVehicle, unsigned char& ucWheel, unsigned char& ucState)
5287+
bool CStaticFunctionDefinitions::GetVehicleWheelState(CVehicle* vehicle, unsigned char wheelIndex, unsigned char& wheelState)
52885288
{
5289-
assert(pVehicle);
5289+
assert(vehicle);
52905290

5291-
switch(ucWheel)
5291+
switch(wheelIndex)
52925292
{
52935293
case 1:
5294-
ucState = pVehicle->m_ucWheelStates[FRONT_LEFT_WHEEL];
5294+
wheelState = vehicle->m_ucWheelStates[FRONT_LEFT_WHEEL];
52955295
break;
52965296
case 2:
5297-
ucState = pVehicle->m_ucWheelStates[REAR_LEFT_WHEEL];
5297+
wheelState = vehicle->m_ucWheelStates[REAR_LEFT_WHEEL];
52985298
break;
52995299
case 3:
5300-
ucState = pVehicle->m_ucWheelStates[FRONT_RIGHT_WHEEL];
5300+
wheelState = vehicle->m_ucWheelStates[FRONT_RIGHT_WHEEL];
53015301
break;
53025302
case 4:
5303-
ucState = pVehicle->m_ucWheelStates[REAR_RIGHT_WHEEL];
5303+
wheelState = vehicle->m_ucWheelStates[REAR_RIGHT_WHEEL];
53045304
break;
53055305
default:
53065306
return false;

Server/mods/deathmatch/logic/CStaticFunctionDefinitions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ class CStaticFunctionDefinitions
264264
static bool GetVehicleDoorState(CVehicle* pVehicle, unsigned char ucDoor, unsigned char& ucState);
265265
static bool GetVehicleWheelStates(CVehicle* pVehicle, unsigned char& ucFrontLeft, unsigned char& ucRearLeft, unsigned char& ucFrontRight,
266266
unsigned char& ucRearRight);
267-
static bool GetVehicleWheelState(CVehicle* pVehicle, unsigned char& ucWheel, unsigned char& ucState);
267+
static bool GetVehicleWheelState(CVehicle* vehicle, unsigned char wheelIndex, unsigned char& wheelState);
268268
static bool GetVehicleLightState(CVehicle* pVehicle, unsigned char ucLight, unsigned char& ucState);
269269
static bool GetVehiclePanelState(CVehicle* pVehicle, unsigned char ucPanel, unsigned char& ucState);
270270
static bool GetVehicleOverrideLights(CVehicle* pVehicle, unsigned char& ucLights);

Server/mods/deathmatch/logic/luadefs/CLuaVehicleDefs.cpp

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ void CLuaVehicleDefs::LoadFunctions()
4848
{"getVehicleCompatibleUpgrades", GetVehicleCompatibleUpgrades},
4949
{"getVehicleDoorState", GetVehicleDoorState},
5050
{"getVehicleWheelStates", GetVehicleWheelStates},
51-
{"getVehicleWheelState", GetVehicleWheelState},
51+
{"getVehicleWheelState", ArgumentParser<GetVehicleWheelState>},
5252
{"getVehicleLightState", GetVehicleLightState},
5353
{"getVehiclePanelState", GetVehiclePanelState},
5454
{"getVehicleOverrideLights", GetVehicleOverrideLights},
@@ -1322,29 +1322,14 @@ int CLuaVehicleDefs::GetVehicleWheelStates(lua_State* luaVM)
13221322
return 1;
13231323
}
13241324

1325-
int CLuaVehicleDefs::GetVehicleWheelState(lua_State* luaVM)
1325+
std::variant<unsigned char, bool> CLuaVehicleDefs::GetVehicleWheelState(CVehicle* vehicle, unsigned char wheelIndex)
13261326
{
1327-
CVehicle* pVehicle;
1328-
unsigned char ucWheel = 0;
1329-
1330-
CScriptArgReader argStream(luaVM);
1331-
argStream.ReadUserData(pVehicle);
1332-
argStream.ReadNumber(ucWheel);
1333-
1334-
if (!argStream.HasErrors() && pVehicle)
1327+
unsigned char wheelState
1328+
if (CStaticFunctionDefinitions::GetVehicleWheelState(vehicle, wheelIndex, wheelState))
13351329
{
1336-
unsigned char ucState;
1337-
if (CStaticFunctionDefinitions::GetVehicleWheelState(pVehicle, ucWheel, ucState))
1338-
{
1339-
lua_pushnumber(luaVM, ucState);
1340-
return 1;
1341-
}
1330+
return wheelState;
13421331
}
1343-
else
1344-
m_pScriptDebugging->LogCustom(luaVM, argStream.GetFullErrorMessage());
1345-
1346-
lua_pushboolean(luaVM, false);
1347-
return 1;
1332+
return false;
13481333
}
13491334

13501335
int CLuaVehicleDefs::GetVehicleLightState(lua_State* luaVM)
@@ -3086,4 +3071,4 @@ bool CLuaVehicleDefs::SetVehicleNitroActivated(CVehicle* vehicle, bool state) no
30863071

30873072
m_pPlayerManager->BroadcastOnlyJoined(CElementRPCPacket(vehicle, SET_VEHICLE_NITRO_ACTIVATED, *BitStream.pBitStream));
30883073
return true;
3089-
}
3074+
}

Server/mods/deathmatch/logic/luadefs/CLuaVehicleDefs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class CLuaVehicleDefs : public CLuaDefs
4646
LUA_DECLARE(GetVehicleCompatibleUpgrades);
4747
LUA_DECLARE(GetVehicleDoorState);
4848
LUA_DECLARE(GetVehicleWheelStates);
49-
LUA_DECLARE(GetVehicleWheelState);
49+
static std::variant<unsigned char, bool> GetVehicleWheelState(CVehicle* vehicle, unsigned char wheelIndex);
5050
LUA_DECLARE(GetVehicleLightState);
5151
LUA_DECLARE(GetVehiclePanelState);
5252
LUA_DECLARE(GetVehicleOverrideLights);

0 commit comments

Comments
 (0)