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.
123 lines
3.3 KiB
123 lines
3.3 KiB
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose: Displays HUD elements for medals/achievements, and hint text
|
|
//
|
|
//=====================================================================================//
|
|
#ifndef SFHUDINFOPANEL_H_
|
|
#define SFHUDINFOPANEL_H_
|
|
|
|
#include "hud.h"
|
|
#include "hud_element_helper.h"
|
|
#include "scaleformui/scaleformui.h"
|
|
#include "sfhudflashinterface.h"
|
|
#include "cs_gamerules.h"
|
|
#include "c_cs_player.h"
|
|
#include "tier1/utlqueue.h"
|
|
|
|
class SFHudInfoPanel : public SFHudFlashInterface
|
|
{
|
|
enum HUDINFO_TYPE
|
|
{
|
|
SFHUDINFO_All,
|
|
SFHUDINFO_Help,
|
|
SFHUDINFO_Defuse,
|
|
SFHUDINFO_Medal,
|
|
SFHUDINFO_PriorityMessage
|
|
};
|
|
|
|
public:
|
|
explicit SFHudInfoPanel( const char *value );
|
|
virtual ~SFHudInfoPanel();
|
|
|
|
// These overload the CHudElement class
|
|
virtual void ProcessInput( void );
|
|
virtual void LevelInit( void );
|
|
virtual void LevelShutdown( void );
|
|
virtual bool ShouldDraw( void );
|
|
virtual void SetActive( bool bActive );
|
|
|
|
virtual void Reset( void );
|
|
|
|
// these overload the ScaleformFlashInterfaceMixin class
|
|
virtual void FlashReady( void );
|
|
virtual bool PreUnloadFlash( void );
|
|
|
|
// receivers for hint messages
|
|
bool MsgFunc_HintText( const CCSUsrMsg_HintText &msg );
|
|
bool MsgFunc_KeyHintText( const CCSUsrMsg_KeyHintText &msg );
|
|
|
|
virtual void FireGameEvent( IGameEvent * event );
|
|
|
|
// Priority text replaces what used to be called CenterPrint text in VGui
|
|
void SetPriorityText( char *pMsg );
|
|
void SetPriorityText( wchar_t *pMsg );
|
|
void SetPriorityHintText( wchar_t *pMsg );
|
|
|
|
// Offsets the Y location of the notification panels
|
|
void ApplyYOffset( int nOffset );
|
|
bool IsVisible( void ) { return m_bIsVisible; }
|
|
|
|
CUserMessageBinder m_UMCMsgHintText;
|
|
CUserMessageBinder m_UMCMsgKeyHintText;
|
|
CUserMessageBinder m_UMCMsgQuestProgress;
|
|
|
|
protected:
|
|
void ModifyPriorityTextWindow( bool bMsgSet );
|
|
|
|
void ShowPanel( HUDINFO_TYPE panelType, bool value );
|
|
|
|
// Only call this function if you're already inside of a slot-lock block!
|
|
void ShowPanelNoLock( HUDINFO_TYPE panelType, bool value );
|
|
|
|
void HideAll( void );
|
|
void LockSlot( bool wantItLocked, bool& currentlyLocked );
|
|
|
|
bool SetHintText( wchar_t *text );
|
|
|
|
void LocalizeAndDisplay( const char *pszHudTxtMsg, const char *szRawString );
|
|
|
|
protected:
|
|
SFVALUE m_HelpPanelHandle;
|
|
SFVALUE m_HelpBodyTextHandle;
|
|
|
|
CountdownTimer m_HintDisplayTimer;
|
|
|
|
SFVALUE m_DefusePanelHandle;
|
|
SFVALUE m_DefuseTitleTextHandle;
|
|
SFVALUE m_DefuseBodyTextHandle;
|
|
SFVALUE m_DefuseTimerTextHandle;
|
|
|
|
SFVALUE m_DefuseIconKit;
|
|
SFVALUE m_DefuseIconNoKit;
|
|
|
|
float m_PreviousDefusePercent;
|
|
|
|
SFVALUE m_MedalPanelHandle;
|
|
SFVALUE m_MedalTitleTextHandle;
|
|
SFVALUE m_MedalBodyTextHandle;
|
|
|
|
struct AchivementQueueInfo
|
|
{
|
|
eCSAchievementType type;
|
|
int playerSlot;
|
|
};
|
|
|
|
CUtlQueue<AchivementQueueInfo> m_achievementQueue;
|
|
eCSAchievementType m_activeAchievement;
|
|
|
|
CountdownTimer m_AchievementDisplayTimer;
|
|
|
|
CountdownTimer m_PriorityMsgDisplayTimer;
|
|
|
|
SFVALUE m_PriorityMessagePanelHandle;
|
|
SFVALUE m_PriorityMessageTitleTextHandle;
|
|
SFVALUE m_PriorityMessageBodyTextHandle;
|
|
|
|
bool m_bDeferRaiseHelpPanel;
|
|
bool m_bDeferRaisePriorityMessagePanel;
|
|
bool m_bHintPanelHidden; // True when we have hidden a help panel in order to show a priority message
|
|
bool m_bIsVisible;
|
|
};
|
|
|
|
|
|
#endif /* SFHUDINFOPANEL_H_ */
|