From 500790ef64bf1125fc8e7730ffee5aebaa9f6aa3 Mon Sep 17 00:00:00 2001 From: yamamama Date: Sat, 4 Apr 2026 22:28:10 -0400 Subject: [PATCH] Make S-Monitors pass through players using Alt-Shrink --- src/k_collide.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/k_collide.c b/src/k_collide.c index a222b2103..52df67007 100644 --- a/src/k_collide.c +++ b/src/k_collide.c @@ -1099,7 +1099,28 @@ boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2) t1Condition = (t1->scale > t2->scale + (mapobjectscale/8)); t2Condition = (t2->scale > t1->scale + (mapobjectscale/8)); - + + // Merritt suggestion: ONLY make Alt. Shrink squish/flipover interactions happen if and only + // if the crushing player doesn't have an S-Monitor active + + if (t1Condition && (t1->player && t1->player->smonitortimer) && (t2->player && K_IsAltShrunk(t2->player))) + { + // t1Condition: t1's player has an S-Monitor, don't do squat + // Extend some mercy to the players phasing through one another + t1->player->justbumped = 6; + t2->player->justbumped = 6; + return false; + } + + if (t2Condition && (t2->player && t2->player->smonitortimer) && (t1->player && K_IsAltShrunk(t1->player))) + { + // t2Condition: t2's player has an S-Monitor, don't do squat + // Extend some mercy to the players phasing through one another + t1->player->justbumped = 6; + t2->player->justbumped = 6; + return false; + } + if ((t1Condition == true || flameT1 == true) && (t2Condition == true || flameT2 == true)) { return false;