]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - progsvm.h
added Mem_Memalign function
[xonotic/darkplaces.git] / progsvm.h
index 93b450591083b13a76459f02392ba968680c3469..eb8306fb47f4d1e424292071f873d780cbe35b34 100644 (file)
--- a/progsvm.h
+++ b/progsvm.h
@@ -192,6 +192,7 @@ typedef struct prvm_prog_fieldoffsets_s
        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
@@ -221,6 +222,7 @@ typedef struct prvm_prog_fieldoffsets_s
        int rendermode; // ssqc - HalfLife support
        int scale; // ssqc / csqc
        int shadertime; // csqc
+       int skeletonindex; // csqc / ssqc FTE_CSQC_SKELETONOBJECTS / DP_SKELETONOBJECTS
        int style; // ssqc
        int tag_entity; // ssqc / csqc
        int tag_index; // ssqc / csqc
@@ -230,6 +232,25 @@ typedef struct prvm_prog_fieldoffsets_s
        int yaw_speed; // ssqc / csqc
        int bouncefactor; // ssqc
        int bouncestop; // ssqc
+
+       int solid; // ssqc / csqc (physics)
+       int movetype; // ssqc / csqc (physics)
+       int modelindex; // ssqc / csqc (physics)
+       int mins; // ssqc / csqc (physics)
+       int maxs; // ssqc / csqc (physics)
+       int mass; // ssqc / csqc (physics)
+       int origin; // ssqc / csqc (physics)
+       int velocity; // ssqc / csqc (physics)
+       //int axis_forward; // ssqc / csqc (physics)
+       //int axis_left; // ssqc / csqc (physics)
+       //int axis_up; // ssqc / csqc (physics)
+       //int spinvelocity; // ssqc / csqc (physics)
+       //int angles; // ssqc / csqc (physics)
+       int avelocity; // ssqc / csqc (physics)
+       int jointtype; // ssqc / csqc (physics)
+       int enemy; // ssqc / csqc (physics)
+       int aiment; // ssqc / csqc (physics)
+       int movedir; // ssqc / csqc (physics)
 }
 prvm_prog_fieldoffsets_t;
 
@@ -277,6 +298,7 @@ typedef struct prvm_prog_globaloffsets_s
        int gettaginfo_forward; // ssqc / csqc
        int gettaginfo_right; // ssqc / csqc
        int gettaginfo_up; // ssqc / csqc
+       int transparent_offset; // csqc
 }
 prvm_prog_globaloffsets_t;
 
@@ -401,6 +423,7 @@ typedef struct prvm_prog_s
        fssearch_t                      *opensearches[PRVM_MAX_OPENSEARCHES];
        const char *         opensearches_origin[PRVM_MAX_OPENSEARCHES];
        struct clgecko_s                *opengeckoinstances[PRVM_MAX_GECKOINSTANCES];
+       skeleton_t                      *skeletons[MAX_EDICTS];
 
        // copies of some vars that were former read from sv
        int                                     num_edicts;
@@ -471,6 +494,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;
@@ -511,7 +536,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__)
@@ -653,4 +681,9 @@ void VM_Warning(const char *fmt, ...) DP_FUNC_PRINTF(1);
 // TODO: fill in the params
 //void PRVM_Create();
 
+void VM_GenerateFrameGroupBlend(framegroupblend_t *framegroupblend, const prvm_edict_t *ed);
+void VM_FrameBlendFromFrameGroupBlend(frameblend_t *frameblend, const framegroupblend_t *framegroupblend, const dp_model_t *model);
+void VM_UpdateEdictSkeleton(prvm_edict_t *ed, const dp_model_t *edmodel, const frameblend_t *frameblend);
+void VM_RemoveEdictSkeleton(prvm_edict_t *ed);
+
 #endif