(6c8ca4a55) Tester's build, January 20th 2020

This commit is contained in:
Juan Pablo Arce
2020-01-20 11:35:15 -03:00
parent e6a08d715b
commit 4a58987eae
47 changed files with 852 additions and 248 deletions

View File

@@ -1506,6 +1506,17 @@ namespace Barotrauma
ToolBox.OpenFileWithShell(Path.GetFullPath(filePath));
}));
#if DEBUG
commands.Add(new Command("querylobbies", "Queries all SteamP2P lobbies", (args) =>
{
Steamworks.Data.LobbyQuery lobbyQuery = Steamworks.SteamMatchmaking.CreateLobbyQuery().FilterDistanceWorldwide();
Steamworks.Data.Lobby[] lobbies = lobbyQuery.RequestAsync().Result;
foreach (var lobby in lobbies)
{
DebugConsole.NewMessage(lobby.GetData("name") + ", " + lobby.GetData("lobbyowner"));
}
}));
commands.Add(new Command("checkduplicates", "Checks the given language for duplicate translation keys and writes to file.", (string[] args) =>
{
if (args.Length != 1) return;
@@ -2264,6 +2275,18 @@ namespace Barotrauma
DebugConsole.NewMessage("Cannot pause when a multiplayer session is active.");
}
}));
AssignOnClientExecute("showseed|showlevelseed", (string[] args) =>
{
if (Level.Loaded == null)
{
ThrowError("No level loaded.");
}
else
{
NewMessage("Level seed: " + Level.Loaded.Seed);
}
});
}
private static void ReloadWearables(Character character, int variant = 0)

View File

@@ -279,6 +279,28 @@ namespace Barotrauma
ScreenOverlayColor, true);
}
#if UNSTABLE
string line1 = "Barotrauma Unstable v" + GameMain.Version;
string line2 = "(" + AssemblyInfo.GetBuildString() + ", branch " + AssemblyInfo.GetGitBranch() + ", revision " + AssemblyInfo.GetGitRevision() + ")";
Style.GetComponentStyle("OuterGlow").Sprites[GUIComponent.ComponentState.None][0].Draw(
spriteBatch, new Rectangle(-50, GameMain.GraphicsHeight - 80, 50 + (int)(Math.Max(LargeFont.MeasureString(line1).X, Font.MeasureString(line2).X) * 1.2f), 100), Color.Black * 0.8f);
LargeFont.DrawString(spriteBatch, line1,
new Vector2(10, GameMain.GraphicsHeight - 30 - LargeFont.MeasureString(line1).Y), Color.White * 0.6f);
Font.DrawString(spriteBatch, line2,
new Vector2(10, GameMain.GraphicsHeight - 30), Color.White * 0.6f);
if (Screen.Selected != GameMain.GameScreen)
{
var buttonRect =
new Rectangle(20 + (int)Math.Max(LargeFont.MeasureString(line1).X, Font.MeasureString(line2).X), GameMain.GraphicsHeight - (int)(45 * Scale), (int)(150 * Scale), (int)(40 * Scale));
if (DrawButton(spriteBatch, buttonRect, "Report Bug", Style.GetComponentStyle("GUIBugButton").Color * 0.8f))
{
GameMain.Instance.ShowBugReporter();
}
}
#endif
if (DisableHUD) { return; }
if (GameMain.ShowFPS || GameMain.DebugDraw)

View File

@@ -1026,11 +1026,17 @@ namespace Barotrauma
public void ShowBugReporter()
{
if (GUIMessageBox.VisibleBox != null && GUIMessageBox.VisibleBox.UserData as string == "bugreporter")
{
return;
}
var msgBox = new GUIMessageBox(TextManager.Get("bugreportbutton"), "");
msgBox.UserData = "bugreporter";
var linkHolder = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 1.0f), msgBox.Content.RectTransform)) { Stretch = true, RelativeSpacing = 0.025f };
linkHolder.RectTransform.MaxSize = new Point(int.MaxValue, linkHolder.Rect.Height);
#if !UNSTABLE
new GUIButton(new RectTransform(new Vector2(1.0f, 1.0f), linkHolder.RectTransform), TextManager.Get("bugreportfeedbackform"), style: "MainMenuGUIButton", textAlignment: Alignment.Left)
{
UserData = "https://steamcommunity.com/app/602960/discussions/1/",
@@ -1041,10 +1047,15 @@ namespace Barotrauma
return true;
}
};
#endif
new GUIButton(new RectTransform(new Vector2(1.0f, 1.0f), linkHolder.RectTransform), TextManager.Get("bugreportgithubform"), style: "MainMenuGUIButton", textAlignment: Alignment.Left)
{
#if UNSTABLE
UserData = "https://barotraumagame.com/unstable-3rf3w5t4ter/",
#else
UserData = "https://github.com/Regalis11/Barotrauma/issues/new?template=bug_report.md",
#endif
OnClicked = (btn, userdata) =>
{
ShowOpenUrlInWebBrowserPrompt(userdata as string);

View File

@@ -56,17 +56,30 @@ namespace Barotrauma.Tutorials
radioSpeakerName = TextManager.Get("Tutorial.Radio.Watchman");
GameMain.GameSession.CrewManager.AllowCharacterSwitch = false;
var revolver = captain.Inventory.FindItemByIdentifier("revolver");
var revolver = FindOrGiveItem(captain, "revolver");
revolver.Unequip(captain);
captain.Inventory.RemoveItem(revolver);
var captainscap = captain.Inventory.FindItemByIdentifier("captainscap");
captainscap.Unequip(captain);
captain.Inventory.RemoveItem(captainscap);
var captainscap =
captain.Inventory.FindItemByIdentifier("captainscap1") ??
captain.Inventory.FindItemByIdentifier("captainscap2") ??
captain.Inventory.FindItemByIdentifier("captainscap3");
var captainsuniform = captain.Inventory.FindItemByIdentifier("captainsuniform");
captainsuniform.Unequip(captain);
captain.Inventory.RemoveItem(captainsuniform);
if (captainscap != null)
{
captainscap.Unequip(captain);
captain.Inventory.RemoveItem(captainscap);
}
var captainsuniform =
captain.Inventory.FindItemByIdentifier("captainsuniform1") ??
captain.Inventory.FindItemByIdentifier("captainsuniform2") ??
captain.Inventory.FindItemByIdentifier("captainsuniform3");
if (captainsuniform != null)
{
captainsuniform.Unequip(captain);
captain.Inventory.RemoveItem(captainsuniform);
}
var steerOrder = Order.GetPrefab("steer");
captain_steerIcon = steerOrder.SymbolSprite;

View File

@@ -87,7 +87,7 @@ namespace Barotrauma.Tutorials
radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker");
engineer = Character.Controlled;
var toolbox = engineer.Inventory.FindItemByIdentifier("toolbox");
var toolbox = FindOrGiveItem(engineer, "toolbox");
toolbox.Unequip(engineer);
engineer.Inventory.RemoveItem(toolbox);

View File

@@ -87,11 +87,11 @@ namespace Barotrauma.Tutorials
radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker");
mechanic = Character.Controlled;
var toolbox = mechanic.Inventory.FindItemByIdentifier("toolbox");
var toolbox = FindOrGiveItem(mechanic, "toolbox");
toolbox.Unequip(mechanic);
mechanic.Inventory.RemoveItem(toolbox);
var crowbar = mechanic.Inventory.FindItemByIdentifier("crowbar");
var crowbar = FindOrGiveItem(mechanic, "crowbar");
crowbar.Unequip(mechanic);
mechanic.Inventory.RemoveItem(crowbar);

View File

@@ -89,19 +89,19 @@ namespace Barotrauma.Tutorials
radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker");
officer = Character.Controlled;
var handcuffs = officer.Inventory.FindItemByIdentifier("handcuffs");
var handcuffs = FindOrGiveItem(officer, "handcuffs");
handcuffs.Unequip(officer);
officer.Inventory.RemoveItem(handcuffs);
var stunbaton = officer.Inventory.FindItemByIdentifier("stunbaton");
var stunbaton = FindOrGiveItem(officer, "stunbaton");
stunbaton.Unequip(officer);
officer.Inventory.RemoveItem(stunbaton);
var ballistichelmet = officer.Inventory.FindItemByIdentifier("ballistichelmet");
var ballistichelmet = FindOrGiveItem(officer, "ballistichelmet");
ballistichelmet.Unequip(officer);
officer.Inventory.RemoveItem(ballistichelmet);
var bodyarmor = officer.Inventory.FindItemByIdentifier("bodyarmor");
var bodyarmor = FindOrGiveItem(officer, "bodyarmor");
bodyarmor.Unequip(officer);
officer.Inventory.RemoveItem(bodyarmor);

View File

@@ -298,5 +298,16 @@ namespace Barotrauma.Tutorials
character.Bloodloss = 0.0f;
character.SetStun(0.0f, true);
}
protected Item FindOrGiveItem(Character character, string identifier)
{
var item = character.Inventory.FindItemByIdentifier(identifier);
if (item != null) { return item; }
ItemPrefab itemPrefab = MapEntityPrefab.Find(name: null, identifier: identifier) as ItemPrefab;
item = new Item(itemPrefab, Vector2.Zero, submarine: null);
character.Inventory.TryPutItem(item, character);
return item;
}
}
}

