summaryrefslogtreecommitdiffstats
path: root/src/weapons/Explosion.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/weapons/Explosion.h')
-rw-r--r--src/weapons/Explosion.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/weapons/Explosion.h b/src/weapons/Explosion.h
new file mode 100644
index 00000000..e6ef9496
--- /dev/null
+++ b/src/weapons/Explosion.h
@@ -0,0 +1,50 @@
+#pragma once
+
+class CEntity;
+class CVector;
+
+enum eExplosionType
+{
+ EXPLOSION_GRENADE,
+ EXPLOSION_MOLOTOV,
+ EXPLOSION_ROCKET,
+ EXPLOSION_CAR,
+ EXPLOSION_CAR_QUICK,
+ EXPLOSION_HELI,
+ EXPLOSION_MINE,
+ EXPLOSION_BARREL,
+ EXPLOSION_TANK_GRENADE,
+ EXPLOSION_HELI_BOMB
+};
+
+class CExplosion
+{
+ eExplosionType m_ExplosionType;
+ CVector m_vecPosition;
+ float m_fRadius;
+ float m_fPropagationRate;
+ CEntity *m_pCreatorEntity;
+ CEntity *m_pVictimEntity;
+ float m_fStopTime;
+ bool m_bActive;
+ int8 m_bActiveCounter;
+ int32 m_nStartTime;
+ uint32 m_nParticlesExpireTime;
+ float m_fPower;
+ int32 field_34;
+ int32 field_38;
+public:
+ static void Initialise();
+ static void Shutdown();
+ static void AddExplosion(CEntity *explodingEntity, CEntity *culprit, eExplosionType type,
+ const CVector &pos, uint32);
+
+ static int8 GetExplosionActiveCounter(uint8 id);
+ static CVector *GetExplosionPosition(uint8 id);
+ static uint8 GetExplosionType(uint8 id);
+ static void ResetExplosionActiveCounter(uint8 id);
+ static void RemoveAllExplosionsInArea(CVector, float);
+ static bool TestForExplosionInArea(eExplosionType, float, float, float, float, float, float);
+};
+
+extern CExplosion (&gaExplosion)[48]; \ No newline at end of file