Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.

108 lines
2.7 KiB

5 years ago
//========= 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