From 734abb42deb3ec37c00387cfc34af4ae309da716 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Mon, 1 Dec 2025 19:24:53 -0500 Subject: [PATCH] Bring back replaymarker command Seems we didn't have this for some reason, so I decided to port this over --- src/d_netcmd.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 1657adea4..ab38a093e 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -203,6 +203,8 @@ static void Command_Respawn2(void); static void Command_Respawn3(void); static void Command_Respawn4(void); +static void Command_ReplayMarker(void); + static void Command_Version_f(void); #ifdef UPDATE_ALERT static void Command_ModDetails_f(void); @@ -953,6 +955,8 @@ void D_RegisterServerCommands(void) COM_AddCommand("archivetest", Command_Archivetest_f); #endif + COM_AddCommand("replaymarker", Command_ReplayMarker); + COM_AddCommand("downloads", Command_Downloads_f); COM_AddCommand("kartgiveitem", Command_KartGiveItem_f); @@ -3627,6 +3631,41 @@ static void Got_Pause(UINT8 **cp, INT32 playernum) G_ResetAllDeviceRumbles(); } +static void Command_ReplayMarker(void) +{ + if (gamestate != GS_LEVEL) + { + CONS_Printf(M_GetText("You must be in a level to use this.\n")); + return; + } + if (demo.savemode == DSM_WILLAUTOSAVE) + { + demo.savemode = DSM_NOTSAVING; + CONS_Printf("Replay unmarked.\n"); + } + else + { + demo.savemode = DSM_WILLAUTOSAVE; + + int adjustedleveltime = leveltime - starttime; + + if (adjustedleveltime < 0) + adjustedleveltime = 0; + + char *title = G_BuildMapTitle(gamemap); + + if (title) + { + snprintf(demo.titlename, 64, "%s [%i:%02d/%.5s]", title, G_TicsToMinutes(adjustedleveltime, false), G_TicsToSeconds(adjustedleveltime), modeattacking ? "Record Attack" : connectedservername); + Z_Free(title); + } + else + snprintf(demo.titlename, 64, "[%i:%02d/%.5s]", G_TicsToMinutes(adjustedleveltime, false), G_TicsToSeconds(adjustedleveltime), modeattacking ? "Record Attack" : connectedservername); + + CONS_Printf("Replay will be saved!\n"); + } +} + // Command for stuck characters in netgames, griefing, etc. static void HandleRespawnCommand(UINT8 localplayer) {