110 lines
4.5 KiB
C++
110 lines
4.5 KiB
C++
#include "stdafx.h"
|
|
#include "Resource.h"
|
|
#include "Logger.h"
|
|
#include "GameClient.h"
|
|
#include "DlgPressKey.h"
|
|
#include "windowUtils.h"
|
|
#include "RadarSetupDlg_FolAsi.h"
|
|
|
|
extern HINSTANCE g_radardll_hinst;
|
|
extern class GameClient *g_game_client; // in main.cpp
|
|
|
|
INT_PTR CALLBACK RadarSetupDlg_FollowAssist_DlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam );
|
|
|
|
HWND RadarSetupDlg_FolAsi_Create( HWND hWndParent )
|
|
{
|
|
return CreateDialogParam( g_radardll_hinst, MAKEINTRESOURCE(IDD_SR_FOLLOWASSIST),
|
|
hWndParent, RadarSetupDlg_FollowAssist_DlgProc, 0 );
|
|
}
|
|
|
|
// =========================================================
|
|
|
|
void RadarSetupDlg_FollowAssist_Init( HWND hDlg );
|
|
void RadarSetupDlg_FollowAssist_OnDestroy( HWND hDlg );
|
|
void RadarSetupDlg_FollowAssist_OnApply( HWND hDlg );
|
|
// =====================================
|
|
void RadarSetupDlg_FollowAssist_UpdateDisabledWindows( HWND hDlg );
|
|
|
|
|
|
INT_PTR CALLBACK RadarSetupDlg_FollowAssist_DlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
|
|
{
|
|
UNREFERENCED_PARAMETER(lParam);
|
|
switch( uMsg )
|
|
{
|
|
case WM_INITDIALOG: RadarSetupDlg_FollowAssist_Init( hDlg ); break;
|
|
case WM_DESTROY: { RadarSetupDlg_FollowAssist_OnDestroy( hDlg ); return FALSE; } break;
|
|
case WM_COMMAND:
|
|
{
|
|
switch( LOWORD(wParam) )
|
|
{
|
|
case IDC_APPLY: RadarSetupDlg_FollowAssist_OnApply( hDlg ); break;
|
|
case IDC_C_FOLLOW_ENABLE:
|
|
case IDC_C_ASSIST_ENABLE:
|
|
RadarSetupDlg_FollowAssist_UpdateDisabledWindows( hDlg );
|
|
break;
|
|
}
|
|
} break;
|
|
default: return FALSE; break;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
void RadarSetupDlg_FollowAssist_Init( HWND hDlg )
|
|
{
|
|
// force UserAI to reload config file
|
|
g_game_client->ai.folAsiCfg.loadFromFile( "L2Detect_folAsi.ini" );
|
|
// follow sets
|
|
CheckDlgButton( hDlg, IDC_C_FOLLOW_ENABLE, g_game_client->ai.folAsiCfg.m_follow_enable );
|
|
SetDlgItemInt( hDlg, IDC_E_FOLLOW_DISTANCE, g_game_client->ai.folAsiCfg.m_follow_dist, FALSE );
|
|
SetDlgItemTextW( hDlg, IDC_E_NAME_FOLLOW, g_game_client->ai.folAsiCfg.m_follow_name );
|
|
CheckDlgButton( hDlg, IDC_C_FOLLOW_ONLY_IN_PARTY, g_game_client->ai.folAsiCfg.m_follow_only_in_party );
|
|
// assist sets
|
|
CheckDlgButton( hDlg, IDC_C_ASSIST_ENABLE, g_game_client->ai.folAsiCfg.m_assist_enable );
|
|
SetDlgItemTextW( hDlg, IDC_E_NAME_ASSIST, g_game_client->ai.folAsiCfg.m_assist_name );
|
|
CheckDlgButton( hDlg, IDC_C_ASSIST_ONLY_IN_PARTY, g_game_client->ai.folAsiCfg.m_assist_only_in_party );
|
|
CheckDlgButton( hDlg, IDC_C_DONT_ASSIST_ALLIES, g_game_client->ai.folAsiCfg.m_assist_dont_ally );
|
|
//
|
|
RadarSetupDlg_FollowAssist_UpdateDisabledWindows( hDlg );
|
|
}
|
|
|
|
|
|
void RadarSetupDlg_FollowAssist_OnDestroy( HWND hDlg )
|
|
{
|
|
UNREFERENCED_PARAMETER(hDlg);
|
|
}
|
|
|
|
void RadarSetupDlg_FollowAssist_OnApply( HWND hDlg )
|
|
{
|
|
// follow sets
|
|
g_game_client->ai.folAsiCfg.m_follow_enable = IsDlgButtonChecked( hDlg, IDC_C_FOLLOW_ENABLE );
|
|
g_game_client->ai.folAsiCfg.m_follow_dist = (int)GetDlgItemInt( hDlg, IDC_E_FOLLOW_DISTANCE, NULL, FALSE );
|
|
GetDlgItemTextW( hDlg, IDC_E_NAME_FOLLOW, g_game_client->ai.folAsiCfg.m_follow_name, 127 );
|
|
g_game_client->ai.folAsiCfg.m_follow_only_in_party = IsDlgButtonChecked( hDlg, IDC_C_FOLLOW_ONLY_IN_PARTY );
|
|
// assist sets
|
|
g_game_client->ai.folAsiCfg.m_assist_enable = IsDlgButtonChecked( hDlg, IDC_C_ASSIST_ENABLE );
|
|
GetDlgItemTextW( hDlg, IDC_E_NAME_ASSIST, g_game_client->ai.folAsiCfg.m_assist_name, 127 );
|
|
g_game_client->ai.folAsiCfg.m_assist_only_in_party = IsDlgButtonChecked( hDlg, IDC_C_ASSIST_ONLY_IN_PARTY );
|
|
g_game_client->ai.folAsiCfg.m_assist_dont_ally = IsDlgButtonChecked( hDlg, IDC_C_DONT_ASSIST_ALLIES );
|
|
// save config to file
|
|
g_game_client->ai.folAsiCfg.saveToFile( "L2Detect_folAsi.ini" );
|
|
// checks
|
|
if( !g_game_client->ai.folAsiCfg.m_follow_enable )
|
|
g_game_client->ai.followDisable(); // zero follow objectID
|
|
if( !g_game_client->ai.folAsiCfg.m_assist_enable )
|
|
g_game_client->ai.assistDisable(); // zero assist objectID
|
|
}
|
|
|
|
void RadarSetupDlg_FollowAssist_UpdateDisabledWindows( HWND hDlg )
|
|
{
|
|
BOOL b = FALSE;
|
|
if( IsDlgButtonChecked( hDlg, IDC_C_FOLLOW_ENABLE ) ) b = TRUE;
|
|
EnableWindow( GetDlgItem( hDlg, IDC_E_NAME_FOLLOW ), b );
|
|
EnableWindow( GetDlgItem( hDlg, IDC_C_FOLLOW_ONLY_IN_PARTY ), b );
|
|
EnableWindow( GetDlgItem( hDlg, IDC_E_FOLLOW_DISTANCE ), b );
|
|
b = FALSE;
|
|
if( IsDlgButtonChecked( hDlg, IDC_C_ASSIST_ENABLE ) ) b = TRUE;
|
|
EnableWindow( GetDlgItem( hDlg, IDC_E_NAME_ASSIST ), b );
|
|
EnableWindow( GetDlgItem( hDlg, IDC_C_ASSIST_ONLY_IN_PARTY ), b );
|
|
EnableWindow( GetDlgItem( hDlg, IDC_C_DONT_ASSIST_ALLIES ), b );
|
|
}
|