From d90c381d129e33954ab44806d41da6ea8cc3b4c0 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 20 Dec 2022 23:43:31 +0000 Subject: [PATCH] Documentation: Update low level changes document --- docs/jgrpp-low-level-changes.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/jgrpp-low-level-changes.md b/docs/jgrpp-low-level-changes.md index 0b424db007..aeebbbe9df 100644 --- a/docs/jgrpp-low-level-changes.md +++ b/docs/jgrpp-low-level-changes.md @@ -19,6 +19,7 @@ This document does not describe the player-visible changes/additions described i * Emit a "crash" log, savegame and screenshot on multiplayer desync. * Add crash/desync information to output screenshot and savegame files. * Multiplayer server and client exchange desync logs after a desync occurs. +* Multiplayer clients send state hashes and random values since the last sync to the server after a desync, to identify which frame first diverged. * Decrease sync frame period when desync occurs. #### Assertions @@ -75,8 +76,7 @@ This document does not describe the player-visible changes/additions described i * Various data structures have been replaced with B-tree maps/sets (cpp-btree library). * Various lists have been replaced with vectors or deques, etc. * Remove mutexes from SmallStack, only used from the main thread. -* Use std::string in CommandContainer instead of a giant static buffer. -* Add a third parameter p3 to DoCommand/CommandContainer. +* Add a third parameter p3, and an auxiliary data mechanism to DoCommand/CommandContainer. * Add a free bitmap for pool slots. * Maintain free list for text effect entries. * Many fields have been widened. @@ -91,6 +91,7 @@ This document does not describe the player-visible changes/additions described i * Add vehicle flag to mark the last vehicle in a consist with a visual effect. * Index the vehicle list in per type arrays for use by CallVehicleTicks. * Cache whether the vehicle should be drawn. +* Pre-compute engine refit capacity callbacks if possible. ### Network/multiplayer @@ -113,8 +114,10 @@ This document does not describe the player-visible changes/additions described i * Various forms of caching and incremental updates to the link graph overlay. * Change FlowStat from an RB-tree to a flat map with small-object optimisation. * Change FlowStatMap from an RB-tree to a B-tree indexed vector. +* Change LinkGraph::EdgeMatrix to a sparse storage format. * Replace MCF Dijkstra RB-tree with B-tree. * Reduce performance issues when deleting stale links with refit to any cargo. +* Dynamically adjust accuracy parameters in MCF 1st pass to avoid computing large numbers of excessively small flows. ### Pathfinder @@ -147,6 +150,8 @@ This document does not describe the player-visible changes/additions described i * Apply many optimisations to VarAction2 deterministic sprite groups. * Avoid making callbacks which can be pre-determined to be unhandled, or which can be statically determined ahead of time. * Avoid animating industry tiles which are not actually animated in the current layout. +* Setting the animation frame to its current value no longer triggers a redraw. +* Animation is not started if it can be determined that it would stop immediately. * Avoid unnecessarily triggering or redrawing NewGRF houses. ### SDL2 @@ -182,3 +187,4 @@ This document does not describe the player-visible changes/additions described i * Change inheritance model of class Window to keep UndefinedBehaviorSanitizer happy. * Various other misc changes and fixes to reduce UndefinedBehaviorSanitizer and ThreadSanitizer spam. * Add a chicken bits setting, just in case. +