-
-
Notifications
You must be signed in to change notification settings - Fork 875
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: Hide block signals in GUI by default #8688
Conversation
2f7537f
to
c6b563d
Compare
You can use BuildSignalWindow::UpdateWidgetSize() to adjust the size of individual widgets.
You will have to give the WWT_CAPTION a WID_BS_... identifier. |
c6b563d
to
6ee7a88
Compare
What happens if one settings allows cycling through all signals and the GUI only shows path based? |
I am all in favor of simplifying settings, as long as you'll help me out by posting https://xkcd.com/1172/ at the appropriate time! 😀 |
6ee7a88
to
c4da168
Compare
I have merged three signal settings into one, now called "Signal GUI mode," with three options:
In all three modes, the default signal to place when opening the signal GUI for the first time is the standard path signal. After that, the tool defaults to the last selected signal, as normal. Not every configuration possible with the old settings is still provided, but I think the selection memory will suffice for most edge cases. |
@2TallTyler IMO you removed two very useful options - one-way pbs as default and show all cycle pbs. And cycling all is useless except for opencoop playstyle as it's the only case I can think of that may require fast access to all signal types. |
I can add an option to show all, cycle path. I don't want to remove show all, cycle all, because inevitably someone will complain. Because the signal GUI remembers the last signal you built, the only case where the default signal really matters is when the GUI is disabled entirely. Perhaps defaulting to one-way PBS would be better here? |
@2TallTyler it doesn't remember for long. You reconnect to the server and it's already back to two-way, very annoying. I remember I was very happy when I found there is a setting for default signal type because I was already preparing to implement it myself. And while I'm ok with one-way pbs by default I'm pretty sure there are fans of other options. Btw, I just noticed, there is another pretty pointless and quite confusing signal type there - semaphores. Though I guess that's a story for another pr ;) |
c4da168
to
8bdceb4
Compare
I added the setting for "show all, cycle path" and made one-way PBS the default signal type. What's your concern with semaphores? Relevant to anything changed in this PR or entirely separate? |
Not really relevant to this pr. Semaphores are just a completely redundant choice that only serves to confuse new players. |
8bdceb4
to
1ee813d
Compare
1ee813d
to
331a4f1
Compare
First of all, I did not look at the code. I just started the preview and did some play-testing. My findings:
All in all, for me, this PR makes the signal more confusing than it already is, especially when looking at the settings. Do not get me wrong: I am all in favour of reducing the amount of settings. But it seems some feature-creep happened while doing so, making it all feel slightly more out of place when looking at it as a whole. I also understand why this happened. There is always a part of our community that wants to fine control everything, so you get an infinite matrix of options and selections :) I am surprised nobody asked for an option to only have "one-way" but for PBS and Block signals :P We just have to be challenging, also to ourselves, what makes for a good addition for the few, but doesn't confuse the many. I think that balance is a bit lost in the current state of this PR. (this is normal btw; happens a lot to my PRs too if I am not careful about it :P) This brings me to a conclusion that was already made in the closing comment of the previous attempt on this: I think the GUI needs a redesign to make visually more clear what is going on with what signals can be selected and cycled through. I think it is really good to only have PBS visible by default, but the current solution to allow non-PBS via settings doesn't cut it for me (personally opinion, of course). Either way, I really think this needs more time and more trying out other possibilities. |
Thanks for the detailed explanation. I'm going to close this PR and step back to think about a more thorough signal GUI redesign. I'm still learning when to iterate following precedent and when to chart a new course entirely. :) Incidentally, I've been learning a lot of engineering strategy from Martin Molin / Wintergaten's mechanical music machine build, and your comments sound a lot like this week's video. My approach of hiding GUI elements via a setting is just treating a symptom of bigger problems with the GUI itself, and treating symptoms is often much harder than just fixing the problem itself. |
@TrueBrain I've been thinking about this recently, and I still feel that the decision of which signals to show belongs in Settings, rather than a drop-down on the signal toolbar itself. Since it will default to only showing path signals, I expect users to change the setting only once, if ever. New players don't need to know about non-path signals, and players who use priority merges (including me), can opt-in to the current toolbar. There are other issues you raised which would be solved separately:
Edit: See the edited PR description above for a detailed explanation of what I've changed from the last go. |
f7c00bb
to
fe50594
Compare
Warnings (and annotations check failure) because
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nitpicking; sorry :)
fe50594
to
f8fed98
Compare
f8fed98
to
60c6afa
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Last shitstorm was too long ago 😛
60c6afa
to
d75ba56
Compare
Motivation / Problem
New players to OpenTTD are confused by signals, partly because there are so many choices available.
Description
Path signals are the only signals needed by the majority of players, so this PR hides all non-path signals from the signal GUI by default. For the players who use them for signal logic, priority merges, or stubborn habits, they can be enabled via an Advanced-level setting,
Show signal types
.In an attempt to simplify the confusing combination of settings affecting signals, I have made additional changes:
Settings > Company > Signal type to build by default: Path signals
has been removed and hard-coded to one-way path signals. Note that players only see this when they first open a game -- after that, the toolbar opens with the last signal used selected.Settings > Company > Cycle through signal types
now defaults to Path signals only, and the option for Block signals only has been removed.Settings > Construction > Enable the signal GUI
has been removed. You can still control-click the signal button in the Rail construction menu to build signals without creating a toolbar.I am open to debate on any of these changes.
This PR was inspired by #7504 but mostly builds on @JGRennison's work hiding pre-signals for his Realistic Braking feature.
Limitations
Checklist for review
Some things are not automated, and forgotten often. This list is a reminder for the reviewers.