summaryrefslogtreecommitdiff
path: root/game/client/dod/VGUI/dodclassmenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/client/dod/VGUI/dodclassmenu.h')
-rw-r--r--game/client/dod/VGUI/dodclassmenu.h129
1 files changed, 129 insertions, 0 deletions
diff --git a/game/client/dod/VGUI/dodclassmenu.h b/game/client/dod/VGUI/dodclassmenu.h
new file mode 100644
index 0000000..ba25347
--- /dev/null
+++ b/game/client/dod/VGUI/dodclassmenu.h
@@ -0,0 +1,129 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef DODCLASSMENU_H
+#define DODCLASSMENU_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <classmenu.h>
+#include <vgui_controls/EditablePanel.h>
+#include <filesystem.h>
+#include <dod_shareddefs.h>
+#include "cbase.h"
+#include "dod_gamerules.h"
+#include "dodmenubackground.h"
+#include "dodbutton.h"
+#include "imagemouseoverbutton.h"
+#include "IconPanel.h"
+#include <vgui_controls/CheckButton.h>
+
+using namespace vgui;
+
+#define NUM_CLASSES 6
+
+class CDODClassMenu : public CClassMenu
+{
+private:
+ DECLARE_CLASS_SIMPLE( CDODClassMenu, CClassMenu );
+
+public:
+ CDODClassMenu(IViewPort *pViewPort);
+
+ virtual void Update( void );
+ virtual Panel *CreateControlByName( const char *controlName );
+ virtual void OnTick( void );
+ virtual void PaintBackground( void );
+ virtual void OnKeyCodePressed(KeyCode code);
+ virtual void SetVisible( bool state );
+
+ MESSAGE_FUNC_CHARPTR( OnShowPage, "ShowPage", page );
+
+ virtual void ShowPanel(bool bShow);
+
+ void UpdateNumClassLabel( void );
+
+ virtual int GetTeamNumber( void ) = 0;
+
+#ifdef REFRESH_CLASSMENU_TOOL
+ MESSAGE_FUNC( OnRefreshClassMenu, "refresh_classes" );
+#endif
+
+ MESSAGE_FUNC_PTR( OnSuicideOptionChanged, "CheckButtonChecked", panel );
+
+private:
+ CDODClassInfoPanel *m_pClassInfoPanel;
+ CDODMenuBackground *m_pBackground;
+ CheckButton *m_pSuicideOption;
+
+ CImageMouseOverButton<CDODClassInfoPanel> *m_pInitialButton;
+ int m_iActivePlayerClass;
+ int m_iLastPlayerClassCount;
+ int m_iLastClassLimit;
+
+ ButtonCode_t m_iClassMenuKey;
+
+ vgui::Label *m_pClassNumLabel[NUM_CLASSES];
+ vgui::Label *m_pClassFullLabel[NUM_CLASSES];
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Draws the U.S. class menu
+//-----------------------------------------------------------------------------
+
+class CDODClassMenu_Allies : public CDODClassMenu
+{
+private:
+ DECLARE_CLASS_SIMPLE( CDODClassMenu_Allies, CDODClassMenu );
+
+public:
+ CDODClassMenu_Allies(IViewPort *pViewPort) : BaseClass(pViewPort)
+ {
+ LoadControlSettings( "Resource/UI/ClassMenu_Allies.res" );
+ }
+
+ virtual const char *GetName( void )
+ {
+ return PANEL_CLASS_ALLIES;
+ }
+
+ virtual int GetTeamNumber( void )
+ {
+ return TEAM_ALLIES;
+ }
+
+};
+
+
+//-----------------------------------------------------------------------------
+// Purpose: Draws the Wermacht class menu
+//-----------------------------------------------------------------------------
+
+class CDODClassMenu_Axis : public CDODClassMenu
+{
+private:
+ DECLARE_CLASS_SIMPLE( CDODClassMenu_Axis, CDODClassMenu );
+
+public:
+ CDODClassMenu_Axis(IViewPort *pViewPort) : BaseClass(pViewPort)
+ {
+ LoadControlSettings( "Resource/UI/ClassMenu_Axis.res" );
+ }
+
+ virtual const char *GetName( void )
+ {
+ return PANEL_CLASS_AXIS;
+ }
+
+ virtual int GetTeamNumber( void )
+ {
+ return TEAM_AXIS;
+ }
+};
+
+#endif // DODCLASSMENU_H