diff --git a/EvLaunch.cpp b/EvLaunch.cpp index bbc7dcfc..b8e1f08a 100644 --- a/EvLaunch.cpp +++ b/EvLaunch.cpp @@ -72,8 +72,17 @@ bool TEventLauncher::Load(cParser *parser) iMinute = int(DeltaTime) % 100; // minuty są najmłodszymi cyframi dziesietnymi iHour = int(DeltaTime - iMinute) / 100; // godzina to setki DeltaTime = 0; // bez powtórzeń - WriteLog("EventLauncher at " + std::to_string(iHour) + ":" + - std::to_string(iMinute)); // wyświetlenie czasu + // potentially shift the provided time by requested offset + auto const timeoffset { static_cast( Global.ScenarioTimeOffset * 60 ) }; + if( timeoffset != 0 ) { + auto const adjustedtime { clamp_circular( iHour * 60 + iMinute + timeoffset, 24 * 60 ) }; + iHour = ( adjustedtime / 60 ) % 60; + iMinute = adjustedtime % 60; + } + WriteLog( + "EventLauncher at " + + std::to_string( iHour ) + ":" + + ( iMinute < 10 ? "0" : "" ) + to_string( iMinute ) ); // wyświetlenie czasu } parser->getTokens(); *parser >> token; diff --git a/World.cpp b/World.cpp index 1cb15127..f11a18e0 100644 --- a/World.cpp +++ b/World.cpp @@ -62,7 +62,7 @@ simulation_time::init() { ::memcpy( m_monthdaycounts, monthdaycounts, sizeof( monthdaycounts ) ); // potentially adjust scenario clock - auto const requestedtime { clamp_circular( m_time.wHour * 60 + m_time.wMinute + Global.ScenarioTimeOffset * 60, 1440 ) }; + auto const requestedtime { clamp_circular( m_time.wHour * 60 + m_time.wMinute + Global.ScenarioTimeOffset * 60, 24 * 60 ) }; auto const requestedhour { ( requestedtime / 60 ) % 60 }; auto const requestedminute { requestedtime % 60 }; // cache requested elements, if any diff --git a/mtable.cpp b/mtable.cpp index a5109fd8..74ce57b3 100644 --- a/mtable.cpp +++ b/mtable.cpp @@ -230,8 +230,6 @@ bool TTrainParameters::LoadTTfile(std::string scnpath, int iPlus, double vmax) std::ifstream fin; bool EndTable; double vActual; - int i; - int time; // do zwiększania czasu int ConversionError = 0; EndTable = false; @@ -523,22 +521,23 @@ bool TTrainParameters::LoadTTfile(std::string scnpath, int iPlus, double vmax) /* TTVmax:=TimeTable[1].vmax; */ } auto const timeoffset { static_cast( Global.ScenarioTimeOffset * 60 ) + iPlus }; - if( timeoffset != 0.0 ) // jeżeli jest przesunięcie rozkładu + if( timeoffset != 0 ) // jeżeli jest przesunięcie rozkładu { long i_end = StationCount + 1; - for (i = 1; i < i_end; ++i) // bez with, bo ciężko się przenosi na C++ + int adjustedtime; // do zwiększania czasu + for (auto i = 1; i < i_end; ++i) // bez with, bo ciężko się przenosi na C++ { if ((TimeTable[i].Ah >= 0)) { - time = clamp_circular( TimeTable[i].Ah * 60 + TimeTable[i].Am + timeoffset, 1440 ); // nowe minuty - TimeTable[i].Am = time % 60; - TimeTable[i].Ah = (time /*div*/ / 60) % 60; + adjustedtime = clamp_circular( TimeTable[i].Ah * 60 + TimeTable[i].Am + timeoffset, 24 * 60 ); // nowe minuty + TimeTable[i].Am = adjustedtime % 60; + TimeTable[i].Ah = (adjustedtime /*div*/ / 60) % 60; } if ((TimeTable[i].Dh >= 0)) { - time = clamp_circular( TimeTable[i].Dh * 60 + TimeTable[i].Dm + timeoffset, 1440 ); // nowe minuty - TimeTable[i].Dm = time % 60; - TimeTable[i].Dh = (time /*div*/ / 60) % 60; + adjustedtime = clamp_circular( TimeTable[i].Dh * 60 + TimeTable[i].Dm + timeoffset, 24 * 60 ); // nowe minuty + TimeTable[i].Dm = adjustedtime % 60; + TimeTable[i].Dh = (adjustedtime /*div*/ / 60) % 60; } } } diff --git a/version.h b/version.h index 91b2b070..daaacb26 100644 --- a/version.h +++ b/version.h @@ -1,5 +1,5 @@ #pragma once #define VERSION_MAJOR 18 -#define VERSION_MINOR 329 +#define VERSION_MINOR 330 #define VERSION_REVISION 0