]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - pr_comp.h
Reworked v_isometric code significantly, it now defaults to a proper isometric view...
[xonotic/darkplaces.git] / pr_comp.h
index 8ccdaf6d74ace96f3ca9a6909ebbb1a6692942c1..d1643b628e15be619dc3b02115222b0e4c2852ce 100644 (file)
--- a/pr_comp.h
+++ b/pr_comp.h
@@ -42,7 +42,7 @@ typedef enum etype_e {ev_void, ev_string, ev_float, ev_vector, ev_entity, ev_fie
 #define        RESERVED_OFS    28
 
 
-enum opcode_e
+typedef enum opcode_e
 {
        OP_DONE,
        OP_MUL_F,
@@ -119,7 +119,8 @@ enum opcode_e
 
        OP_BITAND,
        OP_BITOR
-};
+}
+opcode_t;
 
 
 typedef struct statement_s
@@ -164,9 +165,16 @@ typedef struct mfunction_s
        int             locals;                         // total ints of parms + locals
 
        // these are doubles so that they can count up to 54bits or so rather than 32bit
+       double  tprofile;           // realtime in this function
+       double  tbprofile;          // realtime in builtins called by this function (NOTE: builtins also have a tprofile!)
        double  profile;                // runtime
        double  builtinsprofile; // cost of builtin functions called by this function
        double  callcount; // times the functions has been called since the last profile call
+       double  totaltime; // total execution time of this function DIRECTLY FROM THE ENGINE
+       double  tprofile_total;         // runtime (NOTE: tbprofile_total makes no real sense, so not accumulating that)
+       double  profile_total;          // runtime
+       double  builtinsprofile_total; // cost of builtin functions called by this function
+       int     recursion;
 
        int             s_name;
        int             s_file;                 // source file defined in
@@ -176,6 +184,14 @@ typedef struct mfunction_s
 }
 mfunction_t;
 
+typedef struct mstatement_s
+{
+       opcode_t        op;
+       int                     operand[3]; // always a global or -1 for unused
+       int                     jumpabsolute; // only used by IF, IFNOT, GOTO
+}
+mstatement_t;
+
 
 #define        PROG_VERSION    6
 typedef struct dprograms_s