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.
63 lines
1.9 KiB
63 lines
1.9 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: CTrainingAnnotation Entity. This entity is used to place |
|
// annotations on maps. |
|
//=============================================================================// |
|
|
|
#include "cbase.h" |
|
#include "entity_training_annotations.h" |
|
|
|
// memdbgon must be the last include file in a .cpp file!!! |
|
#include "tier0/memdbgon.h" |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Show an anotation in 3D space in the hud to point out things of |
|
// interest to the player. |
|
//----------------------------------------------------------------------------- |
|
BEGIN_DATADESC( CTrainingAnnotation ) |
|
DEFINE_KEYFIELD( m_displayText, FIELD_STRING, "display_text" ), |
|
DEFINE_KEYFIELD( m_flLifetime, FIELD_FLOAT, "lifetime" ), |
|
DEFINE_KEYFIELD( m_flVerticalOffset, FIELD_FLOAT, "offset" ), |
|
DEFINE_INPUTFUNC( FIELD_VOID, "Show", InputShow ), |
|
DEFINE_INPUTFUNC( FIELD_VOID, "Hide", InputHide ), |
|
END_DATADESC() |
|
|
|
LINK_ENTITY_TO_CLASS( training_annotation, CTrainingAnnotation ); |
|
|
|
CTrainingAnnotation::CTrainingAnnotation() |
|
: m_flLifetime(1.0f), |
|
m_flVerticalOffset(0.0f) |
|
{ |
|
|
|
} |
|
|
|
void CTrainingAnnotation::Show() |
|
{ |
|
IGameEvent *pEvent = gameeventmanager->CreateEvent( "show_annotation" ); |
|
if ( pEvent ) |
|
{ |
|
Vector location = GetAbsOrigin(); |
|
|
|
pEvent->SetString( "text", STRING( m_displayText ) ); |
|
pEvent->SetInt( "id", (long)this ); |
|
pEvent->SetFloat( "worldPosX", location.x ); |
|
pEvent->SetFloat( "worldPosY", location.y ); |
|
pEvent->SetFloat( "worldPosZ", location.z + m_flVerticalOffset ); |
|
pEvent->SetFloat( "lifetime", m_flLifetime ); |
|
pEvent->SetInt( "follow_entindex", 0 ); |
|
|
|
gameeventmanager->FireEvent( pEvent ); |
|
} |
|
} |
|
|
|
void CTrainingAnnotation::Hide() |
|
{ |
|
IGameEvent *pEvent = gameeventmanager->CreateEvent( "hide_annotation" ); |
|
if ( pEvent ) |
|
{ |
|
pEvent->SetInt( "id", (long)this ); |
|
gameeventmanager->FireEventClientSide( pEvent ); |
|
} |
|
} |
|
|
|
|
|
|