mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 12:01:47 +00:00
Interrupt tumble when hitting springs
This commit is contained in:
parent
44a7e16535
commit
afdb2908f2
4 changed files with 18 additions and 11 deletions
15
src/k_kart.c
15
src/k_kart.c
|
|
@ -3734,6 +3734,21 @@ static void K_HandleTumbleSound(player_t *player)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void K_TumbleInterrupt(player_t *player)
|
||||||
|
{
|
||||||
|
// If player was tumbling, set variables so that they don't tumble like crazy after they're done respawning
|
||||||
|
if (player->tumbleBounces > 0)
|
||||||
|
{
|
||||||
|
player->tumbleBounces = 0; // MAXBOUNCES-1;
|
||||||
|
player->pflags &= ~PF_TUMBLELASTBOUNCE;
|
||||||
|
//players->tumbleHeight = 20;
|
||||||
|
|
||||||
|
players->mo->rollangle = 0;
|
||||||
|
player->spinouttype = KSPIN_WIPEOUT;
|
||||||
|
player->spinouttimer = player->wipeoutslow = (3*TICRATE/2)+2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void K_ApplyTripWire(player_t *player, tripwirestate_t state)
|
void K_ApplyTripWire(player_t *player, tripwirestate_t state)
|
||||||
{
|
{
|
||||||
if (state == TRIP_PASSED)
|
if (state == TRIP_PASSED)
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,7 @@ void K_DoPowerClash(player_t *t1, player_t *t2);
|
||||||
void K_BattleAwardHit(player_t *player, player_t *victim, mobj_t *inflictor, UINT8 bumpersRemoved);
|
void K_BattleAwardHit(player_t *player, player_t *victim, mobj_t *inflictor, UINT8 bumpersRemoved);
|
||||||
void K_SpinPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, INT32 type);
|
void K_SpinPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, INT32 type);
|
||||||
void K_TumblePlayer(player_t *player, mobj_t *inflictor, mobj_t *source);
|
void K_TumblePlayer(player_t *player, mobj_t *inflictor, mobj_t *source);
|
||||||
|
void K_TumbleInterrupt(player_t *player);
|
||||||
INT32 K_ExplodePlayer(player_t *player, mobj_t *inflictor, mobj_t *source);
|
INT32 K_ExplodePlayer(player_t *player, mobj_t *inflictor, mobj_t *source);
|
||||||
void K_DebtStingPlayer(player_t *player, mobj_t *source);
|
void K_DebtStingPlayer(player_t *player, mobj_t *source);
|
||||||
void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers);
|
void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers);
|
||||||
|
|
|
||||||
|
|
@ -151,18 +151,8 @@ void K_DoIngameRespawn(player_t *player)
|
||||||
|
|
||||||
player->ringboost = 0;
|
player->ringboost = 0;
|
||||||
player->driftboost = player->strongdriftboost = 0;
|
player->driftboost = player->strongdriftboost = 0;
|
||||||
|
|
||||||
// If player was tumbling, set variables so that they don't tumble like crazy after they're done respawning
|
|
||||||
if (player->tumbleBounces > 0)
|
|
||||||
{
|
|
||||||
player->tumbleBounces = 0; // MAXBOUNCES-1;
|
|
||||||
player->pflags &= ~PF_TUMBLELASTBOUNCE;
|
|
||||||
//players->tumbleHeight = 20;
|
|
||||||
players->mo->rollangle = 0;
|
|
||||||
player->spinouttype = KSPIN_WIPEOUT;
|
|
||||||
player->spinouttimer = player->wipeoutslow = (3*TICRATE/2)+2;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
K_TumbleInterrupt(player);
|
||||||
P_ResetPlayer(player);
|
P_ResetPlayer(player);
|
||||||
|
|
||||||
// Set up respawn position if invalid
|
// Set up respawn position if invalid
|
||||||
|
|
|
||||||
|
|
@ -417,6 +417,7 @@ boolean P_DoSpring(mobj_t *spring, mobj_t *object)
|
||||||
P_SetTarget(&spring->target, object);
|
P_SetTarget(&spring->target, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
K_TumbleInterrupt(object->player);
|
||||||
P_ResetPlayer(object->player);
|
P_ResetPlayer(object->player);
|
||||||
|
|
||||||
object->player->springstars = max(vertispeed, horizspeed) / FRACUNIT / 2;
|
object->player->springstars = max(vertispeed, horizspeed) / FRACUNIT / 2;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue