Commit Graph

32 Commits

Author SHA1 Message Date
maj00r
760dfb38da Show Ctrl+Shift bindings in red on the keyboard
They were drawn as a Shift and a Ctrl binding at once. The key flyout's rows
carry the same colours as the keys.
2026-10-04 19:27:25 +02:00
maj00r
37dd038b96 Explain the missing-simulator prompt and name its buttons
It now says where the starter looks for the simulator and why it matters,
that starting from the wrong folder is the usual cause, and answers with
"Point to the simulator" and "Not now" instead of Yes and No.
2026-10-04 18:59:14 +02:00
maj00r
2e7e967279 Say only what a tail coupler does: end signals or none
The simulator reads the last vehicle's coupler for one thing, whether to put
up the end signals. It does not couple the train to anything behind it, as
the tooltip and a comment claimed.
2026-10-04 18:57:58 +02:00
maj00r
00a62ab568 Colour the depot couplers by what they connect
Each coupler on the consist strip now shows its state: free, coupled,
multiple-unit, permanent, and at the back whether the end signals go up.
The tooltip gives the code and the connections instead of the drag hint,
and the flyout edits mark the coupler as set by hand and restyle it in
place. The note about 0 on the last vehicle is gone - the colour says it.
2026-10-04 18:55:16 +02:00
maj00r
36dd4a020f Name the depot categories as the old starter did
Elektrowozy, Spalinowozy, Szynobusy, Wagony A... in Polish, and the old names
in English, Czech and Hungarian; Hungarian keeps the electric locomotives
apart from the trams, which the old list called the same, and Russian, which
it did not have, goes plural like the rest.
2026-10-04 18:49:02 +02:00
maj00r
52ad490fb7 Drop the update check - Steam updates the starter
The daily GitHub check, the top-bar button, the stable/staging channel and
"check now" go, with their settings and texts.
2026-10-04 18:46:38 +02:00
maj00r
6cedf8b6f6 Lay out and drive the depot browser the way the old starter did
Picking a category picks its first class and lists that class, instead of
every vehicle of the category; only categories with something in them are
offered, in the old order. The archival switch has its own line, the class
box shows the thumbnail of the class picked, and the search sits above the
list and looks through every vehicle. The rows are the bare texture names, a
set marked faintly; an empty list says what to do; the thumbnail and Add
share a line so the list keeps its height.
2026-10-04 18:44:17 +02:00
maj00r
384d8c1bca Let Auto bring the back of the train to 0, hand-set or not
Auto now clears the hand-set marks before picking the couplers and is
available on the last vehicle too.
2026-10-04 18:15:01 +02:00
maj00r
b4ae9164bb Drop the unused paused-volume string
The simulator reads no sound.volume.paused - nor gfx.framebuffer.fidelity,
whose job the buffer scale does through gfx.framebuffer.width and height.
2026-10-04 18:11:59 +02:00
maj00r
4650e4899c Bring back the maximum amount button among the consist load tools 2026-10-04 14:40:08 +02:00
maj00r
00795513b9 Keep a last-vehicle coupler set by hand
The back of the consist goes to 0 after every change unless its coupler was
set in the editor; a car that gets a neighbour loses that mark, so it is
freed again once it is last again.
2026-10-04 14:33:48 +02:00
maj00r
6232930f4c Leave the last vehicle's coupler at 0 so the train gets its end signals
The simulator hangs end signals only on a last vehicle with coupler 0; every
new car came with 3 and the pass that couples neighbours never touched the
last one, nor did taking a car off the end. The coupler editor says so for
the last vehicle.
2026-10-04 14:28:40 +02:00
maj00r
e0901ae0ab Star favourite sceneries in the list
A right click stars or unstars the scenery under it; the starred ones are
gathered in a group on top and marked where they belong. They are kept in
favorites.txt beside the settings, not in eu07.ini.
2026-10-04 14:23:16 +02:00
maj00r
be34d48033 Open the scenery editor from the start button's menu
eu07 -edit with the scenery file itself, not the export, so what is saved
lands in the scenery. Not every simulator build has the editor; that is said
before it starts.
2026-10-04 14:17:02 +02:00
maj00r
a9f4a09cf5 Add a vehicle several times from the browser's menu
The count is asked for in a flyout; the copies go in one after another, each
staffed as a single add would be, with one redraw.
2026-10-04 14:03:52 +02:00
maj00r
bbc163b204 Warn when the experimental renderer is picked 2026-10-04 14:00:52 +02:00
maj00r
5e130fcd98 Point the crash report at the minidump the simulator left
The simulator writes crash_*.dmp relative to its working directory, and
crashpad under crashdumps; the newest one from this run is named, with an
offer to open its folder.
2026-10-04 13:44:47 +02:00
maj00r
59798e41fa Report a simulator that crashes or closes right after the start
The exit code, read with its signal or NTSTATUS, and the last lines of the
error stream - or of log.txt when it stayed silent. The stream is captured
only while the starter stays to read it.
2026-10-04 13:38:29 +02:00
maj00r
3083523ceb Let the simulator be picked from outside the installation
A build tree kept beside the data can be chosen in the settings, and when no
simulator is found the starter asks for one instead of calling the
installation broken. The simulator now runs in the installation, not in the
folder of its binary, and a binary for the other system is no longer refused.
2026-10-04 13:27:28 +02:00
maj00r
2b3c46938c Check GitHub for a newer starter once a day, with a button to check now
The stable channel compares versions; the testing channel offers the staging
build of another commit. The channel switch is the starter's only, not the
simulator's.
2026-10-04 13:26:49 +02:00
maj00r
9d981cb093 Add a developer tab with the state of the vehicle database 2026-10-04 12:18:36 +02:00
maj00r
392d9e7b6a Give the consist state its own section, drop the maximum amount button
The ready-to-go box was sitting under a heading about cargo.
2026-09-04 23:34:29 +02:00
maj00r
c0cc696dc9 Restore the three-state consist override in settings
Keeps the old starter's starter.batterydefault key and its three states. The
setting wins over the depot checkbox, which greys out and says so while an
override is in force.
2026-09-04 23:24:45 +02:00
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
aef086e9f0 WIP: settings sections, shortcuts window, depot tweaks 2026-09-04 20:40:47 +02:00
maj00r
8ed3765562 read rolling stock from dynamic/*/*/textures.txt, drop vehicles.json 2026-08-31 00:44:56 +02:00
maj00r
563a937eb9 wider migration from old starter 2026-08-30 22:29:45 +02:00
maj00r
c7853f6588 Leave shaders/tonemapping.glsl alone and validate the sim executable
Shaders: drop ApplyHdrShader and FindBundled. The Pascal starter only copied
starter/Reinhard.glsl over shaders/tonemapping.glsl when the user picked an
operator in the HDR combo (uSettings.pas ChangeHDR, its only caller being
cbHDRChange), never on an ordinary save. We ran it from SaveTo, so every save
replaced the file the game ships. That file has been tracked in the game repo
since 2020 and now defaults to AgX, so overwriting it with a 2021-vintage
Reinhard was a two-generation downgrade that also lost the NaN/Inf sanitize.
Also comments out gfx.postfx.tonemapping on save; the engine has no such key.

