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>
99 lines
2.4 KiB
C++
99 lines
2.4 KiB
C++
#include "stdafx.h"
|
|
#include "CharacterDataMgr.h"
|
|
#include "SessionDataMgr.h"
|
|
|
|
#include <Log/ServerLog.h>
|
|
|
|
namespace DBAgent
|
|
{
|
|
namespace DataStorage
|
|
{
|
|
|
|
CCharacterDataMgr& CCharacterDataMgr::GetInstance()
|
|
{
|
|
static CCharacterDataMgr characterDataMgr;
|
|
return characterDataMgr;
|
|
}
|
|
|
|
CCharacterDataMgr::CCharacterDataMgr()
|
|
{
|
|
SetManagerName("ij¸¯ÅÍ");
|
|
}
|
|
|
|
|
|
CCharacterDataMgr::~CCharacterDataMgr()
|
|
{
|
|
|
|
}
|
|
|
|
DBDataError CCharacterDataMgr::LoadData(CSessionData& SessionData, unsigned long dwKey,
|
|
CCharacterData*& lpLoadData_Out)
|
|
{
|
|
DBDataError eDataError = CCharaterDataMgrBase::LoadData(SessionData, dwKey, lpLoadData_Out);
|
|
|
|
if(DATA_SUCCEEDED == eDataError)
|
|
{
|
|
CSessionDataMgr::GetInstance().AddCharLoadedSession(dwKey, SessionData);
|
|
}
|
|
|
|
return eDataError;
|
|
}
|
|
|
|
DBDataError CCharacterDataMgr::UnloadData(const CSessionData& SessionData, CCharacterData* lpUnloadData)
|
|
{
|
|
DBDataError eDataError = CCharaterDataMgrBase::UnloadData(SessionData, lpUnloadData);
|
|
|
|
if(DATA_SUCCEEDED == eDataError)
|
|
{
|
|
CSessionDataMgr::GetInstance().RemoveCharLoadedSession(SessionData.GetCID());
|
|
}
|
|
|
|
return eDataError;
|
|
}
|
|
|
|
void CCharacterDataMgr::Log(LOG_TYPE eLogType, const char* pRtn, const char* pFileName, int nLine,
|
|
const CSessionData* lpSessionData, const unsigned long& dwKey, const char* szErrorMsg)
|
|
{
|
|
switch(eLogType)
|
|
{
|
|
case LOG_NORMAL:
|
|
case LOG_RULE:
|
|
case LOG_INFO:
|
|
|
|
if(0 != lpSessionData)
|
|
{
|
|
g_Log.SimpleLog(eLogType, "UID:%10u / CID:%10u / Key:%10u / %s %s",
|
|
lpSessionData->GetUID(), lpSessionData->GetCID(), dwKey, GetManagerName(), szErrorMsg);
|
|
}
|
|
else
|
|
{
|
|
g_Log.SimpleLog(eLogType, "Key:%10u / %s %s",
|
|
dwKey, GetManagerName(), szErrorMsg);
|
|
}
|
|
break;
|
|
|
|
case LOG_DETAIL:
|
|
case LOG_SYSERR:
|
|
case LOG_ERROR:
|
|
case LOG_DEBUG:
|
|
case LOG_WARN:
|
|
|
|
if(0 != lpSessionData)
|
|
{
|
|
g_Log.DetailLog(eLogType, pRtn, pFileName, nLine,
|
|
"UID:%10u / CID:%10u / Key:%10u / %s %s",
|
|
lpSessionData->GetUID(), lpSessionData->GetCID(), dwKey, GetManagerName(), szErrorMsg);
|
|
}
|
|
else
|
|
{
|
|
g_Log.DetailLog(eLogType, pRtn, pFileName, nLine, "Key:%10u / %s %s",
|
|
dwKey, GetManagerName(), szErrorMsg);
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
} |