X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=server.h;h=68d6ca176babfbbeb8e627b48145e2984726b1b2;hb=c4ee1bbcc6b2f917465f07269ad09942bbf40849;hp=4eada814250c8f1f3d707934c83c5561eb6296f6;hpb=e4b3858e7aca0ead91be1d8f675db084d025abad;p=xonotic%2Fdarkplaces.git diff --git a/server.h b/server.h index 4eada814..68d6ca17 100644 --- a/server.h +++ b/server.h @@ -61,13 +61,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 +81,10 @@ typedef struct client_s qboolean dropasap; // has been told to go to another level qboolean sendsignon; // only valid before spawned + // 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) + double last_message; // reliable messages must be sent // periodically @@ -91,11 +95,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 +108,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; @@ -183,23 +196,34 @@ 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 double host_time; - -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 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; //=========================================================== @@ -237,5 +261,5 @@ void SV_MoveToGoal (void); void SV_CheckForNewClients (void); void SV_RunClients (void); -void SV_SaveSpawnparms (); +void SV_SaveSpawnparms (void); void SV_SpawnServer (char *server);