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.
217 lines
7.1 KiB
217 lines
7.1 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// CONFIG.CPP |
|
// |
|
// Configuration Dialog |
|
//=====================================================================================// |
|
#include "vxconsole.h" |
|
|
|
CHAR g_xboxTargetName[MAX_XBOXNAMELEN]; |
|
char g_localPath[MAX_PATH]; |
|
char g_targetPath[MAX_PATH]; |
|
BOOL g_clsOnConnect; |
|
BOOL g_loadSymbolsOnConnect; |
|
char g_xexTargetPath[MAX_PATH]; |
|
BOOL g_alwaysAutoConnect; |
|
BOOL g_startMinimized; |
|
char g_installPath[MAX_PATH]; |
|
BOOL g_captureDebugSpew_StartupState; |
|
|
|
//----------------------------------------------------------------------------- |
|
// ConfigDlg_LoadConfig |
|
// |
|
//----------------------------------------------------------------------------- |
|
void ConfigDlg_LoadConfig() |
|
{ |
|
// get our config |
|
Sys_GetRegistryString( "xboxName", g_xboxTargetName, "", sizeof( g_xboxTargetName ) ); |
|
Sys_GetRegistryString( "localPath", g_localPath, "u:\\dev\\game", sizeof( g_localPath ) ); |
|
Sys_GetRegistryString( "targetPath", g_targetPath, "e:\\valve", sizeof( g_targetPath ) ); |
|
Sys_GetRegistryString( "installPath", g_installPath, "\\\\fileserver\\user\\xbox\\xbox_orange", sizeof( g_installPath ) ); |
|
Sys_GetRegistryInteger( "clearOnConnect", true, g_clsOnConnect ); |
|
Sys_GetRegistryInteger( "loadSymbolsOnConnect", false, g_loadSymbolsOnConnect ); |
|
Sys_GetRegistryInteger( "alwaysAutoConnect", false, g_alwaysAutoConnect ); |
|
Sys_GetRegistryInteger( "startMinimized", false, g_startMinimized ); |
|
Sys_GetRegistryInteger( "captureDebugSpew", true, g_captureDebugSpew_StartupState ); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// ConfigDlg_SaveConfig |
|
// |
|
//----------------------------------------------------------------------------- |
|
void ConfigDlg_SaveConfig() |
|
{ |
|
// save config |
|
Sys_SetRegistryString( "xboxName", g_xboxTargetName ); |
|
Sys_SetRegistryString( "localPath", g_localPath ); |
|
Sys_SetRegistryString( "targetPath", g_targetPath ); |
|
Sys_SetRegistryString( "installPath", g_installPath ); |
|
Sys_SetRegistryInteger( "clearOnConnect", g_clsOnConnect ); |
|
Sys_SetRegistryInteger( "loadSymbolsOnConnect", g_loadSymbolsOnConnect ); |
|
Sys_SetRegistryInteger( "alwaysAutoConnect", g_alwaysAutoConnect ); |
|
Sys_SetRegistryInteger( "startMinimized", g_startMinimized ); |
|
Sys_SetRegistryInteger( "captureDebugSpew", g_captureDebugSpew_StartupState ); |
|
|
|
// update |
|
SetMainWindowTitle(); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// ConfigDlg_Setup |
|
// |
|
//----------------------------------------------------------------------------- |
|
void ConfigDlg_Setup( HWND hWnd ) |
|
{ |
|
SetDlgItemText( hWnd,IDC_CONFIG_XBOXNAME, g_xboxTargetName ); |
|
SetDlgItemText( hWnd,IDC_CONFIG_LOCALPATH, g_localPath ); |
|
SetDlgItemText( hWnd,IDC_CONFIG_TARGETPATH, g_targetPath ); |
|
SetDlgItemText( hWnd,IDC_CONFIG_INSTALLPATH, g_installPath ); |
|
|
|
EnableWindow( GetDlgItem( hWnd, IDC_CONFIG_PING ), strlen( g_xboxTargetName ) > 0 ); |
|
|
|
CheckDlgButton( hWnd, IDC_CONFIG_CLEARONCONNECT, g_clsOnConnect ? BST_CHECKED : BST_UNCHECKED ); |
|
CheckDlgButton( hWnd, IDC_CONFIG_ALWAYSAUTOCONNECT, g_alwaysAutoConnect ? BST_CHECKED : BST_UNCHECKED ); |
|
CheckDlgButton( hWnd, IDC_CONFIG_STARTMINIMIZED, g_startMinimized ? BST_CHECKED : BST_UNCHECKED ); |
|
CheckDlgButton( hWnd, IDC_CONFIG_CAPTUREDEBUGSPEW, g_captureDebugSpew_StartupState ? BST_CHECKED : BST_UNCHECKED ); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// ConfigDlg_Ping |
|
// |
|
//----------------------------------------------------------------------------- |
|
BOOL ConfigDlg_Ping( HWND hwnd ) |
|
{ |
|
char xboxName[MAX_XBOXNAMELEN]; |
|
BOOL canConnect; |
|
char* args[1]; |
|
|
|
xboxName[0] = '\0'; |
|
GetDlgItemText( hwnd, IDC_CONFIG_XBOXNAME, xboxName, MAX_XBOXNAMELEN ); |
|
|
|
// ignore ping to current connection |
|
if ( !stricmp( g_xboxName, xboxName ) ) |
|
{ |
|
if ( g_connectedToXBox ) |
|
{ |
|
Sys_MessageBox( "Ping", "Already Connected To: '%s'", xboxName ); |
|
return true; |
|
} |
|
} |
|
|
|
// terminate any current connection |
|
lc_disconnect( 0, NULL ); |
|
|
|
// trial connect |
|
args[0] = xboxName; |
|
canConnect = lc_connect( 1, args ); |
|
|
|
if ( !canConnect ) |
|
Sys_MessageBox( "Ping FAILURE", "Could Not Connect To: %s", xboxName ); |
|
else |
|
Sys_MessageBox( "Ping SUCCESS", "Connection Valid To: %s", g_xboxName ); |
|
|
|
if ( canConnect ) |
|
lc_disconnect( 0, NULL ); |
|
|
|
return canConnect; |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// ConfigDlg_GetChanges |
|
// |
|
//----------------------------------------------------------------------------- |
|
bool ConfigDlg_GetChanges( HWND hwnd ) |
|
{ |
|
char remotePath[MAX_PATH]; |
|
char localPath[MAX_PATH]; |
|
char targetPath[MAX_PATH]; |
|
char installPath[MAX_PATH]; |
|
char xboxName[MAX_XBOXNAMELEN]; |
|
char xexLocalPath[MAX_PATH]; |
|
char xexTargetPath[MAX_PATH]; |
|
|
|
xboxName[0] = '\0'; |
|
remotePath[0] = '\0'; |
|
localPath[0] = '\0'; |
|
targetPath[0] = '\0'; |
|
xexLocalPath[0] = '\0'; |
|
xexTargetPath[0] = '\0'; |
|
|
|
GetDlgItemText( hwnd, IDC_CONFIG_XBOXNAME, xboxName, MAX_XBOXNAMELEN ); |
|
GetDlgItemText( hwnd, IDC_CONFIG_LOCALPATH, localPath, MAX_PATH ); |
|
GetDlgItemText( hwnd, IDC_CONFIG_TARGETPATH, targetPath, MAX_PATH ); |
|
GetDlgItemText( hwnd, IDC_CONFIG_INSTALLPATH, installPath, MAX_PATH ); |
|
|
|
strcpy( g_localPath, localPath ); |
|
Sys_NormalizePath( g_localPath, true ); |
|
|
|
strcpy( g_targetPath, targetPath ); |
|
Sys_NormalizePath( g_targetPath, true ); |
|
|
|
strcpy( g_installPath, installPath ); |
|
Sys_NormalizePath( g_installPath, true ); |
|
|
|
strcpy( g_xboxTargetName, xboxName ); |
|
|
|
g_clsOnConnect = IsDlgButtonChecked( hwnd, IDC_CONFIG_CLEARONCONNECT ); |
|
g_loadSymbolsOnConnect = IsDlgButtonChecked( hwnd, IDC_CONFIG_LOADSYMBOLS ); |
|
g_alwaysAutoConnect = IsDlgButtonChecked( hwnd, IDC_CONFIG_ALWAYSAUTOCONNECT ); |
|
g_startMinimized = IsDlgButtonChecked( hwnd, IDC_CONFIG_STARTMINIMIZED ); |
|
g_captureDebugSpew_StartupState = IsDlgButtonChecked( hwnd, IDC_CONFIG_CAPTUREDEBUGSPEW ); |
|
|
|
// success |
|
return ( true ); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// ConfigDlg_Proc |
|
// |
|
//----------------------------------------------------------------------------- |
|
BOOL CALLBACK ConfigDlg_Proc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) |
|
{ |
|
switch ( message ) |
|
{ |
|
case WM_INITDIALOG: |
|
ConfigDlg_Setup( hwnd ); |
|
return ( TRUE ); |
|
|
|
case WM_COMMAND: |
|
switch ( LOWORD( wParam ) ) |
|
{ |
|
case IDC_CONFIG_PING: |
|
ConfigDlg_Ping( hwnd ); |
|
break; |
|
|
|
case IDC_CONFIG_XBOXNAME: |
|
CHAR buff[MAX_XBOXNAMELEN]; |
|
GetDlgItemText( hwnd, IDC_CONFIG_XBOXNAME, buff, sizeof( buff ) ); |
|
EnableWindow( GetDlgItem( hwnd, IDC_CONFIG_PING ), strlen( buff ) > 0 ); |
|
break; |
|
|
|
case IDC_OK: |
|
if ( !ConfigDlg_GetChanges( hwnd ) ) |
|
break; |
|
case IDCANCEL: |
|
case IDC_CANCEL: |
|
EndDialog( hwnd, wParam ); |
|
return ( TRUE ); |
|
} |
|
break; |
|
} |
|
return ( FALSE ); |
|
} |
|
|
|
//----------------------------------------------------------------------------- |
|
// ConfigDlg_Open |
|
// |
|
//----------------------------------------------------------------------------- |
|
void ConfigDlg_Open( void ) |
|
{ |
|
int result; |
|
|
|
result = DialogBox( g_hInstance, MAKEINTRESOURCE( IDD_CONFIG ), g_hDlgMain, ( DLGPROC )ConfigDlg_Proc ); |
|
if ( LOWORD( result ) != IDC_OK ) |
|
return; |
|
|
|
ConfigDlg_SaveConfig(); |
|
}
|
|
|