diff --git a/src/k_kart.c b/src/k_kart.c index 1c1bc19d7..94b59d1e0 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3550,11 +3550,6 @@ UINT16 K_GetKartFlashing(const player_t *player) { UINT16 tics = flashingtics; - if (gametyperules & GTR_BUMPERS) - { - return 0; - } - if (player == NULL) { return tics; @@ -3564,6 +3559,16 @@ UINT16 K_GetKartFlashing(const player_t *player) return tics; } +void K_UpdateDamageFlashing(player_t *player, UINT16 tics) +{ + if (gametyperules & GTR_BUMPERS) + { + return; + } + + player->flashing = tics; +} + boolean K_PlayerShrinkCheat(const player_t *player) { return ( @@ -8391,9 +8396,9 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) if (player->spinouttimer != 0) { if (( player->spinouttype & KSPIN_IFRAMES ) == 0) - player->flashing = 0; + K_UpdateDamageFlashing(player, 0); else - player->flashing = K_GetKartFlashing(player); + K_UpdateDamageFlashing(player, K_GetKartFlashing(player)); } if (player->spinouttimer) diff --git a/src/k_kart.h b/src/k_kart.h index 73a80694d..98d76b46c 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -192,6 +192,7 @@ fixed_t K_GetKartSpeedFromStat(UINT8 kartspeed); fixed_t K_GetKartSpeed(const player_t *player, boolean doboostpower, boolean dorubberbanding); fixed_t K_GetKartAccel(const player_t *player); UINT16 K_GetKartFlashing(const player_t *player); +void K_UpdateDamageFlashing(player_t *player, UINT16 tics); boolean K_PlayerShrinkCheat(const player_t *player); void K_UpdateShrinkCheat(player_t *player); boolean K_KartKickstart(const player_t *player); diff --git a/src/p_inter.c b/src/p_inter.c index f8166381b..daa6eab8b 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -3333,7 +3333,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da if (type != DMG_STUMBLE && type != DMG_WHUMBLE) { if (type != DMG_STING) - player->flashing = K_GetKartFlashing(player); + K_UpdateDamageFlashing(player, K_GetKartFlashing(player)); player->ringburst += ringburst;