mirror of
https://github.com/MaSzyna-EU07/StarterNG.git
synced 2026-11-12 00:58:12 +01:00
Black box: the queries of the user's train worked out once a read, lights as the driver checks them
- The stations, the signals passed, the horn points, the couplings, the consists and the timetable progress of the user's train are kept until a read adds something; the views asked for them every frame, which on a long session with many trains took the window down. A read that adds nothing no longer counts as a change. - The lights are checked against the lamps the vehicles at the ends have (written by the simulator from now on), as its driver checks them: Pc 1 without the upper headlight, with the auxiliary lamps, Pc 5 with the rear-end signals. Only while the user drives: the autopilot's lights are its own. - A train off the platform counts at both ends: its head past the stop point as well as its tail before the platform's end. - A recording without the couplings keeps the timetable for any vehicle of the user. - A signal passed at danger is ringed on the map only once it was. - In the tapes window a black box opens on a click or Enter, not when the arrow keys go over it. - The viewer's screenshot of a window not laid out saves nothing and still closes.
This commit is contained in:
@@ -130,19 +130,20 @@ public sealed class CabPanel : Control
|
||||
double lightsX = Pad + 3 * third + 4;
|
||||
context.DrawText(MapView.Text(Strings["CabLights"], Palette.DimText, 10), new Point(lightsX, top));
|
||||
double faceX = lightsX;
|
||||
foreach (var (key, lights, required) in new[]
|
||||
foreach (var (key, lights, required, right) in new[]
|
||||
{
|
||||
("CabLightsHead", s.LightsHead, HeadCodes.RequiredHead(s)),
|
||||
("CabLightsTail", s.LightsTail, HeadCodes.RequiredTail(s))
|
||||
("CabLightsHead", s.LightsHead, HeadCodes.RequiredHead(s), HeadCodes.HeadRight(s)),
|
||||
("CabLightsTail", s.LightsTail, HeadCodes.RequiredTail(s), HeadCodes.TailRight(s))
|
||||
})
|
||||
{
|
||||
DrawFace(context, lights, new Point(faceX + 18, top + 24));
|
||||
// the end, and the signal it shows: green as it is to be, red otherwise with the one it is to show
|
||||
// the end, and the signal it shows: green as it is to be (with the lamps the vehicle has), red otherwise
|
||||
// with the one it is to show
|
||||
var shown = HeadCodes.Of(lights);
|
||||
var text = required is { } want && want != shown
|
||||
var text = right == false && required is { } want
|
||||
? $"{HeadCodes.Name(shown)} ≠ {HeadCodes.Name(want)}"
|
||||
: HeadCodes.Name(shown);
|
||||
var brush = required is null ? Palette.FaintText : required == shown ? Palette.Good : Palette.Bad;
|
||||
: right == true && required is { } met ? HeadCodes.Name(met) : HeadCodes.Name(shown);
|
||||
var brush = right is null ? Palette.FaintText : right.Value ? Palette.Good : Palette.Bad;
|
||||
var label = MapView.Text($"{Strings[key]} {text}", brush, 9);
|
||||
context.DrawText(label, new Point(faceX + 18 - label.Width / 2, top + 34));
|
||||
faceX += 62;
|
||||
|
||||
Reference in New Issue
Block a user