diff options
Diffstat (limited to 'game/client/tf2/c_tf_hintmanager.h')
| -rw-r--r-- | game/client/tf2/c_tf_hintmanager.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/game/client/tf2/c_tf_hintmanager.h b/game/client/tf2/c_tf_hintmanager.h new file mode 100644 index 0000000..d96d80b --- /dev/null +++ b/game/client/tf2/c_tf_hintmanager.h @@ -0,0 +1,87 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef C_TF_HINTMANAGER_H +#define C_TF_HINTMANAGER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "shareddefs.h" + +class C_TFBaseHint; +class KeyValues; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class C_TFHintManager : public C_BaseEntity +{ + DECLARE_CLASS( C_TFHintManager, C_BaseEntity ); +public: + DECLARE_CLIENTCLASS(); + + C_TFHintManager( void ); + ~C_TFHintManager( void ); + + virtual void OnDataChanged( DataUpdateType_t updateType ); + + // Override think method + virtual void ClientThink( void ); + + // Add hint to list + C_TFBaseHint *AddHint( int hintID, const char *subsection, int entityIndex, int maxduplicates ); + + // Clear hints + void ClearHints( void ); + // Complete specified hint + void CompleteHint( int hintID, bool visibleOnly ); + // Determine ID of hint currently being shown to player + int GetCurrentHintID( void ); + + KeyValues *GetHintKeyValues( void ); + KeyValues *GetHintDisplayStats( void ); + + // Zero out all counters + void ResetDisplayStats( void ); + +private: + // See how many of the type of hint are already being shown + int CountInstancesOfHintID( int hintID ); + + // Hint list + CUtlVector< C_TFBaseHint * > m_aHints; + + KeyValues *m_pkvHintSystem; + KeyValues *m_pkvHintDisplayStats; +}; + + +#include "tf_hints.h" + +class C_TFBaseHint; +namespace vgui +{ + class Panel; +} +class KeyValues; + +// Use this when you want to allow an unlimited number of a certain type of hint +// Just a huge number of simultaneous duplicates allowed +#define HINTTYPE_NOLIMIT 5000 + +C_TFBaseHint *CreateGlobalHint( int hintid, const char *subsection = NULL, int entity = -1, int maxduplicates = 0 ); +C_TFBaseHint *CreateGlobalHint_Panel( vgui::Panel *targetPanel, int hintid, const char *subsection = NULL, int entity = -1, int maxduplicates = 0 ); +void DestroyGlobalHint( int hintid ); +KeyValues *GetHintKeyValues( void ); +KeyValues *GetHintDisplayStats( void ); + +// Returns true if hint system swallowed escape key +bool HintSystemEscapeKey( void ); + + +#endif // C_TF_HINTMANAGER_H |