Zmiana AnsiString na std::string. Zakończenie sprawy przypadkowo skasowanego mover.h

This commit is contained in:
firleju
2016-10-21 06:56:46 +02:00
parent ab34354584
commit 167b1e3a8d
18 changed files with 1466 additions and 306 deletions

View File

@@ -284,7 +284,7 @@ bool TSpeedPos::Update(vector3 *p, vector3 *dir, double &len)
return false;
};
AnsiString TSpeedPos::GetName()
std::string TSpeedPos::GetName()
{
if (iFlags & spTrack) // je<6A>li tor
return trTrack->NameGet();
@@ -292,12 +292,12 @@ AnsiString TSpeedPos::GetName()
return evEvent->asName;
}
AnsiString TSpeedPos::TableText()
std::string TSpeedPos::TableText()
{ // pozycja tabelki pr<70>dko<6B>ci
if (iFlags & spEnabled)
{ // o ile pozycja istotna
return "Flags=#" + IntToHex(iFlags, 8) + ", Dist=" + FloatToStrF(fDist, ffFixed, 7, 1) +
", Vel=" + AnsiString(fVelNext) + ", Name=" + GetName();
return "Flags=#" + to_hex_str(iFlags, 8) + ", Dist=" + to_string(fDist, 1, 7) +
", Vel=" + to_string(fVelNext) + ", Name=" + GetName();
//if (iFlags & spTrack) // je<6A>li tor
// return "Flags=#" + IntToHex(iFlags, 8) + ", Dist=" + FloatToStrF(fDist, ffFixed, 7, 1) +
// ", Vel=" + AnsiString(fVelNext) + ", Track=" + trTrack->NameGet();
@@ -1603,7 +1603,7 @@ TController::~TController()
CloseLog();
};
AnsiString TController::Order2Str(TOrders Order)
std::string TController::Order2Str(TOrders Order)
{ // zamiana kodu rozkazu na opis
if (Order & Change_direction)
return "Change_direction"; // mo<6D>e by<62> na<6E>o<EFBFBD>ona na inn<6E> i wtedy ma priorytet
@@ -1638,9 +1638,9 @@ AnsiString TController::Order2Str(TOrders Order)
return "Undefined!";
}
AnsiString TController::OrderCurrent()
std::string TController::OrderCurrent()
{ // pobranie aktualnego rozkazu celem wy<77>wietlenia
return AnsiString(OrderPos) + ". " + Order2Str(OrderList[OrderPos]);
return to_string(OrderPos) + ". " + Order2Str(OrderList[OrderPos]);
};
void TController::OrdersClear()
@@ -2889,8 +2889,8 @@ void TController::RecognizeCommand()
c->Command = ""; // usuni<6E>cie obs<62>u<EFBFBD>onej komendy
}
void TController::PutCommand(AnsiString NewCommand, double NewValue1, double NewValue2,
const TLocation &NewLocation, TStopReason reason)
void TController::PutCommand(std::string NewCommand, double NewValue1, double NewValue2,
const TLocation &NewLocation, TStopReason reason = stopComm)
{ // wys<79>anie komendy przez event PutValues, jak pojazd ma obsad<61>, to wysy<73>a tutaj, a nie do pojazdu
// bezpo<70>rednio
vector3 sl;
@@ -2901,8 +2901,8 @@ void TController::PutCommand(AnsiString NewCommand, double NewValue1, double New
mvOccupied->PutCommand(NewCommand, NewValue1, NewValue2, NewLocation);
}
bool TController::PutCommand(AnsiString NewCommand, double NewValue1, double NewValue2,
const vector3 *NewLocation, TStopReason reason)
bool TController::PutCommand(std::string NewCommand, double NewValue1, double NewValue2,
const vector3 *NewLocation, TStopReason reason = stopComm)
{ // analiza komendy
if (NewCommand == "CabSignal")
{ // SHP wyzwalane jest przez cz<63>on z obsad<61>, ale obs<62>ugiwane przez silnikowy
@@ -5425,7 +5425,7 @@ void TController::ControllingSet()
mvControlling = pVehicle->ControlledFind()->MoverParameters; // poszukiwanie cz<63>onu sterowanego
};
AnsiString TController::TableText(int i)
std::string TController::TableText(int i)
{ // pozycja tabelki pr<70>dko<6B>ci
i = (iFirst + i) % iSpeedTableSize; // numer pozycji
if (i != iLast) // w (iLast) znajduje si<73> kolejny tor do przeskanowania, ale nie jest ona
@@ -5475,7 +5475,7 @@ void TController::RouteSwitch(int d)
}
}
};
AnsiString TController::OwnerName()
std::string TController::OwnerName()
{
return pVehicle ? pVehicle->MoverParameters->Name : AnsiString("none");
return pVehicle ? pVehicle->MoverParameters->Name : ("none");
};

View File

@@ -146,8 +146,8 @@ class TSpeedPos
bool Update(vector3 *p, vector3 *dir, double &len);
bool Set(TEvent *e, double d, TOrders order = Wait_for_orders);
void Set(TTrack *t, double d, int f);
AnsiString TableText();
AnsiString GetName();
std::string TableText();
std::string GetName();
bool IsProperSemaphor(TOrders order = Wait_for_orders);
};
@@ -315,9 +315,9 @@ class TController
{
return TrainParams;
};
void PutCommand(AnsiString NewCommand, double NewValue1, double NewValue2,
const _mover::TLocation &NewLocation, TStopReason reason = stopComm);
bool PutCommand(AnsiString NewCommand, double NewValue1, double NewValue2,
void PutCommand(std::string NewCommand, double NewValue1, double NewValue2,
const TLocation &NewLocation, TStopReason reason = stopComm);
bool PutCommand(std::string NewCommand, double NewValue1, double NewValue2,
const vector3 *NewLocation, TStopReason reason = stopComm);
bool UpdateSituation(double dt); // uruchamiac przynajmniej raz na sekundę
// procedury dotyczace rozkazow dla maszynisty
@@ -346,11 +346,11 @@ class TController
TController(bool AI, TDynamicObject *NewControll, bool InitPsyche,
bool primary = true // czy ma aktywnie prowadzić?
);
AnsiString OrderCurrent();
std::string OrderCurrent();
void WaitingSet(double Seconds);
private:
AnsiString Order2Str(TOrders Order);
std::string Order2Str(TOrders Order);
void DirectionForward(bool forward);
int OrderDirectionChange(int newdir, TMoverParameters *Vehicle);
void Lights(int head, int rear);
@@ -397,10 +397,10 @@ class TController
};
void MoveTo(TDynamicObject *to);
void DirectionInitial();
AnsiString TableText(int i);
std::string TableText(int i);
int CrossRoute(TTrack *tr);
void RouteSwitch(int d);
AnsiString OwnerName();
std::string OwnerName();
};
#endif

View File

