This commit is contained in:
Sergeanur
2020-01-11 14:49:37 +02:00
parent 6af77d8514
commit 8fab684283
2 changed files with 0 additions and 0 deletions

View File

@ -1,59 +0,0 @@
#include "common.h"
#include "patcher.h"
#include "AccidentManager.h"
#include "Ped.h"
CAccidentManager& gAccidentManager = *(CAccidentManager*)0x87FD10;
WRAPPER void CAccidentManager::Update(void) { EAXJMP(0x456710); }
uint16
CAccidentManager::CountActiveAccidents()
{
uint16 accidents = 0;
for (int i = 0; i < NUM_ACCIDENTS; i++){
if (m_aAccidents[i].m_pVictim)
accidents++;
}
return accidents;
}
CAccident*
CAccidentManager::FindNearestAccident(CVector vecPos, float* pDistance)
{
for (int i = 0; i < MAX_MEDICS_TO_ATTEND_ACCIDENT; i++){
int accidentId = -1;
float minDistance = 999999;
for (int j = 0; j < NUM_ACCIDENTS; j++){
CPed* pVictim = m_aAccidents[j].m_pVictim;
if (!pVictim)
continue;
if (pVictim->CharCreatedBy == MISSION_CHAR)
continue;
if (pVictim->m_fHealth != 0.0f)
continue;
if (m_aAccidents[j].m_nMedicsPerformingCPR != i)
continue;
float distance = (pVictim->GetPosition() - vecPos).Magnitude2D();
if (distance / 2 > pVictim->GetPosition().z - vecPos.z && distance < minDistance){
minDistance = distance;
accidentId = j;
}
}
*pDistance = minDistance;
if (accidentId != -1)
return &m_aAccidents[accidentId];
}
return nil;
}
bool
CAccidentManager::UnattendedAccidents(void)
{
for (int i = 0; i < NUM_ACCIDENTS; i++) {
if (m_aAccidents[i].m_pVictim && m_aAccidents[i].m_nMedicsAttending == 0)
return true;
}
return false;
}

View File

@ -1,29 +0,0 @@
#pragma once
#include "common.h"
#include "config.h"
class CPed;
class CAccident
{
public:
CPed *m_pVictim;
uint32 m_nMedicsAttending;
uint32 m_nMedicsPerformingCPR;
CAccident() : m_pVictim(nil), m_nMedicsAttending(0), m_nMedicsPerformingCPR(0) {}
};
class CAccidentManager
{
CAccident m_aAccidents[NUM_ACCIDENTS];
enum {
MAX_MEDICS_TO_ATTEND_ACCIDENT = 2
};
public:
uint16 CountActiveAccidents();
bool UnattendedAccidents();
CAccident* FindNearestAccident(CVector, float*);
void Update(void);
};
extern CAccidentManager& gAccidentManager;