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

View file

@ -669,25 +669,38 @@ 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)
{
if (nodeingame[i])
break;
}
if (i == doomcom.numnodes)
{
doomcom.numnodes = netnode;
}
for (i = netnode + 1; i < doomcom.numnodes; ++i) if (playeringame[netconsole])
{ {
if (nodeingame[i]) players[netconsole].playerstate = PST_GONE;
break; }
nodeingame[netnode] = false;
nodejustleft[netnode] = false;
} }
if (i == doomcom.numnodes) else if (nodejustleft[netnode]) // Packet Server
{ {
doomcom.numnodes = netnode; if (netnode + 1 == doomcom.numnodes)
{
doomcom.numnodes = netnode;
}
if (playeringame[netconsole])
{
players[netconsole].playerstate = PST_GONE;
}
nodejustleft[netnode] = false;
} }
else return;
if (playeringame[netconsole])
{
players[netconsole].playerstate = PST_GONE;
}
nodeingame[netnode] = false;
nodejustleft[netnode] = false;
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;