Merge branch 'node0Bot' into 'master'
Fix node 0 being occupied by a bot in dedicated servers for clients done by JugadorXEI Closes #385 See merge request kart-krew-dev/ring-racers!77
This commit is contained in:
parent
82ae4fc5da
commit
ecad6e8183
6 changed files with 21 additions and 7 deletions
|
|
@ -98,6 +98,7 @@ boolean server = true; // true or false but !server == client
|
|||
#define client (!server)
|
||||
boolean nodownload = false;
|
||||
boolean serverrunning = false;
|
||||
boolean connectedtodedicated = false;
|
||||
INT32 serverplayer = 0;
|
||||
char motd[254], server_context[8]; // Message of the Day, Unique Context (even without Mumble support)
|
||||
|
||||
|
|
@ -1141,6 +1142,7 @@ static boolean SV_SendServerConfig(INT32 node)
|
|||
netbuffer->u.servercfg.gamestate = (UINT8)gamestate;
|
||||
netbuffer->u.servercfg.gametype = (UINT8)gametype;
|
||||
netbuffer->u.servercfg.modifiedgame = (UINT8)modifiedgame;
|
||||
netbuffer->u.servercfg.dedicated = (boolean)dedicated;
|
||||
|
||||
netbuffer->u.servercfg.maxplayer = (UINT8)(min((dedicated ? MAXPLAYERS-1 : MAXPLAYERS), cv_maxplayers.value));
|
||||
netbuffer->u.servercfg.allownewplayer = cv_allownewplayer.value;
|
||||
|
|
@ -2569,6 +2571,8 @@ static void Command_connect(void)
|
|||
// we don't request a restart unless the filelist differs
|
||||
|
||||
server = false;
|
||||
connectedtodedicated = false;
|
||||
|
||||
/*
|
||||
if (!stricmp(COM_Argv(1), "self"))
|
||||
{
|
||||
|
|
@ -2780,6 +2784,7 @@ void CL_Reset(void)
|
|||
multiplayer = false;
|
||||
servernode = 0;
|
||||
server = true;
|
||||
connectedtodedicated = false;
|
||||
doomcom->numnodes = 1;
|
||||
doomcom->numslots = 1;
|
||||
SV_StopServer();
|
||||
|
|
@ -4058,6 +4063,11 @@ boolean Playing(void)
|
|||
return (server && serverrunning) || (client && cl_mode == CL_CONNECTED);
|
||||
}
|
||||
|
||||
boolean InADedicatedServer(void)
|
||||
{
|
||||
return Playing() && (dedicated || connectedtodedicated);
|
||||
}
|
||||
|
||||
boolean SV_SpawnServer(void)
|
||||
{
|
||||
// Screw Testers mode, worst idea ever.
|
||||
|
|
@ -4124,6 +4134,7 @@ void SV_StartSinglePlayerServer(INT32 dogametype, boolean donetgame)
|
|||
INT32 lastgametype = gametype;
|
||||
server = true;
|
||||
multiplayer = (modeattacking == ATTACKING_NONE) && !grandprixinfo.gp; // G: no multiplayer in GP!
|
||||
connectedtodedicated = false;
|
||||
|
||||
netgame = false; // so setting timelimit works... (XD_NETVAR doesn't play nice with SV_StopServer)
|
||||
|
||||
|
|
@ -4696,6 +4707,7 @@ static void HandlePacketFromAwayNode(SINT8 node)
|
|||
G_SetGametype(netbuffer->u.servercfg.gametype);
|
||||
|
||||
modifiedgame = netbuffer->u.servercfg.modifiedgame;
|
||||
connectedtodedicated = netbuffer->u.servercfg.dedicated;
|
||||
|
||||
memcpy(server_context, netbuffer->u.servercfg.server_context, 8);
|
||||
|
||||
|
|
|
|||
|
|
@ -207,6 +207,7 @@ struct serverconfig_pak
|
|||
|
||||
UINT8 gametype;
|
||||
UINT8 modifiedgame;
|
||||
boolean dedicated;
|
||||
|
||||
char server_context[8]; // Unique context id, generated at server startup.
|
||||
|
||||
|
|
@ -443,6 +444,7 @@ extern boolean server;
|
|||
extern boolean serverrunning;
|
||||
#define client (!server)
|
||||
extern boolean dedicated; // For dedicated server
|
||||
extern boolean connectedtodedicated; // Client that is connected to a dedicated server.
|
||||
extern UINT16 software_MAXPACKETLENGTH;
|
||||
extern boolean acceptnewnode;
|
||||
extern SINT8 servernode;
|
||||
|
|
@ -544,6 +546,7 @@ void CL_UpdateServerList(void);
|
|||
void CL_TimeoutServerList(void);
|
||||
// Is there a game running
|
||||
boolean Playing(void);
|
||||
boolean InADedicatedServer(void);
|
||||
|
||||
void CopyCaretColors (char *p, const char *s, int n);
|
||||
|
||||
|
|
|
|||
|
|
@ -928,6 +928,7 @@ void D_SRB2Loop(void)
|
|||
|
||||
if (dedicated)
|
||||
server = true;
|
||||
connectedtodedicated = dedicated;
|
||||
|
||||
// Pushing of + parameters is now done back in D_SRB2Main, not here.
|
||||
|
||||
|
|
@ -1438,6 +1439,7 @@ void D_SRB2Main(void)
|
|||
|
||||
// for dedicated server
|
||||
dedicated = M_CheckParm("-dedicated") != 0;
|
||||
connectedtodedicated = dedicated;
|
||||
|
||||
if (devparm)
|
||||
CONS_Printf(M_GetText("Development mode ON.\n"));
|
||||
|
|
|
|||
|
|
@ -1682,6 +1682,7 @@ boolean I_InitTcpNetwork(void)
|
|||
if (M_CheckParm("-server") || dedicated)
|
||||
{
|
||||
server = true;
|
||||
connectedtodedicated = dedicated;
|
||||
|
||||
// If a number of clients (i.e. nodes) is specified, the server will wait for the clients
|
||||
// to connect before starting.
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ void K_UpdateMatchRaceBots(void)
|
|||
{
|
||||
const UINT16 defaultbotskin = K_BotDefaultSkin();
|
||||
UINT8 difficulty;
|
||||
UINT8 pmax = (dedicated ? MAXPLAYERS-1 : MAXPLAYERS);
|
||||
UINT8 pmax = (InADedicatedServer() ? MAXPLAYERS-1 : MAXPLAYERS);
|
||||
UINT8 numplayers = 0;
|
||||
UINT8 numbots = 0;
|
||||
UINT8 numwaiting = 0;
|
||||
|
|
@ -349,12 +349,7 @@ void K_UpdateMatchRaceBots(void)
|
|||
if (numbots < wantedbots)
|
||||
{
|
||||
// We require MORE bots!
|
||||
UINT8 newplayernum = 0;
|
||||
|
||||
if (dedicated)
|
||||
{
|
||||
newplayernum = 1;
|
||||
}
|
||||
UINT8 newplayernum = InADedicatedServer() ? 1 : 0;
|
||||
|
||||
for (i = 0; i < usableskins; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -363,6 +363,7 @@ boolean I_InitNetwork(void)
|
|||
if (M_CheckParm("-server") || dedicated)
|
||||
{
|
||||
server = true;
|
||||
connectedtodedicated = dedicated;
|
||||
|
||||
// If a number of clients (i.e. nodes) is specified, the server will wait for the clients
|
||||
// to connect before starting.
|
||||
|
|
|
|||
Loading…
Reference in a new issue