]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
-LoadProgs now expects to be called after InitProg, so it wont do any
authorblack <black@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 25 May 2005 09:07:38 +0000 (09:07 +0000)
committerblack <black@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 25 May 2005 09:07:38 +0000 (09:07 +0000)
 unnecessary clean-ups.

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@5340 d7cf8633-e32d-0410-b094-e92efae38249

progsvm.h
prvm_edict.c

index 4f51861bf7941f6656da980a52e9c41c2bade6b9..d702a7dc2de1519ca47fd25d8df48cca91b43715 100644 (file)
--- a/progsvm.h
+++ b/progsvm.h
@@ -241,7 +241,7 @@ typedef void (*prvm_builtin_t) (void);
 
 // [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 vm_prog_s
+typedef struct prvm_prog_s
 {
        dprograms_t                     *progs;
        mfunction_t                     *functions;
@@ -386,7 +386,6 @@ void VM_Cmd_Reset(void);
 void PRVM_Init (void);
 
 void PRVM_ExecuteProgram (func_t fnum, const char *errormessage);
-void PRVM_LoadProgs (const char *filename, int numrequiredfunc, char **required_func);
 
 #define PRVM_Alloc(buffersize) _PRVM_Alloc(buffersize, __FILE__, __LINE__)
 #define PRVM_Free(buffer) _PRVM_Free(buffer, __FILE__, __LINE__)
@@ -486,14 +485,22 @@ void PRVM_FreeString(char *s);
 
 // other prog handling functions
 qboolean PRVM_SetProgFromString(const char *str);
-void    PRVM_SetProg(int prognr);
+void PRVM_SetProg(int prognr);
 
-void    PRVM_InitProg(int prognr);
-void    PRVM_ResetProg(void);
+/*
+Initializing a vm:
+Call InitProg with the num
+Set up the fields marked with [INIT] in the prog struct
+Load a program with LoadProgs
+*/
+void PRVM_InitProg(int prognr);
+// LoadProgs expects to be called right after InitProg
+void PRVM_LoadProgs (const char *filename, int numrequiredfunc, char **required_func);
+void PRVM_ResetProg(void);
 
 qboolean PRVM_ProgLoaded(int prognr);
 
-int             PRVM_GetProgNr(void);
+int    PRVM_GetProgNr(void);
 
 
 // TODO: fill in the params
index e38e07825b74b6412b6cda130f21dae57b467cfd..53f7e5d23e3d29b4c05634b3f95e0f934a0c61bc 100644 (file)
@@ -1220,9 +1220,9 @@ PRVM_ResetProg
 
 void PRVM_ResetProg()
 {
+       PRVM_GCALL(reset_cmd)();
        Mem_FreePool(&prog->progs_mempool);
        memset(prog,0,sizeof(prvm_prog_t));
-       PRVM_GCALL(reset_cmd)();
 }
 
 /*
@@ -1237,8 +1237,6 @@ void PRVM_LoadProgs (const char * filename, int numrequiredfunc, char **required
        ddef_t *infielddefs;
        dfunction_t *dfunctions;
 
-       Mem_EmptyPool(prog->progs_mempool);
-
        prog->progs = (dprograms_t *)FS_LoadFile (filename, prog->progs_mempool, false);
        if (prog->progs == NULL)
                PRVM_ERROR ("PRVM_LoadProgs: couldn't load %s for %s", filename, PRVM_NAME);
@@ -1472,10 +1470,6 @@ void PRVM_LoadProgs (const char * filename, int numrequiredfunc, char **required
                && prog->flag && prog->self)
                prog->flag |= PRVM_OP_STATE;
 
-       if( prog->loaded ) {
-               PRVM_GCALL(reset_cmd)();
-       }
-       prog->loaded = TRUE;
        PRVM_GCALL(init_cmd)();
 
        // init mempools