Mercurial > hg > openttd
changeset 19332:a69a0b68d9da draft
(svn r24221) -Fix [FS#5166]: Lag counters were not properly reset when switching states making it possible to get disconnected for lagging when you weren't lagging
author | rubidium <rubidium@openttd.org> |
---|---|
date | Wed, 09 May 2012 19:14:36 +0000 |
parents | eecd2c639f6e |
children | 6ba882a3c9bf |
files | src/network/network_server.cpp |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -450,6 +450,8 @@ if (this->status >= STATUS_AUTH_GAME) return this->CloseConnection(NETWORK_RECV_STATUS_MALFORMED_PACKET); this->status = STATUS_AUTH_GAME; + /* Reset 'lag' counters */ + this->last_frame = this->last_frame_server = _frame_counter; Packet *p = new Packet(PACKET_SERVER_NEED_GAME_PASSWORD); this->SendPacket(p); @@ -463,6 +465,8 @@ if (this->status >= STATUS_AUTH_COMPANY) return this->CloseConnection(NETWORK_RECV_STATUS_MALFORMED_PACKET); this->status = STATUS_AUTH_COMPANY; + /* Reset 'lag' counters */ + this->last_frame = this->last_frame_server = _frame_counter; Packet *p = new Packet(PACKET_SERVER_NEED_COMPANY_PASSWORD); p->Send_uint32(_settings_game.game_creation.generation_seed); @@ -481,6 +485,9 @@ if (this->status >= STATUS_AUTHORIZED) return this->CloseConnection(NETWORK_RECV_STATUS_MALFORMED_PACKET); this->status = STATUS_AUTHORIZED; + /* Reset 'lag' counters */ + this->last_frame = this->last_frame_server = _frame_counter; + _network_game_info.clients_on++; p = new Packet(PACKET_SERVER_WELCOME);