// it belongs to prvm.
typedef struct prvm_edict_private_s
{
- qboolean free;
+ qbool free;
double freetime; // realtime of last change to "free" (i.e. also set on allocation)
int mark; // used during leaktest (0 = unref, >0 = referenced); special values during server physics:
#define PRVM_EDICT_MARK_WAIT_FOR_SETORIGIN -1
// ... } server_edict_private_t;
// or:
// typedef struct server_edict_private_s {
- // qboolean free;
+ // qbool free;
// float freetime;
// vec3_t moved_from;
// vec3_t moved_fromangles;
int functions_covered;
char *strings;
int stringssize;
- ddef_t *fielddefs;
- ddef_t *globaldefs;
+ mdef_t *fielddefs;
+ mdef_t *globaldefs;
mstatement_t *statements;
int entityfields; // number of vec_t fields in progs (some variables are 3)
int entityfieldsarea; // LadyHavoc: equal to max_edicts * entityfields (for bounds checking)
// note that in FTEQW polygonbegin with 2 args is handled very differently,
// where the behavior is always 3D unless DRAWFLAG_2D is passed, but
// DRAWFLAG_2D conflicts with our DRAWFLAG_SCREEN.
- qboolean polygonbegin_guess2d;
+ qbool polygonbegin_guess2d;
// the texture name and drawflags provided to polygonbegin
char polygonbegin_texname[MAX_QPATH];
int polygonbegin_drawflags;
// allow writing to world entity fields, this is set by server init and
// cleared before first server frame
- qboolean allowworldwrites;
+ qbool allowworldwrites;
// name of the prog, e.g. "Server", "Client" or "Menu" (used for text output)
const char *name; // [INIT]
const char **extensionstring; // [INIT]
- qboolean loadintoworld; // [INIT]
+ qbool loadintoworld; // [INIT]
// used to indicate whether a prog is loaded
- qboolean loaded;
- qboolean leaktest_active;
+ qbool loaded;
+ qbool leaktest_active;
// translation buffer (only needs to be freed on unloading progs, type is private to prvm_edict.c)
void *po;
//============================================================================
- ddef_t *self; // if self != 0 then there is a global self
+ mdef_t *self; // if self != 0 then there is a global self
//============================================================================
// function pointers
void (*count_edicts)(struct prvm_prog_s *prog); // [INIT] used by PRVM_ED_Count_f
- qboolean (*load_edict)(struct prvm_prog_s *prog, prvm_edict_t *ent); // [INIT] used by PRVM_ED_LoadFromFile
+ qbool (*load_edict)(struct prvm_prog_s *prog, prvm_edict_t *ent); // [INIT] used by PRVM_ED_LoadFromFile
void (*init_cmd)(struct prvm_prog_s *prog); // [INIT] used by PRVM_InitProg
void (*reset_cmd)(struct prvm_prog_s *prog); // [INIT] used by PRVM_ResetProg
const char *PRVM_AllocationOrigin(prvm_prog_t *prog);
void PRVM_GarbageCollection(prvm_prog_t *prog);
-ddef_t *PRVM_ED_FindField(prvm_prog_t *prog, const char *name);
-ddef_t *PRVM_ED_FindGlobal(prvm_prog_t *prog, const char *name);
+mdef_t *PRVM_ED_FindField(prvm_prog_t *prog, const char *name);
+mdef_t *PRVM_ED_FindGlobal(prvm_prog_t *prog, const char *name);
prvm_eval_t *PRVM_ED_FindGlobalEval(prvm_prog_t *prog, const char *name);
mfunction_t *PRVM_ED_FindFunction(prvm_prog_t *prog, const char *name);
void PRVM_MEM_IncreaseEdicts(prvm_prog_t *prog);
-qboolean PRVM_ED_CanAlloc(prvm_prog_t *prog, prvm_edict_t *e);
+qbool PRVM_ED_CanAlloc(prvm_prog_t *prog, prvm_edict_t *e);
prvm_edict_t *PRVM_ED_Alloc(prvm_prog_t *prog);
void PRVM_ED_Free(prvm_prog_t *prog, prvm_edict_t *ed);
void PRVM_ED_ClearEdict(prvm_prog_t *prog, prvm_edict_t *e);
void PRVM_ED_WriteGlobals(prvm_prog_t *prog, qfile_t *f);
void PRVM_ED_ParseGlobals(prvm_prog_t *prog, const char *data);
+void PRVM_ED_CallPrespawnFunction(prvm_prog_t *prog, prvm_edict_t *ent);
+qbool PRVM_ED_CallSpawnFunction(prvm_prog_t *prog, prvm_edict_t *ent, const char *data, const char *start);
+void PRVM_ED_CallPostspawnFunction (prvm_prog_t *prog, prvm_edict_t *ent);
+
void PRVM_ED_LoadFromFile(prvm_prog_t *prog, const char *data);
unsigned int PRVM_EDICT_NUM_ERROR(prvm_prog_t *prog, unsigned int n, const char *filename, int fileline);
int PRVM_AllocString(prvm_prog_t *prog, size_t bufferlength, char **pointer);
void PRVM_FreeString(prvm_prog_t *prog, int num);
-ddef_t *PRVM_ED_FieldAtOfs(prvm_prog_t *prog, int ofs);
-qboolean PRVM_ED_ParseEpair(prvm_prog_t *prog, prvm_edict_t *ent, ddef_t *key, const char *s, qboolean parsebackslash);
+mdef_t *PRVM_ED_FieldAtOfs(prvm_prog_t *prog, unsigned int ofs);
+qbool PRVM_ED_ParseEpair(prvm_prog_t *prog, prvm_edict_t *ent, mdef_t *key, const char *s, qbool parsebackslash);
char *PRVM_UglyValueString(prvm_prog_t *prog, etype_t type, prvm_eval_t *val, char *line, size_t linelength);
char *PRVM_GlobalString(prvm_prog_t *prog, int ofs, char *line, size_t linelength);
char *PRVM_GlobalStringNoContents(prvm_prog_t *prog, int ofs, char *line, size_t linelength);