diff options
Diffstat (limited to '')
-rw-r--r-- | src/vehicles/Vehicle.cpp | 15 | ||||
-rw-r--r-- | src/vehicles/Vehicle.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp index 2b0132b2..fe798514 100644 --- a/src/vehicles/Vehicle.cpp +++ b/src/vehicles/Vehicle.cpp @@ -1368,3 +1368,18 @@ CVehicle::GetVehicleAppearance(void) return VEHICLE_APPEARANCE_HELI; return VEHICLE_APPEARANCE_NONE; } + +bool +IsVehiclePointerValid(CVehicle* pVehicle) +{ + if (!pVehicle) + return false; + int index = CPools::GetVehiclePool()->GetJustIndex(pVehicle); +#ifdef FIX_BUGS + if (index < 0 || index >= NUMVEHICLES) +#else + if (index < 0 || index > NUMVEHICLES) +#endif + return false; + return pVehicle->m_vehType == VEHICLE_TYPE_PLANE || pVehicle->m_entryInfoList.first; +} diff --git a/src/vehicles/Vehicle.h b/src/vehicles/Vehicle.h index 5ec20c43..c2cfa5e4 100644 --- a/src/vehicles/Vehicle.h +++ b/src/vehicles/Vehicle.h @@ -314,3 +314,4 @@ public: }; void DestroyVehicleAndDriverAndPassengers(CVehicle* pVehicle); +bool IsVehiclePointerValid(CVehicle* pVehicle); |