mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#include "LoadGameDialog.h"
|
||||
#include "EngineInterface.h"
|
||||
|
||||
#include "vgui/ISystem.h"
|
||||
#include "vgui/ISurface.h"
|
||||
#include "vgui/IVGui.h"
|
||||
#include "KeyValues.h"
|
||||
#include "filesystem.h"
|
||||
|
||||
#include "vgui_controls/Button.h"
|
||||
#include "vgui_controls/PanelListPanel.h"
|
||||
#include "vgui_controls/QueryBox.h"
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
using namespace vgui;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:Constructor
|
||||
//-----------------------------------------------------------------------------
|
||||
CLoadGameDialog::CLoadGameDialog(vgui::Panel *parent) : BaseClass(parent, "LoadGameDialog")
|
||||
{
|
||||
SetDeleteSelfOnClose(true);
|
||||
SetBounds(0, 0, 512, 384);
|
||||
SetMinimumSize( 256, 300 );
|
||||
SetSizeable( true );
|
||||
|
||||
SetTitle("#GameUI_LoadGame", true);
|
||||
|
||||
vgui::Button *cancel = new vgui::Button( this, "Cancel", "#GameUI_Cancel" );
|
||||
cancel->SetCommand( "Close" );
|
||||
|
||||
LoadControlSettings("resource/LoadGameDialog.res");
|
||||
|
||||
SetControlEnabled( "delete", false );
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Destructor
|
||||
//-----------------------------------------------------------------------------
|
||||
CLoadGameDialog::~CLoadGameDialog()
|
||||
{
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void CLoadGameDialog::OnCommand( const char *command )
|
||||
{
|
||||
if ( !stricmp( command, "loadsave" ) )
|
||||
{
|
||||
int saveIndex = GetSelectedItemSaveIndex();
|
||||
if ( m_SaveGames.IsValidIndex(saveIndex) )
|
||||
{
|
||||
const char *shortName = m_SaveGames[saveIndex].szShortName;
|
||||
if ( shortName && shortName[ 0 ] )
|
||||
{
|
||||
// Load the game, return to top and switch to engine
|
||||
char sz[ 256 ];
|
||||
Q_snprintf(sz, sizeof( sz ), "progress_enable\nload %s\n", shortName );
|
||||
|
||||
engine->ClientCmd_Unrestricted( sz );
|
||||
|
||||
// Close this dialog
|
||||
OnClose();
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( !stricmp( command, "Delete" ) )
|
||||
{
|
||||
int saveIndex = GetSelectedItemSaveIndex();
|
||||
if ( m_SaveGames.IsValidIndex(saveIndex) )
|
||||
{
|
||||
// confirm the deletion
|
||||
QueryBox *box = new QueryBox( "#GameUI_ConfirmDeleteSaveGame_Title", "#GameUI_ConfirmDeleteSaveGame_Info" );
|
||||
box->AddActionSignalTarget(this);
|
||||
box->SetOKButtonText("#GameUI_ConfirmDeleteSaveGame_OK");
|
||||
box->SetOKCommand(new KeyValues("Command", "command", "DeleteConfirmed"));
|
||||
box->DoModal();
|
||||
}
|
||||
}
|
||||
else if ( !stricmp( command, "DeleteConfirmed" ) )
|
||||
{
|
||||
int saveIndex = GetSelectedItemSaveIndex();
|
||||
if ( m_SaveGames.IsValidIndex(saveIndex) )
|
||||
{
|
||||
DeleteSaveGame( m_SaveGames[saveIndex].szFileName );
|
||||
|
||||
// reset the list
|
||||
ScanSavedGames();
|
||||
m_pGameList->MoveScrollBarToTop();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
BaseClass::OnCommand( command );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user