mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'punchstopbrake' into 'master'
Allow using Spindash for trick input See merge request KartKrew/RingRacers!15
This commit is contained in:
commit
033681630c
1 changed files with 31 additions and 6 deletions
27
src/k_kart.c
27
src/k_kart.c
|
|
@ -13596,7 +13596,13 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
|
|
||||||
// We'll never need to go above that.
|
// We'll never need to go above that.
|
||||||
if (player->tricktime <= TRICKDELAY)
|
if (player->tricktime <= TRICKDELAY)
|
||||||
|
{
|
||||||
|
// 2.3 - Prevent accidental fastfalls during trickdelay
|
||||||
|
if (!G_CompatLevel(0x000C))
|
||||||
|
player->pflags |= PF_NOFASTFALL;
|
||||||
|
|
||||||
player->tricktime++;
|
player->tricktime++;
|
||||||
|
}
|
||||||
|
|
||||||
// debug shit
|
// debug shit
|
||||||
//CONS_Printf("%d\n", player->mo->momz / mapobjectscale);
|
//CONS_Printf("%d\n", player->mo->momz / mapobjectscale);
|
||||||
|
|
@ -13624,15 +13630,21 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
const angle_t angledelta = FixedAngle(36*FRACUNIT);
|
const angle_t angledelta = FixedAngle(36*FRACUNIT);
|
||||||
angle_t baseangle = player->mo->angle + angledelta/2;
|
angle_t baseangle = player->mo->angle + angledelta/2;
|
||||||
|
|
||||||
|
UINT16 buttons = player->cmd.buttons;
|
||||||
INT16 aimingcompare = abs(cmd->throwdir) - abs(cmd->turning);
|
INT16 aimingcompare = abs(cmd->throwdir) - abs(cmd->turning);
|
||||||
|
|
||||||
// 2.2 - Pre-steering trickpanels
|
// 2.2 - Pre-steering trickpanels
|
||||||
if (!G_CompatLevel(0x000A) && !K_PlayerUsesBotMovement(player))
|
if (!G_CompatLevel(0x000A) && !K_PlayerUsesBotMovement(player))
|
||||||
{
|
{
|
||||||
if (!(player->cmd.buttons & BT_ACCELERATE))
|
if (!(buttons & BT_ACCELERATE))
|
||||||
{
|
{
|
||||||
aimingcompare = 0;
|
aimingcompare = 0;
|
||||||
}
|
}
|
||||||
|
// 2.3 - also allow tricking with the Spindash button
|
||||||
|
else if (!G_CompatLevel(0x000C) && ((buttons & BT_SPINDASHMASK) == BT_SPINDASHMASK))
|
||||||
|
{
|
||||||
|
player->pflags |= PF_NOFASTFALL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uses cmd->turning over steering intentionally.
|
// Uses cmd->turning over steering intentionally.
|
||||||
|
|
@ -13876,12 +13888,25 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if (G_CompatLevel(0x000C))
|
||||||
{
|
{
|
||||||
if ((player->pflags & PF_TRICKDELAY) && !(player->cmd.buttons & BT_ACCELERATE) && (player->tricktime >= TRICKDELAY))
|
if ((player->pflags & PF_TRICKDELAY) && !(player->cmd.buttons & BT_ACCELERATE) && (player->tricktime >= TRICKDELAY))
|
||||||
{
|
{
|
||||||
player->pflags &= ~PF_TRICKDELAY;
|
player->pflags &= ~PF_TRICKDELAY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
// 2.3 - Spindash to trick
|
||||||
|
{
|
||||||
|
// Ignore pre-existing Accel inputs if not pressing Spindash. Always ignore pre-existing Spindash inputs to prevent accidental tricking.
|
||||||
|
if ((player->pflags & PF_TRICKDELAY) && (!(player->cmd.buttons & BT_ACCELERATE) || (((player->cmd.buttons & BT_SPINDASHMASK) == BT_SPINDASHMASK) && (player->oldcmd.buttons & BT_SPINDASHMASK) != BT_SPINDASHMASK)) && (player->tricktime >= TRICKDELAY))
|
||||||
|
{
|
||||||
|
player->pflags &= ~PF_TRICKDELAY;
|
||||||
|
player->pflags |= PF_NOFASTFALL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue