Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign upNew vehicle light system is unusable #17273
Comments
Coolthulhu
added
the
Info / User Interface
label
Jun 20, 2016
Coolthulhu
added this to the 0.D milestone
Jun 20, 2016
This comment has been minimized.
This comment has been minimized.
|
Quoting from the forum post:
The experimental branch only guarantees not to break existing saves. Features may be incomplete and will probably have flaws. Of course
A large internal refactor of the vehicle code is underway. This is one of the more ugly sections of the codebase of which large amounts are entirely undocumented. This particular change is aimed at vehicle parts being toggled via their
Refactoring is a big win. Good quality code hides fewer bugs, is easier to extend and encourages future contributions. Further vehicle features are often requested and a prior code cleanup is helpful in this respect.
That PR leaves the vehicle lights functional but not as convenient as they could be. There is a balance between making sufficient progress and keeping a PR sufficiently small so as to be practical to review. Additionally any regressions will be addressed in order of priority and not word count of complainant. For example #17261 was probably introduced by that PR and has precedence.
We could change |
This comment has been minimized.
This comment has been minimized.
Not sure if For a practical example, red and blue emergency lights could be enabled on alternating turns, without being hardcoded in light code. |
This comment has been minimized.
This comment has been minimized.
pingpong2011
commented
Jun 20, 2016
|
Something I noticed with vehicle parts, which might be relate-able: Certain things like the kitchen units have part-specific interactions (you have to use the part to act). Other things like the fridge or lights have control-specific interactions. I presume it's possible to have both part and control interactions, so maybe acting on the lights (or turrets) changes specific settings, but the controls have the more global on/off. If lights were categorized into headlights and "internal lights", that could be the global on/off, while the precise setting was modified by acting on the light. |
This comment has been minimized.
This comment has been minimized.
|
|
mugling
self-assigned this
Jun 20, 2016
This comment has been minimized.
This comment has been minimized.
Could work Eventually it could be changed from enum to say, a set. For example, to have configurable states like:
But that's just for future goals. Still, that's why accessor is better than public field. |
This comment has been minimized.
This comment has been minimized.
|
Effectively your proposing |
This comment has been minimized.
This comment has been minimized.
|
Not sure what do you mean by flag field. |
This comment has been minimized.
This comment has been minimized.
|
On Jun 20, 2016 3:47 PM, "mugling" notifications@github.com wrote:
Where did you get this idea? Experimental should be playable at all times.
Please excuse my pedantry, but its a peeve of mine. Please stop calling
The caveat to this is that regressions have precedence over everything |
This comment has been minimized.
This comment has been minimized.
You are correct. The point I'm making is that the internal quality of the code, in particular documentation and correctness,is important but opaque to the end users. The OP's original post asked as to the benefits.
A multifactorial problem of which internal changes are indeed a large factor. I think almost everyone is now using the auto-update from @remyroy which increasingly magnifies the visibility of bugs. |
Coolthulhu commentedJun 20, 2016
http://smf.cataclysmdda.com/index.php?topic=12809
I assume it is all temporary, but I'll make an issue as a reminder that the problem exists and has to be fixed.
Old light system allowed turning on the lights with 2 keypresses. New one only allows 2 keypress light toggles for specific settings.
It lacks a global light switch that would restore it to last known good state. Generally the vehicle lights are used in same configuration (say, controls only, floodlight only etc.) multiple times and changed only rarely. As such, the ability to restore the last state is more important than the ability to configure the state precisely.
For vehicle light system to be considered usable, it must allow toggling light state with 2 keypresses.
This operation must restore the old light state, not turn all lights on/off.
Similar problem exists for turrets: they also lack the ability to disable all of them with 2 keypresses and the ability to enable the selected turrets with 2 keypresses.
Finally, a minor note: it would be nice if the keybinds for vehicle controls weren't hardcoded but configurable.