Commit Graph

139 Commits

Author SHA1 Message Date
maj00r
0d6af369c4 Open no menu on a scenery group in the tree 2026-10-04 18:11:59 +02:00
maj00r
3dd6aa755e Join the user ini path in the tests the way the starter does
The tests spelled it with slashes and failed on the Windows runner, where
Path.Combine uses backslashes. Also drops a null warning in the drag code.
2026-10-04 18:08:48 +02:00
maj00r
72b4e44c43 Hand the driver over when a locomotive is moved to the head
The locomotive put first takes the driver, in cab A; the one it pushed
behind is left unstaffed. Stepping a card left or right is now an ordinary
move, so it also recouples the train and frees the coupler at its back.
2026-10-04 18:08:14 +02:00
maj00r
bfa899718c Size the class list's thumbnails like the consist cards 2026-10-04 14:43:26 +02:00
maj00r
4650e4899c Bring back the maximum amount button among the consist load tools 2026-10-04 14:40:08 +02:00
maj00r
a54576b975 Find the list item under the pointer with FindAncestorOfType 2026-10-04 14:38:05 +02:00
maj00r
3ac792c0fa Move the log and crash dump lookup out of the start use case 2026-10-04 14:38:05 +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
925ac87129 Add several copies from a vehicle's menu in the consist too
The copies go right after the vehicle, a whole unit for one of a set. The
count flyout is shared with the browser.
2026-10-04 14:30:53 +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
e8cec0867e Let the consist panel shrink with the small thumbnails 2026-10-04 14:09:26 +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
73ff00f22e Join and split vehicles facing different ways without moving a car
Joining took each card's cars in stored order and turned the lot by the
first card's flag, so a turned card came out reversed; splitting gave every
car the unit's flag. Both now go by the running order, and the coupler sides
by each car's own facing, which is what the export writes.
2026-10-04 13:59:01 +02:00
maj00r
d510a55740 Turn multi-car units as a whole when orientation is randomised or a unit swapped
Randomising flipped only the card's flag, so a multi-car unit was exported
with its cars in reverse order but each still facing forward - coupled back
to front. A swap copied the flag without turning the new cars. Both now turn
flag, cars and order together, as Flip does, and a locked unit as one.
2026-10-04 13:54:51 +02:00
maj00r
c1c47f746e Harden the CI workflow
Actions pinned to full commits, no token left in the checkout, no binaries
from a fork's pull request among the artifacts, the version passed through the
environment, an audit of the NuGet packages, time limits, one release at a
time with checksums and never over another commit's release, and Dependabot
for the actions and packages.
2026-10-04 13:50:41 +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
04f6a4cc8d Keep the crew when a vehicle is swapped in the depot
The crew was copied to the card but not to the new cars, which are what is
shown and exported, so a swapped locomotive came out unstaffed. Swapping now
moves the crew over and otherwise staffs the vehicle as adding would.
2026-10-04 13:31:53 +02:00
maj00r
76f104798c Start a Windows build of the simulator through Wine on Linux
Where wine is on the PATH, an eu07.exe in the installation is found after any
native binary and needs no execute bit.
2026-10-04 13:28:07 +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
a7a1e34239 Version every build of main by its commit count and release it
Major and minor stay in the project file; the patch is counted by CI, so no
bot has to commit a bump. staging keeps its rolling pre-release.
2026-10-04 13:25:46 +02:00
maj00r
cc8496aa85 Run the tests before building the packages 2026-10-04 13:25:23 +02:00
maj00r
9d981cb093 Add a developer tab with the state of the vehicle database 2026-10-04 12:18:36 +02:00
maj00r
93463ae7f2 Load vehicles from a JSON copy of textures.txt, rebuilt when the installation changes 2026-10-04 12:18:36 +02:00
maj00r
d1d458f8ee Add a JSON format for the vehicle database 2026-10-04 12:18:36 +02:00
maj00r
3ddd00895f Tell UTF-8 from 1250 without throwing, and decode timetables the same way
The strict decode threw on every 1250 file, hundreds of them per load.
2026-10-04 12:18:36 +02:00
maj00r
2545daeb82 Close the vehicle catalogue on release, not on the double-click press
Closing from DoubleTapped left the pointer captured by a dead window, and on
Windows the main window stopped taking clicks.
2026-10-04 12:18:36 +02:00
maj00r
c492c26047 fallback decode utf8 strict to win 1250 2026-10-04 12:02:50 +02:00
f7219cf705 Merge pull request #21 from maj00r/wip/pre-reinstall
whole these
latest
2026-09-10 12:30:08 +02:00
maj00r
5d01c8d381 List vehicles by texture name, not thumbnail name
The list called a vehicle something no other panel used: the detail tab, the old
starter and the sort key all name it by its texture file.
2026-09-04 23:40:29 +02:00
maj00r
10523a500a Order the vehicle list the way the old starter did
It listed textures by file name and left the ordering to Delphi's Sorted, which
is AnsiCompareText - case-insensitive and locale aware, not ordinal.
2026-09-04 23:36:00 +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
4840740f31 Pin the settings key to the label column width
A row with no label hides PART_Label, collapsing the column onto the key, so the
explanations went ragged again on every checkbox row.
2026-09-04 23:32:16 +02:00
maj00r
4047e39456 Line the settings key and description up with the row above
They were laid out as one run, so every explanation started wherever its key
happened to end. Key now sits under the label, explanation under the control.
2026-09-04 23:28:20 +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
1939493b47 Tighten the row spacing in the depot detail panels
5 px between readings to 2, which fits three more lines in the same panel.
2026-09-04 23:09:42 +02:00
maj00r
da1b54cf1f Sort the browser list by the name its rows show
It was ordered on TextureMini while the row prints the skin name whenever the
thumbnail matches the class, so the list looked unsorted.
2026-09-04 23:05:50 +02:00
maj00r
c072898e4f Depot: per-vehicle wagon number, model path, activation after removal
The number editor was pinned to the unit's first car, so every vehicle in a
multiple unit shared one number. Removing a vehicle only moved the highlight,
leaving the starting vehicle and the panels on the deleted one. Drops the tab
strip around the single configuration panel and shortens the consist row when
the thumbnails are small.
2026-09-04 23:04:09 +02:00
maj00r
88fa5a2978 Drop value wrapping, raise the detail row by one line
192 to 207 px, the height of one more reading. Values go back to a single
ellipsised line.
2026-09-04 22:54:15 +02:00
maj00r
f626f47ab1 Give the depot detail panel room for the whole texture tab
At the default 768 px window the row capped at 192 px cut off the last credit
line once values started wrapping.
2026-09-04 22:51:59 +02:00
maj00r
027dff17d9 Let read-only detail values wrap instead of ellipsising
In a 250-390 px panel the label column leaves little room, so operator, depot and
author names lost their ends to the ellipsis.
2026-09-04 22:48:43 +02:00
maj00r
b9f455e33d Show vehicle and texture info when a browser entry is picked
The General and About texture tabs only ever described the selected consist car,
so clicking a vehicle in the list told the user nothing about it.
2026-09-04 22:29:04 +02:00
maj00r
df21ec104f Cut the comments from the refactored code
Three survive: why AppServices is hand-wired, the cp1250 registration trap, and
the IsDieselEngine note carried over from Physics.cs.
2026-09-04 22:24:54 +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