the vehicle orders UI needs attention. It's powerful but actually getting quite scary.
Caveat: Sorry, but I'm not a competent coder. [Although I am an incompetent
coder. Dunno if that's better than not being a coder at all...] But I do do UI stuff
professionally from time to time.
See also http://www.tt-forums.net/viewtopic.php?f=33&t=54549 but the approach
there is patches rather than anything more radical. I think it's time to get more radical.
If not beaten to it, I'll do a mockup later, but my first thoughts are these:
The orders UI has a number of weaknesses. One is that it mixes different parts of
orders into a single 'stream of consciousness'. What's there, in what order, has
just grown organically over time. Some useful features are hidden. Some defaults
maybe only suit a minority. The UI for conditional jumps is useful but a bit
unforgiving. Clicking on a depot order gives a warning that you can't alter it, even
if all you actually want to do is move it. And finally, sharing identical orders is OK,
but there is no concept of an 'order template'. Imagine if you could set up a generic
order that said
Go to [ specify depot ].
Refit to [ specify cargo ]
Go to station [ A ]
Load 100%
Go to station [ B ]
Unload 100%
Then you could just fill in A, B, depot and cargo into your template. If templates
could be saved and shared, that would be a massive speedup.
Destinations
The first thing to do is to clean up the order system into sections. The first
conceptual section is destinations. Taking a typical order,
Go non-stop to Tillynor Powerplant (no loading) [far end].
The destination-related parts are Tillynor Powerplant, non-stop, and far end,
in that order of priority.
So our new UI might start with a destination column, with checkboxes for non-stop
and end, and maybe even with a future hook for platform numbers, thus:
Code: Select all
Order Destination Stopping Platform End
1. Senshaw Train Depot Non-stop --- ---
2. Senshaw Tanner Road Via 1 near
3. Tillynor Powerplant Stopping 2-3 far
4. ---
5. Tillynor Train Depot Non-stop --- ---
6. ---
7. Senshaw Train Depot Non-stop --- ---
presumably. After all, when you are checking your train's destinations,
in general that's all you care about.
Refit options
Second concept, probably quite important now we have auto-refits for some cargo
types, is to make sure the refit UI is better. Giving it its own conceptual section
could help enormously.
Loading options
At present, loading and unloading are mixed together in an unholy melange.
In general vehicles either have complex loading options or complex
unloading options, but for both to be complex is rarer. But when you're debugging
a vehicle's orders, you generally want to look at one function at a time. i.e. just the
destinations, just the refits, just the loading orders, etc. So splitting orders
along these conceptual lines might be a big help.
I'd particular like to mention the option of changing 'full load' and 'load if available'
to 'load minimum' and 'load maximum'.
Load: min 100%, max 100% is equivalent to a 'Full load' order.
Load: min 0%, max 100% is equivalent to a 'Load if available' order.
Load: min 0%, max 0% is equivalent to 'No loading'
To handle multi-cargo trains, these would need to be selectable per cargo. Hence
a button that set selected ones to 100% ('Full load all' = everything to 100%) would
be useful. ('Full load any' would mean 'at least one cargo to 100%', so the code to
implement all the current functionality isn't completely trivial.)
But this way we could also gain the facility to tell a single train to leave when it's
50%+ full rather than waiting interminably for a full 100% load. Greater flexibility
and greater clarity at the same time. I would also suggest being able to specify
loading by units rather than as a percentage.
Obviously, refitting and loading are closely related.
Unloading options
Similarly for unloading. This might allow you to set up one train to deliver 10t
of the same cargo to a string of small stations, rather than the first one grabbing
the lot.
For loading, it's refits that complicate things. For unloading, we have transfer orders.
Conditional orders
I would suggest, rather than having the 'Jump to order' text string, which I for one
find quite hard to follow, might it be possible to represent the flow graphically, using
lines with arrows on? Big win if so, probably. Then the logic flow is arrows, and the
conditional orders section can just become a list of conditions. That would be better
than now, I think.
Timetabling
Timetabling is complex enough to have been relegated to its own screen. But if the
other order options get streamlined, I think it might be possible to integrate it
better with them, at last.
Order sharing
A possible new section. Better controls over order sharing/order templates would
logically fit here - if the game had them.
Overall
Overall I'm starting to envision a single window where the Destination station/depot
remains visible at all times, along with expandable buttons for extra Destination options,
Refit options, Loading, Unloading, Conditions, Timetable and Sharing, and so on, and you
can turn some of these on or off at the same time, and the window shrinks or expands
to suit. Possibly some should stay segregated in their own panes, the way Timetables
are now, I don't know yet.
I expect to come back to further edit this later, but these are my first-pass thoughts.