]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - progsvm.h
physics: fix and refactor unsticking
[xonotic/darkplaces.git] / progsvm.h
index 92ead5dc772a8393f7a7470fee8cec35be11a78c..32632f30f9799e100fe30abb693f4da95e5b0db0 100644 (file)
--- a/progsvm.h
+++ b/progsvm.h
@@ -233,7 +233,9 @@ extern prvm_eval_t prvm_badvalue;
 #endif
 
 //============================================================================
-#define PRVM_OP_STATE          1
+// prog->flag
+#define PRVM_OP_STATE       1
+#define PRVM_CSQC_SIMPLE    2
 
 #ifdef DP_SMALLMEMORY
 #define        PRVM_MAX_STACK_DEPTH            128
@@ -697,7 +699,7 @@ typedef struct prvm_prog_s
        const char                      *name; // [INIT]
 
        // flag - used to store general flags like PRVM_GE_SELF, etc.
-       int                             flag;
+       unsigned                        flag;
 
        const char                      **extensionstring; // [INIT]
 
@@ -717,7 +719,7 @@ typedef struct prvm_prog_s
 
 //     prvm_builtin_mem_t  *mem_list;
 
-// now passed as parameter of PRVM_LoadProgs
+// now passed as parameter of PRVM_Prog_Load
 //     char                            **required_func;
 //     int                                     numrequiredfunc;
 
@@ -822,7 +824,7 @@ void PRVM_CallProfile_f(struct cmd_state_s *cmd);
 void PRVM_PrintFunction_f(struct cmd_state_s *cmd);
 
 void PRVM_PrintState(prvm_prog_t *prog, int stack_index);
-void PRVM_Crash(prvm_prog_t *prog);
+void PRVM_Crash(void);
 void PRVM_ShortStackTrace(prvm_prog_t *prog, char *buf, size_t bufsize);
 const char *PRVM_AllocationOrigin(prvm_prog_t *prog);
 void PRVM_GarbageCollection(prvm_prog_t *prog);
@@ -901,7 +903,8 @@ void PRVM_ED_PrintNum (prvm_prog_t *prog, int ent, const char *wildcard_fieldnam
 const char *PRVM_GetString(prvm_prog_t *prog, int num);
 int PRVM_SetEngineString(prvm_prog_t *prog, const char *s);
 const char *PRVM_ChangeEngineString(prvm_prog_t *prog, int i, const char *s);
-int PRVM_SetTempString(prvm_prog_t *prog, const char *s);
+/// Takes an strlen (not a buffer size).
+int PRVM_SetTempString(prvm_prog_t *prog, const char *s, size_t slen);
 int PRVM_AllocString(prvm_prog_t *prog, size_t bufferlength, char **pointer);
 void PRVM_FreeString(prvm_prog_t *prog, int num);
 
@@ -921,7 +924,7 @@ Load a program with LoadProgs
 */
 // Load expects to be called right after Reset
 void PRVM_Prog_Init(prvm_prog_t *prog, struct cmd_state_s *cmd);
-void PRVM_Prog_Load(prvm_prog_t *prog, const char *filename, unsigned char *data, int64_t size, int numrequiredfunc, const char **required_func, int numrequiredfields, prvm_required_field_t *required_field, int numrequiredglobals, prvm_required_field_t *required_global);
+void PRVM_Prog_Load(prvm_prog_t *prog, const char *filename, unsigned char *data, fs_offset_t size, void CheckRequiredFuncs(prvm_prog_t *prog, const char *filename), int numrequiredfields, prvm_required_field_t *required_field, int numrequiredglobals, prvm_required_field_t *required_global);
 void PRVM_Prog_Reset(prvm_prog_t *prog);
 
 void PRVM_StackTrace(prvm_prog_t *prog);