From 104bfaa7fe1d600b64ef1f31b7ddabc17f31b552 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Tue, 1 Apr 2025 20:30:09 -0400 Subject: [PATCH] Fix democam not moving --- src/g_game.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index 67024a729..610409441 100644 --- a/src/g_game.c +++ b/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.