The test mode turned off what comes in from outside, but a few settings
of the user's eu07.ini still reached out of a test run:
- feedbackmode: 1 and 2 toggle Caps Lock / Scroll Lock by injecting key
events into the whole system, 3 and 4 drive an LPT port or a PoKeys
desk (and 4 reads the desk's switches);
- multiplayer: events are reported to a multiplayer server, and some
events are held back for it;
- execonexit: a program is run with system() at the end of each run,
which also waits for it;
- showsystemconsole: a console of the run's own pops up and stdout is
reopened on it, so whoever started the test with a redirected output
doesn't get the `test:` line (and a console the run was started from
would be hidden without it);
- imgui.ini in the game folder was written by every run, and by several
at once with run.py -j.
All of these are off in test mode. Nothing changes outside it.
A scenario failing past its opening popped the loader mode and went on to pop it again and push the driver mode with the scenery half loaded; it goes back to the launcher as one that can't be opened. FileCased() goes through the folder only where the file system tells the case apart: on Windows a missing file was looked for in its whole folder for nothing, and a name outside the code page threw from the parser. The Discord thread sleeps a quarter of a second outside the driver mode, not to hold the closing up.
Deleting a model in the editor left the renderer holding it as the picked node, the next pick used freed memory: the renderer forgets it now (Forget_Node). A texture filled straight from memory (internalsrc:) can't be read again, released by the garbage sweep it came back grey; it stays now, and the units bound with the old name are rebound. The arrays of the ED brake force sharing are vectors, they leaked once per update. The scene hierarchy and the editor menu items go through the translation. Python caches ignored.
Pulling a panel's grip into the corner of the screen pushed it a couple of
pixels past the main window, and ImGui gave it an OS window of its own. Now
a panel only comes out when dragged with the cursor outside the main window.
A panel that stays in the main window needs its grips in reach, so a resize
stops at the edge, and a panel left past the edge or too big for the window
is moved back and shrunk to fit.
This is a new io.ConfigViewportsNoAutoDetach option in our copy of ImGui, so
it has to be carried over when ImGui gets updated. ImGui itself has no option
for this, as of 1.93.1.