(svn r2755) Fix: Fix a desync issue with autoreplace

This commit is contained in:
ludde 2005-07-29 21:55:49 +00:00
parent 3a162799fd
commit bb1e1f2b5f
3 changed files with 10 additions and 10 deletions

View File

@ -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

View File

@ -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;

View File

@ -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);