From 4dc4dd33e7d70aafbd6c470e680ec7b3a11ce69d Mon Sep 17 00:00:00 2001 From: Spoike Date: Mon, 9 Jan 2023 05:13:50 +0000 Subject: [PATCH] Our Q2 code is a little fragile. Give it its assumptions to avoid hideousness. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@6329 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/cl_main.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/engine/client/cl_main.c b/engine/client/cl_main.c index b39f375d3..be7593af2 100644 --- a/engine/client/cl_main.c +++ b/engine/client/cl_main.c @@ -6324,6 +6324,7 @@ double Host_Frame (double time) extern int r_blockvidrestart; static qboolean hadwork; qboolean vrsync; + qboolean mustrenderbeforeread; RSpeedLocals(); @@ -6536,6 +6537,10 @@ double Host_Frame (double time) cl.do_lerp_players = cl_lerp_players.ival || (cls.demoplayback==DPB_MVD || cls.demoplayback == DPB_EZTV) || (cls.demoplayback && !cl_nolerp.ival && !cls.timedemo); CL_AllowIndependantSendCmd(false); + mustrenderbeforeread = cls.protocol == CP_QUAKE2; //FIXME: quake2 MUST render a frame (or a later one) before it can read any acks from the server, otherwise its prediction screws up. I'm too lazy to rewrite that right now. +// if (mustrenderbeforeread) + CL_ReadPackets(); //this should be redundant. + CL_RequestNextDownload(); // send intentions now @@ -6593,9 +6598,12 @@ double Host_Frame (double time) #endif // fetch results from server... now that we've run it. - CL_AllowIndependantSendCmd(false); - CL_ReadPackets (); - CL_AllowIndependantSendCmd(true); + if (!mustrenderbeforeread) + { + CL_AllowIndependantSendCmd(false); + CL_ReadPackets (); + CL_AllowIndependantSendCmd(true); + } CL_CalcClientTime();