Merge branch 'master' into scripting
Conflicts: src/actor.h src/g_doom/a_archvile.cpp src/g_shared/a_morph.cpp src/p_enemy.h src/p_local.h src/p_mobj.cpp src/sc_man_tokens.h src/thingdef/thingdef_codeptr.cpp src/thingdef/thingdef_exp.h src/thingdef/thingdef_expression.cpp src/thingdef/thingdef_states.cpp wadsrc/static/actors/actor.txt
This commit is contained in:
commit
775e33ede7
106 changed files with 8861 additions and 13597 deletions
|
|
@ -185,7 +185,7 @@ static struct TicSpecial
|
|||
size_t used[BACKUPTICS];
|
||||
BYTE *streamptr;
|
||||
size_t streamoffs;
|
||||
int specialsize;
|
||||
size_t specialsize;
|
||||
int lastmaketic;
|
||||
bool okay;
|
||||
|
||||
|
|
@ -224,11 +224,11 @@ static struct TicSpecial
|
|||
}
|
||||
|
||||
// Make more room for special commands.
|
||||
void GetMoreSpace ()
|
||||
void GetMoreSpace (size_t needed)
|
||||
{
|
||||
int i;
|
||||
|
||||
specialsize <<= 1;
|
||||
specialsize = MAX(specialsize * 2, needed + 30);
|
||||
|
||||
DPrintf ("Expanding special size to %d\n", specialsize);
|
||||
|
||||
|
|
@ -240,8 +240,8 @@ static struct TicSpecial
|
|||
|
||||
void CheckSpace (size_t needed)
|
||||
{
|
||||
if (streamoffs >= specialsize - needed)
|
||||
GetMoreSpace ();
|
||||
if (streamoffs + needed >= specialsize)
|
||||
GetMoreSpace (streamoffs + needed);
|
||||
|
||||
streamoffs += needed;
|
||||
}
|
||||
|
|
@ -669,25 +669,38 @@ void PlayerIsGone (int netnode, int netconsole)
|
|||
{
|
||||
int i;
|
||||
|
||||
if (!nodeingame[netnode])
|
||||
return;
|
||||
if (nodeingame[netnode])
|
||||
{
|
||||
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 (nodeingame[i])
|
||||
break;
|
||||
if (playeringame[netconsole])
|
||||
{
|
||||
players[netconsole].playerstate = PST_GONE;
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
if (playeringame[netconsole])
|
||||
{
|
||||
players[netconsole].playerstate = PST_GONE;
|
||||
}
|
||||
nodeingame[netnode] = false;
|
||||
nodejustleft[netnode] = false;
|
||||
else return;
|
||||
|
||||
if (netconsole == Net_Arbitrator)
|
||||
{
|
||||
|
|
@ -790,7 +803,6 @@ void GetPackets (void)
|
|||
else
|
||||
{
|
||||
nodeingame[netnode] = false;
|
||||
playeringame[netconsole] = false;
|
||||
nodejustleft[netnode] = true;
|
||||
}
|
||||
continue;
|
||||
|
|
@ -1064,16 +1076,16 @@ void NetUpdate (void)
|
|||
|
||||
if (consoleplayer == Net_Arbitrator)
|
||||
{
|
||||
for (j = 0; j < doomcom.numnodes; j++)
|
||||
{
|
||||
if (nodeingame[j] && NetMode == NET_PacketServer)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (NetMode == NET_PacketServer)
|
||||
{
|
||||
for (j = 0; j < MAXPLAYERS; j++)
|
||||
{
|
||||
if (playeringame[j] && players[j].Bot == NULL)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
// The loop above added the local player to the count a second time,
|
||||
// and it also added the player being sent the packet to the count.
|
||||
count -= 2;
|
||||
|
|
@ -1203,12 +1215,15 @@ void NetUpdate (void)
|
|||
netbuffer[0] |= NCMD_MULTI;
|
||||
netbuffer[k++] = count;
|
||||
|
||||
for (l = 1, j = 0; j < doomcom.numnodes; j++)
|
||||
if (NetMode == NET_PacketServer)
|
||||
{
|
||||
if (nodeingame[j] && j != i && j != nodeforplayer[consoleplayer] && NetMode == NET_PacketServer)
|
||||
for (l = 1, j = 0; j < MAXPLAYERS; j++)
|
||||
{
|
||||
playerbytes[l++] = playerfornode[j];
|
||||
netbuffer[k++] = playerfornode[j];
|
||||
if (playeringame[j] && players[j].Bot == NULL && j != playerfornode[i] && j != consoleplayer)
|
||||
{
|
||||
playerbytes[l++] = j;
|
||||
netbuffer[k++] = j;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue