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.

151 lines
5.2 KiB

5 years ago
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef TF_LOBBYPANEL_MVM_H
#define TF_LOBBYPANEL_MVM_H
#include "cbase.h"
#include "game/client/iviewport.h"
#include "vgui_bitmapimage.h"
#include "tf_lobbypanel.h"
// memdbgon must be the last include file in a .cpp file!!!
#include <tier0/memdbgon.h>
class CLobbyPanel_MvM : public CBaseLobbyPanel
{
DECLARE_CLASS_SIMPLE( CLobbyPanel_MvM, CBaseLobbyPanel );
public:
CLobbyPanel_MvM( vgui::Panel *pParent, CBaseLobbyContainerFrame* pLobbyContainer );
virtual ~CLobbyPanel_MvM();
//
// Panel overrides
//
virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE;
virtual void PerformLayout() OVERRIDE;
//
// CGameEventListener overrides
//
virtual void FireGameEvent( IGameEvent *event ) OVERRIDE;
virtual void OnCommand( const char *command ) OVERRIDE;
void SetMannUpTicketCount( int nCount );
void SetSquadSurplusCount( int nCount );
virtual EMatchGroup GetMatchGroup( void ) const OVERRIDE;
void ToggleSquadSurplusCheckButton( void )
{
if ( !GTFGCClientSystem()->BLocalPlayerInventoryHasSquadSurplusVoucher() )
return;
m_pSquadSurplusCheckButton->SetSelected( !m_pSquadSurplusCheckButton->IsSelected() );
}
private:
virtual const char* GetResFile() const OVERRIDE { return "Resource/UI/LobbyPanel_MvM.res"; } ;
CPanelAnimationVarAliasType( int, m_iChallengeSpacer, "challenge_spacer", "4", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iChallengeNameWidth, "challenge_name_width", "190", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iChallengeSkillWidth, "challenge_skill_width", "110", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iChallengeCompletedSize, "challenge_completed_size", "15", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iMapImageWidth, "challenge_map_width", "60", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iMapImageHeight, "challenge_map_height", "40", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iHasTicketWidth, "has_ticket_width", "12", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iSquadSurplusWidth, "squad_surplus_width", "12", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iTourMapWidth, "squad_surplus_width", "20", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iBadgeLevelWidth, "badge_level_width", "20", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iTourNameWidth, "tour_name_width", "160", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iTourSkillWidth, "tour_skill_width", "90", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iTourProgressWidth, "tour_progress_width", "70", "proportional_int" );
CPanelAnimationVarAliasType( int, m_iTourNumberWidth, "tour_number_width", "40", "proportional_int" );
MESSAGE_FUNC_PTR( OnCheckButtonChecked, "CheckButtonChecked", panel );
MESSAGE_FUNC_PTR( OnItemLeftClick, "ItemLeftClick", panel );
virtual void ApplyChatUserSettings( const LobbyPlayerInfo& player, KeyValues* pSettings ) const OVERRIDE;
#ifdef USE_MVM_TOUR
void OnClickedOnTour();
#endif // USE_MVM_TOUR
void OnClickedOnChallenge();
class ChallengeList : public vgui::SectionedListPanel
{
public:
ChallengeList( CLobbyPanel_MvM *pLobbyPanel, vgui::Panel *parent, const char *name )
: vgui::SectionedListPanel( parent, name )
, m_pLobbyPanel( pLobbyPanel )
{
m_imageChallengeCompleted.SetImageFile( "vgui/pve/mvm_challenge_completed" );
}
virtual void OnMouseDoublePressed(vgui::MouseCode code) OVERRIDE { /* Just eat it */ }
virtual void Paint() OVERRIDE;
CLobbyPanel_MvM *m_pLobbyPanel;
BitmapImage m_imageChallengeCompleted;
CUtlVector<BitmapImage> m_vecMapImages;
};
CUtlVector<vgui::Label *> m_vecSearchCriteriaLabels;
vgui::EditablePanel *m_pMvMMannVsMachineGroupPanel;
vgui::EditablePanel *m_pMvMMannUpGroupPanel;
vgui::EditablePanel *m_pMvMPracticeGroupPanel;
vgui::EditablePanel *m_pMvMTourOfDutyGroupPanel;
vgui::EditablePanel *m_pMvMTourOfDutyListGroupBox;
vgui::SectionedListPanel *m_pTourList;
vgui::EditablePanel *m_MvMEconItemsGroupBox;
vgui::CheckButton *m_pSquadSurplusCheckButton;
vgui::Button *m_pOpenStoreButton;
vgui::Button *m_pOpenStoreButton2;
vgui::Button *m_pOpenHelpButton;
vgui::ImagePanel *m_pMannUpTicketImage;
vgui::ImagePanel *m_pSquadSurplusImage;
vgui::Button *m_pMannUpNowButton;
vgui::EditablePanel *m_pMannUpTourLootDescriptionBox;
vgui::ImagePanel *m_pMannUpTourLootImage;
vgui::Label *m_pTourDifficultyWarning;
//vgui::Label *m_pMannUpTourLootDetailLabel;
vgui::EditablePanel *m_MvMPracticeGroupPanel;
vgui::EditablePanel *m_pMvMSelectChallengeGroupPanel;
vgui::EditablePanel *m_pMVMChallengeListGroupBox;
ChallengeList *m_pChallengeList;
vgui::HFont m_fontChallengeListHeader;
vgui::HFont m_fontChallengeListItem;
int m_iImageNoTicket;
int m_iImageHasTicket;
int m_iImageNoSquadSurplus;
int m_iImageSquadSurplus;
void WriteGameSettingsControls() OVERRIDE;
virtual bool ShouldShowLateJoin() const OVERRIDE;
#ifdef USE_MVM_TOUR
void WriteTourList();
#endif // USE_MVM_TOUR
void WriteChallengeList();
};
#endif // TF_LOBBYPANEL_MVM_H