13CA740 and 141F568 have been doing mostly nothing since the game action refacotr. Before that they didn't do much as I've never found any instance where the code was hit.
* 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
The Network class is not used by anyone other than free functions in
Network.cpp, nor should it be used by anyone with the current design.
This change leaves only the publicly-exposed functions left in the
header, drastically reducing amount of required headers in network.h,
one of the heaviest headers we had so far.
Committing some changes that were originally for #7637.
- Refactor map_check_free_elements_and_reorganise
- Refactor map_strip_ghost_flag_from_elements
- Remove sub_68B089
I have removed sub_68B089 because this function was run every game tick
and 1000 times when trying to request some spare elements. It was a
lighter function which tried to stretch out the tile element pointers
behind any spare elements. In this day and age, doing a full tile
element defrag is very fast (even in debug mode it takes no more than
10ms), so I don't think keeping sub_68B089 is necessary.
Clang-format sees the text behind `#pragma region` as code and formats it. Instead of stating the copyright and date there, it's now in the comment block right below it. The text "Copyright" is left in the `#pragma region` line, as clang-format sees it as a single identifier.
I took the opportunity to normalize the dates, and add the copyright notice to the source files where it was missing them (except for third-party and the generated resources.h file).