@@ -662,7 +662,7 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
else if (str == AnsiString("-v"))
{ // nazwa wybranego pojazdu
str = Parser->GetNextSymbol().LowerCase();
Global::asHumanCtrlVehicle = str;
Global::asHumanCtrlVehicle = str.c_str();
}
else if (str == AnsiString("-modifytga"))
{ // wykonanie modyfikacji wszystkich plików TGA
@@ -695,7 +695,7 @@ int WINAPI WinMain(HINSTANCE hInstance, // instance
if (Bpp != 32)
Bpp = 16;
// create our OpenGL window
if (!CreateGLWindow(Global::asHumanCtrlVehicle.c_str(), WindowWidth, WindowHeight, Bpp,
if (!CreateGLWindow(const_cast<char*>(Global::asHumanCtrlVehicle.c_str()), WindowWidth, WindowHeight, Bpp,
fullscreen))
return 0; // quit if window was not created
SetForegroundWindow(hWnd);

View File

@@ -84,7 +84,7 @@ class TEvent // zmienne: ev*
void Conditions(cParser *parser, AnsiString s);
public:
AnsiString asName;
std::string asName;
bool bEnabled; // false gdy ma nie byæ dodawany do kolejki (skanowanie sygna³ów)
int iQueued; // ile razy dodany do kolejki
// bool bIsHistory;

View File

@@ -24,6 +24,8 @@ http://mozilla.org/MPL/2.0/.
#include <Controls.hpp> //do odczytu daty
#include "World.h"
#include <ostream>
#include <iomanip>
#include <ctype.h>
// namespace Global {
// parametry do u¿ytku wewnêtrznego
@@ -34,23 +36,23 @@ TGround *Global::pGround = NULL;
// char Global::CreatorName3[20]="2004-2005 Adam Bugiel <ABu>";
// char Global::CreatorName4[30]="2004 Arkadiusz Œlusarczyk <Winger>";
// char Global::CreatorName5[30]="2003-2009 £ukasz Kirchner <Nbmx>";
AnsiString Global::asCurrentSceneryPath = "scenery/";
AnsiString Global::asCurrentTexturePath = AnsiString(szTexturePath);
AnsiString Global::asCurrentDynamicPath = "";
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³¹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;
AnsiString Global::asSky = "1";
std::string Global::asSky = "1";
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;
AnsiString Global::asRelease = "16.0.1172.481";
AnsiString Global::asVersion =
std::string Global::asRelease = "16.0.1172.481";
std::string Global::asVersion =
"Compilation 2016-08-24, 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
@@ -74,7 +76,7 @@ int Global::iSegmentsRendered = 90; // ilo
TCamera *Global::pCamera = NULL; // parametry kamery
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
AnsiString Global::asTranscript[5]; // napisy na ekranie (widoczne)
std::string Global::asTranscript[5]; // napisy na ekranie (widoczne)
TTranscripts Global::tranTexts; // obiekt obs³uguj¹cy stenogramy dŸwiêków na ekranie
// parametry scenerii
@@ -115,13 +117,13 @@ bool Global::bInactivePause = true; // automatyczna pauza, gdy okno nieaktywne
float Global::fMouseXScale = 1.5;
float Global::fMouseYScale = 0.2;
char Global::szSceneryFile[256] = "td.scn";
AnsiString Global::asHumanCtrlVehicle = "EU07-424";
std::string Global::asHumanCtrlVehicle = "EU07-424";
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]
AnsiString Global::asLang = "pl"; // domyœlny jêzyk - http://tools.ietf.org/html/bcp47
std::string Global::asLang = "pl"; // domyœlny jêzyk - http://tools.ietf.org/html/bcp47
// parametry wydajnoœciowe (np. regulacja FPS, szybkoœæ wczytywania)
bool Global::bAdjustScreenFreq = true;
@@ -143,7 +145,7 @@ int Global::iSlowMotionMask = -1; // maska wy
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
AnsiString Global::asTerrainModel = ""; // nazwa obiektu terenu do zapisania w pliku
std::string Global::asTerrainModel = ""; // nazwa obiektu terenu do zapisania w pliku
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órej promieñ scenerii bêdzie zmniejszany
@@ -205,7 +207,7 @@ AnsiString Global::GetNextSymbol()
return "";
};
void Global::LoadIniFile(AnsiString asFileName)
void Global::LoadIniFile(std::string asFileName)
{
int i;
for (i = 0; i < 10; ++i)
@@ -217,7 +219,7 @@ void Global::LoadIniFile(AnsiString asFileName)
fs = new TFileStream(asFileName, fmOpenRead | fmShareCompat);
if (!fs)
return;
AnsiString str = "";
std::string str = "";
int size = fs->Size;
str.SetLength(size);
fs->Read(str.c_str(), size);
@@ -342,7 +344,7 @@ void Global::ConfigParse(TQueryParserComp *qp, cParser *cp)
str = GetNextSymbol().LowerCase(); // rozszerzenie
if (str == "tga")
szDefaultExt = szTexturesTGA; // domyœlnie od TGA
// szDefaultExt=std::string(Parser->GetNextSymbol().LowerCase().c_str());
// szDefaultExt=AnsiString(Parser->GetNextSymbol().LowerCase().c_str());
}
else if (str == AnsiString("newaircouplers"))
bnewAirCouplers = (GetNextSymbol().LowerCase() == AnsiString("yes"));
@@ -573,7 +575,7 @@ void Global::ConfigParse(TQueryParserComp *qp, cParser *cp)
}
}
void Global::InitKeys(AnsiString asFileName)
void Global::InitKeys(std::string asFileName)
{
// if (FileExists(asFileName))
// {
@@ -798,7 +800,7 @@ void TTranscripts::AddLine(char *txt, float show, float hide, bool it)
aLines[j].fShow = show; // wyœwietlaæ od
aLines[j].fHide = hide; // wyœwietlaæ do
aLines[j].bItalic = it;
aLines[j].asText = AnsiString(txt); // bez sensu, wystarczy³by wskaŸnik
aLines[j].asText = std::string(txt); // bez sensu, wystarczy³by wskaŸnik
if ((k = aLines[j].asText.Pos("|")) > 0)
{ // jak jest podzia³ linijki na wiersze
aLines[j].asText = aLines[j].asText.SubString(1, k - 1);
@@ -890,9 +892,9 @@ char bezogonkowo[128] = "E?,?\"_++?%S<STZZ?`'\"\".--??s>stzz"
"RAAAALCCCEEEEIIDDNNOOOOxRUUUUYTB"
"raaaalccceeeeiiddnnoooo-ruuuuyt?";
AnsiString Global::Bezogonkow(AnsiString str, bool _)
std::string Global::Bezogonkow(std::string str, bool _)
{ // wyciêcie liter z ogonkami, bo OpenGL nie umie wyœwietliæ
for (int i = 1; i <= str.Length(); ++i)
for (int i = 1; i <= str.length(); ++i)
if (str[i] & 0x80)
str[i] = bezogonkowo[str[i] & 0x7F];
else if (str[i] < ' ') // znaki steruj¹ce nie s¹ obs³ugiwane
@@ -919,11 +921,81 @@ double Global::CutValueToRange(double min, double value, double max)
return value;
};
std::string Global::to_string(int _Val)
std::string to_string(int _Val)
{
std::ostringstream o;
o << _Val;
return o.str();
};
std::string to_string(unsigned int _Val)
{
std::ostringstream o;
o << _Val;
return o.str();
};
std::string to_string(double _Val)
{
std::ostringstream o;
o << _Val;
return o.str();
};
std::string to_string(int _Val, int precision)
{
std::ostringstream o;
o << std::fixed << std::setprecision(precision);
o << _Val;
return o.str();
};
std::string to_string(double _Val, int precision)
{
std::ostringstream o;
o << std::fixed << std::setprecision(precision);
o << _Val;
return o.str();
};
std::string to_string(int _Val, int precision, int width)
{
std::ostringstream o;
o.width(width);
o << std::fixed << std::setprecision(precision);
o << _Val;
return o.str();
};
std::string to_string(double _Val, int precision, int width)
{
std::ostringstream o;
o.width(width);
o << std::fixed << std::setprecision(precision);
o << _Val;
return o.str();
};
std::string to_hex_str(double _Val, int precision = 0, int width = 0)
{
std::ostringstream o;
if (width)
o.width(width);
o << std::fixed << std::hex;
if (precision)
o << std::setprecision(precision);
o << _Val;
return o.str();
};
std::string ToLower(std::string text)
{
std::transform(text.begin(), text.end(), text.begin(), ::tolower);
}
std::string ToUpper(std::string text)
{
std::transform(text.begin(), text.end(), text.begin(), ::toupper);
}
#pragma package(smart_init)

View File

@@ -134,7 +134,7 @@ class TTranscript
public:
float fShow; // czas pokazania
float fHide; // czas ukrycia/usuniêcia
AnsiString asText; // tekst gotowy do wyœwietlenia (usuniête znaczniki czasu)
std::string asText; // tekst gotowy do wyœwietlenia (usuniête znaczniki czasu)
bool bItalic; // czy kursywa (dŸwiêk nieistotny dla prowadz¹cego)
int iNext; // nastêpna u¿ywana linijka, ¿eby nie przestawiaæ fizycznie tabeli
};
@@ -200,13 +200,13 @@ class Global
static char CreatorName3[20];
static char CreatorName4[30];
static char CreatorName5[30];
static AnsiString asCurrentSceneryPath;
static AnsiString asCurrentTexturePath;
static AnsiString asCurrentDynamicPath;
static std::string asCurrentSceneryPath;
static std::string asCurrentTexturePath;
static std::string asCurrentDynamicPath;
// McZapkie-170602: zewnetrzna definicja pojazdu uzytkownika
static AnsiString asHumanCtrlVehicle;
static void LoadIniFile(AnsiString asFileName);
static void InitKeys(AnsiString asFileName);
static std::string asHumanCtrlVehicle;
static void LoadIniFile(std::string asFileName);
static void InitKeys(std::string asFileName);
inline static vector3 GetCameraPosition()
{
return pCameraPosition;
@@ -233,7 +233,7 @@ class Global
static TDynamicObject *changeDynObj;
static double ABuDebug;
static bool detonatoryOK;
static AnsiString asSky;
static std::string asSky;
static bool bnewAirCouplers;
// Ra: nowe zmienne globalne
static int iDefaultFiltering; // domyœlne rozmywanie tekstur TGA
@@ -250,8 +250,8 @@ class Global
static int iMultiplayer; // blokada dzia³ania niektórych eventów na rzecz kominikacji
static HWND hWnd; // uchwyt okna
static int iCameraLast;
static AnsiString asRelease; // numer
static AnsiString asVersion; // z opisem
static std::string asRelease; // numer
static std::string asVersion; // z opisem
static int
iViewMode; // co aktualnie widaæ: 0-kabina, 1-latanie, 2-sprzêgi, 3-dokumenty, 4-obwody
static GLint iMaxTextureSize; // maksymalny rozmiar tekstury
@@ -284,7 +284,7 @@ class Global
static TWorld *pWorld; // wskaŸnik na œwiat do usuwania pojazdów
static TAnimModel *pTerrainCompact; // obiekt terenu do ewentualnego zapisania w pliku
static AnsiString asTerrainModel; // nazwa obiektu terenu do zapisania w pliku
static std::string asTerrainModel; // nazwa obiektu terenu do zapisania w pliku
static bool bRollFix; // czy wykonaæ przeliczanie przechy³ki
static Queryparsercomp::TQueryParserComp *qParser;
static cParser *pParser;
@@ -306,9 +306,9 @@ class Global
static double fBrakeStep; // krok zmiany hamulca dla klawiszy [Num3] i [Num9]
static bool bJoinEvents; // czy grupowaæ eventy o tych samych nazwach
static bool bSmudge; // czy wyœwietlaæ smugê, a pojazd u¿ytkownika na koñcu
static AnsiString asTranscript[5]; // napisy na ekranie (widoczne)
static std::string asTranscript[5]; // napisy na ekranie (widoczne)
static TTranscripts tranTexts; // obiekt obs³uguj¹cy stenogramy dŸwiêków na ekranie
static AnsiString asLang; // domyœlny jêzyk - http://tools.ietf.org/html/bcp47
static std::string asLang; // domyœlny jêzyk - http://tools.ietf.org/html/bcp47
static int iHiddenEvents; // czy ³¹czyæ eventy z torami poprzez nazwê toru
static TTextSound *tsRadioBusy[10]; // zajêtoœæ kana³ów radiowych (wskaŸnik na odgrywany dŸwiêk)
static int iPoKeysPWM[7]; // numery wejϾ dla PWM
@@ -321,12 +321,23 @@ class Global
static TDynamicObject * CouplerNearest();
static bool AddToQuery(TEvent *event, TDynamicObject *who);
static bool DoEvents();
static AnsiString Bezogonkow(AnsiString str, bool _ = false);
static std::string Bezogonkow(std::string str, bool _ = false);
static double Min0RSpeed(double vel1, double vel2);
static double CutValueToRange(double min, double value, double max);
static std::string to_string(int _Val);
};
std::string to_string(int _Val);
std::string to_string(unsigned int _Val);
std::string to_string(int _Val, int precision);
std::string to_string(int _Val, int precision, int width);
std::string to_string(double _Val);
std::string to_string(double _Val, int precision);
std::string to_string(double _Val, int precision, int width);
std::string to_hex_str(int _Val, int precision, int width);
std::string ToLower(std::string text);
std::string ToUpper(std::string text);
//---------------------------------------------------------------------------
#endif

View File

@@ -1360,7 +1360,7 @@ void TGround::Free()
delete sTracks;
}
TGroundNode * TGround::DynamicFindAny(AnsiString asNameToFind)
TGroundNode * TGround::DynamicFindAny(std::string asNameToFind)
{ // wyszukanie pojazdu o podanej nazwie, szukanie po wszystkich (u¿yæ drzewa!)
for (TGroundNode *Current = nRootDynamic; Current; Current = Current->nNext)
if ((Current->asName == asNameToFind))
@@ -1368,7 +1368,7 @@ TGroundNode * TGround::DynamicFindAny(AnsiString asNameToFind)
return NULL;
};
TGroundNode * TGround::DynamicFind(AnsiString asNameToFind)
TGroundNode * TGround::DynamicFind(std::string asNameToFind)
{ // wyszukanie pojazdu z obsad¹ o podanej nazwie (u¿yæ drzewa!)
for (TGroundNode *Current = nRootDynamic; Current; Current = Current->nNext)
if (Current->DynamicObject->Mechanik)
@@ -1386,7 +1386,7 @@ void TGround::DynamicList(bool all)
WyslijString("none", 6); // informacja o koñcu listy
};
TGroundNode * TGround::FindGroundNode(AnsiString asNameToFind, TGroundNodeType iNodeType)
TGroundNode * TGround::FindGroundNode(std::string asNameToFind, TGroundNodeType iNodeType)
{ // wyszukiwanie obiektu o podanej nazwie i konkretnym typie
if ((iNodeType == TP_TRACK) || (iNodeType == TP_MEMCELL) || (iNodeType == TP_MODEL))
{ // wyszukiwanie w drzewie binarnym
@@ -2362,10 +2362,10 @@ void TGround::FirstInit()
WriteLog("FirstInit is done");
};
bool TGround::Init(AnsiString asFile, HDC hDC)
bool TGround::Init(std::string asFile, HDC hDC)
{ // g³ówne wczytywanie scenerii
if (asFile.LowerCase().SubString(1, 7) == "scenery")
asFile.Delete(1, 8); // Ra: usuniêcie niepotrzebnych znaków - zgodnoœæ wstecz z 2003
if (AnsiString(asFile.c_str()).LowerCase().SubString(1, 7) == "scenery")
AnsiString(asFile.c_str()).Delete(1, 8); // Ra: usuniêcie niepotrzebnych znaków - zgodnoœæ wstecz z 2003
WriteLog("Loading scenery from " + asFile);
Global::pGround = this;
// pTrain=NULL;
@@ -2373,8 +2373,8 @@ bool TGround::Init(AnsiString asFile, HDC hDC)
AnsiString str = "";
// TFileStream *fs;
// int size;
std::string subpath = Global::asCurrentSceneryPath.c_str(); // "scenery/";
cParser parser(asFile.c_str(), cParser::buffer_FILE, subpath, Global::bLoadTraction);
std::string subpath = Global::asCurrentSceneryPath; // "scenery/";
cParser parser(asFile, cParser::buffer_FILE, subpath, Global::bLoadTraction);
std::string token;
/*
@@ -2800,8 +2800,7 @@ bool TGround::Init(AnsiString asFile, HDC hDC)
WriteLog("Scenery sky definition");
parser.getTokens();
parser >> token;
AnsiString SkyTemp;
SkyTemp = AnsiString(token.c_str());
string SkyTemp = token;
if (Global::asSky == "1")
Global::asSky = SkyTemp;
do
@@ -4777,12 +4776,12 @@ void TGround::Navigate(String ClassName, UINT Msg, WPARAM wParam, LPARAM lParam)
SendMessage(h, Msg, wParam, lParam);
};
//--------------------------------
void TGround::WyslijEvent(const AnsiString &e, const AnsiString &d)
void TGround::WyslijEvent(const std::string &e, const std::string &d)
{ // Ra: jeszcze do wyczyszczenia
DaneRozkaz r;
r.iSygn = 'EU07';
r.iComm = 2; // 2 - event
int i = e.Length(), j = d.Length();
int i = e.length(), j = d.length();
r.cString[0] = char(i);
strcpy(r.cString + 1, e.c_str()); // zakoñczony zerem
r.cString[i + 2] = char(j); // licznik po zerze koñcz¹cym
@@ -4792,15 +4791,15 @@ void TGround::WyslijEvent(const AnsiString &e, const AnsiString &d)
cData.cbData = 12 + i + j; // 8+dwa liczniki i dwa zera koñcz¹ce
cData.lpData = &r;
Navigate("TEU07SRK", WM_COPYDATA, (WPARAM)Global::hWnd, (LPARAM)&cData);
CommLog(AnsiString(Now()) + " " + IntToStr(r.iComm) + " " + e + " sent");
CommLog(to_string(BorlandTime()) + " " + to_string(r.iComm) + " " + e + " sent");
};
//---------------------------------------------------------------------------
void TGround::WyslijUszkodzenia(const AnsiString &t, char fl)
void TGround::WyslijUszkodzenia(const std::string &t, char fl)
{ // wys³anie informacji w postaci pojedynczego tekstu
DaneRozkaz r;
r.iSygn = 'EU07';
r.iComm = 13; // numer komunikatu
int i = t.Length();
int i = t.length();
r.cString[0] = char(fl);
r.cString[1] = char(i);
strcpy(r.cString + 2, t.c_str()); // z zerem koñcz¹cym
@@ -4809,15 +4808,15 @@ void TGround::WyslijUszkodzenia(const AnsiString &t, char fl)
cData.cbData = 11 + i; // 8+licznik i zero koñcz¹ce
cData.lpData = &r;
Navigate("TEU07SRK", WM_COPYDATA, (WPARAM)Global::hWnd, (LPARAM)&cData);
CommLog(AnsiString(Now()) + " " + IntToStr(r.iComm) + " " + t + " sent");
CommLog(to_string(BorlandTime()) + " " + to_string(r.iComm) + " " + t + " sent");
};
//---------------------------------------------------------------------------
void TGround::WyslijString(const AnsiString &t, int n)
void TGround::WyslijString(const std::string &t, int n)
{ // wys³anie informacji w postaci pojedynczego tekstu
DaneRozkaz r;
r.iSygn = 'EU07';
r.iComm = n; // numer komunikatu
int i = t.Length();
int i = t.length();
r.cString[0] = char(i);
strcpy(r.cString + 1, t.c_str()); // z zerem koñcz¹cym
COPYDATASTRUCT cData;
@@ -4825,10 +4824,10 @@ void TGround::WyslijString(const AnsiString &t, int n)
cData.cbData = 10 + i; // 8+licznik i zero koñcz¹ce
cData.lpData = &r;
Navigate("TEU07SRK", WM_COPYDATA, (WPARAM)Global::hWnd, (LPARAM)&cData);
CommLog(AnsiString(Now()) + " " + IntToStr(r.iComm) + " " + t + " sent");
CommLog(to_string(BorlandTime()) + " " + to_string(r.iComm) + " " + t + " sent");
};
//---------------------------------------------------------------------------
void TGround::WyslijWolny(const AnsiString &t)
void TGround::WyslijWolny(const std::string &t)
{ // Ra: jeszcze do wyczyszczenia
WyslijString(t, 4); // tor wolny
};
@@ -4839,7 +4838,7 @@ void TGround::WyslijNamiary(TGroundNode *t)
DaneRozkaz r;
r.iSygn = 'EU07';
r.iComm = 7; // 7 - dane pojazdu
int i = 32, j = t->asName.Length();
int i = 32, j = t->asName.length();
r.iPar[0] = i; // iloϾ danych liczbowych
r.fPar[1] = Global::fTimeAngleDeg / 360.0; // aktualny czas (1.0=doba)
r.fPar[2] = t->DynamicObject->MoverParameters->Loc.X; // pozycja X
@@ -4905,7 +4904,7 @@ void TGround::WyslijNamiary(TGroundNode *t)
// WriteLog("Ramka gotowa");
Navigate("TEU07SRK", WM_COPYDATA, (WPARAM)Global::hWnd, (LPARAM)&cData);
// WriteLog("Ramka poszla!");
CommLog(AnsiString(Now()) + " " + IntToStr(r.iComm) + " " + t->asName + " sent");
CommLog(to_string(BorlandTime()) + " " + to_string(r.iComm) + " " + t->asName + " sent");
};
//
void TGround::WyslijObsadzone()
@@ -4931,13 +4930,13 @@ void TGround::WyslijObsadzone()
}
while (i <= 30)
{
strcpy(r.cString + 64 * i, AnsiString("none").c_str());
strcpy(r.cString + 64 * i, string("none").c_str());
r.fPar[16 * i + 4] = 1;
r.fPar[16 * i + 5] = 2;
r.fPar[16 * i + 6] = 3;
r.iPar[16 * i + 7] = 0;
strcpy(r.cString + 64 * i + 32, AnsiString("none").c_str());
strcpy(r.cString + 64 * i + 48, AnsiString("none").c_str());
strcpy(r.cString + 64 * i + 32, string("none").c_str());
strcpy(r.cString + 64 * i + 48, string("none").c_str());
i++;
}
@@ -4947,7 +4946,7 @@ void TGround::WyslijObsadzone()
cData.lpData = &r;
// WriteLog("Ramka gotowa");
Navigate("TEU07SRK", WM_COPYDATA, (WPARAM)Global::hWnd, (LPARAM)&cData);
CommLog(AnsiString(Now()) + " " + IntToStr(r.iComm) + " obsadzone" + " sent");
CommLog(to_string(BorlandTime()) + " " + to_string(r.iComm) + " obsadzone" + " sent");
}
//--------------------------------
@@ -5207,7 +5206,7 @@ void TGround::IsolatedBusyList()
};
//---------------------------------------------------------------------------
void TGround::IsolatedBusy(const AnsiString t)
void TGround::IsolatedBusy(const std::string t)
{ // wys³anie informacji o odcinku izolowanym (t)
// Ra 2014-06: do wyszukania u¿yæ drzewka nazw
TIsolated *Current;

View File

@@ -115,7 +115,7 @@ class TGroundNode : public Resource
TTextSound *tsStaticSound; // dźwięk przestrzenny
TGroundNode *nNode; // obiekt renderujący grupowo ma tu wskaźnik na listę obiektów
};
AnsiString asName; // nazwa (nie zawsze ma znaczenie)
std::string asName; // nazwa (nie zawsze ma znaczenie)
union
{
int iNumVerts; // dla trójkątów
@@ -156,7 +156,7 @@ class TGroundNode : public Resource
void MoveMe(vector3 pPosition); // przesuwanie (nie działa)
// bool Disable();
inline TGroundNode * Find(const AnsiString &asNameToFind, TGroundNodeType iNodeType)
inline TGroundNode * Find(const std::string &asNameToFind, TGroundNodeType iNodeType)
{ // wyszukiwanie czołgowe z typem
if ((iNodeType == iType) && (asNameToFind == asName))
return this;
@@ -302,7 +302,7 @@ class TGround
TGround();
~TGround();
void Free();
bool Init(AnsiString asFile, HDC hDC);
bool Init(std::string asFile, HDC hDC);
void FirstInit();
void InitTracks();
void InitTraction();
@@ -326,7 +326,7 @@ class TGround
};
// bool Include(TQueryParserComp *Parser);
// TGroundNode* GetVisible(AnsiString asName);
TGroundNode * GetNode(AnsiString asName);
TGroundNode * GetNode(std::string asName);
bool AddDynamic(TGroundNode *Node);
void MoveGroundNode(vector3 pPosition);
void UpdatePhys(double dt, int iter); // aktualizacja fizyki stałym krokiem
@@ -355,10 +355,10 @@ class TGround
return NULL;
}
*/
TGroundNode * DynamicFindAny(AnsiString asNameToFind);
TGroundNode * DynamicFind(AnsiString asNameToFind);
TGroundNode * DynamicFindAny(std::string asNameToFind);
TGroundNode * DynamicFind(std::string asNameToFind);
void DynamicList(bool all = false);
TGroundNode * FindGroundNode(AnsiString asNameToFind, TGroundNodeType iNodeType);
TGroundNode * FindGroundNode(std::string asNameToFind, TGroundNodeType iNodeType);
TGroundRect * GetRect(double x, double z)
{
return &Rects[GetColFromX(x) / iNumSubRects][GetRowFromZ(z) / iNumSubRects];
@@ -394,11 +394,11 @@ class TGround
public:
void WyslijEvent(const AnsiString &e, const AnsiString &d);
int iRendered; // ilość renderowanych sektorów, pobierana przy pokazywniu FPS
void WyslijString(const AnsiString &t, int n);
void WyslijWolny(const AnsiString &t);
void WyslijString(const std::string &t, int n);
void WyslijWolny(const std::string &t);
void WyslijNamiary(TGroundNode *t);
void WyslijParam(int nr, int fl);
void WyslijUszkodzenia(const AnsiString &t, char fl);
void WyslijUszkodzenia(const std::string &t, char fl);
void WyslijPojazdy(int nr); // -> skladanie wielu pojazdow
void WyslijObsadzone(); // -> skladanie wielu pojazdow
void RadioStop(vector3 pPosition);
@@ -411,7 +411,7 @@ class TGround
void TerrainWrite();
void TrackBusyList();
void IsolatedBusyList();
void IsolatedBusy(const AnsiString t);
void IsolatedBusy(const std::string t);
void Silence(vector3 gdzie);
};
//---------------------------------------------------------------------------

View File

@@ -127,6 +127,11 @@ void CommLog(const char *str)
}*/
};
void CommLog(const std::string &str)
{ // Ra: wersja z AnsiString jest zamienna z Error()
WriteLog(str);
};
void CommLog(const AnsiString &str)
{ // Ra: wersja z AnsiString jest zamienna z Error()
CommLog(str.c_str());

1
Logs.h
View File

@@ -21,6 +21,7 @@ void ErrorLog(const AnsiString &asMessage);
void WriteLog(const AnsiString &str, bool newline = true);
void WriteLog(const std::string &str, bool newline = true);
void CommLog(const char *str);
void CommLog(const std::string);
void CommLog(const AnsiString &str);
//---------------------------------------------------------------------------
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -69,6 +69,20 @@ inline int Random()
return rand();
}
inline double BorlandTime()
{
std::tm epoch;
epoch.tm_sec = 0;
epoch.tm_min = 0;
epoch.tm_hour = 0;
epoch.tm_mday = 1;
epoch.tm_mon = 0;
epoch.tm_year = 0;
time_t basetime = mktime(&epoch);
time_t raw_t = time(NULL);
return (difftime(raw_t, basetime) / 24) + 2;
}
/*funkcje logiczne*/
bool TestFlag(int Flag, int Value);
bool SetFlag( int & Flag, int Value);

