aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/game_controls/classmenu.cpp
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/game_controls/classmenu.cpp
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/game_controls/classmenu.cpp')
-rw-r--r--mp/src/game/client/game_controls/classmenu.cpp632
1 files changed, 316 insertions, 316 deletions
diff --git a/mp/src/game/client/game_controls/classmenu.cpp b/mp/src/game/client/game_controls/classmenu.cpp
index 64516f02..b71b75fa 100644
--- a/mp/src/game/client/game_controls/classmenu.cpp
+++ b/mp/src/game/client/game_controls/classmenu.cpp
@@ -1,316 +1,316 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-
-#include "cbase.h"
-#include <stdio.h>
-
-#include <cdll_client_int.h>
-
-#include "classmenu.h"
-
-#include <vgui/IScheme.h>
-#include <vgui/ILocalize.h>
-#include <vgui/ISurface.h>
-#include <KeyValues.h>
-#include <vgui_controls/ImageList.h>
-#include <filesystem.h>
-
-#include <vgui_controls/TextEntry.h>
-#include <vgui_controls/Button.h>
-#include <vgui_controls/Panel.h>
-
-#include "cdll_util.h"
-#include "IGameUIFuncs.h" // for key bindings
-#ifndef _XBOX
-extern IGameUIFuncs *gameuifuncs; // for key binding details
-#endif
-#include <game/client/iviewport.h>
-
-#include <stdlib.h> // MAX_PATH define
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-using namespace vgui;
-
-#ifdef TF_CLIENT_DLL
-#define HUD_CLASSAUTOKILL_FLAGS ( FCVAR_CLIENTDLL | FCVAR_ARCHIVE | FCVAR_USERINFO )
-#else
-#define HUD_CLASSAUTOKILL_FLAGS ( FCVAR_CLIENTDLL | FCVAR_ARCHIVE )
-#endif // !TF_CLIENT_DLL
-
-ConVar hud_classautokill( "hud_classautokill", "1", HUD_CLASSAUTOKILL_FLAGS, "Automatically kill player after choosing a new playerclass." );
-
-//-----------------------------------------------------------------------------
-// Purpose: Constructor
-//-----------------------------------------------------------------------------
-CClassMenu::CClassMenu(IViewPort *pViewPort) : Frame(NULL, PANEL_CLASS)
-{
- m_pViewPort = pViewPort;
- m_iScoreBoardKey = BUTTON_CODE_INVALID; // this is looked up in Activate()
- m_iTeam = 0;
-
- // initialize dialog
- SetTitle("", true);
-
- // load the new scheme early!!
- SetScheme("ClientScheme");
- SetMoveable(false);
- SetSizeable(false);
-
- // hide the system buttons
- SetTitleBarVisible( false );
- SetProportional(true);
-
- // info window about this class
- m_pPanel = new EditablePanel( this, "ClassInfo" );
-
- LoadControlSettings( "Resource/UI/ClassMenu.res" );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose: Constructor
-//-----------------------------------------------------------------------------
-CClassMenu::CClassMenu(IViewPort *pViewPort, const char *panelName) : Frame(NULL, panelName)
-{
- m_pViewPort = pViewPort;
- m_iScoreBoardKey = BUTTON_CODE_INVALID; // this is looked up in Activate()
- m_iTeam = 0;
-
- // initialize dialog
- SetTitle("", true);
-
- // load the new scheme early!!
- SetScheme("ClientScheme");
- SetMoveable(false);
- SetSizeable(false);
-
- // hide the system buttons
- SetTitleBarVisible( false );
- SetProportional(true);
-
- // info window about this class
- m_pPanel = new EditablePanel( this, "ClassInfo" );
-
- // Inheriting classes are responsible for calling LoadControlSettings()!
-}
-
-//-----------------------------------------------------------------------------
-// Purpose: Destructor
-//-----------------------------------------------------------------------------
-CClassMenu::~CClassMenu()
-{
-}
-
-MouseOverPanelButton* CClassMenu::CreateNewMouseOverPanelButton(EditablePanel *panel)
-{
- return new MouseOverPanelButton(this, "MouseOverPanelButton", panel);
-}
-
-
-Panel *CClassMenu::CreateControlByName(const char *controlName)
-{
- if( !Q_stricmp( "MouseOverPanelButton", controlName ) )
- {
- MouseOverPanelButton *newButton = CreateNewMouseOverPanelButton( m_pPanel );
-
- m_mouseoverButtons.AddToTail( newButton );
- return newButton;
- }
- else
- {
- return BaseClass::CreateControlByName( controlName );
- }
-}
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CClassMenu::Reset()
-{
- for ( int i = 0 ; i < GetChildCount() ; ++i )
- {
- // Hide the subpanel for the MouseOverPanelButtons
- MouseOverPanelButton *pPanel = dynamic_cast<MouseOverPanelButton *>( GetChild( i ) );
-
- if ( pPanel )
- {
- pPanel->HidePage();
- }
- }
-
- // Turn the first button back on again (so we have a default description shown)
- Assert( m_mouseoverButtons.Count() );
- for ( int i=0; i<m_mouseoverButtons.Count(); ++i )
- {
- if ( i == 0 )
- {
- m_mouseoverButtons[i]->ShowPage(); // Show the first page
- }
- else
- {
- m_mouseoverButtons[i]->HidePage(); // Hide the rest
- }
- }
-}
-
-//-----------------------------------------------------------------------------
-// Purpose: Called when the user picks a class
-//-----------------------------------------------------------------------------
-void CClassMenu::OnCommand( const char *command )
-{
- if ( Q_stricmp( command, "vguicancel" ) )
- {
- engine->ClientCmd( const_cast<char *>( command ) );
-
-#if !defined( CSTRIKE_DLL ) && !defined( TF_CLIENT_DLL )
- // They entered a command to change their class, kill them so they spawn with
- // the new class right away
- if ( hud_classautokill.GetBool() )
- {
- engine->ClientCmd( "kill" );
- }
-#endif // !CSTRIKE_DLL && !TF_CLIENT_DLL
- }
-
- Close();
-
- gViewPortInterface->ShowBackGround( false );
-
- BaseClass::OnCommand( command );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose: shows the class menu
-//-----------------------------------------------------------------------------
-void CClassMenu::ShowPanel(bool bShow)
-{
- if ( bShow )
- {
- Activate();
- SetMouseInputEnabled( true );
-
- // load a default class page
- for ( int i=0; i<m_mouseoverButtons.Count(); ++i )
- {
- if ( i == 0 )
- {
- m_mouseoverButtons[i]->ShowPage(); // Show the first page
- }
- else
- {
- m_mouseoverButtons[i]->HidePage(); // Hide the rest
- }
- }
-
- if ( m_iScoreBoardKey == BUTTON_CODE_INVALID )
- {
- m_iScoreBoardKey = gameuifuncs->GetButtonCodeForBind( "showscores" );
- }
- }
- else
- {
- SetVisible( false );
- SetMouseInputEnabled( false );
- }
-
- m_pViewPort->ShowBackGround( bShow );
-}
-
-
-void CClassMenu::SetData(KeyValues *data)
-{
- m_iTeam = data->GetInt( "team" );
-}
-
-//-----------------------------------------------------------------------------
-// Purpose: Sets the text of a control by name
-//-----------------------------------------------------------------------------
-void CClassMenu::SetLabelText(const char *textEntryName, const char *text)
-{
- Label *entry = dynamic_cast<Label *>(FindChildByName(textEntryName));
- if (entry)
- {
- entry->SetText(text);
- }
-}
-
-//-----------------------------------------------------------------------------
-// Purpose: Sets the visibility of a button by name
-//-----------------------------------------------------------------------------
-void CClassMenu::SetVisibleButton(const char *textEntryName, bool state)
-{
- Button *entry = dynamic_cast<Button *>(FindChildByName(textEntryName));
- if (entry)
- {
- entry->SetVisible(state);
- }
-}
-
-void CClassMenu::OnKeyCodePressed(KeyCode code)
-{
- int nDir = 0;
-
- switch ( code )
- {
- case KEY_XBUTTON_UP:
- case KEY_XSTICK1_UP:
- case KEY_XSTICK2_UP:
- case KEY_UP:
- case KEY_XBUTTON_LEFT:
- case KEY_XSTICK1_LEFT:
- case KEY_XSTICK2_LEFT:
- case KEY_LEFT:
- nDir = -1;
- break;
-
- case KEY_XBUTTON_DOWN:
- case KEY_XSTICK1_DOWN:
- case KEY_XSTICK2_DOWN:
- case KEY_DOWN:
- case KEY_XBUTTON_RIGHT:
- case KEY_XSTICK1_RIGHT:
- case KEY_XSTICK2_RIGHT:
- case KEY_RIGHT:
- nDir = 1;
- break;
- }
-
- if ( m_iScoreBoardKey != BUTTON_CODE_INVALID && m_iScoreBoardKey == code )
- {
- gViewPortInterface->ShowPanel( PANEL_SCOREBOARD, true );
- gViewPortInterface->PostMessageToPanel( PANEL_SCOREBOARD, new KeyValues( "PollHideCode", "code", code ) );
- }
- else if ( nDir != 0 )
- {
- CUtlSortVector< SortedPanel_t, CSortedPanelYLess > vecSortedButtons;
- VguiPanelGetSortedChildButtonList( this, (void*)&vecSortedButtons, "&", 0 );
-
- int nNewArmed = VguiPanelNavigateSortedChildButtonList( (void*)&vecSortedButtons, nDir );
-
- if ( nNewArmed != -1 )
- {
- // Handled!
- if ( nNewArmed < m_mouseoverButtons.Count() )
- {
- m_mouseoverButtons[ nNewArmed ]->OnCursorEntered();
- }
- return;
- }
- }
- else
- {
- BaseClass::OnKeyCodePressed( code );
- }
-}
-
-
-
-
-
-
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+
+#include "cbase.h"
+#include <stdio.h>
+
+#include <cdll_client_int.h>
+
+#include "classmenu.h"
+
+#include <vgui/IScheme.h>
+#include <vgui/ILocalize.h>
+#include <vgui/ISurface.h>
+#include <KeyValues.h>
+#include <vgui_controls/ImageList.h>
+#include <filesystem.h>
+
+#include <vgui_controls/TextEntry.h>
+#include <vgui_controls/Button.h>
+#include <vgui_controls/Panel.h>
+
+#include "cdll_util.h"
+#include "IGameUIFuncs.h" // for key bindings
+#ifndef _XBOX
+extern IGameUIFuncs *gameuifuncs; // for key binding details
+#endif
+#include <game/client/iviewport.h>
+
+#include <stdlib.h> // MAX_PATH define
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+using namespace vgui;
+
+#ifdef TF_CLIENT_DLL
+#define HUD_CLASSAUTOKILL_FLAGS ( FCVAR_CLIENTDLL | FCVAR_ARCHIVE | FCVAR_USERINFO )
+#else
+#define HUD_CLASSAUTOKILL_FLAGS ( FCVAR_CLIENTDLL | FCVAR_ARCHIVE )
+#endif // !TF_CLIENT_DLL
+
+ConVar hud_classautokill( "hud_classautokill", "1", HUD_CLASSAUTOKILL_FLAGS, "Automatically kill player after choosing a new playerclass." );
+
+//-----------------------------------------------------------------------------
+// Purpose: Constructor
+//-----------------------------------------------------------------------------
+CClassMenu::CClassMenu(IViewPort *pViewPort) : Frame(NULL, PANEL_CLASS)
+{
+ m_pViewPort = pViewPort;
+ m_iScoreBoardKey = BUTTON_CODE_INVALID; // this is looked up in Activate()
+ m_iTeam = 0;
+
+ // initialize dialog
+ SetTitle("", true);
+
+ // load the new scheme early!!
+ SetScheme("ClientScheme");
+ SetMoveable(false);
+ SetSizeable(false);
+
+ // hide the system buttons
+ SetTitleBarVisible( false );
+ SetProportional(true);
+
+ // info window about this class
+ m_pPanel = new EditablePanel( this, "ClassInfo" );
+
+ LoadControlSettings( "Resource/UI/ClassMenu.res" );
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Constructor
+//-----------------------------------------------------------------------------
+CClassMenu::CClassMenu(IViewPort *pViewPort, const char *panelName) : Frame(NULL, panelName)
+{
+ m_pViewPort = pViewPort;
+ m_iScoreBoardKey = BUTTON_CODE_INVALID; // this is looked up in Activate()
+ m_iTeam = 0;
+
+ // initialize dialog
+ SetTitle("", true);
+
+ // load the new scheme early!!
+ SetScheme("ClientScheme");
+ SetMoveable(false);
+ SetSizeable(false);
+
+ // hide the system buttons
+ SetTitleBarVisible( false );
+ SetProportional(true);
+
+ // info window about this class
+ m_pPanel = new EditablePanel( this, "ClassInfo" );
+
+ // Inheriting classes are responsible for calling LoadControlSettings()!
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Destructor
+//-----------------------------------------------------------------------------
+CClassMenu::~CClassMenu()
+{
+}
+
+MouseOverPanelButton* CClassMenu::CreateNewMouseOverPanelButton(EditablePanel *panel)
+{
+ return new MouseOverPanelButton(this, "MouseOverPanelButton", panel);
+}
+
+
+Panel *CClassMenu::CreateControlByName(const char *controlName)
+{
+ if( !Q_stricmp( "MouseOverPanelButton", controlName ) )
+ {
+ MouseOverPanelButton *newButton = CreateNewMouseOverPanelButton( m_pPanel );
+
+ m_mouseoverButtons.AddToTail( newButton );
+ return newButton;
+ }
+ else
+ {
+ return BaseClass::CreateControlByName( controlName );
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+void CClassMenu::Reset()
+{
+ for ( int i = 0 ; i < GetChildCount() ; ++i )
+ {
+ // Hide the subpanel for the MouseOverPanelButtons
+ MouseOverPanelButton *pPanel = dynamic_cast<MouseOverPanelButton *>( GetChild( i ) );
+
+ if ( pPanel )
+ {
+ pPanel->HidePage();
+ }
+ }
+
+ // Turn the first button back on again (so we have a default description shown)
+ Assert( m_mouseoverButtons.Count() );
+ for ( int i=0; i<m_mouseoverButtons.Count(); ++i )
+ {
+ if ( i == 0 )
+ {
+ m_mouseoverButtons[i]->ShowPage(); // Show the first page
+ }
+ else
+ {
+ m_mouseoverButtons[i]->HidePage(); // Hide the rest
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Called when the user picks a class
+//-----------------------------------------------------------------------------
+void CClassMenu::OnCommand( const char *command )
+{
+ if ( Q_stricmp( command, "vguicancel" ) )
+ {
+ engine->ClientCmd( const_cast<char *>( command ) );
+
+#if !defined( CSTRIKE_DLL ) && !defined( TF_CLIENT_DLL )
+ // They entered a command to change their class, kill them so they spawn with
+ // the new class right away
+ if ( hud_classautokill.GetBool() )
+ {
+ engine->ClientCmd( "kill" );
+ }
+#endif // !CSTRIKE_DLL && !TF_CLIENT_DLL
+ }
+
+ Close();
+
+ gViewPortInterface->ShowBackGround( false );
+
+ BaseClass::OnCommand( command );
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: shows the class menu
+//-----------------------------------------------------------------------------
+void CClassMenu::ShowPanel(bool bShow)
+{
+ if ( bShow )
+ {
+ Activate();
+ SetMouseInputEnabled( true );
+
+ // load a default class page
+ for ( int i=0; i<m_mouseoverButtons.Count(); ++i )
+ {
+ if ( i == 0 )
+ {
+ m_mouseoverButtons[i]->ShowPage(); // Show the first page
+ }
+ else
+ {
+ m_mouseoverButtons[i]->HidePage(); // Hide the rest
+ }
+ }
+
+ if ( m_iScoreBoardKey == BUTTON_CODE_INVALID )
+ {
+ m_iScoreBoardKey = gameuifuncs->GetButtonCodeForBind( "showscores" );
+ }
+ }
+ else
+ {
+ SetVisible( false );
+ SetMouseInputEnabled( false );
+ }
+
+ m_pViewPort->ShowBackGround( bShow );
+}
+
+
+void CClassMenu::SetData(KeyValues *data)
+{
+ m_iTeam = data->GetInt( "team" );
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Sets the text of a control by name
+//-----------------------------------------------------------------------------
+void CClassMenu::SetLabelText(const char *textEntryName, const char *text)
+{
+ Label *entry = dynamic_cast<Label *>(FindChildByName(textEntryName));
+ if (entry)
+ {
+ entry->SetText(text);
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Sets the visibility of a button by name
+//-----------------------------------------------------------------------------
+void CClassMenu::SetVisibleButton(const char *textEntryName, bool state)
+{
+ Button *entry = dynamic_cast<Button *>(FindChildByName(textEntryName));
+ if (entry)
+ {
+ entry->SetVisible(state);
+ }
+}
+
+void CClassMenu::OnKeyCodePressed(KeyCode code)
+{
+ int nDir = 0;
+
+ switch ( code )
+ {
+ case KEY_XBUTTON_UP:
+ case KEY_XSTICK1_UP:
+ case KEY_XSTICK2_UP:
+ case KEY_UP:
+ case KEY_XBUTTON_LEFT:
+ case KEY_XSTICK1_LEFT:
+ case KEY_XSTICK2_LEFT:
+ case KEY_LEFT:
+ nDir = -1;
+ break;
+
+ case KEY_XBUTTON_DOWN:
+ case KEY_XSTICK1_DOWN:
+ case KEY_XSTICK2_DOWN:
+ case KEY_DOWN:
+ case KEY_XBUTTON_RIGHT:
+ case KEY_XSTICK1_RIGHT:
+ case KEY_XSTICK2_RIGHT:
+ case KEY_RIGHT:
+ nDir = 1;
+ break;
+ }
+
+ if ( m_iScoreBoardKey != BUTTON_CODE_INVALID && m_iScoreBoardKey == code )
+ {
+ gViewPortInterface->ShowPanel( PANEL_SCOREBOARD, true );
+ gViewPortInterface->PostMessageToPanel( PANEL_SCOREBOARD, new KeyValues( "PollHideCode", "code", code ) );
+ }
+ else if ( nDir != 0 )
+ {
+ CUtlSortVector< SortedPanel_t, CSortedPanelYLess > vecSortedButtons;
+ VguiPanelGetSortedChildButtonList( this, (void*)&vecSortedButtons, "&", 0 );
+
+ int nNewArmed = VguiPanelNavigateSortedChildButtonList( (void*)&vecSortedButtons, nDir );
+
+ if ( nNewArmed != -1 )
+ {
+ // Handled!
+ if ( nNewArmed < m_mouseoverButtons.Count() )
+ {
+ m_mouseoverButtons[ nNewArmed ]->OnCursorEntered();
+ }
+ return;
+ }
+ }
+ else
+ {
+ BaseClass::OnKeyCodePressed( code );
+ }
+}
+
+
+
+
+
+