Merge branch 'fix-waterskii' into 'master'

Waterskii fixes

See merge request kart-krew-dev/ring-racers-internal!2918
This commit is contained in:
Gunla 2025-10-07 01:38:31 +00:00
commit ee8ec81da4
3 changed files with 26 additions and 7 deletions

View file

@ -182,9 +182,10 @@ demoghost *ghosts = NULL;
// - 0x000F -- RR 2.4 indev (staff ghosts part 2 - dynslopes thinker fix)
// - 0x0010 -- RR 2.4 rc1 (staff ghosts part 3 - skinlimit raise. don't say we never did anythin for 'ya)
// - 0x0011 -- RR 2.4 rc2 (K_FlipFromObject oversight)
// - 0x0012 -- RR 2.4 rc6 (Waterskii regression from 2.3)
#define MINDEMOVERSION 0x000E
#define DEMOVERSION 0x0011
#define DEMOVERSION 0x0012
boolean G_CompatLevel(UINT16 level)
{

View file

@ -3323,10 +3323,8 @@ boolean K_WaterRun(mobj_t *mobj)
return false;
}
case MT_PLAYER:
case MT_PLAYER: // Waterskii
{
fixed_t minspeed = 0;
if (mobj->player == NULL)
{
return false;
@ -3337,11 +3335,22 @@ boolean K_WaterRun(mobj_t *mobj)
return K_IsHoldingDownTop(mobj->player) == false;
}
minspeed = K_PlayerTripwireSpeedThreshold(mobj->player);
fixed_t basefullspeed = K_GetKartSpeed(mobj->player, false, false);
fixed_t minspeed = K_PlayerTripwireSpeedThreshold(mobj->player);
if (mobj->player->speed < minspeed / 5) // 40%
if (G_CompatLevel(0x0011))
{
return false;
if (mobj->player->speed < minspeed / 5) // 40%
{
return false;
}
}
else // Don't factor tripwire speed for pre-boost cutoff
{
if (mobj->player->speed < basefullspeed * 2/3) // 66%
{
return false;
}
}
if (mobj->player->invincibilitytimer

View file

@ -603,6 +603,15 @@ void K_ProcessTerrainEffect(mobj_t *mo)
player->dashpadcooldown = TICRATE/3;
player->trickpanel = TRICKSTATE_NONE;
player->floorboost = 2;
if (G_CompatLevel(0x0011))
{
// Old behavior, no grease
}
else
{
player->tiregrease = TICRATE/2;
}
S_StartSound(player->mo, sfx_cdfm62);
}