Use proper respawn check, don't cancel spinout, but prevent dropdashing when respawning with spinout

This commit is contained in:
Latapostrophe 2020-03-22 11:32:55 +01:00
parent b959c01349
commit 80e04a2035

View file

@ -2048,8 +2048,6 @@ void K_RespawnChecker(player_t *player)
fixed_t destx = 0, desty = 0, destz = 0;
player->mo->momx = player->mo->momy = player->mo->momz = 0;
player->kartstuff[k_spinouttimer] = 0;
player->kartstuff[k_wipeoutslow] = 0; // Don't spinout anymore
player->powers[pw_flashing] = 2;
player->powers[pw_nocontrol] = 2;
@ -2209,7 +2207,7 @@ void K_RespawnChecker(player_t *player)
// Sal: The old behavior was stupid and prone to accidental usage.
// Let's rip off Mania instead, and turn this into a Drop Dash!
if (cmd->buttons & BT_ACCELERATE)
if (cmd->buttons & BT_ACCELERATE && !player->kartstuff[k_spinouttimer]) // Lat: Since we're letting players spin out on respawn, don't let them charge a dropdash in this state. (It wouldn't work anyway)
player->kartstuff[k_dropdash]++;
else
player->kartstuff[k_dropdash] = 0;
@ -6081,7 +6079,7 @@ static waypoint_t *K_GetPlayerNextWaypoint(player_t *player)
(bestwaypoint != NULL) &&
(bestwaypoint != player->nextwaypoint) &&
(player->kartstuff[k_respawn] == 0) &&
(!(bestwaypoint->mobj->spawnpoint->options & MTF_AMBUSH)) && // Don't try to respawn on waypoints with the MTF_AMBUSH (No respawn) flag!
(K_GetWaypointIsSpawnpoint(bestwaypoint)) && // Don't try to respawn on waypoints that are marked with no respawn
(K_GetWaypointIsShortcut(bestwaypoint) == false) && (K_GetWaypointIsEnabled(bestwaypoint) == true))
{
size_t i = 0U;