double time;
double frametime;
-
+
int lastcheck; // used by PF_checkclient
double lastchecktime;
-
+
char name[64]; // map name
char modelname[64]; // maps/<name>.bsp, for model_precache[0]
struct model_s *worldmodel;
server_state_t state; // some actions are only valid during load
sizebuf_t datagram;
- byte datagram_buf[MAX_DATAGRAM];
+ qbyte datagram_buf[MAX_DATAGRAM];
sizebuf_t reliable_datagram; // copied to all clients at end of frame
- byte reliable_datagram_buf[MAX_DATAGRAM];
+ qbyte reliable_datagram_buf[MAX_DATAGRAM];
sizebuf_t signon;
- byte signon_buf[32768]; // LordHavoc: increased signon message buffer from 8192 to 32768
+ qbyte signon_buf[32768]; // LordHavoc: increased signon message buffer from 8192 to 32768
} server_t;
qboolean dropasap; // has been told to go to another level
qboolean sendsignon; // only valid before spawned
+#ifndef NOROUTINGFIX
+ // LordHavoc: to make netquake protocol get through NAT routers, have to wait for client to ack
+ qboolean waitingforconnect; // waiting for connect from client (stage 1)
+ qboolean sendserverinfo; // send server info in next datagram (stage 2)
+#endif
+
double last_message; // reliable messages must be sent
// periodically
sizebuf_t message; // can be added to at any time,
// copied and clear once per frame
- byte msgbuf[MAX_MSGLEN];
+ qbyte msgbuf[MAX_MSGLEN];
edict_t *edict; // EDICT_NUM(clientnum+1)
char name[32]; // for printing to other people
int colors;
int old_frags;
int pmodel;
+#ifdef QUAKEENTITIES
// delta compression state
float nextfullupdate[MAX_EDICTS];
- float lastvisible[MAX_EDICTS];
+#endif
+ // visibility state
+ float visibletime[MAX_EDICTS];
+
+#ifndef QUAKEENTITIES
+ entity_database_t entitydatabase;
+ int entityframenumber; // incremented each time an entity frame is sent
+#endif
} client_t;