diff options
author | aap <aap@papnet.eu> | 2020-03-29 19:12:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-29 19:12:53 +0200 |
commit | 8e3ee096e2ec54ea852c29f8eb44ec0eaa4588cd (patch) | |
tree | e086c6d1056146aa7b986e602a6dc00bd4db3632 /src/vehicles | |
parent | Merge pull request #370 from erorcun/erorcun (diff) | |
parent | fixed PS2 build (diff) | |
download | re3-8e3ee096e2ec54ea852c29f8eb44ec0eaa4588cd.tar re3-8e3ee096e2ec54ea852c29f8eb44ec0eaa4588cd.tar.gz re3-8e3ee096e2ec54ea852c29f8eb44ec0eaa4588cd.tar.bz2 re3-8e3ee096e2ec54ea852c29f8eb44ec0eaa4588cd.tar.lz re3-8e3ee096e2ec54ea852c29f8eb44ec0eaa4588cd.tar.xz re3-8e3ee096e2ec54ea852c29f8eb44ec0eaa4588cd.tar.zst re3-8e3ee096e2ec54ea852c29f8eb44ec0eaa4588cd.zip |
Diffstat (limited to '')
-rw-r--r-- | src/vehicles/Vehicle.cpp | 24 | ||||
-rw-r--r-- | src/vehicles/Vehicle.h | 2 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/vehicles/Vehicle.cpp b/src/vehicles/Vehicle.cpp index 54bc2c01..1fe02953 100644 --- a/src/vehicles/Vehicle.cpp +++ b/src/vehicles/Vehicle.cpp @@ -17,6 +17,7 @@ #include "DMAudio.h" #include "Radar.h" #include "Fire.h" +#include "Darkel.h" bool &CVehicle::bWheelsOnlyCheat = *(bool *)0x95CD78; bool &CVehicle::bAllDodosCheat = *(bool *)0x95CD75; @@ -765,6 +766,29 @@ CVehicle::IsSphereTouchingVehicle(float sx, float sy, float sz, float radius) return true; } +void +DestroyVehicleAndDriverAndPassengers(CVehicle* pVehicle) +{ + if (pVehicle->pDriver) { +#ifndef FIX_BUGS + // this just isn't fair + CDarkel::RegisterKillByPlayer(pVehicle->pDriver, WEAPONTYPE_UNIDENTIFIED); +#endif + pVehicle->pDriver->FlagToDestroyWhenNextProcessed(); + } + for (int i = 0; i < pVehicle->m_nNumMaxPassengers; i++) { + if (pVehicle->pPassengers[i]) { +#ifndef FIX_BUGS + // this just isn't fair + CDarkel::RegisterKillByPlayer(pVehicle->pPassengers[i], WEAPONTYPE_UNIDENTIFIED); +#endif + pVehicle->pPassengers[i]->FlagToDestroyWhenNextProcessed(); + } + } + CWorld::Remove(pVehicle); + delete pVehicle; +} + class CVehicle_ : public CVehicle { diff --git a/src/vehicles/Vehicle.h b/src/vehicles/Vehicle.h index 68b7b2ca..2ca97841 100644 --- a/src/vehicles/Vehicle.h +++ b/src/vehicles/Vehicle.h @@ -301,3 +301,5 @@ public: }; static_assert(sizeof(cVehicleParams) == 0x18, "cVehicleParams: error"); + +void DestroyVehicleAndDriverAndPassengers(CVehicle* pVehicle); |