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.
96 lines
2.7 KiB
96 lines
2.7 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: Item pickup history displayed onscreen when items are picked up. |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef HISTORY_RESOURCE_H |
|
#define HISTORY_RESOURCE_H |
|
#pragma once |
|
|
|
#include "hudelement.h" |
|
#include "ehandle.h" |
|
|
|
#include <vgui_controls/Panel.h> |
|
|
|
enum |
|
{ |
|
HISTSLOT_EMPTY, |
|
HISTSLOT_AMMO, |
|
HISTSLOT_WEAP, |
|
HISTSLOT_ITEM, |
|
HISTSLOT_AMMODENIED, |
|
}; |
|
|
|
namespace vgui |
|
{ |
|
class IScheme; |
|
} |
|
|
|
class C_BaseCombatWeapon; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Used to draw the history of ammo / weapon / item pickups by the player |
|
//----------------------------------------------------------------------------- |
|
class CHudHistoryResource : public CHudElement, public vgui::Panel |
|
{ |
|
DECLARE_CLASS_SIMPLE( CHudHistoryResource, vgui::Panel ); |
|
private: |
|
struct HIST_ITEM |
|
{ |
|
HIST_ITEM() |
|
{ |
|
// init this here, because the code that overwrites previous history items will use this |
|
// to check to see if the item is empty |
|
DisplayTime = 0.0f; |
|
} |
|
int type; |
|
float DisplayTime; // the time at which this item should be removed from the history |
|
int iCount; |
|
int iId; |
|
CHandle< C_BaseCombatWeapon > m_hWeapon; |
|
|
|
CHudTexture *icon; |
|
}; |
|
|
|
CUtlVector<HIST_ITEM> m_PickupHistory; |
|
|
|
public: |
|
|
|
CHudHistoryResource( const char *pElementName ); |
|
|
|
// CHudElement overrides |
|
virtual void Init( void ); |
|
virtual void Reset( void ); |
|
virtual bool ShouldDraw( void ); |
|
virtual void Paint( void ); |
|
|
|
virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); |
|
|
|
void AddToHistory( int iType, int iId, int iCount = 0 ); |
|
void AddToHistory( int iType, const char *szName, int iCount = 0 ); |
|
void AddToHistory( C_BaseCombatWeapon *weapon ); |
|
void MsgFunc_ItemPickup( bf_read &msg ); |
|
void MsgFunc_AmmoDenied( bf_read &msg ); |
|
|
|
void CheckClearHistory( void ); |
|
void SetHistoryGap( int iNewHistoryGap ); |
|
void AddIconToHistory( int iType, int iId, C_BaseCombatWeapon *weapon, int iCount, CHudTexture *icon ); |
|
|
|
private: |
|
// these vars are for hl1-port compatibility |
|
int m_iHistoryGap; |
|
int m_iCurrentHistorySlot; |
|
bool m_bDoNotDraw; |
|
wchar_t m_wcsAmmoFullMsg[16]; |
|
bool m_bNeedsDraw; |
|
|
|
CPanelAnimationVarAliasType( float, m_flHistoryGap, "history_gap", "42", "proportional_float" ); |
|
CPanelAnimationVarAliasType( float, m_flIconInset, "icon_inset", "28", "proportional_float" ); |
|
CPanelAnimationVarAliasType( float, m_flTextInset, "text_inset", "26", "proportional_float" ); |
|
CPanelAnimationVar( vgui::HFont, m_hNumberFont, "NumberFont", "HudNumbersSmall" ); |
|
CPanelAnimationVar( vgui::HFont, m_hTextFont, "TextFont", "Default" ); |
|
}; |
|
|
|
#endif // HISTORY_RESOURCE_H
|
|
|