X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=progsvm.h;h=dc7f192a4a5f3a581ca3dadceefefb2a04476909;hb=7c005bf5b1582ad7e401f71291539d8ad6b2c734;hp=64a54890a18ef311f3f32ec8248a084e034cc87c;hpb=9e9c32fdbd5d5515a78960a279316347bd8a6434;p=xonotic%2Fdarkplaces.git diff --git a/progsvm.h b/progsvm.h index 64a54890..dc7f192a 100644 --- a/progsvm.h +++ b/progsvm.h @@ -33,6 +33,10 @@ The code uses void pointers instead. #include "progdefs.h" // generated by program cdefs #include "clprogdefs.h" // generated by program cdefs +#ifndef DP_SMALLMEMORY +#define PROFILING +#endif + // forward declaration of clgecko_t struct clgecko_s; @@ -116,12 +120,21 @@ typedef struct prvm_edict_s //============================================================================ #define PRVM_OP_STATE 1 +#ifdef DP_SMALLMEMORY +#define PRVM_MAX_STACK_DEPTH 128 +#define PRVM_LOCALSTACK_SIZE 2048 + +#define PRVM_MAX_OPENFILES 16 +#define PRVM_MAX_OPENSEARCHES 8 +#define PRVM_MAX_GECKOINSTANCES 1 +#else #define PRVM_MAX_STACK_DEPTH 1024 #define PRVM_LOCALSTACK_SIZE 16384 #define PRVM_MAX_OPENFILES 256 #define PRVM_MAX_OPENSEARCHES 128 #define PRVM_MAX_GECKOINSTANCES 32 +#endif typedef void (*prvm_builtin_t) (void); @@ -253,6 +266,8 @@ typedef struct prvm_prog_fieldoffsets_s int enemy; // ssqc / csqc (physics) int aiment; // ssqc / csqc (physics) int movedir; // ssqc / csqc (physics) + + int camera_transform; // csqc (warpzones) } prvm_prog_fieldoffsets_t; @@ -289,6 +304,7 @@ typedef struct prvm_prog_globaloffsets_s int dmg_origin; // csqc int sb_showscores; // csqc int drawfont; // csqc / menu + int drawfontscale; // csqc / menu int require_spawnfunc_prefix; // ssqc int worldstatus; // ssqc int servertime; // csqc @@ -346,12 +362,16 @@ typedef struct prvm_prog_funcoffsets_s } prvm_prog_funcoffsets_t; +// stringbuffer flags +#define STRINGBUFFER_SAVED 1 // saved in savegames + typedef struct prvm_stringbuffer_s { int max_strings; int num_strings; char **strings; const char *origin; + unsigned char flags; } prvm_stringbuffer_t; @@ -542,9 +562,15 @@ void VM_Cmd_Reset(void); void PRVM_Init (void); +#ifdef PROFILING void MVM_ExecuteProgram (func_t fnum, const char *errormessage); void CLVM_ExecuteProgram (func_t fnum, const char *errormessage); void SVVM_ExecuteProgram (func_t fnum, const char *errormessage); +#else +#define MVM_ExecuteProgram SVVM_ExecuteProgram +#define CLVM_ExecuteProgram SVVM_ExecuteProgram +void SVVM_ExecuteProgram (func_t fnum, const char *errormessage); +#endif #define PRVM_ExecuteProgram prog->ExecuteProgram #define PRVM_Alloc(buffersize) _PRVM_Alloc(buffersize, __FILE__, __LINE__)