* 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>
It byte swapped uint16_t and then during decode byte swapped it as uint32_t, now it always uses uint32_t for ride/player id. I could use the underlying type but that would require to re-create all replays again.
Closes#10713
* Add initial interface.
* Implement move operator in MemoryStream
* Add pod array serialisation traits.
* Add push_back with move semantics to CircularBuffer
* Initial implementation of GameStateSnapshots
* Add GameStateSnapshots to Context.
* Add mp_desync console command.
* Compare sprite data and fill change list.
* Minor changes.
* Proof of concept.
* Calculate offset instead of using offsetof
* Implement game state difference detection
* Update mp_desync console command.
* Fix identification of sprite remove/add.
* Fix crash when only one peep in park when using mp_desync
* Output state differences into user directory desync folder.
* Add desync debugging as an option.
* Add information to network status when a desync report was created.
* Cast to proper type for %llu.
* Update xcode project
* Add more information to the diffed data.
* Remove client-only relevant fields.
* Cleanup.
* Add better name output for misc sprites
* Add srand0 and tick information to the output
* Bump up network version
* Cleanup
* Set desync_debugging to false as default
* Apply suggestions