From 7809162616f7c802945c430b51a0f656c1859144 Mon Sep 17 00:00:00 2001 From: kraflab Date: Fri, 23 Jul 2021 16:07:12 +0200 Subject: [PATCH 1/2] Fix hexen coop demo playback --- src/hexen/g_game.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c index b5bb518c76..a13e91ce08 100644 --- a/src/hexen/g_game.c +++ b/src/hexen/g_game.c @@ -99,6 +99,7 @@ boolean lowres_turn; boolean shortticfix; // calculate lowres turning like doom boolean demoplayback; boolean demoextend; +boolean netdemo; byte *demobuffer, *demo_p, *demoend; boolean singledemo; // quit after playing a demo from cmdline @@ -1020,7 +1021,7 @@ void G_Ticker(void) if (demorecording) G_WriteDemoTiccmd(cmd); - if (netgame && !(gametic % ticdup)) + if (netgame && !netdemo && !(gametic % ticdup)) { if (gametic > BACKUPTICS && consistancy[i][buf] != cmd->consistancy) @@ -1794,6 +1795,7 @@ void G_InitNew(skill_t skill, int episode, int map) // loading a saved one from the menu, and only during playback. demorecording = false; demoplayback = false; + netdemo = false; usergame = true; // will be set false if a demo } paused = false; @@ -2093,6 +2095,12 @@ void G_DoPlayDemo(void) PlayerClass[i] = *demo_p++; } + if (playeringame[1] || M_CheckParm("-solo-net") > 0 + || M_CheckParm("-netdemo") > 0) + { + netgame = true; + } + // Initialize world info, etc. G_StartNewInit(); @@ -2101,6 +2109,11 @@ void G_DoPlayDemo(void) precache = true; usergame = false; demoplayback = true; + + if (netgame == true) + { + netdemo = true; + } } @@ -2135,6 +2148,12 @@ void G_TimeDemo(char *name) PlayerClass[i] = *demo_p++; } + if (playeringame[1] || M_CheckParm("-solo-net") > 0 + || M_CheckParm("-netdemo") > 0) + { + netgame = true; + } + G_InitNew(skill, episode, map); starttime = I_GetTime(); @@ -2142,6 +2161,11 @@ void G_TimeDemo(char *name) demoplayback = true; timingdemo = true; singletics = true; + + if (netgame == true) + { + netdemo = true; + } } @@ -2176,6 +2200,8 @@ boolean G_CheckDemoStatus(void) W_ReleaseLumpName(defdemoname); demoplayback = false; + netdemo = false; + netgame = false; H2_AdvanceDemo(); return true; } From 22b0a5610f608ae3931f84b409434f5fe9264a0e Mon Sep 17 00:00:00 2001 From: kraflab Date: Sun, 25 Jul 2021 18:52:05 +0200 Subject: [PATCH 2/2] Simplify net demo checks --- src/hexen/g_game.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c index a13e91ce08..209cc7439c 100644 --- a/src/hexen/g_game.c +++ b/src/hexen/g_game.c @@ -2095,8 +2095,8 @@ void G_DoPlayDemo(void) PlayerClass[i] = *demo_p++; } - if (playeringame[1] || M_CheckParm("-solo-net") > 0 - || M_CheckParm("-netdemo") > 0) + if (playeringame[1] || M_ParmExists("-solo-net") + || M_ParmExists("-netdemo")) { netgame = true; } @@ -2110,7 +2110,7 @@ void G_DoPlayDemo(void) usergame = false; demoplayback = true; - if (netgame == true) + if (netgame) { netdemo = true; } @@ -2148,8 +2148,8 @@ void G_TimeDemo(char *name) PlayerClass[i] = *demo_p++; } - if (playeringame[1] || M_CheckParm("-solo-net") > 0 - || M_CheckParm("-netdemo") > 0) + if (playeringame[1] || M_ParmExists("-solo-net") + || M_ParmExists("-netdemo")) { netgame = true; } @@ -2162,7 +2162,7 @@ void G_TimeDemo(char *name) timingdemo = true; singletics = true; - if (netgame == true) + if (netgame) { netdemo = true; }