View File

@@ -417,7 +417,7 @@ namespace Barotrauma
}
// show what game version the submarine was created on
if (!IsVanillaSubmarine())
if (!IsVanillaSubmarine() && GameVersion != null)
{
var versionText = new GUITextBlock(new RectTransform(new Vector2(leftPanelWidth, 0), descriptionBox.Content.RectTransform),
TextManager.Get("serverlistversion"), textAlignment: Alignment.TopLeft, font: font, wrap: true)

View File

@@ -1071,6 +1071,7 @@ namespace Barotrauma.Networking
{
if (Character != null) Character.Remove();
HasSpawned = false;
eventErrorWritten = false;
while (CoroutineManager.IsCoroutineRunning("EndGame"))
{
@@ -2670,6 +2671,48 @@ namespace Barotrauma.Networking
break;
}
clientPeer.Send(outMsg, DeliveryMethod.Reliable);
if (!eventErrorWritten)
{
WriteEventErrorData(error, expectedID, eventID, entityID);
eventErrorWritten = true;
}
}
private bool eventErrorWritten;
private void WriteEventErrorData(ClientNetError error, UInt16 expectedID, UInt16 eventID, UInt16 entityID)
{
List<string> errorLines = new List<string>
{
error.ToString(), ""
};
if (IsServerOwner)
{
errorLines.Add("SERVER OWNER");
}
if (error == ClientNetError.MISSING_EVENT)
{
errorLines.Add("Expected ID: " + expectedID + ", received " + eventID);
}
else if (error == ClientNetError.MISSING_ENTITY)
{
errorLines.Add("Event ID: " + eventID + ", entity ID " + entityID);
}
errorLines.Add("Entity IDs:");
List<Entity> sortedEntities = Entity.GetEntityList();
sortedEntities.Sort((e1, e2) => e1.ID.CompareTo(e2.ID));
foreach (Entity e in sortedEntities)
{
errorLines.Add(e.ID + ": " + e.ToString());
}
string filePath = "event_error_log_client_" + Name + "_" + ToolBox.RemoveInvalidFileNameChars(DateTime.UtcNow.ToShortTimeString() + ".log");
filePath = Path.Combine(ServerLog.SavePath, filePath);
File.WriteAllLines(filePath, errorLines);
}
#if DEBUG

View File

@@ -15,6 +15,7 @@ namespace Barotrauma.Networking
public string Port;
public string QueryPort;
public Steamworks.Data.PingLocation? PingLocation;
public UInt64 LobbyID;
public UInt64 OwnerID;
public bool OwnerVerified;
@@ -500,18 +501,19 @@ namespace Barotrauma.Networking
bool.TryParse(lobby.GetData("haspassword"), out bool hasPassword);
int.TryParse(lobby.GetData("playercount"), out int currPlayers);
int.TryParse(lobby.GetData("maxplayernum"), out int maxPlayers);
//UInt64.TryParse(lobby.GetData("connectsteamid"), out ulong connectSteamId);
string ip = lobby.GetData("hostipaddress");
UInt64 ownerId = SteamManager.SteamIDStringToUInt64(lobby.GetData("lobbyowner"));
if (OwnerID != ownerId) { return; }
if (string.IsNullOrWhiteSpace(ip)) { ip = ""; }
ServerName = lobby.GetData("name");
IP = "";
Port = "";
QueryPort = "";
IP = ip;
string pingLocation = lobby.GetData("pinglocation");
if (!string.IsNullOrEmpty(pingLocation))
{
PingLocation = Steamworks.Data.PingLocation.TryParseFromString(pingLocation);
}
PlayerCount = currPlayers;
MaxPlayers = maxPlayers;
HasPassword = hasPassword;

View File

@@ -110,43 +110,40 @@ namespace Barotrauma.Steam
{
get { return currentLobby?.Id ?? 0; }
}
private static Task<Steamworks.Data.Lobby?> lobbyCreationTask;
private static Task<Steamworks.Data.Lobby?> lobbyJoinTask;
public static void CreateLobby(ServerSettings serverSettings)
{
Steamworks.SteamMatchmaking.ResetActions();
Steamworks.SteamMatchmaking.OnLobbyCreated += (result, lobby) =>
{
currentLobby = lobby;
if (result != Steamworks.Result.OK)
{
DebugConsole.ThrowError("Failed to create Steam lobby: "+result.ToString());
lobbyState = LobbyState.NotConnected;
return;
}
DebugConsole.NewMessage("Lobby created!", Microsoft.Xna.Framework.Color.Lime);
lobbyState = LobbyState.Owner;
lobbyID = lobby.Id;
if (serverSettings.isPublic)
{
lobby.SetPublic();
}
else
{
lobby.SetFriendsOnly();
}
lobby.SetJoinable(true);
UpdateLobby(serverSettings);
};
if (lobbyState != LobbyState.NotConnected) { return; }
lobbyState = LobbyState.Creating;
lobbyCreationTask = Steamworks.SteamMatchmaking.CreateLobbyAsync(serverSettings.MaxPlayers+10);
TaskPool.Add(Steamworks.SteamMatchmaking.CreateLobbyAsync(serverSettings.MaxPlayers + 10),
(lobby) =>
{
if (currentLobby == null)
{
DebugConsole.ThrowError("Failed to create Steam lobby");
lobbyState = LobbyState.NotConnected;
return;
}
currentLobby = lobby.Result;
DebugConsole.NewMessage("Lobby created!", Microsoft.Xna.Framework.Color.Lime);
lobbyState = LobbyState.Owner;
lobbyID = (currentLobby?.Id).Value;
if (serverSettings.isPublic)
{
currentLobby?.SetPublic();
}
else
{
currentLobby?.SetFriendsOnly();
}
currentLobby?.SetJoinable(true);
UpdateLobby(serverSettings);
});
}
public static void UpdateLobby(ServerSettings serverSettings)
@@ -169,10 +166,11 @@ namespace Barotrauma.Steam
var contentPackages = GameMain.Config.SelectedContentPackages.Where(cp => cp.HasMultiplayerIncompatibleContent);
currentLobby?.SetData("name", serverSettings.ServerName);
currentLobby?.SetData("owner", SteamIDUInt64ToString(GetSteamID()));
currentLobby?.SetData("playercount", (GameMain.Client?.ConnectedClients?.Count??0).ToString());
currentLobby?.SetData("playercount", (GameMain.Client?.ConnectedClients?.Count ?? 0).ToString());
currentLobby?.SetData("maxplayernum", serverSettings.MaxPlayers.ToString());
//lobby?..CurrentLobbyData.SetData("connectsteamid", Steam.SteamManager.GetSteamID().ToString());
//currentLobby?.SetData("hostipaddress", lobbyIP);
currentLobby?.SetData("pinglocation", Steamworks.SteamNetworkingUtils.LocalPingLocation.ToString() ?? "");
currentLobby?.SetData("lobbyowner", SteamIDUInt64ToString(GetSteamID()));
currentLobby?.SetData("haspassword", serverSettings.HasPassword.ToString());
currentLobby?.SetData("message", serverSettings.ServerMessageText);
@@ -187,9 +185,12 @@ namespace Barotrauma.Steam
currentLobby?.SetData("voicechatenabled", serverSettings.VoiceChatEnabled.ToString());
currentLobby?.SetData("allowspectating", serverSettings.AllowSpectating.ToString());
currentLobby?.SetData("allowrespawn", serverSettings.AllowRespawn.ToString());
currentLobby?.SetData("karmaenabled", serverSettings.KarmaEnabled.ToString());
currentLobby?.SetData("friendlyfireenabled", serverSettings.AllowFriendlyFire.ToString());
currentLobby?.SetData("traitors", serverSettings.TraitorsEnabled.ToString());
currentLobby?.SetData("gamestarted", GameMain.Client.GameStarted.ToString());
currentLobby?.SetData("gamemode", GameMain.NetLobbyScreen?.SelectedMode?.Identifier??"");
currentLobby?.SetData("playstyle", serverSettings.PlayStyle.ToString());
currentLobby?.SetData("gamemode", GameMain.NetLobbyScreen?.SelectedMode?.Identifier ?? "");
DebugConsole.Log("Lobby updated!");
}
@@ -208,30 +209,22 @@ namespace Barotrauma.Steam
{
if (currentLobby.HasValue && currentLobby.Value.Id == id) { return; }
if (lobbyID == id) { return; }
Steamworks.SteamMatchmaking.ResetActions();
Steamworks.SteamMatchmaking.OnLobbyEntered += (lobby) =>
{
try
{
currentLobby = lobby;
lobbyState = LobbyState.Joined;
lobbyID = lobby.Id;
if (joinServer)
{
GameMain.Instance.ConnectLobby = 0;
GameMain.Instance.ConnectName = lobby.GetData("servername");
GameMain.Instance.ConnectEndpoint = SteamIDUInt64ToString(lobby.Owner.Id.Value);
}
}
finally
{
Steamworks.SteamMatchmaking.ResetActions();
}
};
lobbyState = LobbyState.Joining;
lobbyID = id;
lobbyJoinTask = Steamworks.SteamMatchmaking.JoinLobbyAsync(lobbyID);
TaskPool.Add(Steamworks.SteamMatchmaking.JoinLobbyAsync(lobbyID),
(lobby) =>
{
currentLobby = lobby.Result;
lobbyState = LobbyState.Joined;
lobbyID = (currentLobby?.Id).Value;
if (joinServer)
{
GameMain.Instance.ConnectLobby = 0;
GameMain.Instance.ConnectName = currentLobby?.GetData("servername");
GameMain.Instance.ConnectEndpoint = SteamIDUInt64ToString((currentLobby?.Owner.Id).Value);
}
});
}
public static bool GetServers(Action<ServerInfo> addToServerList, Action serverQueryFinished)
@@ -362,10 +355,13 @@ namespace Barotrauma.Steam
serverInfo.AllowSpectating = getLobbyBool("allowspectating");
serverInfo.AllowRespawn = getLobbyBool("allowrespawn");
serverInfo.VoipEnabled = getLobbyBool("voicechatenabled");
serverInfo.KarmaEnabled = getLobbyBool("karmaenabled");
serverInfo.FriendlyFireEnabled = getLobbyBool("friendlyfireenabled");
if (Enum.TryParse(lobby.GetData("traitors"), out YesNoMaybe traitorsEnabled)) { serverInfo.TraitorsEnabled = traitorsEnabled; }
serverInfo.GameStarted = lobby.GetData("gamestarted") == "True";
serverInfo.GameMode = lobby.GetData("gamemode");
if (Enum.TryParse(lobby.GetData("playstyle"), out PlayStyle playStyle)) serverInfo.PlayStyle = playStyle;
if (serverInfo.ContentPackageNames.Count != serverInfo.ContentPackageHashes.Count ||
serverInfo.ContentPackageHashes.Count != serverInfo.ContentPackageWorkshopUrls.Count)

