By using a union instead of a struct var_494 and var_496 where ontop of the same location this meant var_496 when written to would overwrite ride_colour that was also in a union with var_494/496. This in turn would cause the wrong ride_colour to be overwritten when using the colour picker.
This provides an option to set a limit on the number of windows that can
be open. Originally, the game had somewhere around 12, but was bumped up
to 64 for OpenRCT2. While this provides some value, this is for people who
prefer less windows at a time, and also for people with older computers.
The limit can be set anywhere between 8 and 64, (8 being chosen to still
preserve in-game toolbars that are counted as windows, and 64 to not
overshoot the maximum hard-coded value). This can be set in both options
and the in-game-console.
Allocate a bigger window list and viewport list in OpenRCT2 static memory and move over all references from RCT2.
This also removes the 'active' viewport pointer list and instead changes everything to just enumerate the whole viewport list
Name various fields and constants related to peeps. This includes:
- Flags for flashing peeps in map window
- Animation frames for picked up peeps
- Function checking if peep should start to fall
- Special sprite handling for slide boards and lawn mowers
- Created array for peep sprite entries, renamed some variables and constants
Compiler only guarantees proper accesses to variables when using
variable's native type or `char` (i.e. single byte type) [1].
This commit fixes violations of this rule. In most cases changing code
to a simple cast was enough, some required a bit deeper modifications.
This fixes#2596.
[1] http://blog.qt.io/blog/2011/06/10/type-punning-and-strict-aliasing/