#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; }