Fix turn prediction in F12

This commit is contained in:
Sally Coolatta 2022-05-22 19:49:33 -04:00
parent 85aa7361c2
commit 6f42d84b2a

View file

@ -2006,9 +2006,9 @@ static void P_UpdatePlayerAngle(player_t *player)
UINT8 p = UINT8_MAX; UINT8 p = UINT8_MAX;
UINT8 i; UINT8 i;
for (i = 0; i <= r_splitscreen; i++) for (i = 0; i <= splitscreen; i++)
{ {
if (player == &players[displayplayers[i]]) if (player == &players[g_localplayers[i]])
{ {
p = i; p = i;
break; break;
@ -2018,14 +2018,20 @@ static void P_UpdatePlayerAngle(player_t *player)
player->steering = K_UpdateSteeringValue(player->steering, player->cmd.turning); player->steering = K_UpdateSteeringValue(player->steering, player->cmd.turning);
angleChange = K_GetKartTurnValue(player, player->steering) << TICCMD_REDUCE; angleChange = K_GetKartTurnValue(player, player->steering) << TICCMD_REDUCE;
player->angleturn += angleChange; if (p == UINT8_MAX)
player->mo->angle = player->angleturn; {
// When F12ing players, set local angle directly.
if (p != UINT8_MAX) P_SetPlayerAngle(player, player->angleturn + angleChange);
player->mo->angle = player->angleturn;
}
else
{ {
UINT8 lateTic = ((leveltime - player->cmd.latency) & TICCMD_LATENCYMASK); UINT8 lateTic = ((leveltime - player->cmd.latency) & TICCMD_LATENCYMASK);
UINT8 clearTic = ((localtic + 1) & TICCMD_LATENCYMASK); UINT8 clearTic = ((localtic + 1) & TICCMD_LATENCYMASK);
player->angleturn += angleChange;
player->mo->angle = player->angleturn;
// Undo the ticcmd's old emulated angle, // Undo the ticcmd's old emulated angle,
// now that we added the actual game logic angle. // now that we added the actual game logic angle.