From 9ddea94590167a82d9303ec992e8eef7865de5e3 Mon Sep 17 00:00:00 2001 From: wolfy852 Date: Thu, 31 Jan 2019 19:15:28 -0600 Subject: [PATCH 1/4] Potentially fix 64-bit builds crashing on certain replays --- src/g_game.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index d8022e08..dcd67b40 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -5141,15 +5141,13 @@ void G_GhostTicker(void) for (i = 0; i < count; i++) { g->p += 4; // reserved - type = READUINT32(g->p); + demo_p += 4; // backwards compat. health = READUINT16(g->p); x = READFIXED(g->p); y = READFIXED(g->p); z = READFIXED(g->p); angle = READANGLE(g->p); - if (!(mobjinfo[type].flags & MF_SHOOTABLE) - || !(mobjinfo[type].flags & (MF_ENEMY|MF_MONITOR)) - || health != 0 || i >= 4) // only spawn for the first 4 hits per frame, to prevent ghosts from splode-spamming too bad. + if (health != 0 || i >= 4) // only spawn for the first 4 hits per frame, to prevent ghosts from splode-spamming too bad. continue; poof = P_SpawnMobj(x, y, z, MT_GHOST); poof->angle = angle; From 7c18d130f23da29b8d07bb89b3da83df6723b605 Mon Sep 17 00:00:00 2001 From: wolfy852 Date: Thu, 31 Jan 2019 23:21:00 -0600 Subject: [PATCH 2/4] Fix replay weirdness Sryder's Pleasure Castle ghost tries to return to England with this line. --- src/g_game.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/g_game.c b/src/g_game.c index dcd67b40..58f8b0d9 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -5141,7 +5141,7 @@ void G_GhostTicker(void) for (i = 0; i < count; i++) { g->p += 4; // reserved - demo_p += 4; // backwards compat. + type = READUINT32(g->p); health = READUINT16(g->p); x = READFIXED(g->p); y = READFIXED(g->p); From b5b4e1fcc88b417f3054fd2332a6c8bcbda363e5 Mon Sep 17 00:00:00 2001 From: wolfy852 Date: Fri, 1 Feb 2019 15:42:29 -0600 Subject: [PATCH 3/4] Skip over type CORRECTLY, this time. --- src/g_game.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/g_game.c b/src/g_game.c index 58f8b0d9..7cddad08 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -5141,7 +5141,7 @@ void G_GhostTicker(void) for (i = 0; i < count; i++) { g->p += 4; // reserved - type = READUINT32(g->p); + g->p += 4; // backwards compat., type used to be here health = READUINT16(g->p); x = READFIXED(g->p); y = READFIXED(g->p); From 85f3be58895aea1d68adf31fd126d849db601627 Mon Sep 17 00:00:00 2001 From: wolfy852 Date: Fri, 1 Feb 2019 15:45:53 -0600 Subject: [PATCH 4/4] Comment out type --- src/g_game.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/g_game.c b/src/g_game.c index 7cddad08..df7119c3 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -5134,7 +5134,7 @@ void G_GhostTicker(void) if (ziptic & EZT_HIT) { // Spawn hit poofs for killing things! UINT16 i, count = READUINT16(g->p), health; - UINT32 type; + //UINT32 type; fixed_t x,y,z; angle_t angle; mobj_t *poof;