Files
Client/Server/ToolProject/SeverSetupDlg/SetupPage2.cpp
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

245 lines
9.9 KiB
C++

// SetupPage2.cpp : 구현 파일입니다.
//
#include "stdafx.h"
#include "SeverSetupDlg.h"
#include "ServerGroup.h"
#include "SetupPage2.h"
#include <Utility/Setup/ServerSetup.h>
#include <Network/Packet/PacketStruct/ServerInfo.h>
#include ".\setuppage2.h"
// CSetupPage2 대화 상자입니다.
IMPLEMENT_DYNAMIC(CSetupPage2, CPropertyPage)
CSetupPage2::CSetupPage2()
: CPropertyPage(CSetupPage2::IDD)
, m_bEnabled(FALSE)
, m_szAuthServerID(_T(""))
, m_szAuthServerClientListenPort(_T(""))
, m_bPingCheck(FALSE)
, m_bKoreanCheck(FALSE)
, m_bTestGroup(FALSE)
, m_bSupressCharCreate(FALSE)
, m_bSupressCharDelete(FALSE)
, m_bBattleServer(FALSE)
, m_szAuthDBInfo(_T(""))
, m_szAdminToolDBInfo(_T(""))
, m_szDBAgentAddress(_T(""))
{
}
CSetupPage2::~CSetupPage2()
{
}
void CSetupPage2::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Text(pDX, IDC_AUTH_SERVER_ID, m_szAuthServerID);
DDX_Text(pDX, IDC_AUTH_CLIENT_LISTEN_PORT, m_szAuthServerClientListenPort);
DDX_Control(pDX, IDC_AUTH_SERVER_TYPE, m_cbAuthType);
DDX_Control(pDX, IDC_AUTH_SERVER_GROUP, m_cbAuthGroup);
DDX_Check(pDX, IDC_AUTH_PING_CHECK, m_bPingCheck);
DDX_Check(pDX, IDC_AUTH_HAN_CHECK, m_bKoreanCheck);
DDX_Check(pDX, IDC_AUTH_TEST_GROUP, m_bTestGroup);
DDX_Check(pDX, IDC_AUTH_SUPRESS_CHARCREATE, m_bSupressCharCreate);
DDX_Check(pDX, IDC_AUTH_SUPRESS_CHARDELETE, m_bSupressCharDelete);
DDX_Check(pDX, IDC_AUTH_BATTLESERVER, m_bBattleServer);
DDX_Text(pDX, IDC_AUTH_EDT_DBSETTING, m_szAuthDBInfo);
DDX_Text(pDX, IDC_AUTH_BLOCK_EDT_DBSETTING, m_szAdminToolDBInfo);
DDX_Text(pDX, IDC_AUTH_DBAGENT_ADDR, m_szDBAgentAddress);
}
BEGIN_MESSAGE_MAP(CSetupPage2, CPropertyPage)
ON_BN_CLICKED(IDC_AUTH_BTN_DBSETTING, OnBnClickedAuthBtnDbsetting)
ON_BN_CLICKED(IDC_AUTH_BLOCK_BTN_DBSETTING, OnBnClickedAuthBlockBtnDbsetting)
END_MESSAGE_MAP()
// CSetupPage2 메시지 처리기입니다.
BOOL CSetupPage2::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_szAuthServerClientListenPort.Format(_T("%d"), CServerSetup::AuthServerClientListen);
SetAuthType(m_cbAuthType);
SetServerGroup(m_cbAuthGroup);
m_cbAuthGroup.SetCurSel(0);
CString szAuthType;
CString szPingCheck;
CString szKoreanLangCheck;
CString szBattleServerAuth;
CString szTestGroupAuth;
CString szSupressCharCreate;
CString szSupressCharDelete;
// 기본 정보
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("ServerID"), m_szAuthServerID);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AuthType"), szAuthType);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("DBAgentAddr"), m_szDBAgentAddress);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("PingCheck"), szPingCheck);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("KoreanLangCheck"), szKoreanLangCheck);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("BattleServerAuth"), szBattleServerAuth);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("TestGroupAuth"), szTestGroupAuth);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("SupressCharCreate"), szSupressCharCreate);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("SupressCharDelete"), szSupressCharDelete);
// 인증 DB정보
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBType"), m_AuthDB.m_szDBData[DBSetting::DB_TYPE]);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBAddr"), m_AuthDB.m_szDBData[DBSetting::DB_ADDR]);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBName"), m_AuthDB.m_szDBData[DBSetting::DB_NAME]);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBUser"), m_AuthDB.m_szDBData[DBSetting::DB_USER]);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBPass"), m_AuthDB.m_szDBData[DBSetting::DB_PASS]);
// 운영툴 DB정보 (블럭 때문임)
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBType"), m_AdminToolDB.m_szDBData[DBSetting::DB_TYPE]);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBAddr"), m_AdminToolDB.m_szDBData[DBSetting::DB_ADDR]);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBName"), m_AdminToolDB.m_szDBData[DBSetting::DB_NAME]);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBUser"), m_AdminToolDB.m_szDBData[DBSetting::DB_USER]);
ReadStringFromReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBPass"), m_AdminToolDB.m_szDBData[DBSetting::DB_PASS]);
SERVER_ID serverID;
serverID.dwID = atol(m_szAuthServerID);
serverID.sID.ID = 0;
serverID.sID.Type = CServerSetup::AuthServer;
serverID.sID.Channel = 0;
m_szAuthServerID.Format("0x%08x", serverID.dwID);
m_cbAuthType.SetCurSel(atol(szAuthType));
m_cbAuthGroup.SetCurSel(int(serverID.sID.Group));
m_bPingCheck = (1 == atol(szPingCheck));
m_bKoreanCheck = (1 == atol(szKoreanLangCheck));
m_bTestGroup = (1 == atol(szTestGroupAuth));
m_bSupressCharCreate = (1 == atol(szSupressCharCreate));
m_bSupressCharDelete = (1 == atol(szSupressCharDelete));
m_bBattleServer = (1 == atol(szBattleServerAuth));
CDBSetting::CreateDBInfoString(m_AuthDB, m_szAuthDBInfo);
CDBSetting::CreateDBInfoString(m_AdminToolDB, m_szAdminToolDBInfo);
UpdateData(FALSE);
UpdateServerID();
return TRUE; // return TRUE unless you set the focus to a control
// 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다.
}
void CSetupPage2::Save(void)
{
if(m_bEnabled)
{
UpdateData(TRUE);
CString szAuthServerID;
CString szAuthType;
CString szPingCheck;
CString szKoreanLangCheck;
CString szBattleServerAuth;
CString szTestGroupAuth;
CString szSupressCharCreate;
CString szSupressCharDelete;
SERVER_ID serverID;
serverID.sID.ID = 0;
serverID.sID.Type = CServerSetup::AuthServer;
serverID.sID.Group = m_cbAuthGroup.GetCurSel();
serverID.sID.Channel = 0;
szAuthServerID.Format(_T("%d"), serverID.dwID);
szAuthType.Format(_T("%d"), m_cbAuthType.GetCurSel());
szPingCheck.SetString(BOOLToString(m_bPingCheck));
szKoreanLangCheck.SetString(BOOLToString(m_bKoreanCheck));
szBattleServerAuth.SetString(BOOLToString(m_bBattleServer));
szTestGroupAuth.SetString(BOOLToString(m_bTestGroup));
szSupressCharCreate.SetString(BOOLToString(m_bSupressCharCreate));
szSupressCharDelete.SetString(BOOLToString(m_bSupressCharDelete));
// 기본 정보
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("ServerID"), szAuthServerID);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AuthType"), szAuthType);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("DBAgentAddr"), m_szDBAgentAddress);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("PingCheck"), szPingCheck);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("KoreanLangCheck"), szKoreanLangCheck);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("BattleServerAuth"), szBattleServerAuth);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("TestGroupAuth"), szTestGroupAuth);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("SupressCharCreate"), szSupressCharCreate);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("SupressCharDelete"), szSupressCharDelete);
// 인증 DB정보
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBType"), m_AuthDB.m_szDBData[DBSetting::DB_TYPE]);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBAddr"), m_AuthDB.m_szDBData[DBSetting::DB_ADDR]);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBName"), m_AuthDB.m_szDBData[DBSetting::DB_NAME]);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBUser"), m_AuthDB.m_szDBData[DBSetting::DB_USER]);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AuthDBPass"), m_AuthDB.m_szDBData[DBSetting::DB_PASS]);
// 운영툴 DB정보 (블럭 때문임)
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBType"), m_AdminToolDB.m_szDBData[DBSetting::DB_TYPE]);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBAddr"), m_AdminToolDB.m_szDBData[DBSetting::DB_ADDR]);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBName"), m_AdminToolDB.m_szDBData[DBSetting::DB_NAME]);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBUser"), m_AdminToolDB.m_szDBData[DBSetting::DB_USER]);
WriteStringToReg(g_szSetupFileName, _T("AuthServer"), _T("AdminToolDBPass"), m_AdminToolDB.m_szDBData[DBSetting::DB_PASS]);
}
}
BOOL CSetupPage2::OnSetActive()
{
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
UpdateData(FALSE);
m_bEnabled = TRUE;
return CPropertyPage::OnSetActive();
}
void CSetupPage2::UpdateServerID()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
UpdateData(TRUE);
SERVER_ID serverID;
serverID.sID.ID = 0;
serverID.sID.Type = CServerSetup::AuthServer;
serverID.sID.Group = m_cbAuthGroup.GetCurSel();
serverID.sID.Channel = 0;
m_szAuthServerID.Format("0x%08x", serverID.dwID);
UpdateData(FALSE);
}
void CSetupPage2::OnBnClickedAuthBtnDbsetting()
{
UpdateData(TRUE);
if (CDBSetting::CreateDBSettingDlg(
_T("Auth DBSetting"),
_T("* Auth DBSetting \r\n"),
m_AuthDB, m_szAuthDBInfo))
{
UpdateData(FALSE);
}
}
void CSetupPage2::OnBnClickedAuthBlockBtnDbsetting()
{
UpdateData(TRUE);
if (CDBSetting::CreateDBSettingDlg(
_T("AdminTool DBSetting (for block user)"),
_T("* AdminTool DBSetting (for block user) \r\n"),
m_AdminToolDB, m_szAdminToolDBInfo))
{
UpdateData(FALSE);
}
}