*/
-#ifndef PROGS_H
+#ifndef PROGS_H
#define PROGS_H
#include "pr_comp.h" // defs shared with qcc
} link_t;
#define ENTITYGRIDAREAS 16
+#define MAX_ENTITYCLUSTERS 16
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];
// 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;
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;
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;
// 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;
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;