prog->edictprivate_size = max(prog->edictprivate_size,(int)sizeof(prvm_edict_private_t));
// alloc edicts
- prog->edicts = Mem_Alloc(prog->progs_mempool,prog->limit_edicts * sizeof(prvm_edict_t));
+ prog->edicts = (prvm_edict_t *)Mem_Alloc(prog->progs_mempool,prog->limit_edicts * sizeof(prvm_edict_t));
// alloc edict private space
prog->edictprivate = Mem_Alloc(prog->progs_mempool, prog->max_edicts * prog->edictprivate_size);
// set edict pointers
for(i = 0; i < prog->max_edicts; i++)
{
- prog->edicts[i].priv.required = (prvm_edict_private_t *)((qbyte *)prog->edictprivate + i * prog->edictprivate_size);
- prog->edicts[i].fields.vp = (void*)((qbyte *)prog->edictsfields + i * prog->edict_size);
+ prog->edicts[i].priv.required = (prvm_edict_private_t *)((unsigned char *)prog->edictprivate + i * prog->edictprivate_size);
+ prog->edicts[i].fields.vp = (void*)((unsigned char *)prog->edictsfields + i * prog->edict_size);
}
}
//set e and v pointers
for(i = 0; i < prog->max_edicts; i++)
{
- prog->edicts[i].priv.required = (prvm_edict_private_t *)((qbyte *)prog->edictprivate + i * prog->edictprivate_size);
- prog->edicts[i].fields.vp = (void*)((qbyte *)prog->edictsfields + i * prog->edict_size);
+ prog->edicts[i].priv.required = (prvm_edict_private_t *)((unsigned char *)prog->edictprivate + i * prog->edictprivate_size);
+ prog->edicts[i].fields.vp = (void*)((unsigned char *)prog->edictsfields + i * prog->edict_size);
}
PRVM_GCALL(end_increase_edicts)();
if(prog_list[prognr].loaded)
prog = &prog_list[prognr];
else
- PRVM_ERROR("%i not loaded !\n", prognr);
+ PRVM_ERROR("%i not loaded !", prognr);
return;
}
- PRVM_ERROR("Invalid program number %i\n", prognr);
+ PRVM_ERROR("Invalid program number %i", prognr);
}
/*
*/
char *PRVM_ValueString (etype_t type, prvm_eval_t *val)
{
- static char line[1024]; // LordHavoc: enlarged a bit (was 256)
+ static char line[MAX_INPUTLINE];
ddef_t *def;
mfunction_t *f;
int n;
- type &= ~DEF_SAVEGLOBAL;
+ type = (etype_t)((int) type & ~DEF_SAVEGLOBAL);
switch (type)
{
*/
char *PRVM_UglyValueString (etype_t type, prvm_eval_t *val)
{
- static char line[4096];
+ static char line[MAX_INPUTLINE];
int i;
const char *s;
ddef_t *def;
mfunction_t *f;
- type &= ~DEF_SAVEGLOBAL;
+ type = (etype_t)((int)type & ~DEF_SAVEGLOBAL);
switch (type)
{
sprintf (line,"%i(?)", ofs);
else
{
- s = PRVM_ValueString (def->type, val);
+ s = PRVM_ValueString ((etype_t)def->type, (prvm_eval_t *)val);
sprintf (line,"%i(%s)%s", ofs, PRVM_GetString(def->s_name), s);
}
int i, j;
const char *name;
int type;
- char tempstring[8192], tempstring2[260]; // temporary string buffers
+ char tempstring[MAX_INPUTLINE], tempstring2[260]; // temporary string buffers
if (ed->priv.required->free)
{
if (j == prvm_type_size[type])
continue;
- if (strlen(name) > 256)
+ if (strlen(name) > sizeof(tempstring2)-4)
{
- memcpy (tempstring2, name, 256);
- tempstring2[256] = tempstring2[257] = tempstring2[258] = '.';
- tempstring2[259] = 0;
+ memcpy (tempstring2, name, sizeof(tempstring2)-4);
+ tempstring2[sizeof(tempstring2)-4] = tempstring2[sizeof(tempstring2)-3] = tempstring2[sizeof(tempstring2)-2] = '.';
+ tempstring2[sizeof(tempstring2)-1] = 0;
name = tempstring2;
}
strcat(tempstring, name);
strcat(tempstring, " ");
strcat(tempstring, " ");
- name = PRVM_ValueString(d->type, (prvm_eval_t *)v);
- if (strlen(name) > 256)
+ name = PRVM_ValueString((etype_t)d->type, (prvm_eval_t *)v);
+ if (strlen(name) > sizeof(tempstring2)-4)
{
- memcpy (tempstring2, name, 256);
- tempstring2[256] = tempstring2[257] = tempstring2[258] = '.';
- tempstring2[259] = 0;
+ memcpy (tempstring2, name, sizeof(tempstring2)-4);
+ tempstring2[sizeof(tempstring2)-4] = tempstring2[sizeof(tempstring2)-3] = tempstring2[sizeof(tempstring2)-2] = '.';
+ tempstring2[sizeof(tempstring2)-1] = 0;
name = tempstring2;
}
strcat(tempstring, name);
strcat(tempstring, "\n");
- if (strlen(tempstring) >= 4096)
+ if (strlen(tempstring) >= sizeof(tempstring)/2)
{
Con_Print(tempstring);
tempstring[0] = 0;
continue;
FS_Printf(f,"\"%s\" ",name);
- FS_Printf(f,"\"%s\"\n", PRVM_UglyValueString(d->type, (prvm_eval_t *)v));
+ FS_Printf(f,"\"%s\"\n", PRVM_UglyValueString((etype_t)d->type, (prvm_eval_t *)v));
}
FS_Print(f, "}\n");
name = PRVM_GetString(def->s_name);
FS_Printf(f,"\"%s\" ", name);
- FS_Printf(f,"\"%s\"\n", PRVM_UglyValueString(type, (prvm_eval_t *)&prog->globals.generic[def->ofs]));
+ FS_Printf(f,"\"%s\"\n", PRVM_UglyValueString((etype_t)type, (prvm_eval_t *)&prog->globals.generic[def->ofs]));
}
FS_Print(f,"}\n");
}
*/
void PRVM_ED_ParseGlobals (const char *data)
{
- char keyname[1024]; // LordHavoc: good idea? bad idea? was 64
+ char keyname[MAX_INPUTLINE];
ddef_t *key;
while (1)
{
// parse key
if (!COM_ParseToken(&data, false))
- PRVM_ERROR ("PRVM_ED_ParseEntity: EOF without closing brace");
+ PRVM_ERROR ("PRVM_ED_ParseGlobals: EOF without closing brace");
if (com_token[0] == '}')
break;
// parse value
if (!COM_ParseToken(&data, false))
- PRVM_ERROR ("PRVM_ED_ParseEntity: EOF without closing brace");
+ PRVM_ERROR ("PRVM_ED_ParseGlobals: EOF without closing brace");
if (com_token[0] == '}')
- PRVM_ERROR ("PRVM_ED_ParseEntity: closing brace without data");
+ PRVM_ERROR ("PRVM_ED_ParseGlobals: closing brace without data");
key = PRVM_ED_FindGlobal (keyname);
if (!key)
Used for initial level load and for savegames.
====================
*/
+extern cvar_t developer_entityparsing;
const char *PRVM_ED_ParseEdict (const char *data, prvm_edict_t *ent)
{
ddef_t *key;
{
// parse key
if (!COM_ParseToken(&data, false))
- PRVM_ERROR ("PRVM_ED_ParseEntity: EOF without closing brace");
+ PRVM_ERROR ("PRVM_ED_ParseEdict: EOF without closing brace");
+ if (developer_entityparsing.integer)
+ Con_Printf("Key: \"%s\"", com_token);
if (com_token[0] == '}')
break;
// parse value
if (!COM_ParseToken(&data, false))
- PRVM_ERROR ("PRVM_ED_ParseEntity: EOF without closing brace");
+ PRVM_ERROR ("PRVM_ED_ParseEdict: EOF without closing brace");
+ if (developer_entityparsing.integer)
+ Con_Printf(" \"%s\"\n", com_token);
if (com_token[0] == '}')
- PRVM_ERROR ("PRVM_ED_ParseEntity: closing brace without data");
+ PRVM_ERROR ("PRVM_ED_ParseEdict: closing brace without data");
init = true;
//
if(prog->self && prog->flag & PRVM_FE_CLASSNAME)
{
- string_t handle = *(string_t*)&((qbyte*)ent->fields.vp)[PRVM_ED_FindFieldOffset("classname")];
+ string_t handle = *(string_t*)&((unsigned char*)ent->fields.vp)[PRVM_ED_FindFieldOffset("classname")];
if (!handle)
{
Con_Print("No classname for:\n");
===============
*/
void PRVM_LoadLNO( const char *progname ) {
- qbyte *lno;
+ fs_offset_t filesize;
+ unsigned char *lno;
unsigned int *header;
char filename[512];
FS_StripExtension( progname, filename, sizeof( filename ) );
strlcat( filename, ".lno", sizeof( filename ) );
- lno = FS_LoadFile( filename, tempmempool, false );
+ lno = FS_LoadFile( filename, tempmempool, false, &filesize );
if( !lno ) {
return;
}
<Spike> SafeWrite (h, &numstatements, sizeof(int));
<Spike> SafeWrite (h, statement_linenums, numstatements*sizeof(int));
*/
- if( (unsigned) fs_filesize < (6 + prog->progs->numstatements) * sizeof( int ) ) {
+ if( (unsigned) filesize < (6 + prog->progs->numstatements) * sizeof( int ) ) {
return;
}
(unsigned int)LittleLong( header[ 4 ] ) == (unsigned int)prog->progs->numfielddefs &&
(unsigned int)LittleLong( header[ 5 ] ) == (unsigned int)prog->progs->numstatements )
{
- prog->statement_linenums = Mem_Alloc(prog->progs_mempool, prog->progs->numstatements * sizeof( int ) );
+ prog->statement_linenums = (int *)Mem_Alloc(prog->progs_mempool, prog->progs->numstatements * sizeof( int ) );
memcpy( prog->statement_linenums, (int *) lno + 6, prog->progs->numstatements * sizeof( int ) );
}
Mem_Free( lno );
dstatement_t *st;
ddef_t *infielddefs;
dfunction_t *dfunctions;
+ fs_offset_t filesize;
if( prog->loaded ) {
- PRVM_ERROR ("PRVM_LoadProgs: there is already a %s program loaded!\n", PRVM_NAME );
+ PRVM_ERROR ("PRVM_LoadProgs: there is already a %s program loaded!", PRVM_NAME );
}
- prog->progs = (dprograms_t *)FS_LoadFile (filename, prog->progs_mempool, false);
- if (prog->progs == NULL || fs_filesize < (fs_offset_t)sizeof(dprograms_t))
+ prog->progs = (dprograms_t *)FS_LoadFile (filename, prog->progs_mempool, false, &filesize);
+ if (prog->progs == NULL || filesize < (fs_offset_t)sizeof(dprograms_t))
PRVM_ERROR ("PRVM_LoadProgs: couldn't load %s for %s", filename, PRVM_NAME);
- Con_DPrintf("%s programs occupy %iK.\n", PRVM_NAME, fs_filesize/1024);
+ Con_DPrintf("%s programs occupy %iK.\n", PRVM_NAME, filesize/1024);
- prog->filecrc = CRC_Block((qbyte *)prog->progs, fs_filesize);
+ prog->filecrc = CRC_Block((unsigned char *)prog->progs, filesize);
// byte swap the header
for (i = 0;i < (int) sizeof(*prog->progs) / 4;i++)
if (prog->progs->crc != prog->headercrc)
PRVM_ERROR ("%s: %s system vars have been modified, progdefs.h is out of date", PRVM_NAME, filename);
- //prog->functions = (dfunction_t *)((qbyte *)progs + progs->ofs_functions);
- dfunctions = (dfunction_t *)((qbyte *)prog->progs + prog->progs->ofs_functions);
+ //prog->functions = (dfunction_t *)((unsigned char *)progs + progs->ofs_functions);
+ dfunctions = (dfunction_t *)((unsigned char *)prog->progs + prog->progs->ofs_functions);
prog->strings = (char *)prog->progs + prog->progs->ofs_strings;
prog->stringssize = 0;
for (i = 0;i < prog->progs->numstrings;i++)
{
- if (prog->progs->ofs_strings + prog->stringssize >= (int)fs_filesize)
- PRVM_ERROR ("%s: %s strings go past end of file\n", PRVM_NAME, filename);
+ if (prog->progs->ofs_strings + prog->stringssize >= (int)filesize)
+ PRVM_ERROR ("%s: %s strings go past end of file", PRVM_NAME, filename);
prog->stringssize += (int)strlen (prog->strings + prog->stringssize) + 1;
}
prog->numknownstrings = 0;
prog->knownstrings = NULL;
prog->knownstrings_freeable = NULL;
- prog->globaldefs = (ddef_t *)((qbyte *)prog->progs + prog->progs->ofs_globaldefs);
+ prog->globaldefs = (ddef_t *)((unsigned char *)prog->progs + prog->progs->ofs_globaldefs);
// we need to expand the fielddefs list to include all the engine fields,
// so allocate a new place for it
- infielddefs = (ddef_t *)((qbyte *)prog->progs + prog->progs->ofs_fielddefs);
+ infielddefs = (ddef_t *)((unsigned char *)prog->progs + prog->progs->ofs_fielddefs);
// ( + DPFIELDS )
- prog->fielddefs = Mem_Alloc(prog->progs_mempool, (prog->progs->numfielddefs + numrequiredfields) * sizeof(ddef_t));
+ prog->fielddefs = (ddef_t *)Mem_Alloc(prog->progs_mempool, (prog->progs->numfielddefs + numrequiredfields) * sizeof(ddef_t));
- prog->statements = (dstatement_t *)((qbyte *)prog->progs + prog->progs->ofs_statements);
+ prog->statements = (dstatement_t *)((unsigned char *)prog->progs + prog->progs->ofs_statements);
// moved edict_size calculation down below field adding code
- //pr_global_struct = (globalvars_t *)((qbyte *)progs + progs->ofs_globals);
- prog->globals.generic = (float *)((qbyte *)prog->progs + prog->progs->ofs_globals);
+ //pr_global_struct = (globalvars_t *)((unsigned char *)progs + progs->ofs_globals);
+ prog->globals.generic = (float *)((unsigned char *)prog->progs + prog->progs->ofs_globals);
// byte swap the lumps
for (i=0 ; i<prog->progs->numstatements ; i++)
prog->statements[i].c = LittleShort(prog->statements[i].c);
}
- prog->functions = Mem_Alloc(prog->progs_mempool, sizeof(mfunction_t) * prog->progs->numfunctions);
+ prog->functions = (mfunction_t *)Mem_Alloc(prog->progs_mempool, sizeof(mfunction_t) * prog->progs->numfunctions);
for (i = 0;i < prog->progs->numfunctions;i++)
{
prog->functions[i].first_statement = LittleLong (dfunctions[i].first_statement);
// check required functions
for(i=0 ; i < numrequiredfunc ; i++)
if(PRVM_ED_FindFunction(required_func[i]) == 0)
- PRVM_ERROR("%s: %s not found in %s\n",PRVM_NAME, required_func[i], filename);
+ PRVM_ERROR("%s: %s not found in %s",PRVM_NAME, required_func[i], filename);
for (i=0 ; i<prog->progs->numglobals ; i++)
((int *)prog->globals.generic)[i] = LittleLong (((int *)prog->globals.generic)[i]);
case OP_IF:
case OP_IFNOT:
if ((unsigned short) st->a >= prog->progs->numglobals || st->b + i < 0 || st->b + i >= prog->progs->numstatements)
- PRVM_ERROR("PRVM_LoadProgs: out of bounds IF/IFNOT (statement %d) in %s\n", i, PRVM_NAME);
+ PRVM_ERROR("PRVM_LoadProgs: out of bounds IF/IFNOT (statement %d) in %s", i, PRVM_NAME);
break;
case OP_GOTO:
if (st->a + i < 0 || st->a + i >= prog->progs->numstatements)
- PRVM_ERROR("PRVM_LoadProgs: out of bounds GOTO (statement %d) in %s\n", i, PRVM_NAME);
+ PRVM_ERROR("PRVM_LoadProgs: out of bounds GOTO (statement %d) in %s", i, PRVM_NAME);
break;
// global global global
case OP_ADD_F:
case OP_LOAD_FNC:
case OP_LOAD_V:
if ((unsigned short) st->a >= prog->progs->numglobals || (unsigned short) st->b >= prog->progs->numglobals || (unsigned short) st->c >= prog->progs->numglobals)
- PRVM_ERROR("PRVM_LoadProgs: out of bounds global index (statement %d)\n", i);
+ PRVM_ERROR("PRVM_LoadProgs: out of bounds global index (statement %d)", i);
break;
// global none global
case OP_NOT_F:
case OP_NOT_FNC:
case OP_NOT_ENT:
if ((unsigned short) st->a >= prog->progs->numglobals || (unsigned short) st->c >= prog->progs->numglobals)
- PRVM_ERROR("PRVM_LoadProgs: out of bounds global index (statement %d) in %s\n", i, PRVM_NAME);
+ PRVM_ERROR("PRVM_LoadProgs: out of bounds global index (statement %d) in %s", i, PRVM_NAME);
break;
// 2 globals
case OP_STOREP_F:
case OP_STOREP_V:
case OP_STORE_V:
if ((unsigned short) st->a >= prog->progs->numglobals || (unsigned short) st->b >= prog->progs->numglobals)
- PRVM_ERROR("PRVM_LoadProgs: out of bounds global index (statement %d)\n in %s", i, PRVM_NAME);
+ PRVM_ERROR("PRVM_LoadProgs: out of bounds global index (statement %d) in %s", i, PRVM_NAME);
break;
// 1 global
case OP_CALL0:
case OP_DONE:
case OP_RETURN:
if ((unsigned short) st->a >= prog->progs->numglobals)
- PRVM_ERROR("PRVM_LoadProgs: out of bounds global index (statement %d) in %s\n", i, PRVM_NAME);
+ PRVM_ERROR("PRVM_LoadProgs: out of bounds global index (statement %d) in %s", i, PRVM_NAME);
break;
default:
- PRVM_ERROR("PRVM_LoadProgs: unknown opcode %d at statement %d in %s\n", st->op, i, PRVM_NAME);
+ PRVM_ERROR("PRVM_LoadProgs: unknown opcode %d at statement %d in %s", st->op, i, PRVM_NAME);
break;
}
}
{
int i, j, ednum, used, usedamount;
int *counts;
- char tempstring[5000], tempstring2[260];
+ char tempstring[MAX_INPUTLINE], tempstring2[260];
const char *name;
prvm_edict_t *ed;
ddef_t *d;
if(!PRVM_SetProgFromString(Cmd_Argv(1)))
return;
- counts = Mem_Alloc(tempmempool, prog->progs->numfielddefs * sizeof(int));
+ counts = (int *)Mem_Alloc(tempmempool, prog->progs->numfielddefs * sizeof(int));
for (ednum = 0;ednum < prog->max_edicts;ednum++)
{
ed = PRVM_EDICT_NUM(ednum);
strcat(tempstring, tempstring2);
break;
}
- if (strlen(name) > 256)
+ if (strlen(name) > sizeof(tempstring2)-4)
{
- memcpy (tempstring2, name, 256);
- tempstring2[256] = tempstring2[257] = tempstring2[258] = '.';
- tempstring2[259] = 0;
+ memcpy (tempstring2, name, sizeof(tempstring2)-4);
+ tempstring2[sizeof(tempstring2)-4] = tempstring2[sizeof(tempstring2)-3] = tempstring2[sizeof(tempstring2)-2] = '.';
+ tempstring2[sizeof(tempstring2)-1] = 0;
name = tempstring2;
}
strcat(tempstring, name);
sprintf(tempstring2, "%5d", counts[i]);
strcat(tempstring, tempstring2);
strcat(tempstring, "\n");
- if (strlen(tempstring) >= 4096)
+ if (strlen(tempstring) >= sizeof(tempstring)/2)
{
Con_Print(tempstring);
tempstring[0] = 0;
if( !global )
Con_Printf( "No global '%s' in %s!\n", Cmd_Argv(2), Cmd_Argv(1) );
else
- Con_Printf( "%s: %s\n", Cmd_Argv(2), PRVM_ValueString( global->type, (prvm_eval_t *) &prog->globals.generic[ global->ofs ] ) );
+ Con_Printf( "%s: %s\n", Cmd_Argv(2), PRVM_ValueString( (etype_t)global->type, (prvm_eval_t *) &prog->globals.generic[ global->ofs ] ) );
PRVM_End;
}
void PRVM_InitProg(int prognr)
{
if(prognr < 0 || prognr >= PRVM_MAXPROGS)
- Sys_Error("PRVM_InitProg: Invalid program number %i\n",prognr);
+ Sys_Error("PRVM_InitProg: Invalid program number %i",prognr);
prog = &prog_list[prognr];
// return e - prog->edicts;
//}
-//#define PRVM_EDICT_TO_PROG(e) ((qbyte *)(((prvm_edict_t *)e)->v) - (qbyte *)(prog->edictsfields))
+//#define PRVM_EDICT_TO_PROG(e) ((unsigned char *)(((prvm_edict_t *)e)->v) - (unsigned char *)(prog->edictsfields))
//#define PRVM_PROG_TO_EDICT(e) (prog->edicts + ((e) / (progs->entityfields * 4)))
int PRVM_EDICT_TO_PROG(prvm_edict_t *e)
{
int n;
n = e - prog->edicts;
if ((unsigned int)n >= (unsigned int)prog->max_edicts)
- Host_Error("PRVM_EDICT_TO_PROG: invalid edict %8p (number %i compared to world at %8p)\n", e, n, prog->edicts);
+ Host_Error("PRVM_EDICT_TO_PROG: invalid edict %8p (number %i compared to world at %8p)", e, n, prog->edicts);
return n;// EXPERIMENTAL
- //return (qbyte *)e->v - (qbyte *)prog->edictsfields;
+ //return (unsigned char *)e->v - (unsigned char *)prog->edictsfields;
}
prvm_edict_t *PRVM_PROG_TO_EDICT(int n)
{
if ((unsigned int)n >= (unsigned int)prog->max_edicts)
- Host_Error("PRVM_PROG_TO_EDICT: invalid edict number %i\n", n);
+ Host_Error("PRVM_PROG_TO_EDICT: invalid edict number %i", n);
return prog->edicts + n; // EXPERIMENTAL
//return prog->edicts + ((n) / (progs->entityfields * 4));
}
{
num = -1 - num;
if (!prog->knownstrings[num])
- PRVM_ERROR("PRVM_GetString: attempt to get string that is already freed\n");
+ PRVM_ERROR("PRVM_GetString: attempt to get string that is already freed");
return prog->knownstrings[num];
}
else
{
- PRVM_ERROR("PRVM_GetString: invalid string offset %i\n", num);
+ PRVM_ERROR("PRVM_GetString: invalid string offset %i", num);
return "";
}
}
if (!s)
return 0;
if (s >= prog->strings && s <= prog->strings + prog->stringssize)
- PRVM_ERROR("PRVM_SetEngineString: s in prog->strings area\n");
+ PRVM_ERROR("PRVM_SetEngineString: s in prog->strings area");
for (i = 0;i < prog->numknownstrings;i++)
if (prog->knownstrings[i] == s)
return -1 - i;
if (i >= prog->maxknownstrings)
{
const char **oldstrings = prog->knownstrings;
- const qbyte *oldstrings_freeable = prog->knownstrings_freeable;
+ const unsigned char *oldstrings_freeable = prog->knownstrings_freeable;
prog->maxknownstrings += 128;
- prog->knownstrings = PRVM_Alloc(prog->maxknownstrings * sizeof(char *));
- prog->knownstrings_freeable = PRVM_Alloc(prog->maxknownstrings * sizeof(qbyte));
+ prog->knownstrings = (const char **)PRVM_Alloc(prog->maxknownstrings * sizeof(char *));
+ prog->knownstrings_freeable = (unsigned char *)PRVM_Alloc(prog->maxknownstrings * sizeof(unsigned char));
if (prog->numknownstrings)
{
memcpy((char **)prog->knownstrings, oldstrings, prog->numknownstrings * sizeof(char *));
- memcpy((char **)prog->knownstrings_freeable, oldstrings_freeable, prog->numknownstrings * sizeof(qbyte));
+ memcpy((char **)prog->knownstrings_freeable, oldstrings_freeable, prog->numknownstrings * sizeof(unsigned char));
}
}
prog->numknownstrings++;
if (i >= prog->maxknownstrings)
{
const char **oldstrings = prog->knownstrings;
- const qbyte *oldstrings_freeable = prog->knownstrings_freeable;
+ const unsigned char *oldstrings_freeable = prog->knownstrings_freeable;
prog->maxknownstrings += 128;
- prog->knownstrings = PRVM_Alloc(prog->maxknownstrings * sizeof(char *));
- prog->knownstrings_freeable = PRVM_Alloc(prog->maxknownstrings * sizeof(qbyte));
+ prog->knownstrings = (const char **)PRVM_Alloc(prog->maxknownstrings * sizeof(char *));
+ prog->knownstrings_freeable = (unsigned char *)PRVM_Alloc(prog->maxknownstrings * sizeof(unsigned char));
if (prog->numknownstrings)
{
memcpy((char **)prog->knownstrings, oldstrings, prog->numknownstrings * sizeof(char *));
- memcpy((char **)prog->knownstrings_freeable, oldstrings_freeable, prog->numknownstrings * sizeof(qbyte));
+ memcpy((char **)prog->knownstrings_freeable, oldstrings_freeable, prog->numknownstrings * sizeof(unsigned char));
}
}
prog->numknownstrings++;
}
prog->firstfreeknownstring = i + 1;
- prog->knownstrings[i] = PRVM_Alloc(bufferlength);
+ prog->knownstrings[i] = (char *)PRVM_Alloc(bufferlength);
prog->knownstrings_freeable[i] = true;
if (pointer)
*pointer = (char *)(prog->knownstrings[i]);
void PRVM_FreeString(int num)
{
if (num == 0)
- PRVM_ERROR("PRVM_FreeString: attempt to free a NULL string\n");
+ PRVM_ERROR("PRVM_FreeString: attempt to free a NULL string");
else if (num >= 0 && num < prog->stringssize)
- PRVM_ERROR("PRVM_FreeString: attempt to free a constant string\n");
+ PRVM_ERROR("PRVM_FreeString: attempt to free a constant string");
else if (num < 0 && num >= -prog->numknownstrings)
{
num = -1 - num;
if (!prog->knownstrings[num])
- PRVM_ERROR("PRVM_FreeString: attempt to free a non-existent or already freed string\n");
+ PRVM_ERROR("PRVM_FreeString: attempt to free a non-existent or already freed string");
if (!prog->knownstrings[num])
- PRVM_ERROR("PRVM_FreeString: attempt to free a string owned by the engine\n");
+ PRVM_ERROR("PRVM_FreeString: attempt to free a string owned by the engine");
PRVM_Free((char *)prog->knownstrings[num]);
prog->knownstrings[num] = NULL;
prog->knownstrings_freeable[num] = false;
prog->firstfreeknownstring = min(prog->firstfreeknownstring, num);
}
else
- PRVM_ERROR("PRVM_FreeString: invalid string offset %i\n", num);
+ PRVM_ERROR("PRVM_FreeString: invalid string offset %i", num);
}