Zwip Zwap Zapony's suggestion to use a consvar

This commit is contained in:
Arthur 2024-02-21 16:22:00 -05:00
parent 716b9527bf
commit a407ff8899
6 changed files with 13 additions and 15 deletions

View file

@ -1664,10 +1664,10 @@ void D_SRB2Main(void)
if (M_CheckParm("-playdemo")) if (M_CheckParm("-playdemo"))
{ {
singledemo = true; // quit after one demo singledemo = true; // quit after one demo
G_DeferedPlayDemo(tmp, M_CheckParm("-allowdemodesync") != 0); G_DeferedPlayDemo(tmp);
} }
else else
G_TimeDemo(tmp, M_CheckParm("-allowdemodesync") != 0); G_TimeDemo(tmp);
G_SetGamestate(GS_NULL); G_SetGamestate(GS_NULL);
wipegamestate = GS_NULL; wipegamestate = GS_NULL;

View file

@ -3513,7 +3513,6 @@ void F_TitleScreenTicker(boolean run)
titledemo = true; titledemo = true;
demofileoverride = DFILE_OVERRIDE_NONE; demofileoverride = DFILE_OVERRIDE_NONE;
demoallowdesync = false;
G_DoPlayDemo(dname); G_DoPlayDemo(dname);
} }
} }

View file

