initial
This commit is contained in:
118
game/client/hud_baseachievement_tracker.h
Normal file
118
game/client/hud_baseachievement_tracker.h
Normal file
@@ -0,0 +1,118 @@
|
||||
#ifndef HUD_ACHIEVEMENT_TRACKER_H
|
||||
#define HUD_ACHIEVEMENT_TRACKER_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "hudelement.h"
|
||||
#include <vgui_controls/EditablePanel.h>
|
||||
|
||||
class IAchievement;
|
||||
namespace vgui
|
||||
{
|
||||
class ImagePanel;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Draws information about one achievement (name, description, progress)
|
||||
//-----------------------------------------------------------------------------
|
||||
class CAchievementTrackerItem : public vgui::EditablePanel
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CAchievementTrackerItem, vgui::EditablePanel );
|
||||
public:
|
||||
CAchievementTrackerItem( vgui::Panel* pParent, const char *pElementName );
|
||||
virtual ~CAchievementTrackerItem();
|
||||
|
||||
virtual void ApplySchemeSettings( vgui::IScheme *scheme );
|
||||
virtual void SetAchievement( IAchievement* pAchievement );
|
||||
virtual void OnThink();
|
||||
virtual void SetSlot( int i ) { m_iSlot = i; }
|
||||
virtual void PerformLayout();
|
||||
virtual void AchievementIncremented( int iCount );
|
||||
virtual int GetAchievementID() { return m_iAchievementID; }
|
||||
virtual float GetGlow() { return m_flGlow; }
|
||||
virtual void ShowAccumulatedIncrements();
|
||||
virtual int GetLastCount() { return m_iLastCount; }
|
||||
virtual void UpdateAchievementDisplay();
|
||||
|
||||
protected:
|
||||
vgui::Label *m_pAchievementName;
|
||||
vgui::Label *m_pAchievementNameGlow;
|
||||
vgui::Label *m_pAchievementDesc;
|
||||
vgui::ImagePanel *m_pProgressBarBackground;
|
||||
vgui::ImagePanel *m_pProgressBar;
|
||||
|
||||
int m_iAchievementID;
|
||||
int m_iLastPaintedAchievementID;
|
||||
int m_iLastProgressBarGoal, m_iLastProgressBarCount, m_iLastCount;
|
||||
int m_iSlot;
|
||||
float m_flGlowTime;
|
||||
float m_flGlow;
|
||||
float m_flShowIncrementsTime;
|
||||
int m_iAccumulatedIncrement;
|
||||
|
||||
CPanelAnimationVarAliasType( int, m_iPadding, "Padding", "1", "proportional_int" ); // space between description and bar
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Purpose: Scrolls a floating number up the screen to indicate achievement progression
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
enum floating_number_directions
|
||||
{
|
||||
FN_DIR_UP,
|
||||
FN_DIR_DOWN,
|
||||
FN_DIR_LEFT,
|
||||
FN_DIR_RIGHT,
|
||||
};
|
||||
|
||||
class CFloatingAchievementNumber : public vgui::EditablePanel
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CFloatingAchievementNumber, vgui::EditablePanel );
|
||||
public:
|
||||
CFloatingAchievementNumber( int iProgress, int x, int y, floating_number_directions iDir, vgui::Panel* pParent );
|
||||
virtual ~CFloatingAchievementNumber();
|
||||
|
||||
virtual void ApplySchemeSettings( vgui::IScheme *scheme );
|
||||
virtual void OnThink();
|
||||
|
||||
protected:
|
||||
vgui::Label *m_pNumberLabel;
|
||||
int m_iStartX;
|
||||
int m_iStartY;
|
||||
int m_iProgress;
|
||||
float m_fStartTime;
|
||||
floating_number_directions m_iDirection;
|
||||
|
||||
CPanelAnimationVarAliasType( int, m_iScrollDistance, "ScrollDistance", "40", "proportional_int" ); // how far the floating number will scroll up before disappearing completely
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Creates panels to show achievements on the HUD
|
||||
//-----------------------------------------------------------------------------
|
||||
class CHudBaseAchievementTracker : public CHudElement, public vgui::EditablePanel
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CHudBaseAchievementTracker, vgui::EditablePanel );
|
||||
public:
|
||||
explicit CHudBaseAchievementTracker( const char *pElementName );
|
||||
|
||||
virtual void Reset();
|
||||
virtual void LevelInit();
|
||||
virtual void ApplySchemeSettings( vgui::IScheme *scheme );
|
||||
virtual void OnThink();
|
||||
virtual bool ShouldDraw();
|
||||
virtual void PerformLayout();
|
||||
virtual bool ShouldShowAchievement( IAchievement *pAchievement );
|
||||
virtual void UpdateAchievementItems();
|
||||
virtual int GetMaxAchievementsShown();
|
||||
virtual CAchievementTrackerItem* GetAchievementPanel( int i );
|
||||
virtual CAchievementTrackerItem* CreateAchievementPanel();
|
||||
|
||||
protected:
|
||||
float m_flNextThink;
|
||||
CUtlVector<CAchievementTrackerItem*> m_AchievementItem;
|
||||
|
||||
CPanelAnimationVarAliasType( int, m_iItemPadding, "ItemPadding", "8", "proportional_int" ); // space between each achievement item
|
||||
};
|
||||
|
||||
#endif // HUD_ACHIEVEMENT_TRACKER_H
|
||||
Reference in New Issue
Block a user