// // CL_PredictLocalPlayer // // static void CL_PredictLocalPlayer(int predtic) { player_t *player = &consoleplayer(); if (!player->ingame() || !player->mo || player->tic >= predtic) return; // Restore the angle, viewheight, etc for the player P_SetPlayerSnapshotNoPosition(player, cl_savedsnaps[predtic % MAXSAVETICS]); // Copy the player's previous input ticcmd for the tic 'predtic' // to player.cmd so that P_MovePlayer can simulate their movement in // that tic NetCommand *netcmd = &localcmds[predtic % MAXSAVETICS]; netcmd->toPlayer(player); if (!cl_predictlocalplayer) { if (predtic == gametic) { P_PlayerThink(player); player->mo->RunThink(); } return; } if (!predicting) P_PlayerThink(player); else P_MovePlayer(player); player->mo->RunThink(); }
// // CL_PredictPlayers // void CL_PredictPlayer (player_t *p) { if (p->playerstate == PST_DEAD) { P_DeathThink (p); p->mo->RunThink(); P_CalcHeight(p); } else { P_MovePlayer(p); P_CalcHeight(p); p->mo->RunThink(); } }