summaryrefslogtreecommitdiff
path: root/game/shared/tf/tf_duckleaderboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/shared/tf/tf_duckleaderboard.h')
-rw-r--r--game/shared/tf/tf_duckleaderboard.h107
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