maj00r
cef00c4e3c
Move the battery option to the depot as a consist property
...
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.
2026-09-04 23:17:17 +02:00
maj00r
7849ef9729
Remove the missing-thumbnail mocking
...
Leaves the plain chain: own thumbnail, other.bmp, drawn wagon.
2026-09-04 22:19:02 +02:00
maj00r
6a21a2fd27
Temporarily make half the thumbnails act as missing
2026-09-04 22:10:25 +02:00
maj00r
b33d7697a0
Fix cp1250 decoding, log unsupported loads
...
The repositories resolved GetEncoding(1250) in their constructors, before
anything registered CodePagesEncodingProvider - reads fell back to Latin-1 and
Polish characters came out as mojibake.
2026-09-04 22:06:59 +02:00
maj00r
673cda57d7
Keep a language code the starter cannot display in eu07.ini
...
Matches the old starter: lower case, and an unknown code is left alone.
2026-09-04 21:57:08 +02:00
maj00r
27f0e97b43
Draw a stand-in for a missing thumbnail, pass the language code to eu07.ini
...
The file was getting "pl" or "en" whatever the user picked, so a simulator with
its own language file started in English.
2026-09-04 21:53:29 +02:00
maj00r
8e87eb8638
Show bare keys in settings, fix the depot detail tabs
...
Drops the vehicle counter from the General tab, and the texture tab stops
gluing "label: value" into single lines and uses the same rows as General.
2026-09-04 21:41:38 +02:00
maj00r
bce008f0ed
Stop printing a default for text-valued setting keys
...
An absent lang key does not mean English, it means follow the system language.
2026-09-04 21:36:13 +02:00
maj00r
4aec689059
Take the scenario presentation logic out of the code-behind
...
Scenery tree, fog scale, season dates and timetable lookup become their own
classes.
2026-09-04 21:26:28 +02:00
maj00r
e969137824
Show the eu07.ini key on every settings row
2026-09-04 21:21:14 +02:00
maj00r
3c502f630d
Split Settings into model, serializer, paths and store
...
698 lines did all of it at once. The mutable CaptureFromUi callback becomes an
ISettingsCapture the settings view implements.
2026-09-04 21:13:06 +02:00
maj00r
8e5fe01104
Take the remaining I/O out of the domain and drop AppState.Instance
...
Scenery translations and load weights get repositories; AppState moves to the
application layer.
2026-09-04 21:06:23 +02:00
maj00r
0444070e12
Move rolling stock and physics into the domain
...
VehicleDatabase becomes VehicleCatalog, Physics becomes VehiclePhysics, and the
textures.txt and .fiz parsers move to Infrastructure. GameLibrary replaces the
GameData singleton.
2026-09-04 21:03:08 +02:00
maj00r
789f0dd1c9
Make Scenery a domain aggregate with no I/O
...
Parsing and loading move to Infrastructure/Sceneries. Weather becomes a value
object owning the "does this differ from the file" rule.
2026-09-04 20:53:50 +02:00
maj00r
a3137a27c4
Introduce layers, ports and a composition root
...
Ports in Application/Abstractions, adapters in Infrastructure, hand-wired
AppServices (no reflection, as PublishAot requires). Adds a test project.
2026-09-04 20:46:51 +02:00