mirror of
https://github.com/halpz/re3.git
synced 2025-07-05 00:10:46 +00:00
CCarCtrl
This commit is contained in:
@ -6,5 +6,30 @@ CFireManager &gFireManager = *(CFireManager*)0x8F31D0;
|
||||
|
||||
WRAPPER void CFire::Extinguish(void) { EAXJMP(0x479D40); }
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
WRAPPER void CFireManager::StartFire(CEntity *entityOnFire, CEntity *culprit, float, uint32) { EAXJMP(0x479590); }
|
||||
WRAPPER CFire *CFireManager::FindFurthestFire_NeverMindFireMen(CVector coors, float, float) { EAXJMP(0x479430); }
|
||||
|
@ -6,7 +6,7 @@ class CFire
|
||||
{
|
||||
public:
|
||||
bool m_bIsOngoing;
|
||||
bool m_bExists;
|
||||
bool m_bIsScriptFire;
|
||||
bool m_bPropogationFlag;
|
||||
bool m_bAudioSet;
|
||||
CVector m_vecPos;
|
||||
@ -16,7 +16,7 @@ public:
|
||||
int m_nStartTime;
|
||||
int field_20;
|
||||
int field_24;
|
||||
int field_28;
|
||||
uint32 m_nFiremenPuttingOut;
|
||||
float field_2C;
|
||||
|
||||
void Extinguish(void);
|
||||
@ -24,8 +24,15 @@ public:
|
||||
|
||||
class CFireManager
|
||||
{
|
||||
enum {
|
||||
MAX_FIREMEN_ATTENDING = 2,
|
||||
};
|
||||
uint32 m_nTotalFires;
|
||||
CFire m_aFires[NUM_FIRES];
|
||||
public:
|
||||
void StartFire(CEntity *entityOnFire, CEntity *culprit, float, uint32);
|
||||
CFire *FindFurthestFire_NeverMindFireMen(CVector coors, float, float);
|
||||
CFire *FindNearestFire(CVector, float*);
|
||||
uint32 GetTotalActiveFires() const { return m_nTotalFires; }
|
||||
};
|
||||
extern CFireManager &gFireManager;
|
||||
|
@ -75,6 +75,9 @@ enum Config {
|
||||
NUM_CARGENS = 160,
|
||||
|
||||
NUM_PATH_NODES_IN_AUTOPILOT = 8,
|
||||
|
||||
NUM_ACCIDENTS = 20,
|
||||
NUM_FIRES = 40
|
||||
};
|
||||
|
||||
// We'll use this once we're ready to become independent of the game
|
||||
|
Reference in New Issue
Block a user