mirror of
https://github.com/rehlds/hitboxtracker.git
synced 2025-01-15 08:07:55 +03:00
139 lines
3.8 KiB
C
139 lines
3.8 KiB
C
/*
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at
|
|
* your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
* In addition, as a special exception, the author gives permission to
|
|
* link the code of this program with the Half-Life Game Engine ("HL
|
|
* Engine") and Modified Game Libraries ("MODs") developed by Valve,
|
|
* L.L.C ("Valve"). You must obey the GNU General Public License in all
|
|
* respects for all of the code used other than the HL Engine and MODs
|
|
* from Valve. If you modify this file, you may extend this exception
|
|
* to your version of the file, but you are not obligated to do so. If
|
|
* you do not wish to do so, delete this exception statement from your
|
|
* version.
|
|
*
|
|
*/
|
|
|
|
#include "crc.h"
|
|
#include "common.h"
|
|
#include "net.h"
|
|
#include "event.h"
|
|
#include "custom.h"
|
|
#include "netadr.h"
|
|
#include "qlimits.h"
|
|
#include "consistency.h"
|
|
#include "inst_baseline.h"
|
|
|
|
#define MAX_RESOURCE_LIST 1280
|
|
|
|
typedef enum server_state_e
|
|
{
|
|
ss_dead = 0,
|
|
ss_loading = 1,
|
|
ss_active = 2,
|
|
} server_state_t;
|
|
|
|
typedef struct server_s
|
|
{
|
|
qboolean active;
|
|
qboolean paused;
|
|
qboolean loadgame;
|
|
double time;
|
|
double oldtime;
|
|
int lastcheck;
|
|
double lastchecktime;
|
|
char name[64];
|
|
char oldname[64];
|
|
char startspot[64];
|
|
char modelname[64];
|
|
struct model_s *worldmodel;
|
|
CRC32_t worldmapCRC;
|
|
unsigned char clientdllmd5[16];
|
|
resource_t resourcelist[MAX_RESOURCE_LIST];
|
|
int num_resources;
|
|
consistency_t consistency_list[MAX_CONSISTENCY_LIST];
|
|
int num_consistency;
|
|
const char *model_precache[MAX_MODELS];
|
|
struct model_s *models[MAX_MODELS];
|
|
unsigned char model_precache_flags[MAX_MODELS];
|
|
struct event_s event_precache[MAX_EVENTS];
|
|
const char *sound_precache[MAX_SOUNDS];
|
|
short int sound_precache_hashedlookup[MAX_SOUNDS_HASHLOOKUP_SIZE];
|
|
qboolean sound_precache_hashedlookup_built;
|
|
const char *generic_precache[MAX_GENERIC];
|
|
char generic_precache_names[MAX_GENERIC][64];
|
|
int num_generic_names;
|
|
const char *lightstyles[MAX_LIGHTSTYLES];
|
|
int num_edicts;
|
|
int max_edicts;
|
|
edict_t *edicts;
|
|
struct entity_state_s *baselines;
|
|
extra_baselines_t *instance_baselines;
|
|
server_state_t state;
|
|
sizebuf_t datagram;
|
|
unsigned char datagram_buf[MAX_DATAGRAM];
|
|
sizebuf_t reliable_datagram;
|
|
unsigned char reliable_datagram_buf[MAX_DATAGRAM];
|
|
sizebuf_t multicast;
|
|
unsigned char multicast_buf[1024];
|
|
sizebuf_t spectator;
|
|
unsigned char spectator_buf[1024];
|
|
sizebuf_t signon;
|
|
unsigned char signon_data[32768];
|
|
} server_t;
|
|
|
|
typedef struct server_log_s
|
|
{
|
|
qboolean active;
|
|
qboolean net_log_;
|
|
netadr_t net_address_;
|
|
void *file;
|
|
} server_log_t;
|
|
|
|
typedef struct server_stats_s
|
|
{
|
|
int num_samples;
|
|
int at_capacity;
|
|
int at_empty;
|
|
float capacity_percent;
|
|
float empty_percent;
|
|
int minusers;
|
|
int maxusers;
|
|
float cumulative_occupancy;
|
|
float occupancy;
|
|
int num_sessions;
|
|
float cumulative_sessiontime;
|
|
float average_session_len;
|
|
float cumulative_latency;
|
|
float average_latency;
|
|
} server_stats_t;
|
|
|
|
typedef struct server_static_s
|
|
{
|
|
qboolean dll_initialized;
|
|
struct client_s *clients;
|
|
int maxclients;
|
|
int maxclientslimit;
|
|
int spawncount;
|
|
int serverflags;
|
|
server_log_t log;
|
|
double next_cleartime;
|
|
double next_sampletime;
|
|
server_stats_t stats;
|
|
qboolean isSecure;
|
|
} server_static_t;
|
|
|
|
extern server_t *sv;
|