]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - prvm_edict.c
Implement CSQC_SIMPLE aka hud-only CSQC, improve compatibility
[xonotic/darkplaces.git] / prvm_edict.c
index 01847ab9db3d2a981bda238bb230e04f77d41503..0304c3ca353848ca3e406a4871c809501b102e5c 100644 (file)
@@ -1999,7 +1999,7 @@ PRVM_Prog_Load
 ===============
 */
 static void PRVM_UpdateBreakpoints(prvm_prog_t *prog);
-void PRVM_Prog_Load(prvm_prog_t *prog, const char * filename, unsigned char * data, fs_offset_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)
 {
        int i;
        dprograms_t *dprograms;
@@ -2496,10 +2496,9 @@ void PRVM_Prog_Load(prvm_prog_t *prog, const char * filename, unsigned char * da
                Mem_Free(dprograms);
        dprograms = NULL;
 
-       // check required functions
-       for(i=0 ; i < numrequiredfunc ; i++)
-               if(PRVM_ED_FindFunction(prog, required_func[i]) == 0)
-                       prog->error_cmd("%s: %s not found in %s",prog->name, required_func[i], filename);
+       prog->flag = 0;
+       // expected to not return (call prog->error_cmd) if checks fail
+       CheckRequiredFuncs(prog, filename);
 
        PRVM_LoadLNO(prog, filename);
 
@@ -2703,8 +2702,6 @@ fail:
 
        // set flags & mdef_ts in prog
 
-       prog->flag = 0;
-
        PRVM_FindOffsets(prog);
 
        prog->init_cmd(prog);