// --------------------------------------------------------------- // BubbleMod // // AUTHOR // Tyler Lund // // LICENSE // // Permission is granted to anyone to use this software for // any purpose on any computer system, and to redistribute it // in any way, subject to the following restrictions: // // 1. The author is not responsible for the consequences of // use of this software, no matter how awful, even if they // arise from defects in it. // 2. The origin of this software must not be misrepresented, // either by explicit claim or by omission. // 3. Altered versions must be plainly marked as such, and // must not be misrepresented (by explicit claim or // omission) as being the original software. // 3a. It would be nice if I got a copy of your improved // version sent to halflife@bubblemod.org. // 4. This notice must not be removed or altered. // // --------------------------------------------------------------- // Snark Mines #ifndef SNARKMINE_H #define SNARKMINE_H #include "extdll.h" #include "monsters.h" #include "weapons.h" #include "nodes.h" #include "player.h" #include "effects.h" class CTripSnarkGrenade : public CGrenade { void Spawn( void ); void Precache( void ); virtual int Save( CSave &save ); virtual int Restore( CRestore &restore ); static TYPEDESCRIPTION m_SaveData[]; int TakeDamage( entvars_t *pevInflictor, entvars_t *pevAttacker, float flDamage, int bitsDamageType ); void EXPORT WarningThink( void ); void EXPORT PowerupThink( void ); void EXPORT BeamBreakThink( void ); void EXPORT DelayDeathThink( void ); void EXPORT RiftThink( void ); void Killed( entvars_t *pevAttacker, int iGib ); void Explode( TraceResult *pTrace ); void MakeBeam( void ); void KillBeam( void ); BOOL IsSpawnMine( void ); float m_flPowerUp; Vector m_vecDir; Vector m_vecEnd; float m_flBeamLength; EHANDLE m_hOwner; CBeam *m_pBeam; Vector m_posOwner; Vector m_angleOwner; edict_t *m_pRealOwner;// tracelines don't hit PEV->OWNER, which means a player couldn't detonate his own trip mine, so we store the owner here. private: int m_RiftTime; CSprite *m_pSprite; short m_LaserSprite; public: void Deactivate( void ); edict_t *Owner( void ) { return m_pRealOwner; }; }; #endif