From 7a7a66e0af1be72938616b04ebebe6bd9dbd706c Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Sun, 23 Mar 2014 03:30:41 -0400 Subject: heretic/hexen: Fix -timedemo. The -timedemo flag is broken in Vanilla Heretic/Hexen, as not all fields are read from the demo headers. Fix it, as there's no utility in having it nonfunctional and plenty of utility in having it functional. This fixes #300. --- src/heretic/g_game.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/heretic/g_game.c') diff --git a/src/heretic/g_game.c b/src/heretic/g_game.c index 2ad9f4b3..5139c950 100644 --- a/src/heretic/g_game.c +++ b/src/heretic/g_game.c @@ -1735,12 +1735,18 @@ void G_DoPlayDemo(void) void G_TimeDemo(char *name) { skill_t skill; - int episode, map; + int episode, map, i; demobuffer = demo_p = W_CacheLumpName(name, PU_STATIC); skill = *demo_p++; episode = *demo_p++; map = *demo_p++; + + for (i = 0; i < MAXPLAYERS; i++) + { + playeringame[i] = *demo_p++; + } + G_InitNew(skill, episode, map); usergame = false; demoplayback = true; @@ -1761,13 +1767,16 @@ void G_TimeDemo(char *name) boolean G_CheckDemoStatus(void) { - int endtime; + int endtime, realtics; if (timingdemo) { + float fps; endtime = I_GetTime(); - I_Error("timed %i gametics in %i realtics", gametic, - endtime - starttime); + realtics = endtime - starttime; + fps = ((float) gametic * TICRATE) / realtics; + I_Error("timed %i gametics in %i realtics (%f fps)", + gametic, realtics, fps); } if (demoplayback) -- cgit v1.2.3