Merge branch 'fix-flipped-bounce' into 'next'
Fix CA_BOUNCE height when flipped (Fixes #428) Closes #428 See merge request STJr/SRB2!1373
This commit is contained in:
commit
fc1bc94d9a
12
src/p_user.c
12
src/p_user.c
|
@ -4880,22 +4880,28 @@ void P_DoBubbleBounce(player_t *player)
|
||||||
//
|
//
|
||||||
void P_DoAbilityBounce(player_t *player, boolean changemomz)
|
void P_DoAbilityBounce(player_t *player, boolean changemomz)
|
||||||
{
|
{
|
||||||
fixed_t prevmomz;
|
|
||||||
if (player->mo->state-states == S_PLAY_BOUNCE_LANDING)
|
if (player->mo->state-states == S_PLAY_BOUNCE_LANDING)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (changemomz)
|
if (changemomz)
|
||||||
{
|
{
|
||||||
fixed_t minmomz;
|
fixed_t prevmomz = player->mo->momz, minmomz;
|
||||||
prevmomz = player->mo->momz;
|
|
||||||
if (P_MobjFlip(player->mo)*prevmomz < 0)
|
if (P_MobjFlip(player->mo)*prevmomz < 0)
|
||||||
prevmomz = 0;
|
prevmomz = 0;
|
||||||
else if (player->mo->eflags & MFE_UNDERWATER)
|
else if (player->mo->eflags & MFE_UNDERWATER)
|
||||||
prevmomz /= 2;
|
prevmomz /= 2;
|
||||||
|
|
||||||
P_DoJump(player, false);
|
P_DoJump(player, false);
|
||||||
player->pflags &= ~(PF_STARTJUMP|PF_JUMPED);
|
player->pflags &= ~(PF_STARTJUMP|PF_JUMPED);
|
||||||
minmomz = FixedMul(player->mo->momz, 3*FRACUNIT/2);
|
minmomz = FixedMul(player->mo->momz, 3*FRACUNIT/2);
|
||||||
|
|
||||||
|
if (player->mo->eflags & MFE_VERTICALFLIP) // Use "min" or "max" depending on if the player is flipped
|
||||||
|
player->mo->momz = min(minmomz, (minmomz + prevmomz)/2);
|
||||||
|
else
|
||||||
player->mo->momz = max(minmomz, (minmomz + prevmomz)/2);
|
player->mo->momz = max(minmomz, (minmomz + prevmomz)/2);
|
||||||
}
|
}
|
||||||
|
|
||||||
S_StartSound(player->mo, sfx_boingf);
|
S_StartSound(player->mo, sfx_boingf);
|
||||||
P_SetPlayerMobjState(player->mo, S_PLAY_BOUNCE_LANDING);
|
P_SetPlayerMobjState(player->mo, S_PLAY_BOUNCE_LANDING);
|
||||||
player->pflags |= PF_BOUNCING|PF_THOKKED;
|
player->pflags |= PF_BOUNCING|PF_THOKKED;
|
||||||
|
|
Loading…
Reference in New Issue