summaryrefslogtreecommitdiffstats
path: root/src/vehicles
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2020-03-29 19:12:53 +0200
committerGitHub <noreply@github.com>2020-03-29 19:12:53 +0200
commit8e3ee096e2ec54ea852c29f8eb44ec0eaa4588cd (patch)
treee086c6d1056146aa7b986e602a6dc00bd4db3632 /src/vehicles
parentMerge pull request #370 from erorcun/erorcun (diff)
parentfixed PS2 build (diff)
downloadre3-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.cpp24
-rw-r--r--src/vehicles/Vehicle.h2
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);