diff options
Diffstat (limited to 'game/server/tf2/team_messages.h')
| -rw-r--r-- | game/server/tf2/team_messages.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/game/server/tf2/team_messages.h b/game/server/tf2/team_messages.h new file mode 100644 index 0000000..536e836 --- /dev/null +++ b/game/server/tf2/team_messages.h @@ -0,0 +1,83 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef TEAM_MESSAGES_H +#define TEAM_MESSAGES_H +#ifdef _WIN32 +#pragma once +#endif + +#include "utlsymbol.h" + +// Message IDs +enum +{ + // Reinforcements + TEAMMSG_REINFORCEMENTS_ARRIVED, + + // Carriers / Harvesters + TEAMMSG_CARRIER_UNDER_ATTACK, + TEAMMSG_CARRIER_DESTROYED, + TEAMMSG_HARVESTER_UNDER_ATTACK, + TEAMMSG_HARVESTER_DESTROYED, + + // Resources + TEAMMSG_RESOURCE_ZONE_EMPTIED, + + // Techtree + TEAMMSG_NEW_TECH_LEVEL_OPEN, + + // Custom sounds + TEAMMSG_CUSTOM_SOUND, +}; + +//----------------------------------------------------------------------------- +// Purpose: Message sent to a team for the purpose of updating its members about some event +//----------------------------------------------------------------------------- +abstract_class CTeamMessage +{ +public: + CTeamMessage( CTFTeam *pTeam, int iMessageID, CBaseEntity *pEntity, float flTTL ); + + static CTeamMessage *Create( CTFTeam *pTeam, int iMessageID, CBaseEntity *pEntity ); + + // Called when the team manager wants me to fire myself + virtual void FireMessage( void ) = 0; + + // Accessors + virtual int GetID( void ) { return m_iMessageID; }; + virtual float GetTTL( void ) { return m_flTTL; }; + virtual CBaseEntity *GetEntity( void ) { return m_hEntity; }; + virtual CTFTeam *GetTeam( void ) { return m_pTeam; }; + + virtual void SetData( char *pszData ) { return; } + +protected: + int m_iMessageID; + float m_flTTL; + EHANDLE m_hEntity; + CTFTeam *m_pTeam; + CUtlSymbol m_SoundName; +}; + +//----------------------------------------------------------------------------- +// Purpose: Team message that plays a sound to the members of the team +//----------------------------------------------------------------------------- +class CTeamMessage_Sound : public CTeamMessage +{ +public: + CTeamMessage_Sound( CTFTeam *pTeam, int iMessageID, CBaseEntity *pEntity, float flTTL ); + + // Set my sound + virtual void SetSound( char *sSound ); + // Called when the team manager wants me to fire myself + virtual void FireMessage( void ); + + virtual void SetData( char *pszData ) { SetSound( pszData ); } +}; + +#endif // TEAM_MESSAGES_H |