From 34ecc0d7787523ad5d0f276fce5c562c71bcd6fb Mon Sep 17 00:00:00 2001 From: signde Date: Sat, 11 Sep 2004 22:10:31 +0000 Subject: (svn r209) -Fix: network code based desync -Feature: framesync packets to hold the clients framecount near the servers -Fix: command queue now aligns the commands to be processed right after an sync or framesync packet -Fix: added stubs for compiling without network --- ttd.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'ttd.c') diff --git a/ttd.c b/ttd.c index 036cbb868..ffc747724 100644 --- a/ttd.c +++ b/ttd.c @@ -995,8 +995,10 @@ void GameLoop() // client: make sure client's time is synched to the server by running frames quickly up to where the server is. if (!_networking_server) { while (_frame_counter < _frame_counter_srv) { + NetworkCoreLoop(true); StateGameLoop(); NetworkProcessCommands(); // need to process queue to make sure that packets get executed. + NetworkCoreLoop(false); } // client: don't exceed the max count told by the server if (_frame_counter < _frame_counter_max) { @@ -1010,6 +1012,7 @@ void GameLoop() if (_frame_counter < _frame_counter_max) { StateGameLoop(); NetworkProcessCommands(); // to check if we got any new commands belonging to the current frame before we increase it. + NetworkSendFrameSyncPackets(); } // server: wait until all clients were ready for going on if (_frame_counter == _frame_counter_max) { -- cgit v1.2.3-54-g00ecf