178 lines
4.6 KiB
C++
178 lines
4.6 KiB
C++
#include "StdAfx.h"
|
|
#include ".\infomanager.h"
|
|
#include "SunServerInfo.h"
|
|
#include "WorldServerInfo.h"
|
|
#include "GuildServerInfo.h"
|
|
#include "MasterServerInfo.h"
|
|
#include "DBProxyInfo.h"
|
|
|
|
ServerInfoManager* ServerInfoManager::m_pInstance = NULL;
|
|
|
|
ServerInfoManager::ServerInfoManager(void)
|
|
{
|
|
}
|
|
|
|
ServerInfoManager::~ServerInfoManager(void)
|
|
{
|
|
ReleaseInfo();
|
|
}
|
|
|
|
void ServerInfoManager::ReleaseInfo()
|
|
{
|
|
SERVERINFO_ITER iter;
|
|
|
|
for( iter = m_mapServerInfo.begin(); iter != m_mapServerInfo.end(); iter++ )
|
|
{
|
|
ServerInfo* pInfo = iter->second;
|
|
if( pInfo )
|
|
delete pInfo;
|
|
}
|
|
|
|
m_mapServerInfo.clear();
|
|
}
|
|
|
|
void ServerInfoManager::Init()
|
|
{
|
|
ServerInfo* pInfo = NULL;
|
|
//1. SunServer정보 생성.
|
|
pInfo = new SunServerInfo();
|
|
m_mapServerInfo.insert( make_pair( AGENT_SERVER, pInfo ) );
|
|
|
|
pInfo = new SunServerInfo();
|
|
m_mapServerInfo.insert( make_pair( BATTLE_SERVER, pInfo ) );
|
|
|
|
pInfo = new SunServerInfo();
|
|
m_mapServerInfo.insert( make_pair( FIELD_SERVER, pInfo ) );
|
|
|
|
pInfo = new SunServerInfo();
|
|
m_mapServerInfo.insert( make_pair( GAME_DBPROXY, pInfo ) );
|
|
|
|
//2. WorldServer정보 생성.
|
|
pInfo = new WorldServerInfo;
|
|
m_mapServerInfo.insert( make_pair( WORLD_SERVER, pInfo ) );
|
|
|
|
//3. GuildServer정보 생성.
|
|
pInfo = new GuildServerInfo;
|
|
m_mapServerInfo.insert( make_pair( GUILD_SERVER, pInfo ) );
|
|
|
|
//3. MasterServer정보 생성.
|
|
pInfo = new MasterServerInfo;
|
|
m_mapServerInfo.insert( make_pair( MASTER_SERVER, pInfo ) );
|
|
|
|
//4. DBProxyServer
|
|
pInfo = new DBProxyInfo;
|
|
/// m_mapServerInfo.insert( make_pair( GAME_DBPROXY_EX, pInfo ) );
|
|
|
|
}
|
|
|
|
|
|
void ServerInfoManager::LoadScript()
|
|
{
|
|
//전 스크립트를 로딩한다.
|
|
SERVERINFO_ITER iter;
|
|
TCHAR szPath[MAX_PATH], szTemp[MAX_PATH];
|
|
GetCurrentDirectory( MAX_PATH, szPath );
|
|
|
|
//1. SunServer
|
|
strncpy( szTemp, szPath, MAX_PATH );
|
|
strcat( szTemp, "\\AgentServer.ini" );
|
|
iter = m_mapServerInfo.find( AGENT_SERVER );
|
|
if( iter != m_mapServerInfo.end() )
|
|
iter->second->LoadScript( szTemp );
|
|
|
|
strncpy( szTemp, szPath, MAX_PATH );
|
|
strcat( szTemp, "\\BattleServer.ini" );
|
|
iter = m_mapServerInfo.find( BATTLE_SERVER );
|
|
if( iter != m_mapServerInfo.end() )
|
|
iter->second->LoadScript( szTemp );
|
|
|
|
strncpy( szTemp, szPath, MAX_PATH );
|
|
strcat( szTemp, "\\FieldServer.ini" );
|
|
iter = m_mapServerInfo.find( FIELD_SERVER );
|
|
if( iter != m_mapServerInfo.end() )
|
|
iter->second->LoadScript( szTemp );
|
|
|
|
strncpy( szTemp, szPath, MAX_PATH );
|
|
strcat( szTemp, "\\DBProxyServer.ini" );
|
|
iter = m_mapServerInfo.find( GAME_DBPROXY );
|
|
if( iter != m_mapServerInfo.end() )
|
|
iter->second->LoadScript( szTemp );
|
|
|
|
//2. WorldServer
|
|
strncpy( szTemp, szPath, MAX_PATH );
|
|
strcat( szTemp, "\\WorldServer.ini" );
|
|
iter = m_mapServerInfo.find( WORLD_SERVER );
|
|
if( iter != m_mapServerInfo.end() )
|
|
iter->second->LoadScript( szTemp );
|
|
|
|
//3. GuildServer
|
|
strncpy( szTemp, szPath, MAX_PATH );
|
|
strcat( szTemp, "\\GuildServer.ini" );
|
|
iter = m_mapServerInfo.find( GUILD_SERVER );
|
|
if( iter != m_mapServerInfo.end() )
|
|
iter->second->LoadScript( szTemp );
|
|
|
|
//4. MasterServer
|
|
strncpy( szTemp, szPath, MAX_PATH );
|
|
strcat( szTemp, "\\MasterServer.ini" );
|
|
iter = m_mapServerInfo.find( MASTER_SERVER );
|
|
if( iter != m_mapServerInfo.end() )
|
|
iter->second->LoadScript( szTemp );
|
|
|
|
//5. DBProxy
|
|
strncpy( szTemp, szPath, MAX_PATH );
|
|
strcat( szTemp, "\\DBPServer.ini" );
|
|
//iter = m_mapServerInfo.find( GAME_DBPROXY_EX );
|
|
//if( iter != m_mapServerInfo.end() )
|
|
// iter->second->LoadScript( szTemp );
|
|
|
|
}
|
|
|
|
|
|
void ServerInfoManager::SaveScript( BYTE byServerType )
|
|
{
|
|
//전 스크립트를 저장한다.
|
|
TCHAR szPath[MAX_PATH];
|
|
GetCurrentDirectory( MAX_PATH, szPath );
|
|
TCHAR szTemp[MAX_PATH];
|
|
SERVERINFO_ITER iter;
|
|
|
|
strncpy( szTemp, szPath, MAX_PATH );
|
|
|
|
//1. SunServer
|
|
if( byServerType == AGENT_SERVER )
|
|
strcat( szTemp, "\\AgentServer.ini" );
|
|
else if( byServerType == BATTLE_SERVER )
|
|
strcat( szTemp, "\\BattleServer.ini" );
|
|
else if( byServerType == BATTLE_SERVER )
|
|
strcat( szTemp, "\\FieldServer.ini" );
|
|
else if( byServerType == GAME_DBPROXY )
|
|
strcat( szTemp, "\\DBProxyServer.ini" );
|
|
else if( byServerType == WORLD_SERVER )
|
|
strcat( szTemp, "\\WorldServer.ini" );
|
|
else if( byServerType == GUILD_SERVER )
|
|
strcat( szTemp, "\\GuildServer.ini" );
|
|
else if( byServerType == MASTER_SERVER )
|
|
strcat( szTemp, "\\MasterServer.ini" );
|
|
//else if( byServerType == GAME_DBPROXY_EX )
|
|
// strcat( szTemp, "\\DBPServer.ini" );
|
|
|
|
iter = m_mapServerInfo.find( byServerType );
|
|
if( iter != m_mapServerInfo.end() )
|
|
iter->second->SaveScript( szTemp );
|
|
}
|
|
|
|
ServerInfo* ServerInfoManager::GetServerInfo( BYTE byServerType )
|
|
{
|
|
SERVERINFO_ITER iter;
|
|
iter = m_mapServerInfo.find( byServerType );
|
|
if( iter == m_mapServerInfo.end() )
|
|
return NULL;
|
|
|
|
return iter->second;
|
|
}
|
|
|
|
|
|
|
|
|