Strict Fastfall: review fixups

This commit is contained in:
Antonio Martinez 2025-05-11 17:58:44 -07:00
parent 90c28dc2d9
commit 654f25f684
3 changed files with 14 additions and 5 deletions

View file

@ -1178,6 +1178,12 @@ enum {
WP_SELFMUTE = 1<<5, WP_SELFMUTE = 1<<5,
WP_SELFDEAFEN = 1<<6, WP_SELFDEAFEN = 1<<6,
WP_STRICTFASTFALL = 1<<7, WP_STRICTFASTFALL = 1<<7,
// WARNING: STUPID LEGACY TIMEWASTER AHEAD
// IF YOU ARE ADDING OR MODIFYING WEAPONPREFS, YOU MUST
// PRESERVE THEM IN G_PlayerReborn -- OTHERWISE THEY
// WILL MYSTERIOUSLY VANISH AFTER ONE RACE
//
// HOURS LOST TO G_PlayerReborn: UNCOUNTABLE
}; };
void WeaponPref_Send(UINT8 ssplayer) void WeaponPref_Send(UINT8 ssplayer)
@ -1239,6 +1245,9 @@ void WeaponPref_Save(UINT8 **cp, INT32 playernum)
if (player->pflags & PF_AUTORING) if (player->pflags & PF_AUTORING)
prefs |= WP_AUTORING; prefs |= WP_AUTORING;
if (player->pflags & PF2_STRICTFASTFALL)
prefs |= WP_STRICTFASTFALL;
WRITEUINT8(*cp, prefs); WRITEUINT8(*cp, prefs);
} }

View file

@ -2349,7 +2349,7 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps)
xtralife = players[player].xtralife; xtralife = players[player].xtralife;
pflags = (players[player].pflags & (PF_WANTSTOJOIN|PF_KICKSTARTACCEL|PF_SHRINKME|PF_SHRINKACTIVE|PF_AUTOROULETTE|PF_ANALOGSTICK|PF_AUTORING)); pflags = (players[player].pflags & (PF_WANTSTOJOIN|PF_KICKSTARTACCEL|PF_SHRINKME|PF_SHRINKACTIVE|PF_AUTOROULETTE|PF_ANALOGSTICK|PF_AUTORING));
pflags2 = (players[player].pflags2 & (PF2_SELFMUTE | PF2_SELFDEAFEN | PF2_SERVERMUTE | PF2_SERVERDEAFEN)); pflags2 = (players[player].pflags2 & (PF2_SELFMUTE | PF2_SELFDEAFEN | PF2_SERVERMUTE | PF2_SERVERDEAFEN | PF2_STRICTFASTFALL));
// SRB2kart // SRB2kart
memcpy(&itemRoulette, &players[player].itemRoulette, sizeof (itemRoulette)); memcpy(&itemRoulette, &players[player].itemRoulette, sizeof (itemRoulette));

View file

@ -12614,12 +12614,12 @@ static void K_KartSpindash(player_t *player)
if (player->pflags & PF_NOFASTFALL) if (player->pflags & PF_NOFASTFALL)
return; return;
if (player->pflags2 & PF2_STRICTFASTFALL)
if (!(player->cmd.buttons & BT_SPINDASH))
return;
if (player->fastfall == 0) if (player->fastfall == 0)
{ {
if (player->pflags2 & PF2_STRICTFASTFALL)
if (!(player->cmd.buttons & BT_SPINDASH))
return;
// Factors 3D momentum. // Factors 3D momentum.
player->fastfallBase = FixedHypot(player->speed, player->mo->momz); player->fastfallBase = FixedHypot(player->speed, player->mo->momz);
} }