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.
* Port over changes from NSF for staff
* Fix import and export
* Fix crash on export
* Fix import issue
* Fix patrol import issue
* Remove staff id field
* Increment network version
* Actually remove all instances of staff id
* Update replays
* Replace sprite_left,t,r,b with SpriteRect
This is required for the NSF. I had to add a silly constructor to rct_sprite for now. Will eventually be removed one day...
* Fix compilation and memory leak
* Add some UB to prevent some other UB
* Make review change
* Refactor RIDE_STATUS to use strong enum
* Change platform-specific code to match RIDE_STATUS refactor
* Re-added check for valid RideStatus value
* Fixed errors in "g2" build target
* Use EnumValue instead of static_cast<uint8_t>
* Revert rct{1,2}.h to use uint8_t.
* Fix formatting
* Reverted from constexpr variable to additional enum variant
* Fix formatting
* Replace RIDE_ENTRY_INDEX_NULL with OBJECT_ENTRY_INDEX_NULL
Ride entries are objects like any other, so there is little point having separate constants.
* Use ride_id_t in many more places
* Change RIDE_ID_NULL to 0xFFFF
* Increment network version
* Update replays
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
* Start changing the underlying type
* Further work
* Complete refactor
* Further cleanup
* Remove pointless check
* Increment network and plugin versions
* Add defaults
* Further defaults
* Fix test paint
* Update replays
* Move type field into sub structures
* Use type for misc_type
* Use type for l_type
* Rename to SubType
* Rename SpriteGeneric to MiscEntity
* Rename generic to misc
* Add extra nullptr checks for compilers that cant understand
* Make review changes
* Increment network version
* Update replays