View File

@@ -351,7 +351,16 @@ namespace Barotrauma
{
OnClicked = (btn, userdata) =>
{
System.Diagnostics.Process.Start(SaveUtil.SaveFolder);
try
{
ToolBox.OpenFileWithShell(SaveUtil.SaveFolder);
}
catch (Exception e)
{
new GUIMessageBox(
TextManager.Get("error"),
TextManager.GetWithVariables("showinfoldererror", new string[] { "[folder]", "[errormessage]" }, new string[] { SaveUtil.SaveFolder, e.Message }));
}
return true;
}
};

View File

@@ -312,23 +312,9 @@ namespace Barotrauma
}
};
#endif
var minButtonSize = new Point(120, 20);
var maxButtonSize = new Point(480, 80);
/*new GUIButton(new RectTransform(new Vector2(1.0f, 0.1f), buttonsParent.RectTransform), TextManager.Get("TutorialButton"), style: "GUIButtonLarge")
{
UserData = Tab.Tutorials,
OnClicked = SelectTab,
Enabled = false
};*/
/* var buttons = GUI.CreateButtons(9, new Vector2(1, 0.04f), buttonsParent.RectTransform, anchor: Anchor.BottomLeft,
minSize: minButtonSize, maxSize: maxButtonSize, relativeSpacing: 0.005f, extraSpacing: i => i % 2 == 0 ? 20 : 0);
buttons.ForEach(b => b.Color *= 0.8f);
SetupButtons(buttons);
buttons.ForEach(b => b.TextBlock.SetTextPos());*/
var relativeSize = new Vector2(0.6f, 0.65f);
var minSize = new Point(600, 400);
var maxSize = new Point(2000, 1500);
@@ -491,7 +477,7 @@ namespace Barotrauma
if (GameMain.Config.ShowTutorialSkipWarning)
{
selectedTab = 0;
ShowTutorialSkipWarning(selectedTab);
ShowTutorialSkipWarning(Tab.NewGame);
return true;
}
if (!GameMain.Config.CampaignDisclaimerShown)
@@ -516,7 +502,7 @@ namespace Barotrauma
if (GameMain.Config.ShowTutorialSkipWarning)
{
selectedTab = 0;
ShowTutorialSkipWarning(tab);
ShowTutorialSkipWarning(Tab.JoinServer);
return true;
}
if (!GameMain.Config.CampaignDisclaimerShown)
@@ -955,8 +941,9 @@ namespace Barotrauma
GUI.Draw(Cam, spriteBatch);
#if !UNSTABLE
GUI.Font.DrawString(spriteBatch, "Barotrauma v" + GameMain.Version + " (" + AssemblyInfo.GetBuildString() + ", branch " + AssemblyInfo.GetGitBranch() + ", revision " + AssemblyInfo.GetGitRevision() + ")", new Vector2(10, GameMain.GraphicsHeight - 20), Color.White * 0.7f);
#endif
if (selectedTab != Tab.Credits)
{
Vector2 textPos = new Vector2(GameMain.GraphicsWidth - 10, GameMain.GraphicsHeight - 10);

View File

@@ -949,28 +949,37 @@ namespace Barotrauma
Version.TryParse(serverInfo.GameVersion, out remoteVersion);
}
bool incompatible =
(!serverInfo.ContentPackageHashes.Any() && serverInfo.ContentPackagesMatch(GameMain.Config.SelectedContentPackages)) ||
(remoteVersion != null && !NetworkMember.IsCompatible(GameMain.Version, remoteVersion));
//never show newer versions
//(ignore revision number, it doesn't affect compatibility)
if (remoteVersion != null &&
(remoteVersion.Major > GameMain.Version.Major || remoteVersion.Minor > GameMain.Version.Minor || remoteVersion.Build > GameMain.Version.Build))
{
child.Visible = false;
}
else
{
bool incompatible =
(!serverInfo.ContentPackageHashes.Any() && serverInfo.ContentPackagesMatch(GameMain.Config.SelectedContentPackages)) ||
(remoteVersion != null && !NetworkMember.IsCompatible(GameMain.Version, remoteVersion));
child.Visible =
serverInfo.OwnerVerified &&
serverInfo.ServerName.ToLowerInvariant().Contains(searchBox.Text.ToLowerInvariant()) &&
(!filterSameVersion.Selected || (remoteVersion != null && NetworkMember.IsCompatible(remoteVersion, GameMain.Version))) &&
(!filterPassword.Selected || !serverInfo.HasPassword) &&
(!filterIncompatible.Selected || !incompatible) &&
(!filterFull.Selected || serverInfo.PlayerCount < serverInfo.MaxPlayers) &&
(!filterEmpty.Selected || serverInfo.PlayerCount > 0) &&
(!filterWhitelisted.Selected || serverInfo.UsingWhiteList == true) &&
(!filterKarma.Selected || serverInfo.KarmaEnabled == true) &&
(!filterFriendlyFire.Selected || serverInfo.FriendlyFireEnabled == false) &&
(!filterTraitor.Selected || serverInfo.TraitorsEnabled == YesNoMaybe.Yes || serverInfo.TraitorsEnabled == YesNoMaybe.Maybe) &&
(!filterVoip.Selected || serverInfo.VoipEnabled == false) &&
(!filterModded.Selected || serverInfo.GetPlayStyleTags().Any(t => t.Contains("modded.true"))) &&
((selectedTab == ServerListTab.All && (serverInfo.LobbyID != 0 || !string.IsNullOrWhiteSpace(serverInfo.Port))) ||
(selectedTab == ServerListTab.Recent && serverInfo.Recent) ||
(selectedTab == ServerListTab.Favorites && serverInfo.Favorite)) &&
(remoteVersion != null && remoteVersion <= GameMain.Version);
child.Visible =
serverInfo.OwnerVerified &&
serverInfo.ServerName.ToLowerInvariant().Contains(searchBox.Text.ToLowerInvariant()) &&
(!filterSameVersion.Selected || (remoteVersion != null && NetworkMember.IsCompatible(remoteVersion, GameMain.Version))) &&
(!filterPassword.Selected || !serverInfo.HasPassword) &&
(!filterIncompatible.Selected || !incompatible) &&
(!filterFull.Selected || serverInfo.PlayerCount < serverInfo.MaxPlayers) &&
(!filterEmpty.Selected || serverInfo.PlayerCount > 0) &&
(!filterWhitelisted.Selected || serverInfo.UsingWhiteList == true) &&
(!filterKarma.Selected || serverInfo.KarmaEnabled == true) &&
(!filterFriendlyFire.Selected || serverInfo.FriendlyFireEnabled == false) &&
(!filterTraitor.Selected || serverInfo.TraitorsEnabled == YesNoMaybe.Yes || serverInfo.TraitorsEnabled == YesNoMaybe.Maybe) &&
(!filterVoip.Selected || serverInfo.VoipEnabled == false) &&
(!filterModded.Selected || serverInfo.GetPlayStyleTags().Any(t => t.Contains("modded.true"))) &&
((selectedTab == ServerListTab.All && (serverInfo.LobbyID != 0 || !string.IsNullOrWhiteSpace(serverInfo.Port))) ||
(selectedTab == ServerListTab.Recent && serverInfo.Recent) ||
(selectedTab == ServerListTab.Favorites && serverInfo.Favorite));
}
foreach (GUITickBox tickBox in playStyleTickBoxes)
{
@@ -1673,6 +1682,14 @@ namespace Barotrauma
DebugConsole.ThrowError("Ping is null", ex);
}
}
else if (serverInfo.PingLocation != null)
{
Steamworks.Data.PingLocation pingLocation = serverInfo.PingLocation.Value;
serverInfo.Ping = Steamworks.SteamNetworkingUtils.LocalPingLocation?.EstimatePingTo(pingLocation) ?? -1;
serverInfo.PingChecked = true;
serverPingText.TextColor = GetPingTextColor(serverInfo.Ping);
serverPingText.Text = serverInfo.Ping > -1 ? serverInfo.Ping.ToString() : "?";
}
if (serverInfo.LobbyID == 0 && (string.IsNullOrWhiteSpace(serverInfo.IP) || string.IsNullOrWhiteSpace(serverInfo.Port)))
{

View File

@@ -278,13 +278,13 @@ namespace Barotrauma
{
//filter out the items published by the player (they're shown in the publish tab)
var mySteamID = SteamManager.GetSteamID();
OnItemsReceived(items.Where(it => it.Owner.Id != mySteamID).ToList(), subscribedItemList);
OnItemsReceived(GetVisibleItems(items.Where(it => it.Owner.Id != mySteamID)), subscribedItemList);
});
}
private void RefreshPopularItems()
{
SteamManager.GetPopularWorkshopItems((items) => { OnItemsReceived(items, topItemList); }, 20);
SteamManager.GetPopularWorkshopItems((items) => { OnItemsReceived(GetVisibleItems(items), topItemList); }, 20);
}
private void RefreshPublishedItems()
@@ -293,6 +293,17 @@ namespace Barotrauma
RefreshMyItemList();
}
private IEnumerable<Steamworks.Ugc.Item> GetVisibleItems(IEnumerable<Steamworks.Ugc.Item> items)
{
#if UNSTABLE
//show everything in Unstable
return items;
#else
//hide Unstable items in normal version
return items.Where(it => !it.HasTag("unstable"));
#endif
}
private void RefreshMyItemList()
{
myItemList.ClearChildren();
@@ -341,7 +352,7 @@ namespace Barotrauma
}
}
private void OnItemsReceived(IList<Steamworks.Ugc.Item> itemDetails, GUIListBox listBox)
private void OnItemsReceived(IEnumerable<Steamworks.Ugc.Item> itemDetails, GUIListBox listBox)
{
CrossThread.RequestExecutionOnMainThread(() =>
{
@@ -351,7 +362,7 @@ namespace Barotrauma
CreateWorkshopItemFrame(item, listBox);
}
if (itemDetails.Count == 0 && listBox == subscribedItemList)
if (itemDetails.Count() == 0 && listBox == subscribedItemList)
{
new GUITextBlock(new RectTransform(new Vector2(0.9f, 0.9f), listBox.Content.RectTransform, Anchor.Center), TextManager.Get("NoSubscribedMods"), wrap: true)
{
@@ -1530,11 +1541,30 @@ namespace Barotrauma
private void PublishWorkshopItem()
{
if (itemContentPackage == null || itemEditor == null) return;
if (itemContentPackage == null || itemEditor == null) { return; }
#if UNSTABLE
var msgBox = new GUIMessageBox(TextManager.Get("warning"), TextManager.Get("unstableworkshopitempublishwarning"),
new string[] { TextManager.Get("Yes"), TextManager.Get("No") });
msgBox.Buttons[0].OnClicked = (btn, userdata) =>
{
var workshopPublishStatus = SteamManager.StartPublishItem(itemContentPackage, itemEditor);
if (workshopPublishStatus != null)
{
if (!itemEditor.Value.Tags.Contains("unstable")) { itemEditor.Value.Tags.Add("unstable"); }
CoroutineManager.StartCoroutine(WaitForPublish(workshopPublishStatus), "WaitForPublish");
}
msgBox.Close();
return true;
};
msgBox.Buttons[1].OnClicked += msgBox.Close;
#else
var workshopPublishStatus = SteamManager.StartPublishItem(itemContentPackage, itemEditor);
if (workshopPublishStatus == null) { return; }
if (itemEditor.Value.Tags.Contains("unstable")) { itemEditor.Value.Tags.Remove("unstable"); }
CoroutineManager.StartCoroutine(WaitForPublish(workshopPublishStatus), "WaitForPublish");
#endif
}
private IEnumerable<object> WaitForPublish(SteamManager.WorkshopPublishStatus workshopPublishStatus)
@@ -1591,7 +1621,7 @@ namespace Barotrauma
SelectTab(Tab.Browse);
}
#region UI management
#region UI management
public override void Draw(double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch)
{
@@ -1613,6 +1643,6 @@ namespace Barotrauma
{
}
#endregion
#endregion
}
}

View File

@@ -353,6 +353,19 @@ namespace Barotrauma.Sounds
private uint[] unqueuedBuffers;
private float[] streamBufferAmplitudes;
public int StreamSeekPos
{
get { return streamSeekPos; }
set
{
if (!IsStream)
{
throw new InvalidOperationException("Cannot set StreamSeekPos on a non-streaming sound channel.");
}
streamSeekPos = Math.Max(value, 0);
}
}
private object mutex;
public bool IsPlaying

View File

@@ -39,6 +39,9 @@ namespace Barotrauma
public readonly Vector2 IntensityRange;
public readonly bool ContinueFromPreviousTime;
public int PreviousTime;
public readonly XElement Element;
public BackgroundMusic(XElement element)
@@ -47,6 +50,7 @@ namespace Barotrauma
this.Type = element.GetAttributeString("type", "").ToLowerInvariant();
this.IntensityRange = element.GetAttributeVector2("intensityrange", new Vector2(0.0f, 100.0f));
this.DuckVolume = element.GetAttributeBool("duckvolume", false);
this.ContinueFromPreviousTime = element.GetAttributeBool("continuefromprevioustime", false);
this.Element = element;
}
}
@@ -681,6 +685,10 @@ namespace Barotrauma
DisposeMusicChannel(i);
currentMusic[i] = GameMain.SoundManager.LoadSound(targetMusic[i].File, true);
musicChannel[i] = currentMusic[i].Play(0.0f, "music");
if (targetMusic[i].ContinueFromPreviousTime)
{
musicChannel[i].StreamSeekPos = targetMusic[i].PreviousTime;
}
musicChannel[i].Looping = true;
}
}
@@ -705,6 +713,12 @@ namespace Barotrauma
private static void DisposeMusicChannel(int index)
{
var clip = musicClips.Find(m => m.File == musicChannel[index]?.Sound?.Filename);
if (clip != null)
{
if (clip.ContinueFromPreviousTime) { clip.PreviousTime = musicChannel[index].StreamSeekPos; }
}
musicChannel[index]?.Dispose(); musicChannel[index] = null;
currentMusic[index]?.Dispose(); currentMusic[index] = null;
}

