Networking bugfixes, underwater scooter, fixed limbs going through walls when flipping the ragdoll

This commit is contained in:
Regalis
2015-11-13 00:52:42 +02:00
parent 9c2aec4c8e
commit 24ed95cd68
26 changed files with 301 additions and 119 deletions

View File

@@ -460,11 +460,13 @@ namespace Barotrauma.Networking
case (byte)PacketTypes.Vote:
Voting.RegisterVote(inc, ConnectedClients);
break;
case (byte)PacketTypes.Spectate:
case (byte)PacketTypes.SpectateRequest:
if (gameStarted)
{
var startMessage = CreateStartMessage(roundStartSeed, Submarine.Loaded, GameMain.GameSession.gameMode.Preset);
server.SendMessage(startMessage, inc.SenderConnection, NetDeliveryMethod.ReliableUnordered);
dataSender.Spectating = true;
}
break;
}
@@ -674,9 +676,6 @@ namespace Barotrauma.Networking
GameMain.GameSession = new GameSession(selectedSub, "", selectedMode);
GameMain.GameSession.StartShift(GameMain.NetLobbyScreen.LevelSeed);
var startMessage = CreateStartMessage(roundStartSeed, Submarine.Loaded, GameMain.GameSession.gameMode.Preset);
SendMessage(startMessage, NetDeliveryMethod.ReliableUnordered);
yield return CoroutineStatus.Running;
List<CharacterInfo> characterInfos = new List<CharacterInfo>();
@@ -717,6 +716,10 @@ namespace Barotrauma.Networking
myCharacter.GiveJobItems(assignedWayPoints[assignedWayPoints.Length - 1]);
}
var startMessage = CreateStartMessage(roundStartSeed, Submarine.Loaded, GameMain.GameSession.gameMode.Preset);
SendMessage(startMessage, NetDeliveryMethod.ReliableUnordered);
yield return CoroutineStatus.Running;
UpdateCrewFrame();
@@ -761,7 +764,7 @@ namespace Barotrauma.Networking
if (myCharacter != null)
{
msg.Write(-1);
WriteCharacterData(msg, myCharacter.Info.Name, Character.Controlled);
WriteCharacterData(msg, myCharacter.Info.Name, myCharacter);
}
return msg;
@@ -799,6 +802,7 @@ namespace Barotrauma.Networking
foreach (Client client in ConnectedClients)
{
client.Spectating = false;
client.Character = null;
client.inGame = false;
}
@@ -1328,6 +1332,8 @@ namespace Barotrauma.Networking
public List<JobPrefab> jobPreferences;
public JobPrefab assignedJob;
public bool Spectating;
public ReliableChannel ReliableChannel;
public float deleteDisconnectedTimer;