mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-11-15 05:59:06 +01:00
refactor(simulation): tidy the test mode code
The test manager is reached through simulation::test() instead of a global, the result cell is owned by a unique_ptr until the memory table takes it, the cell value is compared with a margin, strings are built with std::format and the --test settings moved to apply_test_mode_settings(). The driver's signal check is folded into UpdateSpeedPosition(), which updates a speed table entry and reports a signal at stop the head of the train just passed. The test.* keys are listed with the other settings at the start of the log.
This commit is contained in:
@@ -1137,6 +1137,38 @@ void eu07_application::init_files()
|
||||
}
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
// the settings of the test mode (--test), over whatever the settings files say
|
||||
void apply_test_mode_settings()
|
||||
{
|
||||
// nobody watches nor listens: no player vehicle, nothing drawn, no sound, no window in the way
|
||||
Global.editor_session = false;
|
||||
Global.local_start_vehicle = "ghostview";
|
||||
Global.GfxRenderer = "null";
|
||||
Global.NvRenderer = false;
|
||||
Global.bSoundEnabled = false;
|
||||
Global.python_enabled = false;
|
||||
Global.bInactivePause = false;
|
||||
Global.bFullScreen = false;
|
||||
Global.fullscreen_windowed = false;
|
||||
Global.VSync = false;
|
||||
Global.iMultisampling = 0;
|
||||
Global.gfx_usegles = false;
|
||||
Global.minframetime = std::chrono::duration<float>(0.0f);
|
||||
Global.extra_viewports.clear();
|
||||
Global.headtrack_conf.joy.clear();
|
||||
// a test runs on its own
|
||||
Global.network_servers.clear();
|
||||
Global.network_client.reset();
|
||||
// and the same way every time, unless given another seed (-seed, or randomseed in the settings)
|
||||
if (!Global.random_seed)
|
||||
Global.random_seed = seed_of("test");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int eu07_application::init_settings(int Argc, char *Argv[])
|
||||
{
|
||||
Global.asVersion = VERSION_INFO;
|
||||
@@ -1241,28 +1273,7 @@ int eu07_application::init_settings(int Argc, char *Argv[])
|
||||
ErrorLog("test: --test needs a scenery given with -s");
|
||||
return -1;
|
||||
}
|
||||
// nobody watches nor listens: no player vehicle, nothing drawn, no sound, no window in the way
|
||||
Global.editor_session = false;
|
||||
Global.local_start_vehicle = "ghostview";
|
||||
Global.GfxRenderer = "null";
|
||||
Global.NvRenderer = false;
|
||||
Global.bSoundEnabled = false;
|
||||
Global.python_enabled = false;
|
||||
Global.bInactivePause = false;
|
||||
Global.bFullScreen = false;
|
||||
Global.fullscreen_windowed = false;
|
||||
Global.VSync = false;
|
||||
Global.iMultisampling = 0;
|
||||
Global.gfx_usegles = false;
|
||||
Global.minframetime = std::chrono::duration<float>(0.0f);
|
||||
Global.extra_viewports.clear();
|
||||
Global.headtrack_conf.joy.clear();
|
||||
// a test runs on its own
|
||||
Global.network_servers.clear();
|
||||
Global.network_client.reset();
|
||||
// and the same way every time, unless given another seed (-seed, or randomseed in the settings)
|
||||
if (!Global.random_seed)
|
||||
Global.random_seed = seed_of("test");
|
||||
apply_test_mode_settings();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user