* Allow flag/bitmask coexistence in readers
* Add factory helpers and bulk setters for per-widget flags
* Switch coexistence from OR-both to per-window opt-in
* Migrate seven small windows to per-widget flags
* Migrate seven more windows to per-widget flags
* Migrate Cheats, MapGen and Footpath to per-widget flags
* Fix#26421: scenery tab highlight wraps when there are 64+ groups
* Migrate Ride window to per-widget flags
* Migrate ride and maze construction windows to per-widget flags
* Migrate six more windows to per-widget flags
* Migrate Banner, EditorScenarioOptions and RideList to per-widget flags
* Migrate SceneryScatter and LoadSave to per-widget flags
* Migrate EditorObjectSelection, GameBottomToolbar, Guest, Map, NewRide and Park to per-widget flags
* Migrate TopToolbar, TrackList, Research, Player and Options to per-widget flags
* Opt in remaining windows to per-widget flags
* Narrow getters and setters to per-widget flags
* Remove bitmask fields and useWidgetFlags switch
* Restore switch statements for tab/density pressed state
* Add makeHoldableSpinnerWidgets to drop per-page loops
* Update tests for per-widget flag storage
* Add changelog entry for #26421
* Reword narrative-tense comments from the migration
* Fix clang-format violations
* Remove dead holdable-widget tables from Park and Finances
The Map, Track Design List, Track Design Placement, Install Track, and Park Preview windows all shared a single SPR_TEMP sprite ID for rendering dynamic preview images. In OpenGL mode, this caused them to overwrite each other's textures when multiple windows were open simultaneously. To fix it I added separate temp sprite IDs for each window that needs one, with an array of G1Elements to store each separetely
* Move Csg unit into OpenRCT2 namespace
* Move G1Element into its own header file
* Clean up SpriteCommands.h
* Add trailing namespace comment to Csg.cpp
* Remove Drawing.h dependency from Graph.h
* Add <memory> include to G1Element.h
* Remove Drawing.h include from ImageTable.h (used by all objects!)
* Drop Drawing.h dependency from OpenGLFramebuffer.h
* Drop Drawing.h dependency from TextureCache.h
* Drop Drawing.h include from TitleScene.h
* Drop Drawing.h dependency from Widget.h
* Add <optional> include to SpriteFile.h
* Add Drawing.h to PlayTests, S6ImportExportTests
* Include <cstdint> in TitleScene.h for SIZE_MAX
* Fix#20486: Placing track designs with scenery disabled desyncs
* Remove pointless error logging, too much log spam
* Don't entirely disable all scenery when one element is obstructed
* Update changelog.txt
* Bump up network version
* clang-format
* Replace WindowClose() calls with Close method calls where possible
* Move WindowClose family into WindowManager
* Remove UpdateSceneryGroupIndexes hack
* Refactor windows to not share widget state
* First half of refactoring all the windows
* Refactor the remaining windows, compiles but has issues
* Fix drawing only every second widget
* Remove the need of an terminating widget
* Address WidgetIndex signedness issues; use kWidgetIndexNull more
* Address constexpr issue with Widget content union
* Fix tabs in scenery window
* Fix tabs in object selection window
* Adjust custom widget index for CustomTool events
* Use STR_NONE for default tooltip initialisation
* Adjustment for mingw compiler
* Fix bottom toolbar using the widget declaration not instance
* Remove pointless code in Guest window, handled by SetPage
* Prevent out of bounds crash
* Move scroll widgets initialization to SetPage in Cheats window
* Remove special logic in Options window
* Remove special logic in Park window
* Remove special logic for Player window
* Remove special logic for Research window
* Remove special logic for Ride window
* Remove special logic for Staff window
* Remove special logic for Finances window
* Remove special logic for MapGen window
* Remove special logic for editor objective options window
* Remove special logic for editor scenario options window
* Fix widgets not being set since page is initialized to 0
* Remove more redundant code
* Fix remaining access to widget declarations
* Remove unused variable
* Fix editor object selection tabs on successive windows
---------
Co-authored-by: Aaron van Geffen <aaron@aaronweb.net>