diff --git a/src/g_demo.cpp b/src/g_demo.cpp index 6c5c1647b..13eba5aa3 100644 --- a/src/g_demo.cpp +++ b/src/g_demo.cpp @@ -166,8 +166,12 @@ demoghost *ghosts = NULL; // - A bug was preventing control after ending a drift. // Older behavior is kept around for staff ghost compat. // - Also, polyobject bounce-back was fixed! +// - 0x000B (Ring Racers v2.1 + In dev revisions) +// - SPB cup TA replays were recorded at this time +// - Slope physics changed with a scaling fix +// - 0x000C (Ring Racers v2.2) -#define DEMOVERSION 0x000B +#define DEMOVERSION 0x000C boolean G_CompatLevel(UINT16 level) { diff --git a/src/p_user.c b/src/p_user.c index fc0c0bd23..c23f9e1f8 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -1917,7 +1917,11 @@ static void P_3dMovement(player_t *player) vector3_t totalthrust; totalthrust.x = totalthrust.y = 0; // I forget if this is needed - totalthrust.z = FRACUNIT*P_MobjFlip(player->mo)/3; // A bit of extra push-back on slopes + + if (G_CompatLevel(0x000B)) // Ring Racers 2.1 behavior + totalthrust.z = FRACUNIT*P_MobjFlip(player->mo)/3; // A bit of extra push-back on slopes + else + totalthrust.z = FixedMul(mapobjectscale, K_GrowShrinkSpeedMul(player))*P_MobjFlip(player->mo)/3; // A bit of extra push-back on slopes, but scaled for mapobject and player size if (K_SlopeResistance(player) == true) {