mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-21 17:09:19 +02:00
Konwersja na UTF-8
Konwersja na UTF-8 Konwersja na UTF-8 Konwersja na UTF-8 Konwersja na UTF-8 Konwersja do UTF-8 Konwersja na UTF-8 Konwersja na UTF-8 Konwersja na UTF-8
This commit is contained in:
441
Globals.cpp
441
Globals.cpp
@@ -25,55 +25,55 @@ http://mozilla.org/MPL/2.0/.
|
||||
|
||||
// namespace Global {
|
||||
|
||||
// parametry do u<EFBFBD>ytku wewn<EFBFBD>trznego
|
||||
// parametry do użytku wewnętrznego
|
||||
// double Global::tSinceStart=0;
|
||||
TGround *Global::pGround = NULL;
|
||||
// char Global::CreatorName1[30]="2001-2004 Maciej Czapkiewicz <McZapkie>";
|
||||
// char Global::CreatorName2[30]="2001-2003 Marcin Wo<EFBFBD>niak <Marcin_EU>";
|
||||
// char Global::CreatorName2[30]="2001-2003 Marcin Woźniak <Marcin_EU>";
|
||||
// char Global::CreatorName3[20]="2004-2005 Adam Bugiel <ABu>";
|
||||
// char Global::CreatorName4[30]="2004 Arkadiusz <EFBFBD>lusarczyk <Winger>";
|
||||
// char Global::CreatorName5[30]="2003-2009 <EFBFBD>ukasz Kirchner <Nbmx>";
|
||||
// char Global::CreatorName4[30]="2004 Arkadiusz Ślusarczyk <Winger>";
|
||||
// char Global::CreatorName5[30]="2003-2009 Łukasz Kirchner <Nbmx>";
|
||||
std::string Global::asCurrentSceneryPath = "scenery/";
|
||||
std::string Global::asCurrentTexturePath = std::string(szTexturePath);
|
||||
std::string Global::asCurrentDynamicPath = "";
|
||||
int Global::iSlowMotion =
|
||||
0; // info o malym FPS: 0-OK, 1-wy<EFBFBD><EFBFBD>czy<EFBFBD> multisampling, 3-promie<EFBFBD> 1.5km, 7-1km
|
||||
0; // info o malym FPS: 0-OK, 1-wyłączyć multisampling, 3-promień 1.5km, 7-1km
|
||||
TDynamicObject *Global::changeDynObj = NULL; // info o zmianie pojazdu
|
||||
bool Global::detonatoryOK; // info o nowych detonatorach
|
||||
double Global::ABuDebug = 0;
|
||||
std::string Global::asSky = "1";
|
||||
double Global::fOpenGL = 0.0; // wersja OpenGL - do sprawdzania obecno<EFBFBD>ci rozszerze<EFBFBD>
|
||||
bool Global::bOpenGL_1_5 = false; // czy s<EFBFBD> dost<EFBFBD>pne funkcje OpenGL 1.5
|
||||
double Global::fLuminance = 1.0; // jasno<EFBFBD><EFBFBD> <20>wiat<EFBFBD>a do automatycznego zapalania
|
||||
int Global::iReCompile = 0; // zwi<EFBFBD>kszany, gdy trzeba od<EFBFBD>wie<EFBFBD>y<EFBFBD> siatki
|
||||
double Global::fOpenGL = 0.0; // wersja OpenGL - do sprawdzania obecności rozszerzeń
|
||||
bool Global::bOpenGL_1_5 = false; // czy są dostępne funkcje OpenGL 1.5
|
||||
double Global::fLuminance = 1.0; // jasność światła do automatycznego zapalania
|
||||
int Global::iReCompile = 0; // zwiększany, gdy trzeba odświeżyć siatki
|
||||
HWND Global::hWnd = NULL; // uchwyt okna
|
||||
int Global::iCameraLast = -1;
|
||||
std::string Global::asRelease = "16.1.1174.483";
|
||||
std::string Global::asRelease = "16.0.1172.482";
|
||||
std::string Global::asVersion =
|
||||
"Compilation 2017-01-13, release " + Global::asRelease + "."; // tutaj, bo wysy<EFBFBD>any
|
||||
int Global::iViewMode = 0; // co aktualnie wida<EFBFBD>: 0-kabina, 1-latanie, 2-sprz<EFBFBD>gi, 3-dokumenty
|
||||
int Global::iTextMode = 0; // tryb pracy wy<EFBFBD>wietlacza tekstowego
|
||||
"Compilation 2017-01-10, release " + Global::asRelease + "."; // tutaj, bo wysyłany
|
||||
int Global::iViewMode = 0; // co aktualnie widać: 0-kabina, 1-latanie, 2-sprzęgi, 3-dokumenty
|
||||
int Global::iTextMode = 0; // tryb pracy wyświetlacza tekstowego
|
||||
int Global::iScreenMode[12] = {0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0}; // numer ekranu wy<EFBFBD>wietlacza tekstowego
|
||||
double Global::fSunDeclination = 0.0; // deklinacja S<EFBFBD>o<EFBFBD>ca
|
||||
double Global::fTimeAngleDeg = 0.0; // godzina w postaci k<EFBFBD>ta
|
||||
float Global::fClockAngleDeg[6]; // k<EFBFBD>ty obrotu cylindr<EFBFBD>w dla zegara cyfrowego
|
||||
0, 0, 0, 0, 0, 0}; // numer ekranu wyświetlacza tekstowego
|
||||
double Global::fSunDeclination = 0.0; // deklinacja Słońca
|
||||
double Global::fTimeAngleDeg = 0.0; // godzina w postaci kąta
|
||||
float Global::fClockAngleDeg[6]; // kąty obrotu cylindrów dla zegara cyfrowego
|
||||
char *Global::szTexturesTGA[4] = {"tga", "dds", "tex", "bmp"}; // lista tekstur od TGA
|
||||
char *Global::szTexturesDDS[4] = {"dds", "tga", "tex", "bmp"}; // lista tekstur od DDS
|
||||
int Global::iKeyLast = 0; // ostatnio naci<EFBFBD>ni<EFBFBD>ty klawisz w celu logowania
|
||||
GLuint Global::iTextureId = 0; // ostatnio u<EFBFBD>yta tekstura 2D
|
||||
int Global::iKeyLast = 0; // ostatnio naciśnięty klawisz w celu logowania
|
||||
GLuint Global::iTextureId = 0; // ostatnio użyta tekstura 2D
|
||||
int Global::iPause = 0x10; // globalna pauza ruchu
|
||||
bool Global::bActive = true; // czy jest aktywnym oknem
|
||||
int Global::iErorrCounter = 0; // licznik sprawdza<EFBFBD> do <EFBFBD>ledzenia b<EFBFBD><EFBFBD>d<EFBFBD>w OpenGL
|
||||
int Global::iTextures = 0; // licznik u<EFBFBD>ytych tekstur
|
||||
int Global::iErorrCounter = 0; // licznik sprawdzań do śledzenia błędów OpenGL
|
||||
int Global::iTextures = 0; // licznik użytych tekstur
|
||||
TWorld *Global::pWorld = NULL;
|
||||
cParser *Global::pParser = NULL;
|
||||
int Global::iSegmentsRendered = 90; // ilo<EFBFBD><EFBFBD> segment<EFBFBD>w do regulacji wydajno<EFBFBD>ci
|
||||
int Global::iSegmentsRendered = 90; // ilość segmentów do regulacji wydajności
|
||||
TCamera *Global::pCamera = NULL; // parametry kamery
|
||||
TDynamicObject *Global::pUserDynamic = NULL; // pojazd u<EFBFBD>ytkownika, renderowany bez trz<EFBFBD>sienia
|
||||
bool Global::bSmudge = false; // czy wy<EFBFBD>wietla<EFBFBD> smug<EFBFBD>, a pojazd u<EFBFBD>ytkownika na ko<EFBFBD>cu
|
||||
TDynamicObject *Global::pUserDynamic = NULL; // pojazd użytkownika, renderowany bez trzęsienia
|
||||
bool Global::bSmudge = false; // czy wyświetlać smugę, a pojazd użytkownika na końcu
|
||||
std::string Global::asTranscript[5]; // napisy na ekranie (widoczne)
|
||||
TTranscripts Global::tranTexts; // obiekt obs<EFBFBD>uguj<EFBFBD>cy stenogramy d<EFBFBD>wi<EFBFBD>k<EFBFBD>w na ekranie
|
||||
TTranscripts Global::tranTexts; // obiekt obsługujący stenogramy dźwięków na ekranie
|
||||
|
||||
// parametry scenerii
|
||||
vector3 Global::pCameraPosition;
|
||||
@@ -89,22 +89,22 @@ GLfloat Global::FogColor[] = {0.6f, 0.7f, 0.8f};
|
||||
GLfloat Global::ambientDayLight[] = {0.40f, 0.40f, 0.45f, 1.0f}; // robocze
|
||||
GLfloat Global::diffuseDayLight[] = {0.55f, 0.54f, 0.50f, 1.0f};
|
||||
GLfloat Global::specularDayLight[] = {0.95f, 0.94f, 0.90f, 1.0f};
|
||||
GLfloat Global::ambientLight[] = {0.80f, 0.80f, 0.85f, 1.0f}; // sta<EFBFBD>e
|
||||
GLfloat Global::ambientLight[] = {0.80f, 0.80f, 0.85f, 1.0f}; // stałe
|
||||
GLfloat Global::diffuseLight[] = {0.85f, 0.85f, 0.80f, 1.0f};
|
||||
GLfloat Global::specularLight[] = {0.95f, 0.94f, 0.90f, 1.0f};
|
||||
GLfloat Global::whiteLight[] = {1.00f, 1.00f, 1.00f, 1.0f};
|
||||
GLfloat Global::noLight[] = {0.00f, 0.00f, 0.00f, 1.0f};
|
||||
GLfloat Global::darkLight[] = {0.03f, 0.03f, 0.03f, 1.0f}; //<EFBFBD>ladowe
|
||||
GLfloat Global::darkLight[] = {0.03f, 0.03f, 0.03f, 1.0f}; //śladowe
|
||||
GLfloat Global::lightPos[4];
|
||||
bool Global::bRollFix = true; // czy wykona<EFBFBD> przeliczanie przechy<EFBFBD>ki
|
||||
bool Global::bJoinEvents = false; // czy grupowa<EFBFBD> eventy o tych samych nazwach
|
||||
int Global::iHiddenEvents = 1; // czy <EFBFBD><EFBFBD>czy<EFBFBD> eventy z torami poprzez nazw<EFBFBD> toru
|
||||
bool Global::bRollFix = true; // czy wykonać przeliczanie przechyłki
|
||||
bool Global::bJoinEvents = false; // czy grupować eventy o tych samych nazwach
|
||||
int Global::iHiddenEvents = 1; // czy łączyć eventy z torami poprzez nazwę toru
|
||||
|
||||
// parametry u<EFBFBD>ytkowe (jak komu pasuje)
|
||||
// parametry użytkowe (jak komu pasuje)
|
||||
int Global::Keys[MaxKeys];
|
||||
int Global::iWindowWidth = 800;
|
||||
int Global::iWindowHeight = 600;
|
||||
float Global::fDistanceFactor = 768.0; // baza do przeliczania odleg<EFBFBD>o<EFBFBD>ci dla LoD
|
||||
float Global::fDistanceFactor = 768.0; // baza do przeliczania odległości dla LoD
|
||||
int Global::iFeedbackMode = 1; // tryb pracy informacji zwrotnej
|
||||
int Global::iFeedbackPort = 0; // dodatkowy adres dla informacji zwrotnych
|
||||
bool Global::bFreeFly = false;
|
||||
@@ -114,82 +114,83 @@ float Global::fMouseXScale = 1.5;
|
||||
float Global::fMouseYScale = 0.2;
|
||||
std::string Global::SceneryFile = "td.scn";
|
||||
std::string Global::asHumanCtrlVehicle = "EU07-424";
|
||||
int Global::iMultiplayer = 0; // blokada dzia<EFBFBD>ania niekt<EFBFBD>rych funkcji na rzecz komunikacji
|
||||
double Global::fMoveLight = -1; // ruchome <EFBFBD>wiat<EFBFBD>o
|
||||
double Global::fLatitudeDeg = 52.0; // szeroko<EFBFBD><EFBFBD> geograficzna
|
||||
float Global::fFriction = 1.0; // mno<EFBFBD>nik tarcia - KURS90
|
||||
int Global::iMultiplayer = 0; // blokada działania niektórych funkcji na rzecz komunikacji
|
||||
double Global::fMoveLight = -1; // ruchome światło
|
||||
double Global::fLatitudeDeg = 52.0; // szerokość geograficzna
|
||||
float Global::fFriction = 1.0; // mnożnik tarcia - KURS90
|
||||
double Global::fBrakeStep = 1.0; // krok zmiany hamulca dla klawiszy [Num3] i [Num9]
|
||||
std::string Global::asLang = "pl"; // domy<EFBFBD>lny j<EFBFBD>zyk - http://tools.ietf.org/html/bcp47
|
||||
std::string Global::asLang = "pl"; // domyślny język - http://tools.ietf.org/html/bcp47
|
||||
|
||||
// parametry wydajno<EFBFBD>ciowe (np. regulacja FPS, szybko<EFBFBD><EFBFBD> wczytywania)
|
||||
// parametry wydajnościowe (np. regulacja FPS, szybkość wczytywania)
|
||||
bool Global::bAdjustScreenFreq = true;
|
||||
bool Global::bEnableTraction = true;
|
||||
bool Global::bLoadTraction = true;
|
||||
bool Global::bLiveTraction = true;
|
||||
int Global::iDefaultFiltering = 9; // domy<EFBFBD>lne rozmywanie tekstur TGA bez alfa
|
||||
int Global::iBallastFiltering = 9; // domy<EFBFBD>lne rozmywanie tekstur podsypki
|
||||
int Global::iRailProFiltering = 5; // domy<EFBFBD>lne rozmywanie tekstur szyn
|
||||
int Global::iDynamicFiltering = 5; // domy<EFBFBD>lne rozmywanie tekstur pojazd<EFBFBD>w
|
||||
bool Global::bUseVBO = false; // czy jest VBO w karcie graficznej (czy u<EFBFBD>y<EFBFBD>)
|
||||
int Global::iDefaultFiltering = 9; // domyślne rozmywanie tekstur TGA bez alfa
|
||||
int Global::iBallastFiltering = 9; // domyślne rozmywanie tekstur podsypki
|
||||
int Global::iRailProFiltering = 5; // domyślne rozmywanie tekstur szyn
|
||||
int Global::iDynamicFiltering = 5; // domyślne rozmywanie tekstur pojazdów
|
||||
bool Global::bUseVBO = false; // czy jest VBO w karcie graficznej (czy użyć)
|
||||
GLint Global::iMaxTextureSize = 16384; // maksymalny rozmiar tekstury
|
||||
bool Global::bSmoothTraction = false; // wyg<EFBFBD>adzanie drut<EFBFBD>w starym sposobem
|
||||
char **Global::szDefaultExt = Global::szTexturesDDS; // domy<EFBFBD>lnie od DDS
|
||||
bool Global::bSmoothTraction = false; // wygładzanie drutów starym sposobem
|
||||
char **Global::szDefaultExt = Global::szTexturesDDS; // domyślnie od DDS
|
||||
int Global::iMultisampling = 2; // tryb antyaliasingu: 0=brak,1=2px,2=4px,3=8px,4=16px
|
||||
bool Global::bGlutFont = false; // czy tekst generowany przez GLUT32.DLL
|
||||
int Global::iConvertModels = 7; // tworzenie plik<EFBFBD>w binarnych, +2-optymalizacja transform<EFBFBD>w
|
||||
int Global::iSlowMotionMask = -1; // maska wy<EFBFBD><EFBFBD>czanych w<EFBFBD>a<EFBFBD>ciwo<EFBFBD>ci dla zwi<EFBFBD>kszenia FPS
|
||||
int Global::iModifyTGA = 7; // czy korygowa<EFBFBD> pliki TGA dla szybszego wczytywania
|
||||
// bool Global::bTerrainCompact=true; //czy zapisa<EFBFBD> teren w pliku
|
||||
int Global::iConvertModels = 7; // tworzenie plików binarnych, +2-optymalizacja transformów
|
||||
int Global::iSlowMotionMask = -1; // maska wyłączanych właściwości dla zwiększenia FPS
|
||||
int Global::iModifyTGA = 7; // czy korygować pliki TGA dla szybszego wczytywania
|
||||
// bool Global::bTerrainCompact=true; //czy zapisać teren w pliku
|
||||
TAnimModel *Global::pTerrainCompact = NULL; // do zapisania terenu w pliku
|
||||
std::string Global::asTerrainModel = ""; // nazwa obiektu terenu do zapisania w pliku
|
||||
double Global::fFpsAverage = 20.0; // oczekiwana wartos<EFBFBD> FPS
|
||||
double Global::fFpsAverage = 20.0; // oczekiwana wartosć FPS
|
||||
double Global::fFpsDeviation = 5.0; // odchylenie standardowe FPS
|
||||
double Global::fFpsMin = 0.0; // dolna granica FPS, przy kt<EFBFBD>rej promie<EFBFBD> scenerii b<EFBFBD>dzie zmniejszany
|
||||
double Global::fFpsMax = 0.0; // g<EFBFBD>rna granica FPS, przy kt<EFBFBD>rej promie<EFBFBD> scenerii b<EFBFBD>dzie zwi<EFBFBD>kszany
|
||||
double Global::fFpsRadiusMax = 3000.0; // maksymalny promie<EFBFBD> renderowania
|
||||
int Global::iFpsRadiusMax = 225; // maksymalny promie<EFBFBD> renderowania
|
||||
double Global::fRadiusFactor = 1.1; // wsp<EFBFBD><EFBFBD>czynnik jednorazowej zmiany promienia scenerii
|
||||
bool Global::bOldSmudge = false; // U<EFBFBD>ywanie starej smugi
|
||||
double Global::fFpsMin = 0.0; // dolna granica FPS, przy której promień scenerii będzie zmniejszany
|
||||
double Global::fFpsMax = 0.0; // górna granica FPS, przy której promień scenerii będzie zwiększany
|
||||
double Global::fFpsRadiusMax = 3000.0; // maksymalny promień renderowania
|
||||
int Global::iFpsRadiusMax = 225; // maksymalny promień renderowania
|
||||
double Global::fRadiusFactor = 1.1; // współczynnik jednorazowej zmiany promienia scenerii
|
||||
bool Global::bOldSmudge = false; // Używanie starej smugi
|
||||
|
||||
// parametry testowe (do testowania scenerii i obiekt<EFBFBD>w)
|
||||
// parametry testowe (do testowania scenerii i obiektów)
|
||||
bool Global::bWireFrame = false;
|
||||
bool Global::bSoundEnabled = true;
|
||||
int Global::iWriteLogEnabled = 3; // maska bitowa: 1-zapis do pliku, 2-okienko, 4-nazwy tor<EFBFBD>w
|
||||
int Global::iWriteLogEnabled = 3; // maska bitowa: 1-zapis do pliku, 2-okienko, 4-nazwy torów
|
||||
bool Global::bManageNodes = true;
|
||||
bool Global::bDecompressDDS = false; // czy programowa dekompresja DDS
|
||||
|
||||
// parametry do kalibracji
|
||||
// kolejno wsp<EFBFBD><EFBFBD>czynniki dla pot<EFBFBD>g 0, 1, 2, 3 warto<EFBFBD>ci odczytanej z urz<EFBFBD>dzenia
|
||||
double Global::fCalibrateIn[6][6] = {{0, 1, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0}};
|
||||
double Global::fCalibrateOut[7][6] = {{0, 1, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0},
|
||||
// kolejno współczynniki dla potęg 0, 1, 2, 3 wartości odczytanej z urządzenia
|
||||
double Global::fCalibrateIn[6][6] = {{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0}};
|
||||
double Global::fCalibrateOut[7][6] = {{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0},
|
||||
{0, 1, 0, 0, 0, 0}};
|
||||
double Global::fCalibrateOutMax[7] = {0, 0, 0, 0, 0, 0, 0};
|
||||
int Global::iCalibrateOutDebugInfo = -1;
|
||||
int Global::iPoKeysPWM[7] = {0, 1, 2, 3, 4, 5, 6};
|
||||
// parametry przej<EFBFBD>ciowe (do usuni<EFBFBD>cia)
|
||||
// bool Global::bTimeChange=false; //Ra: ZiomalCl wy<EFBFBD><EFBFBD>czy<EFBFBD> star<EFBFBD> wersj<EFBFBD> nocy
|
||||
// bool Global::bRenderAlpha=true; //Ra: wywali<EFBFBD>am t<EFBFBD> flag<EFBFBD>
|
||||
// parametry przejściowe (do usunięcia)
|
||||
// bool Global::bTimeChange=false; //Ra: ZiomalCl wyłączył starą wersję nocy
|
||||
// bool Global::bRenderAlpha=true; //Ra: wywaliłam tę flagę
|
||||
bool Global::bnewAirCouplers = true;
|
||||
bool Global::bDoubleAmbient = false; // podw<EFBFBD>jna jasno<EFBFBD><EFBFBD> ambient
|
||||
double Global::fTimeSpeed = 1.0; // przyspieszenie czasu, zmienna do test<EFBFBD>w
|
||||
bool Global::bDoubleAmbient = false; // podwójna jasność ambient
|
||||
double Global::fTimeSpeed = 1.0; // przyspieszenie czasu, zmienna do testów
|
||||
bool Global::bHideConsole = false; // hunter-271211: ukrywanie konsoli
|
||||
int Global::iBpp = 32; // chyba ju<EFBFBD> nie u<EFBFBD>ywa si<EFBFBD> kart, na kt<EFBFBD>rych 16bpp co<EFBFBD> poprawi
|
||||
// maciek001: konfiguracja wst<EFBFBD>pna portu COM
|
||||
int Global::iBpp = 32; // chyba już nie używa się kart, na których 16bpp coś poprawi
|
||||
// maciek001: konfiguracja wstępna portu COM
|
||||
bool Global::bMWDdebugEnable = false;
|
||||
bool Global::bMWDInputDataEnable = false;
|
||||
unsigned int Global::iMWDBaudrate = 500000;
|
||||
std::string Global::sMWDPortId = "COM1"; // nazwa portu z kt<EFBFBD>rego korzystamy - na razie nie dzia<EFBFBD>a
|
||||
bool Global::bMWDBreakEnable =
|
||||
false; // zmieni<6E> na FALSE!!! jak ju<6A> b<>dzie dzia<69>a<EFBFBD> wczytywanie z *.ini
|
||||
double Global::fMWDAnalogCalib[4][3] = {
|
||||
{1023, 0, 1023}, {1023, 0, 1023}, {1023, 0, 1023}, {1023, 0, 1023}}; // warto<74><6F> max
|
||||
// potencjometru, warto<74><6F>
|
||||
// min potencjometru,
|
||||
// rozdzielczo<7A><6F> (max.
|
||||
// warto<74><6F> jaka mo<6D>e by<62>
|
||||
// -1)
|
||||
unsigned long int Global::iMWDBaudrate = 500000;
|
||||
std::string Global::sMWDPortId = "COM1"; // nazwa portu z którego korzystamy - na razie nie działa
|
||||
bool Global::bMWDBreakEnable = false; // zmienić na FALSE!!! jak już będzie działać wczytywanie z *.ini
|
||||
double Global::fMWDAnalogCalib[4][3] = {{1023, 0, 1023},{1023, 0, 1023},{1023, 0, 1023},{1023, 0, 1023}}; // wartość max potencjometru, wartość min potencjometru, rozdzielczość (max. wartość jaka może być -1)
|
||||
double Global::fMWDzg[2] = {0.9, 1023};
|
||||
double Global::fMWDpg[2] = {0.8, 1023};
|
||||
double Global::fMWDph[2] = {0.6, 1023};
|
||||
@@ -217,8 +218,8 @@ void Global::LoadIniFile(std::string asFileName)
|
||||
{
|
||||
for (int i = 0; i < 10; ++i)
|
||||
{ // zerowanie pozycji kamer
|
||||
pFreeCameraInit[i] = vector3(0, 0, 0); // wsp<EFBFBD><EFBFBD>rz<EFBFBD>dne w scenerii
|
||||
pFreeCameraInitAngle[i] = vector3(0, 0, 0); // k<EFBFBD>ty obrotu w radianach
|
||||
pFreeCameraInit[i] = vector3(0, 0, 0); // współrzędne w scenerii
|
||||
pFreeCameraInitAngle[i] = vector3(0, 0, 0); // kąty obrotu w radianach
|
||||
}
|
||||
cParser parser(asFileName, cParser::buffer_FILE);
|
||||
ConfigParse(parser);
|
||||
@@ -342,7 +343,7 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else
|
||||
{
|
||||
Global::iWriteLogEnabled = std::atoi(token.c_str());
|
||||
Global::iWriteLogEnabled = stol_def(token,3);
|
||||
}
|
||||
}
|
||||
else if (token == "adjustscreenfreq")
|
||||
@@ -360,7 +361,7 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else if (token == "enabletraction")
|
||||
{
|
||||
// Winger 040204 - 'zywe' patyki dostosowujace sie do trakcji; Ra 2014-03: teraz <EFBFBD>amanie
|
||||
// Winger 040204 - 'zywe' patyki dostosowujace sie do trakcji; Ra 2014-03: teraz łamanie
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
Global::bEnableTraction = (token == "yes");
|
||||
@@ -373,7 +374,7 @@ void Global::ConfigParse(cParser &Parser)
|
||||
Global::bLoadTraction = (token == "yes");
|
||||
}
|
||||
else if (token == "friction")
|
||||
{ // mno<EFBFBD>nik tarcia - KURS90
|
||||
{ // mnożnik tarcia - KURS90
|
||||
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::fFriction;
|
||||
@@ -381,7 +382,7 @@ void Global::ConfigParse(cParser &Parser)
|
||||
else if (token == "livetraction")
|
||||
{
|
||||
// Winger 160404 - zaleznosc napiecia loka od trakcji;
|
||||
// Ra 2014-03: teraz pr<EFBFBD>d przy braku sieci
|
||||
// Ra 2014-03: teraz prąd przy braku sieci
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
Global::bLiveTraction = (token == "yes");
|
||||
@@ -414,7 +415,7 @@ void Global::ConfigParse(cParser &Parser)
|
||||
Parser >> token;
|
||||
if (token == "tga")
|
||||
{
|
||||
// domy<EFBFBD>lnie od TGA
|
||||
// domyślnie od TGA
|
||||
Global::szDefaultExt = Global::szTexturesTGA;
|
||||
}
|
||||
}
|
||||
@@ -519,7 +520,7 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else if (token == "doubleambient")
|
||||
{
|
||||
// podw<EFBFBD>jna jasno<EFBFBD><EFBFBD> ambient
|
||||
// podwójna jasność ambient
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
Global::bDoubleAmbient = (token == "yes");
|
||||
@@ -533,15 +534,15 @@ void Global::ConfigParse(cParser &Parser)
|
||||
{ // pobranie daty z systemu
|
||||
std::time_t timenow = std::time(0);
|
||||
std::tm *localtime = std::localtime(&timenow);
|
||||
Global::fMoveLight = localtime->tm_yday + 1; // numer bie<EFBFBD><EFBFBD>cego dnia w roku
|
||||
Global::fMoveLight = localtime->tm_yday + 1; // numer bieżącego dnia w roku
|
||||
}
|
||||
if (Global::fMoveLight > 0.f) // tu jest nadal zwi<EFBFBD>kszone o 1
|
||||
if (fMoveLight > 0.f) // 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)
|
||||
Global::fMoveLight =
|
||||
M_PI / 182.5 * (Global::fMoveLight - 1.0); // numer dnia w postaci k<EFBFBD>ta
|
||||
M_PI / 182.5 * (Global::fMoveLight - 1.0); // numer dnia w postaci kąta
|
||||
fSunDeclination =
|
||||
0.006918 - 0.3999120 * std::cos(fMoveLight) + 0.0702570 * std::sin(fMoveLight) -
|
||||
0.0067580 * std::cos(2 * fMoveLight) + 0.0009070 * std::sin(2 * fMoveLight) -
|
||||
@@ -550,14 +551,14 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else if (token == "smoothtraction")
|
||||
{
|
||||
// podw<EFBFBD>jna jasno<EFBFBD><EFBFBD> ambient
|
||||
// podwójna jasność ambient
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
Global::bSmoothTraction = (token == "yes");
|
||||
}
|
||||
else if (token == "timespeed")
|
||||
{
|
||||
// przyspieszenie czasu, zmienna do test<EFBFBD>w
|
||||
// przyspieszenie czasu, zmienna do testów
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::fTimeSpeed;
|
||||
}
|
||||
@@ -576,13 +577,13 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else if (token == "latitude")
|
||||
{
|
||||
// szeroko<EFBFBD><EFBFBD> geograficzna
|
||||
// szerokość geograficzna
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::fLatitudeDeg;
|
||||
}
|
||||
else if (token == "convertmodels")
|
||||
{
|
||||
// tworzenie plik<EFBFBD>w binarnych
|
||||
// tworzenie plików binarnych
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::iConvertModels;
|
||||
}
|
||||
@@ -595,13 +596,13 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else if (token == "slowmotion")
|
||||
{
|
||||
// tworzenie plik<EFBFBD>w binarnych
|
||||
// tworzenie plików binarnych
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::iSlowMotionMask;
|
||||
}
|
||||
else if (token == "modifytga")
|
||||
{
|
||||
// czy korygowa<EFBFBD> pliki TGA dla szybszego wczytywania
|
||||
// czy korygować pliki TGA dla szybszego wczytywania
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::iModifyTGA;
|
||||
}
|
||||
@@ -621,14 +622,14 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else if (token == "rollfix")
|
||||
{
|
||||
// Ra: poprawianie przechy<EFBFBD>ki, aby wewn<EFBFBD>trzna szyna by<EFBFBD>a "pozioma"
|
||||
// Ra: poprawianie przechyłki, aby wewnętrzna szyna była "pozioma"
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
Global::bRollFix = (token == "yes");
|
||||
}
|
||||
else if (token == "fpsaverage")
|
||||
{
|
||||
// oczekiwana wartos<EFBFBD> FPS
|
||||
// oczekiwana wartość FPS
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::fFpsAverage;
|
||||
}
|
||||
@@ -640,85 +641,85 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else if (token == "fpsradiusmax")
|
||||
{
|
||||
// maksymalny promie<EFBFBD> renderowania
|
||||
// maksymalny promień renderowania
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::fFpsRadiusMax;
|
||||
}
|
||||
else if (token == "calibratein")
|
||||
{
|
||||
// parametry kalibracji wej<EFBFBD><EFBFBD>
|
||||
// parametry kalibracji wejść
|
||||
Parser.getTokens(1, false);
|
||||
int in;
|
||||
Parser >> in;
|
||||
if ((in < 0) || (in > 5))
|
||||
{
|
||||
in = 5; // na ostatni, bo i tak trzeba pomin<EFBFBD><EFBFBD> warto<EFBFBD>ci
|
||||
in = 5; // na ostatni, bo i tak trzeba pominąć wartości
|
||||
}
|
||||
Parser.getTokens(4, false);
|
||||
Parser >> Global::fCalibrateIn[in][0] // wyraz wolny
|
||||
>> Global::fCalibrateIn[in][1] // mno<EFBFBD>nik
|
||||
>> Global::fCalibrateIn[in][2] // mno<EFBFBD>nik dla kwadratu
|
||||
>> Global::fCalibrateIn[in][3]; // mno<EFBFBD>nik dla sze<EFBFBD>cianu
|
||||
Global::fCalibrateIn[in][4] = 0.0; // mno<EFBFBD>nik 4 pot<EFBFBD>gi
|
||||
Global::fCalibrateIn[in][5] = 0.0; // mno<EFBFBD>nik 5 pot<EFBFBD>gi
|
||||
>> Global::fCalibrateIn[in][1] // mnożnik
|
||||
>> Global::fCalibrateIn[in][2] // mnożnik dla kwadratu
|
||||
>> Global::fCalibrateIn[in][3]; // mnożnik dla sześcianu
|
||||
Global::fCalibrateIn[in][4] = 0.0; // mnożnik 4 potęgi
|
||||
Global::fCalibrateIn[in][5] = 0.0; // mnożnik 5 potęgi
|
||||
}
|
||||
else if (token == "calibrate5din")
|
||||
{
|
||||
// parametry kalibracji wej<EFBFBD><EFBFBD>
|
||||
// parametry kalibracji wejść
|
||||
Parser.getTokens(1, false);
|
||||
int in;
|
||||
Parser >> in;
|
||||
if ((in < 0) || (in > 5))
|
||||
{
|
||||
in = 5; // na ostatni, bo i tak trzeba pomin<EFBFBD><EFBFBD> warto<EFBFBD>ci
|
||||
in = 5; // na ostatni, bo i tak trzeba pominąć wartości
|
||||
}
|
||||
Parser.getTokens(6, false);
|
||||
Parser >> Global::fCalibrateIn[in][0] // wyraz wolny
|
||||
>> Global::fCalibrateIn[in][1] // mno<EFBFBD>nik
|
||||
>> Global::fCalibrateIn[in][2] // mno<EFBFBD>nik dla kwadratu
|
||||
>> Global::fCalibrateIn[in][3] // mno<EFBFBD>nik dla sze<EFBFBD>cianu
|
||||
>> Global::fCalibrateIn[in][4] // mno<EFBFBD>nik 4 pot<EFBFBD>gi
|
||||
>> Global::fCalibrateIn[in][5]; // mno<EFBFBD>nik 5 pot<EFBFBD>gi
|
||||
>> Global::fCalibrateIn[in][1] // mnożnik
|
||||
>> Global::fCalibrateIn[in][2] // mnożnik dla kwadratu
|
||||
>> Global::fCalibrateIn[in][3] // mnożnik dla sześcianu
|
||||
>> Global::fCalibrateIn[in][4] // mnożnik 4 potęgi
|
||||
>> Global::fCalibrateIn[in][5]; // mnożnik 5 potęgi
|
||||
}
|
||||
else if (token == "calibrateout")
|
||||
{
|
||||
// parametry kalibracji wyj<EFBFBD><EFBFBD>
|
||||
// parametry kalibracji wyjść
|
||||
Parser.getTokens(1, false);
|
||||
int out;
|
||||
Parser >> out;
|
||||
if ((out < 0) || (out > 6))
|
||||
{
|
||||
out = 6; // na ostatni, bo i tak trzeba pomin<EFBFBD><EFBFBD> warto<EFBFBD>ci
|
||||
out = 6; // na ostatni, bo i tak trzeba pominąć wartości
|
||||
}
|
||||
Parser.getTokens(4, false);
|
||||
Parser >> Global::fCalibrateOut[out][0] // wyraz wolny
|
||||
>> Global::fCalibrateOut[out][1] // mno<EFBFBD>nik liniowy
|
||||
>> Global::fCalibrateOut[out][2] // mno<EFBFBD>nik dla kwadratu
|
||||
>> Global::fCalibrateOut[out][3]; // mno<EFBFBD>nik dla sze<EFBFBD>cianu
|
||||
Global::fCalibrateOut[out][4] = 0.0; // mno<EFBFBD>nik dla 4 pot<EFBFBD>gi
|
||||
Global::fCalibrateOut[out][5] = 0.0; // mno<EFBFBD>nik dla 5 pot<EFBFBD>gi
|
||||
>> Global::fCalibrateOut[out][1] // mnożnik liniowy
|
||||
>> Global::fCalibrateOut[out][2] // mnożnik dla kwadratu
|
||||
>> Global::fCalibrateOut[out][3]; // mnożnik dla sześcianu
|
||||
Global::fCalibrateOut[out][4] = 0.0; // mnożnik dla 4 potęgi
|
||||
Global::fCalibrateOut[out][5] = 0.0; // mnożnik dla 5 potęgi
|
||||
}
|
||||
else if (token == "calibrate5dout")
|
||||
{
|
||||
// parametry kalibracji wyj<EFBFBD><EFBFBD>
|
||||
// parametry kalibracji wyjść
|
||||
Parser.getTokens(1, false);
|
||||
int out;
|
||||
Parser >> out;
|
||||
if ((out < 0) || (out > 6))
|
||||
{
|
||||
out = 6; // na ostatni, bo i tak trzeba pomin<EFBFBD><EFBFBD> warto<EFBFBD>ci
|
||||
out = 6; // na ostatni, bo i tak trzeba pominąć wartości
|
||||
}
|
||||
Parser.getTokens(6, false);
|
||||
Parser >> Global::fCalibrateOut[out][0] // wyraz wolny
|
||||
>> Global::fCalibrateOut[out][1] // mno<EFBFBD>nik liniowy
|
||||
>> Global::fCalibrateOut[out][2] // mno<EFBFBD>nik dla kwadratu
|
||||
>> Global::fCalibrateOut[out][3] // mno<EFBFBD>nik dla sze<EFBFBD>cianu
|
||||
>> Global::fCalibrateOut[out][4] // mno<EFBFBD>nik dla 4 pot<EFBFBD>gi
|
||||
>> Global::fCalibrateOut[out][5]; // mno<EFBFBD>nik dla 5 pot<EFBFBD>gi
|
||||
>> Global::fCalibrateOut[out][1] // mnożnik liniowy
|
||||
>> Global::fCalibrateOut[out][2] // mnożnik dla kwadratu
|
||||
>> Global::fCalibrateOut[out][3] // mnożnik dla sześcianu
|
||||
>> Global::fCalibrateOut[out][4] // mnożnik dla 4 potęgi
|
||||
>> Global::fCalibrateOut[out][5]; // mnożnik dla 5 potęgi
|
||||
}
|
||||
else if (token == "calibrateoutmaxvalues")
|
||||
{
|
||||
// maksymalne warto<EFBFBD>ci jakie mo<EFBFBD>na wy<EFBFBD>wietli<EFBFBD> na mierniku
|
||||
// maksymalne wartości jakie można wyświetlić na mierniku
|
||||
Parser.getTokens(7, false);
|
||||
Parser >> Global::fCalibrateOutMax[0] >> Global::fCalibrateOutMax[1] >>
|
||||
Global::fCalibrateOutMax[2] >> Global::fCalibrateOutMax[3] >>
|
||||
@@ -727,13 +728,13 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else if (token == "calibrateoutdebuginfo")
|
||||
{
|
||||
// wyj<EFBFBD>cie z info o przebiegu kalibracji
|
||||
// wyjście z info o przebiegu kalibracji
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::iCalibrateOutDebugInfo;
|
||||
}
|
||||
else if (token == "pwm")
|
||||
{
|
||||
// zmiana numer<EFBFBD>w wyj<EFBFBD><EFBFBD> PWM
|
||||
// zmiana numerów wyjść PWM
|
||||
Parser.getTokens(2, false);
|
||||
int pwm_out, pwm_no;
|
||||
Parser >> pwm_out >> pwm_no;
|
||||
@@ -747,33 +748,33 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
else if (token == "joinduplicatedevents")
|
||||
{
|
||||
// czy grupowa<EFBFBD> eventy o tych samych nazwach
|
||||
// czy grupować eventy o tych samych nazwach
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
Global::bJoinEvents = (token == "yes");
|
||||
}
|
||||
else if (token == "hiddenevents")
|
||||
{
|
||||
// czy <EFBFBD><EFBFBD>czy<EFBFBD> eventy z torami poprzez nazw<EFBFBD> toru
|
||||
// czy łączyć eventy z torami poprzez nazwę toru
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::iHiddenEvents;
|
||||
}
|
||||
else if (token == "pause")
|
||||
{
|
||||
// czy po wczytaniu ma by<EFBFBD> pauza?
|
||||
// czy po wczytaniu ma być pauza?
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
iPause |= (token == "yes" ? 1 : 0);
|
||||
}
|
||||
else if (token == "lang")
|
||||
{
|
||||
// domy<EFBFBD>lny j<EFBFBD>zyk - http://tools.ietf.org/html/bcp47
|
||||
// domyślny język - http://tools.ietf.org/html/bcp47
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::asLang;
|
||||
}
|
||||
else if (token == "opengl")
|
||||
{
|
||||
// deklarowana wersja OpenGL, <EFBFBD>eby powstrzyma<EFBFBD> b<EFBFBD><EFBFBD>dy
|
||||
// deklarowana wersja OpenGL, żeby powstrzymać błędy
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> Global::fOpenGL;
|
||||
}
|
||||
@@ -794,7 +795,7 @@ void Global::ConfigParse(cParser &Parser)
|
||||
}
|
||||
// maciek001: ustawienia MWD
|
||||
else if (token == "mwddebug")
|
||||
{ // czy w<EFBFBD><EFBFBD>czy<EFBFBD> obs<EFBFBD>ug<EFBFBD> hamulc<EFBFBD>w
|
||||
{ // czy włączyć obslugę hamulców
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
bMWDdebugEnable = (token == "yes");
|
||||
@@ -807,14 +808,14 @@ void Global::ConfigParse(cParser &Parser)
|
||||
WriteLog("PortName " + sMWDPortId);
|
||||
}
|
||||
else if (token == "mwdbaudrate")
|
||||
{ // pobierz pr<EFBFBD>dko<EFBFBD><EFBFBD> transmisji danych
|
||||
{ // pobierz prędkość transmisji danych
|
||||
Parser.getTokens(1, false);
|
||||
Parser >> iMWDBaudrate;
|
||||
if (bMWDdebugEnable)
|
||||
WriteLog("PortName " + to_string(iMWDBaudrate));
|
||||
}
|
||||
else if (token == "mwdbreakenable")
|
||||
{ // czy w<EFBFBD><EFBFBD>czy<EFBFBD> obs<EFBFBD>ug<EFBFBD> hamulc<EFBFBD>w
|
||||
{ // czy włączyć obsługę hamulców
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
bMWDBreakEnable = (token == "yes");
|
||||
@@ -825,18 +826,18 @@ void Global::ConfigParse(cParser &Parser)
|
||||
Parser >> token;
|
||||
bMWDInputDataEnable = (token == "yes");
|
||||
}
|
||||
else if (token == "mwdbreak") // warto<EFBFBD><EFBFBD> max dla potencjometru hamulca zasadniczego
|
||||
else if (token == "mwdbreak") // wartość max dla potencjometru hamulca zasadniczego
|
||||
{
|
||||
Parser.getTokens();
|
||||
Parser >> token;
|
||||
int i = stol_def(token, -1); // numer wej<EFBFBD>cia
|
||||
int i = stol_def(token, -1); // numer wej�cia
|
||||
if ((i >= 0) || (i <= 1))
|
||||
{
|
||||
Parser.getTokens(3, false);
|
||||
Parser >> fMWDAnalogCalib[i][0] // max -> 2^16 -1
|
||||
>> fMWDAnalogCalib[i][1] // min -> 0
|
||||
>>
|
||||
fMWDAnalogCalib[i][2]; // rozdzielczo<EFBFBD><EFBFBD> -> 255 maksymalna mo<EFBFBD>liwa warto<EFBFBD><EFBFBD> z ADC
|
||||
fMWDAnalogCalib[i][2]; // rozdzielczość -> 255 maksymalna możliwa wartość z ADC
|
||||
if (bMWDdebugEnable)
|
||||
WriteLog("Break settings " + to_string(i) + ": " +
|
||||
to_string(fMWDAnalogCalib[i][0]) + " " +
|
||||
@@ -881,47 +882,47 @@ void Global::ConfigParse(cParser &Parser)
|
||||
WriteLog("Amp settings: " + to_string(fMWDamp[0]) + " " + to_string(fMWDamp[1]));
|
||||
}
|
||||
} while ((token != "") && (token != "endconfig")); //(!Parser->EndOfFile)
|
||||
// na koniec troch<EFBFBD> zale<EFBFBD>no<EFBFBD>ci
|
||||
if (!bLoadTraction) // wczytywanie drut<EFBFBD>w i s<EFBFBD>up<EFBFBD>w
|
||||
{ // tutaj wy<EFBFBD><EFBFBD>czenie, bo mog<EFBFBD> nie by<EFBFBD> zdefiniowane w INI
|
||||
bEnableTraction = false; // false = pantograf si<EFBFBD> nie po<EFBFBD>amie
|
||||
bLiveTraction = false; // false = pantografy zawsze zbieraj<EFBFBD> 95% MaxVoltage
|
||||
// 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 <EFBFBD>wiat<EFBFBD>o ruchome
|
||||
// if (fOpenGL<1.3) iMultisampling=0; //mo<EFBFBD>na by z g<EFBFBD>ry wy<EFBFBD><EFBFBD>czy<EFBFBD>, ale nie mamy jeszcze fOpenGL
|
||||
// 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<EFBFBD>oekranowy wy<EFBFBD><EFBFBD>cza rozmywanie drut<EFBFBD>w
|
||||
{ // antyaliasing całoekranowy wyłącza rozmywanie drutów
|
||||
bSmoothTraction = false;
|
||||
}
|
||||
if (iMultiplayer > 0)
|
||||
{
|
||||
bInactivePause = false; // okno "w tle" nie mo<EFBFBD>e pauzowa<EFBFBD>, je<EFBFBD>li w<EFBFBD><EFBFBD>czona komunikacja
|
||||
// pauzowanie jest zablokowane dla (iMultiplayer&2)>0, wi<EFBFBD>c iMultiplayer=1 da si<EFBFBD> zapauzowa<EFBFBD>
|
||||
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<EFBFBD>rej promie<EFBFBD> scenerii b<EFBFBD>dzie zmniejszany
|
||||
fFpsDeviation; // dolna granica FPS, przy której promień scenerii będzie zmniejszany
|
||||
fFpsMax = fFpsAverage +
|
||||
fFpsDeviation; // g<EFBFBD>rna granica FPS, przy kt<EFBFBD>rej promie<EFBFBD> scenerii b<EFBFBD>dzie zwi<EFBFBD>kszany
|
||||
fFpsDeviation; // górna granica FPS, przy której promień scenerii będzie zwiększany
|
||||
if (iPause)
|
||||
iTextMode = VK_F1; // jak pauza, to pokaza<EFBFBD> zegar
|
||||
iTextMode = VK_F1; // jak pauza, to pokazać zegar
|
||||
/* this won't execute anymore with the old parser removed
|
||||
// TBD: remove, or launch depending on passed flag?
|
||||
if (qp)
|
||||
{ // to poni<EFBFBD>ej wykonywane tylko raz, jedynie po wczytaniu eu07.ini
|
||||
{ // 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<EFBFBD> renderowania 3000.0 -> 225
|
||||
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<EFBFBD>ci wi<EFBFBD>kszych ni<EFBFBD> bazowa
|
||||
fDistanceFactor; // fDistanceFactor>1.0 dla rozdzielczości większych niż bazowa
|
||||
fDistanceFactor *=
|
||||
(iMultisampling + 1.0) *
|
||||
fDistanceFactor; // do kwadratu, bo wi<EFBFBD>kszo<EFBFBD><EFBFBD> odleg<EFBFBD>o<EFBFBD>ci to ich kwadraty
|
||||
fDistanceFactor; // do kwadratu, bo większość odległości to ich kwadraty
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -931,7 +932,7 @@ void Global::InitKeys(std::string asFileName)
|
||||
{
|
||||
// if (FileExists(asFileName))
|
||||
// {
|
||||
// Error("Chwilowo plik keys.ini nie jest obs<EFBFBD>ugiwany. <EFBFBD>aduj<EFBFBD> standardowe
|
||||
// Error("Chwilowo plik keys.ini nie jest obsługiwany. Ładuję standardowe
|
||||
// ustawienia.\nKeys.ini file is temporarily not functional, loading default keymap...");
|
||||
/* TQueryParserComp *Parser;
|
||||
Parser=new TQueryParserComp(NULL);
|
||||
@@ -1064,7 +1065,7 @@ void Global::SetCameraPosition(vector3 pNewCameraPosition)
|
||||
}
|
||||
|
||||
void Global::SetCameraRotation(double Yaw)
|
||||
{ // ustawienie bezwzgl<EFBFBD>dnego kierunku kamery z korekcj<EFBFBD> do przedzia<EFBFBD>u <-M_PI,M_PI>
|
||||
{ // ustawienie bezwzględnego kierunku kamery z korekcją do przedziału <-M_PI,M_PI>
|
||||
pCameraRotation = Yaw;
|
||||
while (pCameraRotation < -M_PI)
|
||||
pCameraRotation += 2 * M_PI;
|
||||
@@ -1074,7 +1075,7 @@ void Global::SetCameraRotation(double Yaw)
|
||||
}
|
||||
|
||||
void Global::BindTexture(GLuint t)
|
||||
{ // ustawienie aktualnej tekstury, tylko gdy si<EFBFBD> zmienia
|
||||
{ // ustawienie aktualnej tekstury, tylko gdy się zmienia
|
||||
if (t != iTextureId)
|
||||
{
|
||||
iTextureId = t;
|
||||
@@ -1082,18 +1083,18 @@ void Global::BindTexture(GLuint t)
|
||||
};
|
||||
|
||||
void Global::TrainDelete(TDynamicObject *d)
|
||||
{ // usuni<EFBFBD>cie pojazdu prowadzonego przez u<EFBFBD>ytkownika
|
||||
{ // usunięcie pojazdu prowadzonego przez użytkownika
|
||||
if (pWorld)
|
||||
pWorld->TrainDelete(d);
|
||||
};
|
||||
|
||||
TDynamicObject *Global::DynamicNearest()
|
||||
{ // ustalenie pojazdu najbli<EFBFBD>szego kamerze
|
||||
{ // ustalenie pojazdu najbliższego kamerze
|
||||
return pGround->DynamicNearest(pCamera->Pos);
|
||||
};
|
||||
|
||||
TDynamicObject *Global::CouplerNearest()
|
||||
{ // ustalenie pojazdu najbli<EFBFBD>szego kamerze
|
||||
{ // ustalenie pojazdu najbliższego kamerze
|
||||
return pGround->CouplerNearest(pCamera->Pos);
|
||||
};
|
||||
|
||||
@@ -1104,7 +1105,7 @@ bool Global::AddToQuery(TEvent *event, TDynamicObject *who)
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
bool Global::DoEvents()
|
||||
{ // wywo<EFBFBD>ywa<EFBFBD> czasem, <EFBFBD>eby nie robi<EFBFBD> wra<EFBFBD>enia zawieszonego
|
||||
{ // wywoływać czasem, żeby nie robił wrażenia zawieszonego
|
||||
MSG msg;
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
|
||||
{
|
||||
@@ -1119,146 +1120,146 @@ bool Global::DoEvents()
|
||||
|
||||
TTranscripts::TTranscripts()
|
||||
{
|
||||
iCount = 0; // brak linijek do wy<EFBFBD>wietlenia
|
||||
iStart = 0; // wype<EFBFBD>nia<EFBFBD> od linijki 0
|
||||
iCount = 0; // brak linijek do wyświetlenia
|
||||
iStart = 0; // wypełniać od linijki 0
|
||||
for (int i = 0; i < MAX_TRANSCRIPTS; ++i)
|
||||
{ // to do konstruktora mo<EFBFBD>na by da<EFBFBD>
|
||||
{ // to do konstruktora można by dać
|
||||
aLines[i].fHide = -1.0; // wolna pozycja (czas symulacji, 360.0 to doba)
|
||||
aLines[i].iNext = -1; // nie ma kolejnej
|
||||
}
|
||||
fRefreshTime = 360.0; // warto<EFBFBD>c zaporowa
|
||||
fRefreshTime = 360.0; // wartośc zaporowa
|
||||
};
|
||||
TTranscripts::~TTranscripts(){};
|
||||
void TTranscripts::AddLine(char const *txt, float show, float hide, bool it)
|
||||
{ // dodanie linii do tabeli, (show) i (hide) w [s] od aktualnego czasu
|
||||
if (show == hide)
|
||||
return; // komentarz jest ignorowany
|
||||
show = Global::fTimeAngleDeg + show / 240.0; // je<EFBFBD>li doba to 360, to 1s b<EFBFBD>dzie r<EFBFBD>wne 1/240
|
||||
show = Global::fTimeAngleDeg + show / 240.0; // jeśli doba to 360, to 1s będzie równe 1/240
|
||||
hide = Global::fTimeAngleDeg + hide / 240.0;
|
||||
int i = iStart, j, k; // od czego<EFBFBD> trzeba zacz<EFBFBD><EFBFBD>
|
||||
int i = iStart, j, k; // od czegoś trzeba zacząć
|
||||
while ((aLines[i].iNext >= 0) ? (aLines[aLines[i].iNext].fShow <= show) :
|
||||
false) // p<EFBFBD>ki nie koniec i wcze<EFBFBD>niej puszczane
|
||||
i = aLines[i].iNext; // przej<EFBFBD>cie do kolejnej linijki
|
||||
//(i) wskazuje na lini<EFBFBD>, po kt<EFBFBD>rej nale<EFBFBD>y wstawi<EFBFBD> dany tekst, chyba <EFBFBD>e
|
||||
false) // póki nie koniec i wcześniej puszczane
|
||||
i = aLines[i].iNext; // przejście do kolejnej linijki
|
||||
//(i) wskazuje na linię, po której należy wstawić dany tekst, chyba że
|
||||
while (txt ? *txt : false)
|
||||
for (j = 0; j < MAX_TRANSCRIPTS; ++j)
|
||||
if (aLines[j].fHide < 0.0)
|
||||
{ // znaleziony pierwszy wolny
|
||||
aLines[j].iNext = aLines[i].iNext; // dotychczasowy nast<EFBFBD>pny b<EFBFBD>dzie za nowym
|
||||
if (aLines[iStart].fHide < 0.0) // je<EFBFBD>li tablica jest pusta
|
||||
iStart = j; // fHide trzeba sprawdzi<EFBFBD> przed ewentualnym nadpisaniem, gdy i=j=0
|
||||
aLines[j].iNext = aLines[i].iNext; // dotychczasowy następny będzie za nowym
|
||||
if (aLines[iStart].fHide < 0.0) // jeśli tablica jest pusta
|
||||
iStart = j; // fHide trzeba sprawdzić przed ewentualnym nadpisaniem, gdy i=j=0
|
||||
else
|
||||
aLines[i].iNext = j; // a nowy b<EFBFBD>dzie za tamtym wcze<EFBFBD>niejszym
|
||||
aLines[j].fShow = show; // wy<EFBFBD>wietla<EFBFBD> od
|
||||
aLines[j].fHide = hide; // wy<EFBFBD>wietla<EFBFBD> do
|
||||
aLines[i].iNext = j; // a nowy będzie za tamtym wcześniejszym
|
||||
aLines[j].fShow = show; // wyświetlać od
|
||||
aLines[j].fHide = hide; // wyświetlać do
|
||||
aLines[j].bItalic = it;
|
||||
aLines[j].asText = std::string(txt); // bez sensu, wystarczy<EFBFBD>by wska<EFBFBD>nik
|
||||
aLines[j].asText = std::string(txt); // bez sensu, wystarczyłby wskaźnik
|
||||
if ((k = aLines[j].asText.find("|")) != std::string::npos)
|
||||
{ // jak jest podzia<EFBFBD> linijki na wiersze
|
||||
{ // jak jest podział linijki na wiersze
|
||||
aLines[j].asText = aLines[j].asText.substr(0, k - 1);
|
||||
txt += k;
|
||||
i = j; // kolejna linijka dopisywana b<EFBFBD>dzie na koniec w<EFBFBD>a<EFBFBD>nie dodanej
|
||||
i = j; // kolejna linijka dopisywana będzie na koniec właśnie dodanej
|
||||
}
|
||||
else
|
||||
txt = NULL; // koniec dodawania
|
||||
if (fRefreshTime > show) // je<EFBFBD>li od<EFBFBD>wie<EFBFBD>acz ustawiony jest na p<EFBFBD><EFBFBD>niej
|
||||
fRefreshTime = show; // to od<EFBFBD>wie<EFBFBD>y<EFBFBD> wcze<EFBFBD>niej
|
||||
break; // wi<EFBFBD>cej ju<EFBFBD> nic
|
||||
if (fRefreshTime > show) // jeśli odświeżacz ustawiony jest na później
|
||||
fRefreshTime = show; // to odświeżyć wcześniej
|
||||
break; // więcej już nic
|
||||
}
|
||||
};
|
||||
void TTranscripts::Add(char const *txt, float len, bool backgorund)
|
||||
{ // dodanie tekst<EFBFBD>w, d<EFBFBD>ugo<EFBFBD><EFBFBD> d<EFBFBD>wi<EFBFBD>ku, czy istotne
|
||||
{ // dodanie tekstów, długość dźwięku, czy istotne
|
||||
if (!txt)
|
||||
return; // pusty tekst
|
||||
int i = 0, j = int(0.5 + 10.0 * len); //[0.1s]
|
||||
if (*txt == '[')
|
||||
{ // powinny by<EFBFBD> dwa nawiasy
|
||||
{ // powinny być dwa nawiasy
|
||||
while (*++txt ? *txt != ']' : false)
|
||||
if ((*txt >= '0') && (*txt <= '9'))
|
||||
i = 10 * i + int(*txt - '0'); // pierwsza liczba a<EFBFBD> do ]
|
||||
i = 10 * i + int(*txt - '0'); // pierwsza liczba aż do ]
|
||||
if (*txt ? *++txt == '[' : false)
|
||||
{
|
||||
j = 0; // drugi nawias okre<EFBFBD>la czas zako<EFBFBD>czenia wy<EFBFBD>wietlania
|
||||
j = 0; // drugi nawias określa czas zakończenia wyświetlania
|
||||
while (*++txt ? *txt != ']' : false)
|
||||
if ((*txt >= '0') && (*txt <= '9'))
|
||||
j = 10 * j + int(*txt - '0'); // druga liczba a<EFBFBD> do ]
|
||||
j = 10 * j + int(*txt - '0'); // druga liczba aż do ]
|
||||
if (*txt)
|
||||
++txt; // pomini<EFBFBD>cie drugiego ]
|
||||
++txt; // pominięcie drugiego ]
|
||||
}
|
||||
}
|
||||
AddLine(txt, 0.1 * i, 0.1 * j, false);
|
||||
};
|
||||
void TTranscripts::Update()
|
||||
{ // usuwanie niepotrzebnych (nie cz<EFBFBD><EFBFBD>ciej ni<EFBFBD> 10 razy na sekund<EFBFBD>)
|
||||
{ // usuwanie niepotrzebnych (nie częściej niż 10 razy na sekundę)
|
||||
if (fRefreshTime > Global::fTimeAngleDeg)
|
||||
return; // nie czas jeszcze na zmiany
|
||||
// czas od<EFBFBD>wie<EFBFBD>enia mo<EFBFBD>na ustali<EFBFBD> wg tabelki, kiedy co<EFBFBD> si<EFBFBD> w niej zmienia
|
||||
fRefreshTime = Global::fTimeAngleDeg + 360.0; // warto<EFBFBD><EFBFBD> zaporowa
|
||||
int i = iStart, j = -1; // od czego<EFBFBD> trzeba zacz<EFBFBD><EFBFBD>
|
||||
bool change = false; // czy zmienia<EFBFBD> napisy?
|
||||
// czas odświeżenia można ustalić wg tabelki, kiedy coś się w niej zmienia
|
||||
fRefreshTime = Global::fTimeAngleDeg + 360.0; // wartość zaporowa
|
||||
int i = iStart, j = -1; // od czegoś trzeba zacząć
|
||||
bool change = false; // czy zmieniać napisy?
|
||||
do
|
||||
{
|
||||
if (aLines[i].fHide >= 0.0) // o ile aktywne
|
||||
if (aLines[i].fHide < Global::fTimeAngleDeg)
|
||||
{ // gdy czas wy<EFBFBD>wietlania up<EFBFBD>yn<EFBFBD><EFBFBD>
|
||||
aLines[i].fHide = -1.0; // teraz b<EFBFBD>dzie woln<EFBFBD> pozycj<EFBFBD>
|
||||
{ // gdy czas wyświetlania upłynął
|
||||
aLines[i].fHide = -1.0; // teraz będzie wolną pozycją
|
||||
if (i == iStart)
|
||||
iStart = aLines[i].iNext >= 0 ? aLines[i].iNext : 0; // przestawienie pierwszego
|
||||
else if (j >= 0)
|
||||
aLines[j].iNext = aLines[i].iNext; // usuni<EFBFBD>cie ze <EFBFBD>rodka
|
||||
aLines[j].iNext = aLines[i].iNext; // usunięcie ze środka
|
||||
change = true;
|
||||
}
|
||||
else
|
||||
{ // gdy ma by<EFBFBD> pokazane
|
||||
if (aLines[i].fShow > Global::fTimeAngleDeg) // b<EFBFBD>dzie pokazane w przysz<EFBFBD>o<EFBFBD>ci
|
||||
if (fRefreshTime > aLines[i].fShow) // a nie ma nic wcze<EFBFBD>niej
|
||||
{ // gdy ma być pokazane
|
||||
if (aLines[i].fShow > Global::fTimeAngleDeg) // będzie pokazane w przyszłości
|
||||
if (fRefreshTime > aLines[i].fShow) // a nie ma nic wcześniej
|
||||
fRefreshTime = aLines[i].fShow;
|
||||
if (fRefreshTime > aLines[i].fHide)
|
||||
fRefreshTime = aLines[i].fHide;
|
||||
}
|
||||
// mo<EFBFBD>na by jeszcze wykrywa<EFBFBD>, kt<EFBFBD>re nowe maj<EFBFBD> by<EFBFBD> pokazane
|
||||
// można by jeszcze wykrywać, które nowe mają być pokazane
|
||||
j = i;
|
||||
i = aLines[i].iNext; // kolejna linijka
|
||||
} while (i >= 0); // p<EFBFBD>ki po tablicy
|
||||
change = true; // bo na razie nie ma warunku, <EFBFBD>e co<EFBFBD> si<EFBFBD> doda<EFBFBD>o
|
||||
} while (i >= 0); // póki po tablicy
|
||||
change = true; // bo na razie nie ma warunku, że coś się dodało
|
||||
if (change)
|
||||
{ // aktualizacja linijek ekranowych
|
||||
i = iStart;
|
||||
j = -1;
|
||||
do
|
||||
{
|
||||
if (aLines[i].fHide > 0.0) // je<EFBFBD>li nie ukryte
|
||||
if (aLines[i].fShow < Global::fTimeAngleDeg) // to dodanie linijki do wy<EFBFBD>wietlania
|
||||
if (aLines[i].fHide > 0.0) // jeśli nie ukryte
|
||||
if (aLines[i].fShow < Global::fTimeAngleDeg) // to dodanie linijki do wyświetlania
|
||||
if (j < 5 - 1) // ograniczona liczba linijek
|
||||
Global::asTranscript[++j] = aLines[i].asText; // skopiowanie tekstu
|
||||
i = aLines[i].iNext; // kolejna linijka
|
||||
} while (i >= 0); // p<EFBFBD>ki po tablicy
|
||||
} while (i >= 0); // póki po tablicy
|
||||
for (++j; j < 5; ++j)
|
||||
Global::asTranscript[j] = ""; // i czyszczenie nieu<EFBFBD>ywanych linijek
|
||||
Global::asTranscript[j] = ""; // i czyszczenie nieużywanych linijek
|
||||
}
|
||||
};
|
||||
|
||||
// Ra: tymczasowe rozwi<EFBFBD>zanie kwestii zagranicznych (czeskich) napis<EFBFBD>w
|
||||
// Ra: tymczasowe rozwiązanie kwestii zagranicznych (czeskich) napisów
|
||||
char bezogonkowo[] = "E?,?\"_++?%S<STZZ?`'\"\".--??s>stzz"
|
||||
"<EFBFBD>^^L$A|S^CS<--RZo<EFBFBD>,l'uP.,as>L\"lz"
|
||||
" ^^L$A|S^CS<--RZo±,l'uP.,as>L\"lz"
|
||||
"RAAAALCCCEEEEIIDDNNOOOOxRUUUUYTB"
|
||||
"raaaalccceeeeiiddnnoooo-ruuuuyt?";
|
||||
|
||||
std::string Global::Bezogonkow(std::string str, bool _)
|
||||
{ // wyci<EFBFBD>cie liter z ogonkami, bo OpenGL nie umie wy<EFBFBD>wietli<EFBFBD>
|
||||
for (unsigned int i = 1; i < str.length(); ++i)
|
||||
{ // wycięcie liter z ogonkami, bo OpenGL nie umie wyświetlić
|
||||
for (unsigned int i = 1; i <= str.length(); ++i)
|
||||
if (str[i] & 0x80)
|
||||
str[i] = bezogonkowo[str[i] & 0x7F];
|
||||
else if (str[i] < ' ') // znaki steruj<EFBFBD>ce nie s<EFBFBD> obs<EFBFBD>ugiwane
|
||||
else if (str[i] < ' ') // znaki sterujące nie są obsługiwane
|
||||
str[i] = ' ';
|
||||
else if (_)
|
||||
if (str[i] == '_') // nazwy stacji nie mog<EFBFBD> zawiera<EFBFBD> spacji
|
||||
str[i] = ' '; // wi<EFBFBD>c trzeba wy<EFBFBD>wietla<EFBFBD> inaczej
|
||||
if (str[i] == '_') // nazwy stacji nie mogą zawierać spacji
|
||||
str[i] = ' '; // więc trzeba wyświetlać inaczej
|
||||
return str;
|
||||
};
|
||||
|
||||
double Global::Min0RSpeed(double vel1, double vel2)
|
||||
{ // rozszerzenie funkcji Min0R o warto<EFBFBD>ci -1.0
|
||||
{ // rozszerzenie funkcji Min0R o wartości -1.0
|
||||
if (vel1 == -1.0)
|
||||
{
|
||||
vel1 = std::numeric_limits<double>::max();
|
||||
|
||||
Reference in New Issue
Block a user