Beispiel #1
0
//
// 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();
}
Beispiel #2
0
//
// 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();
	}
}