From c8ba383f22044389d80edb91cde77ea563d732e6 Mon Sep 17 00:00:00 2001 From: VelocitOni Date: Sun, 3 Aug 2025 17:52:14 -0400 Subject: [PATCH] SPB intangibility call fixes SPB is intangible when "flashing" now, as in flashing WHITE during it's 'give up' LOL (this never happened before, it was purely visual, so my check was useless). SPB intangibility also now checks for just 0 instead of flashing. Works. --- src/objects/spb.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/objects/spb.c b/src/objects/spb.c index ee1f82332..68a2090aa 100644 --- a/src/objects/spb.c +++ b/src/objects/spb.c @@ -392,6 +392,7 @@ static void SPBSeek(mobj_t *spb, mobj_t *bestMobj) // Go past our target and explode instead. if (spb->fuse == 0) { + spb_intangible(spb) = SPB_FLASHING; spb->fuse = 2*TICRATE; } } @@ -626,7 +627,12 @@ static void SPBSeek(mobj_t *spb, mobj_t *bestMobj) } } - if (spb_intangible(spb) != SPB_FLASHING || (spb_modetimer(spb) <= 0)) // Tired of this thing whacking people when switching targets + //CONS_Printf("%d: leveltime %d: SPB intangibility %d: SPBModeTimer\n", leveltime, spb_intangible(spb), spb_modetimer(spb)); + + // Tired of this thing whacking people when switching targets. + // I'm pretty sure checking mode timer doesn't work but, idk insurance!! + + if (spb_intangible(spb) <= 0 || (spb_modetimer(spb) > 0)) { if (sliptide != 0) { @@ -1041,6 +1047,7 @@ void Obj_SPBThink(mobj_t *spb) spb->color = SKINCOLOR_NONE; spb->colorized = false; } + spb_intangible(spb) = SPB_FLASHING; // This is supposed to make it intangible when it's about to quit } // Clamp within level boundaries.