Make max demo size a cvar #32

Merged
alufolie91 merged 1 commits from maxdemo-cvar into Saturn 2023-08-22 17:06:00 +02:00
4 changed files with 22 additions and 10 deletions

No files matched your search

+1
View File
@@ -785,6 +785,7 @@ void D_RegisterServerCommands(void)
CV_RegisterVar(&cv_recordmultiplayerdemos);
CV_RegisterVar(&cv_netdemosyncquality);
CV_RegisterVar(&cv_maxdemosize);
}
// =========================================================================
+19 -9
View File
@@ -345,6 +345,10 @@ consvar_t cv_recordmultiplayerdemos = {"netdemo_record", "Manual Save", CV_SAVE,
static CV_PossibleValue_t netdemosyncquality_cons_t[] = {{1, "MIN"}, {35, "MAX"}, {0, NULL}};
consvar_t cv_netdemosyncquality = {"netdemo_syncquality", "1", CV_SAVE, netdemosyncquality_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
// Units are MiB.
static CV_PossibleValue_t maxdemosize_cons_t[] = {{10, "MIN"}, {100, "MAX"}, {0, NULL}};
consvar_t cv_maxdemosize = {"maxdemosize", "10", CV_SAVE, maxdemosize_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
static UINT8 *savebuffer;
// Analog Control
@@ -6743,29 +6747,35 @@ void G_RecordDemo(const char *name)
strcpy(demoname, name);
strcat(demoname, ".lmp");
//@TODO make a maxdemosize cvar
maxsize = 1024*1024*2;
if (M_CheckParm("-maxdemo") && M_IsNextParm())
maxsize = atoi(M_GetNextParm()) * 1024;
maxsize = cv_maxdemosize.value*1024*1024;
if (demobuffer)
free(demobuffer);
demo_p = NULL;
demo.recording = false;
demobuffer = malloc(maxsize);
demoend = demobuffer + maxsize;
demo.recording = true;
if (demobuffer)
demo.recording = true;
else
CONS_Alert(CONS_ERROR, "Failed to allocate demo buffer\n");
}
void G_RecordMetal(void)
{
INT32 maxsize;
maxsize = 1024*1024;
if (M_CheckParm("-maxdemo") && M_IsNextParm())
maxsize = atoi(M_GetNextParm()) * 1024;
maxsize = cv_maxdemosize.value*1024*1024;
if (demobuffer)
free(demobuffer);
demo_p = NULL;
metalrecording = false;
demobuffer = malloc(maxsize);
demoend = demobuffer + maxsize;
metalrecording = true;
if (demobuffer)
metalrecording = true;
else
CONS_Alert(CONS_ERROR, "Failed to allocate demo buffer\n");
}
void G_BeginRecording(void)
+1 -1
View File
@@ -39,7 +39,7 @@ extern UINT8 *demo_p;
// ======================================
// demoplaying back and demo recording
extern consvar_t cv_recordmultiplayerdemos, cv_netdemosyncquality;
extern consvar_t cv_recordmultiplayerdemos, cv_netdemosyncquality, cv_maxdemosize;
// Publicly-accessible demo vars
struct demovars_s {
+1
View File
@@ -562,6 +562,7 @@ static menuitem_t MISC_ReplayOptionsMenu[] =
{
{IT_CVAR|IT_STRING, NULL, "Record Replays", &cv_recordmultiplayerdemos, 0},
{IT_CVAR|IT_STRING, NULL, "Sync Check Interval", &cv_netdemosyncquality, 10},
{IT_CVAR|IT_STRING, NULL, "Max demo size (MiB)", &cv_maxdemosize, 20},
};
static tic_t playback_last_menu_interaction_leveltime = 0;