Hide useless instawhip charge between picking up and confirming item boxes

This commit is contained in:
AJ Martinez 2024-03-19 01:22:44 -07:00
parent 4d4f6f3bdd
commit 628be3950f

View file

@ -9038,7 +9038,9 @@ 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 else if (!(player->cmd.buttons & BT_ATTACK)) // Deliberate Item button release, no need to protect you from lockout
player->instaWhipChargeLockout = 0; player->instaWhipChargeLockout = 0;
if (player->instaWhipCharge && player->instaWhipCharge < INSTAWHIP_CHARGETIME) // 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 (!S_SoundPlaying(player->mo, sfx_wchrg1)) if (!S_SoundPlaying(player->mo, sfx_wchrg1))
S_StartSoundAtVolume(player->mo, sfx_wchrg1, 255/2); S_StartSoundAtVolume(player->mo, sfx_wchrg1, 255/2);
@ -12115,7 +12117,14 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
{ {
player->instaWhipCharge = min(player->instaWhipCharge + 1, INSTAWHIP_TETHERBLOCK + 1); player->instaWhipCharge = min(player->instaWhipCharge + 1, INSTAWHIP_TETHERBLOCK + 1);
if (player->instaWhipCharge == 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)
{ {
Obj_SpawnInstaWhipRecharge(player, 0); Obj_SpawnInstaWhipRecharge(player, 0);
Obj_SpawnInstaWhipRecharge(player, ANGLE_120); Obj_SpawnInstaWhipRecharge(player, ANGLE_120);
@ -12141,7 +12150,9 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
{ {
if (player->instaWhipCharge < INSTAWHIP_CHARGETIME) if (player->instaWhipCharge < INSTAWHIP_CHARGETIME)
{ {
S_StartSound(player->mo, sfx_kc50); // OOPSIES FIXME pt.3: See OOPSIES FIXME pt.1.
if (!player->itemRoulette.active)
S_StartSound(player->mo, sfx_kc50);
player->instaWhipCharge = 0; player->instaWhipCharge = 0;
player->botvars.itemconfirm = 0; player->botvars.itemconfirm = 0;
} }