]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - progsvm.h
rewrote PRVM_AllocString and PRVM_FreeString to deal with string offsets directly...
[xonotic/darkplaces.git] / progsvm.h
index c40fd82597ca4c91765bb241edf7f8ed68da514b..e389f0f0516203f212daed08234b817db9c6eed3 100644 (file)
--- a/progsvm.h
+++ b/progsvm.h
@@ -152,7 +152,7 @@ typedef union prvm_eval_s
        int                             edict;
 } prvm_eval_t;
 
-typedef struct prvm_required_field_s 
+typedef struct prvm_required_field_s
 {
        int type;
        const char *name;
@@ -200,7 +200,7 @@ typedef struct prvm_edict_s
                // However, the first one should be preferred.
        } priv;
        // QuakeC fields (stored in dynamically resized array)
-       union 
+       union
        {
                void *vp;
                entvars_t *server;
@@ -360,7 +360,7 @@ typedef struct prvm_prog_s
        void                            (*init_cmd)(void); // [INIT] used by PRVM_InitProg
        void                            (*reset_cmd)(void); // [INIT] used by PRVM_ResetProg
 
-       void                            (*error_cmd)(void); // [INIT]
+       void                            (*error_cmd)(const char *format, ...); // [INIT]
 
 } prvm_prog_t;
 
@@ -479,16 +479,16 @@ void PRVM_ED_PrintNum (int ent);
 const char *PRVM_GetString(int num);
 int PRVM_SetQCString(const char *s);
 int PRVM_SetEngineString(const char *s);
-char *PRVM_AllocString(int bufferlength);
-void PRVM_FreeString(char *s);
+int PRVM_AllocString(int bufferlength, char **pointer);
+void PRVM_FreeString(int num);
 
 //============================================================================
 
 // used as replacement for a prog stack
-#define PRVM_DEBUGPRSTACK
+//#define PRVM_DEBUGPRSTACK
 
 #ifdef PRVM_DEBUGPRSTACK
-#define PRVM_Begin  if(prog != 0) Host_Error("prog not 0(prog = %i) in file: %s line: %i!\n", PRVM_GetProgNr(), __FILE__, __LINE__)
+#define PRVM_Begin  if(prog != 0) Con_Printf("prog not 0(prog = %i) in file: %s line: %i!\n", PRVM_GetProgNr(), __FILE__, __LINE__)
 #define PRVM_End       prog = 0
 #else
 #define PRVM_Begin
@@ -506,7 +506,7 @@ void PRVM_FreeString(char *s);
 // helper macro to make function pointer calls easier
 #define PRVM_GCALL(func)       if(prog->func) prog->func
 
-#define PRVM_ERROR             Host_Error
+#define PRVM_ERROR             prog->error_cmd
 
 // other prog handling functions
 qboolean PRVM_SetProgFromString(const char *str);