diff options
author | rubidium <rubidium@openttd.org> | 2010-04-13 18:55:31 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-04-13 18:55:31 +0000 |
commit | 088282bcf8ce6d301fd8a5b0d8a3409bceaab32d (patch) | |
tree | e6a40c2bdaa2011f11cc3aaed25d4db3355ae9ad /src/network/network_internal.h | |
parent | d2ed777fa5a9a1c39923ace958cd7e01f60de7f8 (diff) | |
download | openttd-088282bcf8ce6d301fd8a5b0d8a3409bceaab32d.tar.xz |
(svn r19620) -Fix: desync when a command is received and in the queue while a client starts joining, i.e. save the game state. This can happen in two ways: with frame_freq > 1 a command received in a previous frame might not be executed yet or when a command is received in the same frame as the join but before the savegame is made. In both cases the joining client would not get all commands to get in-sync with the server (and the other clients).
Diffstat (limited to 'src/network/network_internal.h')
-rw-r--r-- | src/network/network_internal.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/network/network_internal.h b/src/network/network_internal.h index ef1030a9e..3131cc10e 100644 --- a/src/network/network_internal.h +++ b/src/network/network_internal.h @@ -163,6 +163,7 @@ struct CommandPacket : CommandContainer { void NetworkAddCommandQueue(CommandPacket cp, NetworkClientSocket *cs = NULL); void NetworkExecuteLocalCommandQueue(); void NetworkFreeLocalCommandQueue(); +void NetworkSyncCommandQueue(NetworkClientSocket *cs); /* from network.c */ NetworkRecvStatus NetworkCloseClient(NetworkClientSocket *cs, NetworkRecvStatus status); |