Mercurial > hg > openttd
changeset 16578:0ead157e23e1 draft
(svn r21308) -Fix [FS#4262] (r20933-ish): crash upon desync
author | rubidium <rubidium@openttd.org> |
---|---|
date | Tue, 23 Nov 2010 23:59:24 +0000 |
parents | b3d6e1a13c8c |
children | 8288bb0298f8 |
files | src/network/network.cpp |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -927,12 +927,16 @@ /* Make sure we are at the frame were the server is (quick-frames) */ if (_frame_counter_server > _frame_counter) { + /* Run a number of frames; when things go bad, get out. */ while (_frame_counter_server > _frame_counter) { - if (!ClientNetworkGameSocketHandler::GameLoop()) break; + if (!ClientNetworkGameSocketHandler::GameLoop()) return; } } else { /* Else, keep on going till _frame_counter_max */ - if (_frame_counter_max > _frame_counter) ClientNetworkGameSocketHandler::GameLoop(); + if (_frame_counter_max > _frame_counter) { + /* Run one frame; if things went bad, get out. */ + if (!ClientNetworkGameSocketHandler::GameLoop()) return; + } } }