[PATCH] Hide progs string table internals

Hide the internal workings of the progs string table so we can play with the
implementation.

Signed-off-by: Tyrann <tyrann@disenchant.net>
This commit is contained in:
Tyrann 2007-09-16 15:29:48 +09:30
parent cd64a4ecea
commit 950999685a
6 changed files with 22 additions and 18 deletions

View File

@ -1025,13 +1025,12 @@ PR_LoadProgs(void)
pr_strings_size = progs->strings_size;
if (progs->ofs_strings + pr_strings_size >= com_filesize)
Host_Error("progs.dat strings extend past end of file\n");
PR_InitStringTable();
pr_globaldefs = (ddef_t *)((byte *)progs + progs->ofs_globaldefs);
pr_fielddefs = (ddef_t *)((byte *)progs + progs->ofs_fielddefs);
pr_statements = (dstatement_t *)((byte *)progs + progs->ofs_statements);
num_prstr = 0;
pr_global_struct = (globalvars_t *)((byte *)progs + progs->ofs_globals);
pr_globals = (float *)pr_global_struct;

View File

@ -660,8 +660,15 @@ PR_ExecuteProgram(func_t fnum)
/*----------------------*/
char *pr_strtbl[MAX_PRSTR];
int num_prstr;
#define MAX_PRSTR 2048
static char *pr_strtbl[MAX_PRSTR];
static int num_prstr;
void
PR_InitStringTable(void)
{
num_prstr = 0;
}
char *
PR_GetString(int num)

View File

@ -134,11 +134,7 @@ eval_t *GetEdictFieldValue(edict_t *ed, char *field);
/*
* PR Strings stuff
*/
#define MAX_PRSTR 2048
extern char *pr_strtbl[MAX_PRSTR];
extern int num_prstr;
void PR_InitStringTable();
char *PR_GetString(int num);
int PR_SetString(char *s);

View File

@ -998,13 +998,12 @@ PR_LoadProgs(void)
pr_strings_size = progs->strings_size;
if (progs->ofs_strings + pr_strings_size >= com_filesize)
SV_Error("progs.dat strings extend past end of file\n");
PR_InitStringTable();
pr_globaldefs = (ddef_t *)((byte *)progs + progs->ofs_globaldefs);
pr_fielddefs = (ddef_t *)((byte *)progs + progs->ofs_fielddefs);
pr_statements = (dstatement_t *)((byte *)progs + progs->ofs_statements);
num_prstr = 0;
pr_global_struct = (globalvars_t *)((byte *)progs + progs->ofs_globals);
pr_globals = (float *)pr_global_struct;

View File

@ -661,8 +661,15 @@ PR_ExecuteProgram(func_t fnum)
/*----------------------*/
char *pr_strtbl[MAX_PRSTR];
int num_prstr;
#define MAX_PRSTR 2048
static char *pr_strtbl[MAX_PRSTR];
static int num_prstr;
void
PR_InitStringTable(void)
{
num_prstr = 0;
}
char *
PR_GetString(int num)

View File

@ -141,11 +141,7 @@ eval_t *GetEdictFieldValue(edict_t *ed, char *field);
//
// PR Strings stuff
//
#define MAX_PRSTR 2048
extern char *pr_strtbl[MAX_PRSTR];
extern int num_prstr;
void PR_InitStringTable();
char *PR_GetString(int num);
int PR_SetString(char *s);