Prevent heavy airdrop softlocking in goo
This commit is contained in:
parent
926e5b6edf
commit
087d53cacc
2 changed files with 10 additions and 1 deletions
|
|
@ -7089,7 +7089,7 @@ static void K_AirDrop(player_t *player, ticcmd_t *cmd)
|
|||
player->airdropflags |= PAF_AIRDROP_LIGHT;
|
||||
}
|
||||
else if (player->airdroppredelay >= (airdropactive == AIRDROP_FUSION ? airbrakedelay_light : airbrakedelay_heavy) &&
|
||||
!(player->airdropflags & (PAF_AIRDROP_HEAVY))) // in fusion, fires if brake is held but not accel, and has the same delay as light airdrop (this makes it feel really really stiff but we're sacking feel for balance with light drop here 🥲)
|
||||
!(player->airdropflags & (PAF_AIRDROP_HEAVY)) && !(player->mo->eflags & MFE_GOOWATER)) // in fusion, fires if brake is held but not accel, and has the same delay as light airdrop (this makes it feel really really stiff but we're sacking feel for balance with light drop here 🥲)
|
||||
{
|
||||
player->airdropflags |= PAF_AIRDROP_HEAVY;
|
||||
player->airdroptime = 0;
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@
|
|||
|
||||
#include "p_mobj.h"
|
||||
#include "d_netcmd.h"
|
||||
#include "d_player.h"
|
||||
#include "d_think.h"
|
||||
#include "dehacked.h"
|
||||
#include "deh_tables.h"
|
||||
|
|
@ -3403,6 +3404,14 @@ void P_MobjCheckWater(mobj_t *mobj)
|
|||
{
|
||||
if (P_MobjFlip(mobj)*mobj->momz < 0) // You are entering the goo?
|
||||
mobj->momz = FixedMul(mobj->momz, FixedDiv(2*FRACUNIT, 5*FRACUNIT)); // kill momentum significantly, to make the goo feel thick.
|
||||
|
||||
// Kill heavy airdrop too so you don't get softlocked.
|
||||
if (mobj->player && (mobj->player->airdropflags & PAF_AIRDROP_HEAVY))
|
||||
{
|
||||
mobj->player->airdroptime = 0;
|
||||
mobj->player->airdroppredelay = 0;
|
||||
mobj->player->airdropflags &= ~PAF_AIRDROP_MASK;
|
||||
}
|
||||
}
|
||||
else if (wasinwater && P_MobjFlip(mobj) * mobj->momz > 0)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue