* As predicted, remove FAULTing from simply becoming a spectator at the start of the race - only apply it if you attempt to rejoin!

* Mark FAULTing players as in pain, preventing you from using your rings in mid-air (which is especially egregrious when re-entering the race from being a spectator uses the item button).
This commit is contained in:
toaster 2021-02-18 11:11:50 +00:00
parent 2ec943a214
commit 5310acc84e
3 changed files with 9 additions and 8 deletions

View file

@ -1751,17 +1751,18 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source,
// Respawn kill types // Respawn kill types
K_DoIngameRespawn(player); K_DoIngameRespawn(player);
return false; return false;
case DMG_SPECTATOR:
// disappearifies, but still gotta put items back in play
break;
default: default:
// Everything else REALLY kills // Everything else REALLY kills
if (leveltime < starttime)
{
K_DoFault(player);
}
break; break;
} }
// FAULT
if (leveltime < starttime)
{
K_DoFault(player);
}
K_DropEmeraldsFromPlayer(player, player->powers[pw_emeralds]); K_DropEmeraldsFromPlayer(player, player->powers[pw_emeralds]);
K_SetHitLagForObjects(player->mo, inflictor, 15); K_SetHitLagForObjects(player->mo, inflictor, 15);

View file

@ -10638,7 +10638,7 @@ void P_MovePlayerToSpawn(INT32 playernum, mapthing_t *mthing)
mobj->angle = angle; mobj->angle = angle;
// FAULT // FAULT
if (leveltime > introtime) if (leveltime > introtime && !p->spectator)
{ {
K_DoIngameRespawn(p); K_DoIngameRespawn(p);
} }

View file

@ -461,7 +461,7 @@ UINT8 P_FindHighestLap(void)
// //
boolean P_PlayerInPain(player_t *player) boolean P_PlayerInPain(player_t *player)
{ {
if (player->kartstuff[k_spinouttimer] || player->tumbleBounces > 0) if (player->kartstuff[k_spinouttimer] || (player->tumbleBounces > 0) || (player->pflags & PF_FAULT))
return true; return true;
return false; return false;