From 766f34d4f53f828d81ff84913b58693b875691aa Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Wed, 24 Sep 2025 22:41:42 -0400 Subject: [PATCH 1/3] Fix Kickstart being unable to Acid Drop with Strict Fastfall off --- src/k_kart.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index bd9cf3686..fd3a11bd3 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -14075,9 +14075,15 @@ static void K_KartSpindash(player_t *player) } else if (!G_CompatLevel(0x0010)) { - boolean ebrakelasttic = ((player->oldcmd.buttons & BT_EBRAKEMASK) == BT_EBRAKEMASK); + UINT16 oldbuttons = player->oldcmd.buttons; + + if (K_KartKickstart(player)) + oldbuttons |= BT_ACCELERATE; // Not strictly correct, but better than nothing. + // Kickstart needs substrantial attention if we want this sort of thing to be clean. + + boolean ebrakelasttic = (oldbuttons == BT_EBRAKEMASK); if (player->pflags2 & PF2_STRICTFASTFALL) - ebrakelasttic = (player->oldcmd.buttons & BT_SPINDASH); + ebrakelasttic = (oldbuttons & BT_SPINDASH); boolean ebrakenow = K_PressingEBrake(player); if (player->pflags2 & PF2_STRICTFASTFALL && !(player->cmd.buttons & BT_SPINDASH)) From 65cf6edb93eb948a522973a27d4a8a369fdbb070 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Thu, 25 Sep 2025 18:45:11 -0400 Subject: [PATCH 2/3] Fix acid cancel oldbutton check --- src/k_kart.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index fd3a11bd3..dbd132b6c 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -14076,17 +14076,18 @@ static void K_KartSpindash(player_t *player) else if (!G_CompatLevel(0x0010)) { UINT16 oldbuttons = player->oldcmd.buttons; + UINT16 nowbuttons = K_GetKartButtons(player); if (K_KartKickstart(player)) oldbuttons |= BT_ACCELERATE; // Not strictly correct, but better than nothing. - // Kickstart needs substrantial attention if we want this sort of thing to be clean. + // Kickstart needs substantial attention if we want this sort of thing to be clean. - boolean ebrakelasttic = (oldbuttons == BT_EBRAKEMASK); - if (player->pflags2 & PF2_STRICTFASTFALL) - ebrakelasttic = (oldbuttons & BT_SPINDASH); + boolean ebrakelasttic = !!(oldbuttons & BT_EBRAKEMASK); + if (player->pflags2 & PF2_STRICTFASTFALL && !(oldbuttons & BT_SPINDASH)) + ebrakelasttic = false; boolean ebrakenow = K_PressingEBrake(player); - if (player->pflags2 & PF2_STRICTFASTFALL && !(player->cmd.buttons & BT_SPINDASH)) + if (player->pflags2 & PF2_STRICTFASTFALL && !(nowbuttons & BT_SPINDASH)) ebrakenow = false; if (!ebrakelasttic && ebrakenow && player->fastfall && player->transfer) From 77768b5a68136351e6a47772f82d56244ed3f10a Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Thu, 25 Sep 2025 19:47:36 -0400 Subject: [PATCH 3/3] Acid cancel last call --- src/k_kart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index dbd132b6c..7b434e7b1 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -14082,7 +14082,7 @@ static void K_KartSpindash(player_t *player) oldbuttons |= BT_ACCELERATE; // Not strictly correct, but better than nothing. // Kickstart needs substantial attention if we want this sort of thing to be clean. - boolean ebrakelasttic = !!(oldbuttons & BT_EBRAKEMASK); + boolean ebrakelasttic = ((oldbuttons & BT_EBRAKEMASK) == BT_EBRAKEMASK); if (player->pflags2 & PF2_STRICTFASTFALL && !(oldbuttons & BT_SPINDASH)) ebrakelasttic = false;