From a8a1f1b4445c6ec08ca58a17478a98a2d1e304f6 Mon Sep 17 00:00:00 2001 From: toaster Date: Tue, 9 Oct 2018 22:40:42 +0100 Subject: [PATCH] Spawn a poof if you get hit while karmegg. (I've moved the comebacktimer set into one level up from that conditional; don't worry, I checked - there's nowhere that accesses this field while you have bumpers, it's just always set here for some dastardly reason.) --- src/k_kart.c | 39 +++++++++++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 9f70f0f6..dbf8f796 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1796,11 +1796,20 @@ void K_SpinPlayer(player_t *player, mobj_t *source, INT32 type, boolean trapitem K_CalculateBattleWanted(); } + if (!player->kartstuff[k_bumper]) + { + player->kartstuff[k_comebacktimer] = comebacktime; + if (player->kartstuff[k_comebackmode]) + { + mobj_t *poof = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_EXPLODE); + S_StartSound(poof, mobjinfo[MT_KARMAHITBOX].seesound); + player->kartstuff[k_comebackmode] = 0; + } + } + K_CheckBumpers(); } - player->kartstuff[k_comebacktimer] = comebacktime; - player->kartstuff[k_spinouttype] = type; if (player->kartstuff[k_spinouttype] <= 0) @@ -1878,11 +1887,20 @@ void K_SquishPlayer(player_t *player, mobj_t *source) K_CalculateBattleWanted(); } + if (!player->kartstuff[k_bumper]) + { + player->kartstuff[k_comebacktimer] = comebacktime; + if (player->kartstuff[k_comebackmode]) + { + mobj_t *poof = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_EXPLODE); + S_StartSound(poof, mobjinfo[MT_KARMAHITBOX].seesound); + player->kartstuff[k_comebackmode] = 0; + } + } + K_CheckBumpers(); } - player->kartstuff[k_comebacktimer] = comebacktime; - player->kartstuff[k_squishedtimer] = 2*TICRATE; player->powers[pw_flashing] = K_GetKartFlashing(player); @@ -1957,11 +1975,20 @@ void K_ExplodePlayer(player_t *player, mobj_t *source) // A bit of a hack, we ju K_CalculateBattleWanted(); } + if (!player->kartstuff[k_bumper]) + { + player->kartstuff[k_comebacktimer] = comebacktime; + if (player->kartstuff[k_comebackmode]) + { + mobj_t *poof = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_EXPLODE); + S_StartSound(poof, mobjinfo[MT_KARMAHITBOX].seesound); + player->kartstuff[k_comebackmode] = 0; + } + } + K_CheckBumpers(); } - player->kartstuff[k_comebacktimer] = comebacktime; - player->kartstuff[k_spinouttype] = 1; player->kartstuff[k_spinouttimer] = 2*TICRATE+(TICRATE/2);