diff --git a/src/g_demo.c b/src/g_demo.c index fb764e268..56f98cf73 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -505,7 +505,7 @@ void G_ReadDemoTiccmd(ticcmd_t *cmd, INT32 playernum) if (ziptic & ZT_LATENCY) oldcmd[playernum].latency = READUINT8(demo_p); if (ziptic & ZT_FLAGS) - oldcmd[playernum].latency = READUINT8(demo_p); + oldcmd[playernum].flags = READUINT8(demo_p); G_CopyTiccmd(cmd, &oldcmd[playernum], 1); diff --git a/src/g_game.c b/src/g_game.c index 514e99424..50b759c70 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1111,7 +1111,6 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer) cmd->forwardmove += (SINT8)forward; - cmd->latency = (leveltime & 0xFF); // Send leveltime when this tic was generated to the server for control lag calculations cmd->flags = 0; if (chat_on || CON_Ready()) @@ -1137,6 +1136,10 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer) if (addedtogame && gamestate == GS_LEVEL) { LUAh_PlayerCmd(player, cmd); + + // Send leveltime when this tic was generated to the server for control lag calculations. + // Only do this when in a level. Also do this after the hook, so that it can't overwrite this. + cmd->latency = (leveltime & 0xFF); } if (cmd->forwardmove > MAXPLMOVE)