From f121ed210aaaac04b0ee855b31dd282b23b4f450 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Sun, 25 Oct 2020 09:57:51 -0400 Subject: [PATCH] Fix flashing tics --- src/k_kart.c | 13 +++---------- src/m_cheat.c | 3 +-- src/p_inter.c | 4 ++-- src/p_mobj.c | 9 +-------- src/p_user.c | 6 ++++-- 5 files changed, 11 insertions(+), 24 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 70454aaa2..a6beddbbe 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1197,7 +1197,7 @@ void K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean solid) { mobj1->player->kartstuff[k_wipeoutslow] = wipeoutslowtime+1; mobj1->player->kartstuff[k_spinouttimer] = max(wipeoutslowtime+1, mobj1->player->kartstuff[k_spinouttimer]); - //mobj1->player->kartstuff[k_spinouttype] = 1; // Enforce type + //mobj1->player->kartstuff[k_spinouttype] = KSPIN_WIPEOUT; // Enforce type } else if (mobj2->player // Player VS player bumping only && (K_GetShieldFromItem(mobj1->player->kartstuff[k_itemtype]) == KSHIELD_NONE)) // Ignore for shields @@ -1221,7 +1221,7 @@ void K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean solid) { mobj2->player->kartstuff[k_wipeoutslow] = wipeoutslowtime+1; mobj2->player->kartstuff[k_spinouttimer] = max(wipeoutslowtime+1, mobj2->player->kartstuff[k_spinouttimer]); - //mobj2->player->kartstuff[k_spinouttype] = 1; // Enforce type + //mobj2->player->kartstuff[k_spinouttype] = KSPIN_WIPEOUT; // Enforce type } else if (mobj1->player // Player VS player bumping only && (K_GetShieldFromItem(mobj2->player->kartstuff[k_itemtype]) == KSHIELD_NONE)) // Ignore for shields @@ -2569,7 +2569,7 @@ void K_DebtStingPlayer(player_t *player, mobj_t *source) length += (4 * (source->player->kartweight - player->kartweight)); } - player->kartstuff[k_spinouttype] = 2; + player->kartstuff[k_spinouttype] = KSPIN_STUNG; player->kartstuff[k_spinouttimer] = length; player->kartstuff[k_wipeoutslow] = min(length-1, wipeoutslowtime+1); @@ -5575,10 +5575,6 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) { player->powers[pw_flashing] = K_GetKartFlashing(player); } - else if (player->powers[pw_flashing] >= K_GetKartFlashing(player)) - { - player->powers[pw_flashing]--; - } if (player->kartstuff[k_spinouttimer]) { @@ -5589,9 +5585,6 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) player->kartstuff[k_spinouttimer]--; if (player->kartstuff[k_wipeoutslow] > 1) player->kartstuff[k_wipeoutslow]--; - // Actually, this caused more problems than it solved. Just make sure you set type before you spinout. Which K_SpinPlayer always does. - /*if (player->kartstuff[k_spinouttimer] == 0) - player->kartstuff[k_spinouttype] = 0;*/ // Reset type } } else diff --git a/src/m_cheat.c b/src/m_cheat.c index 628121295..ff5f86968 100644 --- a/src/m_cheat.c +++ b/src/m_cheat.c @@ -1283,7 +1283,6 @@ void Command_ObjectPlace_f(void) players[0].mo->color = op_oldcolor; // This is necessary for recovery of dying players. - if (players[0].powers[pw_flashing] >= K_GetKartFlashing(&players[0])) - players[0].powers[pw_flashing] = K_GetKartFlashing(&players[0]) - 1; + players[0].powers[pw_flashing] = K_GetKartFlashing(&players[0]); } } diff --git a/src/p_inter.c b/src/p_inter.c index e408c1d27..b0dd45156 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -1914,12 +1914,12 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da if (P_IsDisplayPlayer(player)) P_StartQuake(32<type, state); #endif - // You were in pain state after taking a hit, and you're moving out of pain state now? - if (mobj->state == &states[mobj->info->painstate] && player->powers[pw_flashing] == K_GetKartFlashing(player) && state != mobj->info->painstate) - { - // Start flashing, since you've landed. - player->powers[pw_flashing] = K_GetKartFlashing(player)-1; - } - // Set animation state // The pflags version of this was just as convoluted. switch(state) @@ -10117,7 +10110,7 @@ void P_SpawnPlayer(INT32 playernum) p->skincolor = skincolor_blueteam; } - p->powers[pw_flashing] = flashingtics-1; // Babysitting deterrent + p->powers[pw_flashing] = K_GetKartFlashing(p); // Babysitting deterrent mobj = P_SpawnMobj(0, 0, 0, MT_PLAYER); (mobj->player = p)->mo = mobj; diff --git a/src/p_user.c b/src/p_user.c index b30bfcf05..b58cdbf84 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4492,8 +4492,8 @@ void P_PlayerThink(player_t *player) player->pflags &= ~PF_SPINDOWN; // IF PLAYER NOT HERE THEN FLASH END IF - if (player->quittime && player->powers[pw_flashing] < flashingtics - 1 && !player->gotflag) - player->powers[pw_flashing] = flashingtics - 1; + if (player->quittime && player->powers[pw_flashing] < K_GetKartFlashing(player) && !player->gotflag) + player->powers[pw_flashing] = K_GetKartFlashing(player); // Counters, time dependent power ups. // Time Bonus & Ring Bonus count settings @@ -4501,7 +4501,9 @@ void P_PlayerThink(player_t *player) // Strength counts up to diminish fade. if (player->powers[pw_flashing] && player->powers[pw_flashing] < UINT16_MAX && (player->spectator || !P_PlayerInPain(player))) + { player->powers[pw_flashing]--; + } if (player->powers[pw_nocontrol] & ((1<<15)-1) && player->powers[pw_nocontrol] < UINT16_MAX) {