Files
Client/Server/ToolProject/SeverSetupDlg/SetupPage4.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

285 lines
12 KiB
C++

// SetupPage4.cpp : 구현 파일입니다.
//
#include "stdafx.h"
#include "SeverSetupDlg.h"
#include "ServerGroup.h"
#include "SetupPage4.h"
#include <Utility/Setup/ServerSetup.h>
#include <Network/Packet/PacketStruct/ServerInfo.h>
#include ".\setuppage4.h"
// CSetupPage4 대화 상자입니다.
IMPLEMENT_DYNAMIC(CSetupPage4, CPropertyPage)
CSetupPage4::CSetupPage4()
: CPropertyPage(CSetupPage4::IDD)
, m_bEnabled(FALSE)
, m_szDBAgentServerID(_T(""))
, m_szVersion(_T(""))
, m_szCheckSum(_T(""))
, m_szPatchAddress(_T(""))
, m_bPingCheck(FALSE)
, m_bBattleServer(FALSE)
, m_bAdminIPCheck(FALSE)
, m_szLoginServerAddr(_T(""))
, m_szUIDServerAddr(_T(""))
, m_szGameDBInfo(_T(""))
, m_szGameListenPort(_T(""))
, m_szAuthListenPort(_T(""))
, m_szChatListenPort(_T(""))
, m_szAdminToolListenPort(_T(""))
, m_szLimitServerGroupUserNum(_T(""))
, m_szLimitBattleGroundUserNum(_T(""))
, m_szLimitBattleGroundUserPer(_T(""))
, m_szPart1DBAgentAddr(_T(""))
, m_szRestrictedTransLevel(_T(""))
, m_szMaxTransCount(_T(""))
{
}
CSetupPage4::~CSetupPage4()
{
}
void CSetupPage4::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_DBAGENT_SERVER_ID, m_szDBAgentServerID);
DDX_Control(pDX, IDC_DBAGENT_SERVER_GROUP, m_cbDBAgentServerGroup);
DDX_Control(pDX, IDC_DBAGENT_SERVER_TYPE, m_cbDBAgentServerType);
DDX_Control(pDX, IDC_DBAGENT_NATION, m_cbDBAgentServiceNation);
DDX_Control(pDX, IDC_DBAGENT_BILLING_TYPE, m_cbDBAgentBillingType);
DDX_Text(pDX, IDC_DBAGENT_VERSION, m_szVersion);
DDX_Text(pDX, IDC_DBAGENT_CHECKSUM, m_szCheckSum);
DDX_Text(pDX, IDC_DBAGENT_PATCH_ADDR, m_szPatchAddress);
DDX_Check(pDX, IDC_DBAGENT_PING_CHECK, m_bPingCheck);
DDX_Check(pDX, IDC_DBAGENT_BATTLE_SERVER, m_bBattleServer);
DDX_Check(pDX, IDC_DBAGENT_ADMIN_IP_CHECK, m_bAdminIPCheck);
DDX_Text(pDX, IDC_DBAGENT_LOGIN_SERVER_ADDR, m_szLoginServerAddr);
DDX_Text(pDX, IDC_DBAGENT_UID_SERVER_ADDR, m_szUIDServerAddr);
DDX_Text(pDX, IDC_DBAGENT_EDT_DBSETTING, m_szGameDBInfo);
DDX_Text(pDX, IDC_DBAGENT_GAME_LISTEN_PORT, m_szGameListenPort);
DDX_Text(pDX, IDC_DBAGENT_AUTH_LISTEN_PORT, m_szAuthListenPort);
DDX_Text(pDX, IDC_DBAGENT_CHAT_LISTEN_PORT, m_szChatListenPort);
DDX_Text(pDX, IDC_DBAGENT_ADMINTOOL_LISTEN_PORT, m_szAdminToolListenPort);
DDX_Text(pDX, IDC_DBAGENT_LIMIT_SERVER_GROUP_USER_NUM, m_szLimitServerGroupUserNum);
DDX_Text(pDX, IDC_DBAGENT_LIMIT_BATTLEGROUND_USER_NUM, m_szLimitBattleGroundUserNum);
DDX_Text(pDX, IDC_DBAGENT_LIMIT_BATTLEGROUND_USER_PER, m_szLimitBattleGroundUserPer);
DDX_Text(pDX, IDC_DBAGENT_PART1UNI_AGENT_ADDR, m_szPart1DBAgentAddr);
DDX_Text(pDX, IDC_DBAGENT_RESTRICTEDLEVEL_P1TOP2, m_szRestrictedTransLevel);
DDX_Text(pDX, IDC_DBAGENT_MAX_TRANSFER_COUNT, m_szMaxTransCount);
DDX_Control(pDX, IDC_DBAGENT_PART2UNIFIED_SERVER_NUM, m_cbSelectableUnifiedServerNum);
}
BEGIN_MESSAGE_MAP(CSetupPage4, CDialog)
ON_BN_CLICKED(IDC_DBAGENT_BTN_DBSETTING, OnBnClickedDbagentBtnDbsetting)
ON_CBN_SELCHANGE(IDC_DBAGENT_SERVER_GROUP, OnCbnSelchangeDbagentServerGroup)
END_MESSAGE_MAP()
// CSetupPage4 메시지 처리기입니다.
BOOL CSetupPage4::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_szGameListenPort.Format(_T("%d"), CServerSetup::DBAgentServerGameServerListen);
m_szAuthListenPort.Format(_T("%d"), CServerSetup::DBAgentServerAuthServerListen);
m_szChatListenPort.Format(_T("%d"), CServerSetup::DBAgentServerChatServerListen);
m_szAdminToolListenPort.Format(_T("%d"), CServerSetup::DBAgentAdminToolServerListen);
SetServerGroup(m_cbDBAgentServerGroup);
SetDBAgentServerType(m_cbDBAgentServerType);
SetBillingType(m_cbDBAgentBillingType);
SetGameServerNation(m_cbDBAgentServiceNation);
CString szServerID;
CString szServerType;
CString szBillingType;
CString szNationType;
CString szPingCheck;
CString szAdminIPCheck;
CString szBattleServer;
CString szSelectableUnifiedServerNum;
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("ServerID"), szServerID);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("ServerType"), szServerType);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("BillingType"), szBillingType);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("NationType"), szNationType);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("ClientVersion"), m_szVersion);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("PatchAddress"), m_szPatchAddress);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("LoginServerAddr"), m_szLoginServerAddr);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("UIDServerAddr"), m_szUIDServerAddr);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("CheckSum"), m_szCheckSum);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitServerGroupUserNum"), m_szLimitServerGroupUserNum);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitBattleUser"), m_szLimitBattleGroundUserNum);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitBattleUserPer"), m_szLimitBattleGroundUserPer);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("PingCheck"), szPingCheck);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("AdminIPCheck"), szAdminIPCheck);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("BattleServer"), szBattleServer);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBType"), m_GameDB.m_szDBData[DBSetting::DB_TYPE]);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBAddr"), m_GameDB.m_szDBData[DBSetting::DB_ADDR]);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBName"), m_GameDB.m_szDBData[DBSetting::DB_NAME]);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBUser"), m_GameDB.m_szDBData[DBSetting::DB_USER]);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBPass"), m_GameDB.m_szDBData[DBSetting::DB_PASS]);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("Part1UnifiedAgentAddr"), m_szPart1DBAgentAddr);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("RestrictedPart1ToPart2Level"), m_szRestrictedTransLevel);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("MaxTransferCharNum"), m_szMaxTransCount);
ReadStringFromReg(g_szSetupFileName, _T("DBAgentServer"), _T("Part2SelectableUnifiedServerNum"), szSelectableUnifiedServerNum);
int nCount = 0;
CString nNum;
for(nCount = 0; nCount < UnifiedConst::Part1; ++nCount)
{
nNum.Format("%d", nCount);
m_cbSelectableUnifiedServerNum.InsertString(nCount, nNum);
}
m_cbSelectableUnifiedServerNum.SetCurSel(atol(szSelectableUnifiedServerNum));
SERVER_ID serverID = { 0, };
serverID.dwID = atol(szServerID);
m_szDBAgentServerID.Format("0x%08x", serverID.dwID);
m_cbDBAgentServerGroup.SetCurSel(serverID.GetGroup());
m_cbDBAgentBillingType.SetCurSel(atol(szBillingType));
m_cbDBAgentServiceNation.SetCurSel(atol(szNationType));
int nAgentServerType = atoi(szServerType);
int nMaxCount = m_cbDBAgentServerType.GetCount();
for(nCount = 0; nCount < nMaxCount; ++nCount)
{
if(m_cbDBAgentServerType.GetItemData(nCount) == nAgentServerType)
{
m_cbDBAgentServerType.SetCurSel(nCount);
break;
}
}
if(nCount == nMaxCount)
{
m_cbDBAgentServerType.SetCurSel(0);
}
m_bPingCheck = (1 == atol(szPingCheck));
m_bAdminIPCheck = (1 == atol(szAdminIPCheck));
m_bBattleServer = (1 == atol(szBattleServer));
CDBSetting::CreateDBInfoString(m_GameDB, m_szGameDBInfo);
UpdateData(FALSE);
UpdateServerID();
return TRUE;
}
void CSetupPage4::Save(void)
{
if(m_bEnabled)
{
UpdateData(TRUE);
CString szServerID;
CString szServerType;
CString szBillingType;
CString szNationType;
CString szSelectableUnifiedServerNum;
SERVER_ID serverID = {0,};
serverID.sID.ID = 0;
serverID.sID.Channel = 0;
serverID.sID.Type = CServerSetup::AgentServer;
serverID.sID.Group = m_cbDBAgentServerGroup.GetCurSel();
szServerID.Format(_T("%d"), serverID.dwID);
szBillingType.Format(_T("%d"), m_cbDBAgentBillingType.GetCurSel());
szNationType.Format(_T("%d"), m_cbDBAgentServiceNation.GetCurSel());
szSelectableUnifiedServerNum.Format(_T("%d"), m_cbSelectableUnifiedServerNum.GetCurSel());
szServerType.Format(_T("%d"),
m_cbDBAgentServerType.GetItemData(m_cbDBAgentServerType.GetCurSel()));
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("ServerID"), szServerID);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("ServerType"), szServerType);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("BillingType"), szBillingType);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("NationType"), szNationType);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("ClientVersion"), m_szVersion);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("PatchAddress"), m_szPatchAddress);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("LoginServerAddr"), m_szLoginServerAddr);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("UIDServerAddr"), m_szUIDServerAddr);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("CheckSum"), m_szCheckSum);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitServerGroupUserNum"), m_szLimitServerGroupUserNum);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitBattleUser"), m_szLimitBattleGroundUserNum);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("LimitBattleUserPer"), m_szLimitBattleGroundUserPer);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("PingCheck"), BOOLToString(m_bPingCheck));
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("AdminIPCheck"), BOOLToString(m_bAdminIPCheck));
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("BattleServer"), BOOLToString(m_bBattleServer));
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBType"), m_GameDB.m_szDBData[DBSetting::DB_TYPE]);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBAddr"), m_GameDB.m_szDBData[DBSetting::DB_ADDR]);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBName"), m_GameDB.m_szDBData[DBSetting::DB_NAME]);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBUser"), m_GameDB.m_szDBData[DBSetting::DB_USER]);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("GameDBPass"), m_GameDB.m_szDBData[DBSetting::DB_PASS]);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("Part1UnifiedAgentAddr"), m_szPart1DBAgentAddr);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("RestrictedPart1ToPart2Level"), m_szRestrictedTransLevel);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("MaxTransferCharNum"), m_szMaxTransCount);
WriteStringToReg(g_szSetupFileName, _T("DBAgentServer"), _T("Part2SelectableUnifiedServerNum"), szSelectableUnifiedServerNum);
}
}
BOOL CSetupPage4::OnSetActive()
{
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
UpdateData(FALSE);
m_bEnabled = TRUE;
return CPropertyPage::OnSetActive();
}
void CSetupPage4::UpdateServerID()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
UpdateData(TRUE);
SERVER_ID serverID = {0,};
serverID.sID.ID = 0;
serverID.sID.Channel = 0;
serverID.sID.Type = CServerSetup::AgentServer;
serverID.sID.Group = m_cbDBAgentServerGroup.GetCurSel();
m_szDBAgentServerID.Format(_T("0x%08x"), serverID.dwID);
UpdateData(FALSE);
}
void CSetupPage4::OnBnClickedDbagentBtnDbsetting()
{
UpdateData(TRUE);
if (CDBSetting::CreateDBSettingDlg(
_T("GameDB DBSetting"),
_T("* GameDB DBSetting \r\n"),
m_GameDB, m_szGameDBInfo))
{
UpdateData(FALSE);
}
}
void CSetupPage4::OnCbnSelchangeDbagentServerGroup()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
UpdateServerID();
}