garages part 1

This commit is contained in:
Nikolay Korolev
2020-03-28 15:24:13 +03:00
parent 8703758a7b
commit 268f92bfbe
13 changed files with 795 additions and 50 deletions

View File

@ -16,6 +16,7 @@
#include "Renderer.h"
#include "DMAudio.h"
#include "Radar.h"
#include "Darkel.h"
bool &CVehicle::bWheelsOnlyCheat = *(bool *)0x95CD78;
bool &CVehicle::bAllDodosCheat = *(bool *)0x95CD75;
@ -763,6 +764,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
{

View File

@ -300,3 +300,5 @@ public:
};
static_assert(sizeof(cVehicleParams) == 0x18, "cVehicleParams: error");
void DestroyVehicleAndDriverAndPassengers(CVehicle* pVehicle);