PCOFFSymbol COFFSymbolTable::GetNearestSymbolFromRVA( DWORD rva, BOOL fExact ) { if ( !fExact ) return 0; PCOFFSymbol pSymbol = GetNextSymbol( 0 ); while ( pSymbol ) { if ( rva == pSymbol->GetValue() ) { if (pSymbol->GetStorageClass() == IMAGE_SYM_CLASS_EXTERNAL ) return pSymbol; if ( pSymbol->GetStorageClass() == IMAGE_SYM_CLASS_STATIC ) { if ( pSymbol->GetType() ) // Eliminate "Type: 0" return pSymbol; } } pSymbol = GetNextSymbol( pSymbol ); } return 0; }
//////////// // methods int FASTA_SEQUENCE_FILE :: OpenDNASequenceFile ( void ) { if ( ( _fp = fopen ( _fileName, "r" ) ) == NULL ) { printf ( "Couldn't open file %s!\n", _fileName ); return ( FALSE ); }; // consume comment line and make sure it starts with a '>' if (! ResetSequenceFile() ) { printf ( "File %s is not FASTA format!\n", _fileName); return ( FALSE ); } // determine length _seqLen = 0; while (GetNextSymbol() != EOF) _seqLen++; if ( _seqLen == 0 ) { printf ( "No sequence located in file!\n" ); return ( FALSE ); }; ResetSequenceFile(); printf ( "Opened file %s of length %d\n", _fileName, _seqLen); return TRUE; };
void Global::ConfigParse(TQueryParserComp *qp, cParser *cp) { // Ra: trzeba by przerobiæ na cParser, ¿eby to dzia³a³o w scenerii pParser = cp; qParser = qp; AnsiString str; int i; do { str = GetNextSymbol().LowerCase(); if (str == AnsiString("sceneryfile")) { str = GetNextSymbol().LowerCase(); strcpy(szSceneryFile, str.c_str()); } else if (str == AnsiString("humanctrlvehicle")) { str = GetNextSymbol().LowerCase(); asHumanCtrlVehicle = str; } else if (str == AnsiString("width")) iWindowWidth = GetNextSymbol().ToInt(); else if (str == AnsiString("height")) iWindowHeight = GetNextSymbol().ToInt(); else if (str == AnsiString("heightbase")) fDistanceFactor = GetNextSymbol().ToInt(); else if (str == AnsiString("bpp")) iBpp = ((GetNextSymbol().LowerCase() == AnsiString("32")) ? 32 : 16); else if (str == AnsiString("fullscreen")) bFullScreen = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("freefly")) // Mczapkie-130302 { bFreeFly = (GetNextSymbol().LowerCase() == AnsiString("yes")); pFreeCameraInit[0].x = GetNextSymbol().ToDouble(); pFreeCameraInit[0].y = GetNextSymbol().ToDouble(); pFreeCameraInit[0].z = GetNextSymbol().ToDouble(); } else if (str == AnsiString("wireframe")) bWireFrame = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("debugmode")) // McZapkie! - DebugModeFlag uzywana w mover.pas, // warto tez blokowac cheaty gdy false DebugModeFlag = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("soundenabled")) // McZapkie-040302 - blokada dzwieku - przyda // sie do debugowania oraz na komp. bez karty // dzw. bSoundEnabled = (GetNextSymbol().LowerCase() == AnsiString("yes")); // else if (str==AnsiString("renderalpha")) //McZapkie-1312302 - dwuprzebiegowe renderowanie // bRenderAlpha=(GetNextSymbol().LowerCase()==AnsiString("yes")); else if (str == AnsiString("physicslog")) // McZapkie-030402 - logowanie parametrow // fizycznych dla kazdego pojazdu z maszynista WriteLogFlag = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("physicsdeactivation")) // McZapkie-291103 - usypianie fizyki PhysicActivationFlag = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("debuglog")) { // McZapkie-300402 - wylaczanie log.txt str = GetNextSymbol().LowerCase(); if (str == "yes") iWriteLogEnabled = 3; else if (str == "no") iWriteLogEnabled = 0; else iWriteLogEnabled = str.ToIntDef(3); } else if (str == AnsiString("adjustscreenfreq")) { // McZapkie-240403 - czestotliwosc odswiezania ekranu str = GetNextSymbol(); bAdjustScreenFreq = (str.LowerCase() == AnsiString("yes")); } else if (str == AnsiString("mousescale")) { // McZapkie-060503 - czulosc ruchu myszy (krecenia glowa) str = GetNextSymbol(); fMouseXScale = str.ToDouble(); str = GetNextSymbol(); fMouseYScale = str.ToDouble(); } else if (str == AnsiString("enabletraction")) { // Winger 040204 - 'zywe' patyki dostosowujace sie do trakcji; Ra 2014-03: teraz ³amanie bEnableTraction = (GetNextSymbol().LowerCase() == AnsiString("yes")); } else if (str == AnsiString("loadtraction")) { // Winger 140404 - ladowanie sie trakcji bLoadTraction = (GetNextSymbol().LowerCase() == AnsiString("yes")); } else if (str == AnsiString("friction")) // mno¿nik tarcia - KURS90 fFriction = GetNextSymbol().ToDouble(); else if (str == AnsiString("livetraction")) { // Winger 160404 - zaleznosc napiecia loka od trakcji; Ra 2014-03: teraz pr¹d przy braku // sieci bLiveTraction = (GetNextSymbol().LowerCase() == AnsiString("yes")); } else if (str == AnsiString("skyenabled")) { // youBy - niebo if (GetNextSymbol().LowerCase() == AnsiString("yes")) asSky = "1"; else asSky = "0"; } else if (str == AnsiString("managenodes")) { bManageNodes = (GetNextSymbol().LowerCase() == AnsiString("yes")); } else if (str == AnsiString("decompressdds")) { bDecompressDDS = (GetNextSymbol().LowerCase() == AnsiString("yes")); } // ShaXbee - domyslne rozszerzenie tekstur else if (str == AnsiString("defaultext")) { str = GetNextSymbol().LowerCase(); // rozszerzenie if (str == "tga") szDefaultExt = szTexturesTGA; // domyœlnie od TGA // szDefaultExt=std::string(Parser->GetNextSymbol().LowerCase().c_str()); } else if (str == AnsiString("newaircouplers")) bnewAirCouplers = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("defaultfiltering")) iDefaultFiltering = GetNextSymbol().ToIntDef(-1); else if (str == AnsiString("ballastfiltering")) iBallastFiltering = GetNextSymbol().ToIntDef(-1); else if (str == AnsiString("railprofiltering")) iRailProFiltering = GetNextSymbol().ToIntDef(-1); else if (str == AnsiString("dynamicfiltering")) iDynamicFiltering = GetNextSymbol().ToIntDef(-1); else if (str == AnsiString("usevbo")) bUseVBO = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("feedbackmode")) iFeedbackMode = GetNextSymbol().ToIntDef(1); // domyœlnie 1 else if (str == AnsiString("feedbackport")) iFeedbackPort = GetNextSymbol().ToIntDef(0); // domyœlnie 0 else if (str == AnsiString("multiplayer")) iMultiplayer = GetNextSymbol().ToIntDef(0); // domyœlnie 0 else if (str == AnsiString("maxtexturesize")) { // wymuszenie przeskalowania tekstur i = GetNextSymbol().ToIntDef(16384); // domyœlnie du¿e if (i <= 64) iMaxTextureSize = 64; else if (i <= 128) iMaxTextureSize = 128; else if (i <= 256) iMaxTextureSize = 256; else if (i <= 512) iMaxTextureSize = 512; else if (i <= 1024) iMaxTextureSize = 1024; else if (i <= 2048) iMaxTextureSize = 2048; else if (i <= 4096) iMaxTextureSize = 4096; else if (i <= 8192) iMaxTextureSize = 8192; else iMaxTextureSize = 16384; } else if (str == AnsiString("doubleambient")) // podwójna jasnoœæ ambient bDoubleAmbient = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("movelight")) // numer dnia w roku albo -1 { fMoveLight = GetNextSymbol().ToIntDef(-1); // numer dnia 1..365 if (fMoveLight == 0.0) { // pobranie daty z systemu unsigned short y, m, d; TDate date = Now(); date.DecodeDate(&y, &m, &d); fMoveLight = (double)date - (double)TDate(y, 1, 1) + 1; // numer bie¿¹cego dnia w roku } if (fMoveLight > 0.0) // tu jest nadal zwiêkszone o 1 { // obliczenie deklinacji wg: // http://naturalfrequency.com/Tregenza_Sharples/Daylight_Algorithms/algorithm_1_11.htm // Spencer J W Fourier series representation of the position of the sun Search 2 (5) // 172 (1971) fMoveLight = M_PI / 182.5 * (Global::fMoveLight - 1.0); // numer dnia w postaci k¹ta fSunDeclination = 0.006918 - 0.3999120 * cos(fMoveLight) + 0.0702570 * sin(fMoveLight) - 0.0067580 * cos(2 * fMoveLight) + 0.0009070 * sin(2 * fMoveLight) - 0.0026970 * cos(3 * fMoveLight) + 0.0014800 * sin(3 * fMoveLight); } } else if (str == AnsiString("smoothtraction")) // podwójna jasnoœæ ambient bSmoothTraction = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("timespeed")) // przyspieszenie czasu, zmienna do testów fTimeSpeed = GetNextSymbol().ToIntDef(1); else if (str == AnsiString("multisampling")) // tryb antyaliasingu: 0=brak,1=2px,2=4px iMultisampling = GetNextSymbol().ToIntDef(2); // domyœlnie 2 else if (str == AnsiString("glutfont")) // tekst generowany przez GLUT bGlutFont = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("latitude")) // szerokoœæ geograficzna fLatitudeDeg = GetNextSymbol().ToDouble(); else if (str == AnsiString("convertmodels")) // tworzenie plików binarnych iConvertModels = GetNextSymbol().ToIntDef(7); // domyœlnie 7 else if (str == AnsiString("inactivepause")) // automatyczna pauza, gdy okno nieaktywne bInactivePause = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("slowmotion")) // tworzenie plików binarnych iSlowMotionMask = GetNextSymbol().ToIntDef(-1); // domyœlnie -1 else if (str == AnsiString("modifytga")) // czy korygowaæ pliki TGA dla szybszego // wczytywania iModifyTGA = GetNextSymbol().ToIntDef(0); // domyœlnie 0 else if (str == AnsiString("hideconsole")) // hunter-271211: ukrywanie konsoli bHideConsole = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString( "rollfix")) // Ra: poprawianie przechy³ki, aby wewnêtrzna szyna by³a "pozioma" bRollFix = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("fpsaverage")) // oczekiwana wartosæ FPS fFpsAverage = GetNextSymbol().ToDouble(); else if (str == AnsiString("fpsdeviation")) // odchylenie standardowe FPS fFpsDeviation = GetNextSymbol().ToDouble(); else if (str == AnsiString("fpsradiusmax")) // maksymalny promieñ renderowania fFpsRadiusMax = GetNextSymbol().ToDouble(); else if (str == AnsiString("calibratein")) // parametry kalibracji wejœæ { // i = GetNextSymbol().ToIntDef(-1); // numer wejœcia if ((i < 0) || (i > 5)) i = 5; // na ostatni, bo i tak trzeba pomin¹æ wartoœci fCalibrateIn[i][0] = GetNextSymbol().ToDouble(); // wyraz wolny fCalibrateIn[i][1] = GetNextSymbol().ToDouble(); // mno¿nik fCalibrateIn[i][2] = GetNextSymbol().ToDouble(); // mno¿nik dla kwadratu fCalibrateIn[i][3] = GetNextSymbol().ToDouble(); // mno¿nik dla szeœcianu } else if (str == AnsiString("calibrateout")) // parametry kalibracji wyjœæ { // i = GetNextSymbol().ToIntDef(-1); // numer wejœcia if ((i < 0) || (i > 6)) i = 6; // na ostatni, bo i tak trzeba pomin¹æ wartoœci fCalibrateOut[i][0] = GetNextSymbol().ToDouble(); // wyraz wolny fCalibrateOut[i][1] = GetNextSymbol().ToDouble(); // mno¿nik liniowy fCalibrateOut[i][2] = GetNextSymbol().ToDouble(); // mno¿nik dla kwadratu fCalibrateOut[i][3] = GetNextSymbol().ToDouble(); // mno¿nik dla szeœcianu } else if (str == AnsiString("brakestep")) // krok zmiany hamulca dla klawiszy [Num3] i [Num9] fBrakeStep = GetNextSymbol().ToDouble(); else if (str == AnsiString("joinduplicatedevents")) // czy grupowaæ eventy o tych samych nazwach bJoinEvents = (GetNextSymbol().LowerCase() == AnsiString("yes")); else if (str == AnsiString("hiddenevents")) // czy ³¹czyæ eventy z torami poprzez nazwê toru iHiddenEvents = GetNextSymbol().ToIntDef(0); else if (str == AnsiString("pause")) // czy po wczytaniu ma byæ pauza? iPause |= (GetNextSymbol().LowerCase() == AnsiString("yes")) ? 1 : 0; else if (str == AnsiString("lang")) asLang = GetNextSymbol(); // domyœlny jêzyk - http://tools.ietf.org/html/bcp47 else if (str == AnsiString("opengl")) // deklarowana wersja OpenGL, ¿eby powstrzymaæ b³êdy fOpenGL = GetNextSymbol().ToDouble(); // wymuszenie wersji OpenGL } while (str != "endconfig"); //(!Parser->EndOfFile) // na koniec trochê zale¿noœci if (!bLoadTraction) // wczytywanie drutów i s³upów { // tutaj wy³¹czenie, bo mog¹ nie byæ zdefiniowane w INI bEnableTraction = false; // false = pantograf siê nie po³amie bLiveTraction = false; // false = pantografy zawsze zbieraj¹ 95% MaxVoltage } // if (fMoveLight>0) bDoubleAmbient=false; //wtedy tylko jedno œwiat³o ruchome // if (fOpenGL<1.3) iMultisampling=0; //mo¿na by z góry wy³¹czyæ, ale nie mamy jeszcze fOpenGL if (iMultisampling) { // antyaliasing ca³oekranowy wy³¹cza rozmywanie drutów bSmoothTraction = false; } if (iMultiplayer > 0) { bInactivePause = false; // okno "w tle" nie mo¿e pauzowaæ, jeœli w³¹czona komunikacja // pauzowanie jest zablokowane dla (iMultiplayer&2)>0, wiêc iMultiplayer=1 da siê zapauzowaæ // (tryb instruktora) } fFpsMin = fFpsAverage - fFpsDeviation; // dolna granica FPS, przy której promieñ scenerii bêdzie zmniejszany fFpsMax = fFpsAverage + fFpsDeviation; // górna granica FPS, przy której promieñ scenerii bêdzie zwiêkszany if (iPause) iTextMode = VK_F1; // jak pauza, to pokazaæ zegar if (qp) { // to poni¿ej wykonywane tylko raz, jedynie po wczytaniu eu07.ini Console::ModeSet(iFeedbackMode, iFeedbackPort); // tryb pracy konsoli sterowniczej iFpsRadiusMax = 0.000025 * fFpsRadiusMax * fFpsRadiusMax; // maksymalny promieñ renderowania 3000.0 -> 225 if (iFpsRadiusMax > 400) iFpsRadiusMax = 400; if (fDistanceFactor > 1.0) { // dla 1.0 specjalny tryb bez przeliczania fDistanceFactor = iWindowHeight / fDistanceFactor; // fDistanceFactor>1.0 dla rozdzielczoœci wiêkszych ni¿ bazowa fDistanceFactor *= (iMultisampling + 1.0) * fDistanceFactor; // do kwadratu, bo wiêkszoœæ odleg³oœci to ich kwadraty } } }