summaryrefslogtreecommitdiff
path: root/game/client/tf/tf_hud_mann_vs_machine_victory.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/tf/tf_hud_mann_vs_machine_victory.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/client/tf/tf_hud_mann_vs_machine_victory.h')
-rw-r--r--game/client/tf/tf_hud_mann_vs_machine_victory.h347
1 files changed, 347 insertions, 0 deletions
diff --git a/game/client/tf/tf_hud_mann_vs_machine_victory.h b/game/client/tf/tf_hud_mann_vs_machine_victory.h
new file mode 100644
index 0000000..54be5f4
--- /dev/null
+++ b/game/client/tf/tf_hud_mann_vs_machine_victory.h
@@ -0,0 +1,347 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef TF_HUD_MANN_VS_MACHINE_VICTORY_H
+#define TF_HUD_MANN_VS_MACHINE_VICTORY_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "hudelement.h"
+#include "tf_controls.h"
+#include "hud.h"
+#include <vgui/IScheme.h>
+#include <vgui_controls/ProgressBar.h>
+#include <vgui_controls/ScalableImagePanel.h>
+#include <vgui_controls/EditablePanel.h>
+#include <vgui/ISurface.h>
+#include <vgui_controls/ImageList.h>
+#include <vgui/KeyCode.h>
+#include "vgui_controls/SectionedListPanel.h"
+#include "c_tf_objective_resource.h"
+#include "vgui_avatarimage.h"
+#include "item_model_panel.h"
+#include "c_playerresource.h"
+#include "tf_gcmessages.h"
+#include "tf_mann_vs_machine_stats.h"
+#include "tf_gamerules.h"
+#include "tf_hud_mann_vs_machine_stats.h"
+#include "tf_gc_client.h"
+
+class CTFParticlePanel;
+
+//=========================================================
+class CVictoryPanel : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CVictoryPanel, vgui::EditablePanel );
+public:
+ CVictoryPanel( Panel *parent, const char *pName );
+
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+ virtual void OnTick( void );
+
+ void ResetVictoryPanel();
+
+ void SetMapAndPopFile ();
+
+private:
+ enum
+ {
+ INITIAL_VICTORY = 0,
+ CREDITS_COLLECT,
+ CREDITS_MISSED,
+ CREDITS_BONUS,
+ YOUR_UPGRADES,
+ YOUR_BUYBACK,
+ YOUR_BOTTLES,
+ RATING_LABEL,
+ RATING_SCORE,
+ FINISHED,
+ };
+
+ void CaptureStats();
+
+ bool StateUpdateValue( vgui::EditablePanel *parent, char* field, float targetTime, float currentTime, int nextState, int endValue );
+ bool StateUpdateCreditText( vgui::EditablePanel *parent, char* field, float targetTime, float currentTime, int nextState, int useValue, int creditValue );
+ bool CheckState( float targetTime, float currentTime, int nextState );
+
+ void RatingLabelUpdate( void );
+ void RatingScoreUpdate( void );
+
+ float m_fPreviousTick;
+ float m_fStateRunningTime;
+
+ vgui::EditablePanel *m_pHeaderContainer;
+ vgui::EditablePanel *m_pCreditContainerPanel;
+ vgui::EditablePanel *m_pTeamStatsContainerPanel;
+ vgui::EditablePanel *m_pYourStatsContainerPanel;
+ vgui::EditablePanel *m_pRatingContainerPanel;
+ CExImageButton *m_pDoneButton;
+
+ CCreditSpendPanel *m_pTotalGameCreditSpendPanel;
+
+ int m_eState;
+
+ int m_nCreditsCollected;
+ int m_nCreditsMissed;
+ int m_nCreditBonus;
+
+ int m_nYourBuybacksCredits;
+ int m_nYourBottlesCredits;
+ int m_nYourUpgradeCredits;
+};
+
+//=========================================================
+class CMvMVictoryMannUpLoot : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CMvMVictoryMannUpLoot, vgui::EditablePanel );
+
+public:
+ CMvMVictoryMannUpLoot( Panel *parent, const char *pName );
+
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+
+ void SetEconItem( CEconItem *econItem );
+ void HideEconItem( );
+ void SetEconToolTip( CItemModelPanelToolTip *pToolTip );
+
+private:
+
+ CItemModelPanel *m_pItemModelPanel;
+};
+
+
+//=========================================================
+class CMvMVictoryMannUpEntry : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CMvMVictoryMannUpEntry, vgui::EditablePanel );
+
+public:
+ CMvMVictoryMannUpEntry( Panel *parent, const char *pName );
+ ~CMvMVictoryMannUpEntry();
+
+ virtual void ApplySettings( KeyValues *inResourceData ) OVERRIDE;
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE;
+ virtual void PerformLayout() OVERRIDE;
+
+ void SetActive( bool bActive );
+ void SetData( KeyValues *kv );
+ void ClearPlayerData();
+#ifdef USE_MVM_TOUR
+ void SetPlayerData ( const CMsgMvMVictoryInfo_Player& player, int nMissionCount );
+#else // new mm
+ void SetPlayerData ( const CMsgMvMVictoryInfo_Player& player, int nMissionIndex );
+#endif // USE_MVM_TOUR
+ void SetItemsToolTip( CItemModelPanelToolTip *pToolTip );
+
+ bool AnimateProgressBar( void );
+ bool AnimateLoot( CTFParticlePanel* pParticlePanel );
+
+ void ForceFinishAllAnimation();
+ void SetLootAnimationPause( float flPause );
+private:
+ void PlayVCD( const char * pszVCDName );
+ bool SetModelPanelInfo( C_TFPlayer* pPlayer );
+ void SetBadgeProgressBarProgress( float flPercent );
+#ifdef USE_MVM_TOUR
+ int GetBadgeCompletionCount( uint32 iProgressBits );
+#endif // USE_MVM_TOUR
+ vgui::EditablePanel* AddLootRow();
+
+ void CheckBadgeLevel ( const CMsgMvMVictoryInfo_Player& player );
+ void ClearEconItems ();
+
+ bool AnimTimePassed( float flTime ) const;
+ bool AnimateLoot_Internal( CTFParticlePanel* pParticlePanel );
+
+ void UpdatePlayerData();
+
+ CTFParticlePanel *m_pBehindItemParticlePanel;
+ vgui::EditablePanel *m_pTourProgress;
+ vgui::EditablePanel *m_pProgressBarBG;
+ vgui::EditablePanel *m_pProgressBarFGStatic;
+ vgui::EditablePanel *m_pHeader;
+ vgui::EditablePanel *m_pProgressBarFGAnim;
+
+ vgui::EditablePanel *m_pProgressCheckOnBackground;
+ vgui::ImagePanel *m_pProgressCheckOn;
+ vgui::EditablePanel *m_pSquadSurplusBackground;
+ vgui::ImagePanel *m_pSquadSurplus;
+
+ vgui::Label *m_pMissingVoucher;
+
+ CUtlVector< CEconItem* > m_MannUpEconItems;
+
+ vgui::HFont m_DividerLabelFont;
+
+ CMsgMvMVictoryInfo_Player m_playerData;
+ bool m_bHasData;
+
+ EHANDLE m_hPlayer;
+ bool m_bBadgeUpdated;
+ int m_iProgressWidthStart;
+ int m_iProgressWidthEnd;
+ int m_nBadgeLevel;
+
+ float m_flPBarCurrTime;
+ float m_flPBarPreviousTime;
+
+ int m_iLootAnimIndex;
+ float m_flLootAnimTime;
+ float m_flLastLootAnimTime;
+
+#ifdef USE_MVM_TOUR
+ int m_nChallengeCount;
+#else // new mm
+ int m_nMissionIndex;
+#endif // USE_MVM_TOUR
+
+ int m_nItemColumns;
+ int m_nItemXSpacing;
+ int m_nItemYSpacing;
+
+ class CMvMLootItem : public CItemModelPanel
+ {
+ DECLARE_CLASS_SIMPLE( CMvMLootItem, CItemModelPanel );
+ public:
+ CMvMLootItem( vgui::Panel *parent, const char *name )
+ : CItemModelPanel( parent, name )
+ , m_nIndex( 0 )
+ , m_pUnopenedPanel( NULL )
+ {
+ m_pUnopenedPanel = new vgui::ImagePanel( parent, VarArgs( "unopened_%s", name ) );
+ }
+ ~CMvMLootItem()
+ {}
+
+ vgui::ImagePanel *m_pUnopenedPanel;
+ CMsgMvMVictoryInfo_GrantReason m_eReason;
+ int m_nIndex;
+ };
+
+ CUtlVector< CMvMLootItem* > m_vecLootPanels;
+ CUtlVector< vgui::EditablePanel* > m_vecRows;
+
+ KeyValues *m_pItemModelPanelKVs;
+ KeyValues *m_pRowKVs;
+ KeyValues *m_pUnopenedLootKVs;
+
+ CUtlMap< int, CExLabel* > m_LootLables;
+
+ class CTFPlayerModelPanel *m_pPlayerModelPanel;
+ class vgui::PanelListPanel *m_pListPanel;
+};
+
+//=========================================================
+class CMvMVictoryMannUpPlayerTab : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CMvMVictoryMannUpPlayerTab, vgui::EditablePanel );
+
+public:
+ CMvMVictoryMannUpPlayerTab( Panel *parent, const char *pName );
+
+ void SetPlayer( const CSteamID& steamID );
+ void SetSelected( bool bState );
+
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE;
+ virtual void OnCommand( const char *command ) OVERRIDE;
+
+private:
+
+ CAvatarImagePanel *m_pAvatarImage;
+ vgui::EditablePanel *m_pActiveTab;
+ vgui::EditablePanel *m_pMouseoverHighlightPanel;
+ bool m_bIsActive;
+};
+
+//=========================================================
+class CMvMVictoryMannUpPanel : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CMvMVictoryMannUpPanel, vgui::EditablePanel );
+
+public:
+ CMvMVictoryMannUpPanel( Panel *parent, const char *pName );
+
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE;
+ virtual void OnTick( void ) OVERRIDE;
+ virtual void SetVisible( bool bState ) OVERRIDE;
+
+ void ShowVictoryPanel();
+ void ClearData();
+ void MannUpServerResponse( CMsgMvMVictoryInfo &pData );
+ void ForceFinishAllAnimation();
+
+ bool HasData() { return m_hasData; }
+
+ virtual void OnCommand( const char *command ) OVERRIDE;
+private:
+
+ void LoadVictoryData();
+ void UpdateHighlight();
+ void SetTabActive( int nIndex );
+
+ CTFParticlePanel *m_pParticlePanel;
+ CUtlVector< vgui::Button* > m_vecTabButtons;
+ CUtlVector< CMvMVictoryMannUpPlayerTab* > m_vecTabs;
+ CUtlVector< CMvMVictoryMannUpEntry* > m_PlayerEntryPanels;
+ CExImageButton *m_pDoneButton;
+
+ CItemModelPanel *m_pMouseOverItemPanel;
+ CItemModelPanelToolTip *m_pMouseOverTooltip;
+
+ vgui::EditablePanel *m_pNoItemServerContainer;
+
+ bool m_hasData;
+
+ int m_iMannUpLootIndex;
+
+ bool m_bAnimationComplete;
+
+ float m_flChangeTabPauseTime;
+
+ CMsgMvMVictoryInfo m_victoryInfo;
+};
+
+//=========================================================
+class CMvMVictoryPanelContainer : public vgui::EditablePanel
+{
+ DECLARE_CLASS_SIMPLE( CMvMVictoryPanelContainer, vgui::EditablePanel );
+
+public:
+ CMvMVictoryPanelContainer( Panel *parent, const char *pName );
+
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+ virtual void FireGameEvent( IGameEvent *event );
+ virtual void OnTick( void );
+ virtual void OnCommand( const char *command );
+ virtual void OnKeyCodePressed( vgui::KeyCode code );
+
+ void MannUpServerResponse( CMsgMvMVictoryInfo &pData )
+ {
+ m_pVictoryPanelMannUp->MannUpServerResponse( pData );
+ m_pObjective = TFObjectiveResource();
+ }
+
+ void ShowVictoryPanel( bool bIsReopening );
+ void CreateReOpenNotification();
+
+ bool IsVictoryPanelVisible()
+ {
+ return ( m_pVictoryPanelNormal && m_pVictoryPanelNormal->IsVisible() ) || ( m_pVictoryPanelMannUp && m_pVictoryPanelMannUp->IsVisible() );
+ }
+
+private:
+
+ CVictoryPanel *m_pVictoryPanelNormal;
+ CMvMVictoryMannUpPanel *m_pVictoryPanelMannUp;
+ const C_TFObjectiveResource *m_pObjective;
+};
+
+
+
+#endif // TF_HUD_MANN_VS_MACHINE_VICTORY_H