Faction Test v1.0.1.0
This commit is contained in:
@@ -326,7 +326,7 @@ namespace Barotrauma.Networking
|
||||
return serverEndpoint switch
|
||||
{
|
||||
LidgrenEndpoint lidgrenEndpoint => new LidgrenClientPeer(lidgrenEndpoint, callbacks, ownerKey),
|
||||
SteamP2PEndpoint _ when ownerKey is Some<int> { Value: var key } => new SteamP2POwnerPeer(callbacks, key),
|
||||
SteamP2PEndpoint _ when ownerKey.TryUnwrap(out var key) => new SteamP2POwnerPeer(callbacks, key),
|
||||
SteamP2PEndpoint steamP2PServerEndpoint when ownerKey.IsNone() => new SteamP2PClientPeer(steamP2PServerEndpoint, callbacks),
|
||||
_ => throw new ArgumentOutOfRangeException()
|
||||
};
|
||||
@@ -522,7 +522,7 @@ namespace Barotrauma.Networking
|
||||
|
||||
if (GameStarted && Screen.Selected == GameMain.GameScreen)
|
||||
{
|
||||
EndVoteTickBox.Visible = ServerSettings.AllowEndVoting && HasSpawned && !(GameMain.GameSession?.GameMode is CampaignMode);
|
||||
EndVoteTickBox.Visible = ServerSettings.AllowEndVoting && HasSpawned;
|
||||
|
||||
RespawnManager?.Update(deltaTime);
|
||||
|
||||
@@ -988,7 +988,7 @@ namespace Barotrauma.Networking
|
||||
GameMain.ModDownloadScreen.Reset();
|
||||
ContentPackageManager.EnabledPackages.Restore();
|
||||
|
||||
CampaignMode.StartRoundCancellationToken?.Cancel();
|
||||
GameMain.GameSession?.Campaign?.CancelStartRound();
|
||||
|
||||
if (SteamManager.IsInitialized)
|
||||
{
|
||||
@@ -1761,7 +1761,7 @@ namespace Barotrauma.Networking
|
||||
{
|
||||
string subName = inc.ReadString();
|
||||
string subHash = inc.ReadString();
|
||||
byte subClass = inc.ReadByte();
|
||||
SubmarineClass subClass = (SubmarineClass)inc.ReadByte();
|
||||
bool isShuttle = inc.ReadBoolean();
|
||||
bool requiredContentPackagesInstalled = inc.ReadBoolean();
|
||||
|
||||
@@ -1770,7 +1770,7 @@ namespace Barotrauma.Networking
|
||||
{
|
||||
matchingSub = new SubmarineInfo(Path.Combine(SaveUtil.SubmarineDownloadFolder, subName) + ".sub", subHash, tryLoad: false)
|
||||
{
|
||||
SubmarineClass = (SubmarineClass)subClass
|
||||
SubmarineClass = subClass
|
||||
};
|
||||
if (isShuttle) { matchingSub.AddTag(SubmarineTag.Shuttle); }
|
||||
}
|
||||
@@ -2003,10 +2003,10 @@ namespace Barotrauma.Networking
|
||||
GameMain.NetLobbyScreen.SetTraitorsEnabled(traitorsEnabled);
|
||||
GameMain.NetLobbyScreen.SetMissionType(missionType);
|
||||
|
||||
if (!allowModeVoting) GameMain.NetLobbyScreen.SelectMode(modeIndex);
|
||||
GameMain.NetLobbyScreen.SelectMode(modeIndex);
|
||||
if (isInitialUpdate && GameMain.NetLobbyScreen.SelectedMode == GameModePreset.MultiPlayerCampaign)
|
||||
{
|
||||
if (GameMain.Client.IsServerOwner) RequestSelectMode(modeIndex);
|
||||
if (GameMain.Client.IsServerOwner) { RequestSelectMode(modeIndex); }
|
||||
}
|
||||
|
||||
if (GameMain.NetLobbyScreen.SelectedMode == GameModePreset.MultiPlayerCampaign)
|
||||
@@ -2405,7 +2405,9 @@ namespace Barotrauma.Networking
|
||||
var newSub = new SubmarineInfo(transfer.FilePath);
|
||||
if (newSub.IsFileCorrupted) { return; }
|
||||
|
||||
var existingSubs = SubmarineInfo.SavedSubmarines.Where(s => s.Name == newSub.Name && s.MD5Hash.StringRepresentation == newSub.MD5Hash.StringRepresentation).ToList();
|
||||
var existingSubs = SubmarineInfo.SavedSubmarines
|
||||
.Where(s => s.Name == newSub.Name && s.MD5Hash == newSub.MD5Hash)
|
||||
.ToList();
|
||||
foreach (SubmarineInfo existingSub in existingSubs)
|
||||
{
|
||||
existingSub.Dispose();
|
||||
@@ -2464,12 +2466,13 @@ namespace Barotrauma.Networking
|
||||
}
|
||||
|
||||
// Replace a submarine dud with the downloaded version
|
||||
SubmarineInfo existingServerSub = ServerSubmarines.Find(s => s.Name == newSub.Name && s.MD5Hash?.StringRepresentation == newSub.MD5Hash?.StringRepresentation);
|
||||
SubmarineInfo existingServerSub = ServerSubmarines.Find(s =>
|
||||
s.Name == newSub.Name
|
||||
&& s.MD5Hash == newSub.MD5Hash);
|
||||
if (existingServerSub != null)
|
||||
{
|
||||
int existingIndex = ServerSubmarines.IndexOf(existingServerSub);
|
||||
ServerSubmarines.RemoveAt(existingIndex);
|
||||
ServerSubmarines.Insert(existingIndex, newSub);
|
||||
ServerSubmarines[existingIndex] = newSub;
|
||||
existingServerSub.Dispose();
|
||||
}
|
||||
|
||||
@@ -2620,7 +2623,13 @@ namespace Barotrauma.Networking
|
||||
using (var segmentTable = SegmentTableWriter<ClientNetSegment>.StartWriting(msg))
|
||||
{
|
||||
segmentTable.StartNewSegment(ClientNetSegment.Vote);
|
||||
Voting.ClientWrite(msg, voteType, data);
|
||||
bool succeeded = Voting.ClientWrite(msg, voteType, data);
|
||||
if (!succeeded)
|
||||
{
|
||||
throw new Exception(
|
||||
$"Failed to write vote of type {voteType}: " +
|
||||
$"data was of invalid type {data?.GetType().Name ?? "NULL"}");
|
||||
}
|
||||
}
|
||||
|
||||
ClientPeer.Send(msg, DeliveryMethod.Reliable);
|
||||
@@ -2790,7 +2799,6 @@ namespace Barotrauma.Networking
|
||||
/// </summary>
|
||||
public void RequestSelectMode(int modeIndex)
|
||||
{
|
||||
if (!HasPermission(ClientPermissions.SelectMode)) return;
|
||||
if (modeIndex < 0 || modeIndex >= GameMain.NetLobbyScreen.ModeList.Content.CountChildren)
|
||||
{
|
||||
DebugConsole.ThrowError("Gamemode index out of bounds (" + modeIndex + ")\n" + Environment.StackTrace.CleanupStackTrace());
|
||||
@@ -2844,13 +2852,14 @@ namespace Barotrauma.Networking
|
||||
/// <summary>
|
||||
/// Tell the server to end the round (permission required)
|
||||
/// </summary>
|
||||
public void RequestRoundEnd(bool save)
|
||||
public void RequestRoundEnd(bool save, bool quitCampaign = false)
|
||||
{
|
||||
IWriteMessage msg = new WriteOnlyMessage();
|
||||
msg.WriteByte((byte)ClientPacketHeader.SERVER_COMMAND);
|
||||
msg.WriteUInt16((UInt16)ClientPermissions.ManageRound);
|
||||
msg.WriteBoolean(true); //indicates round end
|
||||
msg.WriteBoolean(save);
|
||||
msg.WriteBoolean(quitCampaign);
|
||||
|
||||
ClientPeer.Send(msg, DeliveryMethod.Reliable);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user