diff options
Diffstat (limited to 'src/weapons/Explosion.h')
-rw-r--r-- | src/weapons/Explosion.h | 50 |
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 |