mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'oopsies-fixme-reloaded' into 'master'
Never charge instawhip during roulette See merge request kart-krew-dev/ring-racers-internal!2611
This commit is contained in:
commit
12c8d4ce5f
1 changed files with 5 additions and 26 deletions
31
src/k_kart.c
31
src/k_kart.c
|
|
@ -10190,9 +10190,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
else if (!(player->cmd.buttons & BT_ATTACK)) // Deliberate Item button release, no need to protect you from lockout
|
||||
player->instaWhipChargeLockout = 0;
|
||||
|
||||
// OOPSIES FIXME pt.2: See OOPSIES FIXME pt.1.
|
||||
// Don't draw attention to a useless, invisible whip charge!
|
||||
if (player->instaWhipCharge && player->instaWhipCharge < INSTAWHIP_CHARGETIME && !player->itemRoulette.active)
|
||||
if (player->instaWhipCharge && player->instaWhipCharge < INSTAWHIP_CHARGETIME)
|
||||
{
|
||||
if (!S_SoundPlaying(player->mo, sfx_wchrg1))
|
||||
S_StartSoundAtVolume(player->mo, sfx_wchrg1, 255/2);
|
||||
|
|
@ -13577,7 +13575,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
// which is allowed during painstate as a last-ditch defensive option.
|
||||
if (player && player->mo && player->mo->health > 0 && !player->spectator && !mapreset && leveltime > introtime)
|
||||
{
|
||||
boolean chargingwhip = (cmd->buttons & BT_ATTACK) && (player->rings <= 0) && (!player->instaWhipChargeLockout);
|
||||
boolean chargingwhip = (cmd->buttons & BT_ATTACK) && (player->rings <= 0) && (!player->instaWhipChargeLockout) && (!player->itemRoulette.active);
|
||||
boolean releasedwhip = (!(cmd->buttons & BT_ATTACK)) && (player->rings <= 0 && player->instaWhipCharge) && !(P_PlayerInPain(player));
|
||||
|
||||
if (K_PowerUpRemaining(player, POWERUP_BADGE))
|
||||
|
|
@ -13618,14 +13616,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
{
|
||||
player->instaWhipCharge = min(player->instaWhipCharge + 1, INSTAWHIP_TETHERBLOCK + 1);
|
||||
|
||||
// OOPSIES FIXME pt.1: You can charge instawhip between picking up and confirming an item box.
|
||||
// This is vanishingly rare in race and impossible in battle, but SUPER common in prisons!
|
||||
//
|
||||
// ...But this was discovered after staff ghost recording started, and charging whip prevents
|
||||
// flingring pickup, meaning it has a small but desync-capable gameplay effect.
|
||||
//
|
||||
// So instead of stopping charge, we hide it. How embarrassing!
|
||||
if (player->instaWhipCharge == 1 && !player->itemRoulette.active)
|
||||
if (player->instaWhipCharge == 1)
|
||||
{
|
||||
Obj_SpawnInstaWhipRecharge(player, 0);
|
||||
Obj_SpawnInstaWhipRecharge(player, ANGLE_120);
|
||||
|
|
@ -13651,9 +13642,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
{
|
||||
if (player->instaWhipCharge < INSTAWHIP_CHARGETIME)
|
||||
{
|
||||
// OOPSIES FIXME pt.3: See OOPSIES FIXME pt.1.
|
||||
if (!player->itemRoulette.active)
|
||||
S_StartSound(player->mo, sfx_kc50);
|
||||
S_StartSound(player->mo, sfx_kc50);
|
||||
player->instaWhipCharge = 0;
|
||||
player->botvars.itemconfirm = 0;
|
||||
}
|
||||
|
|
@ -13686,17 +13675,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
else if (!(player->instaWhipCharge >= INSTAWHIP_CHARGETIME && P_PlayerInPain(player))) // Allow reversal whip
|
||||
player->instaWhipCharge = 0;
|
||||
}
|
||||
|
||||
// OOPSIES FIXME pt.4: This one is kind of esoteric and only theoretically abusable, but
|
||||
// if a player picks up an item during the instawhip input safety window—the one that triggers
|
||||
// after you burn to 0 rings—they can continue to hold the input, then charge a usable whip
|
||||
// without stopping the roulette and acquiring an item, which cancels it.
|
||||
//
|
||||
// No ghosts use this technique, but your least favorite tournament player might.
|
||||
if (player->itemRoulette.active)
|
||||
{
|
||||
player->instaWhipCharge = min(player->instaWhipCharge, INSTAWHIP_CHARGETIME - 2);
|
||||
}
|
||||
|
||||
|
||||
if (player && player->mo && K_PlayerCanUseItem(player))
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue