void LoadResAuth( LPCTSTR lpszFileName ) { CScanner s; if( s.Load( lpszFileName ) ) { s.GetToken(); lstrcpy( g_dpSrvr.m_szResVer, s.Token ); } }
int COperatorToken::consume(char aChar, CScanner& aScanner) { int result=0; mTextValue=aChar; while((validOperator(mTextValue)) && (kNoError==result)){ result=aScanner.getChar(aChar); mTextValue+=aChar; } if(kNoError==result) { mTextValue.Truncate(mTextValue.Length()-1); aScanner.push(aChar); } return result; };
void _auto_login( ) { CScanner s; if( TRUE == s.Load( "autologin.ini" ) ) { while( s.tok != FINISHED ) { s.GetToken(); if( "Account" == s.Token ) { s.GetToken(); g_Console._strAccount = s.Token; } else if( "Password" == s.Token ) { s.GetToken(); g_Console._StrPassword = s.Token; } else if( "n2ndPassword" == s.Token ) { g_Console._nPasswordReal = s.GetNumber(); } else if( "nServer" == s.Token ) { g_Console._nServer = s.GetNumber(); } else if( "nCharacter" == s.Token ) { g_Console._nCharacter = s.GetNumber(); } } } }
int CCommentToken::consume(char aChar, CScanner& aScanner) { int result=0; if('/'==mTextValue[1]) { result=aScanner.readUntil(mTextValue,gNewlines,false); } else { bool done=false; nsCAutoString temp("/"); while(!done){ result = aScanner.readUntil(mTextValue,temp,true); if (kNoError!=result) break; char theChar=mTextValue[mTextValue.Length()-2]; done=('*'==theChar); } } return result; };
BOOL Script( LPCSTR lpszFileName ) { CScanner s; if( s.Load( lpszFileName ) ) { s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == "Core" ) { s.GetToken(); strcpy( g_szCoreAddr, s.Token ); } else if( s.Token == "Port" ) { g_uPort = s.GetNumber(); } s.GetToken(); } return TRUE; } Error( "Can't open file, %s.\n", lpszFileName ); return FALSE; };
void CGlobalGiftbox::OnUpload( CAr & ar ) { if( m_bLoad ) return; // recv int nSize; ar >> nSize; for( int i = 0; i < nSize; i++ ) { DWORD dwGiftbox, dwItem; int cbItem, nNum; ar >> dwGiftbox; ar >> cbItem; for( int j = 0; j < cbItem; j++ ) { ar >> dwItem >> nNum; DWORD dwKey = MAKELONG( (WORD)dwGiftbox, (WORD)dwItem ); bool bResult = m_map.insert( map<DWORD, int>::value_type( dwKey, nNum ) ).second; if( !bResult ) Error( "global giftbox error: %d, %d, %d", dwGiftbox, dwItem, nNum ); } } // load script CScanner s; DWORD dwGiftbox, dwItem; int nNum; if( s.Load( "../globalgiftbox.txt" ) ) { dwGiftbox = (DWORD)s.GetNumber(); while( s.tok != FINISHED ) { dwItem = (DWORD)s.GetNumber(); nNum = s.GetNumber(); map<DWORD, int>::iterator it = m_map.find( MAKELONG( (WORD)dwGiftbox, (WORD)dwItem ) ); if( it == m_map.end() ) { char szString[100]; sprintf( szString, "globalgiftbox load error: key not found, g: %d, i: %d", dwGiftbox, dwItem ); AfxMessageBox( szString ); } // it->second -= nNum; it->second = nNum; if( it->second < 0 ) { Error( "global giftbox error: number is negative, %d, %d", dwGiftbox, dwItem ); it->second = 0; } dwGiftbox = (DWORD)s.GetNumber(); } } m_bLoad = TRUE; }
void CSourceFilesProcessor::processFile( const std::string& fileName ) { file.open( fileName ); scanner.SetFileName( fileName ); if( file.good() ) { for( char c; file.get( c ); ) { scanner.AddChar( c ); } if( scanner.ErrorSeverity() != ES_FatalError ) { scanner.AddEndOfFile(); } } else { scanner.RaiseError( ES_FatalError, "no such file" ); } scanner.ResetFileName(); file.close(); }
int CQuotedStringToken::consume(char aChar, CScanner& aScanner) { mTextValue=aChar; int result=aScanner.readUntil(mTextValue,aChar,true); return result; };
BOOL Script( LPCTSTR lpszFileName ) { #ifdef __INTERNALSERVER strcpy( g_DbManager.m_szLoginPWD, "#^#^account" ); strcpy( g_DbManager.m_szLogPWD, "#^#^log" ); #endif /* AddTail( -1, 1, "TEST", "192.168.0.103" ); AddTail( 1, 1, "1", "" ); */ CScanner s; BOOL bSkipTracking = FALSE; if( s.Load( lpszFileName ) ) { s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == ";" ) { s.GetToken(); continue; } else if( s.Token == "TEST" ) { HMENU hMenu = GetMenu( hMainWnd ); CheckMenuItem( hMenu, IDM_OPT_EXTERNAL, MF_CHECKED ); EnableMenuItem( hMenu, IDM_OPT_EXTERNAL, MF_DISABLED | MF_GRAYED ); CheckMenuItem( hMenu, IDM_OPT_INTERNAL, MF_UNCHECKED ); EnableMenuItem( hMenu, IDM_OPT_INTERNAL, MF_ENABLED ); g_dpSrvr.m_bCheckAddr = false; char lpString[MAX_LOADSTRING]; #ifdef _DEBUG sprintf( lpString, "%s - debug", szTitle ); #else // _DEBUG sprintf( lpString, "%s - release", szTitle ); #endif // _DEBUG SetWindowText( hMainWnd, lpString ); } else if( s.Token == "AddTail" ) { LPSERVER_DESC pServer = g_dpSrvr.m_aServerset + g_dpSrvr.m_dwSizeofServerset++; s.GetToken(); // ( pServer->dwParent = s.GetNumber(); s.GetToken(); // , pServer->dwID = s.GetNumber(); s.GetToken(); // , s.GetToken(); strcpy( pServer->lpName, s.Token ); s.GetToken(); // , s.GetToken(); strcpy( pServer->lpAddr, s.Token ); s.GetToken(); // , pServer->b18 = (BOOL)s.GetNumber(); s.GetToken(); // , pServer->lEnable = (long)s.GetNumber(); #ifdef __SERVERLIST0911 pServer->lEnable = 0L; #endif // __SERVERLIST0911 s.GetToken(); // , pServer->lMax = (long)s.GetNumber(); s.GetToken(); // ) // if( pServer->dwParent != NULL_ID ) { u_long uId = pServer->dwParent * 100 + pServer->dwID; g_dpSrvr.m_2ServersetPtr.insert( map<u_long, LPSERVER_DESC>::value_type( uId, pServer ) ); } } else if( s.Token == "MAX" ) { g_dpSrvr.m_nMaxConn = s.GetNumber(); } else if( s.Token == "BillingIP" ) { s.GetToken(); GetBillingMgr()->SetConfig( BID_IP, (DWORD)(LPCTSTR)s.Token ); } else if( s.Token == "BillingPort" ) { GetBillingMgr()->SetConfig( BID_PORT, s.GetNumber() ); } else if( s.Token == "BillingFreePass" ) { GetBillingMgr()->SetConfig( BID_FREEPASS, s.GetNumber() ); } else if( s.Token == "BillingPWD" ) { // 디비패스워드는 암호화 되어 있다. 암호 시키는 프로그램은 외부실행파일이다. s.GetToken(); char* szPWD = GetBillingPWD(); ::GetPWDFromToken( s.Token, szPWD ); // from query.cpp } else if( s.Token == "MSG_VER" ) { s.GetToken(); lstrcpy( g_dpSrvr.m_szVer, s.Token ); } else if( s.Token == "SKIP_TRACKING" ) // login logout로그를 남기지 않는다. { bSkipTracking = TRUE; g_DbManager.SetTracking( FALSE ); } else if( s.Token == "DSN_NAME_LOGIN" ) { s.GetToken(); strcpy( DSN_NAME_LOGIN, s.Token ); if( bSkipTracking == FALSE ) g_DbManager.SetTracking( TRUE ); } else if( s.Token == "DB_ADMIN_ID_LOGIN" ) { s.GetToken(); strcpy( DB_ADMIN_ID_LOGIN, s.Token ); } else if( s.Token == "DSN_NAME_LOG" ) { s.GetToken(); strcpy( DSN_NAME_LOG, s.Token ); } else if( s.Token == "DB_ADMIN_ID_LOG" ) { s.GetToken(); strcpy( DB_ADMIN_ID_LOG, s.Token ); } else if( s.Token == "DSN_NAME_BILLING" ) { s.GetToken(); strcpy( DSN_NAME_BILLING, s.Token ); } else if( s.Token == "DB_ADMIN_ID_BILLING" ) { s.GetToken(); strcpy( DB_ADMIN_ID_BILLING, s.Token ); } else if( s.Token == "NOT_RELOADPRO" ) { g_dpSrvr.m_bReloadPro = FALSE; } else if( s.Token == "NOLOG" ) { g_DbManager.SetLogging( FALSE ); // 상용화 아이템 로그를 남기지 않는다. } else if( s.Token == "DB_PWD_LOGIN" ) { s.GetToken(); ::GetPWDFromToken( s.Token, g_DbManager.m_szLoginPWD ); TRACE("%s\n", g_DbManager.m_szLoginPWD ); } else if( s.Token == "DB_PWD_LOG" ) { s.GetToken(); ::GetPWDFromToken( s.Token, g_DbManager.m_szLogPWD ); TRACE("%s\n", g_DbManager.m_szLogPWD ); } #ifdef __LOG_PLAYERCOUNT_CHANNEL else if( s.Token == "AddChannel" ) { s.GetToken(); g_dpDbSrvr.m_vecstrChannelAccount.push_back( s.Token ); } #endif // __LOG_PLAYERCOUNT_CHANNEL s.GetToken(); } return TRUE; } Error( "Can't open file %s\n", lpszFileName ); return FALSE; }
void CDialogMsg::AddMessage( CObj* pObj, LPCTSTR lpszMessage, DWORD RGB, int nKind, DWORD dwPStyle ) { if( pObj->GetType() == OT_MOVER ) { CScanner scanner; scanner.SetProg( (LPVOID)lpszMessage ); scanner.GetToken(); // 이모티콘 명령 /* if( scanner.Token == "/" ) { scanner.GetToken(); CString strstr = scanner.token; for( int j=0; j < MAX_EMOTICON_NUM; j++ ) { CString strstr2 = m_EmiticonCmd[ j ].m_szCommand; if( strstr == strstr2 ) { AddEmoticonUser( pObj, m_EmiticonCmd[ j ].m_dwIndex ); return; } } } */ if( scanner.Token == "/" ) { CString strstr = lpszMessage; scanner.GetToken(); for( int j=0; j < MAX_EMOTICON_NUM; j++ ) { CString strstr2 = "/"; strstr2+=m_EmiticonCmd[ j ].m_szCommand; if( strstr.GetLength() > 0 && strstr == strstr2 ) { AddEmoticonUser( pObj, m_EmiticonCmd[ j ].m_dwIndex ); return; } } } else if( scanner.Token == "!" ) { int nEmoticonIdx = scanner.GetNumber(); AddEmoticon( pObj, nEmoticonIdx ); return; } for( int i = 0; i < m_textArray.GetSize(); i++ ) { LPCUSTOMTEXT lpCustomText = (LPCUSTOMTEXT) m_textArray.GetAt( i ); if( lpCustomText->m_pObj == pObj ) { safe_delete( lpCustomText ); m_textArray.RemoveAt( i ); break; } } } LPCUSTOMTEXT lpCustomText = new CUSTOMTEXT; lpCustomText->m_dwRGB = RGB; lpCustomText->m_pFont = CWndBase::m_Theme.m_pFontText; //ect ? m_pFontEffect : m_pFont; lpCustomText->m_pObj = pObj; lpCustomText->m_timer.Set( 5000 ); lpCustomText->m_bInfinite = FALSE;//( pObj->GetType() == OT_MOVER && ( (CMover*)pObj )->m_vtInfo.IsVendorOpen() ); lpCustomText->m_pTexture = NULL; lpCustomText->m_nKind = nKind; // Mover라면 대사 출력 시간 동안 퀘스트 이모티콘을 감춘다. if( pObj->GetType() == OT_MOVER ) ((CMover*)pObj)->m_bShowQuestEmoticon = FALSE; if( lpCustomText->m_bInfinite ) { DWORD dwColor = 0; dwColor = 0xff008000; lpCustomText->m_string.SetParsingString( lpszMessage, dwColor, 0x00000000, 0, dwPStyle ); } else lpCustomText->m_string.SetParsingString( lpszMessage, 0xff000000, 0x00000000, 0, dwPStyle ); int nMaxHeight = lpCustomText->m_pFont->GetMaxHeight(); CSize size = lpCustomText->m_pFont->GetTextExtent( lpszMessage ); int cx, cy; // 기본 사이즈 계산 if( size.cx >= 160 ) { cx = 160; cy = 160; // 이 수치는 의미가 없음. Reset 이후에 줄수로 재 계산 됨 lpCustomText->m_string.Init( lpCustomText->m_pFont, &CRect( 0, 0, cx - 16, cy - 16) ); } else { cx = size.cx + 16; cx = ( ( cx / 16 ) * 16 ) + ( ( cx % 16 ) ? 16 : 0 ); cy = size.cy;// 이 수치는 의미가 없음. Reset 이후에 줄수로 재 계산 됨 lpCustomText->m_string.Init( lpCustomText->m_pFont, &CRect( 0, 0, cx - 16, cy - 16) ); } cy = lpCustomText->m_string.GetLineCount() * nMaxHeight + 16; // 라인 줄수로 세로 길이를 구함 cy = ( ( cy / 16 ) * 16 ) + ( ( cy % 16 ) ? 16 : 0 ); lpCustomText->m_rect = CRect( 0, 0, cx, cy ); m_textArray.Add( lpCustomText ); }
BOOL CLangMan::Load( LPCTSTR lpszFileName ) { CScanner s; if( !s.Load( lpszFileName, TRUE ) ) return FALSE; DWORD dwLang = s.GetNumber(); // dwLang DWORD a, r, g, b; while( s.tok != FINISHED ) { ASSERT( dwLang < LANG_MAX ); PLANG_DATA pData = &m_aLangData[dwLang]; s.GetToken(); s.GetToken(); // szPath lstrcpy( pData->szPath, s.token ); s.GetToken(); s.GetToken(); // szFileName lstrcpy( pData->szFileName, s.token ); s.GetToken(); // szTitle lstrcpy( pData->szTitle, s.token ); s.GetToken(); s.GetToken(); // szFontFirst lstrcpy( pData->font.lfCaption.szFontFirst, s.token ); s.GetToken(); s.GetToken(); s.GetToken(); // szFontSecond lstrcpy( pData->font.lfCaption.szFontSecond, s.token ); s.GetToken(); pData->font.lfCaption.nDivTitle = s.GetNumber(); // nDivTitle pData->font.lfCaption.nDivCaption = s.GetNumber(); // nDivCaption pData->font.fdLang.charset = s.GetNumber(); // charset pData->font.fdLang.wCodePage = s.GetNumber(); // wCodePage s.GetToken(); s.GetToken(); lstrcpy( pData->font.fdLang.faceNT, s.token ); // faceNT s.GetToken(); s.GetToken(); s.GetToken(); lstrcpy( pData->font.fdLang.face9x, s.token ); // face9x s.GetToken(); s.GetToken(); s.GetToken(); // szFont0 lstrcpy( pData->font.afi[0].szFont, s.token ); s.GetToken(); s.GetToken(); s.GetToken(); // szFont1 lstrcpy( pData->font.afi[1].szFont, s.token ); s.GetToken(); s.GetToken(); s.GetToken(); // szFont2 lstrcpy( pData->font.afi[2].szFont, s.token ); s.GetToken(); s.GetToken(); s.GetToken(); // szFont3 lstrcpy( pData->font.afi[3].szFont, s.token ); s.GetToken(); a = s.GetNumber(); // dwBgColor3_a r = s.GetNumber(); // dwBgColor3_r g = s.GetNumber(); // dwBgColor3_g b = s.GetNumber(); // dwBgColor3_b pData->font.afi[3].dwBgColor = D3DCOLOR_ARGB( a, r, g, b ); pData->font.afi[3].nOutLine = s.GetNumber(); // nOutLine3 pData->font.afi[3].dwFlags = s.GetNumber(); // dwFlags3 s.GetToken(); s.GetToken(); // szFont4 lstrcpy( pData->font.afi[4].szFont, s.token ); s.GetToken(); a = s.GetNumber(); // dwBgColor4_a r = s.GetNumber(); // dwBgColor4_r g = s.GetNumber(); // dwBgColor4_g b = s.GetNumber(); // dwBgColor4_b pData->font.afi[4].dwBgColor = D3DCOLOR_ARGB( a, r, g, b ); pData->font.afi[4].nOutLine = s.GetNumber(); // nOutLine4 pData->font.afi[4].dwFlags = s.GetNumber(); // dwFlags4 s.GetToken(); s.GetToken(); // szFont5 lstrcpy( pData->font.afi[5].szFont, s.token ); s.GetToken(); a = s.GetNumber(); // dwBgColor5_a r = s.GetNumber(); // dwBgColor5_r g = s.GetNumber(); // dwBgColor5_g b = s.GetNumber(); // dwBgColor5_b pData->font.afi[5].dwBgColor = D3DCOLOR_ARGB( a, r, g, b ); pData->font.afi[5].nOutLine = s.GetNumber(); // nOutLine5 pData->font.afi[5].dwFlags = s.GetNumber(); // dwFlags5 //#ifdef __NO_SUB_LANG s.GetNumber(); // dwFontSize //#endif // __NO_SUB_LANG dwLang = s.GetNumber(); // dwLang } return TRUE; }
BOOL CBetaPatchClientDlg::InitControls() { #ifdef __LANG_RUS enum PublisherVersion { PUBLISHER_VERSION_1 = 0, PUBLISHER_VERSION_2 = 1 }; PublisherVersion ePublisherVersion = PUBLISHER_VERSION_1; CScanner scanner; if( scanner.Load( "a.txt" ) == TRUE ) { int nKeyNumber = scanner.GetNumber(); if( nKeyNumber == 1 ) ePublisherVersion = PUBLISHER_VERSION_2; else ePublisherVersion = PUBLISHER_VERSION_1; } else ePublisherVersion = PUBLISHER_VERSION_1; #endif // __LANG_RUS #ifdef __LANG_RUS DWORD dwBitmapID = ( ePublisherVersion == PUBLISHER_VERSION_1 ) ? IDC_BITMAP_MAIN : IDC_BITMAP_MAIN_2; if( m_pic.Load( dwBitmapID ) ) #else // __LANG_RUS if( m_pic.Load( IDC_BITMAP_MAIN ) ) #endif // __LANG_RUS { CSize size = m_pic.GetImageSize(); SetWindowPos( NULL, 0, 0, size.cx, size.cy, SWP_NOZORDER | SWP_NOMOVE ); HRGN hRgn = CreateRoundRectRgn( 0, 0, size.cx, size.cy, 20, 20 ); if( hRgn ) ::SetWindowRgn( m_hWnd, hRgn, FALSE ); } int nInfoGap = 0; int nWeblinkGap = 0; #if defined(__LANG_JAP) #if 0 //JAPAN 패치 클라이언트 이미지 변경관련 삭제. nInfoGap = 5; nWeblinkGap = 35; srand( (unsigned)time( NULL ) ); int nsel = rand()%4; UINT nchrarry[4] = { IDB_BITMAP_CHAR1, IDB_BITMAP_CHAR3, IDB_BITMAP_CHAR5, IDB_BITMAP_CHAR7 }; UINT nchrarryM[4] = { IDB_BITMAP_CHAR2, IDB_BITMAP_CHAR4, IDB_BITMAP_CHAR6, IDB_BITMAP_CHAR8 }; m_bmpchr[0].LoadBitmap( nchrarry[nsel] ); m_bmpchr[1].LoadBitmap( nchrarryM[nsel] ); #endif #endif // __LANG_JAP m_Button_Exit.SetBitmaps(IDB_BITMAP_CLOSE00, RGB(255, 0, 255), IDB_BITMAP_CLOSE01, RGB(255, 0, 255) ); m_Button_Exit.SetAlign(CButtonST::ST_ALIGN_OVERLAP, FALSE); m_Button_Exit.SetPressedStyle(CButtonST::BTNST_PRESSED_LEFTRIGHT, FALSE); m_Button_Exit.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 0, 0)); m_Button_Exit.SetColor(CButtonST::BTNST_COLOR_FG_OUT, RGB(0, 0, 0)); m_Button_Exit.SizeToContent(); m_Button_Exit.DrawTransparent(TRUE); m_Button_Exit.DrawBorder(FALSE, FALSE); m_Button_Exit.SetBtnCursor(IDC_CURSOR1); m_Button_Option.SetBitmaps(IDB_BITMAP_OPTION00, RGB(255, 0, 255), IDB_BITMAP_OPTION01, RGB(255, 0, 255) ); m_Button_Option.SetAlign(CButtonST::ST_ALIGN_OVERLAP, FALSE); m_Button_Option.SetPressedStyle(CButtonST::BTNST_PRESSED_LEFTRIGHT, FALSE); m_Button_Option.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 0, 0)); m_Button_Option.SetColor(CButtonST::BTNST_COLOR_FG_OUT, RGB(0, 0, 0)); m_Button_Option.SizeToContent(); m_Button_Option.DrawTransparent(TRUE); m_Button_Option.DrawBorder(FALSE, FALSE); m_Button_Option.SetBtnCursor(IDC_CURSOR1); m_Button_Start.SetBitmaps(IDB_BITMAP_START00, RGB(255, 0, 255), IDB_BITMAP_START01, RGB(255, 0, 255) ); m_Button_Start.SetAlign(CButtonST::ST_ALIGN_OVERLAP, FALSE); m_Button_Start.SetPressedStyle(CButtonST::BTNST_PRESSED_LEFTRIGHT, FALSE); m_Button_Start.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 0, 0)); m_Button_Start.SetColor(CButtonST::BTNST_COLOR_FG_OUT, RGB(0, 0, 0)); m_Button_Start.SizeToContent(); m_Button_Start.DrawTransparent(TRUE); m_Button_Start.DrawBorder(FALSE, FALSE); m_Button_Start.SetBtnCursor(IDC_CURSOR1); m_Button_Register.SetBitmaps(IDB_BITMAP_REGISTER00, RGB(255, 0, 255), IDB_BITMAP_REGISTER01, RGB(255, 0, 255) ); m_Button_Register.SetAlign(CButtonST::ST_ALIGN_OVERLAP, FALSE); m_Button_Register.SetPressedStyle(CButtonST::BTNST_PRESSED_LEFTRIGHT, FALSE); m_Button_Register.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 0, 0)); m_Button_Register.SetColor(CButtonST::BTNST_COLOR_FG_OUT, RGB(0, 0, 0)); m_Button_Register.SizeToContent(); m_Button_Register.DrawTransparent(TRUE); m_Button_Register.DrawBorder(FALSE, FALSE); m_Button_Register.SetBtnCursor(IDC_CURSOR1); #if defined(__LANG_ENG_USA) || defined(__LANG_ENG_USATEST) || defined(__LANG_GER) || defined(__LANG_FRA) || defined(__LANG_POR) m_Button_Register.ShowWindow(SW_SHOW); #else m_Button_Register.ShowWindow(SW_HIDE); #endif // static //#if defined(__LANG_THAI) //Background Image 교체로 Font Color 변경 COLORREF cr = RGB( 0,0,0 ); m_Static_CurrentState.SetTextColor( cr ); m_Static_CurrentState.SetFontBold(true); m_Static_DownSpeed.SetTextColor( cr ); m_Static_FileNumber.SetTextColor( cr ); m_Static_MasqueradeVersion.SetTextColor( cr ); m_Static_MasqueradeVersion.SetFontBold(true); //#endif /*#if (__CURRENT_LANG == LANG_ENG || __CURRENT_LANG == LANG_GER || __CURRENT_LANG == LANG_FRA )//|| __CURRENT_CNTRY == CNTRY_TWN) #if __VER == 12 COLORREF cr = RGB( 255, 255, 255 ); m_Static_CurrentState.SetTextColor( cr ); m_Static_DownSpeed.SetTextColor( cr ); m_Static_FileNumber.SetTextColor( cr ); m_Static_MasqueradeVersion.SetTextColor( cr ); #endif #endif*/ #ifdef __HANGAME0307 // 한게임 대응 버젼 TCHAR* szText = HOME_LINK; TCHAR* szURL = HOME_LINK; TCHAR* szWebURL = WEB_FIRST_PAGE; if( AfxGetApp()->m_lpCmdLine[0] != '\0' && memcmp( AfxGetApp()->m_lpCmdLine, "hangame.co.jp", 13 ) == 0 ) { szText = "http://www.hangame.co.jp"; szURL = "http://www.hangame.co.jp/game.asp?fo"; szWebURL = "http://www.flyff.jp/in_client/info/list.asp?domain=hangame.co.jp"; } #else // 일반버젼 #ifdef __LANG_RUS TCHAR* szText = ( ePublisherVersion == PUBLISHER_VERSION_1 ) ? HOME_LINK : HOME_LINK_2; TCHAR* szURL = ( ePublisherVersion == PUBLISHER_VERSION_1 ) ? HOME_LINK : HOME_LINK_2; TCHAR* szWebURL = ( ePublisherVersion == PUBLISHER_VERSION_1 ) ? WEB_FIRST_PAGE : WEB_FIRST_PAGE_2; #else // __LANG_RUS TCHAR* szText = HOME_LINK; TCHAR* szURL = HOME_LINK; TCHAR* szWebURL = WEB_FIRST_PAGE; #endif // __LANG_RUS #endif // __HANGAME0307 #if __CURRENT_LANG == LANG_KOR #ifdef __LINK_PORTAL // 한국 : 엔젤, 버디 포탈 링크 연결 TCHAR szArg1[64] = {0, }; TCHAR szArg2[64] = {0, }; _stscanf( AfxGetApp()->m_lpCmdLine, "%s %s", szArg1, szArg2 ); // AfxMessageBox( AfxGetApp()->m_lpCmdLine ); CString strCmdLine; strCmdLine.Format("%s", szArg2); int nLength = strCmdLine.GetLength(); if(nLength > 4) { CString strCmpWord = strCmdLine.Mid(nLength-4, nLength); if(strCmpWord == "__an") { szText = "http://af.gameangel.com"; szURL = "http://af.gameangel.com"; } else if(strCmpWord == "__bu") { szText = "http://flyff.buddybuddy.co.kr"; szURL = "http://flyff.buddybuddy.co.kr"; } } #endif //__LINK_PORTAL #endif // LANG_KOR // 홈페이지 링크 m_Static_HomeLink.SetWindowText( szText ); /*#if __CURRENT_CNTRY == CNTRY_HK m_Static_HomeLink.SetWindowPos( NULL, 300, 22+nWeblinkGap, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOREDRAW ); #else*/ m_Static_HomeLink.SetWindowPos( NULL, 280, 242+nWeblinkGap, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOREDRAW ); //#endif #if __CURRENT_LANG == LANG_THA m_Static_HomeLink.SetColours( RGB( 190, 30, 20 ), RGB( 240, 130, 180), RGB( 112, 147, 219 ) ); #elif __CURRENT_LANG == LANG_RUS m_Static_HomeLink.SetColours( RGB( 255, 255, 255 ), RGB( 255, 0, 0 ), RGB( 0, 130, 0 ) ); #elif __CURRENT_LANG == LANG_GER m_Static_HomeLink.SetColours( RGB( 193, 177, 160 ), RGB( 255, 0, 0 ), RGB( 255, 0, 0 ) ); #elif __CURRENT_LANG == LANG_ENG // ascension m_Static_HomeLink.SetColours( RGB( 255, 255, 255 ), RGB( 0, 0, 255 ), RGB( 0, 0, 255 ) ); #elif __CURRENT_LANG == LANG_FRA m_Static_HomeLink.SetColours( RGB( 193, 177, 160 ), RGB( 255, 0, 0 ), RGB( 255, 0, 0 ) ); #elif __CURRENT_LANG == LANG_POR m_Static_HomeLink.SetColours( RGB( 255, 255, 255 ), RGB( 255, 0, 0 ), RGB( 255, 0, 0 ) ); #else m_Static_HomeLink.SetColours( RGB( 0, 0, 0), RGB( 255, 0, 0), RGB( 0, 130, 0 ) ); #endif m_Static_HomeLink.SetURL( szURL ); m_Static_HomeLink.SetUnderline( CHyperLink::ulAlways ); #ifdef __LANG_JAP //JAPAN 패치 클라이언트 이미지 변경관련 삭제. m_Static_HomeLink.EnableWindow(FALSE); m_Static_HomeLink.ShowWindow(FALSE); #endif //__LANG_JAP // Progress 초기화 m_File_Progress.SetPos(0); m_Total_Progress.SetPos(0); CreateWebControl( szWebURL ); GetDlgItem( IDC_BUTTON_START )->MoveWindow( 25, 465, 100, 20 ); GetDlgItem( IDC_BUTTON_REGISTER )->MoveWindow( 145, 465, 100, 20 ); GetDlgItem( IDC_OPTION )->MoveWindow( 250, 465, 100, 20 ); GetDlgItem( IDC_EXIT )->MoveWindow( 355, 465, 100, 20 ); GetDlgItem( IDC_CURRENT_STATE)->MoveWindow( 25, 495, 170, 20 ); GetDlgItem( IDC_DOWN_SPEED)->MoveWindow( 200, 495, 100, 20 ); GetDlgItem( IDC_FILE_NUMBER)->MoveWindow( 350, 495, 100, 20 ); GetDlgItem( IDC_FILEPROGRESS )->MoveWindow( 25, 515, 430, 20 ); GetDlgItem( IDC_TOTALPROGRESS)->MoveWindow( 25, 540, 430, 20 ); GetDlgItem( IDC_MASQUERADEVERSION)->MoveWindow( 200, 570-nInfoGap, 200, 20 ); return TRUE; }
int CWhitespaceToken::consume(char aChar, CScanner& aScanner) { mTextValue=aChar; int result=aScanner.readWhile(mTextValue,gWhitespace,false); return result; };
BOOL CProcessLauncher::Init() { bool bStartWait, bHeartbeat; bStartWait = bHeartbeat = false; CScanner s; if( s.Load( "launcher.ini" ) == FALSE) return FALSE; s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == "lpAddr" ) { s.GetToken(); // = s.GetToken(); strcpy( m_lpAddr, s.Token ); } else if( s.Token == "lpApplicationName" ) { s.GetToken(); // = s.GetToken(); strcpy( m_lpApplicationName, s.Token ); SetConsoleTitle( m_lpApplicationName ); } else if( s.Token == "lpCurrentDirectory" ) { s.GetToken(); // = s.GetToken(); strcpy( m_lpCurrentDirectory, s.Token ); } else if( s.Token == "dwId" ) { s.GetToken(); // = m_dwId = (DWORD)s.GetNumber(); } else if( s.Token == "DeadlockCheck" ) { s.GetToken(); // = m_dwMilliseconds = (DWORD)s.GetNumber(); bHeartbeat = true; } else if( s.Token == "bWait" ) { s.GetToken(); // = bStartWait = (bool)(s.GetNumber() != 0); } else if( s.Token == "lpDownDirectory" ) { s.GetToken(); // = s.GetToken(); //m_uploader.SetDownDirectory( s.Token ); strcpy( m_lpDownDirectory, s.Token ); } s.GetToken(); } if( bStartWait && bHeartbeat ) { AfxMessageBox( "INVALID CONDITION - bWait AND bHeartbeat must be exclusive" ); return FALSE; } m_bStartWait = bStartWait; if( bStartWait || bHeartbeat ) { char lpName[32]; sprintf( lpName, "%d", GetAppID() ); m_hEvent = CreateEvent( NULL, FALSE, FALSE, lpName ) ; if( m_hEvent == FALSE ) { char szBuffer[128]; sprintf( szBuffer, "CreateEvent ERROR:%d", GetLastError() ); AfxMessageBox( szBuffer ); return FALSE; } } return TRUE; }
int CCompilerDirectiveToken::consume(char aChar, CScanner& aScanner) { mTextValue=aChar; int result=aScanner.readUntil(mTextValue,gNewlines,false); return result; };
int main() { std::list<std::string> program_list; std::list<std::string>::const_iterator itrTest; CScanner scanner; Parser parsing; program_list.push_back(std::string("a=b+3.14156 - 7.8182;$")); program_list.push_back(std::string("a=c*b-d;$")); program_list.push_back(std::string("a=c+b$")); program_list.push_back(std::string("if (a>6) then a=c*(b-d); else b=10; fi;$")); program_list.push_back(std::string("a=c+b*d;$")); program_list.push_back(std::string("a=(c+b)*d;$ ")); program_list.push_back(std::string("if (a>6) then a=c*(b-d); fi;$")); program_list.push_back(std::string("if (a>6) then if (b < a) then a=c*(b-d); else b=10; fi;$")); program_list.push_back(std::string("if (a>6) then if (b < a) then a=c*(b-d); fi; else b=10; fi;$")); program_list.push_back(std::string("a=(c+b)*d;$")); program_list.push_back(std::string("if (a>6) then if (b < a) then a=c*(b-d); else b=10; fi; else c=b*2; fi;$")); program_list.push_back(std::string("a=(c+b)*d ; b=a-e*t;$")); program_list.push_back(std::string("a=1+b$")); program_list.push_back(std::string("b=[1.0,2.1;3.5,4.6];$")); program_list.push_back(std::string("b =[1.0e-1,4.2e-1;1.0e+2,1.0e-0];$")); program_list.push_back(std::string("y=[1,2,3];$")); program_list.push_back(std::string("x1=[1;2;3;4];$")); program_list.push_back(std::string("1=[1;2;3;4];$")); program_list.push_back(std::string("h=]1;2;3;4];$")); program_list.push_back(std::string("h=[1,2;3,4]+[4,3;2,1];$")); program_list.push_back(std::string("h=[1,2;3,4]-[6,5,4;3,2,1];$")); program_list.push_back(std::string("h=[1,2;3,4]*[6,5,4;3,2,1];$")); program_list.push_back(std::string("o=[1;2;3;4]; $")); program_list.push_back(std::string("z=[1,2,3,4,5,6,7,8;1,2,3,4,5,6,7,8];$")); program_list.push_back(std::string("t=[1,2,Abc;3,4,5];$")); program_list.push_back(std::string("xy=[1,2,3;1,2];$")); program_list.push_back(std::string("d=[];$")); program_list.push_back(std::string("e=[1.e2,.2];$")); program_list.push_back(std::string("=$[2.0]")); program_list.push_back(std::string("z=[1,,2];$")); program_list.push_back(std::string("u=[1;;2];$")); itrTest = program_list.begin(); while(itrTest != program_list.end()) { try { cout << *itrTest << endl; scanner.generate_token_list(*itrTest); // now scanner should contain a list of lexemes ready for parsing parsing.parse(scanner.get_token_list()); cout << "\nA New Program\n\n"; } catch (CSignal e) { cout << e.get_message() << endl; // Get the message } itrTest++; } return (SUCCESSFUL); }
int CNewlineToken::consume(char aChar, CScanner& aScanner) { mTextValue=aChar; int result=aScanner.readWhile(mTextValue,gNewlines,false); return result; };
BOOL Script( LPCSTR lpszFileName ) { g_eLocal.SetState( EVE_RESPAWN, 1 ); CScanner s; if( s.Load( lpszFileName ) == FALSE) { Error("Fail to open file - %s", lpszFileName ); return FALSE; } s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == "ResourceFolder" ) { s.GetToken(); if( !SetCurrentDirectory( s.Token ) ) { Error( "Folder not found, %s", s.Token ); return FALSE; } } else if( s.Token == "Key" ) { g_uKey = (DWORD)s.GetNumber(); #ifdef __S8_SERVER_PORT g_uIdofMulti = g_uKey % 100; #else // __S8_SERVER_PORT g_uIdofMulti = g_uKey / 100; #endif // __S8_SERVER_PORT } else if( s.Token == "Core" ) { s.GetToken(); strcpy( g_szCoreAddr, s.Token ); } else if( s.Token == "DB" ) { s.GetToken(); strcpy( g_szDBAddr, s.Token ); } else if( s.Token == "Account" ) { s.GetToken(); /* #ifdef __GIFTBOX0213 lstrcpy( s_szAccountAddr, s.Token ); #endif // __GIFTBOX0213 */ } else if( s.Token == "Heartbeat" ) { s.GetToken(); strcpy( g_sHeartbeat, s.Token ); } else if( s.Token == "18" ) { g_eLocal.SetState( EVE_18, 1 ); // 18세 서버 } else if( s.Token == "PK" ) { g_eLocal.SetState( EVE_PK, 1 ); } else if( s.Token == "PKCOST" ) { g_eLocal.SetState( EVE_PKCOST, 1 ); } else if( s.Token == "STEAL" ) { g_eLocal.SetState( EVE_STEAL, 1 ); } else if (s.Token == "GUILDBANK") { g_eLocal.SetState( ENABLE_GUILD_INVENTORY, 1 ); } else if( s.Token == "GUILDWAR" ) { g_eLocal.SetState( EVE_GUILDWAR, 1 ); } else if( s.Token == "DROPITEM_REMOVE" ) { g_eLocal.SetState( EVE_DROPITEMREMOVE, 1 ); } else if( s.Token == "SCHOOL" ) { //g_eLocal.SetState( EVE_SCHOOL, 1 ); } else if( s.Token == "GUILDCOMBAT") { g_eLocal.SetState( EVE_GUILDCOMBAT, 1 ); } else if( s.Token == "WORMON" ) { g_eLocal.SetState( EVE_WORMON, 1 ); } else if( s.Token == "respawn" ) { g_eLocal.SetState( EVE_RESPAWN, (BYTE)s.GetNumber() ); } #ifdef __S_RECOMMEND_EVE else if( s.Token == "RECOMMEND" ) { g_eLocal.SetState( EVE_RECOMMEND, 1 ); } #endif // __S_RECOMMEND_EVE #if __VER >= 11 // __GUILD_COMBAT_1TO1 else if( s.Token == "GUILDCOMBAT1TO1" ) { g_eLocal.SetState( EVE_GUILDCOMBAT1TO1, 1 ); } #endif // __GUILD_COMBAT_1TO1 #ifdef __JEFF_11_4 else if( s.Token == "ARENA" ) { g_eLocal.SetState( EVE_ARENA, 1 ); } #endif // __JEFF_11_4 #if __VER >= 12 // __SECRET_ROOM else if( s.Token == "SECRETROOM" ) { g_eLocal.SetState( EVE_SECRETROOM, 1 ); } #endif // __SECRET_ROOM #if __VER >= 13 // __RAINBOW_RACE else if( s.Token == "RAINBOWRACE" ) { g_eLocal.SetState( EVE_RAINBOWRACE, 1 ); } #endif // __RAINBOW_RACE s.GetToken(); } return TRUE; }
int CIdentifierToken::consume(char aChar, CScanner& aScanner) { mTextValue=aChar; int result=aScanner.readWhile(mTextValue,gIdentChars,false); return result; };
int CNumberToken::consume(char aChar, CScanner& aScanner) { mTextValue=aChar; int result=aScanner.readWhile(mTextValue,gDigits,false); return result; };
BOOL Script( LPCSTR lpszFileName ) { CScanner s; CServerDesc* pServer; POINT topLeft; SIZE size; if( s.Load( lpszFileName ) ) { g_MyTrace.AddLine( '-' ); s.GetToken(); while( s.tok != FINISHED ) { if( s.Token == "Sys" ) { g_dwSys = s.GetNumber(); } else if( s.Token == "dwId" ) { g_dwId = s.GetNumber(); } else if( s.Token == "Database" ) { s.GetToken(); strcpy( szDataBaseAddr, s.Token ); } else if( s.Token == "Certifier" ) { s.GetToken(); strcpy( szCertifierAddr, s.Token ); } else if( s.Token == "TEST" ) { s_bTest = TRUE; } else if( s.Token == "PartyExpRate" ) { s_fPartyExpRate = s.GetFloat(); } else { pServer = new CServerDesc; u_long uKey = (u_long)_ttoi( s.Token ); pServer->SetKey( uKey ); if( s.GetToken() == DELIMITER ) { while( s.GetToken() != DELIMITER ) { CJurisdiction* pJurisdiction = new CJurisdiction; pJurisdiction->m_dwWorldID = (DWORD)_ttoi( s.Token ); topLeft.x = s.GetNumber(); topLeft.y = s.GetNumber(); size.cx = s.GetNumber(); size.cy = s.GetNumber(); pJurisdiction->m_rect.SetRect( topLeft.x, topLeft.y, topLeft.x + size.cx, topLeft.y + size.cy ); pJurisdiction->m_wLeft = s.GetNumber(); pJurisdiction->m_wRight = s.GetNumber(); pServer->m_lspJurisdiction.push_back( pJurisdiction ); } } #ifdef __STL_0402 bool bResult = g_dpCoreSrvr.m_apSleepServer.insert( CServerDescArray::value_type( pServer->GetKey(), pServer ) ).second; ASSERT( bResult ); #else // __STL_0402 g_dpCoreSrvr.m_apSleepServer.SetAt( pServer->GetKey(), pServer ); #endif // __STL_0402 g_MyTrace.Add( pServer->GetKey(), TRUE, "%04d", pServer->GetKey() ); } s.GetToken(); } g_MyTrace.AddLine( '-' ); return TRUE; } Error( "Can't open file, %s.\n", lpszFileName ); return FALSE; }