mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-19 09:59:18 +02:00
completed .fiz file loader; minor parser enhancement, wheel slip and schedule loader bug fixes.
This commit is contained in:
43
DynObj.cpp
43
DynObj.cpp
@@ -1873,13 +1873,13 @@ TDynamicObject::Init(std::string Name, // nazwa pojazdu, np. "EU07-424"
|
||||
{
|
||||
if (Cab == 0)
|
||||
MoverParameters->BrakeCtrlPos =
|
||||
floor(MoverParameters->Handle->GetPos(bh_NP));
|
||||
static_cast<int>( std::floor(MoverParameters->Handle->GetPos(bh_NP)) );
|
||||
else
|
||||
MoverParameters->BrakeCtrlPos = floor(MoverParameters->Handle->GetPos(bh_RP));
|
||||
MoverParameters->BrakeCtrlPos = static_cast<int>( std::floor(MoverParameters->Handle->GetPos(bh_RP)) );
|
||||
}
|
||||
else
|
||||
MoverParameters->BrakeCtrlPos =
|
||||
floor(MoverParameters->Handle->GetPos(bh_NP));
|
||||
static_cast<int>( std::floor(MoverParameters->Handle->GetPos(bh_NP)) );
|
||||
|
||||
MoverParameters->BrakeLevelSet(
|
||||
MoverParameters->BrakeCtrlPos); // poprawienie hamulca po ewentualnym
|
||||
@@ -2920,7 +2920,7 @@ bool TDynamicObject::Update(double dt, double dt1)
|
||||
// 1. najpierw daj kazdemu tyle samo
|
||||
int i = 0;
|
||||
for (TDynamicObject *p = GetFirstDynamic(MoverParameters->ActiveCab < 0 ? 1 : 0, 4); p;
|
||||
(kier > 0 ? p = p->NextC(4) : p = p->PrevC(4)))
|
||||
p = (kier == true ? p->NextC(4) : p->PrevC(4)) )
|
||||
{
|
||||
float Nmax = ((p->MoverParameters->P2FTrans * p->MoverParameters->MaxBrakePress[0] -
|
||||
p->MoverParameters->BrakeCylSpring) *
|
||||
@@ -2948,7 +2948,7 @@ bool TDynamicObject::Update(double dt, double dt1)
|
||||
i = 0;
|
||||
float przek = 0;
|
||||
for (TDynamicObject *p = GetFirstDynamic(MoverParameters->ActiveCab < 0 ? 1 : 0, 4); p;
|
||||
(kier > 0 ? p = p->NextC(4) : p = p->PrevC(4)))
|
||||
p = (kier == true ? p->NextC(4) : p->PrevC(4)) )
|
||||
{
|
||||
if ((FzEP[i] > 0.01) &&
|
||||
(FzEP[i] >
|
||||
@@ -3302,13 +3302,16 @@ bool TDynamicObject::Update(double dt, double dt1)
|
||||
switch (i) // numer pantografu
|
||||
{ // trzeba usunąć to rozróżnienie
|
||||
case 0:
|
||||
if (Global::bLiveTraction ? false :
|
||||
!p->hvPowerWire) // jeśli nie ma drutu, może pooszukiwać
|
||||
if( ( Global::bLiveTraction == false )
|
||||
&& ( p->hvPowerWire == nullptr ) ) {
|
||||
// jeśli nie ma drutu, może pooszukiwać
|
||||
MoverParameters->PantFrontVolt =
|
||||
(p->PantWys >= 1.2) ? 0.95 * MoverParameters->EnginePowerSource.MaxVoltage :
|
||||
0.0;
|
||||
else if (MoverParameters->PantFrontUp ? (PantDiff < 0.01) :
|
||||
false) // tolerancja niedolegania
|
||||
( p->PantWys >= 1.2 ) ?
|
||||
0.95 * MoverParameters->EnginePowerSource.MaxVoltage :
|
||||
0.0;
|
||||
}
|
||||
else if( ( true == MoverParameters->PantFrontUp )
|
||||
&& ( PantDiff < 0.01 ) ) // tolerancja niedolegania
|
||||
{
|
||||
if ((MoverParameters->PantFrontVolt == 0.0) &&
|
||||
(MoverParameters->PantRearVolt == 0.0))
|
||||
@@ -3328,12 +3331,16 @@ bool TDynamicObject::Update(double dt, double dt1)
|
||||
MoverParameters->PantFrontVolt = 0.0;
|
||||
break;
|
||||
case 1:
|
||||
if (Global::bLiveTraction ? false :
|
||||
!p->hvPowerWire) // jeśli nie ma drutu, może pooszukiwać
|
||||
if( ( false == Global::bLiveTraction )
|
||||
&& ( nullptr == p->hvPowerWire ) ) {
|
||||
// jeśli nie ma drutu, może pooszukiwać
|
||||
MoverParameters->PantRearVolt =
|
||||
(p->PantWys >= 1.2) ? 0.95 * MoverParameters->EnginePowerSource.MaxVoltage :
|
||||
0.0;
|
||||
else if (MoverParameters->PantRearUp ? (PantDiff < 0.01) : false)
|
||||
( p->PantWys >= 1.2 ) ?
|
||||
0.95 * MoverParameters->EnginePowerSource.MaxVoltage :
|
||||
0.0;
|
||||
}
|
||||
else if ( ( true == MoverParameters->PantRearUp )
|
||||
&& ( PantDiff < 0.01 ) )
|
||||
{
|
||||
if ((MoverParameters->PantRearVolt == 0.0) &&
|
||||
(MoverParameters->PantFrontVolt == 0.0))
|
||||
@@ -4372,7 +4379,6 @@ void TDynamicObject::LoadMMediaFile(std::string BaseDir, std::string TypeName,
|
||||
pants = NULL; // wskaźnik pierwszego obiektu animującego dla pantografów
|
||||
cParser parser( TypeName + ".mmd", cParser::buffer_FILE, BaseDir );
|
||||
std::string token;
|
||||
int i;
|
||||
do {
|
||||
token = "";
|
||||
parser.getTokens(); parser >> token;
|
||||
@@ -4387,7 +4393,8 @@ void TDynamicObject::LoadMMediaFile(std::string BaseDir, std::string TypeName,
|
||||
iMultiTex = 1;
|
||||
asModel.erase( asModel.length() - 1 );
|
||||
}
|
||||
if ((i = asModel.find(',')) != std::string::npos)
|
||||
std::size_t i = asModel.find( ',' );
|
||||
if ( i != std::string::npos )
|
||||
{ // Ra 2015-01: może szukać przecinka w
|
||||
// nazwie modelu, a po przecinku była by
|
||||
// liczba
|
||||
|
||||
Reference in New Issue
Block a user