X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=server.h;h=a0d80b312184691a446c828d5a77206498e4911c;hp=426291af1a2b75c99474d9754d6cdb98dc0709c1;hb=fce253c0c9daf040f3fda5ca683fb201c148a3c0;hpb=d7035ef4229a2462ad59a67160494593fbd8f2e0 diff --git a/server.h b/server.h index 426291af..a0d80b31 100644 --- a/server.h +++ b/server.h @@ -19,6 +19,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ // server.h +#ifndef SERVER_H +#define SERVER_H + typedef struct { int maxclients; @@ -42,10 +45,10 @@ typedef struct double time; double frametime; - + int lastcheck; // used by PF_checkclient double lastchecktime; - + char name[64]; // map name char modelname[64]; // maps/.bsp, for model_precache[0] struct model_s *worldmodel; @@ -61,13 +64,13 @@ typedef struct 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; @@ -81,6 +84,12 @@ typedef struct client_s 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 @@ -91,11 +100,11 @@ typedef struct client_s 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; - + float ping_times[NUM_PING_TIMES]; int num_pings; // ping_times[num_pings%NUM_PING_TIMES] float ping; // LordHavoc: can be used for prediction or whatever... @@ -104,12 +113,21 @@ typedef struct client_s // spawn parms are carried from level to level float spawn_parms[NUM_SPAWN_PARMS]; -// client known data for deltas +// client known data for deltas int old_frags; int pmodel; +#ifdef QUAKEENTITIES // delta compression state float nextfullupdate[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; @@ -151,7 +169,6 @@ typedef struct client_s // edict->flags #define FL_FLY 1 #define FL_SWIM 2 -//#define FL_GLIMPSE 4 #define FL_CONVEYOR 4 #define FL_CLIENT 8 #define FL_INWATER 16 @@ -183,21 +200,36 @@ typedef struct client_s //============================================================================ -extern cvar_t teamplay; -extern cvar_t skill; -extern cvar_t deathmatch; -extern cvar_t coop; -extern cvar_t fraglimit; -extern cvar_t timelimit; - -extern server_static_t svs; // persistant server info -extern server_t sv; // local server - -extern client_t *host_client; - -extern jmp_buf host_abortserver; - -extern edict_t *sv_player; +extern cvar_t teamplay; +extern cvar_t skill; +extern cvar_t deathmatch; +extern cvar_t coop; +extern cvar_t fraglimit; +extern cvar_t timelimit; +extern cvar_t pausable; +extern cvar_t sv_deltacompress; +extern cvar_t sv_maxvelocity; +extern cvar_t sv_gravity; +extern cvar_t sv_nostep; +extern cvar_t sv_friction; +extern cvar_t sv_edgefriction; +extern cvar_t sv_stopspeed; +extern cvar_t sv_maxspeed; +extern cvar_t sv_accelerate; +extern cvar_t sv_idealpitchscale; +extern cvar_t sv_aim; +extern cvar_t sv_predict; +extern cvar_t sv_stepheight; +extern cvar_t sv_jumpstep; + +extern server_static_t svs; // persistant server info +extern server_t sv; // local server + +extern client_t *host_client; + +extern jmp_buf host_abortserver; + +extern edict_t *sv_player; //=========================================================== @@ -235,5 +267,8 @@ void SV_MoveToGoal (void); void SV_CheckForNewClients (void); void SV_RunClients (void); -void SV_SaveSpawnparms (); +void SV_SaveSpawnparms (void); void SV_SpawnServer (char *server); + +#endif +