mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r2755) Fix: Fix a desync issue with autoreplace
This commit is contained in:
parent
3a162799fd
commit
bb1e1f2b5f
|
@ -1205,8 +1205,15 @@ void NetworkGameLoop(void)
|
|||
if (!NetworkReceive()) return;
|
||||
|
||||
if (_network_server) {
|
||||
bool send_frame = false;
|
||||
|
||||
// We first increase the _frame_counter
|
||||
_frame_counter++;
|
||||
// Update max-frame-counter
|
||||
if (_frame_counter > _frame_counter_max) {
|
||||
_frame_counter_max = _frame_counter + _network_frame_freq;
|
||||
send_frame = true;
|
||||
}
|
||||
|
||||
NetworkHandleLocalQueue();
|
||||
|
||||
|
@ -1218,7 +1225,7 @@ void NetworkGameLoop(void)
|
|||
_sync_seed_2 = _random_seeds[0][1];
|
||||
#endif
|
||||
|
||||
NetworkServer_Tick();
|
||||
NetworkServer_Tick(send_frame);
|
||||
} else {
|
||||
// Client
|
||||
|
||||
|
|
|
@ -1499,20 +1499,13 @@ void NetworkHandleCommandQueue(NetworkClientState *cs) {
|
|||
}
|
||||
|
||||
// This is called every tick if this is a _network_server
|
||||
void NetworkServer_Tick(void)
|
||||
void NetworkServer_Tick(bool send_frame)
|
||||
{
|
||||
NetworkClientState *cs;
|
||||
bool send_frame = false;
|
||||
#ifndef ENABLE_NETWORK_SYNC_EVERY_FRAME
|
||||
bool send_sync = false;
|
||||
#endif
|
||||
|
||||
// Update max-frame-counter
|
||||
if (_frame_counter > _frame_counter_max) {
|
||||
_frame_counter_max = _frame_counter + _network_frame_freq;
|
||||
send_frame = true;
|
||||
}
|
||||
|
||||
#ifndef ENABLE_NETWORK_SYNC_EVERY_FRAME
|
||||
if (_frame_counter >= _last_sync_frame + _network_sync_freq) {
|
||||
_last_sync_frame = _frame_counter;
|
||||
|
|
|
@ -16,7 +16,7 @@ bool NetworkFindName(char new_name[NETWORK_NAME_LENGTH]);
|
|||
void NetworkServer_HandleChat(NetworkAction action, DestType desttype, int dest, const char *msg, uint16 from_index);
|
||||
|
||||
bool NetworkServer_ReadPackets(NetworkClientState *cs);
|
||||
void NetworkServer_Tick(void);
|
||||
void NetworkServer_Tick(bool send_frame);
|
||||
void NetworkServerMonthlyLoop(void);
|
||||
void NetworkServerYearlyLoop(void);
|
||||
|
||||
|
|
Loading…
Reference in New Issue