diff --git a/src/k_collide.c b/src/k_collide.c index 78036e3a0..ef73e0fb6 100644 --- a/src/k_collide.c +++ b/src/k_collide.c @@ -837,13 +837,43 @@ boolean K_PvPTouchDamage(mobj_t *t1, mobj_t *t2) else if (t1Condition == true && t2Condition == false) { if (G_CompatLevel(0x0008) || !hyudoroT1) - P_DamageMobj(t2, t1, t1, 1, DMG_SQUISH); - return true; + { + switch (cv_kartairsquish.value) + { + case 1: + P_DamageMobj(t2, t1, t1, 1, DMG_SQUISH); + return true; + break; + case 2: + P_DamageMobj(t2, t1, t1, 1, DMG_FLIPOVER); + return true; + break; + default: + return false; + break; + } + } } else if (t1Condition == false && t2Condition == true) { if (G_CompatLevel(0x0008) || !hyudoroT2) - P_DamageMobj(t1, t2, t2, 1, DMG_SQUISH); + { + // shitty code duplication 🥲 + switch (cv_kartairsquish.value) + { + case 1: + P_DamageMobj(t1, t2, t2, 1, DMG_SQUISH); + return true; + break; + case 2: + P_DamageMobj(t1, t2, t2, 1, DMG_FLIPOVER); + return true; + break; + default: + return false; + break; + } + } return true; } diff --git a/src/k_kart.c b/src/k_kart.c index d878cdde2..74ce295bb 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -89,6 +89,9 @@ consvar_t cv_kartbubble_defense_damagerate = CVAR_INIT ("kartbubble_defense_dama consvar_t cv_kartbubble_boost_allow = CVAR_INIT ("kartbubble_boost_allow", "On", CV_NETVAR, CV_OnOff, NULL); consvar_t cv_kartflame_fastfuel = CVAR_INIT ("kartflame_fastfuel", "Off", CV_NETVAR, CV_OnOff, NULL); +static CV_PossibleValue_t kartairsquish_cons_t[] = {{1, "Squish"}, {2, "Flip-over"}, {0, "None"}, {0, NULL}}; +consvar_t cv_kartairsquish = CVAR_INIT ("kartairsquish", "None", CV_NETVAR, kartairsquish_cons_t, NULL); + // SOME IMPORTANT VARIABLES DEFINED IN DOOMDEF.H: // gamespeed is cc (0 for easy, 1 for normal, 2 for hard) // franticitems is Frantic Mode items, bool @@ -316,6 +319,8 @@ void K_RegisterKartStuff(void) CV_RegisterVar(&cv_kartbubble_boost_allow); CV_RegisterVar(&cv_kartflame_fastfuel); + CV_RegisterVar(&cv_kartairsquish); + // HUD cvars K_RegisterKartHUDStuff(); diff --git a/src/k_kart.h b/src/k_kart.h index e6f79b2b5..6f335ae3e 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -20,6 +20,8 @@ extern consvar_t cv_kartchainingsound; extern consvar_t cv_kartdriftsounds; extern consvar_t cv_kartdriftefx; +extern consvar_t cv_kartairsquish; + // opinionated stuff for testing extern consvar_t cv_kartbubble_defense_canidle; extern consvar_t cv_kartbubble_defense_damagerate;