X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=progsvm.h;h=c977d7ab6b05e097fef515c757ebb4f7f54a8d86;hb=f499e85f5a0f00c4bde11a4e2023d71d40c17055;hp=e389f0f0516203f212daed08234b817db9c6eed3;hpb=d191d2aae518b7fe21132a6c159554a350966978;p=xonotic%2Fdarkplaces.git diff --git a/progsvm.h b/progsvm.h index e389f0f0..c977d7ab 100644 --- a/progsvm.h +++ b/progsvm.h @@ -261,6 +261,8 @@ typedef struct prvm_prog_s int edict_size; // in bytes int edictareasize; // LordHavoc: in bytes (for bound checking) + int *statement_linenums; // NULL if not available + union { float *generic; globalvars_t *server; @@ -268,7 +270,12 @@ typedef struct prvm_prog_s int maxknownstrings; int numknownstrings; + // this is updated whenever a string is removed or added + // (simple optimization of the free string search) + int firstfreeknownstring; const char **knownstrings; + qbyte *knownstrings_freeable; + const char ***stringshash; // all memory allocations related to this vm_prog (code, edicts, strings) mempool_t *progs_mempool; // [INIT] @@ -321,6 +328,10 @@ typedef struct prvm_prog_s float *time; float _time; + // allow writing to world entity fields, this is set by server init and + // cleared before first server frame + qboolean allowworldwrites; + // name of the prog, e.g. "Server", "Client" or "Menu" (used for text output) char *name; // [INIT] @@ -477,9 +488,8 @@ void PRVM_ED_PrintEdicts_f (void); void PRVM_ED_PrintNum (int ent); const char *PRVM_GetString(int num); -int PRVM_SetQCString(const char *s); int PRVM_SetEngineString(const char *s); -int PRVM_AllocString(int bufferlength, char **pointer); +int PRVM_AllocString(size_t bufferlength, char **pointer); void PRVM_FreeString(int num); //============================================================================