This already revealed some places where implicit conversions were done, including some where its use was nonsense (MouseInput.cpp).
The changes to the Intent class were necessary to keep things working, and this splits things up more neatly.
* Refactor all uses of IAudioChannel and the audio mixer.
* Use shared_ptr to avoid dead pointers hanging about.
* Reload particular audio channels where necessary after object reload.
`enabled_widgets` was used to enable input for widgets. However I do not recall anywhere this being used to specifically disable a widget which doesn't use the dedicated `disabled_widgets` flag. I don't think there is any purpose in keeping this, so I have removed all uses of it.
* Rename OptionsWindow tab constants for clarity
The new WIDX_FIRST_TAB constant can be used by code that just wants the
first tab without worrying about which it is.
* Remove use of this-> in OptionsWindow
* Replace widget_invalidate with InvalidateWidget
* WidgetSetCheckboxValue -> SetCheckboxValue
* Move repeated per-tab code into common methods
Previously, each FooPrepareDraw() method would call
CommonPrepareDrawBefore() at the start, and CommonPrepareDrawAfter() at
the end. Let's reduce this duplication by having OnPrepareDraw() call
these instead. :^)
The same goes for a few other repeated code snippets.
* Use WindowFocusOrCreate for OptionsWindow
* Fix#16504: Display RCT1-path tooltip
When the OptionsWindow was first refactored into a Window class, the
AdvancedTooltip() method was created but never called. Hooking it up
fixes the crash and makes the path tooltip appear again. :^)
* Make MAIN_OPTIONS_ENABLED_WIDGETS a constexpr
* Move OptionsWindow constants into the class
* WindowInitScrollWidgets() -> InitScrollWidgets()
* Add NOLINT around STL using classes and vendor functions
* Apply clang-tidy to ui project function names
* Undo scripting clang-format
* Upper case OpenRCT2 and RCT2
For most of these cases, adding a trailing comma to the array block makes clang-format put each item on a new line, and clang-format exception blocks could be reduced where clang-format does not handle them properly.