- Fixed: When starting a teamplay netgame, players who did not specify a team

were not informed about which team they ended up joining.
- Added Skulltag's DF2_SAME_SPAWN_SPOT flags.
- Fixed: DF2_YES_DEGENERATION was pretty much guaranteed to go out of sync
  because it used gametic for timing.
- Added DoubleAmmoFactor as a skill property for the DF2_YES_DOUBLEAMMO flag.
- Renumbered the dmflags2 entries to match Skulltag's again.
- Added Karate Chris's infinite ammo patch.


SVN r683 (trunk)
This commit is contained in:
Randy Heit 2008-01-09 02:53:38 +00:00
commit c694c55afd
15 changed files with 112 additions and 49 deletions

View file

@ -1346,6 +1346,7 @@ bool DoArbitrate (void *userdata)
stream = &netbuffer[9];
}
D_ReadUserInfoStrings (netbuffer[1], &stream, false);
if (!nodeingame[node])
{
version = (netbuffer[2] << 16) | (netbuffer[3] << 8) | netbuffer[4];
@ -1356,9 +1357,8 @@ bool DoArbitrate (void *userdata)
playeringame[netbuffer[1]] = true;
nodeingame[node] = true;
data->playersdetected[0] |= 1 << netbuffer[1];
D_ReadUserInfoStrings (netbuffer[1], &stream, false);
data->playersdetected[0] |= 1 << netbuffer[1];
StartScreen->NetMessage ("Found %s (node %d, player %d)",
players[netbuffer[1]].userinfo.netname,
@ -1422,7 +1422,7 @@ bool DoArbitrate (void *userdata)
for (j = 0; j < doomcom.numnodes; ++j)
{
// Send info about player j to player i?
if (i != j && (data->playersdetected[0] & (1<<j)) && !(data->playersdetected[i] & (1<<j)))
if ((data->playersdetected[0] & (1<<j)) && !(data->playersdetected[i] & (1<<j)))
{
netbuffer[1] = j;
stream = &netbuffer[9];
@ -1464,8 +1464,13 @@ void D_ArbitrateNetStart (void)
memset (data.playersdetected, 0, sizeof(data.playersdetected));
memset (data.gotsetup, 0, sizeof(data.gotsetup));
// Everyone know about themself
data.playersdetected[0] = 1 << consoleplayer;
// The arbitrator knows about himself, but the other players must
// be told about themselves, in case the host had to adjust their
// userinfo (e.g. assign them to a different team).
if (consoleplayer == Net_Arbitrator)
{
data.playersdetected[0] = 1 << consoleplayer;
}
// Assign nodes to players. The local player is always node 0.
// If the local player is not the host, then the host is node 1.