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
+1 -1
View File
@@ -682,7 +682,7 @@ namespace Barotrauma.Networking
public bool SpectateClicked(GUIButton button, object userData)
{
NetOutgoingMessage msg = client.CreateMessage();
msg.Write((byte)PacketTypes.Spectate);
msg.Write((byte)PacketTypes.SpectateRequest);
client.SendMessage(msg, NetDeliveryMethod.ReliableUnordered);
+11 -5
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;
+3 -1
View File
@@ -192,7 +192,6 @@ namespace Barotrauma.Networking
}
Entity e = Entity.FindEntityByID(id);
System.Diagnostics.Debug.WriteLine(e.ToString());
if (e == null)
{
#if DEBUG
@@ -201,6 +200,9 @@ namespace Barotrauma.Networking
return false;
}
System.Diagnostics.Debug.WriteLine(e.ToString());
object data;
try
@@ -29,7 +29,7 @@ namespace Barotrauma.Networking
ResendRequest, ReliableMessage, LatestMessageID,
Spectate
SpectateRequest
}
enum VoteType