RR: Fix hard landing from preventing vertical mouse movement with player input tied to frame-rate.

This commit is contained in:
Mitchell Richters 2020-05-07 19:19:51 +10:00 committed by Christoph Oelckers
parent 6dcd83b734
commit 4bc105ec07

View file

@ -3506,6 +3506,21 @@ void P_GetInput(int const playerNum)
} }
} }
if (pPlayer->return_to_center > 0)
pPlayer->return_to_center--;
if (pPlayer->hard_landing)
{
pPlayer->return_to_center = 9;
thisPlayer.horizRecenter = true;
}
if (pPlayer->hard_landing > 0)
{
thisPlayer.horizSkew = fix16_from_int(-(pPlayer->hard_landing << 4));
pPlayer->hard_landing--;
}
// A horiz diff of 128 equal 45 degrees, so we convert horiz to 1024 angle units // A horiz diff of 128 equal 45 degrees, so we convert horiz to 1024 angle units
if (thisPlayer.horizAngleAdjust) if (thisPlayer.horizAngleAdjust)
@ -4126,6 +4141,21 @@ void P_DHGetInput(int const playerNum)
if (pPlayer->cursectnum >= 0 && sector[pPlayer->cursectnum].hitag == 2003) if (pPlayer->cursectnum >= 0 && sector[pPlayer->cursectnum].hitag == 2003)
input.fvel >>= 1; input.fvel >>= 1;
if (pPlayer->return_to_center > 0)
pPlayer->return_to_center--;
if (pPlayer->hard_landing)
{
pPlayer->return_to_center = 9;
thisPlayer.horizRecenter = true;
}
if (pPlayer->hard_landing > 0)
{
thisPlayer.horizSkew = fix16_from_int(-(pPlayer->hard_landing << 4));
pPlayer->hard_landing--;
}
// A horiz diff of 128 equal 45 degrees, so we convert horiz to 1024 angle units // A horiz diff of 128 equal 45 degrees, so we convert horiz to 1024 angle units
if (thisPlayer.horizAngleAdjust) if (thisPlayer.horizAngleAdjust)
@ -8704,10 +8734,7 @@ HORIZONLY:;
} }
} }
if (pPlayer->return_to_center > 0) if (TEST_SYNC_KEY(playerBits, SK_CENTER_VIEW))
pPlayer->return_to_center--;
if (TEST_SYNC_KEY(playerBits, SK_CENTER_VIEW) || pPlayer->hard_landing)
if (VM_OnEvent(EVENT_RETURNTOCENTER, pPlayer->i,playerNum) == 0) if (VM_OnEvent(EVENT_RETURNTOCENTER, pPlayer->i,playerNum) == 0)
{ {
pPlayer->return_to_center = 9; pPlayer->return_to_center = 9;
@ -8756,12 +8783,6 @@ HORIZONLY:;
pPlayer->q16horiz -= F16(delta); pPlayer->q16horiz -= F16(delta);
} }
if (pPlayer->hard_landing > 0)
{
thisPlayer.horizSkew = fix16_from_int(-(pPlayer->hard_landing << 4));
pPlayer->hard_landing--;
}
//Shooting code/changes //Shooting code/changes
if (pPlayer->show_empty_weapon > 0) if (pPlayer->show_empty_weapon > 0)
@ -9357,10 +9378,7 @@ void P_DHProcessInput(int playerNum)
A_GetFurthestAngle(pPlayer->i, 8) < 512); A_GetFurthestAngle(pPlayer->i, 8) < 512);
} }
if (pPlayer->return_to_center > 0) if (TEST_SYNC_KEY(playerBits, SK_CENTER_VIEW))
pPlayer->return_to_center--;
if (TEST_SYNC_KEY(playerBits, SK_CENTER_VIEW) || pPlayer->hard_landing)
{ {
pPlayer->return_to_center = 9; pPlayer->return_to_center = 9;
thisPlayer.horizRecenter = true; thisPlayer.horizRecenter = true;
@ -9396,12 +9414,6 @@ void P_DHProcessInput(int playerNum)
pPlayer->q16horiz -= F16(delta); pPlayer->q16horiz -= F16(delta);
} }
if (pPlayer->hard_landing > 0)
{
thisPlayer.horizSkew = fix16_from_int(-(pPlayer->hard_landing << 4));
pPlayer->hard_landing--;
}
if (TEST_SYNC_KEY(playerBits, SK_FIRE)) if (TEST_SYNC_KEY(playerBits, SK_FIRE))
A_DHShoot(playerNum); A_DHShoot(playerNum);
} }