/*** * * Copyright (c) 1996-2001, Valve LLC. All rights reserved. * * This product contains software technology licensed from Id * Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc. * All Rights Reserved. * * This source code contains proprietary and confidential information of * Valve LLC and its suppliers. Access to this code is restricted to * persons who have executed a written SDK license with Valve. Any access, * use or distribution of this code by or to any unlicensed person is illegal. * ****/ #ifndef SPORE_GRENADE_H #define SPORE_GRENADE_H // Contact/Timed spore grenade class CSpore : public CGrenade { public: enum SporeType { ROCKET = 1, GRENADE = 2 }; public: #ifndef CLIENT_DLL int Save(CSave& save); int Restore(CRestore& restore); static TYPEDESCRIPTION m_SaveData[]; #endif void Precache(); void Spawn(); void UpdateOnRemove(); void BounceSound(); void EXPORT IgniteThink(); void EXPORT FlyThink(); void EXPORT GibThink(); void EXPORT RocketTouch(CBaseEntity* pOther); void EXPORT MyBounceTouch(CBaseEntity* pOther); static CSpore* CreateSpore( const Vector& vecOrigin, const Vector& vecAngles, CBaseEntity* pOwner, SporeType sporeType, bool bIsAI, bool bPuked); private: int m_iBlow; int m_iBlowSmall; int m_iSpitSprite; int m_iTrail; SporeType m_SporeType; float m_flIgniteTime; float m_flSoundDelay; BOOL m_bIsAI; EHANDLE m_hSprite; BOOL m_bPuked; }; #endif // SPORE_GRENADE_H