- prog->begin_increase_edicts = CL_VM_CB_BeginIncreaseEdicts;
- prog->end_increase_edicts = CL_VM_CB_EndIncreaseEdicts;
- prog->init_edict = CL_VM_CB_InitEdict;
- prog->free_edict = CL_VM_CB_FreeEdict;
- prog->count_edicts = CL_VM_CB_CountEdicts;
- prog->load_edict = CL_VM_CB_LoadEdict;
- prog->init_cmd = VM_CL_Cmd_Init;
- prog->reset_cmd = VM_CL_Cmd_Reset;
- prog->error_cmd = CL_VM_Error;
- prog->ExecuteProgram = CLVM_ExecuteProgram;
-
- PRVM_LoadProgs(csprogsfn, cl_numrequiredfunc, cl_required_func, CL_REQFIELDS, cl_reqfields, CL_REQGLOBALS, cl_reqglobals);
+
+ // all callbacks must be defined (pointers are not checked before calling)
+ prog->begin_increase_edicts = CLVM_begin_increase_edicts;
+ prog->end_increase_edicts = CLVM_end_increase_edicts;
+ prog->init_edict = CLVM_init_edict;
+ prog->free_edict = CLVM_free_edict;
+ prog->count_edicts = CLVM_count_edicts;
+ prog->load_edict = CLVM_load_edict;
+ prog->init_cmd = CLVM_init_cmd;
+ prog->reset_cmd = CLVM_reset_cmd;
+ prog->error_cmd = Host_Error;
+ prog->ExecuteProgram = CLVM_ExecuteProgram;
+
+ PRVM_Prog_Load(prog, csprogsfn, csprogsdata, csprogsdatasize, cl_numrequiredfunc, cl_required_func, CL_REQFIELDS, cl_reqfields, CL_REQGLOBALS, cl_reqglobals);