DragonNest/Server/ESM/ESMFrameWork.cpp
2024-12-19 09:48:26 +08:00

82 lines
2 KiB
C++

#include "Stdafx.h"
#include "ESMFrameWork.h"
#include <io.h>
#include <direct.h>
CESMFrameWork * CESMFrameWork::GetInstance()
{
static CESMFrameWork s;
return &s;
}
CESMFrameWork::CESMFrameWork()
{
}
CESMFrameWork::~CESMFrameWork()
{
}
extern TNetLauncherPatcherConfig g_Config;
bool CESMFrameWork::LoadConfig()
{
#ifdef _SERVICEMODE
GetRegistryString(HKEY_LOCAL_MACHINE, "Software\\EyedentityGames", "ServiceManagerIP", g_Config.szServiceManagerIP, IPLENMAX);
char szTemp[MAX_PATH];
GetRegistryString(HKEY_LOCAL_MACHINE, "Software\\EyedentityGames", "ServiceManagerPort", szTemp, MAX_PATH);
g_Config.nServiceManagerPort = atoi(szTemp);;
GetRegistryString(HKEY_LOCAL_MACHINE, "Software\\EyedentityGames", "LauncherPath", g_Config.szNetLauncherLocation, 1024);
GetRegistryString(HKEY_LOCAL_MACHINE, "Software\\EyedentityGames", "LauncherName", g_Config.szNetLauncherName, MAX_PATH);
if (g_Config.nServiceManagerPort <= 0)
{
//Sleep(20000);
return 0;
}
#else
if (_access(".\\Config\\DNLauncherPatcher.ini", 0) == -1)
return false;
g_IniFile.Open(".\\Config\\DNLauncherPatcher.ini");
g_IniFile.GetValue("ServiceManager", "IP", g_Config.szServiceManagerIP);
g_IniFile.GetValue("ServiceManager", "Port", &g_Config.nServiceManagerPort);
g_IniFile.GetValue("NetLauncher", "Location", g_Config.szNetLauncherLocation);
g_IniFile.GetValue("NetLauncher", "FileName", g_Config.szNetLauncherName);
//파일의 위치에 컨피스 폴더생성
std::string str;
str = g_Config.szNetLauncherLocation;
str += "Config";
if (_access(str.c_str(), 0) == -1)
{
mkdir(str.c_str());
}
#endif
return true;
}
bool CESMFrameWork::AppInit()
{
SetMiniDump();
CProcessManager::GetInstance()->Start();
if (LoadConfig() == false)
{
_ASSERT(0);
return false;
}
if (CLauncherPatcherSession::GetInstance()->Start(g_Config.szServiceManagerIP, g_Config.nServiceManagerPort) == false)
{
_ASSERT(0);
return false;
}
return true;
}
void CESMFrameWork::AppClose()
{
CProcessManager::GetInstance()->Stop();
CLauncherPatcherSession::GetInstance()->Stop();
}