It was a global preference that rewrote the trainset speed at launch, while what
it really sets is whether this consist starts prepared or cold. Now a checkbox in
the consist-scope section, acting on the consist being edited.
Both language combos decided a change was the user's by checking
IsKeyboardFocusWithin on the picked item. Selecting with the mouse leaves the
focus on the combo, not on the item, so on Windows the check failed and the
language never changed. The handlers now compare the picked code with the one
already loaded instead of guessing who caused the event: filling the combo in
selects what is loaded and stops there, a real pick differs and applies.
The settings tab listed a hard-coded Polski / English pair and wrote the
language back as "Polski" or "English", so picking Czech, Hungarian or
Russian in the top bar was overwritten on save. It is filled from lang/ now,
and writes back the selected entry.
LocalizationService gains a LanguageChanged event: the main window rebuilds
the captions that code builds once (train stats, panel headers, combo items)
from there, so a pick in either place refreshes them. Its PropertyChanged
also names the indexer "Item[]", which is what bindings listen for.
Graphics tab: the track-curve quality slider moves over from Physics, the
view angle shows a degree sign instead of the Polish "stopni", and the HDR
tone-mapping picker is gone - only Reinhard.glsl ever shipped, so
ApplyHdrShader copies that one and the starter.hdr setting is dropped.
Cross-checked against ../maszyna: several StarterNG defaults didn't
match the simulator's actual defaults (Globals.h), and three exposed
options never mapped to a real eu07.ini key.
- Correct defaults to match the engine: VSync=false, LiveTraction=true,
VirtualShunting(ai.trainman)=true, DynamicLights=7 fallback,
CabShadowsRange=0, GfxResourceSweep=true, FeedbackMode=1,
ShadowMapResolution=2048, ReflectionsFidelity=0, Volume=50.
- Remove Post-processing (gfx.postfx.tonemapping), onboard-screen
refresh rate (pyscreenrendererpriority), and volume-during-pause
(sound.volume.paused) — none of these keys exist in the simulator.
- Only apply parsed UART feature tokens when eu07.ini actually has an
uartfeature line; otherwise fall back to the engine's own defaults
instead of all-false.
Adds save/apply named settings profiles (SettingsProfileStore), a
battery-default export option that rewrites trainset velocity on
launch, and an option to omit decorative trainsets from the exported
scenery. Also surfaces many previously-unmapped eu07.ini keys in the
Settings UI (UART/feedback port, FPS limit, shadow angle, fullscreen
windowed, ANGLE Vulkan, friction/brake sensitivity, and an Advanced
section for texture/GLES/threading tunables).
- Add DynamicLights (0–7) setting mapped to the eu07.ini dynamiclights key,
exposed as a slider in the Graphics section of Settings.
- Fix config file paths on macOS for eu07.ini, eu07_input-keyboard.ini,
and userpresets.json to use ~/Library/Application Support/MaSzyna/
instead of falling through to the Linux XDG path.