From bbadb41fee09b03507ca43f3a981a3e565e1729f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gustaf=20Alh=C3=A4ll?= <gustaf@hanicef.me>
Date: Sat, 26 Apr 2025 12:59:24 +0200
Subject: [PATCH] Use server's numslots for determining servertic sizes

---
 src/netcode/client_connection.c | 1 +
 src/netcode/tic_command.c       | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/netcode/client_connection.c b/src/netcode/client_connection.c
index 90adeaac1..c7a321bbd 100644
--- a/src/netcode/client_connection.c
+++ b/src/netcode/client_connection.c
@@ -1552,6 +1552,7 @@ void PT_ServerCFG(doomcom_t *doomcom)
 	if (serverplayer >= 0)
 		playernode[(UINT8)serverplayer] = servernode;
 
+	// NOTE: no longer used, we now rely on number of slots via servertics
 	numslots = P_ReadUINT8(&data);
 	if (client)
 		maketic = gametic = neededtic = P_ReadUINT32(&data);
diff --git a/src/netcode/tic_command.c b/src/netcode/tic_command.c
index c3c44687d..e5173fb30 100644
--- a/src/netcode/tic_command.c
+++ b/src/netcode/tic_command.c
@@ -242,7 +242,7 @@ void PT_ServerTics(doomcom_t *doomcom, INT32 netconsole)
 	if (realstart <= neededtic && realend > neededtic)
 	{
 		UINT8 *pak = (UINT8 *)&packet->cmds;
-		UINT8 *txtpak = (UINT8 *)&packet->cmds[numslots * packet->numtics];
+		UINT8 *txtpak = (UINT8 *)&packet->cmds[packet->numslots * packet->numtics];
 
 		for (tic_t i = realstart; i < realend; i++)
 		{
@@ -251,7 +251,7 @@ void PT_ServerTics(doomcom_t *doomcom, INT32 netconsole)
 
 			// copy the tics
 			pak = G_ScpyTiccmd(netcmds[i%BACKUPTICS], pak,
-				numslots*sizeof (ticcmd_t));
+				packet->numslots*sizeof (ticcmd_t));
 
 			CL_CopyNetCommandsFromServerPacket(i, &txtpak);
 		}
-- 
GitLab