Support connecting subnodes to servers over tcp (instead of depending on fork).
Fixed up the -netquake / -spasm / -fitz args slightly, should actually be usable now. sv_mintic 0 is now treated as 0.013 when using nqplayerphysics, to try to make it smoother for nq clients. Preparing for astc's volume formats. Mostly for completeness, I was bored. Disabled for now because nothing supports them anyway. Fix broken mousewheel in SDL2 builds. Fix configs not getting loaded following initial downloads in the web port/etc. Make the near-cloud layer of q1 scrolling sky fully opaque by default (like vanilla). Sky fog now ignores depth, treating it as an infinite distance. Fix turbs not responding to fog. r_fullbright no longer needs vid_reload to take effect (and more efficient now). Tweaked the audio code to use an format enum instead of byte width, just with the same values still, primarily to clean up loaders that deal with S32 vs F32, or U8 vs S8. Added a cvar to control whether to use threads for the qcgc. Still disabled by default but no longer requires engine recompiles to enable! git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5683 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
7e66608b36
commit
4c2066601a
74 changed files with 2355 additions and 1294 deletions
|
@ -1211,28 +1211,6 @@ void SV_FixupName(const char *in, char *out, unsigned int outlen);
|
|||
|
||||
#ifdef SUBSERVERS
|
||||
//cluster stuff
|
||||
typedef struct pubsubserver_s
|
||||
{
|
||||
struct
|
||||
{
|
||||
void (*InstructSlave)(struct pubsubserver_s *ps, sizebuf_t *cmd); //send to. first two bytes of the message should be ignored (overwrite them to carry size)
|
||||
int (*SubServerRead)(struct pubsubserver_s *ps); //read from. fills up net_message
|
||||
} funcs;
|
||||
|
||||
struct pubsubserver_s *next;
|
||||
unsigned int id;
|
||||
char name[64];
|
||||
int activeplayers;
|
||||
int transferingplayers;
|
||||
netadr_t addrv4;
|
||||
netadr_t addrv6;
|
||||
char printtext[4096]; //to split it into lines.
|
||||
qboolean started;
|
||||
#ifdef HAVE_CLIENT
|
||||
console_t *console;
|
||||
#endif
|
||||
} pubsubserver_t;
|
||||
extern qboolean isClusterSlave;
|
||||
void SSV_UpdateAddresses(void);
|
||||
void SSV_InitiatePlayerTransfer(client_t *cl, const char *newserver);
|
||||
void SSV_InstructMaster(sizebuf_t *cmd);
|
||||
|
@ -1242,9 +1220,13 @@ void SSV_ReadFromControlServer(void);
|
|||
void SSV_SavePlayerStats(client_t *cl, int reason); //initial, periodic (in case of node crashes), part
|
||||
void SSV_RequestShutdown(void); //asks the cluster to not send us new players
|
||||
|
||||
pubsubserver_t *Sys_ForkServer(void);
|
||||
vfsfile_t *Sys_ForkServer(void);
|
||||
void Sys_InstructMaster(sizebuf_t *cmd); //first two bytes will always be the length of the data
|
||||
vfsfile_t *Sys_GetStdInOutStream(void); //obtains a bi-directional pipe for reading/writing via stdin/stdout. make sure the system code won't be using it.
|
||||
|
||||
qboolean MSV_NewNetworkedNode(vfsfile_t *stream, qbyte *reqstart, qbyte *buffered, size_t buffersize, const char *remoteaddr); //call to register a pipe to a newly discovered node.
|
||||
void SSV_SetupControlPipe(vfsfile_t *stream); //call to register the pipe.
|
||||
extern qboolean isClusterSlave;
|
||||
#define SSV_IsSubServer() isClusterSlave
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue