* 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
* Use std::vector for ride use memory
* Use new system for import/export
* Remove legacy field
* Add replay entity size protection to prevent crash
* Increment network version
* Update replays
* Move function to header
* Move constant to RCT12 header as used for both 1 and 2
* Align naming with nsf
* Start a network serialiser for entities
will be used only for checksums and replay diffs
* Continue work
* Use the new serailser for checksums
* Use new serialiser for replays
* keep compilers happy
* Try create checksum stream
* Fix compiling
* Split off class into seperate file
* Update Xcode project
* Increment network version
* Fix pragma mistake
* Fix none network builds
* Update replays
* Improve ChecksumStream and use FNV internally
* Small cleanups
* satisfy compilers
* Revert change of checksum size to simplfy rerecording
* Zero initialise data
* Fix serialiser
* Update replays again
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
Co-authored-by: Matt <m.moninger.h@gmail.com>
* 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>
* Remove users of AssignedPeepType
* Remove AssignedPeepType
Field no longer required due to changes to EntityType
* Move enum to the RCT12 header
* Increment network version
* Update replays
* Move jumpingfountain type out of misc entity type
* Remove SubType for MiscEntities as it is no longer required
* Update replays
* Apply review comments
* Increment network version
* 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
* Make train manager view
* Remove linked list index field
* Remove merge mistake
* Fix further rebase errors
* Rename and add comments
* Update replays
* Fix Xcode project
* Increment network version
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
* Use std::vector of quadrants
* Prevent ptr invalidation issues
* Remove next_in_quadrant
* Make review changes
* Rebuild next_in_quadrant for S6Export
* Fix formatting
* Constexpr where possible
* Increment network version and update replays
* Implement EntityLists
* Remove dead code
* Use alternative name for iterator
* Add comments
* Increment network version
* Update replays
* Remove further dead code
* Update replays again
* 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
* Fix#13409: Clamp peep distances from path centers
The debunch-peeps improvement did not account for the fact that peeps may change direction when they are only at the very edge of a tile - it's not entirely clear to me why this happens, but it does. The previous code would push these peeps back towards the center line over time, but the new behaviour allows them to keep walking along these very edge-y lines, which means they sometimes appear to be walking on the wrong sides of benches, railings, etc.
To fix the problem, do not simply keep the target coordinate constant for the direction the peep is moving in, but clamp it, so that peeps in these outlier positions will get pulled back to a more acceptable position within one tile. Peeps who are already debunched within the reasonable center area of the path are unaffected.
* Update replays for change
* Add changelog entry
* Fix broken hashes
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
* Stop guests from being forced to the center line of a path over time
Change the way we apply randomness to peep destinations when moving from one tile to the next, to allow peeps that are moving along a straight path to maintain their perpendicular offset relative to the path direction, instead of being (eventually) forced back to the center line.
* Update test expectations
The changes to guest movement mean that the number of steps taken for these expected paths are now slightly different to before.
* Make all game actions take an ObjectEntryIndex where applicable
* Update replays for parameter size change
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>
* Increase randomness when handyman is on queue path
* Add myself to contributors
* Refactor hex variable probabilities
* Add check if queue is connected to a ride
* Update changelog
* Bump network version
* Update replays
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>