commit d5b1a695090eb49da3a4277686a30920cd5de046
Author: Ryan Krafnick <kraflab@gmail.com>
AuthorDate: Fri Mar 12 16:12:58 2021 +0100
Commit: GitHub <noreply@github.com>
CommitDate: Fri Mar 12 16:12:58 2021 +0100
Fix heretic coop demos (#1358)
* Fix heretic coop demos
* Align whitespace
---
src/heretic/g_game.c | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/src/heretic/g_game.c b/src/heretic/g_game.c
index 2e0c44f5..f85de205 100644
--- a/src/heretic/g_game.c
+++ b/src/heretic/g_game.c
@@ -115,6 +115,7 @@ boolean longtics; // specify high resolution turning in demos
boolean lowres_turn;
boolean shortticfix; // calculate lowres turning like doom
boolean demoplayback;
+boolean netdemo;
boolean demoextend;
byte *demobuffer, *demo_p, *demoend;
boolean singledemo; // quit after playing a demo from cmdline
@@ -1070,7 +1071,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)
@@ -1691,6 +1692,7 @@ void G_InitNew(skill_t skill, int episode, int map)
paused = false;
demorecording = false;
demoplayback = false;
+ netdemo = false;
viewactive = true;
gameepisode = episode;
gamemap = map;
@@ -1987,11 +1989,22 @@ void G_DoPlayDemo(void)
for (i = 0; i < MAXPLAYERS; i++)
playeringame[i] = (*demo_p++) != 0;
+ if (playeringame[1] || M_CheckParm("-solo-net") > 0
+ || M_CheckParm("-netdemo") > 0)
+ {
+ netgame = true;
+ }
+
precache = false; // don't spend a lot of time in loadlevel
G_InitNew(skill, episode, map);
precache = true;
usergame = false;
demoplayback = true;
+
+ if (netgame == true)
+ {
+ netdemo = true;
+ }
}
@@ -2025,6 +2038,12 @@ void G_TimeDemo(char *name)
playeringame[i] = (*demo_p++) != 0;
}
+ if (playeringame[1] || M_CheckParm("-solo-net") > 0
+ || M_CheckParm("-netdemo") > 0)
+ {
+ netgame = true;
+ }
+
G_InitNew(skill, episode, map);
starttime = I_GetTime();
@@ -2032,6 +2051,11 @@ void G_TimeDemo(char *name)
demoplayback = true;
timingdemo = true;
singletics = true;
+
+ if (netgame == true)
+ {
+ netdemo = true;
+ }
}
@@ -2066,6 +2090,8 @@ boolean G_CheckDemoStatus(void)
W_ReleaseLumpName(defdemoname);
demoplayback = false;
+ netdemo = false;
+ netgame = false;
D_AdvanceDemo();
return true;
}