mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-30 00:10:40 +00:00
clean up some redundant progs functions (may be broken for a while)
This is an imperfect revision of history.
This commit is contained in:
parent
b46cff08aa
commit
f5bc90a53a
12 changed files with 245 additions and 252 deletions
|
@ -266,7 +266,7 @@ PF_Find (progs_t *pr)
|
|||
|
||||
e = P_EDICTNUM (pr, 0);
|
||||
f = P_INT (pr, 1);
|
||||
field_def = ED_FieldAtOfs (pr, f);
|
||||
field_def = PR_FieldAtOfs (pr, f);
|
||||
if (!field_def)
|
||||
PR_RunError (pr, "PF_Find: bad search field: %d", f);
|
||||
type = field_def->type & ~DEF_SAVEGLOBAL;
|
||||
|
|
|
@ -486,7 +486,7 @@ value_string (progs_t *pr, etype_t type, pr_type_t *val)
|
|||
}
|
||||
break;
|
||||
case ev_field:
|
||||
def = ED_FieldAtOfs (pr, val->integer_var);
|
||||
def = PR_FieldAtOfs (pr, val->integer_var);
|
||||
if (def)
|
||||
dsprintf (line, ".%s", PR_GetString (pr, def->s_name));
|
||||
else
|
||||
|
@ -508,7 +508,7 @@ value_string (progs_t *pr, etype_t type, pr_type_t *val)
|
|||
if (pr_debug->int_val && pr->debug)
|
||||
def = PR_Get_Local_Def (pr, ofs);
|
||||
if (!def)
|
||||
def = ED_GlobalAtOfs (pr, ofs);
|
||||
def = PR_GlobalAtOfs (pr, ofs);
|
||||
if (def && def->s_name)
|
||||
dsprintf (line, "&%s", PR_GetString (pr, def->s_name));
|
||||
else
|
||||
|
@ -545,7 +545,7 @@ def_string (progs_t *pr, int ofs, dstring_t *dstr)
|
|||
if (pr_debug->int_val && pr->debug)
|
||||
def = PR_Get_Local_Def (pr, ofs);
|
||||
if (!def)
|
||||
def = ED_GlobalAtOfs (pr, ofs);
|
||||
def = PR_GlobalAtOfs (pr, ofs);
|
||||
if (!def || !*(name = PR_GetString (pr, def->s_name)))
|
||||
dsprintf (dstr, "[$%x]", ofs);
|
||||
else
|
||||
|
|
|
@ -160,7 +160,7 @@ ED_PrintEdicts (progs_t *pr, const char *fieldval)
|
|||
int count;
|
||||
ddef_t *def;
|
||||
|
||||
def = ED_FindField(pr, "classname");
|
||||
def = PR_FindField(pr, "classname");
|
||||
|
||||
if (fieldval && fieldval[0] && def) {
|
||||
count = 0;
|
||||
|
@ -192,8 +192,8 @@ ED_Count (progs_t *pr)
|
|||
ddef_t *model_def;
|
||||
edict_t *ent;
|
||||
|
||||
solid_def = ED_FindField (pr, "solid");
|
||||
model_def = ED_FindField (pr, "model");
|
||||
solid_def = PR_FindField (pr, "solid");
|
||||
model_def = PR_FindField (pr, "model");
|
||||
active = models = solid = step = zombie = 0;
|
||||
for (i = 0; i < *(pr)->num_edicts; i++) {
|
||||
ent = EDICT_NUM (pr, i);
|
||||
|
@ -217,7 +217,7 @@ ED_Count (progs_t *pr)
|
|||
}
|
||||
|
||||
edict_t *
|
||||
EDICT_NUM (progs_t *pr, int n)
|
||||
ED_EdictNum (progs_t *pr, int n)
|
||||
{
|
||||
int offs = n * pr->pr_edict_size;
|
||||
if (offs < 0 || n >= pr->pr_edictareasize)
|
||||
|
@ -227,20 +227,7 @@ EDICT_NUM (progs_t *pr, int n)
|
|||
}
|
||||
|
||||
int
|
||||
NUM_FOR_BAD_EDICT (progs_t *pr, edict_t *e)
|
||||
{
|
||||
int b;
|
||||
|
||||
b = (byte *) e - (byte *) * (pr)->edicts;
|
||||
|
||||
if (pr->pr_edict_size)
|
||||
b /= pr->pr_edict_size;
|
||||
|
||||
return b;
|
||||
}
|
||||
|
||||
int
|
||||
NUM_FOR_EDICT (progs_t *pr, edict_t *e)
|
||||
ED_NumForEdict (progs_t *pr, edict_t *e)
|
||||
{
|
||||
int b;
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ PR_UglyValueString (progs_t *pr, etype_t type, pr_type_t *val)
|
|||
snprintf (line, sizeof (line), "%s", PR_GetString (pr, f->s_name));
|
||||
break;
|
||||
case ev_field:
|
||||
def = ED_FieldAtOfs (pr, val->integer_var);
|
||||
def = PR_FieldAtOfs (pr, val->integer_var);
|
||||
snprintf (line, sizeof (line), "%s",
|
||||
PR_GetString (pr, def->s_name));
|
||||
break;
|
||||
|
@ -258,7 +258,7 @@ ED_ParseEpair (progs_t *pr, pr_type_t *base, ddef_t *key, const char *s)
|
|||
break;
|
||||
|
||||
case ev_field:
|
||||
def = ED_FindField (pr, s);
|
||||
def = PR_FindField (pr, s);
|
||||
if (!def) {
|
||||
Sys_Printf ("Can't find field %s\n", s);
|
||||
return false;
|
||||
|
@ -267,7 +267,7 @@ ED_ParseEpair (progs_t *pr, pr_type_t *base, ddef_t *key, const char *s)
|
|||
break;
|
||||
|
||||
case ev_func:
|
||||
func = ED_FindFunction (pr, s);
|
||||
func = PR_FindFunction (pr, s);
|
||||
if (!func) {
|
||||
Sys_Printf ("Can't find function %s\n", s);
|
||||
return false;
|
||||
|
@ -346,7 +346,7 @@ ED_ParseEdict (progs_t *pr, const char *data, edict_t *ent)
|
|||
if (keyname->str[0] == '_')
|
||||
continue;
|
||||
|
||||
key = ED_FindField (pr, keyname->str);
|
||||
key = PR_FindField (pr, keyname->str);
|
||||
if (!key) {
|
||||
if (!pr->parse_field
|
||||
|| !pr->parse_field (pr, keyname->str, com_token)) {
|
||||
|
@ -357,9 +357,9 @@ ED_ParseEdict (progs_t *pr, const char *data, edict_t *ent)
|
|||
int ret;
|
||||
|
||||
if (anglehack) {
|
||||
ret = ED_ParseEpair (pr, ent->v, key, va ("0 %s 0", com_token));
|
||||
ret = ED_ParseEpair (pr, ent->v, key, va ("0 %s 0", token));
|
||||
} else {
|
||||
ret = ED_ParseEpair (pr, ent->v, key, com_token);
|
||||
ret = ED_ParseEpair (pr, ent->v, key, token);
|
||||
}
|
||||
if (!ret)
|
||||
PR_Error (pr, "ED_ParseEdict: parse error");
|
||||
|
@ -374,7 +374,7 @@ ED_ParseEdict (progs_t *pr, const char *data, edict_t *ent)
|
|||
}
|
||||
|
||||
void
|
||||
ED_ParseGlobals (progs_t *pr, const char *data)
|
||||
ED_ParseGlobals (progs_t *pr, script_t *script)
|
||||
{
|
||||
dstring_t *keyname = dstring_new ();
|
||||
ddef_t *key;
|
||||
|
@ -454,10 +454,8 @@ ED_ParseOld (progs_t *pr, const char *data)
|
|||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// immediately call spawn function
|
||||
//
|
||||
def = ED_FindField (pr, "classname");
|
||||
def = PR_FindField (pr, "classname");
|
||||
if (!def) {
|
||||
Sys_Printf ("No classname for:\n");
|
||||
ED_Print (pr, ent);
|
||||
|
@ -467,7 +465,7 @@ ED_ParseOld (progs_t *pr, const char *data)
|
|||
classname = &ent->v[def->ofs];
|
||||
|
||||
// look for the spawn function
|
||||
func = ED_FindFunction (pr, PR_GetString (pr, classname->string_var));
|
||||
func = PR_FindFunction (pr, PR_GetString (pr, classname->string_var));
|
||||
if (!func) {
|
||||
Sys_Printf ("No spawn function for:\n");
|
||||
ED_Print (pr, ent);
|
||||
|
|
|
@ -55,11 +55,8 @@ static __attribute__ ((unused)) const char rcsid[] =
|
|||
#include "compat.h"
|
||||
|
||||
|
||||
/*
|
||||
ED_GlobalAtOfs
|
||||
*/
|
||||
ddef_t *
|
||||
ED_GlobalAtOfs (progs_t * pr, int ofs)
|
||||
ddef_t *
|
||||
PR_GlobalAtOfs (progs_t * pr, int ofs)
|
||||
{
|
||||
ddef_t *def;
|
||||
unsigned int i;
|
||||
|
@ -72,11 +69,8 @@ ED_GlobalAtOfs (progs_t * pr, int ofs)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
ED_FieldAtOfs
|
||||
*/
|
||||
ddef_t *
|
||||
ED_FieldAtOfs (progs_t * pr, int ofs)
|
||||
ddef_t *
|
||||
PR_FieldAtOfs (progs_t * pr, int ofs)
|
||||
{
|
||||
ddef_t *def;
|
||||
unsigned int i;
|
||||
|
@ -89,76 +83,30 @@ ED_FieldAtOfs (progs_t * pr, int ofs)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
ED_FindField
|
||||
*/
|
||||
ddef_t *
|
||||
ED_FindField (progs_t * pr, const char *name)
|
||||
ddef_t *
|
||||
PR_FindField (progs_t * pr, const char *name)
|
||||
{
|
||||
return Hash_Find (pr->field_hash, name);
|
||||
}
|
||||
|
||||
int
|
||||
ED_GetFieldIndex (progs_t *pr, const char *name)
|
||||
{
|
||||
ddef_t *def;
|
||||
|
||||
def = ED_FindField (pr, name);
|
||||
if (def)
|
||||
return def->ofs;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
PR_FindGlobal
|
||||
*/
|
||||
ddef_t *
|
||||
ddef_t *
|
||||
PR_FindGlobal (progs_t * pr, const char *name)
|
||||
{
|
||||
return Hash_Find (pr->global_hash, name);
|
||||
}
|
||||
|
||||
pr_type_t *
|
||||
PR_GetGlobalPointer (progs_t *pr, const char *name)
|
||||
{
|
||||
ddef_t *def;
|
||||
|
||||
def = PR_FindGlobal (pr, name);
|
||||
if (def)
|
||||
return &pr->pr_globals[def->ofs];
|
||||
PR_Error (pr, "undefined global %s", name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
func_t
|
||||
PR_GetFunctionIndex (progs_t *pr, const char *name)
|
||||
{
|
||||
dfunction_t *func = ED_FindFunction (pr, name);
|
||||
if (func)
|
||||
return func - pr->pr_functions;
|
||||
PR_Error (pr, "undefined function %s", name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
PR_GetFieldOffset (progs_t *pr, const char *name)
|
||||
{
|
||||
ddef_t *def = ED_FindField (pr, name);
|
||||
if (def)
|
||||
return def->ofs;
|
||||
PR_Error (pr, "undefined field %s", name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
ED_FindFunction
|
||||
*/
|
||||
dfunction_t *
|
||||
ED_FindFunction (progs_t * pr, const char *name)
|
||||
PR_FindFunction (progs_t * pr, const char *name)
|
||||
{
|
||||
return Hash_Find (pr->function_hash, name);
|
||||
}
|
||||
|
||||
void
|
||||
PR_Undefined (progs_t *pr, const char *type, const char *name)
|
||||
{
|
||||
PR_Error (pr, "undefined %s %s", type, name);
|
||||
}
|
||||
|
||||
int
|
||||
PR_ResolveGlobals (progs_t *pr)
|
||||
{
|
||||
|
@ -200,11 +148,14 @@ PR_ResolveGlobals (progs_t *pr)
|
|||
pr->globals.self = &G_INT (pr, def->ofs);
|
||||
}
|
||||
if (pr->fields.nextthink == -1)
|
||||
pr->fields.nextthink = ED_GetFieldIndex (pr, sym = "nextthink");
|
||||
if ((def = PR_FindField (pr, "nextthink")))
|
||||
pr->fields.nextthink = def->ofs;
|
||||
if (pr->fields.frame == -1)
|
||||
pr->fields.frame = ED_GetFieldIndex (pr, sym = "frame");
|
||||
if ((def = PR_FindField (pr, "frame")))
|
||||
pr->fields.frame = def->ofs;
|
||||
if (pr->fields.think == -1)
|
||||
pr->fields.think = ED_GetFieldIndex (pr, sym = "think");
|
||||
if ((def = PR_FindField (pr, "think")))
|
||||
pr->fields.think = def->ofs;
|
||||
return 1;
|
||||
error:
|
||||
Sys_Printf ("%s: undefined symbol: %s\n", pr->progs_name, sym);
|
||||
|
@ -215,7 +166,7 @@ int
|
|||
PR_AccessField (progs_t *pr, const char *name, etype_t type,
|
||||
const char *file, int line)
|
||||
{
|
||||
ddef_t *def = ED_FindField (pr, name);
|
||||
ddef_t *def = PR_FindField (pr, name);
|
||||
|
||||
if (!def)
|
||||
PR_Error (pr, "undefined field %s accessed at %s:%d", name, file, line);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue