diff --git a/src/d_player.h b/src/d_player.h index cb527bdc1..74ac5943f 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -58,10 +58,7 @@ typedef enum // typedef enum { - // True if button down last tic. - PF_ATTACKDOWN = 1, - PF_ACCELDOWN = 1<<1, - PF_BRAKEDOWN = 1<<2, + // free: 1<<0 to 1<<2 // Look back VFX has been spawned // TODO: Is there a better way to track this? diff --git a/src/g_game.c b/src/g_game.c index 4d98256f1..f47681e44 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2410,11 +2410,6 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) // ^ Not necessary anyway since it will be respawned regardless considering it doesn't exist anymore. - // Don't do anything immediately - p->pflags |= PF_BRAKEDOWN; - p->pflags |= PF_ATTACKDOWN; - p->pflags |= PF_ACCELDOWN; - p->playerstate = PST_LIVE; p->panim = PA_STILL; // standing animation diff --git a/src/k_botitem.c b/src/k_botitem.c index 865a18fdd..bb90ef736 100644 --- a/src/k_botitem.c +++ b/src/k_botitem.c @@ -27,6 +27,23 @@ #include "m_random.h" #include "r_things.h" // numskins +/*-------------------------------------------------- + static inline boolean K_ItemButtonWasDown(player_t *player) + + Looks for players around the bot, and presses the item button + if there is one in range. + + Input Arguments:- + player - Bot to check. + + Return:- + true if the item button was pressed last tic, otherwise false. +--------------------------------------------------*/ +static inline boolean K_ItemButtonWasDown(player_t *player) +{ + return (player->oldcmd.buttons & BT_ATTACK); +} + /*-------------------------------------------------- static boolean K_BotUseItemNearPlayer(player_t *player, ticcmd_t *cmd, fixed_t radius) @@ -45,7 +62,7 @@ static boolean K_BotUseItemNearPlayer(player_t *player, ticcmd_t *cmd, fixed_t r { UINT8 i; - if (player->pflags & PF_ATTACKDOWN) + if (K_ItemButtonWasDown(player) == true) { return false; } @@ -327,7 +344,7 @@ static void K_ItemConfirmForTarget(player_t *bot, player_t *target, UINT16 amoun --------------------------------------------------*/ static boolean K_BotGenericPressItem(player_t *player, ticcmd_t *cmd, SINT8 dir) { - if (player->pflags & PF_ATTACKDOWN) + if (K_ItemButtonWasDown(player) == true) { return false; } @@ -352,7 +369,7 @@ static boolean K_BotGenericPressItem(player_t *player, ticcmd_t *cmd, SINT8 dir) --------------------------------------------------*/ static void K_BotItemGenericTap(player_t *player, ticcmd_t *cmd) { - if (!(player->pflags & PF_ATTACKDOWN)) + if (K_ItemButtonWasDown(player) == false) { cmd->buttons |= BT_ATTACK; player->botvars.itemconfirm = 0; @@ -475,7 +492,7 @@ static void K_BotItemSneaker(player_t *player, ticcmd_t *cmd) || player->speedboost > (FRACUNIT/8) // Have another type of boost (tethering) || player->botvars.itemconfirm > 4*TICRATE) // Held onto it for too long { - if (!player->sneakertimer && !(player->pflags & PF_ATTACKDOWN)) + if (player->sneakertimer == 0 && K_ItemButtonWasDown(player) == false) { cmd->buttons |= BT_ATTACK; player->botvars.itemconfirm = 2*TICRATE; @@ -503,7 +520,7 @@ static void K_BotItemRocketSneaker(player_t *player, ticcmd_t *cmd) { if (player->botvars.itemconfirm > TICRATE) { - if (!player->sneakertimer && !(player->pflags & PF_ATTACKDOWN)) + if (player->sneakertimer == 0 && K_ItemButtonWasDown(player) == false) { cmd->buttons |= BT_ATTACK; player->botvars.itemconfirm = 0; @@ -1193,7 +1210,7 @@ static void K_BotItemRouletteMash(player_t *player, ticcmd_t *cmd) { boolean mash = false; - if (player->pflags & PF_ATTACKDOWN) + if (K_ItemButtonWasDown(player) == true) { return; } diff --git a/src/k_kart.c b/src/k_kart.c index 088eb834b..5b4dbed76 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9883,7 +9883,7 @@ void K_UnsetItemOut(player_t *player) void K_MoveKartPlayer(player_t *player, boolean onground) { ticcmd_t *cmd = &player->cmd; - boolean ATTACK_IS_DOWN = ((cmd->buttons & BT_ATTACK) && !(player->pflags & PF_ATTACKDOWN)); + boolean ATTACK_IS_DOWN = ((cmd->buttons & BT_ATTACK) && !(player->oldcmd.buttons & BT_ATTACK)); boolean HOLDING_ITEM = (player->pflags & (PF_ITEMOUT|PF_EGGMANOUT)); boolean NO_HYUDORO = (player->stealingtimer == 0); @@ -9918,11 +9918,6 @@ void K_MoveKartPlayer(player_t *player, boolean onground) player->pflags &= ~PF_USERINGS; } - if ((player->pflags & PF_ATTACKDOWN) && !(cmd->buttons & BT_ATTACK)) - player->pflags &= ~PF_ATTACKDOWN; - else if (cmd->buttons & BT_ATTACK) - player->pflags |= PF_ATTACKDOWN; - if (player && player->mo && player->mo->health > 0 && !player->spectator && !P_PlayerInPain(player) && !mapreset && leveltime > introtime) { // First, the really specific, finicky items that function without the item being directly in your item slot. diff --git a/src/m_cheat.c b/src/m_cheat.c index 5eddbce4a..fbf7e0bcb 100644 --- a/src/m_cheat.c +++ b/src/m_cheat.c @@ -1053,11 +1053,11 @@ void OP_ObjectplaceMovement(player_t *player) } - if (player->pflags & PF_ATTACKDOWN) + if (player->pflags & PF_STASIS) { // Are ANY objectplace buttons pressed? If no, remove flag. if (!(cmd->buttons & (BT_ATTACK|BT_DRIFT))) - player->pflags &= ~PF_ATTACKDOWN; + player->pflags &= ~PF_STASIS; // Do nothing. return; @@ -1066,12 +1066,12 @@ void OP_ObjectplaceMovement(player_t *player) /*if (cmd->buttons & BT_FORWARD) { OP_CycleThings(-1); - player->pflags |= PF_ATTACKDOWN; + player->pflags |= PF_STASIS; } else*/ if (cmd->buttons & BT_DRIFT) { OP_CycleThings(1); - player->pflags |= PF_ATTACKDOWN; + player->pflags |= PF_STASIS; } // Place an object and add it to the maplist @@ -1082,7 +1082,7 @@ void OP_ObjectplaceMovement(player_t *player) mobjtype_t spawnthing = op_currentdoomednum; boolean ceiling; - player->pflags |= PF_ATTACKDOWN; + player->pflags |= PF_STASIS; if (cv_mapthingnum.value > 0 && cv_mapthingnum.value < 4096) { diff --git a/src/p_user.c b/src/p_user.c index 22a1d38ba..8d3a24bfe 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4186,7 +4186,7 @@ void P_PlayerThink(player_t *player) } else if (cmd->buttons & BT_ACCELERATE) { - if (!player->exiting && !(player->pflags & PF_ACCELDOWN)) + if (!player->exiting && !(player->oldcmd.buttons & BT_ACCELERATE)) { player->kickstartaccel = 0; } @@ -4394,17 +4394,6 @@ void P_PlayerThink(player_t *player) P_DoBubbleBreath(player); // Spawn Sonic's bubbles P_CheckInvincibilityTimer(player); // Spawn Invincibility Sparkles - // check for buttons - if (cmd->buttons & BT_ACCELERATE) - player->pflags |= PF_ACCELDOWN; - else - player->pflags &= ~PF_ACCELDOWN; - - if (cmd->buttons & BT_BRAKE) - player->pflags |= PF_BRAKEDOWN; - else - player->pflags &= ~PF_BRAKEDOWN; - // Counters, time dependent power ups. // Time Bonus & Ring Bonus count settings