progs control cvars, pf_cs_sound fix

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@1239 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
TimeServ 2005-08-19 19:06:22 +00:00
parent d65f912f94
commit e339bfa096
4 changed files with 47 additions and 19 deletions

View file

@ -24,8 +24,11 @@ qboolean csqc_drawsbar;
qboolean csqc_addcrosshair;
static int num_csqc_edicts;
#define CSQCPROGSGROUP "CSQC progs control"
cvar_t pr_csmaxedicts = {"pr_csmaxedicts", "3072"};
cvar_t cl_csqcdebug = {"cl_csqcdebug", "0"}; //prints entity numbers which arrive (so I can tell people not to apply it to players...)
cvar_t cl_nocsqc = {"cl_nocsqc", "0"};
cvar_t pr_csqc_coreonerror = {"pr_csqc_coreonerror", "1"};
//If I do it like this, I'll never forget to register something...
#define csqcglobals \
@ -1908,7 +1911,7 @@ void PF_cs_sound(progfuncs_t *prinst, struct globalvars_s *pr_globals)
char *sample;
int channel;
csqcedict_t *entity;
int volume;
float volume;
float attenuation;
sfx_t *sfx;
@ -3384,14 +3387,14 @@ void VARGS CSQC_Abort (char *format, ...) //an error occured.
Con_Printf("CSQC_Abort: %s\nShutting down csqc\n", string);
{
int size = 1024*1024*8;
char *buffer = BZ_Malloc(size);
csqcprogs->save_ents(csqcprogs, buffer, &size, 3);
COM_WriteFile("csqccore.txt", buffer, size);
BZ_Free(buffer);
}
if (pr_csqc_coreonerror.value)
{
int size = 1024*1024*8;
char *buffer = BZ_Malloc(size);
csqcprogs->save_ents(csqcprogs, buffer, &size, 3);
COM_WriteFile("csqccore.txt", buffer, size);
BZ_Free(buffer);
}
Host_EndGame("csqc error");
}
@ -3497,6 +3500,9 @@ qboolean CSQC_Init (unsigned int checksum)
return false;
}
if (cl_nocsqc.value)
return false;
memset(cl.model_csqcname, 0, sizeof(cl.model_csqcname));
memset(cl.model_csqcprecache, 0, sizeof(cl.model_csqcprecache));
@ -3604,8 +3610,10 @@ void CSQC_RegisterCvarsAndThings(void)
{
Cmd_AddCommand("coredump_csqc", CSQC_CoreDump);
Cvar_Register(&pr_csmaxedicts, "csqc");
Cvar_Register(&cl_csqcdebug, "csqc");
Cvar_Register(&pr_csmaxedicts, CSQCPROGSGROUP);
Cvar_Register(&cl_csqcdebug, CSQCPROGSGROUP);
Cvar_Register(&cl_nocsqc, CSQCPROGSGROUP);
Cvar_Register(&pr_csqc_coreonerror, CSQCPROGSGROUP);
}
qboolean CSQC_DrawView(void)

View file

@ -26,6 +26,11 @@ char *PF_TempStr(progfuncs_t *prinst);
int menuentsize;
// cvars
#define MENUPROGSGROUP "Menu progs control"
cvar_t forceqmenu = {"forceqmenu", "0"};
cvar_t pr_menuqc_coreonerror = {"pr_menuqc_coreonerror", "1"};
//pr_cmds.c builtins that need to be moved to a common.
void VARGS PR_BIError(progfuncs_t *progfuncs, char *format, ...);
void PF_cvar_string (progfuncs_t *prinst, struct globalvars_s *pr_globals);
@ -1331,7 +1336,7 @@ void VARGS Menu_Abort (char *format, ...)
Con_Printf("Menu_Abort: %s\nShutting down menu.dat\n", string);
if (pr_menuqc_coreonerror.value)
{
char *buffer;
int size = 1024*1024*8;
@ -1351,7 +1356,8 @@ void MP_Init (void)
{
return;
}
if (COM_CheckParm("-qmenu"))
if (forceqmenu.value)
return;
M_DeInit_Internal();
@ -1464,6 +1470,12 @@ void MP_CoreDump(void)
void MP_RegisterCvarsAndCmds(void)
{
Cmd_AddCommand("coredump_menuqc", MP_CoreDump);
Cvar_Register(&forceqmenu, MENUPROGSGROUP);
Cvar_Register(&pr_menuqc_coreonerror, MENUPROGSGROUP);
if (COM_CheckParm("-qmenu"))
Cvar_Set(&forceqmenu, "1");
}
void MP_Draw(void)

View file

@ -57,6 +57,8 @@ cvar_t pr_overridebuiltins = {"pr_overridebuiltins", "1"};
cvar_t pr_compatabilitytest = {"pr_compatabilitytest", "0", NULL, CVAR_LATCH};
cvar_t pr_ssqc_coreonerror = {"pr_coreonerror", "1"};
cvar_t sv_addon[MAXADDONS];
char cvargroup_progs[] = "Progs variables";
@ -881,6 +883,8 @@ void PR_Init(void)
Cvar_Register (&qc_nonetaccess, cvargroup_progs);
Cvar_Register (&pr_overridebuiltins, cvargroup_progs);
Cvar_Register (&pr_ssqc_coreonerror, cvargroup_progs);
}
void Q_InitProgs(void)

View file

@ -242,13 +242,17 @@ void VARGS SV_Error (char *error, ...)
_vsnprintf (string,sizeof(string)-1, error,argptr);
va_end (argptr);
if (svprogfuncs)
{
int size = 1024*1024*8;
char *buffer = BZ_Malloc(size);
svprogfuncs->save_ents(svprogfuncs, buffer, &size, 3);
COM_WriteFile("ssqccore.txt", buffer, size);
BZ_Free(buffer);
extern cvar_t pr_ssqc_coreonerror;
if (svprogfuncs && pr_ssqc_coreonerror.value)
{
int size = 1024*1024*8;
char *buffer = BZ_Malloc(size);
svprogfuncs->save_ents(svprogfuncs, buffer, &size, 3);
COM_WriteFile("ssqccore.txt", buffer, size);
BZ_Free(buffer);
}
}