]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - progs.h
qw support is 99% working
[xonotic/darkplaces.git] / progs.h
diff --git a/progs.h b/progs.h
index c4bd745a45da36e88914ccdfc31465e563e6b428..7005deec8c3b9d82964d67c9094bd40bd9edf492 100644 (file)
--- a/progs.h
+++ b/progs.h
@@ -18,7 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 */
 
-#ifndef PROGS_H 
+#ifndef PROGS_H
 #define PROGS_H
 #include "pr_comp.h"                   // defs shared with qcc
 
@@ -29,6 +29,7 @@ typedef struct link_s
 } link_t;
 
 #define ENTITYGRIDAREAS 16
+#define MAX_ENTITYCLUSTERS 16
 
 typedef struct edict_engineprivate_s
 {
@@ -37,6 +38,14 @@ typedef struct edict_engineprivate_s
        // sv.time when the object was freed (to prevent early reuse which could
        // mess up client interpolation or obscure severe QuakeC bugs)
        float freetime;
+       // initially false to prevent projectiles from moving on their first frame
+       // (even if they were spawned by an synchronous client think)
+       qboolean move;
+
+       // cached cluster links for quick stationary object visibility checking
+       vec3_t cullmins, cullmaxs;
+       int pvs_numclusters;
+       int pvs_clusterlist[MAX_ENTITYCLUSTERS];
 
        // physics grid areas this edict is linked into
        link_t areagrid[ENTITYGRIDAREAS];
@@ -44,7 +53,7 @@ typedef struct edict_engineprivate_s
        // we should avoid extensive checking on entities already encountered
        int areagridmarknumber;
 
-       // PROTOCOL_QUAKE, PROTOCOL_QUAKEDP, PROTOCOL_NEHAHRAMOVIE
+       // PROTOCOL_QUAKE, PROTOCOL_QUAKEDP, PROTOCOL_NEHAHRAMOVIE, PROTOCOL_QUAKEWORLD
        // baseline values
        entity_state_t baseline;
 
@@ -65,6 +74,14 @@ extern int eval_button5;
 extern int eval_button6;
 extern int eval_button7;
 extern int eval_button8;
+extern int eval_button9;
+extern int eval_button10;
+extern int eval_button11;
+extern int eval_button12;
+extern int eval_button13;
+extern int eval_button14;
+extern int eval_button15;
+extern int eval_button16;
 extern int eval_buttonuse;
 extern int eval_buttonchat;
 extern int eval_glow_size;
@@ -109,6 +126,9 @@ extern int eval_cursor_trace_ent;
 extern int eval_colormod;
 extern int eval_playermodel;
 extern int eval_playerskin;
+extern int eval_SendEntity;
+extern int eval_Version;
+extern int eval_customizeentityforclient;
 
 extern mfunction_t *SV_PlayerPhysicsQC;
 extern mfunction_t *EndFrameQC;
@@ -155,13 +175,18 @@ typedef struct edict_engineprivate_s
        // mess up client interpolation or obscure severe QuakeC bugs)
        float freetime;
 
+       // cached cluster links for quick stationary object visibility checking
+       vec3_t cullmins, cullmaxs;
+       int pvs_numclusters;
+       int pvs_clusterlist[MAX_ENTITYCLUSTERS];
+
        // physics grid areas this edict is linked into
        link_t areagrid[ENTITYGRIDAREAS];
        // since the areagrid can have multiple references to one entity,
        // we should avoid extensive checking on entities already encountered
        int areagridmarknumber;
 
-       // PROTOCOL_QUAKE, PROTOCOL_QUAKEDP, PROTOCOL_NEHAHRAMOVIE
+       // PROTOCOL_QUAKE, PROTOCOL_QUAKEDP, PROTOCOL_NEHAHRAMOVIE, PROTOCOL_QUAKEWORLD
        // baseline values
        entity_state_t baseline;
 
@@ -238,7 +263,7 @@ extern int eval_colormod;
 extern int eval_playermodel;
 extern int eval_playerskin;
 
-#define PRVM_GETEDICTFIELDVALUE(ed, fieldoffset) (fieldoffset ? (prvm_eval_t *)((qbyte *)ed->v + fieldoffset) : NULL)
+#define PRVM_GETEDICTFIELDVALUE(ed, fieldoffset) (fieldoffset ? (prvm_eval_t *)((unsigned char *)ed->v + fieldoffset) : NULL)
 
 
 extern mfunction_t *SV_PlayerPhysicsQC;