mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-03-22 10:52:23 +00:00
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
1 changed files with 10 additions and 4 deletions
14
src/p_user.c
14
src/p_user.c
|
@ -4880,22 +4880,28 @@ void P_DoBubbleBounce(player_t *player)
|
|||
//
|
||||
void P_DoAbilityBounce(player_t *player, boolean changemomz)
|
||||
{
|
||||
fixed_t prevmomz;
|
||||
if (player->mo->state-states == S_PLAY_BOUNCE_LANDING)
|
||||
return;
|
||||
|
||||
if (changemomz)
|
||||
{
|
||||
fixed_t minmomz;
|
||||
prevmomz = player->mo->momz;
|
||||
fixed_t prevmomz = player->mo->momz, minmomz;
|
||||
|
||||
if (P_MobjFlip(player->mo)*prevmomz < 0)
|
||||
prevmomz = 0;
|
||||
else if (player->mo->eflags & MFE_UNDERWATER)
|
||||
prevmomz /= 2;
|
||||
|
||||
P_DoJump(player, false);
|
||||
player->pflags &= ~(PF_STARTJUMP|PF_JUMPED);
|
||||
minmomz = FixedMul(player->mo->momz, 3*FRACUNIT/2);
|
||||
player->mo->momz = max(minmomz, (minmomz + prevmomz)/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);
|
||||
}
|
||||
|
||||
S_StartSound(player->mo, sfx_boingf);
|
||||
P_SetPlayerMobjState(player->mo, S_PLAY_BOUNCE_LANDING);
|
||||
player->pflags |= PF_BOUNCING|PF_THOKKED;
|
||||
|
|
Loading…
Reference in a new issue