]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - progsvm.h
added DP_ENT_GLOWMOD extension, like DP_ENT_COLORMOD but alters glow
[xonotic/darkplaces.git] / progsvm.h
index 4a13dd56586c5b9a3867b7bf6597d2c8c06c612b..97660c2853bc6ec08196c5ee87789a7930416611 100644 (file)
--- a/progsvm.h
+++ b/progsvm.h
@@ -40,6 +40,8 @@ typedef struct prvm_stack_s
 {
        int                             s;
        mfunction_t             *f;
+       double                  profile_acc;
+       double                  builtinsprofile_acc;
 } prvm_stack_t;
 
 
@@ -157,7 +159,9 @@ typedef struct prvm_prog_fieldoffsets_s
        int buttonuse; // ssqc
        int chain; // common - used by find builtins
        int classname; // common
+       int clientcamera; // ssqc
        int clientcolors; // ssqc
+       int clientstatus; // ssqc
        int color; // ssqc
        int colormod; // ssqc / csqc
        int contentstransition; // ssqc
@@ -179,18 +183,24 @@ typedef struct prvm_prog_fieldoffsets_s
        int frame1time; // csqc
        int frame2; // csqc
        int frame2time; // csqc
-       int shadertime; // csqc
+       int frame3; // csqc
+       int frame3time; // csqc
+       int frame4; // csqc
+       int frame4time; // csqc
        int frame; // common - used by OP_STATE
        int fullbright; // ssqc - Nehahra support
        int glow_color; // ssqc
        int glow_size; // ssqc
        int glow_trail; // ssqc
+       int glowmod; // ssqc / csqc
        int gravity; // ssqc
        int groundentity; // ssqc / csqc
        int hull; // ssqc / csqc
        int ideal_yaw; // ssqc / csqc
        int idealpitch; // ssqc / csqc
        int items2; // ssqc
+       int lerpfrac3; // csqc
+       int lerpfrac4; // csqc
        int lerpfrac; // csqc
        int light_lev; // ssqc
        int message; // csqc
@@ -211,6 +221,7 @@ typedef struct prvm_prog_fieldoffsets_s
        int renderflags; // csqc
        int rendermode; // ssqc - HalfLife support
        int scale; // ssqc / csqc
+       int shadertime; // csqc
        int style; // ssqc
        int tag_entity; // ssqc / csqc
        int tag_index; // ssqc / csqc
@@ -218,8 +229,8 @@ typedef struct prvm_prog_fieldoffsets_s
        int viewmodelforclient; // ssqc
        int viewzoom; // ssqc
        int yaw_speed; // ssqc / csqc
-       int clientcamera; // ssqc
-       int clientstatus; // ssqc
+       int bouncefactor; // ssqc
+       int bouncestop; // ssqc
 }
 prvm_prog_fieldoffsets_t;
 
@@ -461,6 +472,8 @@ typedef struct prvm_prog_s
        void                            (*reset_cmd)(void); // [INIT] used by PRVM_ResetProg
 
        void                            (*error_cmd)(const char *format, ...) DP_FUNC_PRINTF(1); // [INIT]
+
+       void                            (*ExecuteProgram)(func_t fnum, const char *errormessage); // pointer to one of the *VM_ExecuteProgram functions
 } prvm_prog_t;
 
 extern prvm_prog_t * prog;
@@ -501,7 +514,10 @@ void VM_Cmd_Reset(void);
 
 void PRVM_Init (void);
 
-void PRVM_ExecuteProgram (func_t fnum, const char *errormessage);
+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);
+#define PRVM_ExecuteProgram prog->ExecuteProgram
 
 #define PRVM_Alloc(buffersize) _PRVM_Alloc(buffersize, __FILE__, __LINE__)
 #define PRVM_Free(buffer) _PRVM_Free(buffer, __FILE__, __LINE__)
@@ -510,8 +526,9 @@ void *_PRVM_Alloc (size_t buffersize, const char *filename, int fileline);
 void _PRVM_Free (void *buffer, const char *filename, int fileline);
 void _PRVM_FreeAll (const char *filename, int fileline);
 
-void PRVM_Profile (int maxfunctions, int mininstructions);
+void PRVM_Profile (int maxfunctions, int mininstructions, int sortby);
 void PRVM_Profile_f (void);
+void PRVM_ChildProfile_f (void);
 void PRVM_CallProfile_f (void);
 void PRVM_PrintFunction_f (void);
 
@@ -519,7 +536,7 @@ void PRVM_PrintState(void);
 void PRVM_CrashAll (void);
 void PRVM_Crash (void);
 void PRVM_ShortStackTrace(char *buf, size_t bufsize);
-const char *PRVM_AllocationOrigin();
+const char *PRVM_AllocationOrigin(void);
 
 ddef_t *PRVM_ED_FindField(const char *name);
 ddef_t *PRVM_ED_FindGlobal(const char *name);
@@ -533,6 +550,7 @@ func_t PRVM_ED_FindFunctionOffset(const char *name);
 
 void PRVM_MEM_IncreaseEdicts(void);
 
+qboolean PRVM_ED_CanAlloc(prvm_edict_t *e);
 prvm_edict_t *PRVM_ED_Alloc (void);
 void PRVM_ED_Free (prvm_edict_t *ed);
 void PRVM_ED_ClearEdict (prvm_edict_t *e);