View File

@@ -6,11 +6,12 @@
<RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma</Product>
<Version>0.9.7.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright>
<Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms>
<AssemblyName>Barotrauma</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -31,12 +32,24 @@
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|AnyCPU'">
<DefineConstants>TRACE;CLIENT;LINUX;USE_STEAM;UNSTABLE</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;CLIENT;LINUX;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|x64'">
<DefineConstants>TRACE;CLIENT;LINUX;X64;USE_STEAM;UNSTABLE</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" />
@@ -79,16 +92,26 @@
<LogicalName>Icon.bmp</LogicalName>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.Linux.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj" />
<ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.Linux.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug'">
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.Linux.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
</ItemGroup>
<ItemGroup>
@@ -110,12 +133,12 @@
<!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true">
<Output TaskParameter="exitcode" ItemName="exitcodes"/>
<Output TaskParameter="exitcode" ItemName="exitcodes" />
</Exec>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)">

View File

@@ -6,12 +6,13 @@
<RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma</Product>
<Version>0.9.7.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright>
<Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms>
<AssemblyName>Barotrauma</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<ReleaseVersion>0.9.0.0</ReleaseVersion>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -33,12 +34,25 @@
<OutputPath>..\bin\$(Configuration)Mac</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|AnyCPU'">
<DefineConstants>TRACE;CLIENT;OSX;USE_STEAM;RELEASE;NETCOREAPP;NETCOREAPP3_0;UNSTABLE</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<DebugType />
<OutputPath>..\bin\$(Configuration)Mac</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;CLIENT;OSX;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Mac\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|x64'">
<DefineConstants>TRACE;CLIENT;OSX;X64;USE_STEAM;UNSTABLE</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Mac\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" />
@@ -81,14 +95,14 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.MacOS.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.MacOS.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
</ItemGroup>
<ItemGroup>
@@ -121,12 +135,12 @@
<!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true">
<Output TaskParameter="exitcode" ItemName="exitcodes"/>
<Output TaskParameter="exitcode" ItemName="exitcodes" />
</Exec>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)">

View File

