From b9f80f902b176a8aa6117b15198f60fa339a6dea Mon Sep 17 00:00:00 2001 From: Eidolon Date: Sat, 9 Nov 2024 20:44:40 -0600 Subject: [PATCH] Allow drop target to be picked up by whipping and a bit of cleanup --- src/k_collide.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/k_collide.cpp b/src/k_collide.cpp index 28e544d8b..77cf778c8 100644 --- a/src/k_collide.cpp +++ b/src/k_collide.cpp @@ -1042,7 +1042,14 @@ boolean K_InstaWhipCollide(mobj_t *shield, mobj_t *victim) } else if (victim->type == MT_DROPTARGET || victim->type == MT_DROPTARGET_SHIELD) { - K_DropTargetCollide(victim, shield); + if (K_TryPickMeUp(attacker, victim, true)) + { + shield->hitlag = attacker->hitlag; // players hitlag is handled in K_TryPickMeUp, and we need to set for the shield too + } + else + { + K_DropTargetCollide(victim, shield); + } return true; } else @@ -1059,13 +1066,16 @@ boolean K_InstaWhipCollide(mobj_t *shield, mobj_t *victim) shield->extravalue1 = 1; } - if (!K_TryPickMeUp(attackerPlayer->mo, victim, true)) + if (K_TryPickMeUp(attacker, victim, true)) + { + shield->hitlag = attacker->hitlag; // players hitlag is handled in K_TryPickMeUp, and we need to set for the shield too + } + else { P_DamageMobj(victim, shield, attacker, 1, DMG_NORMAL); + K_AddHitLag(attacker, attackerHitlag, false); + shield->hitlag = attacker->hitlag; } - - K_AddHitLag(attacker, attackerHitlag, false); - shield->hitlag = attacker->hitlag; } return false; }