l2-unlegits/l2detect/RadarSetupDlg_OffpartyBDSWS.cpp
2012-02-01 05:25:08 +00:00

176 lines
5.3 KiB
C++

#include "stdafx.h"
#include "Resource.h"
#include "Logger.h"
#include "GameClient.h"
#include "UserAI_OffpartyBDSWS.h"
extern HINSTANCE g_radardll_hinst;
extern class GameClient *g_game_client; // in main.cpp
INT_PTR CALLBACK OFFBDSWS_DlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
HWND RadarSetupDlg_OFFBDSWS_Create( HWND hWndParent )
{
return CreateDialogParam( g_radardll_hinst, MAKEINTRESOURCE(IDD_SR_OFFPARTYBDSWS),
hWndParent, OFFBDSWS_DlgProc, 0 );
}
// =========================================================
UserAI_OffpartyBDSWS *rsobdsws;
void OFFBDSWS_Init( HWND hDlg );
void OFFBDSWS_OnDestroy( HWND hDlg );
void OFFBDSWS_OnApply( HWND hDlg );
void OFFBDSWS_OnSave( HWND hDlg );
void OFFBDSWS_OnEnable( HWND hDlg );
void OFFBDSWS_On_C_InvBD( HWND hDlg );
void OFFBDSWS_On_C_InvSWS( HWND hDlg );
INT_PTR CALLBACK OFFBDSWS_DlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
lParam;
switch( uMsg )
{
case WM_INITDIALOG: OFFBDSWS_Init( hDlg ); break;
case WM_DESTROY: { OFFBDSWS_OnDestroy( hDlg ); return FALSE; } break;
case WM_COMMAND:
{
switch( LOWORD(wParam) )
{
case IDC_APPLY: OFFBDSWS_OnApply( hDlg ); break;
case IDC_SAVE: OFFBDSWS_OnSave( hDlg ); break;
case IDC_ENABLE: OFFBDSWS_OnEnable( hDlg ); break;
case IDC_C_INVBD: OFFBDSWS_On_C_InvBD( hDlg ); break;
case IDC_C_INVSWS: OFFBDSWS_On_C_InvSWS( hDlg ); break;
}
} break;
default: return FALSE; break;
}
return TRUE;
}
void OFFBDSWS_Init( HWND hDlg )
{
//log_error( LOG_OK, "init\n" );
rsobdsws = new UserAI_OffpartyBDSWS();
rsobdsws->readFromFile( "L2Detect_offp_BDSWS.ini" );
//
HWND h;
h = GetDlgItem( hDlg, IDC_ENABLE );
if( rsobdsws->allEnabled ) SetWindowText( h, TEXT("Disable") );
else SetWindowText( h, TEXT("Enable") );
SetDlgItemText( hDlg, IDC_E_BDNAME, rsobdsws->nameBD );
SetDlgItemText( hDlg, IDC_E_SWSNAME, rsobdsws->nameSWS );
SetDlgItemInt( hDlg, IDC_E_INV_BD_SEC, rsobdsws->inv_bd_secs, TRUE );
SetDlgItemInt( hDlg, IDC_E_INV_SWS_SEC, rsobdsws->inv_sws_secs, TRUE );
SetDlgItemInt( hDlg, IDC_E_DISMISS_BD_SEC, rsobdsws->dismiss_bd_secs, TRUE );
SetDlgItemInt( hDlg, IDC_E_DISMISS_SWS_SEC, rsobdsws->dismiss_sws_secs, TRUE );
if( rsobdsws->inv_bd_enable ) CheckDlgButton( hDlg, IDC_C_INVBD, TRUE );
else CheckDlgButton( hDlg, IDC_C_INVBD, FALSE );
OFFBDSWS_On_C_InvBD( hDlg );
if( rsobdsws->inv_sws_enable ) CheckDlgButton( hDlg, IDC_C_INVSWS, TRUE );
else CheckDlgButton( hDlg, IDC_C_INVSWS, FALSE );
OFFBDSWS_On_C_InvSWS( hDlg );
}
void OFFBDSWS_OnDestroy( HWND hDlg )
{
hDlg;
//log_error( LOG_OK, "close\n" );
delete rsobdsws;
rsobdsws = NULL;
}
void OFFBDSWS_OnApply( HWND hDlg )
{
//log_error( LOG_OK, "OFFBDSWS_OnApply\n" );
int c = IsDlgButtonChecked( hDlg, IDC_C_INVBD );
if( c ) rsobdsws->inv_bd_enable = 1;
else rsobdsws->inv_bd_enable = 0;
c = IsDlgButtonChecked( hDlg, IDC_C_INVSWS );
if( c ) rsobdsws->inv_sws_enable = 1;
else rsobdsws->inv_sws_enable = 0;
//
GetDlgItemTextW( hDlg, IDC_E_BDNAME, rsobdsws->nameBD, 63 );
GetDlgItemTextW( hDlg, IDC_E_SWSNAME, rsobdsws->nameSWS, 63 );
//
rsobdsws->inv_bd_secs = GetDlgItemInt( hDlg, IDC_E_INV_BD_SEC, NULL, TRUE );
rsobdsws->inv_sws_secs = GetDlgItemInt( hDlg, IDC_E_INV_SWS_SEC, NULL, TRUE );
//
rsobdsws->dismiss_bd_secs = GetDlgItemInt( hDlg, IDC_E_DISMISS_BD_SEC, NULL, TRUE );
rsobdsws->dismiss_sws_secs = GetDlgItemInt( hDlg, IDC_E_DISMISS_SWS_SEC, NULL, TRUE );
//
// apply setup immediately
g_game_client->ai.setOffpartyBDSWS_Config( rsobdsws );
//rsobdsws->saveToFile( "L2Detect_offp_BDSWS.ini" );
}
void OFFBDSWS_OnSave( HWND hDlg )
{
hDlg;
rsobdsws->saveToFile( "L2Detect_offp_BDSWS.ini" );
}
// apply enable state immediately
void OFFBDSWS_OnEnable( HWND hDlg )
{
HWND h = GetDlgItem( hDlg, IDC_ENABLE );
if( rsobdsws->allEnabled == 1 )
{
rsobdsws->allEnabled = 0;
rsobdsws->saveToFile( "L2Detect_offp_BDSWS.ini" );
g_game_client->ai.setOffpartyBDSWS_Enable( false );
SetWindowText( h, TEXT("Enable") );
return;
}
else
{
rsobdsws->allEnabled = 1;
rsobdsws->saveToFile( "L2Detect_offp_BDSWS.ini" );
g_game_client->ai.setOffpartyBDSWS_Enable( true );
SetWindowText( h, TEXT("Disable") );
}
}
void OFFBDSWS_On_C_InvBD( HWND hDlg )
{
int c = IsDlgButtonChecked( hDlg, IDC_C_INVBD );
if( c )
{
EnableWindow( GetDlgItem( hDlg, IDC_E_BDNAME ), TRUE );
EnableWindow( GetDlgItem( hDlg, IDC_E_INV_BD_SEC ), TRUE );
EnableWindow( GetDlgItem( hDlg, IDC_E_DISMISS_BD_SEC ), TRUE );
}
else
{
EnableWindow( GetDlgItem( hDlg, IDC_E_BDNAME ), FALSE );
EnableWindow( GetDlgItem( hDlg, IDC_E_INV_BD_SEC ), FALSE );
EnableWindow( GetDlgItem( hDlg, IDC_E_DISMISS_BD_SEC ), FALSE );
}
}
void OFFBDSWS_On_C_InvSWS( HWND hDlg )
{
int c = IsDlgButtonChecked( hDlg, IDC_C_INVSWS );
if( c )
{
EnableWindow( GetDlgItem( hDlg, IDC_E_SWSNAME ), TRUE );
EnableWindow( GetDlgItem( hDlg, IDC_E_INV_SWS_SEC ), TRUE );
EnableWindow( GetDlgItem( hDlg, IDC_E_DISMISS_SWS_SEC ), TRUE );
}
else
{
EnableWindow( GetDlgItem( hDlg, IDC_E_SWSNAME ), FALSE );
EnableWindow( GetDlgItem( hDlg, IDC_E_INV_SWS_SEC ), FALSE );
EnableWindow( GetDlgItem( hDlg, IDC_E_DISMISS_SWS_SEC ), FALSE );
}
}