View File

@@ -101,7 +101,7 @@ class TIsolated
TIsolated *pNext; // odcinki izolowane są trzymane w postaci listy jednikierunkowej
static TIsolated *pRoot; // początek listy
public:
AnsiString asName; // nazwa obiektu, baza do nazw eventów
std::string asName; // nazwa obiektu, baza do nazw eventów
TEvent *evBusy; // zdarzenie wyzwalane po zajęciu grupy
TEvent *evFree; // zdarzenie wyzwalane po całkowitym zwolnieniu zajętości grupy
TMemCell *pMemCell; // automatyczna komórka pamięci, która współpracuje z odcinkiem izolowanym

View File

@@ -5007,7 +5007,7 @@ bool TTrain::CabChange(int iDirection)
// McZapkie-310302
// wczytywanie pliku z danymi multimedialnymi (dzwieki, kontrolki, kabiny)
bool TTrain::LoadMMediaFile(AnsiString asFileName)
bool TTrain::LoadMMediaFile(std::string asFileName)
{
double dSDist;
TFileStream *fs;
@@ -5296,7 +5296,7 @@ bool TTrain::LoadMMediaFile(AnsiString asFileName)
}
}
bool TTrain::InitializeCab(int NewCabNo, AnsiString asFileName)
bool TTrain::InitializeCab(int NewCabNo, std::string asFileName)
{
pyScreens.reset(this);
pyScreens.setLookupPath(DynamicObject->asBaseDir);

View File

@@ -24,6 +24,7 @@ http://mozilla.org/MPL/2.0/.
#include "RealSound.h"
#include "FadeSound.h"
#include "PyInt.h"
#include <string>
// typedef enum {st_Off, st_Starting, st_On, st_ShuttingDown} T4State;
@@ -73,7 +74,7 @@ class TTrain
bool CabChange(int iDirection);
bool ActiveUniversal4;
bool ShowNextCurrent; // pokaz przd w podlaczonej lokomotywie (ET41)
bool InitializeCab(int NewCabNo, AnsiString asFileName);
bool InitializeCab(int NewCabNo, std::string asFileName);
TTrain();
~TTrain();
// bool Init(TTrack *Track);
@@ -98,7 +99,7 @@ class TTrain
void SetLights();
// virtual bool RenderAlpha();
// McZapkie-310302: ladowanie parametrow z pliku
bool LoadMMediaFile(AnsiString asFileName);
bool LoadMMediaFile(std::string asFileName);
PyObject *GetTrainState();
private: //瞠by go nic z zewn靖rz nie przestawia這

394
World.cpp
View File

@@ -31,6 +31,7 @@ http://mozilla.org/MPL/2.0/.
#include "Train.h"
#include "Driver.h"
#include "Console.h"
#include <cmath>
#define TEXTURE_FILTER_CONTROL_EXT 0x8500
#define TEXTURE_LOD_BIAS_EXT 0x8501
@@ -1714,7 +1715,7 @@ bool TWorld::Update()
if (DebugModeFlag && !Global::iTextMode)
{
OutText1 = " FPS: ";
OutText1 += FloatToStrF(GetFPS(), ffFixed, 6, 2);
OutText1 += to_string(GetFPS(), 2);
OutText1 += Global::iSlowMotion ? "s" : "n";
OutText1 += (GetDeltaTime() >= 0.2) ? "!" : " ";
@@ -1732,11 +1733,12 @@ bool TWorld::Update()
{
Global::iViewMode = VK_F8;
OutText1 = " FPS: ";
OutText1 += FloatToStrF(GetFPS(), ffFixed, 6, 2);
OutText1 += to_string(GetFPS(), 2);
//OutText1 += sprintf();
if (Global::iSlowMotion)
OutText1 += " (slowmotion " + AnsiString(Global::iSlowMotion) + ")";
OutText1 += " (slowmotion " + to_string(Global::iSlowMotion) + ")";
OutText1 += ", sectors: ";
OutText1 += AnsiString(Ground.iRendered);
OutText1 += to_string(Ground.iRendered);
}
// if (Console::Pressed(VK_F7))
@@ -1864,7 +1866,7 @@ bool TWorld::Update()
glDisable(GL_LIGHTING);
if (Controlled)
SetWindowText(hWnd, AnsiString(Controlled->MoverParameters->Name).c_str());
SetWindowText(hWnd, Controlled->MoverParameters->Name.c_str());
else
SetWindowText(hWnd, Global::szSceneryFile); // nazwa scenerii
glBindTexture(GL_TEXTURE_2D, 0);
@@ -1876,26 +1878,26 @@ bool TWorld::Update()
{ // tekst pokazywany po wciœniêciu [F1]
// Global::iViewMode=VK_F1;
glColor3f(1.0f, 1.0f, 1.0f); // a, damy bia³ym
OutText1 = "Time: " + AnsiString((int)GlobalTime->hh) + ":";
OutText1 = "Time: " + to_string((int)GlobalTime->hh) + ":";
int i = GlobalTime->mm; // bo inaczej potrafi zrobiæ "hh:010"
if (i < 10)
OutText1 += "0";
OutText1 += AnsiString(i); // minuty
OutText1 += to_string(i); // minuty
OutText1 += ":";
i = floor(GlobalTime->mr); // bo inaczej potrafi zrobiæ "hh:mm:010"
if (i < 10)
OutText1 += "0";
OutText1 += AnsiString(i);
OutText1 += to_string(i);
if (Global::iPause)
OutText1 += " - paused";
if (Controlled)
if (Controlled->Mechanik)
{
OutText2 = Controlled->Mechanik->Relation().c_str();
if (!OutText2.IsEmpty()) // jeœli jest podana relacja, to dodajemy punkt nastêpnego
OutText2 = Controlled->Mechanik->Relation();
if (!OutText2.empty()) // jeœli jest podana relacja, to dodajemy punkt nastêpnego
// zatrzymania
OutText2 =
Global::Bezogonkow(OutText2 + ": -> " + Controlled->Mechanik->NextStop().c_str(),
Global::Bezogonkow(OutText2 + ": -> " + Controlled->Mechanik->NextStop(),
true); // dopisanie punktu zatrzymania
}
// double CtrlPos=mvControlled->MainCtrlPos;
@@ -1906,9 +1908,9 @@ bool TWorld::Update()
}
else if (Global::iTextMode == VK_F12)
{ // opcje w³¹czenia i wy³¹czenia logowania
OutText1 = "[0] Debugmode " + AnsiString(DebugModeFlag ? "(on)" : "(off)");
OutText2 = "[1] log.txt " + AnsiString((Global::iWriteLogEnabled & 1) ? "(on)" : "(off)");
OutText3 = "[2] Console " + AnsiString((Global::iWriteLogEnabled & 2) ? "(on)" : "(off)");
OutText1 = "[0] Debugmode " + string(DebugModeFlag ? "(on)" : "(off)");
OutText2 = "[1] log.txt " + string((Global::iWriteLogEnabled & 1) ? "(on)" : "(off)");
OutText3 = "[2] Console " + string((Global::iWriteLogEnabled & 2) ? "(on)" : "(off)");
}
else if (Global::iTextMode == VK_F2)
{ // ABu: info dla najblizszego pojazdu!
@@ -1919,7 +1921,7 @@ bool TWorld::Update()
if (Global::iScreenMode[Global::iTextMode - VK_F1] == 0)
{ // jeœli domyœlny ekran po pierwszym naciœniêciu
OutText3 = "";
OutText1 = "Vehicle name: " + AnsiString(tmp->MoverParameters->Name);
OutText1 = "Vehicle name: " + tmp->MoverParameters->Name;
// yB OutText1+="; d: "+FloatToStrF(tmp->ABuGetDirection(),ffFixed,2,0);
// OutText1=FloatToStrF(tmp->MoverParameters->Couplers[0].CouplingFlag,ffFixed,3,2)+",
// ";
@@ -1929,9 +1931,9 @@ bool TWorld::Update()
OutText1 += ", command: " + tmp->Mechanik->OrderCurrent();
}
else if (tmp->ctOwner)
OutText1 += ", owned by " + AnsiString(tmp->ctOwner->OwnerName());
if (!tmp->MoverParameters->CommandLast.IsEmpty())
OutText1 += AnsiString(", put: ") + tmp->MoverParameters->CommandLast;
OutText1 += ", owned by " + tmp->ctOwner->OwnerName();
if (!tmp->MoverParameters->CommandLast.empty())
OutText1 += ", put: " + tmp->MoverParameters->CommandLast;
// OutText1+="; Cab="+AnsiString(tmp->MoverParameters->CabNo);
OutText2 = "Damage status: " +
tmp->MoverParameters->EngineDescription(0); //+" Engine status: ";
@@ -1944,13 +1946,13 @@ bool TWorld::Update()
OutText2 += "R";
if ((tmp->MoverParameters->BrakeDelayFlag & bdelay_M) == bdelay_M)
OutText2 += "+Mg";
OutText2 += AnsiString(", BTP:") +
FloatToStrF(tmp->MoverParameters->LoadFlag, ffFixed, 5, 0);
OutText2 += ", BTP:" +
to_string(tmp->MoverParameters->LoadFlag, 0);
// if ((tmp->MoverParameters->EnginePowerSource.SourceType==CurrentCollector) ||
// (tmp->MoverParameters->TrainType==dt_EZT))
{
OutText2 += AnsiString("; pant. ") +
FloatToStrF(tmp->MoverParameters->PantPress, ffFixed, 8, 2);
OutText2 += "; pant. " +
to_string(tmp->MoverParameters->PantPress, 2);
OutText2 += (tmp->MoverParameters->bPantKurek3 ? "<ZG" : "|ZG");
}
@@ -1958,22 +1960,22 @@ bool TWorld::Update()
// u:")+FloatToStrF(tmp->MoverParameters->u,ffFixed,3,3);
// OutText2+=AnsiString(",
// N:")+FloatToStrF(tmp->MoverParameters->Ntotal,ffFixed,4,0);
OutText2 += AnsiString(", MED:") +
FloatToStrF(tmp->MoverParameters->LocalBrakePosA, ffFixed, 6, 2);
OutText2 += AnsiString("+") +
FloatToStrF(tmp->MoverParameters->AnPos, ffFixed, 6, 2);
OutText2 += AnsiString(", Ft:") +
FloatToStrF(tmp->MoverParameters->Ft * 0.001f, ffFixed, 4, 0);
OutText2 += AnsiString(", HV0:") +
FloatToStrF(tmp->MoverParameters->HVCouplers[0][1], ffFixed, 4, 0);
OutText2 += AnsiString("@") +
FloatToStrF(tmp->MoverParameters->HVCouplers[0][0], ffFixed, 4, 0);
OutText2 += AnsiString("+HV1:") +
FloatToStrF(tmp->MoverParameters->HVCouplers[1][1], ffFixed, 4, 0);
OutText2 += AnsiString("@") +
FloatToStrF(tmp->MoverParameters->HVCouplers[1][0], ffFixed, 4, 0);
OutText2 += AnsiString(" TC:") +
FloatToStrF(tmp->MoverParameters->TotalCurrent, ffFixed, 4, 0);
OutText2 += ", MED:" +
to_string(tmp->MoverParameters->LocalBrakePosA, 2);
OutText2 += "+" +
to_string(tmp->MoverParameters->AnPos, 2);
OutText2 += ", Ft:" +
to_string(tmp->MoverParameters->Ft * 0.001f, 0);
OutText2 += ", HV0:" +
to_string(tmp->MoverParameters->HVCouplers[0][1], 0);
OutText2 += "@" +
to_string(tmp->MoverParameters->HVCouplers[0][0], 0);
OutText2 += "+HV1:" +
to_string(tmp->MoverParameters->HVCouplers[1][1], 0);
OutText2 += "@" +
to_string(tmp->MoverParameters->HVCouplers[1][0], 0);
OutText2 += " TC:" +
to_string(tmp->MoverParameters->TotalCurrent, 0);
// OutText3= AnsiString("BP:
// ")+FloatToStrF(tmp->MoverParameters->BrakePress,ffFixed,5,2)+AnsiString(",
// ");
@@ -2008,27 +2010,27 @@ bool TWorld::Update()
// OutText2+= " GetLast:
// "+AnsiString(tmp->GetLastDynamic(1)->MoverParameters->Name)+" Damage
// status="+tmp->MoverParameters->EngineDescription(0)+" Engine status: ";
OutText3 = AnsiString("BP: ") +
FloatToStrF(tmp->MoverParameters->BrakePress, ffFixed, 5, 2) +
AnsiString(", ");
OutText3 += FloatToStrF(tmp->MoverParameters->BrakeStatus, ffFixed, 5, 0) +
AnsiString(", ");
OutText3 += AnsiString("PP: ") +
FloatToStrF(tmp->MoverParameters->PipePress, ffFixed, 5, 2) +
AnsiString("/");
OutText3 += FloatToStrF(tmp->MoverParameters->ScndPipePress, ffFixed, 5, 2) +
AnsiString("/");
OutText3 += FloatToStrF(tmp->MoverParameters->EqvtPipePress, ffFixed, 5, 2) +
AnsiString(", ");
OutText3 += AnsiString("BVP: ") +
FloatToStrF(tmp->MoverParameters->Volume, ffFixed, 5, 3) +
AnsiString(", ");
OutText3 += FloatToStrF(tmp->MoverParameters->CntrlPipePress, ffFixed, 5, 3) +
AnsiString(", ");
OutText3 += FloatToStrF(tmp->MoverParameters->Hamulec->GetCRP(), ffFixed, 5, 3) +
AnsiString(", ");
OutText3 += FloatToStrF(tmp->MoverParameters->BrakeStatus, ffFixed, 5, 0) +
AnsiString(", ");
OutText3 = ("BP: ") +
to_string(tmp->MoverParameters->BrakePress, 2) +
(", ");
OutText3 += to_string(tmp->MoverParameters->BrakeStatus, 0) +
(", ");
OutText3 += ("PP: ") +
to_string(tmp->MoverParameters->PipePress, 2) +
("/");
OutText3 += to_string(tmp->MoverParameters->ScndPipePress, 2) +
("/");
OutText3 += to_string(tmp->MoverParameters->EqvtPipePress, 2) +
(", ");
OutText3 += ("BVP: ") +
to_string(tmp->MoverParameters->Volume, 3) +
(", ");
OutText3 += to_string(tmp->MoverParameters->CntrlPipePress, 3) +
(", ");
OutText3 += to_string(tmp->MoverParameters->Hamulec->GetCRP(), 3) +
(", ");
OutText3 += to_string(tmp->MoverParameters->BrakeStatus, 0) +
(", ");
// OutText3+=AnsiString("BVP:
// ")+FloatToStrF(tmp->MoverParameters->BrakeVP(),ffFixed,5,2)+AnsiString(",
// ");
@@ -2041,11 +2043,11 @@ bool TWorld::Update()
// ");
if (tmp->MoverParameters->ManualBrakePos > 0)
OutText3 += AnsiString("manual brake active. ");
OutText3 += ("manual brake active. ");
else if (tmp->MoverParameters->LocalBrakePos > 0)
OutText3 += AnsiString("local brake active. ");
OutText3 += ("local brake active. ");
else
OutText3 += AnsiString("local brake inactive. ");
OutText3 += ("local brake inactive. ");
/*
//OutText3+=AnsiString("LSwTim:
")+FloatToStrF(tmp->MoverParameters->LastSwitchingTime,ffFixed,5,2);
@@ -2077,20 +2079,20 @@ bool TWorld::Update()
// OutText4=tmp->Mechanik->StopReasonText();
// if (!OutText4.IsEmpty()) OutText4+="; "; //aby ³adniejszy odstêp by³
// if (Controlled->Mechanik && (Controlled->Mechanik->AIControllFlag==AIdriver))
AnsiString flags = "bwaccmlshhhoibsgvdp; "; // flagi AI (definicja w Driver.h)
for (int i = 0, j = 1; i < 19; ++i, j <<= 1)
if (tmp->Mechanik->DrivigFlags() & j) // jak bit ustawiony
flags[i + 1] ^= 0x20; // to zmiana na wielk¹ literê
std::string flags = "bwaccmlshhhoibsgvdp; "; // flagi AI (definicja w Driver.h)
for (int i = 0, j = 1; i < 19; ++i, j <<= 1)
if (tmp->Mechanik->DrivigFlags() & j) // jak bit ustawiony
toupper(flags[i + 1]); // ^= 0x20; // to zmiana na wielk¹ literê
OutText4 = flags;
OutText4 +=
AnsiString("Driver: Vd=") +
FloatToStrF(tmp->Mechanik->VelDesired, ffFixed, 4, 0) + AnsiString(" ad=") +
FloatToStrF(tmp->Mechanik->AccDesired, ffFixed, 5, 2) + AnsiString(" Pd=") +
FloatToStrF(tmp->Mechanik->ActualProximityDist, ffFixed, 4, 0) +
AnsiString(" Vn=") + FloatToStrF(tmp->Mechanik->VelNext, ffFixed, 4, 0) +
AnsiString(" VSm=") + FloatToStrF(tmp->Mechanik->VelSignalLast, ffFixed, 4, 0) +
AnsiString(" VLm=") + FloatToStrF(tmp->Mechanik->VelLimitLast, ffFixed, 4, 0) +
AnsiString(" VRd=") + FloatToStrF(tmp->Mechanik->VelRoad, ffFixed, 4, 0);
("Driver: Vd=") +
to_string(tmp->Mechanik->VelDesired, 0) + (" ad=") +
to_string(tmp->Mechanik->AccDesired, 2) + (" Pd=") +
to_string(tmp->Mechanik->ActualProximityDist, 0) +
(" Vn=") + to_string(tmp->Mechanik->VelNext, 0) +
(" VSm=") + to_string(tmp->Mechanik->VelSignalLast, 0) +
(" VLm=") + to_string(tmp->Mechanik->VelLimitLast, 0) +
(" VRd=") + to_string(tmp->Mechanik->VelRoad, 0);
if (tmp->Mechanik->VelNext == 0.0)
if (tmp->Mechanik->eSignNext)
{ // jeœli ma zapamiêtany event semafora
@@ -2100,19 +2102,19 @@ bool TWorld::Update()
")"; // nazwa eventu semafora
}
}
if (!OutText4.IsEmpty())
if (!OutText4.empty())
OutText4 += "; "; // aby ³adniejszy odstêp by³
// informacja o sprzêgach nawet bez mechanika
OutText4 +=
"C0=" + (tmp->PrevConnected ?
tmp->PrevConnected->GetName() + ":" +
AnsiString(tmp->MoverParameters->Couplers[0].CouplingFlag) :
AnsiString("NULL"));
to_string(tmp->MoverParameters->Couplers[0].CouplingFlag) :
string("NULL"));
OutText4 +=
" C1=" + (tmp->NextConnected ?
tmp->NextConnected->GetName() + ":" +
AnsiString(tmp->MoverParameters->Couplers[1].CouplingFlag) :
AnsiString("NULL"));
to_string(tmp->MoverParameters->Couplers[1].CouplingFlag) :
string("NULL"));
if (Console::Pressed(VK_F2))
{
WriteLog(OutText1);
@@ -2130,18 +2132,18 @@ bool TWorld::Update()
glRasterPos2f(-0.25f, 0.20f);
// OutText1="Scan distance: "+AnsiString(tmp->Mechanik->scanmax)+", back:
// "+AnsiString(tmp->Mechanik->scanback);
OutText1 = "Time: " + AnsiString((int)GlobalTime->hh) + ":";
OutText1 = "Time: " + to_string((int)GlobalTime->hh) + ":";
int i = GlobalTime->mm; // bo inaczej potrafi zrobiæ "hh:010"
if (i < 10)
OutText1 += "0";
OutText1 += AnsiString(i); // minuty
OutText1 += to_string(i); // minuty
OutText1 += ":";
i = floor(GlobalTime->mr); // bo inaczej potrafi zrobiæ "hh:mm:010"
if (i < 10)
OutText1 += "0";
OutText1 += AnsiString(i);
OutText1 += to_string(i);
OutText1 +=
AnsiString(". Vel: ") + FloatToStrF(tmp->GetVelocity(), ffFixed, 6, 1);
(". Vel: ") + to_string(tmp->GetVelocity(), 1);
OutText1 += ". Scan table:";
glPrint(Global::Bezogonkow(OutText1).c_str());
i = -1;
@@ -2152,15 +2154,15 @@ bool TWorld::Update()
}
// podsumowanie sensu tabelki
OutText4 =
AnsiString("Driver: Vd=") +
FloatToStrF(tmp->Mechanik->VelDesired, ffFixed, 4, 0) + AnsiString(" ad=") +
FloatToStrF(tmp->Mechanik->AccDesired, ffFixed, 5, 2) + AnsiString(" Pd=") +
FloatToStrF(tmp->Mechanik->ActualProximityDist, ffFixed, 4, 0) +
AnsiString(" Vn=") + FloatToStrF(tmp->Mechanik->VelNext, ffFixed, 4, 0) +
AnsiString("\n VSm=") + FloatToStrF(tmp->Mechanik->VelSignalLast, ffFixed, 4, 0) +
AnsiString(" VLm=") + FloatToStrF(tmp->Mechanik->VelLimitLast, ffFixed, 4, 0) +
AnsiString(" VRd=") + FloatToStrF(tmp->Mechanik->VelRoad, ffFixed, 4, 0) +
AnsiString(" VSig=") + FloatToStrF(tmp->Mechanik->VelSignal, ffFixed, 4, 0);
("Driver: Vd=") +
to_string(tmp->Mechanik->VelDesired, 0) + (" ad=") +
to_string(tmp->Mechanik->AccDesired, 2) + (" Pd=") +
to_string(tmp->Mechanik->ActualProximityDist, 0) +
(" Vn=") + to_string(tmp->Mechanik->VelNext, 0) +
("\n VSm=") + to_string(tmp->Mechanik->VelSignalLast, 0) +
(" VLm=") + to_string(tmp->Mechanik->VelLimitLast, 0) +
(" VRd=") + to_string(tmp->Mechanik->VelRoad, 0) +
(" VSig=") + to_string(tmp->Mechanik->VelSignal, 0);
if (tmp->Mechanik->VelNext == 0.0)
if (tmp->Mechanik->eSignNext)
{ // jeœli ma zapamiêtany event semafora
@@ -2176,16 +2178,15 @@ bool TWorld::Update()
} // koniec obs³ugi, gdy mamy wskaŸnik do pojazdu
else
{ // wyœwietlenie wspó³rzêdnych w scenerii oraz k¹ta kamery, gdy nie mamy wskaŸnika
OutText1 = "Camera position: " + FloatToStrF(Camera.Pos.x, ffFixed, 6, 2) + " " +
FloatToStrF(Camera.Pos.y, ffFixed, 6, 2) + " " +
FloatToStrF(Camera.Pos.z, ffFixed, 6, 2);
OutText1 = "Camera position: " + to_string(Camera.Pos.x, 2) + " " +
to_string(Camera.Pos.y, 2) + " " +
to_string(Camera.Pos.z, 2);
OutText1 += ", azimuth: " +
FloatToStrF(180.0 - RadToDeg(Camera.Yaw), ffFixed, 3,
0); // ma byæ azymut, czyli 0 na pó³nocy i roœnie na wschód
to_string(180.0 - RadToDeg(Camera.Yaw), 0); // ma byæ azymut, czyli 0 na pó³nocy i roœnie na wschód
OutText1 +=
" " +
AnsiString("S SEE NEN NWW SW")
.SubString(1 + 2 * floor(fmod(8 + (Camera.Yaw + 0.5 * M_PI_4) / M_PI_4, 8)), 2);
string("S SEE NEN NWW SW")
.substr(1 + 2 * floor(fmod(8 + (Camera.Yaw + 0.5 * M_PI_4) / M_PI_4, 8)), 2);
}
// OutText3= AnsiString(" Online documentation (PL, ENG, DE, soon CZ):
// http://www.eu07.pl");
@@ -2257,69 +2258,64 @@ bool TWorld::Update()
{ // tu mozna dodac dopisywanie do logu przebiegu lokomotywy
// Global::iViewMode=VK_F10;
// return false;
OutText1 = AnsiString("To quit press [Y] key.");
OutText3 = AnsiString("Aby zakonczyc program, przycisnij klawisz [Y].");
OutText1 = ("To quit press [Y] key.");
OutText3 = ("Aby zakonczyc program, przycisnij klawisz [Y].");
}
else if (Controlled && DebugModeFlag && !Global::iTextMode)
{
OutText1 += AnsiString("; vel ") + FloatToStrF(Controlled->GetVelocity(), ffFixed, 6, 2);
OutText1 += AnsiString("; pos ") + FloatToStrF(Controlled->GetPosition().x, ffFixed, 6, 2);
OutText1 += AnsiString(" ; ") + FloatToStrF(Controlled->GetPosition().y, ffFixed, 6, 2);
OutText1 += AnsiString(" ; ") + FloatToStrF(Controlled->GetPosition().z, ffFixed, 6, 2);
OutText1 += AnsiString("; dist=") +
FloatToStrF(Controlled->MoverParameters->DistCounter, ffFixed, 8, 4);
OutText1 += ("; vel ") + to_string(Controlled->GetVelocity(), 2);
OutText1 += ("; pos ") + to_string(Controlled->GetPosition().x, 2);
OutText1 += (" ; ") + to_string(Controlled->GetPosition().y, 2);
OutText1 += (" ; ") + to_string(Controlled->GetPosition().z, 2);
OutText1 += ("; dist=") + to_string(Controlled->MoverParameters->DistCounter, 4);
// double a= acos( DotProduct(Normalize(Controlled->GetDirection()),vWorldFront));
// OutText+= AnsiString("; angle ")+FloatToStrF(a/M_PI*180,ffFixed,6,2);
OutText1 += AnsiString("; d_omega ") +
FloatToStrF(Controlled->MoverParameters->dizel_engagedeltaomega, ffFixed, 6, 3);
OutText2 = AnsiString("HamZ=") +
FloatToStrF(Controlled->MoverParameters->fBrakeCtrlPos, ffFixed, 6, 1);
OutText2 += AnsiString("; HamP=") + AnsiString(mvControlled->LocalBrakePos);
OutText2 += AnsiString("/") +
FloatToStrF(Controlled->MoverParameters->LocalBrakePosA, ffFixed, 6, 2);
// mvControlled->MainCtrlPos;
OutText1 +=
("; d_omega ") + to_string(Controlled->MoverParameters->dizel_engagedeltaomega, 3);
OutText2 = ("HamZ=") + to_string(Controlled->MoverParameters->fBrakeCtrlPos, 1);
OutText2 += ("; HamP=") + to_string(mvControlled->LocalBrakePos);
OutText2 += ("/") + to_string(Controlled->MoverParameters->LocalBrakePosA, 2);
// mvControlled->MainCtrlPos;
// if (mvControlled->MainCtrlPos<0)
// OutText2+= AnsiString("; nastawnik 0");
// if (mvControlled->MainCtrlPos>iPozSzereg)
OutText2 += AnsiString("; NasJ=") + AnsiString(mvControlled->MainCtrlPos);
OutText2 += ("; NasJ=") + to_string(mvControlled->MainCtrlPos);
// else
// OutText2+= AnsiString("; nastawnik S") + mvControlled->MainCtrlPos;
OutText2 += AnsiString("(") + AnsiString(mvControlled->MainCtrlActualPos);
OutText2 += ("(") + to_string(mvControlled->MainCtrlActualPos);
OutText2 += AnsiString("); NasB=") + AnsiString(mvControlled->ScndCtrlPos);
OutText2 += AnsiString("(") + AnsiString(mvControlled->ScndCtrlActualPos);
OutText2 += ("); NasB=") + to_string(mvControlled->ScndCtrlPos);
OutText2 += ("(") + to_string(mvControlled->ScndCtrlActualPos);
if (mvControlled->TrainType == dt_EZT)
OutText2 += AnsiString("); I=") + AnsiString(int(mvControlled->ShowCurrent(0)));
OutText2 += ("); I=") + to_string(int(mvControlled->ShowCurrent(0)));
else
OutText2 += AnsiString("); I=") + AnsiString(int(mvControlled->Im));
OutText2 += ("); I=") + to_string(int(mvControlled->Im));
// OutText2+=AnsiString(";
// I2=")+FloatToStrF(Controlled->NextConnected->MoverParameters->Im,ffFixed,6,2);
OutText2 += AnsiString("; U=") +
AnsiString(int(mvControlled->RunningTraction.TractionVoltage + 0.5));
OutText2 += ("; U=") +
to_string(int(mvControlled->RunningTraction.TractionVoltage + 0.5));
// OutText2+=AnsiString("; rvent=")+FloatToStrF(mvControlled->RventRot,ffFixed,6,2);
OutText2 += AnsiString("; R=") +
FloatToStrF(Controlled->MoverParameters->RunningShape.R, ffFixed, 4, 1);
OutText2 += AnsiString(" An=") + FloatToStrF(Controlled->MoverParameters->AccN, ffFixed, 4,
2); // przyspieszenie poprzeczne
OutText2 += ("; R=") +
to_string(Controlled->MoverParameters->RunningShape.R, 1);
OutText2 += (" An=") + to_string(Controlled->MoverParameters->AccN, 2); // przyspieszenie poprzeczne
if (tprev != int(GlobalTime->mr))
{
tprev = GlobalTime->mr;
Acc = (Controlled->MoverParameters->Vel - VelPrev) / 3.6;
VelPrev = Controlled->MoverParameters->Vel;
}
OutText2 += AnsiString("; As=") + FloatToStrF(Acc/*Controlled->MoverParameters->AccS*/, ffFixed, 4,
2); // przyspieszenie wzd³u¿ne
OutText2 += ("; As=") + to_string(Acc/*Controlled->MoverParameters->AccS*/, 2); // przyspieszenie wzd³u¿ne
// OutText2+=AnsiString("; P=")+FloatToStrF(mvControlled->EnginePower,ffFixed,6,1);
OutText3 += AnsiString("cyl.ham. ") +
FloatToStrF(Controlled->MoverParameters->BrakePress, ffFixed, 5, 2);
OutText3 += AnsiString("; prz.gl. ") +
FloatToStrF(Controlled->MoverParameters->PipePress, ffFixed, 5, 2);
OutText3 += AnsiString("; zb.gl. ") +
FloatToStrF(Controlled->MoverParameters->CompressedVolume, ffFixed, 6, 2);
OutText3 += ("cyl.ham. ") +
to_string(Controlled->MoverParameters->BrakePress, 2);
OutText3 += ("; prz.gl. ") +
to_string(Controlled->MoverParameters->PipePress, 2);
OutText3 += ("; zb.gl. ") +
to_string(Controlled->MoverParameters->CompressedVolume, 2);
// youBy - drugi wezyk
OutText3 += AnsiString("; p.zas. ") +
FloatToStrF(Controlled->MoverParameters->ScndPipePress, ffFixed, 6, 2);
OutText3 += ("; p.zas. ") +
to_string(Controlled->MoverParameters->ScndPipePress, 2);
if (Controlled->MoverParameters->EngineType == ElectricInductionMotor)
{
@@ -2329,30 +2325,30 @@ bool TWorld::Update()
{
glRasterPos2f(-0.25f, 0.16f - 0.01f * i);
if (Controlled->MoverParameters->eimc[i] < 10)
OutText4 = FloatToStrF(Controlled->MoverParameters->eimc[i], ffFixed, 6, 3);
OutText4 = to_string(Controlled->MoverParameters->eimc[i], 3);
else
OutText4 = FloatToStrF(Controlled->MoverParameters->eimc[i], ffGeneral, 5, 3);
OutText4 = to_string(Controlled->MoverParameters->eimc[i], 3);
glPrint(OutText4.c_str());
}
for (int i = 0; i <= 20; i++)
{
glRasterPos2f(-0.2f, 0.16f - 0.01f * i);
if (Controlled->MoverParameters->eimv[i] < 10)
OutText4 = FloatToStrF(Controlled->MoverParameters->eimv[i], ffFixed, 6, 3);
OutText4 = to_string(Controlled->MoverParameters->eimv[i], 3);
else
OutText4 = FloatToStrF(Controlled->MoverParameters->eimv[i], ffGeneral, 5, 3);
OutText4 = to_string(Controlled->MoverParameters->eimv[i], 3);
glPrint(OutText4.c_str());
}
for (int i = 0; i <= 10; i++)
{
glRasterPos2f(-0.15f, 0.16f - 0.01f * i);
OutText4 = FloatToStrF(Train->fPress[i][0], ffFixed, 6, 3);
OutText4 = to_string(Train->fPress[i][0], 3);
glPrint(OutText4.c_str());
}
for (int i = 0; i <= 8; i++)
{
glRasterPos2f(-0.15f, 0.04f - 0.01f * i);
OutText4 = FloatToStrF(Controlled->MED[0][i], ffFixed, 6, 3);
OutText4 = to_string(Controlled->MED[0][i], 3);
glPrint(OutText4.c_str());
}
for (int i = 0; i <= 8; i++)
@@ -2360,7 +2356,7 @@ bool TWorld::Update()
for (int j = 0; j <= 9; j++)
{
glRasterPos2f(0.05f + 0.03f * i, 0.16f - 0.01f * j);
OutText4 = FloatToStrF(Train->fEIMParams[i][j], ffGeneral, 4, 2);
OutText4 = to_string(Train->fEIMParams[i][j], 2);
glPrint(OutText4.c_str());
}
}
@@ -2434,37 +2430,37 @@ bool TWorld::Update()
// McZapkie: predkosc szlakowa
if (Controlled->MoverParameters->RunningTrack.Velmax == -1)
{
OutText3 += AnsiString(" Vtrack=Vmax");
OutText3 += (" Vtrack=Vmax");
}
else
{
OutText3 +=
AnsiString(" Vtrack ") +
FloatToStrF(Controlled->MoverParameters->RunningTrack.Velmax, ffFixed, 8, 2);
(" Vtrack ") +
to_string(Controlled->MoverParameters->RunningTrack.Velmax, 2);
}
// WriteLog(Controlled->MoverParameters->TrainType.c_str());
if ((mvControlled->EnginePowerSource.SourceType == CurrentCollector) ||
(mvControlled->TrainType == dt_EZT))
{
OutText3 +=
AnsiString("; pant. ") + FloatToStrF(mvControlled->PantPress, ffFixed, 8, 2);
("; pant. ") + to_string(mvControlled->PantPress, 2);
OutText3 += (mvControlled->bPantKurek3 ? "=ZG" : "|ZG");
}
// McZapkie: komenda i jej parametry
if (Controlled->MoverParameters->CommandIn.Command != AnsiString(""))
OutText4 = AnsiString("C:") +
AnsiString(Controlled->MoverParameters->CommandIn.Command) +
AnsiString(" V1=") +
FloatToStrF(Controlled->MoverParameters->CommandIn.Value1, ffFixed, 5, 0) +
AnsiString(" V2=") +
FloatToStrF(Controlled->MoverParameters->CommandIn.Value2, ffFixed, 5, 0);
if (Controlled->MoverParameters->CommandIn.Command != (""))
OutText4 = ("C:") +
(Controlled->MoverParameters->CommandIn.Command) +
(" V1=") +
to_string(Controlled->MoverParameters->CommandIn.Value1, 0) +
(" V2=") +
to_string(Controlled->MoverParameters->CommandIn.Value2, 0);
if (Controlled->Mechanik && (Controlled->Mechanik->AIControllFlag == AIdriver))
OutText4 +=
AnsiString("AI: Vd=") +
FloatToStrF(Controlled->Mechanik->VelDesired, ffFixed, 4, 0) + AnsiString(" ad=") +
FloatToStrF(Controlled->Mechanik->AccDesired, ffFixed, 5, 2) + AnsiString(" Pd=") +
FloatToStrF(Controlled->Mechanik->ActualProximityDist, ffFixed, 4, 0) +
AnsiString(" Vn=") + FloatToStrF(Controlled->Mechanik->VelNext, ffFixed, 4, 0);
("AI: Vd=") +
to_string(Controlled->Mechanik->VelDesired, 0) + (" ad=") +
to_string(Controlled->Mechanik->AccDesired, 2) + (" Pd=") +
to_string(Controlled->Mechanik->ActualProximityDist, 0) +
(" Vn=") + to_string(Controlled->Mechanik->VelNext, 0);
}
// ABu 150205: prosty help, zeby sie na forum nikt nie pytal, jak ma ruszyc :)
@@ -2476,15 +2472,15 @@ bool TWorld::Update()
{ // informacja o wersji, sposobie wyœwietlania i b³êdach OpenGL
// Global::iViewMode=VK_F9;
OutText1 = Global::asVersion; // informacja o wersji
OutText2 = AnsiString("Rendering mode: ") + (Global::bUseVBO ? "VBO" : "Display Lists");
OutText2 = string("Rendering mode: ") + (Global::bUseVBO ? "VBO" : "Display Lists");
if (Global::iMultiplayer)
OutText2 += ". Multiplayer is active";
OutText2 += ".";
GLenum err = glGetError();
if (err != GL_NO_ERROR)
{
OutText3 = "OpenGL error " + AnsiString(err) + ": " +
Global::Bezogonkow(AnsiString((char *)gluErrorString(err)));
OutText3 = "OpenGL error " + to_string(err) + ": " +
Global::Bezogonkow(((char *)gluErrorString(err)));
}
}
if (Global::iTextMode == VK_F3)
@@ -2502,8 +2498,8 @@ bool TWorld::Update()
glColor3f(1.0f, 1.0f, 1.0f); // a, damy bia³ym
// glTranslatef(0.0f,0.0f,-0.50f);
glRasterPos2f(-0.25f, 0.20f);
OutText1 = AnsiString(tmp->Mechanik->Relation().c_str()) + " (" +
tmp->Mechanik->Timetable()->TrainName.c_str() + ")";
OutText1 = tmp->Mechanik->Relation() + " (" +
tmp->Mechanik->Timetable()->TrainName + ")";
glPrint(Global::Bezogonkow(OutText1, true).c_str());
glRasterPos2f(-0.25f, 0.19f);
// glPrint("|============================|=======|=======|=====|");
@@ -2514,22 +2510,22 @@ bool TWorld::Update()
for (int i = tmp->Mechanik->iStationStart; i <= tt->StationCount; ++i)
{ // wyœwietlenie pozycji z rozk³adu
t = tt->TimeTable + i; // linijka rozk³adu
OutText1 = AnsiString(AnsiString(t->StationName.c_str()) +
" ").SubString(1, 26);
OutText1 = (t->StationName +
" ").substr(1, 26);
OutText2 = (t->Ah >= 0) ?
AnsiString(int(100 + t->Ah)).SubString(2, 2) + ":" +
AnsiString(int(100 + t->Am)).SubString(2, 2) :
AnsiString(" ");
to_string(int(100 + t->Ah)).substr(2, 2) + ":" +
to_string(int(100 + t->Am)).substr(2, 2) :
string(" ");
OutText3 = (t->Dh >= 0) ?
AnsiString(int(100 + t->Dh)).SubString(2, 2) + ":" +
AnsiString(int(100 + t->Dm)).SubString(2, 2) :
AnsiString(" ");
OutText4 = " " + FloatToStrF(t->vmax, ffFixed, 3, 0);
OutText4 = OutText4.SubString(OutText4.Length() - 2,
to_string(int(100 + t->Dh)).substr(2, 2) + ":" +
to_string(int(100 + t->Dm)).substr(2, 2) :
string(" ");
OutText4 = " " + to_string(t->vmax, 0);
OutText4 = OutText4.substr(OutText4.length() - 2,
3); // z wyrównaniem do prawej
// if (AnsiString(t->StationWare).Pos("@"))
OutText1 = "| " + OutText1 + " | " + OutText2 + " | " + OutText3 +
" | " + OutText4 + " | " + AnsiString(t->StationWare.c_str());
" | " + OutText4 + " | " + t->StationWare;
glRasterPos2f(-0.25f,
0.18f - 0.02f * (i - tmp->Mechanik->iStationStart));
if ((tmp->Mechanik->iStationStart < tt->StationIndex) ?
@@ -2588,7 +2584,7 @@ bool TWorld::Update()
glColor3f(1.0f, 1.0f, 0.0f); //¿ó³te
for (int i = 0; i < 5; ++i)
{ // kilka linijek
if (Global::asTranscript[i].IsEmpty())
if (Global::asTranscript[i].empty())
break; // dalej nie trzeba
else
{
@@ -2820,28 +2816,28 @@ void TWorld::OnCommandGet(DaneRozkaz *pRozkaz)
int i =
int(pRozkaz->cString[8]); // d³ugoœæ pierwszego ³añcucha (z przodu dwa floaty)
CommLog(
AnsiString(Now()) + " " + IntToStr(pRozkaz->iComm) + " " +
AnsiString(pRozkaz->cString + 11 + i, (unsigned)(pRozkaz->cString[10 + i])) +
to_string(BorlandTime()) + " " + to_string(pRozkaz->iComm) + " " +
string(pRozkaz->cString + 11 + i, (unsigned)(pRozkaz->cString[10 + i])) +
" rcvd");
TGroundNode *t = Ground.DynamicFind(
AnsiString(pRozkaz->cString + 11 + i,
string(pRozkaz->cString + 11 + i,
(unsigned)pRozkaz->cString[10 + i])); // nazwa pojazdu jest druga
if (t)
if (t->DynamicObject->Mechanik)
{
t->DynamicObject->Mechanik->PutCommand(AnsiString(pRozkaz->cString + 9, i),
t->DynamicObject->Mechanik->PutCommand(string(pRozkaz->cString + 9, i),
pRozkaz->fPar[0], pRozkaz->fPar[1],
NULL, stopExt); // floaty s¹ z przodu
WriteLog("AI command: " + AnsiString(pRozkaz->cString + 9, i));
WriteLog("AI command: " + string(pRozkaz->cString + 9, i));
}
}
break;
case 4: // badanie zajêtoœci toru
{
CommLog(AnsiString(Now()) + " " + IntToStr(pRozkaz->iComm) + " " +
AnsiString(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])) + " rcvd");
CommLog(to_string(BorlandTime()) + " " + to_string(pRozkaz->iComm) + " " +
string(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])) + " rcvd");
TGroundNode *t = Ground.FindGroundNode(
AnsiString(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])), TP_TRACK);
string(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])), TP_TRACK);
if (t)
if (t->pTrack->IsEmpty())
Ground.WyslijWolny(t->asName);
@@ -2849,8 +2845,8 @@ void TWorld::OnCommandGet(DaneRozkaz *pRozkaz)
break;
case 5: // ustawienie parametrów
{
CommLog(AnsiString(Now()) + " " + IntToStr(pRozkaz->iComm) + " params " +
IntToStr(*pRozkaz->iPar) + " rcvd");
CommLog(to_string(BorlandTime()) + " " + to_string(pRozkaz->iComm) + " params " +
to_string(*pRozkaz->iPar) + " rcvd");
if (*pRozkaz->iPar == 0) // sprawdzenie czasu
if (*pRozkaz->iPar & 1) // ustawienie czasu
{
@@ -2874,8 +2870,8 @@ void TWorld::OnCommandGet(DaneRozkaz *pRozkaz)
case 6: // pobranie parametrów ruchu pojazdu
if (Global::iMultiplayer)
{ // Ra 2014-12: to ma dzia³aæ równie¿ dla pojazdów bez obsady
CommLog(AnsiString(Now()) + " " + IntToStr(pRozkaz->iComm) + " " +
AnsiString(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])) +
CommLog(to_string(BorlandTime()) + " " + to_string(pRozkaz->iComm) + " " +
string(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])) +
" rcvd");
if (pRozkaz->cString[0]) // jeœli d³ugoœæ nazwy jest niezerowa
{ // szukamy pierwszego pojazdu o takiej nazwie i odsy³amy parametry ramk¹ #7
@@ -2884,7 +2880,7 @@ void TWorld::OnCommandGet(DaneRozkaz *pRozkaz)
t = Ground.DynamicFind(
Global::asHumanCtrlVehicle); // nazwa pojazdu u¿ytkownika
else
t = Ground.DynamicFindAny(AnsiString(
t = Ground.DynamicFindAny(string(
pRozkaz->cString + 1, (unsigned)pRozkaz->cString[0])); // nazwa pojazdu
if (t)
Ground.WyslijNamiary(t); // wys³anie informacji o pojeŸdzie
@@ -2897,31 +2893,31 @@ void TWorld::OnCommandGet(DaneRozkaz *pRozkaz)
}
break;
case 8: // ponowne wys³anie informacji o zajêtych odcinkach toru
CommLog(AnsiString(Now()) + " " + IntToStr(pRozkaz->iComm) + " all busy track" + " rcvd");
CommLog(to_string(BorlandTime()) + " " + to_string(pRozkaz->iComm) + " all busy track" + " rcvd");
Ground.TrackBusyList();
break;
case 9: // ponowne wys³anie informacji o zajêtych odcinkach izolowanych
CommLog(AnsiString(Now()) + " " + IntToStr(pRozkaz->iComm) + " all busy isolated" + " rcvd");
CommLog(to_string(BorlandTime()) + " " + to_string(pRozkaz->iComm) + " all busy isolated" + " rcvd");
Ground.IsolatedBusyList();
break;
case 10: // badanie zajêtoœci jednego odcinka izolowanego
CommLog(AnsiString(Now()) + " " + IntToStr(pRozkaz->iComm) + " " +
AnsiString(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])) + " rcvd");
Ground.IsolatedBusy(AnsiString(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])));
CommLog(to_string(BorlandTime()) + " " + to_string(pRozkaz->iComm) + " " +
string(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])) + " rcvd");
Ground.IsolatedBusy(string(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])));
break;
case 11: // ustawienie parametrów ruchu pojazdu
// Ground.IsolatedBusy(AnsiString(pRozkaz->cString+1,(unsigned)(pRozkaz->cString[0])));
break;
case 12: // skrocona ramka parametrow pojazdow AI (wszystkich!!)
CommLog(AnsiString(Now()) + " " + IntToStr(pRozkaz->iComm) + " obsadzone" + " rcvd");
CommLog(to_string(BorlandTime()) + " " + to_string(pRozkaz->iComm) + " obsadzone" + " rcvd");
Ground.WyslijObsadzone();
// Ground.IsolatedBusy(AnsiString(pRozkaz->cString+1,(unsigned)(pRozkaz->cString[0])));
break;
case 13: // ramka uszkodzenia i innych stanow pojazdu, np. wylaczenie CA, wlaczenie recznego itd.
// WriteLog("Przyszlo 13!");
// WriteLog(pRozkaz->cString);
CommLog(AnsiString(Now()) + " " + IntToStr(pRozkaz->iComm) + " " +
AnsiString(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])) +
CommLog(to_string(BorlandTime()) + " " + to_string(pRozkaz->iComm) + " " +
string(pRozkaz->cString + 1, (unsigned)(pRozkaz->cString[0])) +
" rcvd");
if (pRozkaz->cString[1]) // jeœli d³ugoœæ nazwy jest niezerowa
{ // szukamy pierwszego pojazdu o takiej nazwie i odsy³amy parametry ramk¹ #13
@@ -2931,7 +2927,7 @@ void TWorld::OnCommandGet(DaneRozkaz *pRozkaz)
Global::asHumanCtrlVehicle); // nazwa pojazdu u¿ytkownika
else
t = Ground.DynamicFindAny(
AnsiString(pRozkaz->cString + 2,
string(pRozkaz->cString + 2,
(unsigned)pRozkaz->cString[1])); // nazwa pojazdu
if (t)
{

View File

@@ -41,10 +41,10 @@ class TWorld
~TWorld();
// double Aspect;
private:
AnsiString OutText1; // teksty na ekranie
AnsiString OutText2;
AnsiString OutText3;
AnsiString OutText4;
string OutText1; // teksty na ekranie
string OutText2;
string OutText3;
string OutText4;
void ShowHints();
bool Render();
TCamera Camera;

View File

@@ -23,6 +23,8 @@ http://mozilla.org/MPL/2.0/.
// Ra: "delete NULL" nic nie zrobi, więc "if (a!=NULL)" jest zbędne
//#define SafeFree(a) if (a!=NULL) free(a)
//#define M_PI = 3.141592653589793
#define SafeDelete(a) \
{ \
delete (a); \