Executable: ResolveExecutable now validates its pick (file exists, has an
execute bit outside Windows, and the MZ/ELF header matches the running OS) and
returns the first candidate that passes instead of the first that matches by
name. .exe is no longer a Linux candidate - a Steam install with the native
binary still zipped would otherwise resolve to the Windows PE. On failure the
problem reaches the caller, and MainWindow shows it instead of swallowing the
exception, so a launch that does nothing is no longer silent. A manual pick
whose file is temporarily missing is kept in the combo rather than falling back
to auto and being overwritten on the next save.

Claude-Session: https://claude.ai/code/session_01HamVNWE9mwmz1vs2iEpNQq
2026-08-29 16:42:36 +02:00
maj00r
e3caa9d38f Fix the language picker and tidy the graphics tab
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.
2026-08-25 22:17:11 +02:00
maj00r
f9960e5113 updated translations [wip] 2026-08-25 21:22:39 +02:00
maj00r
9e2166065b Rework the depot browser layout and confirm a crewless start
The vehicle database panel loses its header bar and packs the search box and
the archival filter into one line, the class combo takes a full-width line of
its own with a miniature (big in the drop-down, one line when closed) and the
bulk / texture-base actions move into the Add button's drop-down. The mini
preview sits beside the texture data and stays hidden until an entry is
picked, so the list keeps the space.

Picking a class or a vehicle now fills both combos in, and a class alone is a
valid filter (it used to leave the list empty without a category). The combos
and the list are rebuilt on the next dispatcher pass, since clearing Items
from inside the SelectionChanged that asked for it throws.

Vehicle removal becomes a per-card tool next to flip / crew, the scenery and
vehicle names move into their panel headers, and the texture randomizer
dialog sizes to its content instead of clipping its last button.

Start no longer hides behind Ctrl: a consist with no crew and no passenger
says so on the button and asks for confirmation before launching.
2026-08-25 20:58:57 +02:00
maj00r
2298d6c803 Add scenery i18n and Czech/Hungarian/Russian translations
Scenery @token strings resolve via SceneryI18n; add cz/hu/ru language files and the new UI strings for the depot and scenarios features.
2026-08-22 23:15:18 +02:00