Skip to content

Commit eb2ca52

Browse files
Followup to #1644: Add get/setVehicleModelWheelSize (#1648)
This addresses the review @qaisjp made on PR #1644 after it got merged.
1 parent be82d1c commit eb2ca52

File tree

3 files changed

+23
-53
lines changed

3 files changed

+23
-53
lines changed

Client/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3603,23 +3603,6 @@ bool CStaticFunctionDefinitions::SetVehicleWindowOpen(CClientVehicle& Vehicle, u
36033603
return Vehicle.SetWindowOpen(ucWindow, bOpen);
36043604
}
36053605

3606-
bool CStaticFunctionDefinitions::SetVehicleModelWheelSize(unsigned short usModel, eResizableVehicleWheelGroup eWheelGroup, float fWheelSize)
3607-
{
3608-
if (CClientVehicleManager::IsValidModel(usModel))
3609-
{
3610-
auto pModelInfo = g_pGame->GetModelInfo(usModel);
3611-
if (pModelInfo)
3612-
{
3613-
pModelInfo->SetVehicleWheelSize(eWheelGroup, fWheelSize);
3614-
// Restream needed to update ride height
3615-
m_pVehicleManager->RestreamVehicles(usModel);
3616-
3617-
return true;
3618-
}
3619-
}
3620-
return false;
3621-
}
3622-
36233606
bool CStaticFunctionDefinitions::IsVehicleWindowOpen(CClientVehicle& Vehicle, uchar ucWindow)
36243607
{
36253608
return Vehicle.IsWindowOpen(ucWindow);
@@ -3653,20 +3636,6 @@ bool CStaticFunctionDefinitions::GetVehicleModelDummyPosition(unsigned short usM
36533636
return false;
36543637
}
36553638

3656-
bool CStaticFunctionDefinitions::GetVehicleModelWheelSize(unsigned short usModel, eResizableVehicleWheelGroup eWheelGroup, float& fWheelSize)
3657-
{
3658-
if (CClientVehicleManager::IsValidModel(usModel) && eWheelGroup != eResizableVehicleWheelGroup::ALL_WHEELS)
3659-
{
3660-
auto pModelInfo = g_pGame->GetModelInfo(usModel);
3661-
if (pModelInfo)
3662-
{
3663-
fWheelSize = pModelInfo->GetVehicleWheelSize(eWheelGroup);
3664-
return true;
3665-
}
3666-
}
3667-
return false;
3668-
}
3669-
36703639
bool CStaticFunctionDefinitions::SetVehicleModelExhaustFumesPosition(unsigned short usModel, CVector& vecPosition)
36713640
{
36723641
if (CClientVehicleManager::IsValidModel(usModel))

Client/mods/deathmatch/logic/CStaticFunctionDefinitions.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,6 @@ class CStaticFunctionDefinitions
226226
static bool GetVehicleModelExhaustFumesPosition(unsigned short usModel, CVector& vecPosition);
227227
static bool SetVehicleModelDummyPosition(unsigned short usModel, eVehicleDummies eDummy, CVector& vecPosition);
228228
static bool GetVehicleModelDummyPosition(unsigned short usModel, eVehicleDummies eDummy, CVector& vecPosition);
229-
static bool GetVehicleModelWheelSize(unsigned short usModel, eResizableVehicleWheelGroup eWheelGroup, float& fWheelSize);
230229

231230
// Vehicle set functions
232231
static bool FixVehicle(CClientEntity& Entity);
@@ -271,7 +270,6 @@ class CStaticFunctionDefinitions
271270
static bool SetVehiclePlateText(CClientEntity& Entity, const SString& strText);
272271
static bool SetHeliBladeCollisionsEnabled(CClientVehicle& Vehicle, bool bEnabled);
273272
static bool SetVehicleWindowOpen(CClientVehicle& Vehicle, uchar ucWindow, bool bOpen);
274-
static bool SetVehicleModelWheelSize(unsigned short usModel, eResizableVehicleWheelGroup eWheelGroup, float fWheelSize);
275273

276274
// Object get funcs
277275
static CClientObject* CreateObject(CResource& Resource, unsigned short usModelID, const CVector& vecPosition, const CVector& vecRotation, bool bLowLod);

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

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4077,38 +4077,41 @@ bool CLuaVehicleDefs::SetVehicleWheelScale(CClientVehicle* const pVehicle, const
40774077
std::variant<float, std::unordered_map<std::string, float>> CLuaVehicleDefs::GetVehicleModelWheelSize(
40784078
const unsigned short usModel, const std::optional<eResizableVehicleWheelGroup> eWheelGroup)
40794079
{
4080-
eResizableVehicleWheelGroup eActualWheelGroup = eWheelGroup.value_or(eResizableVehicleWheelGroup::ALL_WHEELS);
4080+
CModelInfo* pModelInfo = nullptr;
4081+
if (CClientVehicleManager::IsValidModel(usModel))
4082+
pModelInfo = g_pGame->GetModelInfo(usModel);
4083+
4084+
if (!pModelInfo)
4085+
throw std::invalid_argument("Invalid model ID");
40814086

4087+
eResizableVehicleWheelGroup eActualWheelGroup = eWheelGroup.value_or(eResizableVehicleWheelGroup::ALL_WHEELS);
40824088
if (eActualWheelGroup == eResizableVehicleWheelGroup::ALL_WHEELS)
40834089
{
4084-
float fFrontWheelSize;
4085-
if (!CStaticFunctionDefinitions::GetVehicleModelWheelSize(usModel, eResizableVehicleWheelGroup::FRONT_AXLE, fFrontWheelSize))
4086-
throw std::invalid_argument("Invalid model ID");
4087-
4088-
float fRearWheelSize;
4089-
if (!CStaticFunctionDefinitions::GetVehicleModelWheelSize(usModel, eResizableVehicleWheelGroup::REAR_AXLE, fRearWheelSize))
4090-
throw std::invalid_argument("Invalid model ID");
4091-
40924090
// Return a table like { ["front_axle"] = 0.7, ["rear_axle"] = 0.8 }
40934091
return std::unordered_map<std::string, float>{
4094-
{"front_axle", fFrontWheelSize},
4095-
{"rear_axle", fRearWheelSize},
4092+
{"front_axle", pModelInfo->GetVehicleWheelSize(eResizableVehicleWheelGroup::FRONT_AXLE)},
4093+
{"rear_axle", pModelInfo->GetVehicleWheelSize(eResizableVehicleWheelGroup::REAR_AXLE)},
40964094
};
40974095
}
4098-
else
4099-
{
4100-
float fWheelSize;
4101-
if (!CStaticFunctionDefinitions::GetVehicleModelWheelSize(usModel, eActualWheelGroup, fWheelSize))
4102-
throw std::invalid_argument("Invalid model ID");
4103-
4104-
return fWheelSize;
4105-
}
4096+
return pModelInfo->GetVehicleWheelSize(eActualWheelGroup);
41064097
}
41074098

41084099
bool CLuaVehicleDefs::SetVehicleModelWheelSize(const unsigned short usModel, const eResizableVehicleWheelGroup eWheelGroup, const float fWheelSize)
41094100
{
4101+
CModelInfo* pModelInfo = nullptr;
4102+
41104103
if (fWheelSize <= 0)
41114104
throw std::invalid_argument("Invalid wheel size");
41124105

4113-
return CStaticFunctionDefinitions::SetVehicleModelWheelSize(usModel, eWheelGroup, fWheelSize);
4106+
if (CClientVehicleManager::IsValidModel(usModel))
4107+
pModelInfo = g_pGame->GetModelInfo(usModel);
4108+
4109+
if (!pModelInfo)
4110+
throw std::invalid_argument("Invalid model ID");
4111+
4112+
pModelInfo->SetVehicleWheelSize(eWheelGroup, fWheelSize);
4113+
// Restream needed to update ride height
4114+
m_pVehicleManager->RestreamVehicles(usModel);
4115+
4116+
return true;
41144117
}

0 commit comments

Comments
 (0)