summaryrefslogtreecommitdiff
path: root/src/core/Fire.h
diff options
context:
space:
mode:
authorclaude-bot <[email protected]>2026-07-13 12:27:07 +0000
committerclaude-bot <[email protected]>2026-07-13 12:27:07 +0000
commit9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686 (patch)
treea84756b82513739a2672db3a1f0ec579db6d18ff /src/core/Fire.h
downloadre3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.tar.gz
re3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.zip
Import Cai1Hsu/re3 @ miami (reVC / GTA:VC decompilation)HEADmiami
Snapshot import (no upstream history) into git.ancap.in.ua/claude, per @lzcnt. Source: https://github.com/Cai1Hsu/re3 branch miami.
Diffstat (limited to 'src/core/Fire.h')
-rw-r--r--src/core/Fire.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/core/Fire.h b/src/core/Fire.h
new file mode 100644
index 0000000..8126f83
--- /dev/null
+++ b/src/core/Fire.h
@@ -0,0 +1,53 @@
+#pragma once
+
+class CEntity;
+
+class CFire
+{
+public:
+ bool m_bIsOngoing;
+ bool m_bIsScriptFire;
+ bool m_bPropagationFlag;
+ bool m_bAudioSet;
+ CVector m_vecPos;
+ CEntity *m_pEntity;
+ CEntity *m_pSource;
+ uint32 m_nExtinguishTime;
+ uint32 m_nStartTime;
+ uint32 m_nNextTimeToAddFlames;
+ float m_fStrength;
+ float m_fWaterExtinguishCountdown;
+ bool m_bExtinguishedWithWater;
+
+ CFire();
+ ~CFire();
+ void ProcessFire(void);
+ void ReportThisFire(void);
+ void Extinguish(void);
+};
+
+class CFireManager
+{
+ enum {
+ MAX_FIREMEN_ATTENDING = 2,
+ };
+public:
+ uint32 m_nTotalFires;
+ CFire m_aFires[NUM_FIRES];
+
+ void StartFire(CVector pos, float size, uint8 propagation);
+ CFire *StartFire(CEntity *entityOnFire, CEntity *fleeFrom, float strength, uint8 propagation);
+ void Update(void);
+ CFire *FindFurthestFire_NeverMindFireMen(CVector coords, float minRange, float maxRange);
+ CFire *FindNearestFire(CVector vecPos, float *pDistance);
+ CFire *GetNextFreeFire(void);
+ uint32 GetTotalActiveFires() const;
+ void ExtinguishPoint(CVector point, float range);
+ bool ExtinguishPointWithWater(CVector point, float range);
+ int32 StartScriptFire(const CVector &pos, CEntity *target, float strength, uint8 propagation);
+ bool IsScriptFireExtinguish(int16 index);
+ void RemoveAllScriptFires(void);
+ void RemoveScriptFire(int16 index);
+ void SetScriptFireAudio(int16 index, bool state);
+};
+extern CFireManager gFireManager;