From 8a6a2b5bf31487d72fda96a192f453fd3c48245a Mon Sep 17 00:00:00 2001 From: GenericHeroGuy Date: Tue, 16 Sep 2025 22:38:41 +0200 Subject: [PATCH] Fix Sryder's Pleasure Castle ghost segfaulting... again (closes #114) --- src/g_demo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/g_demo.c b/src/g_demo.c index 6e50bef74..9798ee567 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -2004,8 +2004,8 @@ void G_GhostTicker(void) for (UINT16 i = 0; i < zt.damagecount; i++) { zipticdamage_t *damage = &zt.damage[i]; - if (!(mobjinfo[damage->type].flags & MF_SHOOTABLE) - || !(mobjinfo[damage->type].flags & (MF_ENEMY|MF_MONITOR)) + // MAP15S03 has a broken EZT_HIT at leveltime 3455 which is all 0xff... so bounds check damage->type + if ((damage->type < nummobjtypes && !(mobjinfo[damage->type].flags & (MF_SHOOTABLE|MF_ENEMY|MF_MONITOR))) || damage->health != 0 || i >= 4) // only spawn for the first 4 hits per frame, to prevent ghosts from splode-spamming too bad. continue; mobj_t *poof = P_SpawnMobj(damage->x, damage->y, damage->z, MT_GHOST);