Engine: fix bug in networking code caused by incorrect constants

Mixed MAX_BACKUP_COMMANDS with MAX_NEW_COMMANDS, added proper (confirmed) defines. Also fixed MAX_BACKUP_COMMANDS_PROCESS, which was 60 but was supposed to be 64, so we were 4 backup commands short in CPlayer::ProcessUsercmds().
This commit is contained in:
Kawe Mazidjatari 2024-02-19 19:17:27 +01:00
parent b68deadba0
commit 8b53027264
2 changed files with 12 additions and 5 deletions

View File

@ -4,13 +4,20 @@
* _protocol.h
*-----------------------------------------------------------------------------*/
// Largest # of commands to send in a packet
#define NUM_NEW_COMMAND_BITS 4
#define MAX_NEW_COMMANDS ((1 << NUM_NEW_COMMAND_BITS)-1)
// Max number of history commands to send ( 2 by default ) in case of dropped packets
#define NUM_BACKUP_COMMAND_BITS 4 // Originally 3 bits.
#define MAX_BACKUP_COMMANDS ((1 << NUM_BACKUP_COMMAND_BITS)-1) // 15 in R5; see 'CL_Move'.
#define NUM_BACKUP_COMMAND_BITS 3
#define MAX_BACKUP_COMMANDS ((1 << NUM_BACKUP_COMMAND_BITS)-1)
// Maximum amount of backup commands to process on the server.
#define MAX_BACKUP_COMMANDS_PROCESS (MAX_BACKUP_COMMANDS+1) * NUM_BACKUP_COMMAND_BITS
#define MAX_QUEUED_COMMANDS_PROCESS 0x1B0
#define MAX_BACKUP_COMMANDS_PROCESS 64
#define MAX_QUEUED_COMMANDS_PROCESS 432
// The size of the snapshot scratch buffer, which also applies to data block packets
#define SNAPSHOT_SCRATCH_BUFFER_SIZE 786432
enum class SIGNONSTATE : int
{

View File

@ -50,7 +50,7 @@ void CL_MoveEx()
if (cl->m_flNextCmdTime <= (maxFrameTime * 0.5f) + netTime)
sendPacket = chan->CanPacket();
else if (cl->m_nOutgoingCommandNr - (commandTick+1) < MAX_BACKUP_COMMANDS || isTimeScaleDefault)
else if (cl->m_nOutgoingCommandNr - (commandTick+1) < MAX_NEW_COMMANDS || isTimeScaleDefault)
sendPacket = false;
const bool isActive = cl->IsActive();