#include "StdAfx.h" #include ".\updatestatus.h" #include CStartManager::CStartManager(void) { m_byWorld = 0; m_byChannel = 0; m_byServerType = 0; m_dwKey = 0; } CStartManager::~CStartManager(void) { } BOOL CStartManager::Init( TCHAR* pszCmdLine ) { if( !pszCmdLine ) return FALSE; if( !m_Parser.ParseCommandLine( pszCmdLine ) ) return FALSE; ZeroMemory( m_szMainParameter, MAX_PATH ); ZeroMemory( m_szSubParameter, MAX_PATH ); //ÆÄ¶ó¹ÌÅÍ´Â 1°³°¡ ÀÖÀ¸¸é, ±× ¹øÈ£´Â 0ÀÌ´Ù.. ÇöÀç´Â 1°³ÀÇ ÆÄ¶ó¹ÌÅ͸¸ üũÇÑ´Ù. //RTTA¿Í ¿¬µ¿µÇ¸é, ÆÄ¶ó¹ÌÅͰ¡ ¿©·¯°³ ÀÌ´Ù... m_Parser.GetParameterInfo( m_szMainParameter, MAX_PATH, 0); if( m_Parser.GetParameterCount() > 1 ) //SubParam ÀÌ ÀÖ´Ù´Â ¶æÀÌ´Ù. { TCHAR szParam[MAX_PATH]; m_Parser.GetParameterInfo( szParam, MAX_PATH, 1); m_byWorld = atoi( szParam ); m_Parser.GetParameterInfo( szParam, MAX_PATH, 2); m_byChannel = atoi( szParam ); m_Parser.GetParameterInfo( szParam, MAX_PATH, 3); m_byServerType = atoi( szParam ); m_Parser.GetParameterInfo( szParam, MAX_PATH, 4); m_dwKey = atoi( szParam ); _snprintf( m_szSubParameter, MAX_PATH, "<%d> <%d> <%d> <%d>", m_byWorld, m_byChannel, m_byServerType, m_dwKey ); } if( strcmp( m_szMainParameter, "LAUNCHER" ) == 0 ) SetLauncherStartType( START_TYPE_LAUNCHER ); else if( strcmp( m_szMainParameter, "APPLICATION" ) == 0 ) SetLauncherStartType( START_TYPE_LAUNCHER ); else if( strcmp( m_szMainParameter, "RTTA" ) == 0 ) SetLauncherStartType( START_TYPE_NORMAL ); else //ÀÌ °æ¿ì´Â »ç¿ëÀÚ°¡ ·±Ã³¸¦ ½ÇÇà½ÃŲ °æ¿ìÀÌ´Ù. SetLauncherStartType( START_TYPE_NORMAL ); return TRUE; } BYTE CStartManager::GetSubParameterCount() { int nTotCnt = m_Parser.GetParameterCount(); if( nTotCnt <= 0 ) return 0; if( nTotCnt > 0 ) { BYTE bySubParamCnt = 0; bySubParamCnt = nTotCnt - 1; return bySubParamCnt; } return 0; } TCHAR* CStartManager::GetSubParameter() { return m_szSubParameter; } BOOL CStartManager::GetServerNameFromServerType( BYTE byServerType, TCHAR* pszServerName, int nSize ) { if( byServerType == AUTH_SERVER ) _tcsncpy( pszServerName, "AuthServer", nSize ); else if( byServerType == AUTH_AGENT_SERVER ) _tcsncpy( pszServerName, "AuthAgentServer", nSize ); else if( byServerType == LOGIN_FRONT_SERVER ) _tcsncpy( pszServerName, "LoginFrontServer", nSize ); else if( byServerType == ACCOUNT_DBPROXY ) _tcsncpy( pszServerName, "AccountDBProxy", nSize ); else if( byServerType == MASTER_SERVER ) _tcsncpy( pszServerName, "MasterServer", nSize ); else if( byServerType == GAME_DBPROXY ) _tcsncpy( pszServerName, "DBProxyServer", nSize ); else if( byServerType == WORLD_SERVER ) _tcsncpy( pszServerName, "WorldServer", nSize ); else if( byServerType == FIELD_SERVER ) _tcsncpy( pszServerName, "FieldServer", nSize ); else if( byServerType == BATTLE_SERVER ) _tcsncpy( pszServerName, "BattleServer", nSize ); else if( byServerType == AGENT_SERVER ) _tcsncpy( pszServerName, "AgentServer", nSize ); else if( byServerType == OP_SERVER ) _tcsncpy( pszServerName, "OpServer", nSize ); else if( byServerType == SOLARAUTH_SERVER ) _tcsncpy( pszServerName, "SolarAuthServer", nSize ); else if( byServerType == SUN_SERVER ) _tcsncpy( pszServerName, "SunServer", nSize ); else return FALSE; return TRUE; } BYTE CStartManager::GetServerTypeFromServerName( IN TCHAR* pszServerName ) { if( strcmp( pszServerName, "AuthServer") == 0 ) return AUTH_SERVER; else if( strcmp( pszServerName, "AuthAgentServer") == 0 ) return AUTH_AGENT_SERVER; else if( strcmp( pszServerName, "LoginFrontServer") == 0 ) return LOGIN_FRONT_SERVER; else if( strcmp( pszServerName, "AccountDBP") == 0 ) return ACCOUNT_DBPROXY; else if( strcmp( pszServerName, "MasterServer") == 0 ) return MASTER_SERVER; else if( strcmp( pszServerName, "DBProxyServer") == 0 ) return GAME_DBPROXY; else if( strcmp( pszServerName, "WorldServer") == 0 ) return WORLD_SERVER; else if( strcmp( pszServerName, "FieldServer") == 0 ) return FIELD_SERVER; else if( strcmp( pszServerName, "BattleServer") == 0 ) return BATTLE_SERVER; else if( strcmp( pszServerName, "AgentServer") == 0 ) return AGENT_SERVER; else if( strcmp( pszServerName, "OpServer") == 0 ) return OP_SERVER; else if( strcmp( pszServerName, "SolarAuthServer") == 0 ) return SOLARAUTH_SERVER; #ifdef __20080402_ADD_SOLARSCUPDATE_ else if( strcmp( pszServerName, "SOLARAUTH\\data.encrypted.China") == 0 ) return SOLARAUTH_SERVER; else if( strcmp( pszServerName, "SOLARAUTH\\data.encrypted.Taiwan") == 0 ) return SOLARAUTH_SERVER; else if( strcmp( pszServerName, "SOLARAUTH\\data.encrypted.Japan") == 0 ) return SOLARAUTH_SERVER; else if( strcmp( pszServerName, "SOLARAUTH\\data.encrypted.Russia") == 0 ) return SOLARAUTH_SERVER; else if( strcmp( pszServerName, "SOLARAUTH\\data.encrypted.Global") == 0 ) return SOLARAUTH_SERVER; #endif else if( strcmp( pszServerName, "SunServer") == 0 ) return SUN_SERVER; else return MAX_SERVER; } //ÇöÀç ÀÌ ¸ðµâÀÌ À§Ä¡Çϰí ÀÖ´Â °÷ÀÇ Àý´ë°æ·Î¸¦ ¸®ÅÏÇÑ´Ù. void CStartManager::GetModuleDirectory( TCHAR* pszDirPath, int nSize ) { ZeroMemory( pszDirPath, nSize ); TCHAR szPath[MAX_PATH]; TCHAR szDrive[MAX_PATH], szDir[MAX_PATH]; GetModuleFileName( NULL, szPath, MAX_PATH); _splitpath( szPath, szDrive, szDir, NULL, NULL ); _snprintf( pszDirPath, nSize, "%s%s", szDrive, szDir); }