@@ -6,11 +6,12 @@
<RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma</Product>
<Version>0.9.7.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright>
<Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms>
<AssemblyName>Barotrauma</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -31,12 +32,24 @@
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|AnyCPU'">
<DefineConstants>TRACE;CLIENT;WINDOWS;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;CLIENT;WINDOWS;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|x64'">
<DefineConstants>TRACE;CLIENT;WINDOWS;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" />
@@ -75,16 +88,26 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.Windows.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj" />
<ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.Windows.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug'">
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.Windows.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
</ItemGroup>
<ItemGroup>
@@ -96,6 +119,33 @@
<PackageReference Include="RestSharp" Version="106.6.10" />
</ItemGroup>
<ItemGroup>
<Content Update="..\BarotraumaShared\Content\Lights\divinghelmetlight.psd">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Update="..\BarotraumaShared\Content\Lights\light.psd">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Update="..\BarotraumaShared\Content\Lights\lightcone.psd">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Update="..\BarotraumaShared\Content\Lights\penumbra.psd">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Update="..\BarotraumaShared\Content\Map\BackgroundSmoke.psd">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Update="..\BarotraumaShared\Content\SplashScreens\Original\Splash_Daedalic.mp4">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Update="..\BarotraumaShared\Content\SplashScreens\Original\Splash_FF.mp4">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
<Content Update="..\BarotraumaShared\Content\SplashScreens\Original\Splash_UTG.mp4">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!-- Sourced from https://stackoverflow.com/a/45248069 -->
<Target Name="GetGitRevision" BeforeTargets="WriteGitRevision" Condition="'$(BuildHash)' == ''">
<PropertyGroup>
@@ -106,12 +156,12 @@
<!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true">
<Output TaskParameter="exitcode" ItemName="exitcodes"/>
<Output TaskParameter="exitcode" ItemName="exitcodes" />
</Exec>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)">

View File

@@ -6,11 +6,12 @@
<RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma Dedicated Server</Product>
<Version>0.9.7.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright>
<Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms>
<AssemblyName>DedicatedServer</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -31,24 +32,43 @@
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|AnyCPU'">
<DefineConstants>TRACE;SERVER;LINUX;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;SERVER;LINUX;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|x64'">
<DefineConstants>TRACE;SERVER;LINUX;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" />
<Compile Include="..\BarotraumaShared\**\*.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" />
<ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug'">
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
</ItemGroup>
<!-- Sourced from https://stackoverflow.com/a/45248069 -->
@@ -61,12 +81,12 @@
<!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true">
<Output TaskParameter="exitcode" ItemName="exitcodes"/>
<Output TaskParameter="exitcode" ItemName="exitcodes" />
</Exec>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)">

View File

@@ -6,12 +6,13 @@
<RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma Dedicated Server</Product>
<Version>0.9.7.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright>
<Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms>
<AssemblyName>DedicatedServer</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<ReleaseVersion>0.9.0.0</ReleaseVersion>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -35,12 +36,25 @@
<OutputPath>..\bin\ReleaseMac</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|AnyCPU'">
<DefineConstants>TRACE;SERVER;OSX;USE_STEAM;RELEASE;NETCOREAPP;NETCOREAPP3_0;UNSTABLE</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<DebugType />
<OutputPath>..\bin\ReleaseMac</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;SERVER;OSX;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Mac\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|x64'">
<DefineConstants>TRACE;SERVER;OSX;X64;USE_STEAM;UNSTABLE</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Mac\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" />
@@ -49,12 +63,19 @@
<Content Remove="..\BarotraumaShared\libsteam_api64.so" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" />
<ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug'">
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
</ItemGroup>
<!-- Sourced from https://stackoverflow.com/a/45248069 -->
@@ -73,12 +94,12 @@
<!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true">
<Output TaskParameter="exitcode" ItemName="exitcodes"/>
<Output TaskParameter="exitcode" ItemName="exitcodes" />
</Exec>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)">

View File

@@ -742,6 +742,15 @@ namespace Barotrauma.Networking
Log(c.Name + " has reported an error: " + errorStr, ServerLog.MessageType.Error);
GameAnalyticsManager.AddErrorEventOnce("GameServer.HandleClientError:" + errorStr, GameAnalyticsSDK.Net.EGAErrorSeverity.Error, errorStr);
try
{
WriteEventErrorData(c, errorStr);
}
catch (Exception e)
{
DebugConsole.ThrowError("Failed to write event error data", e);
}
if (c.Connection == OwnerConnection)
{
SendDirectChatMessage(errorStr, c, ChatMessageType.MessageBox);
@@ -751,6 +760,44 @@ namespace Barotrauma.Networking
{
KickClient(c, errorStr);
}
}
private void WriteEventErrorData(Client client, string errorStr)
{
string filePath = "event_error_log_server_" + client.Name + "_" + ToolBox.RemoveInvalidFileNameChars(DateTime.UtcNow.ToShortTimeString() + ".log");
filePath = Path.Combine(ServerLog.SavePath, filePath);
if (File.Exists(filePath)) { return; }
List<string> errorLines = new List<string>
{
errorStr, ""
};
errorLines.Add("Entity IDs:");
List<Entity> sortedEntities = Entity.GetEntityList();
sortedEntities.Sort((e1, e2) => e1.ID.CompareTo(e2.ID));
foreach (Entity e in sortedEntities)
{
errorLines.Add(e.ID + ": " + e.ToString());
}
errorLines.Add("");
errorLines.Add("EntitySpawner events:");
foreach (var entityEvent in entityEventManager.UniqueEvents)
{
if (entityEvent.Entity is EntitySpawner)
{
var spawnData = entityEvent.Data[0] as EntitySpawner.SpawnOrRemove;
errorLines.Add(
entityEvent.ID + ": " +
(spawnData.Remove ? "Remove " : "Create ") +
spawnData.Entity.ToString() +
" (" + spawnData.OriginalID + ", " + spawnData.Entity.ID + ")");
}
}
File.WriteAllLines(filePath, errorLines);
}
public override void CreateEntityEvent(INetSerializable entity, object[] extraData = null)

View File

@@ -6,11 +6,12 @@
<RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma Dedicated Server</Product>
<Version>0.9.7.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright>
<Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms>
<AssemblyName>DedicatedServer</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -31,24 +32,44 @@
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|AnyCPU'">
<DefineConstants>TRACE;SERVER;WINDOWS;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;SERVER;WINDOWS;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Unstable|x64'">
<DefineConstants>TRACE;SERVER;WINDOWS;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" />
<Compile Include="..\BarotraumaShared\**\*.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" />
<ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug'">
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Debug" />
</ItemGroup>
<!-- Sourced from https://stackoverflow.com/a/45248069 -->
@@ -61,12 +82,12 @@
<!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true">
<Output TaskParameter="exitcode" ItemName="exitcodes"/>
<Output TaskParameter="exitcode" ItemName="exitcodes" />
</Exec>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/>
<Exec Command="echo GIT_UNAVAILABLE &gt; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)">

View File

@@ -78,17 +78,19 @@
<Outpost file="Content/Map/Outposts/Outpost.sub" />
<Outpost file="Content/Map/Outposts/Outpost2.sub" />
<Outpost file="Content/Map/Outposts/Outpost3.sub" />
<Submarine file="Submarines/Orca.sub" />
<Submarine file="Submarines/Typhon.sub" />
<Submarine file="Submarines/Selkie.sub" />
<Submarine file="Submarines/Berilia.sub" />
<Submarine file="Submarines/Dugong.sub" />
<Submarine file="Submarines/Hemulen.sub" />
<Submarine file="Submarines/Humpback.sub" />
<Submarine file="Submarines/Kastrull.sub" />
<Submarine file="Submarines/KastrullDrone.sub" />
<Submarine file="Submarines/Dugong.sub" />
<Submarine file="Submarines/Venture.sub" />
<Submarine file="Submarines/Orca.sub" />
<Submarine file="Submarines/Remora.sub" />
<Submarine file="Submarines/RemoraDrone.sub" />
<Submarine file="Submarines/Selkie.sub" />
<Submarine file="Submarines/Typhon.sub" />
<Submarine file="Submarines/Typhon2.sub" />
<Submarine file="Submarines/Venture.sub" />
<Text file="Content/Texts/English/EnglishVanilla.xml" />
<Text file="Content/Texts/German/GermanVanilla.xml" />
<Text file="Content/Texts/French/FrenchVanilla.xml" />

View File