@ -51,7 +51,6 @@ boolean demorecording;
boolean demoplayback; boolean demoplayback;
boolean titledemo; // Title Screen demo can be cancelled by any key boolean titledemo; // Title Screen demo can be cancelled by any key
demo_file_override_e demofileoverride; demo_file_override_e demofileoverride;
boolean demoallowdesync = false; // Allow demo files to de-sync
static UINT8 *demobuffer = NULL; static UINT8 *demobuffer = NULL;
static UINT8 *demo_p, *demotime_p; static UINT8 *demo_p, *demotime_p;
static UINT8 *demoend; static UINT8 *demoend;
@ -68,6 +67,8 @@ static UINT8 *metalbuffer = NULL;
static UINT8 *metal_p; static UINT8 *metal_p;
static UINT16 metalversion; static UINT16 metalversion;
consvar_t cv_resyncdemo = CVAR_INIT("resyncdemo", "On", 0, CV_OnOff, NULL);
// extra data stuff (events registered this frame while recording) // extra data stuff (events registered this frame while recording)
static struct { static struct {
UINT8 flags; // EZT flags UINT8 flags; // EZT flags
@ -661,7 +662,7 @@ void G_ConsGhostTic(void)
CONS_Alert(CONS_WARNING, M_GetText("Demo playback has desynced!\n")); CONS_Alert(CONS_WARNING, M_GetText("Demo playback has desynced!\n"));
demosynced = false; demosynced = false;
if (!demoallowdesync) if (cv_resyncdemo.value)
{ {
P_UnsetThingPosition(testmo); P_UnsetThingPosition(testmo);
testmo->x = oldghost.x; testmo->x = oldghost.x;
@ -1979,7 +1980,7 @@ UINT8 G_CmpDemoTime(char *oldname, char *newname)
// //
// G_PlayDemo // G_PlayDemo
// //
void G_DeferedPlayDemo(const char *name, boolean allowdesync) void G_DeferedPlayDemo(const char *name)
{ {
COM_BufAddText("playdemo \""); COM_BufAddText("playdemo \"");
COM_BufAddText(name); COM_BufAddText(name);
@ -2637,7 +2638,7 @@ void G_FreeGhosts(void)
// //
static INT32 restorecv_vidwait; static INT32 restorecv_vidwait;
void G_TimeDemo(const char *name, boolean allowdesync) void G_TimeDemo(const char *name)
{ {
nodrawers = M_CheckParm("-nodraw"); nodrawers = M_CheckParm("-nodraw");
noblit = M_CheckParm("-noblit"); noblit = M_CheckParm("-noblit");
@ -2648,7 +2649,7 @@ void G_TimeDemo(const char *name, boolean allowdesync)
singletics = true; singletics = true;
framecount = 0; framecount = 0;
demostarttime = I_GetTime(); demostarttime = I_GetTime();
G_DeferedPlayDemo(name, allowdesync); G_DeferedPlayDemo(name);
} }
void G_DoPlayMetal(void) void G_DoPlayMetal(void)

View file

@ -35,7 +35,7 @@ typedef enum
} demo_file_override_e; } demo_file_override_e;
extern demo_file_override_e demofileoverride; extern demo_file_override_e demofileoverride;
extern boolean demoallowdesync; extern consvar_t cv_resyncdemo;
// Quit after playing a demo from cmdline. // Quit after playing a demo from cmdline.
extern boolean singledemo; extern boolean singledemo;
@ -95,9 +95,9 @@ void G_WriteMetalTic(mobj_t *metal);
void G_SaveMetal(UINT8 **buffer); void G_SaveMetal(UINT8 **buffer);
void G_LoadMetal(UINT8 **buffer); void G_LoadMetal(UINT8 **buffer);
void G_DeferedPlayDemo(const char *demo, boolean allowdesync); void G_DeferedPlayDemo(const char *demo);
void G_DoPlayDemo(char *defdemoname); void G_DoPlayDemo(char *defdemoname);
void G_TimeDemo(const char *name, boolean allowdesync); void G_TimeDemo(const char *name);
void G_AddGhost(char *defdemoname); void G_AddGhost(char *defdemoname);
void G_FreeGhosts(void); void G_FreeGhosts(void);
void G_DoPlayMetal(void); void G_DoPlayMetal(void);

View file

@ -10529,7 +10529,6 @@ static void M_StartTimeAttackReplay(INT32 choice)
{ {
M_ClearMenus(true); M_ClearMenus(true);
modeattacking = ATTACKING_RECORD; // set modeattacking before G_DoPlayDemo so the map loader knows modeattacking = ATTACKING_RECORD; // set modeattacking before G_DoPlayDemo so the map loader knows
demoallowdesync = false;
G_DoPlayDemo(ra_demoname); G_DoPlayDemo(ra_demoname);
} }
} }

View file

@ -675,6 +675,7 @@ void D_RegisterClientCommands(void)
COM_AddCommand("timedemo", Command_Timedemo_f, 0); COM_AddCommand("timedemo", Command_Timedemo_f, 0);
COM_AddCommand("stopdemo", Command_Stopdemo_f, COM_LUA); COM_AddCommand("stopdemo", Command_Stopdemo_f, COM_LUA);
COM_AddCommand("playintro", Command_Playintro_f, COM_LUA); COM_AddCommand("playintro", Command_Playintro_f, COM_LUA);
CV_RegisterVar(&cv_resyncdemo);
COM_AddCommand("resetcamera", Command_ResetCamera_f, COM_LUA); COM_AddCommand("resetcamera", Command_ResetCamera_f, COM_LUA);
@ -1596,8 +1597,6 @@ static void Command_Playdemo_f(void)
demofileoverride = DFILE_OVERRIDE_SKIP; demofileoverride = DFILE_OVERRIDE_SKIP;
} }
demoallowdesync = COM_CheckParm("-allowdesync");
// Internal if no extension, external if one exists // Internal if no extension, external if one exists
// If external, convert the file name to a path in SRB2's home directory // If external, convert the file name to a path in SRB2's home directory
if (FIL_CheckExtension(name)) if (FIL_CheckExtension(name))
@ -1645,7 +1644,7 @@ static void Command_Timedemo_f(void)
CONS_Printf(M_GetText("Timing demo '%s'.\n"), timedemo_name); CONS_Printf(M_GetText("Timing demo '%s'.\n"), timedemo_name);
G_TimeDemo(timedemo_name, COM_CheckParm("-allowdesync")); G_TimeDemo(timedemo_name);
} }
// stop current demo // stop current demo