blob: 71b29e4a564eb9f31019087bccdc828e13ffc91e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "c_hint_events.h"
#include "c_tf_hints.h"
#include "c_tf_hintmanager.h"
#include <KeyValues.h>
#include "c_baseobject.h"
void GlobalHintEvent( C_HintEvent_Base *pEvent )
{
// Call the static registered functions for each hint type.
for ( int i=0; i < GetNumHintDatas(); i++ )
{
CHintData *pData = GetHintData( i );
if ( pData && pData->m_pEventFn )
pData->m_pEventFn( pData, pEvent );
}
}
void HintEventFn_BuildObject( CHintData *pData, C_HintEvent_Base *pEvent )
{
if ( pEvent->GetType() == HINTEVENT_OBJECT_BUILT_BY_LOCAL_PLAYER )
{
C_BaseObject *pObj = ((C_HintEvent_ObjectBuiltByLocalPlayer*)pEvent)->m_pObject;
if ( pObj->GetType() == pData->m_ObjectType )
{
// Ok, they just built the object that any hints of this type are referring to, so disable
// all further hints of this type.
KeyValues *pkvStats = GetHintDisplayStats();
if ( pkvStats )
{
KeyValues *pkvStatSection = pkvStats->FindKey( pData->name, true );
if ( pkvStatSection )
{
pkvStatSection->SetString( "times_shown", VarArgs( "%i", 100 ) );
}
}
}
}
}
|