diff options
Diffstat (limited to 'game/shared/tf/tf_duckleaderboard.h')
| -rw-r--r-- | game/shared/tf/tf_duckleaderboard.h | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/game/shared/tf/tf_duckleaderboard.h b/game/shared/tf/tf_duckleaderboard.h new file mode 100644 index 0000000..4136547 --- /dev/null +++ b/game/shared/tf/tf_duckleaderboard.h @@ -0,0 +1,107 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef TF_DUCKLEADERBOARD_H +#define TF_DUCKLEADERBOARD_H +#ifdef _WIN32 +#pragma once +#endif + +#ifdef CLIENT_DLL + #include "tf_mapinfo.h" + #include "tf_leaderboardpanel.h" + #include "tf_controls.h" +#endif + +extern const char* g_szDuckLeaderboardNames[]; + +#define TF_DUCK_ID "DUCK_ID" +#define DUCK_XP_SCALE 5000 +#define DUCK_XP_WEIGHT_GENERATION 3 +#define DUCK_XP_WEIGHT_OFFENSE 3 +#define DUCK_XP_WEIGHT_DEFENSE 1 +#define DUCK_XP_WEIGHT_OBJECTIVE 3 +#define DUCK_XP_WEIGHT_TEAMMATE 3 +#define DUCK_XP_WEIGHT_BONUS 50 + + +enum EDuckLeaderboardTypes +{ + TF_DUCK_SCORING_OVERALL_RATING = 0, + TF_DUCK_SCORING_PERSONAL_GENERATION, + TF_DUCK_SCORING_PERSONAL_PICKUP_OFFENSE, + TF_DUCK_SCORING_PERSONAL_PICKUP_DEFENDED, + TF_DUCK_SCORING_PERSONAL_PICKUP_OBJECTIVE, + TF_DUCK_SCORING_TEAM_PICKUP_MY_DUCKS, + TF_DUCK_SCORING_PERSONAL_BONUS_PICKUP, + DUCK_NUM_LEADERBOARDS +}; + +enum EDuckEventTypes +{ + DUCK_CREATED = 1, + DUCK_COLLECTED, +}; + +enum EDuckFlags +{ + DUCK_FLAG_OBJECTIVE = 1 << 0, + DUCK_FLAG_BONUS = 1 << 1 +}; + +#ifdef CLIENT_DLL + +class CDucksLeaderboard : public CTFLeaderboardPanel +{ + DECLARE_CLASS_SIMPLE( CDucksLeaderboard, CTFLeaderboardPanel ); +public: + CDucksLeaderboard( Panel *parent, const char *panelName, const char *pszDuckLeaderboardname ); + virtual ~CDucksLeaderboard(); + + virtual void ApplySchemeSettings( IScheme *pScheme ) OVERRIDE; +private: + virtual bool UpdateLeaderboards() OVERRIDE; + virtual bool GetLeaderboardData( CUtlVector< LeaderboardEntry_t* >& scores ) OVERRIDE; + + const char *m_pszDuckLeaderboardName; + CTFTextToolTip *m_pToolTip; + vgui::EditablePanel *m_pToolTipEmbeddedPanel; +}; + + +class CDucksLeaderboardManager : public EditablePanel, CGameEventListener +{ + DECLARE_CLASS_SIMPLE( CDucksLeaderboardManager, EditablePanel ); +public: + CDucksLeaderboardManager( Panel *parent, const char *panelName ); + + virtual void ApplySchemeSettings( IScheme *pScheme ) OVERRIDE; + virtual void ApplySettings( KeyValues *inResourceData ) OVERRIDE; + virtual void OnCommand( const char *command ) OVERRIDE; + virtual void FireGameEvent( IGameEvent *event ) OVERRIDE; + + virtual void OnThink(); +private: + + void NextPage(); + void PrevPage(); + void ShowPage( int nPage ); + + int m_nCurrentPage; + CUtlVector< EditablePanel* > m_vecLeaderboards; + + CTFTextToolTip *m_pToolTip; + vgui::EditablePanel *m_pToolTipEmbeddedPanel; + vgui::EditablePanel *m_pDimmer; + float m_flFadeStartTime; + + CPanelAnimationVarAliasType( int, m_iScoreStep, "score_step", "0", "proportional_int" ); +}; + +#endif + +#endif // TF_DUCKLEADERBOARD_H |