@@ -1233,14 +1233,14 @@ namespace Barotrauma
LatchOntoAI?.DeattachFromBody();
Character.AnimController.ReleaseStuckLimbs();
if (attacker == null || attacker.AiTarget == null) { return; }
if (State == AIState.Flee)
{
SelectTarget(attacker.AiTarget);
return;
}
if (attacker == null || attacker.AiTarget == null) { return; }
if (attackResult.Damage > 0.0f && Character.Params.AI.AttackWhenProvoked)
{
if (attacker.Submarine == Character.Submarine && canAttackCharacters ||

View File

@@ -1370,7 +1370,7 @@ namespace Barotrauma
if (human)
{
var variant = Rand.Range(0, job.Variants, Rand.RandSync.Server);
var variant = job != null ? Rand.Range(0, job.Variants, Rand.RandSync.Server) : 0;
CharacterInfo characterInfo = new CharacterInfo(CharacterPrefab.HumanSpeciesName, jobPrefab: job, variant: variant);
spawnedCharacter = Character.Create(characterInfo, spawnPosition, ToolBox.RandomSeed(8));
if (job != null)

View File

@@ -2,9 +2,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Barotrauma.Extensions;
using System.Linq;
namespace Barotrauma
{
@@ -71,6 +69,7 @@ namespace Barotrauma
for (int i = 0; i < prefabsWithContainer.Count; i++)
{
var itemPrefab = prefabsWithContainer[i];
if (itemPrefab == null) { continue; }
if (SpawnItems(itemPrefab))
{
removals.Add(itemPrefab);

View File

@@ -341,7 +341,7 @@ namespace Barotrauma.Items.Components
//ignore sensors and items
if (fixture?.Body == null || fixture.IsSensor) { return -1; }
if (fixture.Body.UserData is Item) { return -1; }
if (fixture.Body.UserData is Item item && item.GetComponent<Door>() == null) { return -1; }
if (fixture.Body?.UserData as string == "ruinroom") { return -1; }
//ignore everything else than characters, sub walls and level walls

View File

@@ -546,6 +546,8 @@ namespace Barotrauma
private void HandleLimbCollision(Impact collision, Limb limb)
{
if (limb?.body?.FarseerBody == null || limb.character == null) { return; }
if (limb.Mass > MinImpactLimbMass)
{
Vector2 normal =
@@ -565,18 +567,18 @@ namespace Barotrauma
//find all contacts between the limb and level walls
List<Contact> levelContacts = new List<Contact>();
ContactEdge contactEdge = limb.body.FarseerBody.ContactList;
while (contactEdge != null)
while (contactEdge?.Contact != null)
{
if (contactEdge.Contact.Enabled &&
contactEdge.Other.UserData is VoronoiCell &&
contactEdge.Contact.IsTouching)
contactEdge.Contact.IsTouching &&
contactEdge.Other?.UserData is VoronoiCell)
{
levelContacts.Add(contactEdge.Contact);
}
contactEdge = contactEdge.Next;
}
if (levelContacts.Count == 0) return;
if (levelContacts.Count == 0) { return; }
//if the limb is in contact with the level, apply an artifical impact to prevent the sub from bouncing on top of it
//not a very realistic way to handle the collisions (makes it seem as if the characters were made of reinforced concrete),

View File

@@ -59,10 +59,10 @@ namespace Barotrauma.Networking
{
shutDown = true;
readCancellationToken?.Cancel();
readCancellationToken?.Dispose();
readCancellationToken = null;
readThread?.Join(); readThread = null;
writeThread?.Join(); writeThread = null;
readCancellationToken?.Dispose();
readCancellationToken = null;
readStream?.Dispose(); readStream = null;
writeStream?.Dispose(); writeStream = null;
}
@@ -71,11 +71,11 @@ namespace Barotrauma.Networking
{
while (!shutDown)
{
Task<int> readTask = readStream.ReadAsync(tempBytes, 0, tempBytes.Length, readCancellationToken.Token);
Task<int> readTask = readStream?.ReadAsync(tempBytes, 0, tempBytes.Length, readCancellationToken.Token);
TimeSpan ts = TimeSpan.FromMilliseconds(15000);
if (!readTask.Wait(ts))
if (readTask == null || !readTask.Wait(ts))
{
readCancellationToken.Cancel();
readCancellationToken?.Cancel();
shutDown = true;
return;
}
@@ -142,8 +142,8 @@ namespace Barotrauma.Networking
byte[] lengthBytes = new byte[2];
lengthBytes[0] = (byte)(msg.Length & 0xFF);
lengthBytes[1] = (byte)((msg.Length >> 8) & 0xFF);
writeStream.Write(lengthBytes, 0, 2);
writeStream.Write(msg, 0, msg.Length);
writeStream?.Write(lengthBytes, 0, 2);
writeStream?.Write(msg, 0, msg.Length);
if (shutDown) { break; }

View File

@@ -29,7 +29,11 @@ namespace Barotrauma.Networking
//arbitrary extra data that will be passed to the Write method of the serializable entity
//(the index of an itemcomponent for example)
protected object[] Data;
public object[] Data
{
get;
private set;
}
public bool Sent;

Binary file not shown.

View File

@@ -1,3 +1,24 @@
---------------------------------------------------------------------------------------------------------
v0.9.7000 (Unstable)
---------------------------------------------------------------------------------------------------------
- Additional logging to diagnose event/entity ID errors: server and clients write a log file with a bunch of debug information the error happens. The files can be found in the ServerLogs folder after the error has occurred. If you get log files, please send them to us to help us diagnose these bugs!
- Fixed "skip tutorials" returning to the main menu instead of opening the correct tab when starting a new game.
- Fixed crashing when an enemy takes damage from something else than a character.
- Fixed clients disconnecting if a sub with no version number (or a sub the client hasn't received yet) is selected.
- Fixed crash when spawning a human without specified job through the console.
- Fixed several bugs that were causing crashes due to race conditions in the server list.
- Made "showseed" console command usable by clients.
- Fixed accordion collider.
- Fixed doors not blocking hitscan weapons.
- Continue playing the main menu and editor musics from previous position instead of restarting when switching between screens.
- Added missing sonar display background to sonar monitor.
- Fuel rods now always return their steel on deconstruction.
- Constructing fuel rods now requires lead.
- Added an improved version of Typhon.
- Reworked Berilia.
---------------------------------------------------------------------------------------------------------
v0.9.7.0
---------------------------------------------------------------------------------------------------------

View File

@@ -0,0 +1,10 @@
#!/bin/sh
cd ../../Barotrauma
cd BarotraumaClient
dotnet publish LinuxClient.csproj -c Unstable --self-contained -r linux-x64 \/p:Platform="x64"
cd ..
cd BarotraumaServer
dotnet publish LinuxServer.csproj -c Unstable --self-contained -r linux-x64 \/p:Platform="x64"

View File

@@ -0,0 +1,10 @@
#!/bin/sh
cd ../../Barotrauma
cd BarotraumaClient
dotnet publish MacClient.csproj -c Unstable --self-contained -r osx-x64 \/p:Platform="x64"
cd ..
cd BarotraumaServer
dotnet publish MacServer.csproj -c Unstable --self-contained -r osx-x64 \/p:Platform="x64"

View File

@@ -0,0 +1,10 @@
#!/bin/sh
cd ../../Barotrauma
cd BarotraumaClient
dotnet publish WindowsClient.csproj -c Unstable --self-contained -r win-x64 \/p:Platform="x64"
cd ..
cd BarotraumaServer
dotnet publish WindowsServer.csproj -c Unstable --self-contained -r win-x64 \/p:Platform="x64"

View File

@@ -0,0 +1,12 @@
@ECHO OFF
cd ../../Barotrauma
cd BarotraumaClient
dotnet publish LinuxClient.csproj -c Unstable --self-contained -r linux-x64 /p:Platform=x64
cd ..
cd BarotraumaServer
dotnet publish LinuxServer.csproj -c Unstable --self-contained -r linux-x64 /p:Platform=x64
PAUSE

View File

@@ -0,0 +1,12 @@
@ECHO OFF
cd ../../Barotrauma
cd BarotraumaClient
dotnet publish MacClient.csproj -c Unstable --self-contained -r osx-x64 /p:Platform=x64
cd ..
cd BarotraumaServer
dotnet publish MacServer.csproj -c Unstable --self-contained -r osx-x64 /p:Platform=x64
PAUSE

View File

@@ -0,0 +1,12 @@
@ECHO OFF
cd ../../Barotrauma
cd BarotraumaClient
dotnet publish WindowsClient.csproj -c Unstable --self-contained -r win-x64 /p:Platform=x64
cd ..
cd BarotraumaServer
dotnet publish WindowsServer.csproj -c Unstable --self-contained -r win-x64 /p:Platform=x64
PAUSE

View File

@@ -40,33 +40,41 @@ namespace Steamworks
private static byte[][] BufferPool;
private static int BufferPoolIndex;
private static object BufferMutex = new object();
/// <summary>
/// Returns a buffer. This will get returned and reused later on.
/// </summary>
public static byte[] TakeBuffer( int minSize )
{
if ( BufferPool == null )
int bufferPoolIndex;
lock (BufferMutex)
{
//
// The pool has 8 items.
//
BufferPool = new byte[8][];
if (BufferPool == null)
{
//
// The pool has 8 items.
//
BufferPool = new byte[8][];
for ( int i = 0; i < BufferPool.Length; i++ )
BufferPool[i] = new byte[ 1024 * 128 ];
for (int i = 0; i < BufferPool.Length; i++)
BufferPool[i] = new byte[1024 * 128];
}
BufferPoolIndex++;
if (BufferPoolIndex < 0 || BufferPoolIndex >= BufferPool.Length)
BufferPoolIndex = 0;
bufferPoolIndex = BufferPoolIndex;
}
BufferPoolIndex++;
if ( BufferPoolIndex >= BufferPool.Length )
BufferPoolIndex = 0;
if ( BufferPool[BufferPoolIndex].Length < minSize )
if ( BufferPool[bufferPoolIndex].Length < minSize )
{
BufferPool[BufferPoolIndex] = new byte[minSize + 1024];
BufferPool[bufferPoolIndex] = new byte[minSize + 1024];
}
return BufferPool[BufferPoolIndex];
return BufferPool[bufferPoolIndex];
}
internal unsafe static string MemoryToString( IntPtr ptr )

View File

@@ -45,6 +45,8 @@ Global
Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Unstable|Any CPU = Unstable|Any CPU
Unstable|x64 = Unstable|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -55,6 +57,10 @@ Global
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Release|Any CPU.Build.0 = Release|Any CPU
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Release|x64.ActiveCfg = Release|x64
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Release|x64.Build.0 = Release|x64
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Unstable|Any CPU.Build.0 = Release|Any CPU
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Unstable|x64.ActiveCfg = Unstable|x64
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Unstable|x64.Build.0 = Unstable|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Debug|Any CPU.Build.0 = Debug|Any CPU
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Debug|x64.ActiveCfg = Debug|x64
@@ -63,6 +69,10 @@ Global
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Release|Any CPU.Build.0 = Release|Any CPU
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Release|x64.ActiveCfg = Release|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Release|x64.Build.0 = Release|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Unstable|Any CPU.Build.0 = Release|Any CPU
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Unstable|x64.ActiveCfg = Unstable|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Unstable|x64.Build.0 = Unstable|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Debug|Any CPU.Build.0 = Debug|Any CPU
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Debug|x64.ActiveCfg = Debug|x64
@@ -71,6 +81,10 @@ Global
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Release|Any CPU.Build.0 = Release|Any CPU
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Release|x64.ActiveCfg = Release|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Release|x64.Build.0 = Release|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Unstable|Any CPU.Build.0 = Release|Any CPU
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Unstable|x64.ActiveCfg = Unstable|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Unstable|x64.Build.0 = Unstable|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Debug|x64.ActiveCfg = Debug|x64
@@ -79,6 +93,10 @@ Global
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Release|Any CPU.Build.0 = Release|Any CPU
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Release|x64.ActiveCfg = Release|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Release|x64.Build.0 = Release|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Unstable|Any CPU.Build.0 = Release|Any CPU
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Unstable|x64.ActiveCfg = Unstable|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Unstable|x64.Build.0 = Unstable|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Debug|x64.ActiveCfg = Debug|x64
@@ -87,6 +105,10 @@ Global
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Release|Any CPU.Build.0 = Release|Any CPU
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Release|x64.ActiveCfg = Release|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Release|x64.Build.0 = Release|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Unstable|Any CPU.Build.0 = Release|Any CPU
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Unstable|x64.ActiveCfg = Unstable|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Unstable|x64.Build.0 = Unstable|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Debug|x64.ActiveCfg = Debug|x64
@@ -95,6 +117,10 @@ Global
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Release|Any CPU.Build.0 = Release|Any CPU
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Release|x64.ActiveCfg = Release|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Release|x64.Build.0 = Release|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Unstable|Any CPU.Build.0 = Release|Any CPU
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Unstable|x64.ActiveCfg = Unstable|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Unstable|x64.Build.0 = Unstable|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Debug|x64.ActiveCfg = Debug|x64
@@ -103,6 +129,10 @@ Global
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Release|Any CPU.Build.0 = Release|Any CPU
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Release|x64.ActiveCfg = Release|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Release|x64.Build.0 = Release|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Unstable|Any CPU.Build.0 = Release|Any CPU
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Unstable|x64.ActiveCfg = Unstable|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Unstable|x64.Build.0 = Unstable|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6911872D-40EF-400C-B0A1-9985A19ED488}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6911872D-40EF-400C-B0A1-9985A19ED488}.Debug|x64.ActiveCfg = Debug|x64
@@ -111,6 +141,10 @@ Global
{6911872D-40EF-400C-B0A1-9985A19ED488}.Release|Any CPU.Build.0 = Release|Any CPU
{6911872D-40EF-400C-B0A1-9985A19ED488}.Release|x64.ActiveCfg = Release|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Release|x64.Build.0 = Release|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{6911872D-40EF-400C-B0A1-9985A19ED488}.Unstable|Any CPU.Build.0 = Release|Any CPU
{6911872D-40EF-400C-B0A1-9985A19ED488}.Unstable|x64.ActiveCfg = Unstable|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Unstable|x64.Build.0 = Unstable|x64
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Debug|x64.ActiveCfg = Debug|x64
@@ -119,6 +153,10 @@ Global
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Release|Any CPU.Build.0 = Release|Any CPU
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Release|x64.ActiveCfg = Release|x64
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Release|x64.Build.0 = Release|x64
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Unstable|Any CPU.ActiveCfg = Unstable|Any CPU
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Unstable|Any CPU.Build.0 = Unstable|Any CPU
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Unstable|x64.ActiveCfg = Unstable|x64
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Unstable|x64.Build.0 = Unstable|x64
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Debug|x64.ActiveCfg = Debug|x64
@@ -127,6 +165,10 @@ Global
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Release|Any CPU.Build.0 = Release|Any CPU
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Release|x64.ActiveCfg = Release|x64
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Release|x64.Build.0 = Release|x64
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Unstable|Any CPU.ActiveCfg = Unstable|Any CPU
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Unstable|Any CPU.Build.0 = Unstable|Any CPU
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Unstable|x64.ActiveCfg = Unstable|x64
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Unstable|x64.Build.0 = Unstable|x64
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Debug|x64.ActiveCfg = Debug|x64
@@ -135,6 +177,10 @@ Global
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Release|Any CPU.Build.0 = Release|Any CPU
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Release|x64.ActiveCfg = Release|x64
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Release|x64.Build.0 = Release|x64
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Unstable|Any CPU.Build.0 = Release|Any CPU
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Unstable|x64.ActiveCfg = Unstable|x64
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Unstable|x64.Build.0 = Unstable|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -12,29 +12,29 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Barotrauma", "Barotrauma",
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{DE36F45F-F09E-4719-B953-00D148F7722A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GA_SDK_NETSTANDARD", "Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj", "{C54F0DFE-ADD3-4767-8CBC-101859218D66}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GA_SDK_NETSTANDARD", "Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj", "{C54F0DFE-ADD3-4767-8CBC-101859218D66}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Farseer.NetStandard", "Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj", "{6D65C294-C636-4D57-9826-10CA13A87C95}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Farseer.NetStandard", "Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj", "{6D65C294-C636-4D57-9826-10CA13A87C95}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lidgren.NetStandard", "Libraries\Lidgren.Network\Lidgren.NetStandard.csproj", "{DB1F46B3-7C84-4F36-9580-B288B400A1FE}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lidgren.NetStandard", "Libraries\Lidgren.Network\Lidgren.NetStandard.csproj", "{DB1F46B3-7C84-4F36-9580-B288B400A1FE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Concentus.NetStandard", "Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj", "{249A3B8A-03ED-400B-856D-0D4537A8B4C8}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Concentus.NetStandard", "Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj", "{249A3B8A-03ED-400B-856D-0D4537A8B4C8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hyper.ComponentModel.NetStandard", "Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj", "{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Hyper.ComponentModel.NetStandard", "Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj", "{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XNATypes", "Libraries\XNATypes\XNATypes.csproj", "{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XNATypes", "Libraries\XNATypes\XNATypes.csproj", "{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpFont.NetStandard", "Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj", "{EF96144B-3DE6-4C8C-9670-C73C838D9F96}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SharpFont.NetStandard", "Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj", "{EF96144B-3DE6-4C8C-9670-C73C838D9F96}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MacOS", "MacOS", "{DFD82BBD-8D05-403D-BEBC-F4C1CF783E18}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MacServer", "Barotrauma\BarotraumaServer\MacServer.csproj", "{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MacServer", "Barotrauma\BarotraumaServer\MacServer.csproj", "{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MacClient", "Barotrauma\BarotraumaClient\MacClient.csproj", "{F17FB469-E9E6-4B1C-B887-4FE709D4D771}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MacClient", "Barotrauma\BarotraumaClient\MacClient.csproj", "{F17FB469-E9E6-4B1C-B887-4FE709D4D771}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonoGame.Framework.MacOS.NetStandard", "Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.MacOS.NetStandard.csproj", "{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MonoGame.Framework.MacOS.NetStandard", "Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.MacOS.NetStandard.csproj", "{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Facepunch.Steamworks.Posix64", "Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj", "{F10CE3BB-26B8-446E-84D2-86D25E850F61}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Facepunch.Steamworks.Posix64", "Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj", "{F10CE3BB-26B8-446E-84D2-86D25E850F61}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -42,6 +42,8 @@ Global
Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Unstable|Any CPU = Unstable|Any CPU
Unstable|x64 = Unstable|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@@ -52,6 +54,10 @@ Global
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Release|Any CPU.Build.0 = Release|Any CPU
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Release|x64.ActiveCfg = Release|x64
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Release|x64.Build.0 = Release|x64
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Unstable|Any CPU.Build.0 = Release|Any CPU
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Unstable|x64.ActiveCfg = Release|x64
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Unstable|x64.Build.0 = Release|x64
{6D65C294-C636-4D57-9826-10CA13A87C95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6D65C294-C636-4D57-9826-10CA13A87C95}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6D65C294-C636-4D57-9826-10CA13A87C95}.Debug|x64.ActiveCfg = Debug|x64
@@ -60,6 +66,10 @@ Global
{6D65C294-C636-4D57-9826-10CA13A87C95}.Release|Any CPU.Build.0 = Release|Any CPU
{6D65C294-C636-4D57-9826-10CA13A87C95}.Release|x64.ActiveCfg = Release|x64
{6D65C294-C636-4D57-9826-10CA13A87C95}.Release|x64.Build.0 = Release|x64
{6D65C294-C636-4D57-9826-10CA13A87C95}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{6D65C294-C636-4D57-9826-10CA13A87C95}.Unstable|Any CPU.Build.0 = Release|Any CPU
{6D65C294-C636-4D57-9826-10CA13A87C95}.Unstable|x64.ActiveCfg = Release|x64
{6D65C294-C636-4D57-9826-10CA13A87C95}.Unstable|x64.Build.0 = Release|x64
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Debug|x64.ActiveCfg = Debug|x64
@@ -68,6 +78,10 @@ Global
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Release|Any CPU.Build.0 = Release|Any CPU
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Release|x64.ActiveCfg = Release|x64
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Release|x64.Build.0 = Release|x64
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Unstable|Any CPU.Build.0 = Release|Any CPU
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Unstable|x64.ActiveCfg = Release|x64
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Unstable|x64.Build.0 = Release|x64
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Debug|x64.ActiveCfg = Debug|x64
@@ -76,6 +90,10 @@ Global
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Release|Any CPU.Build.0 = Release|Any CPU
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Release|x64.ActiveCfg = Release|x64
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Release|x64.Build.0 = Release|x64
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Unstable|Any CPU.Build.0 = Release|Any CPU
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Unstable|x64.ActiveCfg = Release|x64
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Unstable|x64.Build.0 = Release|x64
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Debug|x64.ActiveCfg = Debug|x64
@@ -84,6 +102,10 @@ Global
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Release|Any CPU.Build.0 = Release|Any CPU
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Release|x64.ActiveCfg = Release|x64
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Release|x64.Build.0 = Release|x64
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Unstable|Any CPU.Build.0 = Release|Any CPU
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Unstable|x64.ActiveCfg = Release|x64
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Unstable|x64.Build.0 = Release|x64
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Debug|x64.ActiveCfg = Debug|x64
@@ -92,6 +114,10 @@ Global
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Release|Any CPU.Build.0 = Release|Any CPU
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Release|x64.ActiveCfg = Release|x64
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Release|x64.Build.0 = Release|x64
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Unstable|Any CPU.Build.0 = Release|Any CPU
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Unstable|x64.ActiveCfg = Release|x64
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Unstable|x64.Build.0 = Release|x64
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Debug|x64.ActiveCfg = Debug|x64
@@ -100,6 +126,10 @@ Global
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Release|Any CPU.Build.0 = Release|Any CPU
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Release|x64.ActiveCfg = Release|x64
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Release|x64.Build.0 = Release|x64
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Unstable|Any CPU.Build.0 = Release|Any CPU
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Unstable|x64.ActiveCfg = Release|x64
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Unstable|x64.Build.0 = Release|x64
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Debug|x64.ActiveCfg = Debug|x64
@@ -108,6 +138,10 @@ Global
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Release|Any CPU.Build.0 = Release|Any CPU
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Release|x64.ActiveCfg = Release|x64
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Release|x64.Build.0 = Release|x64
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Unstable|Any CPU.ActiveCfg = Unstable|Any CPU
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Unstable|Any CPU.Build.0 = Unstable|Any CPU
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Unstable|x64.ActiveCfg = Unstable|x64
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Unstable|x64.Build.0 = Unstable|x64
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Debug|x64.ActiveCfg = Debug|x64
@@ -116,6 +150,10 @@ Global
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Release|Any CPU.Build.0 = Release|Any CPU
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Release|x64.ActiveCfg = Release|x64
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Release|x64.Build.0 = Release|x64
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Unstable|Any CPU.ActiveCfg = Unstable|Any CPU
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Unstable|Any CPU.Build.0 = Unstable|Any CPU
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Unstable|x64.ActiveCfg = Unstable|x64
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Unstable|x64.Build.0 = Unstable|x64
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Debug|Any CPU.Build.0 = Debug|Any CPU
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Debug|x64.ActiveCfg = Debug|x64
@@ -124,6 +162,10 @@ Global
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Release|Any CPU.Build.0 = Release|Any CPU
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Release|x64.ActiveCfg = Release|x64
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Release|x64.Build.0 = Release|x64
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Unstable|Any CPU.Build.0 = Release|Any CPU
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Unstable|x64.ActiveCfg = Release|x64
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Unstable|x64.Build.0 = Release|x64
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -132,6 +174,10 @@ Global
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Release|Any CPU.Build.0 = Release|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Release|x64.ActiveCfg = Release|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Release|x64.Build.0 = Release|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Unstable|Any CPU.ActiveCfg = Release|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Unstable|Any CPU.Build.0 = Release|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Unstable|x64.ActiveCfg = Release|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Unstable|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -43,52 +43,75 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
Unstable|x64 = Unstable|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Debug|x64.ActiveCfg = Debug|x64
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Debug|x64.Build.0 = Debug|x64
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Release|x64.ActiveCfg = Release|x64
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Release|x64.Build.0 = Release|x64
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Unstable|x64.ActiveCfg = Release|x64
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Unstable|x64.Build.0 = Release|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Debug|x64.ActiveCfg = Debug|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Debug|x64.Build.0 = Debug|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Release|x64.ActiveCfg = Release|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Release|x64.Build.0 = Release|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Unstable|x64.ActiveCfg = Release|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Unstable|x64.Build.0 = Release|x64
{AD30AE95-7BF6-4CE5-AEED-B6C30A88F139}.Debug|x64.ActiveCfg = Debug|x64
{AD30AE95-7BF6-4CE5-AEED-B6C30A88F139}.Debug|x64.Build.0 = Debug|x64
{AD30AE95-7BF6-4CE5-AEED-B6C30A88F139}.Release|x64.ActiveCfg = Release|x64
{AD30AE95-7BF6-4CE5-AEED-B6C30A88F139}.Release|x64.Build.0 = Release|x64
{AD30AE95-7BF6-4CE5-AEED-B6C30A88F139}.Unstable|x64.ActiveCfg = Release|x64
{AD30AE95-7BF6-4CE5-AEED-B6C30A88F139}.Unstable|x64.Build.0 = Release|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Debug|x64.ActiveCfg = Debug|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Debug|x64.Build.0 = Debug|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Release|x64.ActiveCfg = Release|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Release|x64.Build.0 = Release|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Unstable|x64.ActiveCfg = Release|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Unstable|x64.Build.0 = Release|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Debug|x64.ActiveCfg = Debug|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Debug|x64.Build.0 = Debug|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Release|x64.ActiveCfg = Release|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Release|x64.Build.0 = Release|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Unstable|x64.ActiveCfg = Release|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Unstable|x64.Build.0 = Release|x64
{978633A8-094A-4623-9B82-8533FC8BA1CC}.Debug|x64.ActiveCfg = Debug|x64
{978633A8-094A-4623-9B82-8533FC8BA1CC}.Debug|x64.Build.0 = Debug|x64
{978633A8-094A-4623-9B82-8533FC8BA1CC}.Release|x64.ActiveCfg = Release|x64
{978633A8-094A-4623-9B82-8533FC8BA1CC}.Release|x64.Build.0 = Release|x64
{978633A8-094A-4623-9B82-8533FC8BA1CC}.Unstable|x64.ActiveCfg = Unstable|x64
{978633A8-094A-4623-9B82-8533FC8BA1CC}.Unstable|x64.Build.0 = Unstable|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Debug|x64.ActiveCfg = Debug|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Debug|x64.Build.0 = Debug|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Release|x64.ActiveCfg = Release|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Release|x64.Build.0 = Release|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Unstable|x64.ActiveCfg = Release|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Unstable|x64.Build.0 = Release|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Debug|x64.ActiveCfg = Debug|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Debug|x64.Build.0 = Debug|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Release|x64.ActiveCfg = Release|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Release|x64.Build.0 = Release|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Unstable|x64.ActiveCfg = Release|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Unstable|x64.Build.0 = Release|x64
{47848C6E-C7A8-4EC3-96C2-3BC8A4234AFA}.Debug|x64.ActiveCfg = Debug|x64
{47848C6E-C7A8-4EC3-96C2-3BC8A4234AFA}.Debug|x64.Build.0 = Debug|x64
{47848C6E-C7A8-4EC3-96C2-3BC8A4234AFA}.Release|x64.ActiveCfg = Release|x64
{47848C6E-C7A8-4EC3-96C2-3BC8A4234AFA}.Release|x64.Build.0 = Release|x64
{47848C6E-C7A8-4EC3-96C2-3BC8A4234AFA}.Unstable|x64.ActiveCfg = Unstable|x64
{47848C6E-C7A8-4EC3-96C2-3BC8A4234AFA}.Unstable|x64.Build.0 = Unstable|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Debug|x64.ActiveCfg = Debug|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Debug|x64.Build.0 = Debug|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Release|x64.ActiveCfg = Release|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Release|x64.Build.0 = Release|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Unstable|x64.ActiveCfg = Release|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Unstable|x64.Build.0 = Release|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Debug|x64.ActiveCfg = Debug|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Debug|x64.Build.0 = Debug|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Release|x64.ActiveCfg = Release|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Release|x64.Build.0 = Release|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Unstable|x64.ActiveCfg = Release|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Unstable|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE