16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-21 14:49:19 +02:00

Kompiluje się do DynamicObject. Prace nad TMoverParameters.

This commit is contained in:
firleju
2016-10-25 22:46:26 +02:00
parent 28d5be7363
commit 1491681576
27 changed files with 638 additions and 530 deletions

106
Track.cpp
View File

@@ -93,7 +93,7 @@ TIsolated::TIsolated()
TIsolated("none", NULL);
};
TIsolated::TIsolated(const AnsiString &n, TIsolated *i)
TIsolated::TIsolated(const string &n, TIsolated *i)
{ // utworznie obwodu izolowanego
asName = n;
pNext = i;
@@ -115,7 +115,7 @@ TIsolated::~TIsolated(){
*/
};
TIsolated * TIsolated::Find(const AnsiString &n)
TIsolated * TIsolated::Find(const string &n)
{ // znalezienie obiektu albo utworzenie nowego
TIsolated *p = pRoot;
while (p)
@@ -453,18 +453,18 @@ vector3 LoadPoint(cParser *parser)
return p;
}
void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name)
void TTrack::Load(cParser *parser, vector3 pOrigin, std::string name)
{ // pobranie obiektu trajektorii ruchu
vector3 pt, vec, p1, p2, cp1, cp2, p3, p4, cp3, cp4; // dodatkowe punkty potrzebne do skrzyżowań
double a1, a2, r1, r2, r3, r4, d1, d2, a;
AnsiString str;
string str;
bool bCurve;
int i; //,state; //Ra: teraz już nie ma początkowego stanu zwrotnicy we wpisie
std::string token;
parser->getTokens();
*parser >> token;
str = AnsiString(token.c_str()); // typ toru
str = token; // typ toru
if (str == "normal")
{
@@ -509,7 +509,7 @@ void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name)
else
eType = tt_Unknown;
if (Global::iWriteLogEnabled & 4)
WriteLog(str.c_str());
WriteLog(str);
parser->getTokens(4);
*parser >> fTrackLength >> fTrackWidth >> fFriction >> fSoundDistance;
// fTrackLength=Parser->GetNextSymbol().ToDouble(); //track length
@@ -526,7 +526,7 @@ void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name)
iAction |= 0x80; // flaga wykolejania z powodu uszkodzenia
parser->getTokens();
*parser >> token;
str = AnsiString(token.c_str()); // environment
str = token; // environment
if (str == "flat")
eEnvironment = e_flat;
else if (str == "mountains" || str == "mountain")
@@ -551,9 +551,9 @@ void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name)
{
parser->getTokens();
*parser >> token;
str = AnsiString(token.c_str()); // railtex
str = token; // railtex
TextureID1 = (str == "none" ? 0 : TTexturesManager::GetTextureID(
szTexturePath, szSceneryPath, str.c_str(),
szTexturePath, szSceneryPath, str,
(iCategoryFlag & 1) ? Global::iRailProFiltering :
Global::iBallastFiltering));
parser->getTokens();
@@ -562,9 +562,9 @@ void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name)
fTexLength = 4; // Ra: zabezpiecznie przed zawieszeniem
parser->getTokens();
*parser >> token;
str = AnsiString(token.c_str()); // sub || railtex
str = token; // sub || railtex
TextureID2 = (str == "none" ? 0 : TTexturesManager::GetTextureID(
szTexturePath, szSceneryPath, str.c_str(),
szTexturePath, szSceneryPath, str,
(eType == tt_Normal) ? Global::iBallastFiltering :
Global::iRailProFiltering));
parser->getTokens(3);
@@ -751,44 +751,44 @@ void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name)
}
parser->getTokens();
*parser >> token;
str = AnsiString(token.c_str());
str = token;
while (str != "endtrack")
{
if (str == "event0")
{
parser->getTokens();
*parser >> token;
asEvent0Name = AnsiString(token.c_str());
asEvent0Name = token;
}
else if (str == "event1")
{
parser->getTokens();
*parser >> token;
asEvent1Name = AnsiString(token.c_str());
asEvent1Name = token;
}
else if (str == "event2")
{
parser->getTokens();
*parser >> token;
asEvent2Name = AnsiString(token.c_str());
asEvent2Name = token;
}
else if (str == "eventall0")
{
parser->getTokens();
*parser >> token;
asEventall0Name = AnsiString(token.c_str());
asEventall0Name = token;
}
else if (str == "eventall1")
{
parser->getTokens();
*parser >> token;
asEventall1Name = AnsiString(token.c_str());
asEventall1Name = token;
}
else if (str == "eventall2")
{
parser->getTokens();
*parser >> token;
asEventall2Name = AnsiString(token.c_str());
asEventall2Name = token;
}
else if (str == "velocity")
{
@@ -803,7 +803,7 @@ void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name)
{ // obwód izolowany, do którego tor należy
parser->getTokens();
*parser >> token;
pIsolated = TIsolated::Find(AnsiString(token.c_str()));
pIsolated = TIsolated::Find(token);
}
else if (str == "angle1")
{ // kąt ścięcia końca od strony 1
@@ -849,15 +849,15 @@ void TTrack::Load(cParser *parser, vector3 pOrigin, AnsiString name)
ErrorLog("Unknown property: \"" + str + "\" in track \"" + name + "\"");
parser->getTokens();
*parser >> token;
str = AnsiString(token.c_str());
str = token;
}
// alternatywny zapis nazwy odcinka izolowanego - po znaku "@" w nazwie toru
if (!pIsolated)
if ((i = name.Pos("@")) > 0)
if (i < name.Length()) // nie może być puste
if ((i = name.find("@")) != string::npos)
if (i < name.length()) // nie może być puste
{
pIsolated = TIsolated::Find(name.SubString(i + 1, name.Length()));
name = name.SubString(1, i - 1); // usunięcie z nazwy
pIsolated = TIsolated::Find(name.substr(i + 1, name.length()));
name = name.substr(0, i - 1); // usunięcie z nazwy
}
}
@@ -874,10 +874,10 @@ bool TTrack::AssignEvents(TEvent *NewEvent0, TEvent *NewEvent1, TEvent *NewEvent
}
else
{
if (!asEvent0Name.IsEmpty())
if (!asEvent0Name.empty())
{
ErrorLog(AnsiString("Bad track: Event0 \"") + asEvent0Name +
AnsiString("\" does not exist"));
ErrorLog("Bad track: Event0 \"" + asEvent0Name +
"\" does not exist");
bError = true;
}
}
@@ -885,7 +885,7 @@ bool TTrack::AssignEvents(TEvent *NewEvent0, TEvent *NewEvent1, TEvent *NewEvent
else
{
ErrorLog(
AnsiString("Bad track: Event0 cannot be assigned to track, track already has one"));
"Bad track: Event0 cannot be assigned to track, track already has one");
bError = true;
}
if (!evEvent1)
@@ -896,17 +896,17 @@ bool TTrack::AssignEvents(TEvent *NewEvent0, TEvent *NewEvent1, TEvent *NewEvent
asEvent1Name = "";
iEvents |= 2; // sumaryczna informacja o eventach
}
else if (!asEvent1Name.IsEmpty())
else if (!asEvent1Name.empty())
{ // Ra: tylko w logu informacja
ErrorLog(AnsiString("Bad track: Event1 \"") + asEvent1Name +
AnsiString("\" does not exist").c_str());
ErrorLog("Bad track: Event1 \"" + asEvent1Name +
"\" does not exist");
bError = true;
}
}
else
{
ErrorLog(
AnsiString("Bad track: Event1 cannot be assigned to track, track already has one"));
"Bad track: Event1 cannot be assigned to track, track already has one");
bError = true;
}
if (!evEvent2)
@@ -917,17 +917,17 @@ bool TTrack::AssignEvents(TEvent *NewEvent0, TEvent *NewEvent1, TEvent *NewEvent
asEvent2Name = "";
iEvents |= 4; // sumaryczna informacja o eventach
}
else if (!asEvent2Name.IsEmpty())
else if (!asEvent2Name.empty())
{ // Ra: tylko w logu informacja
ErrorLog(AnsiString("Bad track: Event2 \"") + asEvent2Name +
AnsiString("\" does not exist"));
ErrorLog("Bad track: Event2 \"" + asEvent2Name +
"\" does not exist");
bError = true;
}
}
else
{
ErrorLog(
AnsiString("Bad track: Event2 cannot be assigned to track, track already has one"));
"Bad track: Event2 cannot be assigned to track, track already has one");
bError = true;
}
return !bError;
@@ -946,17 +946,17 @@ bool TTrack::AssignallEvents(TEvent *NewEvent0, TEvent *NewEvent1, TEvent *NewEv
}
else
{
if (!asEvent0Name.IsEmpty())
if (!asEvent0Name.empty())
{
Error(AnsiString("Eventall0 \"") + asEventall0Name +
AnsiString("\" does not exist"));
Error("Eventall0 \"" + asEventall0Name +
"\" does not exist");
bError = true;
}
}
}
else
{
Error(AnsiString("Eventall0 cannot be assigned to track, track already has one"));
Error("Eventall0 cannot be assigned to track, track already has one");
bError = true;
}
if (!evEventall1)
@@ -969,17 +969,17 @@ bool TTrack::AssignallEvents(TEvent *NewEvent0, TEvent *NewEvent1, TEvent *NewEv
}
else
{
if (!asEvent0Name.IsEmpty())
if (!asEvent0Name.empty())
{ // Ra: tylko w logu informacja
WriteLog(AnsiString("Eventall1 \"") + asEventall1Name +
AnsiString("\" does not exist"));
WriteLog("Eventall1 \"" + asEventall1Name +
"\" does not exist");
bError = true;
}
}
}
else
{
Error(AnsiString("Eventall1 cannot be assigned to track, track already has one"));
Error("Eventall1 cannot be assigned to track, track already has one");
bError = true;
}
if (!evEventall2)
@@ -992,17 +992,17 @@ bool TTrack::AssignallEvents(TEvent *NewEvent0, TEvent *NewEvent1, TEvent *NewEv
}
else
{
if (!asEvent0Name.IsEmpty())
if (!asEvent0Name.empty())
{ // Ra: tylko w logu informacja
WriteLog(AnsiString("Eventall2 \"") + asEventall2Name +
AnsiString("\" does not exist"));
WriteLog("Eventall2 \"" + asEventall2Name +
"\" does not exist");
bError = true;
}
}
}
else
{
Error(AnsiString("Eventall2 cannot be assigned to track, track already has one"));
Error("Eventall2 cannot be assigned to track, track already has one");
bError = true;
}
return !bError;
@@ -1021,7 +1021,7 @@ bool TTrack::AssignForcedEvents(TEvent *NewEventPlus, TEvent *NewEventMinus)
return false;
};
AnsiString TTrack::IsolatedName()
string TTrack::IsolatedName()
{ // podaje nazwę odcinka izolowanego, jesli nie ma on jeszcze przypisanych zdarzeń
if (pIsolated)
if (!pIsolated->evBusy && !pIsolated->evFree)
@@ -3136,13 +3136,13 @@ void TTrack::ConnectionsLog()
for (i = 0; i < 2; ++i)
{
if (SwitchExtension->pPrevs[i])
WriteLog("Point " + AnsiString(i + i + 1) + " -> track " +
WriteLog("Point " + to_string(i + i + 1) + " -> track " +
SwitchExtension->pPrevs[i]->pMyNode->asName + ":" +
AnsiString(int(SwitchExtension->iPrevDirection[i])));
to_string(int(SwitchExtension->iPrevDirection[i])));
if (SwitchExtension->pNexts[i])
WriteLog("Point " + AnsiString(i + i + 2) + " -> track " +
WriteLog("Point " + to_string(i + i + 2) + " -> track " +
SwitchExtension->pNexts[i]->pMyNode->asName + ":" +
AnsiString(int(SwitchExtension->iNextDirection[i])));
to_string(int(SwitchExtension->iNextDirection[i])));
}
};