commit 621a8d8362856fbd4627f81f14a00e19aee0744f
Author: Thomas A. Birkel <capnclever@gmail.com>
AuthorDate: Thu Nov 10 23:44:06 2016 -0500
Commit: Thomas A. Birkel <capnclever@gmail.com>
CommitDate: Thu Nov 10 23:44:06 2016 -0500
g_game.c: Don't overwrite Heretic/Hexen demo playback arguments
-nomonsters and -respawn need to be read for vanilla demo playback: this
fix allows either command line or special bits to enable them.
Fix for #803
---
src/heretic/g_game.c | 8 +++++---
src/hexen/g_game.c | 8 +++++---
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/heretic/g_game.c b/src/heretic/g_game.c
index da144433..ff471aa0 100644
--- a/src/heretic/g_game.c
+++ b/src/heretic/g_game.c
@@ -1885,9 +1885,11 @@ void G_DoPlayDemo(void)
map = *demo_p++;
// Read special parameter bits: see G_RecordDemo() for details.
- respawnparm = (*demo_p & DEMOHEADER_RESPAWN) != 0;
- longtics = (*demo_p & DEMOHEADER_LONGTICS) != 0;
- nomonsters = (*demo_p & DEMOHEADER_NOMONSTERS) != 0;
+ longtics = (*demo_p & DEMOHEADER_LONGTICS) != 0;
+
+ // don't overwrite arguments from the command line
+ respawnparm |= (*demo_p & DEMOHEADER_RESPAWN) != 0;
+ nomonsters |= (*demo_p & DEMOHEADER_NOMONSTERS) != 0;
for (i = 0; i < MAXPLAYERS; i++)
playeringame[i] = (*demo_p++) != 0;
diff --git a/src/hexen/g_game.c b/src/hexen/g_game.c
index f1904d87..1f61ae63 100644
--- a/src/hexen/g_game.c
+++ b/src/hexen/g_game.c
@@ -2049,9 +2049,11 @@ void G_DoPlayDemo(void)
map = *demo_p++;
// Read special parameter bits: see G_RecordDemo() for details.
- respawnparm = (*demo_p & DEMOHEADER_RESPAWN) != 0;
- longtics = (*demo_p & DEMOHEADER_LONGTICS) != 0;
- nomonsters = (*demo_p & DEMOHEADER_NOMONSTERS) != 0;
+ longtics = (*demo_p & DEMOHEADER_LONGTICS) != 0;
+
+ // don't overwrite arguments from the command line
+ respawnparm |= (*demo_p & DEMOHEADER_RESPAWN) != 0;
+ nomonsters |= (*demo_p & DEMOHEADER_NOMONSTERS) != 0;
for (i = 0; i < maxplayers; i++)
{