Skip to content

Commit 51c9257

Browse files
authored
Fixed wheel visibility when using setVehicleWheelStates #1556 (#3154)
1 parent 519398a commit 51c9257

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

Client/mods/deathmatch/logic/CClientVehicle.cpp

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1464,7 +1464,7 @@ void CClientVehicle::SetWheelStatus(unsigned char ucWheel, unsigned char ucStatu
14641464
m_pVehicle->GetDamageManager()->SetWheelStatus((eWheelPosition)(ucWheel), ucGTAStatus);
14651465

14661466
// Update the wheel's visibility
1467-
m_pVehicle->SetWheelVisibility((eWheelPosition)ucWheel, (ucStatus != DT_WHEEL_MISSING));
1467+
m_pVehicle->SetWheelVisibility((eWheelPosition)ucWheel, ucStatus != DT_WHEEL_MISSING && m_ComponentData[GetComponentNameForWheel(ucWheel)].m_bVisible);
14681468
}
14691469
else if (m_eVehicleType == CLIENTVEHICLE_BIKE && ucWheel < 2)
14701470
m_pVehicle->SetBikeWheelStatus(ucWheel, ucGTAStatus);
@@ -1473,6 +1473,26 @@ void CClientVehicle::SetWheelStatus(unsigned char ucWheel, unsigned char ucStatu
14731473
}
14741474
}
14751475

1476+
//
1477+
// Returns component name for eWheelPosition enum
1478+
//
1479+
SString CClientVehicle::GetComponentNameForWheel(unsigned char ucWheel) const noexcept
1480+
{
1481+
switch (ucWheel)
1482+
{
1483+
case FRONT_LEFT_WHEEL:
1484+
return "wheel_lf_dummy";
1485+
case FRONT_RIGHT_WHEEL:
1486+
return "wheel_rf_dummy";
1487+
case REAR_LEFT_WHEEL:
1488+
return "wheel_lb_dummy";
1489+
case REAR_RIGHT_WHEEL:
1490+
return "wheel_rb_dummy";
1491+
default:
1492+
return "";
1493+
}
1494+
}
1495+
14761496
//
14771497
// Returns true if wheel should be invisible because of its state
14781498
//

Client/mods/deathmatch/logic/CClientVehicle.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ class CClientVehicle : public CClientStreamElement
286286
int GetWheelFrictionState(unsigned char ucWheel);
287287
unsigned char GetPanelStatus(unsigned char ucPanel);
288288
unsigned char GetLightStatus(unsigned char ucLight);
289+
SString GetComponentNameForWheel(unsigned char ucWheel) const noexcept;
289290

290291
bool AreLightsOn();
291292

0 commit comments

Comments
 (0)