]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - progsvm.h
rename VM_hash to VM_crc16, and the extension to DP_QC_CRC16. That way, it is specifi...
[xonotic/darkplaces.git] / progsvm.h
index 9ec87682397ec7c1630b375ef0f96c54a463d7fc..8b412bca46dce777fd92476068d0fdaac2bd7e60 100644 (file)
--- a/progsvm.h
+++ b/progsvm.h
@@ -33,6 +33,9 @@ The code uses void pointers instead.
 #include "progdefs.h"                  // generated by program cdefs
 #include "clprogdefs.h"                        // generated by program cdefs
 
+// forward declaration of clgecko_t
+struct clgecko_s;
+
 typedef struct prvm_stack_s
 {
        int                             s;
@@ -114,6 +117,7 @@ typedef struct prvm_edict_s
 
 #define PRVM_MAX_OPENFILES 256
 #define PRVM_MAX_OPENSEARCHES 128
+#define PRVM_MAX_GECKOINSTANCES 32
 
 typedef void (*prvm_builtin_t) (void);
 
@@ -209,6 +213,7 @@ typedef struct prvm_prog_fieldoffsets_s
        int viewmodelforclient; // ssqc
        int viewzoom; // ssqc
        int yaw_speed; // ssqc / csqc
+       int clientcamera; // ssqc
 }
 prvm_prog_fieldoffsets_t;
 
@@ -282,6 +287,14 @@ typedef struct prvm_prog_funcoffsets_s
 }
 prvm_prog_funcoffsets_t;
 
+typedef struct prvm_stringbuffer_s
+{
+       int max_strings;
+       int num_strings;
+       char **strings;
+}
+prvm_stringbuffer_t;
+
 // [INIT] variables flagged with this token can be initialized by 'you'
 // NOTE: external code has to create and free the mempools but everything else is done by prvm !
 typedef struct prvm_prog_s
@@ -316,6 +329,8 @@ typedef struct prvm_prog_s
        unsigned char           *knownstrings_freeable;
        const char                      ***stringshash;
 
+       memexpandablearray_t    stringbuffersarray;
+
        // all memory allocations related to this vm_prog (code, edicts, strings)
        mempool_t                       *progs_mempool; // [INIT]
 
@@ -345,6 +360,7 @@ typedef struct prvm_prog_s
 
        qfile_t                         *openfiles[PRVM_MAX_OPENFILES];
        fssearch_t                      *opensearches[PRVM_MAX_OPENSEARCHES];
+       struct clgecko_s                *opengeckoinstances[PRVM_MAX_GECKOINSTANCES];
 
        // copies of some vars that were former read from sv
        int                                     num_edicts;