Fix democam not moving
This commit is contained in:
parent
f81c764057
commit
104bfaa7fe
1 changed files with 8 additions and 15 deletions
23
src/g_game.c
23
src/g_game.c
|
|
@ -965,8 +965,7 @@ static void G_DoAnglePrediction(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer, p
|
|||
|
||||
void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
||||
{
|
||||
const boolean fordemocam = ssplayer == UINT8_MAX;
|
||||
const UINT8 forplayer = fordemocam ? 0 : ssplayer-1;
|
||||
const UINT8 forplayer = ssplayer-1;
|
||||
|
||||
static INT32 turnheld[MAXSPLITSCREENPLAYERS]; // for accelerative turning
|
||||
static boolean resetdown[MAXSPLITSCREENPLAYERS]; // don't cam reset every frame
|
||||
|
|
@ -979,10 +978,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
|||
player_t *player = &players[g_localplayers[forplayer]];
|
||||
camera_t *thiscam = &camera[forplayer];
|
||||
boolean *rd = &resetdown[forplayer];
|
||||
boolean spectating = fordemocam || player->spectator;
|
||||
|
||||
if (!fordemocam && demo.playback) return;
|
||||
|
||||
boolean spectating = player->spectator || thiscam->freecam;
|
||||
// Is there any reason this can't just be I_BaseTiccmd?
|
||||
switch (ssplayer)
|
||||
{
|
||||
|
|
@ -1003,12 +999,12 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
|||
|
||||
// why build a ticcmd if we're paused?
|
||||
// Or, for that matter, if we're being reborn.
|
||||
if (!fordemocam && (paused || P_AutoPause() || (gamestate == GS_LEVEL && player->playerstate == PST_REBORN)))
|
||||
if (paused || P_AutoPause() || (gamestate == GS_LEVEL && player->playerstate == PST_REBORN))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!fordemocam && K_PlayerUsesBotMovement(player))
|
||||
if (K_PlayerUsesBotMovement(player))
|
||||
{
|
||||
// Bot ticcmd is generated by K_BuildBotTiccmd
|
||||
return;
|
||||
|
|
@ -1099,7 +1095,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
|||
forward += (value * MAXPLMOVE) / JOYAXISRANGE;
|
||||
}
|
||||
|
||||
if (!fordemocam && player->sneakertimer)
|
||||
if (player->sneakertimer)
|
||||
forward = MAXPLMOVE; // 50
|
||||
|
||||
value = G_PlayerInputAnalog(forplayer, gc_brake, false);
|
||||
|
|
@ -1144,7 +1140,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
|||
cmd->buttons |= BT_CUSTOM3;
|
||||
|
||||
// Reset camera
|
||||
if (!fordemocam && G_PlayerInputDown(forplayer, gc_camreset, false))
|
||||
if (G_PlayerInputDown(forplayer, gc_camreset, false))
|
||||
{
|
||||
if (thiscam->chase && *rd == false)
|
||||
P_ResetCamera(player, thiscam);
|
||||
|
|
@ -1156,7 +1152,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
|||
// spectator aiming shit, ahhhh...
|
||||
{
|
||||
INT32 screen_invert =
|
||||
(!fordemocam && player->mo && (player->mo->eflags & MFE_VERTICALFLIP)
|
||||
(player->mo && (player->mo->eflags & MFE_VERTICALFLIP)
|
||||
&& (!thiscam->chase)) //because chasecam's not inverted
|
||||
? -1 : 1; // set to -1 or 1 to multiply
|
||||
|
||||
|
|
@ -1197,7 +1193,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
|||
-Making some galaxy brain autopilot Lua if you're a masochist
|
||||
-Making a Mario Kart 8 Deluxe tier baby mode that steers you away from walls and whatnot. You know what, do what you want!
|
||||
*/
|
||||
if (!fordemocam && addedtogame && gamestate == GS_LEVEL)
|
||||
if (addedtogame && gamestate == GS_LEVEL)
|
||||
{
|
||||
LUA_HookTiccmd(player, cmd, HOOK(PlayerCmd));
|
||||
|
||||
|
|
@ -1226,9 +1222,6 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
|||
else if (cmd->throwdir < -KART_FULLTURN)
|
||||
cmd->throwdir = -KART_FULLTURN;
|
||||
|
||||
if (fordemocam)
|
||||
return;
|
||||
|
||||
G_DoAnglePrediction(cmd, realtics, ssplayer, player);
|
||||
|
||||
// Reset away view if a command is given.
|
||||
|
|
|
|||
Loading…
Reference in a new issue