Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Implements visual effects entities: sprites, beams, bubbles, etc.
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "engine/IEngineSound.h"
#include "baseentity.h"
#include "entityoutput.h"
#include "recipientfilter.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
#define SF_HUDHINT_ALLPLAYERS 0x0001
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
class CEnvHudHint : public CPointEntity { public: DECLARE_CLASS( CEnvHudHint, CPointEntity );
void Spawn( void ); void Precache( void );
private: inline bool AllPlayers( void ) { return (m_spawnflags & SF_HUDHINT_ALLPLAYERS) != 0; }
void InputShowHudHint( inputdata_t &inputdata ); void InputHideHudHint( inputdata_t &inputdata ); string_t m_iszMessage; DECLARE_DATADESC(); };
LINK_ENTITY_TO_CLASS( env_hudhint, CEnvHudHint );
BEGIN_DATADESC( CEnvHudHint )
DEFINE_KEYFIELD( m_iszMessage, FIELD_STRING, "message" ), DEFINE_INPUTFUNC( FIELD_VOID, "ShowHudHint", InputShowHudHint ), DEFINE_INPUTFUNC( FIELD_VOID, "HideHudHint", InputHideHudHint ),
END_DATADESC()
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CEnvHudHint::Spawn( void ) { Precache();
SetSolid( SOLID_NONE ); SetMoveType( MOVETYPE_NONE ); }
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CEnvHudHint::Precache( void ) { }
//-----------------------------------------------------------------------------
// Purpose: Input handler for showing the message and/or playing the sound.
//-----------------------------------------------------------------------------
void CEnvHudHint::InputShowHudHint( inputdata_t &inputdata ) { if ( AllPlayers() ) { CReliableBroadcastRecipientFilter user; UserMessageBegin( user, "KeyHintText" ); WRITE_BYTE( 1 ); // one message
WRITE_STRING( STRING(m_iszMessage) ); MessageEnd(); } else { CBaseEntity *pPlayer = NULL; if ( inputdata.pActivator && inputdata.pActivator->IsPlayer() ) { pPlayer = inputdata.pActivator; } else { pPlayer = UTIL_GetLocalPlayer(); }
if ( !pPlayer || !pPlayer->IsNetClient() ) return;
CSingleUserRecipientFilter user( (CBasePlayer *)pPlayer ); user.MakeReliable(); UserMessageBegin( user, "KeyHintText" ); WRITE_BYTE( 1 ); // one message
WRITE_STRING( STRING(m_iszMessage) ); MessageEnd(); } }
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void CEnvHudHint::InputHideHudHint( inputdata_t &inputdata ) { if ( AllPlayers() ) { CReliableBroadcastRecipientFilter user; UserMessageBegin( user, "KeyHintText" ); WRITE_BYTE( 1 ); // one message
WRITE_STRING( STRING(NULL_STRING) ); MessageEnd(); } else { CBaseEntity *pPlayer = NULL;
if ( inputdata.pActivator && inputdata.pActivator->IsPlayer() ) { pPlayer = inputdata.pActivator; } else { pPlayer = UTIL_GetLocalPlayer(); }
if ( !pPlayer || !pPlayer->IsNetClient() ) return;
CSingleUserRecipientFilter user( (CBasePlayer *)pPlayer ); user.MakeReliable(); UserMessageBegin( user, "KeyHintText" ); WRITE_BYTE( 1 ); // one message
WRITE_STRING( STRING(NULL_STRING) ); MessageEnd(); } }
|