@@ -86,11 +86,12 @@ CVehicle* CPoolsSA::AddVehicle(CClientVehicle* pClientVehicle, std::uint16_t mod
8686 if (!pInterface)
8787 return nullptr ;
8888
89- const auto * const pModelInfo = pGame->GetModelInfo (model);
90- if (!pModelInfo || !pModelInfo->IsVehicle ())
89+ // Valid model?
90+ const auto * const modelInfo = pGame->GetModelInfo (model);
91+ if (!modelInfo || !modelInfo->IsVehicle ())
9192 return nullptr ;
9293
93- auto vehicleClass = static_cast <VehicleClass>(pModelInfo ->GetVehicleType ());
94+ auto vehicleClass = static_cast <VehicleClass>(modelInfo ->GetVehicleType ());
9495
9596 std::unique_ptr<CVehicleSA> vehicle = nullptr ;
9697 switch (vehicleClass)
@@ -585,16 +586,21 @@ static void CreateMissionTrain(const CVector& vecPos, bool bDirection, std::uint
585586 }
586587}
587588
588- CVehicle* CPoolsSA::AddTrain (CClientVehicle* pClientVehicle, const CVector& vecPosition, std::vector<DWORD> Models , bool bDirection,
589+ CVehicle* CPoolsSA::AddTrain (CClientVehicle* pClientVehicle, const CVector& vecPosition, std::vector<DWORD> models , bool bDirection,
589590 std::uint8_t ucTrackId) noexcept
590591{
591592 // clean the existing array
592593 MemSetFast ((void *)VAR_TrainModelArray, 0 , 32 * sizeof (DWORD));
593594
594595 // now load the models we're going to use and add them to the array
595596 std::size_t count = 0 ;
596- for (const auto model : Models )
597+ for (const auto model : models )
597598 {
599+ // Valid model?
600+ const auto * const modelInfo = pGame->GetModelInfo (model);
601+ if (!modelInfo || !modelInfo->IsVehicle ())
602+ return nullptr ;
603+
598604 if (model == 449 || model == 537 || model == 538 || model == 569 || model == 590 || model == 570 )
599605 {
600606 MemPutFast<DWORD>(VAR_TrainModelArray + count * 4 , model);
0 commit comments