Allow players to be popped in packet-server

This commit is contained in:
Edward Richardson 2014-12-23 22:20:39 +13:00
parent 80bc95d3bc
commit b24f173d03
1 changed files with 28 additions and 16 deletions

View File

@ -669,9 +669,8 @@ void PlayerIsGone (int netnode, int netconsole)
{ {
int i; int i;
if (!nodeingame[netnode]) if (nodeingame[netnode])
return; {
for (i = netnode + 1; i < doomcom.numnodes; ++i) for (i = netnode + 1; i < doomcom.numnodes; ++i)
{ {
if (nodeingame[i]) if (nodeingame[i])
@ -688,6 +687,20 @@ void PlayerIsGone (int netnode, int netconsole)
} }
nodeingame[netnode] = false; nodeingame[netnode] = false;
nodejustleft[netnode] = false; nodejustleft[netnode] = false;
}
else if (nodejustleft[netnode]) // Packet Server
{
if (netnode + 1 == doomcom.numnodes)
{
doomcom.numnodes = netnode;
}
if (playeringame[netconsole])
{
players[netconsole].playerstate = PST_GONE;
}
nodejustleft[netnode] = false;
}
else return;
if (netconsole == Net_Arbitrator) if (netconsole == Net_Arbitrator)
{ {
@ -790,7 +803,6 @@ void GetPackets (void)
else else
{ {
nodeingame[netnode] = false; nodeingame[netnode] = false;
playeringame[netconsole] = false;
nodejustleft[netnode] = true; nodejustleft[netnode] = true;
} }
continue; continue;