Network: Remove NETWORK_SEND_DOUBLE_SEED define

pull/590/head
Jonathan G Rennison 9 months ago
parent ee4e82c1b6
commit 8e755bf0c2

@ -634,11 +634,9 @@ char *CrashLog::FillDesyncCrashLog(char *buffer, const char *last, const DesyncE
auto flag_check = [&](DesyncExtraInfo::Flags flag, const char *str) {
return info.flags & flag ? str : "";
};
buffer += seprintf(buffer, last, "Flags: %s%s%s%s\n",
flag_check(DesyncExtraInfo::DEIF_RAND1, "R"),
flag_check(DesyncExtraInfo::DEIF_RAND2, "Z"),
flag_check(DesyncExtraInfo::DEIF_STATE, "S"),
flag_check(DesyncExtraInfo::DEIF_DBL_RAND, "D"));
buffer += seprintf(buffer, last, "Flags: %s%s\n",
flag_check(DesyncExtraInfo::DEIF_RAND, "R"),
flag_check(DesyncExtraInfo::DEIF_STATE, "S"));
}
if (_network_server && (info.desync_frame_seed || info.desync_frame_state_checksum)) {
buffer += seprintf(buffer, last, "Desync frame: %08X (seed), %08X (state checksum)\n", info.desync_frame_seed, info.desync_frame_state_checksum);

@ -21,10 +21,8 @@ struct DesyncDeferredSaveInfo {
struct DesyncExtraInfo {
enum Flags {
DEIF_NONE = 0, ///< no flags
DEIF_RAND1 = 1 << 0, ///< random 1 mismatch
DEIF_RAND2 = 1 << 1, ///< random 2 mismatch
DEIF_STATE = 1 << 2, ///< state mismatch
DEIF_DBL_RAND = 1 << 3, ///< double-seed sent
DEIF_RAND = 1 << 0, ///< random mismatch
DEIF_STATE = 1 << 1, ///< state mismatch
};
Flags flags = DEIF_NONE;

@ -81,9 +81,6 @@ uint32 _frame_counter; ///< The current frame.
uint32 _last_sync_frame; ///< Used in the server to store the last time a sync packet was sent to clients.
NetworkAddressList _broadcast_list; ///< List of broadcast addresses.
uint32 _sync_seed_1; ///< Seed to compare during sync checks.
#ifdef NETWORK_SEND_DOUBLE_SEED
uint32 _sync_seed_2; ///< Second part of the seed.
#endif
uint64 _sync_state_checksum; ///< State checksum to compare during sync checks.
uint32 _sync_frame; ///< The frame to perform the sync check.
Date _last_sync_date; ///< The game date of the last successfully received sync frame
@ -1264,9 +1261,6 @@ void NetworkGameLoop()
StateGameLoop();
_sync_seed_1 = _random.state[0];
#ifdef NETWORK_SEND_DOUBLE_SEED
_sync_seed_2 = _random.state[1];
#endif
_sync_state_checksum = _state_checksum.state;
(*_network_server_sync_records)[_network_server_sync_records_next] = { _frame_counter, _random.state[0], _state_checksum.state };

@ -316,17 +316,9 @@ void ClientNetworkGameSocketHandler::ClientError(NetworkRecvStatus res)
/* Check if we are in sync! */
if (_sync_frame != 0) {
if (_sync_frame == _frame_counter) {
#ifdef NETWORK_SEND_DOUBLE_SEED
if (_sync_seed_1 != _random.state[0] || _sync_seed_2 != _random.state[1] || (_sync_state_checksum != _state_checksum.state && !HasChickenBit(DCBF_MP_NO_STATE_CSUM_CHECK))) {
#else
if (_sync_seed_1 != _random.state[0] || (_sync_state_checksum != _state_checksum.state && !HasChickenBit(DCBF_MP_NO_STATE_CSUM_CHECK))) {
#endif
DesyncExtraInfo info;
if (_sync_seed_1 != _random.state[0]) info.flags |= DesyncExtraInfo::DEIF_RAND1;
#ifdef NETWORK_SEND_DOUBLE_SEED
if (_sync_seed_2 != _random.state[1]) info.flags |= DesyncExtraInfo::DEIF_RAND2;
info.flags |= DesyncExtraInfo::DEIF_DBL_RAND;
#endif
if (_sync_seed_1 != _random.state[0]) info.flags |= DesyncExtraInfo::DEIF_RAND;
if (_sync_state_checksum != _state_checksum.state) info.flags |= DesyncExtraInfo::DEIF_STATE;
ShowNetworkError(STR_NETWORK_ERROR_DESYNC);
@ -1074,16 +1066,9 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_FRAME(Packet *p
#ifdef ENABLE_NETWORK_SYNC_EVERY_FRAME
/* Test if the server supports this option
* and if we are at the frame the server is */
#ifdef NETWORK_SEND_DOUBLE_SEED
if (p->CanReadFromPacket(4 + 4 + 8)) {
#else
if (p->CanReadFromPacket(4 + 8)) {
#endif
_sync_frame = _frame_counter_server;
_sync_seed_1 = p->Recv_uint32();
#ifdef NETWORK_SEND_DOUBLE_SEED
_sync_seed_2 = p->Recv_uint32();
#endif
_sync_state_checksum = p->Recv_uint64();
}
#endif
@ -1110,9 +1095,6 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_SYNC(Packet *p)
_sync_frame = p->Recv_uint32();
_sync_seed_1 = p->Recv_uint32();
#ifdef NETWORK_SEND_DOUBLE_SEED
_sync_seed_2 = p->Recv_uint32();
#endif
_sync_state_checksum = p->Recv_uint64();
return NETWORK_RECV_STATUS_OKAY;

@ -34,12 +34,6 @@ static const uint32 FIND_SERVER_EXTENDED_TOKEN = 0x2A49582A;
* nothing will happen.
*/
#define ENABLE_NETWORK_SYNC_EVERY_FRAME
/**
* In theory sending 1 of the 2 seeds is enough to check for desyncs
* so in theory, this next define can be left off.
*/
#define NETWORK_SEND_DOUBLE_SEED
#endif /* RANDOM_DEBUG */
/**
@ -80,9 +74,6 @@ extern uint32 _last_sync_frame; // Used in the server to store the last time a s
extern NetworkAddressList _broadcast_list;
extern uint32 _sync_seed_1;
#ifdef NETWORK_SEND_DOUBLE_SEED
extern uint32 _sync_seed_2;
#endif
extern uint64 _sync_state_checksum;
extern uint32 _sync_frame;
extern Date _last_sync_date;

@ -701,9 +701,6 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendFrame()
p->Send_uint32(_frame_counter_max);
#ifdef ENABLE_NETWORK_SYNC_EVERY_FRAME
p->Send_uint32(_sync_seed_1);
#ifdef NETWORK_SEND_DOUBLE_SEED
p->Send_uint32(_sync_seed_2);
#endif
p->Send_uint64(_sync_state_checksum);
#endif
@ -724,9 +721,6 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendSync()
p->Send_uint32(_frame_counter);
p->Send_uint32(_sync_seed_1);
#ifdef NETWORK_SEND_DOUBLE_SEED
p->Send_uint32(_sync_seed_2);
#endif
p->Send_uint64(_sync_state_checksum);
this->SendPacket(p);
return NETWORK_RECV_STATUS_OKAY;

Loading…
Cancel
Save