+ // latest received entity frame numbers
+#define LATESTFRAMENUMS 3
+ int latestframenums[LATESTFRAMENUMS];
+ entityframe_database_t *entitydatabase;
+ entityframe4_database_t *entitydatabase4;
+ entityframeqw_database_t *entitydatabaseqw;
+
+ // keep track of quake entities because they need to be killed if they get stale
+ int lastquakeentity;
+ unsigned char isquakeentity[MAX_EDICTS];
+
+ // bounding boxes for clientside movement
+ vec3_t playerstandmins;
+ vec3_t playerstandmaxs;
+ vec3_t playercrouchmins;
+ vec3_t playercrouchmaxs;
+
+ int max_entities;
+ int max_csqcentities;
+ int max_static_entities;
+ int max_temp_entities;
+ int max_effects;
+ int max_beams;
+ int max_dlights;
+ int max_lightstyle;
+ int max_brushmodel_entities;
+ int max_particles;
+
+ entity_t *entities;
+ entity_t *csqcentities; //[515]: csqc
+ unsigned char *entities_active;
+ unsigned char *csqcentities_active; //[515]: csqc
+ entity_t *static_entities;
+ entity_t *temp_entities;
+ cl_effect_t *effects;
+ beam_t *beams;
+ dlight_t *dlights;
+ lightstyle_t *lightstyle;
+ int *brushmodel_entities;
+ particle_t *particles;
+
+ int num_entities;
+ int num_csqcentities; //[515]: csqc
+ int num_static_entities;
+ int num_temp_entities;
+ int num_brushmodel_entities;
+ int num_effects;
+ int num_beams;
+ int num_dlights;
+ int num_particles;
+
+ int free_particle;
+
+ // quakeworld stuff
+
+ // local copy of the server infostring
+ char qw_serverinfo[MAX_SERVERINFO_STRING];
+
+ // time of last qw "pings" command sent to server while showing scores
+ double last_ping_request;
+
+ // used during connect
+ int qw_servercount;
+
+ // updated from serverinfo
+ int qw_teamplay;
+
+ // indicates whether the player is spectating
+ qboolean qw_spectator;
+
+ // movement parameters for client prediction
+ float qw_movevars_gravity;
+ float qw_movevars_stopspeed;
+ float qw_movevars_maxspeed; // can change during play
+ float qw_movevars_spectatormaxspeed;
+ float qw_movevars_accelerate;
+ float qw_movevars_airaccelerate;
+ float qw_movevars_wateraccelerate;
+ float qw_movevars_friction;
+ float qw_movevars_waterfriction;
+ float qw_movevars_entgravity; // can change during play
+
+ // models used by qw protocol
+ int qw_modelindex_spike;
+ int qw_modelindex_player;
+ int qw_modelindex_flag;
+ int qw_modelindex_s_explod;
+
+ vec3_t qw_intermission_origin;
+ vec3_t qw_intermission_angles;
+
+ // 255 is the most nails the QW protocol could send
+ int qw_num_nails;
+ vec_t qw_nails[255][6];
+
+ float qw_weaponkick;
+
+ int qw_validsequence;
+
+ qw_usercmd_t qw_moves[QW_UPDATE_BACKUP];
+
+ int qw_deltasequence[QW_UPDATE_BACKUP];