2019-06-30 06:59:55 -04:00
|
|
|
#include "common.h"
|
|
|
|
#include "patcher.h"
|
|
|
|
#include "Fire.h"
|
|
|
|
|
2019-07-09 12:50:35 -04:00
|
|
|
CFireManager &gFireManager = *(CFireManager*)0x8F31D0;
|
|
|
|
|
|
|
|
WRAPPER void CFire::Extinguish(void) { EAXJMP(0x479D40); }
|
|
|
|
|
2019-09-14 19:28:07 -04:00
|
|
|
CFire* CFireManager::FindNearestFire(CVector vecPos, float* pDistance)
|
|
|
|
{
|
|
|
|
for (int i = 0; i < MAX_FIREMEN_ATTENDING; i++) {
|
|
|
|
int fireId = -1;
|
|
|
|
float minDistance = 999999;
|
|
|
|
for (int j = 0; j < NUM_FIRES; j++) {
|
|
|
|
if (!m_aFires[j].m_bIsOngoing)
|
|
|
|
continue;
|
|
|
|
if (m_aFires[j].m_bIsScriptFire)
|
|
|
|
continue;
|
|
|
|
if (m_aFires[j].m_nFiremenPuttingOut != i)
|
|
|
|
continue;
|
|
|
|
float distance = (m_aFires[j].m_vecPos - vecPos).Magnitude2D();
|
|
|
|
if (distance < minDistance) {
|
|
|
|
minDistance = distance;
|
|
|
|
fireId = j;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*pDistance = minDistance;
|
|
|
|
if (fireId != -1)
|
|
|
|
return &m_aFires[fireId];
|
|
|
|
}
|
|
|
|
return nil;
|
|
|
|
}
|
|
|
|
|
2019-07-09 12:50:35 -04:00
|
|
|
WRAPPER void CFireManager::StartFire(CEntity *entityOnFire, CEntity *culprit, float, uint32) { EAXJMP(0x479590); }
|
2019-07-26 08:27:13 -04:00
|
|
|
WRAPPER CFire *CFireManager::FindFurthestFire_NeverMindFireMen(CVector coors, float, float) { EAXJMP(0x479430); }
|