(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
@@ -1506,6 +1506,17 @@ namespace Barotrauma
ToolBox.OpenFileWithShell(Path.GetFullPath(filePath)); ToolBox.OpenFileWithShell(Path.GetFullPath(filePath));
})); }));
#if DEBUG #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) => commands.Add(new Command("checkduplicates", "Checks the given language for duplicate translation keys and writes to file.", (string[] args) =>
{ {
if (args.Length != 1) return; if (args.Length != 1) return;
@@ -2264,6 +2275,18 @@ namespace Barotrauma
DebugConsole.NewMessage("Cannot pause when a multiplayer session is active."); 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) private static void ReloadWearables(Character character, int variant = 0)
@@ -279,6 +279,28 @@ namespace Barotrauma
ScreenOverlayColor, true); 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 (DisableHUD) { return; }
if (GameMain.ShowFPS || GameMain.DebugDraw) if (GameMain.ShowFPS || GameMain.DebugDraw)
@@ -1026,11 +1026,17 @@ namespace Barotrauma
public void ShowBugReporter() public void ShowBugReporter()
{ {
if (GUIMessageBox.VisibleBox != null && GUIMessageBox.VisibleBox.UserData as string == "bugreporter")
{
return;
}
var msgBox = new GUIMessageBox(TextManager.Get("bugreportbutton"), ""); var msgBox = new GUIMessageBox(TextManager.Get("bugreportbutton"), "");
msgBox.UserData = "bugreporter"; msgBox.UserData = "bugreporter";
var linkHolder = new GUILayoutGroup(new RectTransform(new Vector2(1.0f, 1.0f), msgBox.Content.RectTransform)) { Stretch = true, RelativeSpacing = 0.025f }; 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); 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) 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/", UserData = "https://steamcommunity.com/app/602960/discussions/1/",
@@ -1041,10 +1047,15 @@ namespace Barotrauma
return true; return true;
} }
}; };
#endif
new GUIButton(new RectTransform(new Vector2(1.0f, 1.0f), linkHolder.RectTransform), TextManager.Get("bugreportgithubform"), style: "MainMenuGUIButton", textAlignment: Alignment.Left) 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", UserData = "https://github.com/Regalis11/Barotrauma/issues/new?template=bug_report.md",
#endif
OnClicked = (btn, userdata) => OnClicked = (btn, userdata) =>
{ {
ShowOpenUrlInWebBrowserPrompt(userdata as string); ShowOpenUrlInWebBrowserPrompt(userdata as string);
@@ -56,17 +56,30 @@ namespace Barotrauma.Tutorials
radioSpeakerName = TextManager.Get("Tutorial.Radio.Watchman"); radioSpeakerName = TextManager.Get("Tutorial.Radio.Watchman");
GameMain.GameSession.CrewManager.AllowCharacterSwitch = false; GameMain.GameSession.CrewManager.AllowCharacterSwitch = false;
var revolver = captain.Inventory.FindItemByIdentifier("revolver"); var revolver = FindOrGiveItem(captain, "revolver");
revolver.Unequip(captain); revolver.Unequip(captain);
captain.Inventory.RemoveItem(revolver); captain.Inventory.RemoveItem(revolver);
var captainscap = captain.Inventory.FindItemByIdentifier("captainscap"); var captainscap =
captainscap.Unequip(captain); captain.Inventory.FindItemByIdentifier("captainscap1") ??
captain.Inventory.RemoveItem(captainscap); captain.Inventory.FindItemByIdentifier("captainscap2") ??
captain.Inventory.FindItemByIdentifier("captainscap3");
var captainsuniform = captain.Inventory.FindItemByIdentifier("captainsuniform"); if (captainscap != null)
captainsuniform.Unequip(captain); {
captain.Inventory.RemoveItem(captainsuniform); 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"); var steerOrder = Order.GetPrefab("steer");
captain_steerIcon = steerOrder.SymbolSprite; captain_steerIcon = steerOrder.SymbolSprite;
@@ -87,7 +87,7 @@ namespace Barotrauma.Tutorials
radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker"); radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker");
engineer = Character.Controlled; engineer = Character.Controlled;
var toolbox = engineer.Inventory.FindItemByIdentifier("toolbox"); var toolbox = FindOrGiveItem(engineer, "toolbox");
toolbox.Unequip(engineer); toolbox.Unequip(engineer);
engineer.Inventory.RemoveItem(toolbox); engineer.Inventory.RemoveItem(toolbox);
@@ -87,11 +87,11 @@ namespace Barotrauma.Tutorials
radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker"); radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker");
mechanic = Character.Controlled; mechanic = Character.Controlled;
var toolbox = mechanic.Inventory.FindItemByIdentifier("toolbox"); var toolbox = FindOrGiveItem(mechanic, "toolbox");
toolbox.Unequip(mechanic); toolbox.Unequip(mechanic);
mechanic.Inventory.RemoveItem(toolbox); mechanic.Inventory.RemoveItem(toolbox);
var crowbar = mechanic.Inventory.FindItemByIdentifier("crowbar"); var crowbar = FindOrGiveItem(mechanic, "crowbar");
crowbar.Unequip(mechanic); crowbar.Unequip(mechanic);
mechanic.Inventory.RemoveItem(crowbar); mechanic.Inventory.RemoveItem(crowbar);
@@ -89,19 +89,19 @@ namespace Barotrauma.Tutorials
radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker"); radioSpeakerName = TextManager.Get("Tutorial.Radio.Speaker");
officer = Character.Controlled; officer = Character.Controlled;
var handcuffs = officer.Inventory.FindItemByIdentifier("handcuffs"); var handcuffs = FindOrGiveItem(officer, "handcuffs");
handcuffs.Unequip(officer); handcuffs.Unequip(officer);
officer.Inventory.RemoveItem(handcuffs); officer.Inventory.RemoveItem(handcuffs);
var stunbaton = officer.Inventory.FindItemByIdentifier("stunbaton"); var stunbaton = FindOrGiveItem(officer, "stunbaton");
stunbaton.Unequip(officer); stunbaton.Unequip(officer);
officer.Inventory.RemoveItem(stunbaton); officer.Inventory.RemoveItem(stunbaton);
var ballistichelmet = officer.Inventory.FindItemByIdentifier("ballistichelmet"); var ballistichelmet = FindOrGiveItem(officer, "ballistichelmet");
ballistichelmet.Unequip(officer); ballistichelmet.Unequip(officer);
officer.Inventory.RemoveItem(ballistichelmet); officer.Inventory.RemoveItem(ballistichelmet);
var bodyarmor = officer.Inventory.FindItemByIdentifier("bodyarmor"); var bodyarmor = FindOrGiveItem(officer, "bodyarmor");
bodyarmor.Unequip(officer); bodyarmor.Unequip(officer);
officer.Inventory.RemoveItem(bodyarmor); officer.Inventory.RemoveItem(bodyarmor);
@@ -298,5 +298,16 @@ namespace Barotrauma.Tutorials
character.Bloodloss = 0.0f; character.Bloodloss = 0.0f;
character.SetStun(0.0f, true); 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;
}
} }
} }
@@ -417,7 +417,7 @@ namespace Barotrauma
} }
// show what game version the submarine was created on // 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), var versionText = new GUITextBlock(new RectTransform(new Vector2(leftPanelWidth, 0), descriptionBox.Content.RectTransform),
TextManager.Get("serverlistversion"), textAlignment: Alignment.TopLeft, font: font, wrap: true) TextManager.Get("serverlistversion"), textAlignment: Alignment.TopLeft, font: font, wrap: true)
@@ -1071,6 +1071,7 @@ namespace Barotrauma.Networking
{ {
if (Character != null) Character.Remove(); if (Character != null) Character.Remove();
HasSpawned = false; HasSpawned = false;
eventErrorWritten = false;
while (CoroutineManager.IsCoroutineRunning("EndGame")) while (CoroutineManager.IsCoroutineRunning("EndGame"))
{ {
@@ -2670,6 +2671,48 @@ namespace Barotrauma.Networking
break; break;
} }
clientPeer.Send(outMsg, DeliveryMethod.Reliable); 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 #if DEBUG
@@ -15,6 +15,7 @@ namespace Barotrauma.Networking
public string Port; public string Port;
public string QueryPort; public string QueryPort;
public Steamworks.Data.PingLocation? PingLocation;
public UInt64 LobbyID; public UInt64 LobbyID;
public UInt64 OwnerID; public UInt64 OwnerID;
public bool OwnerVerified; public bool OwnerVerified;
@@ -500,18 +501,19 @@ namespace Barotrauma.Networking
bool.TryParse(lobby.GetData("haspassword"), out bool hasPassword); bool.TryParse(lobby.GetData("haspassword"), out bool hasPassword);
int.TryParse(lobby.GetData("playercount"), out int currPlayers); int.TryParse(lobby.GetData("playercount"), out int currPlayers);
int.TryParse(lobby.GetData("maxplayernum"), out int maxPlayers); 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")); UInt64 ownerId = SteamManager.SteamIDStringToUInt64(lobby.GetData("lobbyowner"));
if (OwnerID != ownerId) { return; } if (OwnerID != ownerId) { return; }
if (string.IsNullOrWhiteSpace(ip)) { ip = ""; }
ServerName = lobby.GetData("name"); ServerName = lobby.GetData("name");
IP = "";
Port = ""; Port = "";
QueryPort = ""; QueryPort = "";
IP = ip; string pingLocation = lobby.GetData("pinglocation");
if (!string.IsNullOrEmpty(pingLocation))
{
PingLocation = Steamworks.Data.PingLocation.TryParseFromString(pingLocation);
}
PlayerCount = currPlayers; PlayerCount = currPlayers;
MaxPlayers = maxPlayers; MaxPlayers = maxPlayers;
HasPassword = hasPassword; HasPassword = hasPassword;
@@ -110,43 +110,40 @@ namespace Barotrauma.Steam
{ {
get { return currentLobby?.Id ?? 0; } 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) 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; } if (lobbyState != LobbyState.NotConnected) { return; }
lobbyState = LobbyState.Creating; 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) public static void UpdateLobby(ServerSettings serverSettings)
@@ -169,10 +166,11 @@ namespace Barotrauma.Steam
var contentPackages = GameMain.Config.SelectedContentPackages.Where(cp => cp.HasMultiplayerIncompatibleContent); var contentPackages = GameMain.Config.SelectedContentPackages.Where(cp => cp.HasMultiplayerIncompatibleContent);
currentLobby?.SetData("name", serverSettings.ServerName); 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()); 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("haspassword", serverSettings.HasPassword.ToString());
currentLobby?.SetData("message", serverSettings.ServerMessageText); currentLobby?.SetData("message", serverSettings.ServerMessageText);
@@ -187,9 +185,12 @@ namespace Barotrauma.Steam
currentLobby?.SetData("voicechatenabled", serverSettings.VoiceChatEnabled.ToString()); currentLobby?.SetData("voicechatenabled", serverSettings.VoiceChatEnabled.ToString());
currentLobby?.SetData("allowspectating", serverSettings.AllowSpectating.ToString()); currentLobby?.SetData("allowspectating", serverSettings.AllowSpectating.ToString());
currentLobby?.SetData("allowrespawn", serverSettings.AllowRespawn.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("traitors", serverSettings.TraitorsEnabled.ToString());
currentLobby?.SetData("gamestarted", GameMain.Client.GameStarted.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!"); DebugConsole.Log("Lobby updated!");
} }
@@ -208,30 +209,22 @@ namespace Barotrauma.Steam
{ {
if (currentLobby.HasValue && currentLobby.Value.Id == id) { return; } if (currentLobby.HasValue && currentLobby.Value.Id == id) { return; }
if (lobbyID == 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; lobbyState = LobbyState.Joining;
lobbyID = id; 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) public static bool GetServers(Action<ServerInfo> addToServerList, Action serverQueryFinished)
@@ -362,10 +355,13 @@ namespace Barotrauma.Steam
serverInfo.AllowSpectating = getLobbyBool("allowspectating"); serverInfo.AllowSpectating = getLobbyBool("allowspectating");
serverInfo.AllowRespawn = getLobbyBool("allowrespawn"); serverInfo.AllowRespawn = getLobbyBool("allowrespawn");
serverInfo.VoipEnabled = getLobbyBool("voicechatenabled"); serverInfo.VoipEnabled = getLobbyBool("voicechatenabled");
serverInfo.KarmaEnabled = getLobbyBool("karmaenabled");
serverInfo.FriendlyFireEnabled = getLobbyBool("friendlyfireenabled");
if (Enum.TryParse(lobby.GetData("traitors"), out YesNoMaybe traitorsEnabled)) { serverInfo.TraitorsEnabled = traitorsEnabled; } if (Enum.TryParse(lobby.GetData("traitors"), out YesNoMaybe traitorsEnabled)) { serverInfo.TraitorsEnabled = traitorsEnabled; }
serverInfo.GameStarted = lobby.GetData("gamestarted") == "True"; serverInfo.GameStarted = lobby.GetData("gamestarted") == "True";
serverInfo.GameMode = lobby.GetData("gamemode"); serverInfo.GameMode = lobby.GetData("gamemode");
if (Enum.TryParse(lobby.GetData("playstyle"), out PlayStyle playStyle)) serverInfo.PlayStyle = playStyle;
if (serverInfo.ContentPackageNames.Count != serverInfo.ContentPackageHashes.Count || if (serverInfo.ContentPackageNames.Count != serverInfo.ContentPackageHashes.Count ||
serverInfo.ContentPackageHashes.Count != serverInfo.ContentPackageWorkshopUrls.Count) serverInfo.ContentPackageHashes.Count != serverInfo.ContentPackageWorkshopUrls.Count)
@@ -351,7 +351,16 @@ namespace Barotrauma
{ {
OnClicked = (btn, userdata) => 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; return true;
} }
}; };
@@ -312,23 +312,9 @@ namespace Barotrauma
} }
}; };
#endif #endif
var minButtonSize = new Point(120, 20); var minButtonSize = new Point(120, 20);
var maxButtonSize = new Point(480, 80); 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 relativeSize = new Vector2(0.6f, 0.65f);
var minSize = new Point(600, 400); var minSize = new Point(600, 400);
var maxSize = new Point(2000, 1500); var maxSize = new Point(2000, 1500);
@@ -491,7 +477,7 @@ namespace Barotrauma
if (GameMain.Config.ShowTutorialSkipWarning) if (GameMain.Config.ShowTutorialSkipWarning)
{ {
selectedTab = 0; selectedTab = 0;
ShowTutorialSkipWarning(selectedTab); ShowTutorialSkipWarning(Tab.NewGame);
return true; return true;
} }
if (!GameMain.Config.CampaignDisclaimerShown) if (!GameMain.Config.CampaignDisclaimerShown)
@@ -516,7 +502,7 @@ namespace Barotrauma
if (GameMain.Config.ShowTutorialSkipWarning) if (GameMain.Config.ShowTutorialSkipWarning)
{ {
selectedTab = 0; selectedTab = 0;
ShowTutorialSkipWarning(tab); ShowTutorialSkipWarning(Tab.JoinServer);
return true; return true;
} }
if (!GameMain.Config.CampaignDisclaimerShown) if (!GameMain.Config.CampaignDisclaimerShown)
@@ -955,8 +941,9 @@ namespace Barotrauma
GUI.Draw(Cam, spriteBatch); 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); 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) if (selectedTab != Tab.Credits)
{ {
Vector2 textPos = new Vector2(GameMain.GraphicsWidth - 10, GameMain.GraphicsHeight - 10); Vector2 textPos = new Vector2(GameMain.GraphicsWidth - 10, GameMain.GraphicsHeight - 10);
@@ -949,28 +949,37 @@ namespace Barotrauma
Version.TryParse(serverInfo.GameVersion, out remoteVersion); Version.TryParse(serverInfo.GameVersion, out remoteVersion);
} }
bool incompatible = //never show newer versions
(!serverInfo.ContentPackageHashes.Any() && serverInfo.ContentPackagesMatch(GameMain.Config.SelectedContentPackages)) || //(ignore revision number, it doesn't affect compatibility)
(remoteVersion != null && !NetworkMember.IsCompatible(GameMain.Version, remoteVersion)); 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 = child.Visible =
serverInfo.OwnerVerified && serverInfo.OwnerVerified &&
serverInfo.ServerName.ToLowerInvariant().Contains(searchBox.Text.ToLowerInvariant()) && serverInfo.ServerName.ToLowerInvariant().Contains(searchBox.Text.ToLowerInvariant()) &&
(!filterSameVersion.Selected || (remoteVersion != null && NetworkMember.IsCompatible(remoteVersion, GameMain.Version))) && (!filterSameVersion.Selected || (remoteVersion != null && NetworkMember.IsCompatible(remoteVersion, GameMain.Version))) &&
(!filterPassword.Selected || !serverInfo.HasPassword) && (!filterPassword.Selected || !serverInfo.HasPassword) &&
(!filterIncompatible.Selected || !incompatible) && (!filterIncompatible.Selected || !incompatible) &&
(!filterFull.Selected || serverInfo.PlayerCount < serverInfo.MaxPlayers) && (!filterFull.Selected || serverInfo.PlayerCount < serverInfo.MaxPlayers) &&
(!filterEmpty.Selected || serverInfo.PlayerCount > 0) && (!filterEmpty.Selected || serverInfo.PlayerCount > 0) &&
(!filterWhitelisted.Selected || serverInfo.UsingWhiteList == true) && (!filterWhitelisted.Selected || serverInfo.UsingWhiteList == true) &&
(!filterKarma.Selected || serverInfo.KarmaEnabled == true) && (!filterKarma.Selected || serverInfo.KarmaEnabled == true) &&
(!filterFriendlyFire.Selected || serverInfo.FriendlyFireEnabled == false) && (!filterFriendlyFire.Selected || serverInfo.FriendlyFireEnabled == false) &&
(!filterTraitor.Selected || serverInfo.TraitorsEnabled == YesNoMaybe.Yes || serverInfo.TraitorsEnabled == YesNoMaybe.Maybe) && (!filterTraitor.Selected || serverInfo.TraitorsEnabled == YesNoMaybe.Yes || serverInfo.TraitorsEnabled == YesNoMaybe.Maybe) &&
(!filterVoip.Selected || serverInfo.VoipEnabled == false) && (!filterVoip.Selected || serverInfo.VoipEnabled == false) &&
(!filterModded.Selected || serverInfo.GetPlayStyleTags().Any(t => t.Contains("modded.true"))) && (!filterModded.Selected || serverInfo.GetPlayStyleTags().Any(t => t.Contains("modded.true"))) &&
((selectedTab == ServerListTab.All && (serverInfo.LobbyID != 0 || !string.IsNullOrWhiteSpace(serverInfo.Port))) || ((selectedTab == ServerListTab.All && (serverInfo.LobbyID != 0 || !string.IsNullOrWhiteSpace(serverInfo.Port))) ||
(selectedTab == ServerListTab.Recent && serverInfo.Recent) || (selectedTab == ServerListTab.Recent && serverInfo.Recent) ||
(selectedTab == ServerListTab.Favorites && serverInfo.Favorite)) && (selectedTab == ServerListTab.Favorites && serverInfo.Favorite));
(remoteVersion != null && remoteVersion <= GameMain.Version); }
foreach (GUITickBox tickBox in playStyleTickBoxes) foreach (GUITickBox tickBox in playStyleTickBoxes)
{ {
@@ -1673,6 +1682,14 @@ namespace Barotrauma
DebugConsole.ThrowError("Ping is null", ex); 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))) if (serverInfo.LobbyID == 0 && (string.IsNullOrWhiteSpace(serverInfo.IP) || string.IsNullOrWhiteSpace(serverInfo.Port)))
{ {
@@ -278,13 +278,13 @@ namespace Barotrauma
{ {
//filter out the items published by the player (they're shown in the publish tab) //filter out the items published by the player (they're shown in the publish tab)
var mySteamID = SteamManager.GetSteamID(); 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() private void RefreshPopularItems()
{ {
SteamManager.GetPopularWorkshopItems((items) => { OnItemsReceived(items, topItemList); }, 20); SteamManager.GetPopularWorkshopItems((items) => { OnItemsReceived(GetVisibleItems(items), topItemList); }, 20);
} }
private void RefreshPublishedItems() private void RefreshPublishedItems()
@@ -293,6 +293,17 @@ namespace Barotrauma
RefreshMyItemList(); 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() private void RefreshMyItemList()
{ {
myItemList.ClearChildren(); 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(() => CrossThread.RequestExecutionOnMainThread(() =>
{ {
@@ -351,7 +362,7 @@ namespace Barotrauma
CreateWorkshopItemFrame(item, listBox); 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) 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() 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); var workshopPublishStatus = SteamManager.StartPublishItem(itemContentPackage, itemEditor);
if (workshopPublishStatus == null) { return; } if (workshopPublishStatus == null) { return; }
if (itemEditor.Value.Tags.Contains("unstable")) { itemEditor.Value.Tags.Remove("unstable"); }
CoroutineManager.StartCoroutine(WaitForPublish(workshopPublishStatus), "WaitForPublish"); CoroutineManager.StartCoroutine(WaitForPublish(workshopPublishStatus), "WaitForPublish");
#endif
} }
private IEnumerable<object> WaitForPublish(SteamManager.WorkshopPublishStatus workshopPublishStatus) private IEnumerable<object> WaitForPublish(SteamManager.WorkshopPublishStatus workshopPublishStatus)
@@ -1591,7 +1621,7 @@ namespace Barotrauma
SelectTab(Tab.Browse); SelectTab(Tab.Browse);
} }
#region UI management #region UI management
public override void Draw(double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) public override void Draw(double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch)
{ {
@@ -1613,6 +1643,6 @@ namespace Barotrauma
{ {
} }
#endregion #endregion
} }
} }
@@ -353,6 +353,19 @@ namespace Barotrauma.Sounds
private uint[] unqueuedBuffers; private uint[] unqueuedBuffers;
private float[] streamBufferAmplitudes; 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; private object mutex;
public bool IsPlaying public bool IsPlaying
@@ -39,6 +39,9 @@ namespace Barotrauma
public readonly Vector2 IntensityRange; public readonly Vector2 IntensityRange;
public readonly bool ContinueFromPreviousTime;
public int PreviousTime;
public readonly XElement Element; public readonly XElement Element;
public BackgroundMusic(XElement element) public BackgroundMusic(XElement element)
@@ -47,6 +50,7 @@ namespace Barotrauma
this.Type = element.GetAttributeString("type", "").ToLowerInvariant(); this.Type = element.GetAttributeString("type", "").ToLowerInvariant();
this.IntensityRange = element.GetAttributeVector2("intensityrange", new Vector2(0.0f, 100.0f)); this.IntensityRange = element.GetAttributeVector2("intensityrange", new Vector2(0.0f, 100.0f));
this.DuckVolume = element.GetAttributeBool("duckvolume", false); this.DuckVolume = element.GetAttributeBool("duckvolume", false);
this.ContinueFromPreviousTime = element.GetAttributeBool("continuefromprevioustime", false);
this.Element = element; this.Element = element;
} }
} }
@@ -681,6 +685,10 @@ namespace Barotrauma
DisposeMusicChannel(i); DisposeMusicChannel(i);
currentMusic[i] = GameMain.SoundManager.LoadSound(targetMusic[i].File, true); currentMusic[i] = GameMain.SoundManager.LoadSound(targetMusic[i].File, true);
musicChannel[i] = currentMusic[i].Play(0.0f, "music"); musicChannel[i] = currentMusic[i].Play(0.0f, "music");
if (targetMusic[i].ContinueFromPreviousTime)
{
musicChannel[i].StreamSeekPos = targetMusic[i].PreviousTime;
}
musicChannel[i].Looping = true; musicChannel[i].Looping = true;
} }
} }
@@ -705,6 +713,12 @@ namespace Barotrauma
private static void DisposeMusicChannel(int index) 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; musicChannel[index]?.Dispose(); musicChannel[index] = null;
currentMusic[index]?.Dispose(); currentMusic[index] = null; currentMusic[index]?.Dispose(); currentMusic[index] = null;
} }
+37 -14
View File
@@ -6,11 +6,12 @@
<RootNamespace>Barotrauma</RootNamespace> <RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors> <Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma</Product> <Product>Barotrauma</Product>
<Version>0.9.7.0</Version> <Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright> <Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<AssemblyName>Barotrauma</AssemblyName> <AssemblyName>Barotrauma</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon> <ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -31,12 +32,24 @@
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath> <OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup> </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'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;CLIENT;LINUX;X64;USE_STEAM</DefineConstants> <DefineConstants>TRACE;CLIENT;LINUX;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath> <OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup> </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> <ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" /> <Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" /> <Content Remove="..\BarotraumaShared\**\*.cs" />
@@ -80,15 +93,25 @@
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" /> <ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" /> <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" /> <ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.Linux.NetStandard.csproj" /> <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" /> <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>
<ItemGroup> <ItemGroup>
@@ -110,12 +133,12 @@
<!-- write the hash to the temp file.--> <!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true"> <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>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" /> <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; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/> <Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup--> <!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)"> <ReadLinesFromFile File="$(VerFile)">
+27 -13
View File
@@ -6,12 +6,13 @@
<RootNamespace>Barotrauma</RootNamespace> <RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors> <Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma</Product> <Product>Barotrauma</Product>
<Version>0.9.7.0</Version> <Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright> <Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<AssemblyName>Barotrauma</AssemblyName> <AssemblyName>Barotrauma</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon> <ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<ReleaseVersion>0.9.0.0</ReleaseVersion> <ReleaseVersion>0.9.0.0</ReleaseVersion>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -33,12 +34,25 @@
<OutputPath>..\bin\$(Configuration)Mac</OutputPath> <OutputPath>..\bin\$(Configuration)Mac</OutputPath>
</PropertyGroup> </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'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;CLIENT;OSX;X64;USE_STEAM</DefineConstants> <DefineConstants>TRACE;CLIENT;OSX;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Mac\</OutputPath> <OutputPath>..\bin\$(Configuration)Mac\</OutputPath>
</PropertyGroup> </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> <ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" /> <Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" /> <Content Remove="..\BarotraumaShared\**\*.cs" />
@@ -81,14 +95,14 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" /> <ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" /> <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" /> <ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\SharpFont\Source\SharpFont\SharpFont.NetStandard.csproj" /> <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" /> <ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.MacOS.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -121,12 +135,12 @@
<!-- write the hash to the temp file.--> <!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true"> <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>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" /> <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; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/> <Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup--> <!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)"> <ReadLinesFromFile File="$(VerFile)">
@@ -6,11 +6,12 @@
<RootNamespace>Barotrauma</RootNamespace> <RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors> <Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma</Product> <Product>Barotrauma</Product>
<Version>0.9.7.0</Version> <Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright> <Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<AssemblyName>Barotrauma</AssemblyName> <AssemblyName>Barotrauma</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon> <ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -31,12 +32,24 @@
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath> <OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup> </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'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;CLIENT;WINDOWS;X64;USE_STEAM</DefineConstants> <DefineConstants>TRACE;CLIENT;WINDOWS;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath> <OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup> </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> <ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" /> <Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" /> <Content Remove="..\BarotraumaShared\**\*.cs" />
@@ -76,15 +89,25 @@
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Concentus\CSharp\Concentus\Concentus.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" /> <ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" /> <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" /> <ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\MonoGame.Framework\Src\MonoGame.Framework\MonoGame.Framework.Windows.NetStandard.csproj" /> <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" /> <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>
<ItemGroup> <ItemGroup>
@@ -96,6 +119,33 @@
<PackageReference Include="RestSharp" Version="106.6.10" /> <PackageReference Include="RestSharp" Version="106.6.10" />
</ItemGroup> </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 --> <!-- Sourced from https://stackoverflow.com/a/45248069 -->
<Target Name="GetGitRevision" BeforeTargets="WriteGitRevision" Condition="'$(BuildHash)' == ''"> <Target Name="GetGitRevision" BeforeTargets="WriteGitRevision" Condition="'$(BuildHash)' == ''">
<PropertyGroup> <PropertyGroup>
@@ -106,12 +156,12 @@
<!-- write the hash to the temp file.--> <!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true"> <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>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" /> <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; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/> <Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup--> <!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)"> <ReadLinesFromFile File="$(VerFile)">
+31 -11
View File
@@ -6,11 +6,12 @@
<RootNamespace>Barotrauma</RootNamespace> <RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors> <Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma Dedicated Server</Product> <Product>Barotrauma Dedicated Server</Product>
<Version>0.9.7.0</Version> <Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright> <Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<AssemblyName>DedicatedServer</AssemblyName> <AssemblyName>DedicatedServer</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon> <ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -31,24 +32,43 @@
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath> <OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup> </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'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;SERVER;LINUX;X64;USE_STEAM</DefineConstants> <DefineConstants>TRACE;SERVER;LINUX;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Linux\</OutputPath> <OutputPath>..\bin\$(Configuration)Linux\</OutputPath>
</PropertyGroup> </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> <ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" /> <Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" /> <Content Remove="..\BarotraumaShared\**\*.cs" />
<Compile Include="..\BarotraumaShared\**\*.cs" /> <Compile Include="..\BarotraumaShared\**\*.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" /> <ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" /> <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" /> <ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" /> <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> </ItemGroup>
<!-- Sourced from https://stackoverflow.com/a/45248069 --> <!-- Sourced from https://stackoverflow.com/a/45248069 -->
@@ -61,12 +81,12 @@
<!-- write the hash to the temp file.--> <!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true"> <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>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" /> <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; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/> <Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup--> <!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)"> <ReadLinesFromFile File="$(VerFile)">
+32 -11
View File
@@ -6,12 +6,13 @@
<RootNamespace>Barotrauma</RootNamespace> <RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors> <Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma Dedicated Server</Product> <Product>Barotrauma Dedicated Server</Product>
<Version>0.9.7.0</Version> <Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright> <Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<AssemblyName>DedicatedServer</AssemblyName> <AssemblyName>DedicatedServer</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon> <ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<ReleaseVersion>0.9.0.0</ReleaseVersion> <ReleaseVersion>0.9.0.0</ReleaseVersion>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -35,12 +36,25 @@
<OutputPath>..\bin\ReleaseMac</OutputPath> <OutputPath>..\bin\ReleaseMac</OutputPath>
</PropertyGroup> </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'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;SERVER;OSX;X64;USE_STEAM</DefineConstants> <DefineConstants>TRACE;SERVER;OSX;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Mac\</OutputPath> <OutputPath>..\bin\$(Configuration)Mac\</OutputPath>
</PropertyGroup> </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> <ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" /> <Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" /> <Content Remove="..\BarotraumaShared\**\*.cs" />
@@ -49,12 +63,19 @@
<Content Remove="..\BarotraumaShared\libsteam_api64.so" /> <Content Remove="..\BarotraumaShared\libsteam_api64.so" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" /> <ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Posix64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" /> <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" /> <ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" /> <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> </ItemGroup>
<!-- Sourced from https://stackoverflow.com/a/45248069 --> <!-- Sourced from https://stackoverflow.com/a/45248069 -->
@@ -73,12 +94,12 @@
<!-- write the hash to the temp file.--> <!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true"> <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>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" /> <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; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/> <Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup--> <!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)"> <ReadLinesFromFile File="$(VerFile)">
@@ -742,6 +742,15 @@ namespace Barotrauma.Networking
Log(c.Name + " has reported an error: " + errorStr, ServerLog.MessageType.Error); Log(c.Name + " has reported an error: " + errorStr, ServerLog.MessageType.Error);
GameAnalyticsManager.AddErrorEventOnce("GameServer.HandleClientError:" + errorStr, GameAnalyticsSDK.Net.EGAErrorSeverity.Error, errorStr); 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) if (c.Connection == OwnerConnection)
{ {
SendDirectChatMessage(errorStr, c, ChatMessageType.MessageBox); SendDirectChatMessage(errorStr, c, ChatMessageType.MessageBox);
@@ -751,6 +760,44 @@ namespace Barotrauma.Networking
{ {
KickClient(c, errorStr); 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) public override void CreateEntityEvent(INetSerializable entity, object[] extraData = null)
@@ -6,11 +6,12 @@
<RootNamespace>Barotrauma</RootNamespace> <RootNamespace>Barotrauma</RootNamespace>
<Authors>FakeFish, Undertow Games</Authors> <Authors>FakeFish, Undertow Games</Authors>
<Product>Barotrauma Dedicated Server</Product> <Product>Barotrauma Dedicated Server</Product>
<Version>0.9.7.0</Version> <Version>0.9.700.0</Version>
<Copyright>Copyright © FakeFish 2018-2019</Copyright> <Copyright>Copyright © FakeFish 2018-2020</Copyright>
<Platforms>AnyCPU;x64</Platforms> <Platforms>AnyCPU;x64</Platforms>
<AssemblyName>DedicatedServer</AssemblyName> <AssemblyName>DedicatedServer</AssemblyName>
<ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon> <ApplicationIcon>..\BarotraumaShared\Icon.ico</ApplicationIcon>
<Configurations>Debug;Release;Unstable</Configurations>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -31,24 +32,44 @@
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath> <OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup> </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'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<DefineConstants>TRACE;SERVER;WINDOWS;X64;USE_STEAM</DefineConstants> <DefineConstants>TRACE;SERVER;WINDOWS;X64;USE_STEAM</DefineConstants>
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
<OutputPath>..\bin\$(Configuration)Windows\</OutputPath> <OutputPath>..\bin\$(Configuration)Windows\</OutputPath>
</PropertyGroup> </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> <ItemGroup>
<Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" /> <Content Include="..\BarotraumaShared\**\*" CopyToOutputDirectory="PreserveNewest" />
<Content Remove="..\BarotraumaShared\**\*.cs" /> <Content Remove="..\BarotraumaShared\**\*.cs" />
<Compile Include="..\BarotraumaShared\**\*.cs" /> <Compile Include="..\BarotraumaShared\**\*.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup Condition="'$(Configuration)'!='Debug'">
<ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" /> <ProjectReference Include="..\..\Libraries\Facepunch.Steamworks\Facepunch.Steamworks.Win64.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Farseer Physics Engine 3.5\Farseer.NetStandard.csproj" /> <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" /> <ProjectReference Include="..\..\Libraries\GameAnalytics\GA_SDK_NETSTANDARD\GA_SDK_NETSTANDARD.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" /> <ProjectReference Include="..\..\Libraries\Hyper.ComponentModel\Hyper.ComponentModel.NetStandard.csproj" AdditionalProperties="Configuration=Release" />
<ProjectReference Include="..\..\Libraries\Lidgren.Network\Lidgren.NetStandard.csproj" /> <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> </ItemGroup>
<!-- Sourced from https://stackoverflow.com/a/45248069 --> <!-- Sourced from https://stackoverflow.com/a/45248069 -->
@@ -61,12 +82,12 @@
<!-- write the hash to the temp file.--> <!-- write the hash to the temp file.-->
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD &gt; $(VerFile)" ContinueOnError="true"> <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>
<Exec Command="git -C $(ProjectDir) rev-parse --short HEAD --symbolic-full-name --abbrev-ref=strict &gt; $(BranchFile)" ContinueOnError="true" /> <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; $(VerFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'>0"/> <Exec Command="echo GIT_UNAVAILABLE &gt; $(BranchFile)" Condition="'%(exitcodes.identity)'&gt;0" />
<!-- read the version into the GitVersion itemGroup--> <!-- read the version into the GitVersion itemGroup-->
<ReadLinesFromFile File="$(VerFile)"> <ReadLinesFromFile File="$(VerFile)">
@@ -78,17 +78,19 @@
<Outpost file="Content/Map/Outposts/Outpost.sub" /> <Outpost file="Content/Map/Outposts/Outpost.sub" />
<Outpost file="Content/Map/Outposts/Outpost2.sub" /> <Outpost file="Content/Map/Outposts/Outpost2.sub" />
<Outpost file="Content/Map/Outposts/Outpost3.sub" /> <Outpost file="Content/Map/Outposts/Outpost3.sub" />
<Submarine file="Submarines/Orca.sub" /> <Submarine file="Submarines/Berilia.sub" />
<Submarine file="Submarines/Typhon.sub" /> <Submarine file="Submarines/Dugong.sub" />
<Submarine file="Submarines/Selkie.sub" />
<Submarine file="Submarines/Hemulen.sub" /> <Submarine file="Submarines/Hemulen.sub" />
<Submarine file="Submarines/Humpback.sub" /> <Submarine file="Submarines/Humpback.sub" />
<Submarine file="Submarines/Kastrull.sub" /> <Submarine file="Submarines/Kastrull.sub" />
<Submarine file="Submarines/KastrullDrone.sub" /> <Submarine file="Submarines/KastrullDrone.sub" />
<Submarine file="Submarines/Dugong.sub" /> <Submarine file="Submarines/Orca.sub" />
<Submarine file="Submarines/Venture.sub" />
<Submarine file="Submarines/Remora.sub" /> <Submarine file="Submarines/Remora.sub" />
<Submarine file="Submarines/RemoraDrone.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/English/EnglishVanilla.xml" />
<Text file="Content/Texts/German/GermanVanilla.xml" /> <Text file="Content/Texts/German/GermanVanilla.xml" />
<Text file="Content/Texts/French/FrenchVanilla.xml" /> <Text file="Content/Texts/French/FrenchVanilla.xml" />
@@ -1233,14 +1233,14 @@ namespace Barotrauma
LatchOntoAI?.DeattachFromBody(); LatchOntoAI?.DeattachFromBody();
Character.AnimController.ReleaseStuckLimbs(); Character.AnimController.ReleaseStuckLimbs();
if (attacker == null || attacker.AiTarget == null) { return; }
if (State == AIState.Flee) if (State == AIState.Flee)
{ {
SelectTarget(attacker.AiTarget); SelectTarget(attacker.AiTarget);
return; return;
} }
if (attacker == null || attacker.AiTarget == null) { return; }
if (attackResult.Damage > 0.0f && Character.Params.AI.AttackWhenProvoked) if (attackResult.Damage > 0.0f && Character.Params.AI.AttackWhenProvoked)
{ {
if (attacker.Submarine == Character.Submarine && canAttackCharacters || if (attacker.Submarine == Character.Submarine && canAttackCharacters ||
@@ -1370,7 +1370,7 @@ namespace Barotrauma
if (human) 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); CharacterInfo characterInfo = new CharacterInfo(CharacterPrefab.HumanSpeciesName, jobPrefab: job, variant: variant);
spawnedCharacter = Character.Create(characterInfo, spawnPosition, ToolBox.RandomSeed(8)); spawnedCharacter = Character.Create(characterInfo, spawnPosition, ToolBox.RandomSeed(8));
if (job != null) if (job != null)
@@ -2,9 +2,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text;
using Barotrauma.Extensions; using Barotrauma.Extensions;
using System.Linq;
namespace Barotrauma namespace Barotrauma
{ {
@@ -71,6 +69,7 @@ namespace Barotrauma
for (int i = 0; i < prefabsWithContainer.Count; i++) for (int i = 0; i < prefabsWithContainer.Count; i++)
{ {
var itemPrefab = prefabsWithContainer[i]; var itemPrefab = prefabsWithContainer[i];
if (itemPrefab == null) { continue; }
if (SpawnItems(itemPrefab)) if (SpawnItems(itemPrefab))
{ {
removals.Add(itemPrefab); removals.Add(itemPrefab);
@@ -341,7 +341,7 @@ namespace Barotrauma.Items.Components
//ignore sensors and items //ignore sensors and items
if (fixture?.Body == null || fixture.IsSensor) { return -1; } 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; } if (fixture.Body?.UserData as string == "ruinroom") { return -1; }
//ignore everything else than characters, sub walls and level walls //ignore everything else than characters, sub walls and level walls
@@ -546,6 +546,8 @@ namespace Barotrauma
private void HandleLimbCollision(Impact collision, Limb limb) private void HandleLimbCollision(Impact collision, Limb limb)
{ {
if (limb?.body?.FarseerBody == null || limb.character == null) { return; }
if (limb.Mass > MinImpactLimbMass) if (limb.Mass > MinImpactLimbMass)
{ {
Vector2 normal = Vector2 normal =
@@ -565,18 +567,18 @@ namespace Barotrauma
//find all contacts between the limb and level walls //find all contacts between the limb and level walls
List<Contact> levelContacts = new List<Contact>(); List<Contact> levelContacts = new List<Contact>();
ContactEdge contactEdge = limb.body.FarseerBody.ContactList; ContactEdge contactEdge = limb.body.FarseerBody.ContactList;
while (contactEdge != null) while (contactEdge?.Contact != null)
{ {
if (contactEdge.Contact.Enabled && if (contactEdge.Contact.Enabled &&
contactEdge.Other.UserData is VoronoiCell && contactEdge.Contact.IsTouching &&
contactEdge.Contact.IsTouching) contactEdge.Other?.UserData is VoronoiCell)
{ {
levelContacts.Add(contactEdge.Contact); levelContacts.Add(contactEdge.Contact);
} }
contactEdge = contactEdge.Next; 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 //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), //not a very realistic way to handle the collisions (makes it seem as if the characters were made of reinforced concrete),
@@ -59,10 +59,10 @@ namespace Barotrauma.Networking
{ {
shutDown = true; shutDown = true;
readCancellationToken?.Cancel(); readCancellationToken?.Cancel();
readCancellationToken?.Dispose();
readCancellationToken = null;
readThread?.Join(); readThread = null; readThread?.Join(); readThread = null;
writeThread?.Join(); writeThread = null; writeThread?.Join(); writeThread = null;
readCancellationToken?.Dispose();
readCancellationToken = null;
readStream?.Dispose(); readStream = null; readStream?.Dispose(); readStream = null;
writeStream?.Dispose(); writeStream = null; writeStream?.Dispose(); writeStream = null;
} }
@@ -71,11 +71,11 @@ namespace Barotrauma.Networking
{ {
while (!shutDown) 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); TimeSpan ts = TimeSpan.FromMilliseconds(15000);
if (!readTask.Wait(ts)) if (readTask == null || !readTask.Wait(ts))
{ {
readCancellationToken.Cancel(); readCancellationToken?.Cancel();
shutDown = true; shutDown = true;
return; return;
} }
@@ -142,8 +142,8 @@ namespace Barotrauma.Networking
byte[] lengthBytes = new byte[2]; byte[] lengthBytes = new byte[2];
lengthBytes[0] = (byte)(msg.Length & 0xFF); lengthBytes[0] = (byte)(msg.Length & 0xFF);
lengthBytes[1] = (byte)((msg.Length >> 8) & 0xFF); lengthBytes[1] = (byte)((msg.Length >> 8) & 0xFF);
writeStream.Write(lengthBytes, 0, 2); writeStream?.Write(lengthBytes, 0, 2);
writeStream.Write(msg, 0, msg.Length); writeStream?.Write(msg, 0, msg.Length);
if (shutDown) { break; } if (shutDown) { break; }
@@ -29,7 +29,11 @@ namespace Barotrauma.Networking
//arbitrary extra data that will be passed to the Write method of the serializable entity //arbitrary extra data that will be passed to the Write method of the serializable entity
//(the index of an itemcomponent for example) //(the index of an itemcomponent for example)
protected object[] Data; public object[] Data
{
get;
private set;
}
public bool Sent; public bool Sent;
Binary file not shown.
Binary file not shown.
Binary file not shown.
+21
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 v0.9.7.0
--------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------
+10
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"
+10
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"
+10
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"
+12
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
+12
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
+12
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
@@ -40,33 +40,41 @@ namespace Steamworks
private static byte[][] BufferPool; private static byte[][] BufferPool;
private static int BufferPoolIndex; private static int BufferPoolIndex;
private static object BufferMutex = new object();
/// <summary> /// <summary>
/// Returns a buffer. This will get returned and reused later on. /// Returns a buffer. This will get returned and reused later on.
/// </summary> /// </summary>
public static byte[] TakeBuffer( int minSize ) public static byte[] TakeBuffer( int minSize )
{ {
if ( BufferPool == null ) int bufferPoolIndex;
lock (BufferMutex)
{ {
// if (BufferPool == null)
// The pool has 8 items. {
// //
BufferPool = new byte[8][]; // The pool has 8 items.
//
BufferPool = new byte[8][];
for ( int i = 0; i < BufferPool.Length; i++ ) for (int i = 0; i < BufferPool.Length; i++)
BufferPool[i] = new byte[ 1024 * 128 ]; BufferPool[i] = new byte[1024 * 128];
}
BufferPoolIndex++;
if (BufferPoolIndex < 0 || BufferPoolIndex >= BufferPool.Length)
BufferPoolIndex = 0;
bufferPoolIndex = BufferPoolIndex;
} }
BufferPoolIndex++; if ( BufferPool[bufferPoolIndex].Length < minSize )
if ( BufferPoolIndex >= BufferPool.Length )
BufferPoolIndex = 0;
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 ) internal unsafe static string MemoryToString( IntPtr ptr )
+46
View File
@@ -45,6 +45,8 @@ Global
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64 Release|x64 = Release|x64
Unstable|Any CPU = Unstable|Any CPU
Unstable|x64 = Unstable|x64
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {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|Any CPU.Build.0 = Release|Any CPU
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Release|x64.ActiveCfg = Release|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}.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.ActiveCfg = Debug|Any CPU
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Release|x64.ActiveCfg = Release|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}.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.ActiveCfg = Debug|Any CPU
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Release|x64.ActiveCfg = Release|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}.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.ActiveCfg = Debug|Any CPU
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Release|x64.ActiveCfg = Release|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}.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.ActiveCfg = Debug|Any CPU
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Release|x64.ActiveCfg = Release|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}.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.ActiveCfg = Debug|Any CPU
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Release|x64.ActiveCfg = Release|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}.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.ActiveCfg = Debug|Any CPU
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Release|x64.ActiveCfg = Release|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}.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.ActiveCfg = Debug|Any CPU
{6911872D-40EF-400C-B0A1-9985A19ED488}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{6911872D-40EF-400C-B0A1-9985A19ED488}.Release|x64.ActiveCfg = Release|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}.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.ActiveCfg = Debug|Any CPU
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{D47E4AAA-C3E5-4F0D-B7FF-D3B54966DE51}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{2B0881F6-9C67-4446-A1F2-FC042763A462}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{33E95A21-E071-4432-819F-AA64CF3EF3F1}.Release|x64.ActiveCfg = Release|x64 {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}.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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
+57 -11
View File
@@ -12,29 +12,29 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Barotrauma", "Barotrauma",
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{DE36F45F-F09E-4719-B953-00D148F7722A}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{DE36F45F-F09E-4719-B953-00D148F7722A}"
EndProject 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 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 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 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 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 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 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 EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MacOS", "MacOS", "{DFD82BBD-8D05-403D-BEBC-F4C1CF783E18}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MacOS", "MacOS", "{DFD82BBD-8D05-403D-BEBC-F4C1CF783E18}"
EndProject 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 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 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 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 EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -42,6 +42,8 @@ Global
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
Release|Any CPU = Release|Any CPU Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64 Release|x64 = Release|x64
Unstable|Any CPU = Unstable|Any CPU
Unstable|x64 = Unstable|x64
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {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|Any CPU.Build.0 = Release|Any CPU
{C54F0DFE-ADD3-4767-8CBC-101859218D66}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{6D65C294-C636-4D57-9826-10CA13A87C95}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{6D65C294-C636-4D57-9826-10CA13A87C95}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{DB1F46B3-7C84-4F36-9580-B288B400A1FE}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{249A3B8A-03ED-400B-856D-0D4537A8B4C8}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{E8485CBC-9B68-4F0B-96EB-AFCBD0DFD357}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{F5F3D706-78DF-469D-8AA0-E2FF5E81EA85}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{EF96144B-3DE6-4C8C-9670-C73C838D9F96}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{8C3F4314-E5CA-4563-BEE6-69E97CAA0813}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{F17FB469-E9E6-4B1C-B887-4FE709D4D771}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Debug|Any CPU.Build.0 = 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 {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|Any CPU.Build.0 = Release|Any CPU
{35DDDA7D-328D-4A5D-BCBB-2E60C830A899}.Release|x64.ActiveCfg = Release|x64 {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}.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.ActiveCfg = Debug|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Debug|Any CPU.Build.0 = 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 {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|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.ActiveCfg = Release|Any CPU
{F10CE3BB-26B8-446E-84D2-86D25E850F61}.Release|x64.Build.0 = 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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
+23
View File
@@ -43,52 +43,75 @@ Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64 Debug|x64 = Debug|x64
Release|x64 = Release|x64 Release|x64 = Release|x64
Unstable|x64 = Unstable|x64
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Debug|x64.ActiveCfg = Debug|x64 {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}.Debug|x64.Build.0 = Debug|x64
{E1BBC67C-DC2A-40E8-89F3-B57299D7B16C}.Release|x64.ActiveCfg = Release|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}.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.ActiveCfg = Debug|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{95C4D59D-9BE4-4278-B4F8-46C0BA1A3916}.Release|x64.Build.0 = 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.ActiveCfg = Debug|x64
{AD30AE95-7BF6-4CE5-AEED-B6C30A88F139}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{AD30AE95-7BF6-4CE5-AEED-B6C30A88F139}.Release|x64.Build.0 = 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.ActiveCfg = Debug|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{894D3518-A0E3-4B88-B9BF-9E1AFC3F9523}.Release|x64.Build.0 = 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.ActiveCfg = Debug|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{ED2873CA-C209-4CBC-ADD4-DAA753DFEEAF}.Release|x64.Build.0 = 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.ActiveCfg = Debug|x64
{978633A8-094A-4623-9B82-8533FC8BA1CC}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{978633A8-094A-4623-9B82-8533FC8BA1CC}.Release|x64.Build.0 = 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.ActiveCfg = Debug|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{39E52316-D6C1-4D1F-95FF-37F41C9AB5A7}.Release|x64.Build.0 = 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.ActiveCfg = Debug|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{D379BF8E-D696-4AB9-A27F-4D0C493BF484}.Release|x64.Build.0 = 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.ActiveCfg = Debug|x64
{47848C6E-C7A8-4EC3-96C2-3BC8A4234AFA}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{47848C6E-C7A8-4EC3-96C2-3BC8A4234AFA}.Release|x64.Build.0 = 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.ActiveCfg = Debug|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{1F318AC4-F808-4130-867F-B98DF9AA8F95}.Release|x64.Build.0 = 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.ActiveCfg = Debug|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Debug|x64.Build.0 = 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.ActiveCfg = Release|x64
{6911872D-40EF-400C-B0A1-9985A19ED488}.Release|x64.Build.0 = 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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE