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

143 lines
No EOL
3.2 KiB
C++

// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
// ServiceManagerEx.pch는 미리 컴파일된 헤더가 됩니다.
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.
#include "stdafx.h"
struct tm _wtotm(const WCHAR * pTimeFromSql)
{
int nCnt = 0, nTmCnt = 0;
struct tm Tm;
memset(&Tm, 0, sizeof(struct tm));
WCHAR wszTemp[TIMELENMAX];
memset(wszTemp, 0, sizeof(wszTemp));
for (int i = 0; i < TIMELENMAX; i++)
{
if (pTimeFromSql[i] == NULL || pTimeFromSql[i] == '\0')
{
if (nTmCnt == 4)
{
Tm.tm_min = _wtoi(wszTemp);
return Tm;
}
break;
}
if (pTimeFromSql[i] == '.') break;
if (pTimeFromSql[i] != '-' && pTimeFromSql[i] != ':' && pTimeFromSql[i] != ' ')
{
wszTemp[nCnt] = pTimeFromSql[i];
nCnt++;
}
else
{
if (nTmCnt == 0)
Tm.tm_year = _wtoi(wszTemp) - 1900; //struct tm year since 1900
else if (nTmCnt == 1)
Tm.tm_mon = _wtoi(wszTemp) - 1;
else if (nTmCnt == 2)
Tm.tm_mday = _wtoi(wszTemp);
else if (nTmCnt == 3)
Tm.tm_hour = _wtoi(wszTemp);
else if (nTmCnt == 4)
{
Tm.tm_min = _wtoi(wszTemp);
return Tm;
}
memset(wszTemp, 0, sizeof(wszTemp));
nTmCnt++;
nCnt = 0;
}
}
return Tm;
}
int GetServerType(const WCHAR * pType)
{
if (!wcsicmp(pType, L"db"))
return MANAGED_TYPE_DB;
else if (!wcsicmp(pType, L"log"))
return MANAGED_TYPE_LOG;
else if (!wcsicmp(pType, L"login"))
return MANAGED_TYPE_LOGIN;
else if (!wcsicmp(pType, L"master"))
return MANAGED_TYPE_MASTER;
else if (!wcsicmp(pType, L"village"))
return MANAGED_TYPE_VILLAGE;
else if (!wcsicmp(pType, L"game"))
return MANAGED_TYPE_GAME;
else if (!wcsicmp(pType, L"cash"))
return MANAGED_TYPE_CASH;
return 0;
}
int GetMonitorLevel(const WCHAR * pLevel)
{
if (!wcsicmp(L"MONITOR", pLevel))
return SERVERMONITOR_LEVEL_MONITOR;
else if (!wcsicmp(L"ADMIN", pLevel))
return SERVERMONITOR_LEVEL_ADMIN;
else if (!wcsicmp(L"SUPERADMIN", pLevel))
return SERVERMONITOR_LEVEL_SUPERADMIN;
else
_ASSERT_EXPR(0, L"CheckMonitor User Level");
return SERVERMONITOR_LEVEL_NONE;
}
int GetSIDType(const WCHAR * pwszType)
{
if (!_wcsicmp(L"Log", pwszType))
return SID_CONNECTION_TYPE_LOG;
else if (!_wcsicmp(L"DBWare", pwszType))
return SID_CONNECTION_TYPE_DB;
_ASSERT(0);
return 0;
}
int GetServerTypeForConvert(const WCHAR * pType)
{
if (!wcsicmp(pType, L"db") || !wcsicmp(pType, L"dbware"))
return MANAGED_TYPE_DB;
else if (!wcsicmp(pType, L"log"))
return MANAGED_TYPE_LOG;
else if (!wcsicmp(pType, L"login"))
return MANAGED_TYPE_LOGIN;
else if (!wcsicmp(pType, L"master"))
return MANAGED_TYPE_MASTER;
else if (!wcsicmp(pType, L"village"))
return MANAGED_TYPE_VILLAGE;
else if (!wcsicmp(pType, L"game"))
return MANAGED_TYPE_GAME;
else if (!wcsicmp(pType, L"cash"))
return MANAGED_TYPE_CASH;
return 0;
}
time_t _wtoTime_t(const WCHAR * pTimeFromSql)
{
return mktime(&_wtotm(pTimeFromSql));
}
void ErrorMessage(const wchar_t* fmt, ...)
{
va_list arg;
va_start(arg, fmt);
wchar_t msg[8192];
_vsntprintf(msg, _countof(msg), fmt, arg);
::AfxMessageBox(msg, MB_ICONERROR);
}
void FormatMessage(UINT type, const wchar_t* fmt, ...)
{
va_list arg;
va_start(arg, fmt);
wchar_t msg[8192];
_vsntprintf(msg, _countof(msg), fmt, arg);
::AfxMessageBox(msg, type);
}