Skip to content

Commit 4dc2335

Browse files
StrixGpatrikjuvonen
authored andcommitted
Add areVehicleLightsOn function (#938)
* Add areVehicleLightsOn function This function gets the vehicle lights state (on/off) * Add OOP definitions of areVehicleLightsOn * Hard error * Update make_uname.bat
1 parent c1053ee commit 4dc2335

File tree

4 files changed

+30
-0
lines changed

4 files changed

+30
-0
lines changed

Client/mods/deathmatch/logic/CClientVehicle.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1582,6 +1582,16 @@ void CClientVehicle::SetLightStatus(unsigned char ucLight, unsigned char ucStatu
15821582
}
15831583
}
15841584

1585+
bool CClientVehicle::AreLightsOn()
1586+
{
1587+
if (m_pVehicle)
1588+
{
1589+
return m_pVehicle->GetLightsOn();
1590+
}
1591+
1592+
return false;
1593+
}
1594+
15851595
float CClientVehicle::GetHeliRotorSpeed()
15861596
{
15871597
if (m_pVehicle && m_eVehicleType == CLIENTVEHICLE_HELI)

Client/mods/deathmatch/logic/CClientVehicle.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,8 @@ class CClientVehicle : public CClientStreamElement
261261
unsigned char GetPanelStatus(unsigned char ucPanel);
262262
unsigned char GetLightStatus(unsigned char ucLight);
263263

264+
bool AreLightsOn();
265+
264266
void SetDoorStatus(unsigned char ucDoor, unsigned char ucStatus);
265267
void SetWheelStatus(unsigned char ucWheel, unsigned char ucStatus, bool bSilent = true);
266268
void SetPanelStatus(unsigned char ucPanel, unsigned char ucStatus);

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ void CLuaVehicleDefs::LoadFunctions()
3636
{"getVehicleDoorState", GetVehicleDoorState},
3737
{"getVehicleLightState", GetVehicleLightState},
3838
{"getVehiclePanelState", GetVehiclePanelState},
39+
{"areVehicleLightsOn", AreVehicleLightsOn},
3940
{"getVehicleOverrideLights", GetVehicleOverrideLights},
4041
{"getVehicleTowedByVehicle", GetVehicleTowedByVehicle},
4142
{"getVehicleTowingVehicle", GetVehicleTowingVehicle},
@@ -200,6 +201,7 @@ void CLuaVehicleDefs::AddClass(lua_State* luaVM)
200201
lua_classfunction(luaVM, "getEngineState", "getVehicleEngineState");
201202
lua_classfunction(luaVM, "getLightState", "getVehicleLightState");
202203
lua_classfunction(luaVM, "getAdjustableProperty", "getVehicleAdjustableProperty");
204+
lua_classfunction(luaVM, "areLightsOn", "areVehicleLightsOn");
203205
lua_classfunction(luaVM, "getOverrideLights", "getVehicleOverrideLights");
204206
lua_classfunction(luaVM, "getPanelState", "getVehiclePanelState");
205207
lua_classfunction(luaVM, "getTurnVelocity", OOP_GetVehicleTurnVelocity);
@@ -298,6 +300,7 @@ void CLuaVehicleDefs::AddClass(lua_State* luaVM)
298300
lua_classvariable(luaVM, "fuelTankExplodable", "setVehicleFuelTankExplodable", "isVehicleFuelTankExplodable");
299301
lua_classvariable(luaVM, "engineState", "setVehicleEngineState", "getVehicleEngineState");
300302
lua_classvariable(luaVM, "landingGearDown", "setVehicleLandingGearDown", "getVehicleLandingGearDown");
303+
lua_classvariable(luaVM, "lightsOn", NULL, "areVehicleLightsOn");
301304
lua_classvariable(luaVM, "overrideLights", "setVehicleOverrideLights", "getVehicleOverrideLights");
302305
lua_classvariable(luaVM, "undamageableDoors", "setVehicleDoorsUndamageable", NULL);
303306
lua_classvariable(luaVM, "taxiLight", "setVehicleTaxiLightOn", "isVehicleTaxiLightOn");
@@ -1008,6 +1011,20 @@ int CLuaVehicleDefs::GetVehiclePanelState(lua_State* luaVM)
10081011
return 1;
10091012
}
10101013

1014+
int CLuaVehicleDefs::AreVehicleLightsOn(lua_State* luaVM)
1015+
{
1016+
CClientVehicle* pVehicle;
1017+
CScriptArgReader argStream(luaVM);
1018+
argStream.ReadUserData(pVehicle);
1019+
1020+
if (argStream.HasErrors())
1021+
return luaL_error(luaVM, argStream.GetFullErrorMessage());
1022+
1023+
bool bLightsOn = (pVehicle->AreLightsOn() || pVehicle->GetOverrideLights() == 2);
1024+
lua_pushboolean(luaVM, bLightsOn);
1025+
return 1;
1026+
}
1027+
10111028
int CLuaVehicleDefs::GetVehicleOverrideLights(lua_State* luaVM)
10121029
{
10131030
CClientVehicle* pVehicle = NULL;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class CLuaVehicleDefs : public CLuaDefs
4444
LUA_DECLARE(GetVehicleDoorState);
4545
LUA_DECLARE(GetVehicleLightState);
4646
LUA_DECLARE(GetVehiclePanelState);
47+
LUA_DECLARE(AreVehicleLightsOn);
4748
LUA_DECLARE(GetVehicleOverrideLights);
4849
LUA_DECLARE(GetVehicleTowedByVehicle);
4950
LUA_DECLARE(GetVehicleTowingVehicle);

0 commit comments

Comments
 (0)