mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-18 03:09:18 +02:00
Merge remote-tracking branch 'tmj/master' into sim
This commit is contained in:
50
EvLaunch.cpp
50
EvLaunch.cpp
@@ -81,25 +81,6 @@ bool TEventLauncher::Load(cParser *parser)
|
||||
}
|
||||
parser->getTokens();
|
||||
*parser >> DeltaTime;
|
||||
if (DeltaTime < 0.0)
|
||||
DeltaTime = -DeltaTime; // dla ujemnego zmieniamy na dodatni
|
||||
else if (DeltaTime > 0)
|
||||
{ // wartość dodatnia oznacza wyzwalanie o określonej godzinie
|
||||
iMinute = int(DeltaTime) % 100; // minuty są najmłodszymi cyframi dziesietnymi
|
||||
iHour = int(DeltaTime - iMinute) / 100; // godzina to setki
|
||||
DeltaTime = 0; // bez powtórzeń
|
||||
// potentially shift the provided time by requested offset
|
||||
auto const timeoffset { static_cast<int>( Global.ScenarioTimeOffset * 60 ) };
|
||||
if( timeoffset != 0 ) {
|
||||
auto const adjustedtime { clamp_circular( iHour * 60 + iMinute + timeoffset, 24 * 60 ) };
|
||||
iHour = ( adjustedtime / 60 ) % 24;
|
||||
iMinute = adjustedtime % 60;
|
||||
}
|
||||
WriteLog(
|
||||
"EventLauncher at "
|
||||
+ std::to_string( iHour ) + ":"
|
||||
+ ( iMinute < 10 ? "0" : "" ) + to_string( iMinute ) ); // wyświetlenie czasu
|
||||
}
|
||||
parser->getTokens();
|
||||
*parser >> token;
|
||||
asEvent1Name = token; // pierwszy event
|
||||
@@ -131,7 +112,7 @@ bool TEventLauncher::Load(cParser *parser)
|
||||
*parser >> token;
|
||||
if (token != "*") //*=nie brać wartości 1. pod uwagę
|
||||
{
|
||||
iCheckMask |= basic_event::flags::value_1;
|
||||
iCheckMask |= basic_event::flags::value1;
|
||||
fVal1 = atof(token.c_str());
|
||||
}
|
||||
else
|
||||
@@ -140,7 +121,7 @@ bool TEventLauncher::Load(cParser *parser)
|
||||
*parser >> token;
|
||||
if (token.compare("*") != 0) //*=nie brać wartości 2. pod uwagę
|
||||
{
|
||||
iCheckMask |= basic_event::flags::value_2;
|
||||
iCheckMask |= basic_event::flags::value2;
|
||||
fVal2 = atof(token.c_str());
|
||||
}
|
||||
else
|
||||
@@ -148,6 +129,29 @@ bool TEventLauncher::Load(cParser *parser)
|
||||
parser->getTokens(); // słowo zamykające
|
||||
*parser >> token;
|
||||
}
|
||||
|
||||
if( DeltaTime < 0 )
|
||||
DeltaTime = -DeltaTime; // dla ujemnego zmieniamy na dodatni
|
||||
else if( DeltaTime > 0 ) { // wartość dodatnia oznacza wyzwalanie o określonej godzinie
|
||||
iMinute = int( DeltaTime ) % 100; // minuty są najmłodszymi cyframi dziesietnymi
|
||||
iHour = int( DeltaTime - iMinute ) / 100; // godzina to setki
|
||||
DeltaTime = 0; // bez powtórzeń
|
||||
// potentially shift the provided time by requested offset
|
||||
auto const timeoffset{ static_cast<int>( Global.ScenarioTimeOffset * 60 ) };
|
||||
if( timeoffset != 0 ) {
|
||||
auto const adjustedtime{ clamp_circular( iHour * 60 + iMinute + timeoffset, 24 * 60 ) };
|
||||
iHour = ( adjustedtime / 60 ) % 24;
|
||||
iMinute = adjustedtime % 60;
|
||||
}
|
||||
|
||||
WriteLog(
|
||||
"EventLauncher at "
|
||||
+ std::to_string( iHour ) + ":"
|
||||
+ ( iMinute < 10 ? "0" : "" ) + to_string( iMinute )
|
||||
+ " (" + asEvent1Name
|
||||
+ ( asEvent2Name != "none" ? " / " + asEvent2Name : "" )
|
||||
+ ")" ); // wyświetlenie czasu
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -309,8 +313,8 @@ TEventLauncher::export_as_text_( std::ostream &Output ) const {
|
||||
<< "condition "
|
||||
<< asMemCellName << ' '
|
||||
<< szText << ' '
|
||||
<< ( ( iCheckMask & basic_event::flags::value_1 ) != 0 ? to_string( fVal1 ) : "*" ) << ' '
|
||||
<< ( ( iCheckMask & basic_event::flags::value_2 ) != 0 ? to_string( fVal2 ) : "*" ) << ' ';
|
||||
<< ( ( iCheckMask & basic_event::flags::value1 ) != 0 ? to_string( fVal1 ) : "*" ) << ' '
|
||||
<< ( ( iCheckMask & basic_event::flags::value2 ) != 0 ? to_string( fVal2 ) : "*" ) << ' ';
|
||||
}
|
||||
// footer
|
||||
Output
|
||||
|
||||
Reference in New Issue
Block a user