From 73217690ab62a7037c95b07e23648fa5cc8c2d65 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Thu, 30 Nov 2017 18:25:59 -0500 Subject: [PATCH] okay THIS time i actually made sure it compiled --- src/d_player.h | 3 +- src/k_kart.c | 77 ++++++++++++++++++++++++++++++++++++++++---------- src/k_kart.h | 1 + src/p_inter.c | 1 + 4 files changed, 66 insertions(+), 16 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index 7b0c6ea4..ceb48440 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -275,7 +275,8 @@ typedef enum k_squishedtimer, // Squished frame timer k_goldshroomtimer, // Gold Mushroom duration timer k_startimer, // Invincibility timer - k_spinouttimer, // Wipe-out from a banana peel or oil slick (was "pw_bananacam") + k_spinouttimer, // Spin-out from a banana peel or oil slick (was "pw_bananacam") + //k_wipeouttimer, // Wipe-out from a shell, waits a short amount of time before making you stop and spinning out in place k_laserwisptimer, // The duration and relative angle of the laser k_justbumped, // Prevent players from endlessly bumping into each other k_poweritemtimer, // Battle mode, how long before you're allowed another power item (Star, Megashroom) diff --git a/src/k_kart.c b/src/k_kart.c index 32aa45d3..1381673e 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1455,6 +1455,17 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) if (player->kartstuff[k_spinout] == 0 && player->kartstuff[k_spinouttimer] == 0 && player->powers[pw_flashing] == K_GetKartFlashing(player)) player->powers[pw_flashing]--; + /*if (player->kartstuff[k_wipeouttimer]) + { + if (player->kartstuff[k_wipeouttimer] == 1) + { + player->kartstuff[k_spinouttype] = 1; + K_SpinPlayer(player, NULL); + player->mo->momx = player->mo->momy = 0; + } + player->kartstuff[k_wipeouttimer]--; + }*/ + if (player->kartstuff[k_magnettimer]) player->kartstuff[k_magnettimer]--; @@ -1806,6 +1817,9 @@ void K_SpinPlayer(player_t *player, mobj_t *source) if (gametype != GT_RACE) { + if (source && source->player && player != source->player) + P_AddPlayerScore(source->player, 1); + if (player->kartstuff[k_balloon] > 0) { if (player->kartstuff[k_balloon] == 1) @@ -1813,9 +1827,6 @@ void K_SpinPlayer(player_t *player, mobj_t *source) player->kartstuff[k_balloon]--; } - if (source && source->player && player != source->player) - P_AddPlayerScore(source->player, 1); - K_CheckBalloons(); } @@ -1849,6 +1860,42 @@ void K_SpinPlayer(player_t *player, mobj_t *source) return; } +/*void K_WipeoutPlayer(player_t *player, mobj_t *source) +{ + if (player->health <= 0) + return; + + if (player->powers[pw_flashing] > 0 || player->kartstuff[k_squishedtimer] > 0 || (player->kartstuff[k_spinouttimer] > 0 && player->kartstuff[k_spinout] > 0) + || player->kartstuff[k_startimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->kartstuff[k_bootimer] > 0 + || (gametype != GT_RACE && ((player->kartstuff[k_balloon] <= 0 && player->kartstuff[k_comebacktimer]) || player->kartstuff[k_comebackmode] == 1))) + return; + + if (source && source != player->mo && source->player && !source->player->kartstuff[k_sounds]) + { + S_StartSound(source, sfx_hitem); + source->player->kartstuff[k_sounds] = 50; + } + + if (gametype != GT_RACE) + { + if (source && source->player && player != source->player) + P_AddPlayerScore(source->player, 1); + } + + P_RingDamage(player, NULL, source, player->mo->health-1); + P_PlayerRingBurst(player, 5); + + if (P_IsLocalPlayer(player)) + { + quake.intensity = 32*FRACUNIT; + quake.time = 5; + } + + player->kartstuff[k_wipeouttimer] = 21; + + return; +}*/ + void K_SquishPlayer(player_t *player, mobj_t *source) { if (player->health <= 0) @@ -1864,6 +1911,9 @@ void K_SquishPlayer(player_t *player, mobj_t *source) if (gametype != GT_RACE) { + if (source && source->player && player != source->player) + P_AddPlayerScore(source->player, 1); + if (player->kartstuff[k_balloon] > 0) { if (player->kartstuff[k_balloon] == 1) @@ -1871,9 +1921,6 @@ void K_SquishPlayer(player_t *player, mobj_t *source) player->kartstuff[k_balloon]--; } - if (source && source->player && player != source->player) - P_AddPlayerScore(source->player, 1); - K_CheckBalloons(); } @@ -1911,25 +1958,25 @@ void K_ExplodePlayer(player_t *player, mobj_t *source) // A bit of a hack, we ju if (gametype != GT_RACE) { - if (player->kartstuff[k_balloon] > 0) - { - if (player->kartstuff[k_balloon] == 1) - CONS_Printf(M_GetText("%s lost all of their balloons!\n"), player_names[player-players]); - player->kartstuff[k_balloon]--; - } - if (source && source->player && player != source->player) { if (source->player->kartstuff[k_balloon] <= 0) { source->player->kartstuff[k_comebackpoints] += 2; CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[source->player-players], player_names[player-players]); - if (thing->player->kartstuff[k_comebackpoints] >= 3) - K_StealBalloon(thing->player, tmthing->player, true); + if (source->player->kartstuff[k_comebackpoints] >= 3) + K_StealBalloon(source->player, player, true); } P_AddPlayerScore(source->player, 1); } + if (player->kartstuff[k_balloon] > 0) + { + if (player->kartstuff[k_balloon] == 1) + CONS_Printf(M_GetText("%s lost all of their balloons!\n"), player_names[player-players]); + player->kartstuff[k_balloon]--; + } + K_CheckBalloons(); } diff --git a/src/k_kart.h b/src/k_kart.h index b30e3cd4..b709fe97 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -21,6 +21,7 @@ void K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce); void K_KartMoveAnimation(player_t *player); void K_KartPlayerThink(player_t *player, ticcmd_t *cmd); void K_SpinPlayer(player_t *player, mobj_t *source); +//void K_WipeoutPlayer(player_t *player, mobj_t *source); void K_SquishPlayer(player_t *player, mobj_t *source); void K_ExplodePlayer(player_t *player, mobj_t *source); void K_StealBalloon(player_t *player, player_t *victim, boolean force); diff --git a/src/p_inter.c b/src/p_inter.c index 322058d9..436289ee 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -3201,6 +3201,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da || inflictor->type == MT_TRIPLEREDSHIELD1 || inflictor->type == MT_TRIPLEREDSHIELD2 || inflictor->type == MT_TRIPLEREDSHIELD3 || inflictor->player)) { + //K_WipeoutPlayer(player, source); player->kartstuff[k_spinouttype] = 1; K_SpinPlayer(player, source); damage = player->mo->health - 1;