1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-20 21:43:06 +01:00
Files
OpenRCT2/src/openrct2
Matt b9f6b6f754 Refactor widgets state (#23621)
* 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>
2025-01-18 13:45:17 +01:00
..
2025-01-18 13:45:17 +01:00
2025-01-09 12:34:45 +01:00
2025-01-09 12:34:45 +01:00
2025-01-18 13:45:17 +01:00
2025-01-06 19:54:56 +02:00
2024-12-03 21:14:26 +01:00
2024-12-31 20:30:04 +01:00
2024-12-31 20:30:04 +01:00
2024-12-31 20:30:04 +01:00
2025-01-08 20:37:35 +01:00

Source directory structure

  • actions

    Handles player actions and queues pending actions.

  • audio

    Contains files for mixing and playing music and sound.

  • command_line

    Code specific to command line (arguments).

  • config

    Code concerning game configuration.

  • core

    Provides core functionality such as string operations, encryption, and compression.

  • drawing

    Low level drawing logic and palette tables.

  • interface

    Window and widget logic, includes high level drawing and input.

  • localisation

    String IDs, currency and date logic.

  • management

    Park management logic such as finance, marketing and research.

  • network

    Network and multiplayer logic, includes management of network games and downloading / uploading of content.

  • object

    Code relating to objects (rides, shops, scenery, etc).

  • paint

    Prepares objects' sprites to be drawn.

  • peep

    Guest and staff definitions and logic such as action management and pathfinding.

  • platform

    Compiler and operating system specific code such as type definitions, message handling and file input / output.

  • rct1

    Code specific only to RCT1 (vanilla).

  • rct2

    Code specific only to RCT2 (vanilla).

  • rct12

    Code specific to vanilla RCT, either RCT 1 or RCT 2.

  • ride

    Data and logic for rides, vehicles and track.

  • scenario

    Code relating to game scenarios.

  • title

    Code for loading and updating title screen sequence.

  • util

    Utility and helper functions.

  • windows

    Definitions and logic for all the windows in the game.

  • world

    World objects and mechanics such as the climate, landscape, sprites and park.