diff --git a/Barotrauma/BarotraumaClient/Icon.bmp b/Barotrauma/BarotraumaClient/Icon.bmp index dedeee273..0a6d53e80 100644 Binary files a/Barotrauma/BarotraumaClient/Icon.bmp and b/Barotrauma/BarotraumaClient/Icon.bmp differ diff --git a/Barotrauma/BarotraumaClient/LinuxClient.csproj b/Barotrauma/BarotraumaClient/LinuxClient.csproj index 080c09481..56b243537 100644 --- a/Barotrauma/BarotraumaClient/LinuxClient.csproj +++ b/Barotrauma/BarotraumaClient/LinuxClient.csproj @@ -56,6 +56,26 @@ true 0 + + true + ..\bin\x86\ReleaseLinux\ + TRACE;LINUX;CLIENT + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + true + + + true + ..\bin\x86\DebugLinux\ + TRACE;DEBUG;LINUX;CLIENT + 0 + full + x86 + MinimumRecommendedRules.ruleset + true + @@ -278,7 +298,12 @@ Other similar extension points exist, see Microsoft.Common.targets. - - --> + + + + + + + \ No newline at end of file diff --git a/Barotrauma/BarotraumaClient/MacClient.csproj b/Barotrauma/BarotraumaClient/MacClient.csproj index 99902b0ca..797f42a80 100644 --- a/Barotrauma/BarotraumaClient/MacClient.csproj +++ b/Barotrauma/BarotraumaClient/MacClient.csproj @@ -55,6 +55,26 @@ true 0 + + true + ..\bin\x86\ReleaseMac\ + TRACE;OSX;CLIENT + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + true + + + true + ..\bin\x86\DebugMac\ + TRACE;DEBUG;OSX;CLIENT + 0 + full + x86 + MinimumRecommendedRules.ruleset + true + @@ -264,7 +284,12 @@ Other similar extension points exist, see Microsoft.Common.targets. - - --> + + + + + + + \ No newline at end of file diff --git a/Barotrauma/BarotraumaClient/Source/Characters/Animation/Ragdoll.cs b/Barotrauma/BarotraumaClient/Source/Characters/Animation/Ragdoll.cs index bcf133b30..fa30d8a82 100644 --- a/Barotrauma/BarotraumaClient/Source/Characters/Animation/Ragdoll.cs +++ b/Barotrauma/BarotraumaClient/Source/Characters/Animation/Ragdoll.cs @@ -108,6 +108,61 @@ namespace Barotrauma } } + //unconscious/dead characters can't correct their position using AnimController movement + // -> we need to correct it manually + if (!character.AllowInput) + { + float mainLimbDistSqrd = Vector2.DistanceSquared(MainLimb.PullJointWorldAnchorA, Collider.SimPosition); + float mainLimbErrorTolerance = 0.1f; + //if the main limb is roughly at the correct position and the collider isn't moving (much at least), + //don't attempt to correct the position. + if (mainLimbDistSqrd > mainLimbErrorTolerance || Collider.LinearVelocity.LengthSquared() > 0.05f) + { + MainLimb.PullJointWorldAnchorB = Collider.SimPosition; + MainLimb.PullJointEnabled = true; + } + character.SelectedConstruction = character.MemState[0].SelectedItem; + } + + if (character.MemState[0].Animation == AnimController.Animation.CPR) + { + character.AnimController.Anim = AnimController.Animation.CPR; + } + else if (character.AnimController.Anim == AnimController.Animation.CPR) + { + character.AnimController.Anim = AnimController.Animation.None; + } + + Vector2 newVelocity = Collider.LinearVelocity; + Vector2 newPosition = Collider.SimPosition; + float newRotation = Collider.Rotation; + float newAngularVelocity = Collider.AngularVelocity; + Collider.CorrectPosition(character.MemState, out newPosition, out newVelocity, out newRotation, out newAngularVelocity); + + newVelocity = newVelocity.ClampLength(100.0f); + if (!MathUtils.IsValid(newVelocity)) { newVelocity = Vector2.Zero; } + overrideTargetMovement = newVelocity.LengthSquared() > 0.01f ? newVelocity : Vector2.Zero; + + Collider.LinearVelocity = newVelocity; + Collider.AngularVelocity = newAngularVelocity; + + float distSqrd = Vector2.DistanceSquared(newPosition, Collider.SimPosition); + float errorTolerance = character.AllowInput ? 0.01f : 0.2f; + if (distSqrd > errorTolerance) + { + if (distSqrd > 10.0f || !character.AllowInput) + { + Collider.TargetRotation = newRotation; + SetPosition(newPosition, lerp: distSqrd < 5.0f, ignorePlatforms: false); + } + else + { + Collider.TargetRotation = newRotation; + Collider.TargetPosition = newPosition; + Collider.MoveToTargetPosition(true); + } + } + //unconscious/dead characters can't correct their position using AnimController movement // -> we need to correct it manually if (!character.AllowInput) @@ -151,32 +206,34 @@ namespace Barotrauma } } - - if (character.MemLocalState.Count > 120) character.MemLocalState.RemoveRange(0, character.MemLocalState.Count - 120); - character.MemState.Clear(); + character.MemLocalState.Clear(); } - } - - partial void ImpactProjSpecific(float impact, Body body) - { - float volume = MathHelper.Clamp(impact - 3.0f, 0.5f, 1.0f); - - if (body.UserData is Limb limb && character.Stun <= 0f) + else { - if (impact > 3.0f) { PlayImpactSound(limb); } - } - else if (body.UserData is Limb || body == Collider.FarseerBody) - { - if (!character.IsRemotePlayer && impact > ImpactTolerance) + //remove states with a timestamp (there may still timestamp-based states + //in the list if the controlled character switches from timestamp-based interpolation to ID-based) + character.MemState.RemoveAll(m => m.Timestamp > 0.0f); + + for (int i = 0; i < character.MemLocalState.Count; i++) { - SoundPlayer.PlayDamageSound("LimbBlunt", strongestImpact, Collider); + if (character.Submarine == null) + { + //transform in-sub coordinates to outside coordinates + if (character.MemLocalState[i].Position.Y > lowestSubPos) + { + character.MemLocalState[i].TransformInToOutside(); + } + } + else if (currentHull?.Submarine != null) + { + //transform outside coordinates to in-sub coordinates + if (character.MemLocalState[i].Position.Y < lowestSubPos) + { + character.MemLocalState[i].TransformOutToInside(currentHull.Submarine); + } + } + } - } - if (Character.Controlled == character) - { - GameMain.GameScreen.Cam.Shake = Math.Min(Math.Max(strongestImpact, GameMain.GameScreen.Cam.Shake), 3.0f); - } - } if (character.MemState.Count < 1) return; diff --git a/Barotrauma/BarotraumaClient/Source/DebugConsole.cs b/Barotrauma/BarotraumaClient/Source/DebugConsole.cs index a3b0fdc51..908458aaf 100644 --- a/Barotrauma/BarotraumaClient/Source/DebugConsole.cs +++ b/Barotrauma/BarotraumaClient/Source/DebugConsole.cs @@ -29,7 +29,7 @@ namespace Barotrauma if (!CheatsEnabled && IsCheat) { NewMessage("You need to enable cheats using the command \"enablecheats\" before you can use the command \"" + names[0] + "\".", Color.Red); - if (GameMain.Config.UseSteam) + if (Steam.SteamManager.USE_STEAM) { NewMessage("Enabling cheats will disable Steam achievements during this play session.", Color.Red); } @@ -340,7 +340,7 @@ namespace Barotrauma CheatsEnabled = true; SteamAchievementManager.CheatsEnabled = true; NewMessage("Enabled cheat commands.", Color.Red); - if (GameMain.Config.UseSteam) + if (Steam.SteamManager.USE_STEAM) { NewMessage("Steam achievements have been disabled during this play session.", Color.Red); } diff --git a/Barotrauma/BarotraumaClient/Source/EventInput/EventInput.cs b/Barotrauma/BarotraumaClient/Source/EventInput/EventInput.cs index 557196cd5..ee3619634 100644 --- a/Barotrauma/BarotraumaClient/Source/EventInput/EventInput.cs +++ b/Barotrauma/BarotraumaClient/Source/EventInput/EventInput.cs @@ -155,6 +155,9 @@ namespace EventInput return SetWindowLongPtr(hWnd, nIndex, dwNewLong); } + [DllImport("user32.dll", CharSet = CharSet.Unicode)] + static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, IntPtr dwNewLong); + [DllImport("user32.dll", CharSet = CharSet.Unicode)] static extern IntPtr SetWindowLongPtr(IntPtr hWnd, int nIndex, IntPtr dwNewLong); #endif @@ -173,8 +176,8 @@ namespace EventInput #if WINDOWS hookProcDelegate = HookProc; - prevWndProc = SetWindowLongPtr(window.Handle, GWL_WNDPROC, - Marshal.GetFunctionPointerForDelegate(hookProcDelegate)); + prevWndProc = TrySetWindowLong(window.Handle, GWL_WNDPROC, + Marshal.GetFunctionPointerForDelegate(hookProcDelegate)); hIMC = ImmGetContext(window.Handle); #else diff --git a/Barotrauma/BarotraumaClient/Source/Fonts/ScalableFont.cs b/Barotrauma/BarotraumaClient/Source/Fonts/ScalableFont.cs index 9443ebcab..faea7dee8 100644 --- a/Barotrauma/BarotraumaClient/Source/Fonts/ScalableFont.cs +++ b/Barotrauma/BarotraumaClient/Source/Fonts/ScalableFont.cs @@ -317,11 +317,6 @@ namespace Barotrauma } uint charIndex = text[i]; - if (DynamicLoading && !texCoords.ContainsKey(charIndex)) - { - DynamicRenderAtlas(graphicsDevice, charIndex); - } - if (texCoords.TryGetValue(charIndex, out GlyphData gd) || texCoords.TryGetValue(9633, out gd)) //9633 = white square { if (gd.texIndex >= 0) @@ -356,13 +351,7 @@ namespace Barotrauma currentPos.Y += baseHeight * 1.8f; continue; } - - uint charIndex = text[i]; - if (DynamicLoading && !texCoords.ContainsKey(charIndex)) - { - DynamicRenderAtlas(graphicsDevice, charIndex); - } - + uint charIndex = text[i]; if (texCoords.TryGetValue(charIndex, out GlyphData gd) || texCoords.TryGetValue(9633, out gd)) //9633 = white square { if (gd.texIndex >= 0) diff --git a/Barotrauma/BarotraumaClient/Source/GUI/GUIStyle.cs b/Barotrauma/BarotraumaClient/Source/GUI/GUIStyle.cs index 7e79f942f..f54b8d28f 100644 --- a/Barotrauma/BarotraumaClient/Source/GUI/GUIStyle.cs +++ b/Barotrauma/BarotraumaClient/Source/GUI/GUIStyle.cs @@ -109,18 +109,11 @@ namespace Barotrauma break; } } - return 14; - } - - public GUIComponentStyle GetComponentStyle(string name) - { - componentStyles.TryGetValue(name.ToLowerInvariant(), out GUIComponentStyle style); - return style; } private ScalableFont LoadFont(XElement element, GraphicsDevice graphicsDevice) { - string file = element.GetAttributeString("file", ""); + string file = GetFontFilePath(element); uint size = GetFontSize(element); return new ScalableFont(file, size, graphicsDevice); } @@ -129,6 +122,7 @@ namespace Barotrauma { foreach (XElement subElement in element.Elements()) { + if (subElement.Name.ToString().ToLowerInvariant() != "size") { continue; } Point maxResolution = subElement.GetAttributePoint("maxresolution", new Point(int.MaxValue, int.MaxValue)); if (GameMain.GraphicsWidth <= maxResolution.X && GameMain.GraphicsHeight <= maxResolution.Y) { @@ -138,6 +132,20 @@ namespace Barotrauma return 14; } + private string GetFontFilePath(XElement element) + { + foreach (XElement subElement in element.Elements()) + { + if (subElement.Name.ToString().ToLowerInvariant() != "override") { continue; } + string language = subElement.GetAttributeString("language", "").ToLowerInvariant(); + if (GameMain.Config.Language.ToLowerInvariant() == language) + { + return subElement.GetAttributeString("file", ""); + } + } + return element.GetAttributeString("file", ""); + } + public GUIComponentStyle GetComponentStyle(string name) { componentStyles.TryGetValue(name.ToLowerInvariant(), out GUIComponentStyle style); diff --git a/Barotrauma/BarotraumaClient/Source/GameMain.cs b/Barotrauma/BarotraumaClient/Source/GameMain.cs index bae4cb528..ef5af2175 100644 --- a/Barotrauma/BarotraumaClient/Source/GameMain.cs +++ b/Barotrauma/BarotraumaClient/Source/GameMain.cs @@ -340,7 +340,6 @@ namespace Barotrauma GUI.Init(Window, Config.SelectedContentPackages, GraphicsDevice); DebugConsole.Init(); - SteamManager.Initialize(); if (Config.AutoUpdateWorkshopItems) { if (SteamManager.AutoUpdateWorkshopItems()) @@ -648,6 +647,14 @@ namespace Barotrauma paused = (DebugConsole.IsOpen || GUI.PauseMenuOpen || GUI.SettingsMenuOpen || Tutorial.ContentRunning) && (NetworkMember == null || !NetworkMember.GameStarted); +#if !DEBUG || true + if (NetworkMember == null && !WindowActive && !paused && true && Screen.Selected != MainMenuScreen) + { + GUI.TogglePauseMenu(); + paused = true; + } +#endif + Screen.Selected.AddToGUIUpdateList(); if (Client != null) diff --git a/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs b/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs index e9bd2ba83..8b52b1fd9 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs @@ -74,12 +74,17 @@ namespace Barotrauma public CrewManager(XElement element, bool isSinglePlayer) : this(isSinglePlayer) { - if (!isSinglePlayer) + if (GameMain.Client != null) { - DebugConsole.ThrowError("Cannot add messages to single player chat box in multiplayer mode!\n" + Environment.StackTrace); + //let the server create random conversations in MP return; } - if (string.IsNullOrEmpty(text)) { return; } + List availableSpeakers = Character.CharacterList.FindAll(c => + c.AIController is HumanAIController && + !c.IsDead && + c.SpeechImpediment <= 100.0f); + pendingConversationLines.AddRange(NPCConversation.CreateRandom(availableSpeakers)); + } var characterInfo = new CharacterInfo(subElement); characterInfos.Add(characterInfo); @@ -90,7 +95,6 @@ namespace Barotrauma break; } } - ChatBox.AddMessage(ChatMessage.Create(senderName, text, messageType, sender)); } partial void InitProjectSpecific() @@ -239,27 +243,24 @@ namespace Barotrauma public IEnumerable GetCharacters() { - if (character?.Inventory == null) return null; + if (characterInfos.Contains(characterInfo)) + { + DebugConsole.ThrowError("Tried to add the same character info to CrewManager twice.\n" + Environment.StackTrace); + return; + } - var radioItem = character.Inventory.Items.FirstOrDefault(it => it != null && it.GetComponent() != null); - if (radioItem == null) return null; - if (requireEquipped && !character.HasEquippedItem(radioItem)) return null; - - return radioItem.GetComponent(); + characterInfos.Add(characterInfo); } public IEnumerable GetCharacterInfos() { - if (GameMain.Client != null) + if (character == null) { - //let the server create random conversations in MP + DebugConsole.ThrowError("Tried to remove a null character from CrewManager.\n" + Environment.StackTrace); return; } - List availableSpeakers = Character.CharacterList.FindAll(c => - c.AIController is HumanAIController && - !c.IsDead && - c.SpeechImpediment <= 100.0f); - pendingConversationLines.AddRange(NPCConversation.CreateRandom(availableSpeakers)); + characters.Remove(character); + if (removeInfo) characterInfos.Remove(character.Info); } public void AddCharacter(Character character) @@ -633,9 +634,183 @@ namespace Barotrauma { characterListBox.BarScroll = roundedPos; } - soundIcon.Visible = !muted && !mutedLocally; - soundIconDisabled.Visible = muted || mutedLocally; - soundIconDisabled.ToolTip = TextManager.Get(mutedLocally ? "MutedLocally" : "MutedGlobally"); + var characterArea = new GUIButton(new RectTransform(new Point(characterInfoWidth, frame.Rect.Height), frame.RectTransform, Anchor.CenterLeft), style: "GUITextBox") + { + UserData = character, + Color = frame.Color, + SelectedColor = frame.SelectedColor, + HoverColor = frame.HoverColor, + ToolTip = characterToolTip + }; + + var soundIcon = new GUIImage(new RectTransform(new Point((int)(characterArea.Rect.Height * 0.5f)), characterArea.RectTransform, Anchor.CenterRight) { AbsoluteOffset = new Point(5, 0) }, + "GUISoundIcon") + { + UserData = "soundicon", + CanBeFocused = false, + Visible = true + }; + soundIcon.Color = new Color(soundIcon.Color, 0.0f); + new GUIImage(new RectTransform(new Point((int)(characterArea.Rect.Height * 0.5f)), characterArea.RectTransform, Anchor.CenterRight) { AbsoluteOffset = new Point(5, 0) }, + "GUISoundIconDisabled") + { + UserData = "soundicondisabled", + CanBeFocused = true, + Visible = false + }; + + if (isSinglePlayer) + { + characterArea.OnClicked = CharacterClicked; + } + else + { + characterArea.CanBeFocused = false; + characterArea.CanBeSelected = false; + } + + var characterImage = new GUICustomComponent(new RectTransform(new Point(characterArea.Rect.Height), characterArea.RectTransform, Anchor.CenterLeft), + onDraw: (sb, component) => character.Info.DrawIcon(sb, component.Rect.Center.ToVector2(), targetAreaSize: component.Rect.Size.ToVector2())) + { + CanBeFocused = false, + HoverColor = Color.White, + SelectedColor = Color.White, + ToolTip = characterToolTip + }; + + var characterName = new GUITextBlock(new RectTransform(new Point(characterArea.Rect.Width - characterImage.Rect.Width - soundIcon.Rect.Width - 10, characterArea.Rect.Height), + characterArea.RectTransform, Anchor.CenterRight) { AbsoluteOffset = new Point(soundIcon.Rect.Width + 10, 0) }, + character.Name, textColor: frame.Color, font: GUI.SmallFont, wrap: true) + { + Color = frame.Color, + HoverColor = Color.Transparent, + SelectedColor = Color.Transparent, + CanBeFocused = false, + ToolTip = characterToolTip, + AutoScale = true + }; + + //---------------- order buttons ---------------- + + var orderButtonFrame = new GUILayoutGroup(new RectTransform(new Point(100, frame.Rect.Height), frame.RectTransform) + { AbsoluteOffset = new Point(characterInfoWidth + spacing, 0) }, + isHorizontal: true, childAnchor: Anchor.CenterLeft) + { + AbsoluteSpacing = (int)(10 * GUI.Scale), + UserData = "orderbuttons", + CanBeFocused = false + }; + + //listbox for holding the orders inappropriate for this character + //(so we can easily toggle their visibility) + var wrongOrderList = new GUIListBox(new RectTransform(new Point(50, orderButtonFrame.Rect.Height), orderButtonFrame.RectTransform), isHorizontal: true, style: null) + { + ScrollBarEnabled = false, + ScrollBarVisible = false, + Enabled = false, + Spacing = spacing, + ClampMouseRectToParent = false + }; + wrongOrderList.Content.ClampMouseRectToParent = false; + + for (int i = 0; i < orders.Count; i++) + { + var order = orders[i]; + if (order.TargetAllCharacters) continue; + + RectTransform btnParent = (i >= correctOrderCount + neutralOrderCount) ? + wrongOrderList.Content.RectTransform : + orderButtonFrame.RectTransform; + + var btn = new GUIButton(new RectTransform(new Point(iconSize, iconSize), btnParent, Anchor.CenterLeft), + style: null) + { + UserData = order + }; + + new GUIFrame(new RectTransform(new Vector2(1.5f), btn.RectTransform, Anchor.Center), "OuterGlow") + { + Color = Color.Lerp(order.Color, frame.Color, 0.5f) * 0.8f, + HoverColor = Color.Lerp(order.Color, frame.Color, 0.5f) * 1.0f, + PressedColor = Color.Lerp(order.Color, frame.Color, 0.5f) * 0.6f, + UserData = "selected", + CanBeFocused = false, + Visible = false + }; + + var img = new GUIImage(new RectTransform(Vector2.One, btn.RectTransform), order.Prefab.SymbolSprite); + img.Scale = iconSize / (float)img.SourceRect.Width; + img.Color = Color.Lerp(order.Color, frame.Color, 0.5f); + img.ToolTip = order.Name; + img.HoverColor = Color.Lerp(img.Color, Color.White, 0.5f); + + btn.OnClicked += (GUIButton button, object userData) => + { + if (Character.Controlled == null || Character.Controlled.SpeechImpediment >= 100.0f) return false; + + if (btn.GetChildByUserData("selected").Visible) + { + SetCharacterOrder(character, Order.PrefabList.Find(o => o.AITag == "dismissed"), null, Character.Controlled); + } + else + { + if (order.ItemComponentType != null || order.ItemIdentifiers.Length > 0 || order.Options.Length > 1) + { + CreateOrderTargetFrame(button, character, order); + } + else + { + SetCharacterOrder(character, order, null, Character.Controlled); + } + } + return true; + }; + btn.UserData = order; + btn.ToolTip = order.Name; + + //divider between different groups of orders + if (i == correctOrderCount - 1 || i == correctOrderCount + neutralOrderCount - 1) + { + //TODO: divider sprite + new GUIFrame(new RectTransform(new Point(8, iconSize), orderButtonFrame.RectTransform), style: "GUIButton"); + } + } + + var toggleWrongOrderBtn = new GUIButton(new RectTransform(new Point((int)(30 * GUI.Scale), wrongOrderList.Rect.Height), wrongOrderList.Content.RectTransform), + "", style: "UIToggleButton") + { + UserData = "togglewrongorder", + CanBeFocused = false + }; + + wrongOrderList.RectTransform.NonScaledSize = new Point( + wrongOrderList.Content.Children.Sum(c => c.Rect.Width + wrongOrderList.Spacing), + wrongOrderList.RectTransform.NonScaledSize.Y); + wrongOrderList.RectTransform.SetAsLastChild(); + + new GUIFrame(new RectTransform(new Point( + wrongOrderList.Rect.Width - toggleWrongOrderBtn.Rect.Width - wrongOrderList.Spacing * 2, + wrongOrderList.Rect.Height), wrongOrderList.Content.RectTransform), + style: null) + { + CanBeFocused = false + }; + + //scale to fit the content + orderButtonFrame.RectTransform.NonScaledSize = new Point( + orderButtonFrame.Children.Sum(c => c.Rect.Width + orderButtonFrame.AbsoluteSpacing), + orderButtonFrame.RectTransform.NonScaledSize.Y); + + frame.RectTransform.NonScaledSize = new Point( + characterInfoWidth + spacing + (orderButtonFrame.Rect.Width - wrongOrderList.Rect.Width), + frame.RectTransform.NonScaledSize.Y); + + characterListBox.RectTransform.NonScaledSize = new Point( + characterListBox.Content.Children.Max(c => c.Rect.Width) + wrongOrderList.Rect.Width, + characterListBox.RectTransform.NonScaledSize.Y); + characterListBox.Content.RectTransform.NonScaledSize = characterListBox.RectTransform.NonScaledSize; + characterListBox.UpdateScrollBarSize(); + return frame; } private IEnumerable KillCharacterAnim(GUIComponent component) @@ -779,6 +954,12 @@ namespace Barotrauma } return; } + List availableSpeakers = Character.CharacterList.FindAll(c => + c.AIController is HumanAIController && + !c.IsDead && + c.SpeechImpediment <= 100.0f); + pendingConversationLines.AddRange(NPCConversation.CreateRandom(availableSpeakers)); + } character.SetOrder(order, option, orderGiver, speak: orderGiver != character); if (IsSinglePlayer) @@ -836,19 +1017,23 @@ namespace Barotrauma } } } - //only one target (or an order with no particular targets), just show options - else + + character.SetOrder(order, option, orderGiver, speak: orderGiver != character); + if (IsSinglePlayer) { - orderTargetFrame = new GUILayoutGroup(new RectTransform(new Vector2(0.2f + order.Options.Length * 0.1f, 0.18f), GUI.Canvas) - { AbsoluteOffset = new Point(orderButton.Rect.Center.X, orderButton.Rect.Bottom) }, - isHorizontal: true, childAnchor: Anchor.BottomLeft) + orderGiver?.Speak( + order.GetChatMessage(character.Name, orderGiver.CurrentHull?.DisplayName, givingOrderToSelf: character == orderGiver, orderOption: option), null); + } + else if (orderGiver != null) + { + OrderChatMessage msg = new OrderChatMessage(order, option, order.TargetItemComponent?.Item, character, orderGiver); + if (GameMain.Client != null) { - UserData = character, - Stretch = true - }; - //line connecting the order button to the option buttons - //TODO: sprite - new GUIFrame(new RectTransform(new Vector2(0.5f, 1.0f), orderTargetFrame.RectTransform), style: null); + GameMain.Client.SendChatMessage(msg); + } + } + DisplayCharacterOrder(character, order); + } /// /// Create the UI panel that's used to select the target and options for a given order diff --git a/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/SinglePlayerCampaign.cs b/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/SinglePlayerCampaign.cs index ed7b01f1b..474502f1a 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/SinglePlayerCampaign.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/SinglePlayerCampaign.cs @@ -403,7 +403,7 @@ namespace Barotrauma if (campaign.CheatsEnabled) { DebugConsole.CheatsEnabled = true; - if (GameMain.Config.UseSteam && !SteamAchievementManager.CheatsEnabled) + if (Steam.SteamManager.USE_STEAM && !SteamAchievementManager.CheatsEnabled) { SteamAchievementManager.CheatsEnabled = true; new GUIMessageBox("Cheats enabled", "Cheat commands have been enabled on the campaign. You will not receive Steam Achievements until you restart the game."); diff --git a/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/Tutorials/Tutorial.cs b/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/Tutorials/Tutorial.cs index 0eb1d1d0c..5106b9aba 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/Tutorials/Tutorial.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSession/GameModes/Tutorials/Tutorial.cs @@ -70,7 +70,13 @@ namespace Barotrauma.Tutorials } } - public string Name + public string Identifier + { + get; + protected set; + } + + public string DisplayName { get; protected set; @@ -159,8 +165,9 @@ namespace Barotrauma.Tutorials public Tutorial(XElement element) { configElement = element; - Name = element.GetAttributeString("name", "Unnamed"); - completed = GameMain.Config.CompletedTutorialNames.Contains(Name); + Identifier = element.GetAttributeString("identifier", "unknown"); + DisplayName = TextManager.Get(Identifier); + completed = GameMain.Config.CompletedTutorialNames.Contains(Identifier); playableContentPath = element.GetAttributeString("playablecontentpath", ""); segments = new List(); diff --git a/Barotrauma/BarotraumaClient/Source/GameSettings.cs b/Barotrauma/BarotraumaClient/Source/GameSettings.cs index f3c55c859..b6323827e 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSettings.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSettings.cs @@ -132,7 +132,7 @@ namespace Barotrauma var languageDD = new GUIDropDown(new RectTransform(new Vector2(1.0f, 0.045f), generalLayoutGroup.RectTransform)); foreach (string language in TextManager.AvailableLanguages) { - languageDD.AddItem(TextManager.Get("Language." + language), language); + languageDD.AddItem(TextManager.Get("Language." + language, returnNull: true) ?? Language, language); } languageDD.SelectItem(TextManager.Language); languageDD.OnSelected = (guiComponent, obj) => @@ -263,6 +263,18 @@ namespace Barotrauma Selected = VSyncEnabled }; + //TODO: remove hardcoded texts after the texts have been added to localization + GUITickBox pauseOnFocusLostBox = new GUITickBox(new RectTransform(new Point(32, 32), leftColumn.RectTransform), + TextManager.Get("PauseOnFocusLost", returnNull: true) ?? "Pause on focus lost"); + pauseOnFocusLostBox.Selected = PauseOnFocusLost; + pauseOnFocusLostBox.ToolTip = TextManager.Get("PauseOnFocusLostToolTip", returnNull: true) ?? "Pauses the game when its window is not in focus. Note that the game won't be paused when a multiplayer session is active."; + pauseOnFocusLostBox.OnSelected = (tickBox) => + { + PauseOnFocusLost = tickBox.Selected; + UnsavedSettings = true; + return true; + }; + GUITextBlock particleLimitText = new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.05f), rightColumn.RectTransform), TextManager.Get("ParticleLimit")); GUIScrollBar particleScrollBar = new GUIScrollBar(new RectTransform(new Vector2(1.0f, 0.05f), rightColumn.RectTransform), barSize: 0.1f) diff --git a/Barotrauma/BarotraumaClient/Source/Networking/SteamManager.cs b/Barotrauma/BarotraumaClient/Source/Networking/SteamManager.cs index 4d4f12241..696d6d141 100644 --- a/Barotrauma/BarotraumaClient/Source/Networking/SteamManager.cs +++ b/Barotrauma/BarotraumaClient/Source/Networking/SteamManager.cs @@ -11,6 +11,12 @@ namespace Barotrauma.Steam { partial class SteamManager { + private static List initializationErrors = new List(); + public static IEnumerable InitializationErrors + { + get { return initializationErrors; } + } + private SteamManager() { try @@ -26,12 +32,12 @@ namespace Barotrauma.Steam catch (DllNotFoundException) { isInitialized = false; - new GUIMessageBox(TextManager.Get("Error"), TextManager.Get("SteamDllNotFound")); + initializationErrors.Add("SteamDllNotFound"); } catch (Exception) { isInitialized = false; - new GUIMessageBox(TextManager.Get("Error"), TextManager.Get("SteamClientInitFailed")); + initializationErrors.Add("SteamClientInitFailed"); } if (!isInitialized) diff --git a/Barotrauma/BarotraumaClient/Source/Program.cs b/Barotrauma/BarotraumaClient/Source/Program.cs index b624a2b7a..1fc149762 100644 --- a/Barotrauma/BarotraumaClient/Source/Program.cs +++ b/Barotrauma/BarotraumaClient/Source/Program.cs @@ -30,6 +30,7 @@ namespace Barotrauma [STAThread] static void Main() { + SteamManager.Initialize(); GameMain game = null; #if !DEBUG try diff --git a/Barotrauma/BarotraumaClient/Source/Screens/CampaignSetupUI.cs b/Barotrauma/BarotraumaClient/Source/Screens/CampaignSetupUI.cs index f1f3bb3a3..6498da198 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/CampaignSetupUI.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/CampaignSetupUI.cs @@ -152,6 +152,8 @@ namespace Barotrauma private GUILayoutGroup subPreviewContainer; + private GUILayoutGroup subPreviewContainer; + private GUIButton loadGameButton; public Action StartNewGame; diff --git a/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs index b2c2cbb23..3d0b38907 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs @@ -6,7 +6,6 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using System; -using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; @@ -84,7 +83,7 @@ namespace Barotrauma RelativeSpacing = 0.035f }; - new GUIButton(new RectTransform(new Vector2(1.0f, 1.0f), campaignList.RectTransform), "Tutorial", textAlignment: Alignment.Left, style: "MainMenuGUIButton") + new GUIButton(new RectTransform(new Vector2(1.0f, 1.0f), campaignList.RectTransform), TextManager.Get("TutorialButton"), textAlignment: Alignment.Left, style: "MainMenuGUIButton") { ForceUpperCase = true, UserData = Tab.Tutorials, @@ -324,7 +323,7 @@ namespace Barotrauma false, null, ""); foreach (Tutorial tutorial in Tutorial.Tutorials) { - var tutorialText = new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.15f), tutorialList.Content.RectTransform), tutorial.Name, textAlignment: Alignment.Center, font: GUI.LargeFont) + var tutorialText = new GUITextBlock(new RectTransform(new Vector2(1.0f, 0.15f), tutorialList.Content.RectTransform), tutorial.DisplayName, textAlignment: Alignment.Center, font: GUI.LargeFont) { UserData = tutorial }; @@ -758,6 +757,13 @@ namespace Barotrauma spriteBatch.End(); } + readonly string[] legalCrap = new string[] + { + "Privacy policy", + "© " + DateTime.Now.Year + " Undertow Games & FakeFish. All rights reserved.", + "© " + DateTime.Now.Year + " Daedalic Entertainment GmbH. The Daedalic logo is a trademark of Daedalic Entertainment GmbH, Germany. All rights reserved." + }; + public override void Draw(double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch) { DrawBackground(graphics, spriteBatch); @@ -765,6 +771,8 @@ namespace Barotrauma spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, GameMain.ScissorTestEnable); GUI.Draw(Cam, spriteBatch); + + GUI.Draw(Cam, spriteBatch); #if DEBUG GUI.Font.DrawString(spriteBatch, "Barotrauma v" + GameMain.Version + " (debug build)", new Vector2(10, GameMain.GraphicsHeight - 20), Color.White); @@ -772,30 +780,27 @@ namespace Barotrauma GUI.Font.DrawString(spriteBatch, "Barotrauma v" + GameMain.Version, new Vector2(10, GameMain.GraphicsHeight - 20), Color.White * 0.7f); #endif - if (selectedTab != Tab.Credits) + Vector2 textPos = new Vector2(GameMain.GraphicsWidth - 10, GameMain.GraphicsHeight - 10); + for (int i = legalCrap.Length - 1; i >= 0; i--) { - Vector2 textPos = new Vector2(GameMain.GraphicsWidth - 10, GameMain.GraphicsHeight - 10); - for (int i = legalCrap.Length - 1; i >= 0; i--) + Vector2 textSize = GUI.SmallFont.MeasureString(legalCrap[i]); + bool mouseOn = i == 0 && + PlayerInput.MousePosition.X > textPos.X - textSize.X && PlayerInput.MousePosition.X < textPos.X && + PlayerInput.MousePosition.Y > textPos.Y - textSize.Y && PlayerInput.MousePosition.Y < textPos.Y; + + GUI.SmallFont.DrawString(spriteBatch, + legalCrap[i], textPos - textSize, + mouseOn ? Color.White : Color.White * 0.7f); + + if (i == 0) { - Vector2 textSize = GUI.SmallFont.MeasureString(legalCrap[i]); - bool mouseOn = i == 0 && - PlayerInput.MousePosition.X > textPos.X - textSize.X && PlayerInput.MousePosition.X < textPos.X && - PlayerInput.MousePosition.Y > textPos.Y - textSize.Y && PlayerInput.MousePosition.Y < textPos.Y; - - GUI.SmallFont.DrawString(spriteBatch, - legalCrap[i], textPos - textSize, - mouseOn ? Color.White : Color.White * 0.7f); - - if (i == 0) + GUI.DrawLine(spriteBatch, textPos, textPos - Vector2.UnitX * textSize.X, mouseOn ? Color.White : Color.White * 0.7f); + if (mouseOn && PlayerInput.LeftButtonClicked()) { - GUI.DrawLine(spriteBatch, textPos, textPos - Vector2.UnitX * textSize.X, mouseOn ? Color.White : Color.White * 0.7f); - if (mouseOn && PlayerInput.LeftButtonClicked()) - { - Process.Start("http://privacypolicy.daedalic.com"); - } + Process.Start("http://privacypolicy.daedalic.com"); } - textPos.Y -= textSize.Y; } + textPos.Y -= textSize.Y; } spriteBatch.End(); diff --git a/Barotrauma/BarotraumaClient/Source/Utils/ToolBox.cs b/Barotrauma/BarotraumaClient/Source/Utils/ToolBox.cs index d6376063c..6fff47dc9 100644 --- a/Barotrauma/BarotraumaClient/Source/Utils/ToolBox.cs +++ b/Barotrauma/BarotraumaClient/Source/Utils/ToolBox.cs @@ -1,6 +1,7 @@ using Microsoft.Xna.Framework; using System; using System.Collections.Generic; +using System.Linq; using System.Text; using System.Text.RegularExpressions; @@ -106,36 +107,18 @@ namespace Barotrauma text = text.Replace("\n", " \n "); - List words = new List(); - string currWord = ""; - for (int i = 0; i < text.Length; i++) + string[] words; + if (TextManager.NoWhiteSpace) { - if (isCJK.IsMatch(text[i].ToString())) + words = new string[text.Length]; + for (int i = 0; i < text.Length; i++) { - if (currWord.Length > 0) - { - words.Add(currWord); - currWord = ""; - } - words.Add(text[i].ToString()); - } - else if (text[i] == ' ') - { - if (currWord.Length > 0) - { - words.Add(currWord); - currWord = ""; - } - } - else - { - currWord += text[i]; + words[i] = text[i].ToString(); } } - if (currWord.Length > 0) + else { - words.Add(currWord); - currWord = ""; + words = text.Split(' '); } StringBuilder wrappedText = new StringBuilder(); diff --git a/Barotrauma/BarotraumaClient/WindowsClient.csproj b/Barotrauma/BarotraumaClient/WindowsClient.csproj index 131aa6e76..3466d3dd7 100644 --- a/Barotrauma/BarotraumaClient/WindowsClient.csproj +++ b/Barotrauma/BarotraumaClient/WindowsClient.csproj @@ -31,6 +31,7 @@ true + .pdb ..\BarotraumaShared\Icon.ico @@ -53,6 +54,27 @@ x64 MinimumRecommendedRules.ruleset true + + + + + true + ..\bin\x86\ReleaseWindows\ + TRACE;WINDOWS;CLIENT + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + true + + + true + ..\bin\x86\DebugWindows\ + TRACE;WINDOWS;CLIENT;DEBUG + full + x86 + MinimumRecommendedRules.ruleset + true @@ -123,10 +145,30 @@ + + + + + PreserveNewest + freetype6.dll + + + PreserveNewest + + + + + + + PreserveNewest + + + PreserveNewest + + + + - - PreserveNewest - PreserveNewest @@ -173,9 +215,6 @@ - - PreserveNewest - PreserveNewest @@ -281,7 +320,13 @@ Other similar extension points exist, see Microsoft.Common.targets. - - --> + + + + + + + + \ No newline at end of file diff --git a/Barotrauma/BarotraumaServer/Server.csproj b/Barotrauma/BarotraumaServer/Server.csproj index bc97ad59e..99289cacd 100644 --- a/Barotrauma/BarotraumaServer/Server.csproj +++ b/Barotrauma/BarotraumaServer/Server.csproj @@ -91,6 +91,63 @@ MinimumRecommendedRules.ruleset true + + true + bin\x86\ReleaseLinux\ + TRACE;SERVER + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + true + + + true + bin\x86\DebugLinux\ + TRACE;SERVER;DEBUG + full + x86 + MinimumRecommendedRules.ruleset + true + + + true + bin\x86\ReleaseMac\ + TRACE;SERVER + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + true + + + true + bin\x86\DebugMac\ + TRACE;SERVER;DEBUG + full + x86 + MinimumRecommendedRules.ruleset + true + + + true + bin\x86\ReleaseWindows\ + TRACE;SERVER + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + true + + + true + bin\x86\DebugWindows\ + TRACE;SERVER;DEBUG + full + x86 + MinimumRecommendedRules.ruleset + true + @@ -237,4 +294,4 @@ - + \ No newline at end of file diff --git a/Barotrauma/BarotraumaServer/Source/DebugConsole.cs b/Barotrauma/BarotraumaServer/Source/DebugConsole.cs index a7d06ffa1..904c92a2b 100644 --- a/Barotrauma/BarotraumaServer/Source/DebugConsole.cs +++ b/Barotrauma/BarotraumaServer/Source/DebugConsole.cs @@ -26,7 +26,7 @@ namespace Barotrauma NewMessage("Client \"" + client.Name + "\" attempted to use the command \"" + names[0] + "\". Cheats must be enabled using \"enablecheats\" before the command can be used.", Color.Red); GameMain.Server.SendConsoleMessage("You need to enable cheats using the command \"enablecheats\" before you can use the command \"" + names[0] + "\".", client); - if (GameMain.Config.UseSteam) + if (Steam.SteamManager.USE_STEAM) { NewMessage("Enabling cheats will disable Steam achievements during this play session.", Color.Red); GameMain.Server.SendConsoleMessage("Enabling cheats will disable Steam achievements during this play session.", client); @@ -699,7 +699,7 @@ namespace Barotrauma CheatsEnabled = true; SteamAchievementManager.CheatsEnabled = true; NewMessage("Enabled cheat commands.", Color.Red); - if (GameMain.Config.UseSteam) + if (Steam.SteamManager.USE_STEAM) { NewMessage("Steam achievements have been disabled during this play session.", Color.Red); GameMain.Server?.UpdateCheatsEnabled(); @@ -714,7 +714,7 @@ namespace Barotrauma CheatsEnabled = true; SteamAchievementManager.CheatsEnabled = true; NewMessage("Cheat commands have been enabled by \"" + client.Name + "\".", Color.Red); - if (GameMain.Config.UseSteam) + if (Steam.SteamManager.USE_STEAM) { NewMessage("Steam achievements have been disabled during this play session.", Color.Red); GameMain.Server?.UpdateCheatsEnabled(); diff --git a/Barotrauma/BarotraumaServer/Source/GameSession/GameModes/MultiPlayerCampaign.cs b/Barotrauma/BarotraumaServer/Source/GameSession/GameModes/MultiPlayerCampaign.cs index 271e444c2..35fbb7ea0 100644 --- a/Barotrauma/BarotraumaServer/Source/GameSession/GameModes/MultiPlayerCampaign.cs +++ b/Barotrauma/BarotraumaServer/Source/GameSession/GameModes/MultiPlayerCampaign.cs @@ -3,6 +3,7 @@ using Lidgren.Network; using Microsoft.Xna.Framework; using System; using System.Collections.Generic; +using System.Linq; using System.Xml.Linq; namespace Barotrauma @@ -55,7 +56,7 @@ namespace Barotrauma } else { - string[] saveFiles = SaveUtil.GetSaveFiles(SaveUtil.SaveType.Multiplayer); + var saveFiles = SaveUtil.GetSaveFiles(SaveUtil.SaveType.Multiplayer).ToArray(); DebugConsole.NewMessage("Saved campaigns:", Color.White); for (int i = 0; i < saveFiles.Length; i++) { diff --git a/Barotrauma/BarotraumaServer/Source/Networking/GameServer.cs b/Barotrauma/BarotraumaServer/Source/Networking/GameServer.cs index 5717efe48..5ee4d596f 100644 --- a/Barotrauma/BarotraumaServer/Source/Networking/GameServer.cs +++ b/Barotrauma/BarotraumaServer/Source/Networking/GameServer.cs @@ -1126,7 +1126,7 @@ namespace Barotrauma.Networking UInt16 modeIndex = inc.ReadUInt16(); if (GameMain.NetLobbyScreen.GameModes[modeIndex].Identifier.ToLowerInvariant() == "multiplayercampaign") { - string[] saveFiles = SaveUtil.GetSaveFiles(SaveUtil.SaveType.Multiplayer); + string[] saveFiles = SaveUtil.GetSaveFiles(SaveUtil.SaveType.Multiplayer).ToArray(); for (int i = 0; i < saveFiles.Length; i++) { XDocument doc = SaveUtil.LoadGameSessionDoc(saveFiles[i]); diff --git a/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml b/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml index 6cb28c845..b7b5d6657 100644 --- a/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml +++ b/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml @@ -80,7 +80,11 @@ + + + + diff --git a/Barotrauma/BarotraumaShared/Icon.ico b/Barotrauma/BarotraumaShared/Icon.ico index a31034fcd..1c7b910c5 100644 Binary files a/Barotrauma/BarotraumaShared/Icon.ico and b/Barotrauma/BarotraumaShared/Icon.ico differ diff --git a/Barotrauma/BarotraumaShared/SharedContent.projitems b/Barotrauma/BarotraumaShared/SharedContent.projitems index ce6b11cf1..8ac5b0f8f 100644 --- a/Barotrauma/BarotraumaShared/SharedContent.projitems +++ b/Barotrauma/BarotraumaShared/SharedContent.projitems @@ -361,6 +361,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -493,6 +499,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -724,15 +736,6 @@ PreserveNewest - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - PreserveNewest @@ -3332,10 +3335,10 @@ PreserveNewest - Never + PreserveNewest - Never + PreserveNewest PreserveNewest diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGetItem.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGetItem.cs index 3dac925f0..369ad36e6 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGetItem.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGetItem.cs @@ -217,7 +217,6 @@ namespace Barotrauma currItemPriority = itemPriority; targetItem = item; moveToTarget = rootContainer ?? item; - } //if searched through all the items and a target wasn't found, can't be completed if (currSearchIndex >= Item.ItemList.Count - 1 && targetItem == null) diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs index cc348b883..612913127 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveGoTo.cs @@ -199,11 +199,5 @@ namespace Barotrauma float interactionDistance = Target is Item i ? ConvertUnits.ToSimUnits(i.InteractDistance * 0.9f) : 0; CloseEnough = Math.Max(interactionDistance, CloseEnough); } - - private void CalculateCloseEnough() - { - float interactionDistance = Target is Item i ? ConvertUnits.ToSimUnits(i.InteractDistance * 0.9f) : 0; - CloseEnough = Math.Max(interactionDistance, CloseEnough); - } } } diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs index ef625ff7f..9800de14b 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs @@ -74,21 +74,6 @@ namespace Barotrauma } } - public override void Update(float deltaTime) - { - if (objectiveManager.CurrentObjective == this) - { - if (randomTimer > 0) - { - randomTimer -= deltaTime; - } - else - { - SetRandom(); - } - } - } - public override bool IsCompleted() => false; public override bool CanBeCompleted => true; diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveOperateItem.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveOperateItem.cs index f516d47bf..97495f664 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveOperateItem.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveOperateItem.cs @@ -82,6 +82,10 @@ namespace Barotrauma { isCompleted = true; } + if (component.AIOperate(deltaTime, character, this)) + { + isCompleted = true; + } } else { diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs index 8a323a0e2..b52392f18 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs @@ -2023,6 +2023,10 @@ namespace Barotrauma { IsRagdolled = IsForceRagdolled; } + else if (IsRemotePlayer) + { + IsRagdolled = IsKeyDown(InputType.Ragdoll); + } //Keep us ragdolled if we were forced or we're too speedy to unragdoll else if (allowRagdoll && (!IsRagdolled || AnimController.Collider.LinearVelocity.LengthSquared() < 1f)) { diff --git a/Barotrauma/BarotraumaShared/Source/DebugConsole.cs b/Barotrauma/BarotraumaShared/Source/DebugConsole.cs index 73736a5fd..39d8abd87 100644 --- a/Barotrauma/BarotraumaShared/Source/DebugConsole.cs +++ b/Barotrauma/BarotraumaShared/Source/DebugConsole.cs @@ -68,7 +68,7 @@ namespace Barotrauma if (!CheatsEnabled && IsCheat) { NewMessage("You need to enable cheats using the command \"enablecheats\" before you can use the command \"" + names[0] + "\".", Color.Red); - if (GameMain.Config.UseSteam) + if (Steam.SteamManager.USE_STEAM) { NewMessage("Enabling cheats will disable Steam achievements during this play session.", Color.Red); } diff --git a/Barotrauma/BarotraumaShared/Source/GameSession/GameModes/CampaignMode.cs b/Barotrauma/BarotraumaShared/Source/GameSession/GameModes/CampaignMode.cs index 7064e0415..f43235f81 100644 --- a/Barotrauma/BarotraumaShared/Source/GameSession/GameModes/CampaignMode.cs +++ b/Barotrauma/BarotraumaShared/Source/GameSession/GameModes/CampaignMode.cs @@ -12,7 +12,7 @@ namespace Barotrauma public bool CheatsEnabled; - const int InitialMoney = 4700; + const int InitialMoney = 8700; public const int HullRepairCost = 500, ItemRepairCost = 500; protected bool watchmenSpawned; diff --git a/Barotrauma/BarotraumaShared/Source/GameSession/GameModes/MultiPlayerCampaign.cs b/Barotrauma/BarotraumaShared/Source/GameSession/GameModes/MultiPlayerCampaign.cs index 461209f64..f172f2760 100644 --- a/Barotrauma/BarotraumaShared/Source/GameSession/GameModes/MultiPlayerCampaign.cs +++ b/Barotrauma/BarotraumaShared/Source/GameSession/GameModes/MultiPlayerCampaign.cs @@ -184,7 +184,7 @@ namespace Barotrauma if (CheatsEnabled) { DebugConsole.CheatsEnabled = true; - if (GameMain.Config.UseSteam && !SteamAchievementManager.CheatsEnabled) + if (Steam.SteamManager.USE_STEAM && !SteamAchievementManager.CheatsEnabled) { SteamAchievementManager.CheatsEnabled = true; #if CLIENT diff --git a/Barotrauma/BarotraumaShared/Source/GameSettings.cs b/Barotrauma/BarotraumaShared/Source/GameSettings.cs index fc6b1cdc0..d2faa06c6 100644 --- a/Barotrauma/BarotraumaShared/Source/GameSettings.cs +++ b/Barotrauma/BarotraumaShared/Source/GameSettings.cs @@ -43,6 +43,7 @@ namespace Barotrauma public bool SpecularityEnabled { get; set; } public bool ChromaticAberrationEnabled { get; set; } + public bool PauseOnFocusLost { get; set; } = true; public bool MuteOnFocusLost { get; set; } public bool UseDirectionalVoiceChat { get; set; } @@ -77,24 +78,17 @@ namespace Barotrauma #if DEBUG //steam functionality can be enabled/disabled in debug builds - public bool UseSteam; public bool RequireSteamAuthentication { - get { return requireSteamAuthentication && UseSteam; } + get { return requireSteamAuthentication && Steam.SteamManager.USE_STEAM; } set { requireSteamAuthentication = value; } } public bool UseSteamMatchmaking { - get { return useSteamMatchmaking && UseSteam; } + get { return useSteamMatchmaking && Steam.SteamManager.USE_STEAM; } set { useSteamMatchmaking = value; } } - #else - //steam functionality determined at compile time - public bool UseSteam - { - get { return Steam.SteamManager.USE_STEAM; } - } public bool RequireSteamAuthentication { get { return requireSteamAuthentication && Steam.SteamManager.USE_STEAM; } @@ -438,9 +432,6 @@ namespace Barotrauma VerboseLogging = doc.Root.GetAttributeBool("verboselogging", false); SaveDebugConsoleLogs = doc.Root.GetAttributeBool("savedebugconsolelogs", false); -#if DEBUG - UseSteam = doc.Root.GetAttributeBool("usesteam", true); -#endif QuickStartSubmarineName = doc.Root.GetAttributeString("quickstartsub", ""); if (doc == null) @@ -850,6 +841,7 @@ namespace Barotrauma EnableSplashScreen = doc.Root.GetAttributeBool("enablesplashscreen", EnableSplashScreen); + PauseOnFocusLost = doc.Root.GetAttributeBool("pauseonfocuslost", PauseOnFocusLost); AimAssistAmount = doc.Root.GetAttributeFloat("aimassistamount", AimAssistAmount); EnableMouseLook = doc.Root.GetAttributeBool("enablemouselook", EnableMouseLook); @@ -1047,6 +1039,7 @@ namespace Barotrauma new XAttribute("quickstartsub", QuickStartSubmarineName), new XAttribute("requiresteamauthentication", requireSteamAuthentication), new XAttribute("autoupdateworkshopitems", AutoUpdateWorkshopItems), + new XAttribute("pauseonfocuslost", PauseOnFocusLost), new XAttribute("aimassistamount", aimAssistAmount), new XAttribute("enablemouselook", EnableMouseLook), new XAttribute("chatopen", ChatOpen), @@ -1155,9 +1148,9 @@ namespace Barotrauma { foreach (Tutorial tutorial in Tutorial.Tutorials) { - if (tutorial.Completed && !CompletedTutorialNames.Contains(tutorial.Name)) + if (tutorial.Completed && !CompletedTutorialNames.Contains(tutorial.Identifier)) { - CompletedTutorialNames.Add(tutorial.Name); + CompletedTutorialNames.Add(tutorial.Identifier); } } } diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs index fa9ff9e17..76daa7efe 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs @@ -580,8 +580,8 @@ namespace Barotrauma.Items.Components public virtual bool HasRequiredItems(Character character, bool addMessage, string msg = null) { - if (!requiredItems.Any()) return true; - if (character.Inventory == null) return false; + if (!requiredItems.Any()) { return true; } + if (character.Inventory == null) { return false; } bool hasRequiredItems = false; bool canContinue = true; if (requiredItems.ContainsKey(RelatedItem.RelationType.Equipped)) @@ -615,7 +615,15 @@ namespace Barotrauma.Items.Components { bool Predicate(Item it) => it != null && it.Condition > 0.0f && relatedItem.MatchesItem(it); bool shouldBreak = false; - if (relatedItem.IsOptional) + bool inEditor = false; +#if CLIENT + inEditor = Screen.Selected == GameMain.SubEditorScreen; +#endif + if (relatedItem.IgnoreInEditor && inEditor) + { + hasRequiredItems = true; + } + else if (relatedItem.IsOptional) { if (!hasRequiredItems) { @@ -784,6 +792,7 @@ namespace Barotrauma.Items.Components newRequiredItem.statusEffects = prevRequiredItem.statusEffects; newRequiredItem.Msg = prevRequiredItem.Msg; newRequiredItem.IsOptional = prevRequiredItem.IsOptional; + newRequiredItem.IgnoreInEditor = prevRequiredItem.IgnoreInEditor; } if (!requiredItems.ContainsKey(newRequiredItem.Type)) diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs index 36645d27e..608da30fb 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs @@ -829,6 +829,25 @@ namespace Barotrauma.Items.Components } } + if (targetItem.Prefab.DeconstructItems.Any()) + { + inputContainer.Inventory.RemoveItem(targetItem); + Entity.Spawner.AddToRemoveQueue(targetItem); + MoveInputQueue(); + PutItemsToLinkedContainer(); + } + else + { + if (outputContainer.Inventory.Items.All(i => i != null)) + { + targetItem.Drop(dropper: null); + } + else + { + outputContainer.Inventory.TryPutItem(targetItem, user: null, createNetworkEvent: true); + } + } + if (targetItem.Prefab.DeconstructItems.Any()) { inputContainer.Inventory.RemoveItem(targetItem); diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Steering.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Steering.cs index a251165ce..2aafee648 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Steering.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Steering.cs @@ -212,33 +212,6 @@ namespace Barotrauma.Items.Components } } - public Vector2? PosToMaintain - { - get { return posToMaintain; } - set { posToMaintain = value; } - } - - struct ObstacleDebugInfo - { - public Vector2 Point1; - public Vector2 Point2; - - public Vector2? Intersection; - - public float Dot; - - public Vector2 AvoidStrength; - - public ObstacleDebugInfo(GraphEdge edge, Vector2? intersection, float dot, Vector2 avoidStrength) - { - Point1 = edge.Point1; - Point2 = edge.Point2; - Intersection = intersection; - Dot = dot; - AvoidStrength = avoidStrength; - } - } - //edge point 1, edge point 2, avoid strength private List debugDrawObstacles = new List(); diff --git a/Barotrauma/BarotraumaShared/Source/Items/Item.cs b/Barotrauma/BarotraumaShared/Source/Items/Item.cs index 224ab7913..914f7ac2a 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Item.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Item.cs @@ -1464,6 +1464,10 @@ namespace Barotrauma { ApplyStatusEffects(!waterProof && inWater ? ActionType.InWater : ActionType.NotInWater, deltaTime); } + if (!broken) + { + ApplyStatusEffects(!waterProof && inWater ? ActionType.InWater : ActionType.NotInWater, deltaTime); + } ApplyStatusEffects(!waterProof && inWater ? ActionType.InWater : ActionType.NotInWater, deltaTime); if (body == null || !body.Enabled || !inWater || ParentInventory != null || Removed) { return; } diff --git a/Barotrauma/BarotraumaShared/Source/Items/RelatedItem.cs b/Barotrauma/BarotraumaShared/Source/Items/RelatedItem.cs index bbbfc6705..c6db98cbc 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/RelatedItem.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/RelatedItem.cs @@ -17,8 +17,8 @@ namespace Barotrauma } public bool IsOptional { get; set; } - - private string[] identifiers; + + public bool IgnoreInEditor { get; set; } private string[] excludedIdentifiers; @@ -35,23 +35,20 @@ namespace Barotrauma public string JoinedIdentifiers { - get { return string.Join(",", identifiers); } + get { return string.Join(",", Identifiers); } set { if (value == null) return; - identifiers = value.Split(','); - for (int i = 0; i < identifiers.Length; i++) + Identifiers = value.Split(','); + for (int i = 0; i < Identifiers.Length; i++) { - identifiers[i] = identifiers[i].Trim().ToLowerInvariant(); + Identifiers[i] = Identifiers[i].Trim().ToLowerInvariant(); } } } - - public string[] Identifiers - { - get { return identifiers; } - } + + public string[] Identifiers { get; private set; } public string JoinedExcludedIdentifiers { @@ -72,7 +69,7 @@ namespace Barotrauma { if (item == null) return false; if (excludedIdentifiers.Any(id => item.Prefab.Identifier == id || item.HasTag(id))) return false; - return identifiers.Any(id => item.Prefab.Identifier == id || item.HasTag(id)); + return Identifiers.Any(id => item.Prefab.Identifier == id || item.HasTag(id)); } public RelatedItem(string[] identifiers, string[] excludedIdentifiers) @@ -81,7 +78,7 @@ namespace Barotrauma { identifiers[i] = identifiers[i].Trim().ToLowerInvariant(); } - this.identifiers = identifiers; + this.Identifiers = identifiers; for (int i = 0; i < excludedIdentifiers.Length; i++) { @@ -141,7 +138,8 @@ namespace Barotrauma element.Add( new XAttribute("identifiers", JoinedIdentifiers), new XAttribute("type", type.ToString()), - new XAttribute("optional", IsOptional)); + new XAttribute("optional", IsOptional), + new XAttribute("ignoreineditor", IgnoreInEditor)); if (excludedIdentifiers.Length > 0) { @@ -223,6 +221,7 @@ namespace Barotrauma } ri.IsOptional = element.GetAttributeBool("optional", false); + ri.IgnoreInEditor = element.GetAttributeBool("ignoreineditor", false); return ri; } } diff --git a/Barotrauma/BarotraumaShared/Source/Map/Hull.cs b/Barotrauma/BarotraumaShared/Source/Map/Hull.cs index 5160aa6f5..5b48a8f40 100644 --- a/Barotrauma/BarotraumaShared/Source/Map/Hull.cs +++ b/Barotrauma/BarotraumaShared/Source/Map/Hull.cs @@ -645,6 +645,25 @@ namespace Barotrauma } } + public string DisplayName + { + get; + private set; + } + + private string roomName; + [Editable, Serialize("", true, translationTextTag: "RoomName.")] + public string RoomName + { + get { return roomName; } + set + { + if (roomName == value) { return; } + roomName = value; + DisplayName = TextManager.Get(roomName, returnNull: true) ?? roomName; + } + } + public override Rectangle Rect { get diff --git a/Barotrauma/BarotraumaShared/Source/Networking/SteamManager.cs b/Barotrauma/BarotraumaShared/Source/Networking/SteamManager.cs index 19d821993..f72c8354b 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/SteamManager.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/SteamManager.cs @@ -7,15 +7,7 @@ namespace Barotrauma.Steam { partial class SteamManager { -#if DEBUG - public static bool USE_STEAM - { - get { return GameMain.Config.UseSteam; } - } -#else - //cannot enable/disable steam in release builds public const bool USE_STEAM = true; -#endif public const uint AppID = 602960; diff --git a/Barotrauma/BarotraumaShared/Source/TextManager.cs b/Barotrauma/BarotraumaShared/Source/TextManager.cs index ff727c72b..466c12c65 100644 --- a/Barotrauma/BarotraumaShared/Source/TextManager.cs +++ b/Barotrauma/BarotraumaShared/Source/TextManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; namespace Barotrauma { @@ -15,7 +16,15 @@ namespace Barotrauma private static string[] serverMessageCharacters = new string[] { "~", "[", "]", "=" }; public static string Language; - + public static bool NoWhiteSpace + { + get + { + if (!textPacks.ContainsKey(Language)) { return false; } + return textPacks[Language].Any(t => t.NoWhiteSpace); + } + } + private static HashSet availableLanguages = new HashSet(); public static IEnumerable AvailableLanguages { diff --git a/Barotrauma/BarotraumaShared/Source/TextPack.cs b/Barotrauma/BarotraumaShared/Source/TextPack.cs index f1c2c3a76..a4105c57b 100644 --- a/Barotrauma/BarotraumaShared/Source/TextPack.cs +++ b/Barotrauma/BarotraumaShared/Source/TextPack.cs @@ -12,7 +12,9 @@ namespace Barotrauma private Dictionary> texts; - private string filePath; + public readonly bool NoWhiteSpace; + + private readonly string filePath; public TextPack(string filePath) { @@ -23,6 +25,7 @@ namespace Barotrauma if (doc == null || doc.Root == null) return; Language = doc.Root.GetAttributeString("language", "Unknown"); + NoWhiteSpace = doc.Root.GetAttributeBool("nowhitespace", false); foreach (XElement subElement in doc.Root.Elements()) { diff --git a/Barotrauma/BarotraumaShared/Submarines/Orca.sub b/Barotrauma/BarotraumaShared/Submarines/Orca.sub index fc8a21a44..a1492dca9 100644 Binary files a/Barotrauma/BarotraumaShared/Submarines/Orca.sub and b/Barotrauma/BarotraumaShared/Submarines/Orca.sub differ diff --git a/Barotrauma/BarotraumaShared/Submarines/Remora.sub b/Barotrauma/BarotraumaShared/Submarines/Remora.sub index 0e552098c..7e3d781ea 100644 Binary files a/Barotrauma/BarotraumaShared/Submarines/Remora.sub and b/Barotrauma/BarotraumaShared/Submarines/Remora.sub differ diff --git a/Barotrauma/BarotraumaShared/Submarines/RemoraDrone.sub b/Barotrauma/BarotraumaShared/Submarines/RemoraDrone.sub index f546031bf..db200977b 100644 Binary files a/Barotrauma/BarotraumaShared/Submarines/RemoraDrone.sub and b/Barotrauma/BarotraumaShared/Submarines/RemoraDrone.sub differ diff --git a/Barotrauma/BarotraumaShared/Submarines/Typhon.sub b/Barotrauma/BarotraumaShared/Submarines/Typhon.sub index 9f1f5b9da..842c10d84 100644 Binary files a/Barotrauma/BarotraumaShared/Submarines/Typhon.sub and b/Barotrauma/BarotraumaShared/Submarines/Typhon.sub differ diff --git a/Barotrauma_Solution.sln b/Barotrauma_Solution.sln index 94040636c..b2e357682 100644 --- a/Barotrauma_Solution.sln +++ b/Barotrauma_Solution.sln @@ -61,7 +61,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MacClient", "Barotrauma\Bar {85232B20-074D-4723-B0C6-91495391E448} = {85232B20-074D-4723-B0C6-91495391E448} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Concentus", "Libraries\Concentus\CSharp\Concentus\Concentus.csproj", "{777A5414-CAE5-4011-96DF-C9661985917E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Concentus", "Libraries\Concentus\CSharp\Concentus\Concentus.csproj", "{0E7FEE6A-15E5-4A4E-943C-80276003478C}" EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution @@ -85,377 +85,577 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 DebugLinux|Any CPU = DebugLinux|Any CPU DebugLinux|x64 = DebugLinux|x64 + DebugLinux|x86 = DebugLinux|x86 DebugMac|Any CPU = DebugMac|Any CPU DebugMac|x64 = DebugMac|x64 + DebugMac|x86 = DebugMac|x86 DebugWindows|Any CPU = DebugWindows|Any CPU DebugWindows|x64 = DebugWindows|x64 + DebugWindows|x86 = DebugWindows|x86 Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 + Release|x86 = Release|x86 ReleaseLinux|Any CPU = ReleaseLinux|Any CPU ReleaseLinux|x64 = ReleaseLinux|x64 + ReleaseLinux|x86 = ReleaseLinux|x86 ReleaseMac|Any CPU = ReleaseMac|Any CPU ReleaseMac|x64 = ReleaseMac|x64 + ReleaseMac|x86 = ReleaseMac|x86 ReleaseWindows|Any CPU = ReleaseWindows|Any CPU ReleaseWindows|x64 = ReleaseWindows|x64 + ReleaseWindows|x86 = ReleaseWindows|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {008C0F83-E914-4966-9135-EA885059EDD8}.Debug|Any CPU.ActiveCfg = ReleaseWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.Debug|Any CPU.Build.0 = ReleaseWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.Debug|x64.ActiveCfg = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.Debug|x64.Build.0 = DebugWindows|x64 + {008C0F83-E914-4966-9135-EA885059EDD8}.Debug|x86.ActiveCfg = DebugWindows|x86 + {008C0F83-E914-4966-9135-EA885059EDD8}.Debug|x86.Build.0 = DebugWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugLinux|Any CPU.ActiveCfg = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugLinux|Any CPU.Build.0 = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugLinux|x64.ActiveCfg = DebugWindows|x64 + {008C0F83-E914-4966-9135-EA885059EDD8}.DebugLinux|x86.ActiveCfg = DebugWindows|x86 + {008C0F83-E914-4966-9135-EA885059EDD8}.DebugLinux|x86.Build.0 = DebugWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugMac|Any CPU.ActiveCfg = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugMac|Any CPU.Build.0 = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugMac|x64.ActiveCfg = DebugWindows|x64 + {008C0F83-E914-4966-9135-EA885059EDD8}.DebugMac|x86.ActiveCfg = DebugWindows|x86 + {008C0F83-E914-4966-9135-EA885059EDD8}.DebugMac|x86.Build.0 = DebugWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugWindows|Any CPU.ActiveCfg = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugWindows|x64.ActiveCfg = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.DebugWindows|x64.Build.0 = DebugWindows|x64 + {008C0F83-E914-4966-9135-EA885059EDD8}.DebugWindows|x86.ActiveCfg = DebugWindows|x86 + {008C0F83-E914-4966-9135-EA885059EDD8}.DebugWindows|x86.Build.0 = DebugWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.Release|Any CPU.ActiveCfg = ReleaseWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.Release|Any CPU.Build.0 = ReleaseWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.Release|x64.ActiveCfg = ReleaseWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.Release|x64.Build.0 = ReleaseWindows|x64 + {008C0F83-E914-4966-9135-EA885059EDD8}.Release|x86.ActiveCfg = ReleaseWindows|x86 + {008C0F83-E914-4966-9135-EA885059EDD8}.Release|x86.Build.0 = ReleaseWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseLinux|Any CPU.ActiveCfg = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseLinux|Any CPU.Build.0 = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseLinux|x64.ActiveCfg = ReleaseWindows|x64 + {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseLinux|x86.ActiveCfg = ReleaseWindows|x86 + {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseLinux|x86.Build.0 = ReleaseWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseMac|Any CPU.ActiveCfg = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseMac|Any CPU.Build.0 = DebugWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseMac|x64.ActiveCfg = ReleaseWindows|x64 + {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseMac|x86.ActiveCfg = ReleaseWindows|x86 + {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseMac|x86.Build.0 = ReleaseWindows|x86 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseWindows|Any CPU.ActiveCfg = ReleaseWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseWindows|x64.ActiveCfg = ReleaseWindows|x64 {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseWindows|x64.Build.0 = ReleaseWindows|x64 + {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86 + {008C0F83-E914-4966-9135-EA885059EDD8}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86 {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Any CPU.Build.0 = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|x64.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|x64.Build.0 = Debug|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|x86.ActiveCfg = Debug|x86 + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|x86.Build.0 = Debug|x86 {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|Any CPU.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|Any CPU.Build.0 = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|x64.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|x64.Build.0 = Debug|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|x86.ActiveCfg = Debug|x86 + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugLinux|x86.Build.0 = Debug|x86 {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugMac|Any CPU.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugMac|Any CPU.Build.0 = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugMac|x64.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugMac|x64.Build.0 = Debug|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugMac|x86.ActiveCfg = Debug|x86 + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugMac|x86.Build.0 = Debug|x86 {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|Any CPU.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|Any CPU.Build.0 = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|x64.ActiveCfg = Debug|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|x64.Build.0 = Debug|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|x86.ActiveCfg = Debug|x86 + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.DebugWindows|x86.Build.0 = Debug|x86 {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Any CPU.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Any CPU.Build.0 = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|x64.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|x64.Build.0 = Release|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|x86.ActiveCfg = Release|x86 + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|x86.Build.0 = Release|x86 {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|Any CPU.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|Any CPU.Build.0 = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|x64.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|x64.Build.0 = Release|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|x86.ActiveCfg = Release|x86 + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseLinux|x86.Build.0 = Release|x86 {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseMac|Any CPU.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseMac|Any CPU.Build.0 = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseMac|x64.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseMac|x64.Build.0 = Release|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseMac|x86.ActiveCfg = Release|x86 + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseMac|x86.Build.0 = Release|x86 {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|Any CPU.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|Any CPU.Build.0 = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|x64.ActiveCfg = Release|Any CPU {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|x64.Build.0 = Release|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|x86.ActiveCfg = Release|x86 + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.ReleaseWindows|x86.Build.0 = Release|x86 {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|Any CPU.Build.0 = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|x64.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|x64.Build.0 = Debug|Any CPU + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|x86.ActiveCfg = Debug|x86 + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Debug|x86.Build.0 = Debug|x86 {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|Any CPU.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|Any CPU.Build.0 = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|x64.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|x64.Build.0 = Debug|Any CPU + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|x86.ActiveCfg = Debug|x86 + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugLinux|x86.Build.0 = Debug|x86 {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugMac|Any CPU.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugMac|Any CPU.Build.0 = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugMac|x64.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugMac|x64.Build.0 = Debug|Any CPU + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugMac|x86.ActiveCfg = Debug|x86 + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugMac|x86.Build.0 = Debug|x86 {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|Any CPU.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|Any CPU.Build.0 = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|x64.ActiveCfg = Debug|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|x64.Build.0 = Debug|Any CPU + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|x86.ActiveCfg = Debug|x86 + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.DebugWindows|x86.Build.0 = Debug|x86 {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|Any CPU.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|Any CPU.Build.0 = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|x64.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|x64.Build.0 = Release|Any CPU + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|x86.ActiveCfg = Release|x86 + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.Release|x86.Build.0 = Release|x86 {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|Any CPU.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|Any CPU.Build.0 = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|x64.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|x64.Build.0 = Release|Any CPU + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|x86.ActiveCfg = Release|x86 + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseLinux|x86.Build.0 = Release|x86 {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseMac|Any CPU.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseMac|Any CPU.Build.0 = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseMac|x64.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseMac|x64.Build.0 = Release|Any CPU + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseMac|x86.ActiveCfg = Release|x86 + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseMac|x86.Build.0 = Release|x86 {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|Any CPU.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|Any CPU.Build.0 = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|x64.ActiveCfg = Release|Any CPU {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|x64.Build.0 = Release|Any CPU + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|x86.ActiveCfg = Release|x86 + {3B8F9EDB-6E5E-450C-ABC2-EC49075D0B50}.ReleaseWindows|x86.Build.0 = Release|x86 {C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|Any CPU.Build.0 = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|x64.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|x64.Build.0 = Debug|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|x86.ActiveCfg = Debug|x86 + {C293DB32-FA42-486D-B128-5A12522FAE4E}.Debug|x86.Build.0 = Debug|x86 {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|Any CPU.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|Any CPU.Build.0 = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|x64.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|x64.Build.0 = Debug|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|x86.ActiveCfg = Debug|x86 + {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugLinux|x86.Build.0 = Debug|x86 {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugMac|Any CPU.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugMac|Any CPU.Build.0 = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugMac|x64.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugMac|x64.Build.0 = Debug|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugMac|x86.ActiveCfg = Debug|x86 + {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugMac|x86.Build.0 = Debug|x86 {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|Any CPU.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|Any CPU.Build.0 = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|x64.ActiveCfg = Debug|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|x64.Build.0 = Debug|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|x86.ActiveCfg = Debug|x86 + {C293DB32-FA42-486D-B128-5A12522FAE4E}.DebugWindows|x86.Build.0 = Debug|x86 {C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|Any CPU.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|Any CPU.Build.0 = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|x64.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|x64.Build.0 = Release|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|x86.ActiveCfg = Release|x86 + {C293DB32-FA42-486D-B128-5A12522FAE4E}.Release|x86.Build.0 = Release|x86 {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|Any CPU.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|Any CPU.Build.0 = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|x64.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|x64.Build.0 = Release|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|x86.ActiveCfg = Release|x86 + {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseLinux|x86.Build.0 = Release|x86 {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseMac|Any CPU.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseMac|Any CPU.Build.0 = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseMac|x64.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseMac|x64.Build.0 = Release|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseMac|x86.ActiveCfg = Release|x86 + {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseMac|x86.Build.0 = Release|x86 {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|Any CPU.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|Any CPU.Build.0 = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|x64.ActiveCfg = Release|Any CPU {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|x64.Build.0 = Release|Any CPU + {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|x86.ActiveCfg = Release|x86 + {C293DB32-FA42-486D-B128-5A12522FAE4E}.ReleaseWindows|x86.Build.0 = Release|x86 {85232B20-074D-4723-B0C6-91495391E448}.Debug|Any CPU.ActiveCfg = ReleaseWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.Debug|Any CPU.Build.0 = ReleaseWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.Debug|x64.ActiveCfg = DebugWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.Debug|x64.Build.0 = DebugWindows|x64 + {85232B20-074D-4723-B0C6-91495391E448}.Debug|x86.ActiveCfg = DebugWindows|x86 + {85232B20-074D-4723-B0C6-91495391E448}.Debug|x86.Build.0 = DebugWindows|x86 {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|Any CPU.ActiveCfg = DebugLinux|x64 {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|Any CPU.Build.0 = DebugLinux|x64 {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x64.ActiveCfg = DebugLinux|x64 {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x64.Build.0 = DebugLinux|x64 + {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 + {85232B20-074D-4723-B0C6-91495391E448}.DebugLinux|x86.Build.0 = DebugLinux|x86 {85232B20-074D-4723-B0C6-91495391E448}.DebugMac|Any CPU.ActiveCfg = DebugMac|x64 {85232B20-074D-4723-B0C6-91495391E448}.DebugMac|x64.ActiveCfg = DebugMac|x64 {85232B20-074D-4723-B0C6-91495391E448}.DebugMac|x64.Build.0 = DebugMac|x64 + {85232B20-074D-4723-B0C6-91495391E448}.DebugMac|x86.ActiveCfg = DebugMac|x86 + {85232B20-074D-4723-B0C6-91495391E448}.DebugMac|x86.Build.0 = DebugMac|x86 {85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|Any CPU.ActiveCfg = DebugWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x64.ActiveCfg = DebugWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x64.Build.0 = DebugWindows|x64 + {85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x86.ActiveCfg = DebugWindows|x86 + {85232B20-074D-4723-B0C6-91495391E448}.DebugWindows|x86.Build.0 = DebugWindows|x86 {85232B20-074D-4723-B0C6-91495391E448}.Release|Any CPU.ActiveCfg = ReleaseWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.Release|Any CPU.Build.0 = ReleaseWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.Release|x64.ActiveCfg = ReleaseWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.Release|x64.Build.0 = ReleaseWindows|x64 + {85232B20-074D-4723-B0C6-91495391E448}.Release|x86.ActiveCfg = ReleaseWindows|x86 + {85232B20-074D-4723-B0C6-91495391E448}.Release|x86.Build.0 = ReleaseWindows|x86 {85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|Any CPU.ActiveCfg = ReleaseLinux|x64 {85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|x64 {85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x64.Build.0 = ReleaseLinux|x64 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86 {85232B20-074D-4723-B0C6-91495391E448}.ReleaseMac|Any CPU.ActiveCfg = ReleaseMac|x64 {85232B20-074D-4723-B0C6-91495391E448}.ReleaseMac|x64.ActiveCfg = ReleaseMac|x64 {85232B20-074D-4723-B0C6-91495391E448}.ReleaseMac|x64.Build.0 = ReleaseMac|x64 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseMac|x86.ActiveCfg = ReleaseMac|x86 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseMac|x86.Build.0 = ReleaseMac|x86 {85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|Any CPU.ActiveCfg = ReleaseWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x64.ActiveCfg = ReleaseWindows|x64 {85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x64.Build.0 = ReleaseWindows|x64 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86 + {85232B20-074D-4723-B0C6-91495391E448}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86 {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|Any CPU.Build.0 = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|x64.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|x64.Build.0 = Debug|Any CPU + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|x86.ActiveCfg = Debug|x86 + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Debug|x86.Build.0 = Debug|x86 {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|Any CPU.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|Any CPU.Build.0 = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|x64.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|x64.Build.0 = Debug|Any CPU + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|x86.ActiveCfg = Debug|x86 + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugLinux|x86.Build.0 = Debug|x86 {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugMac|Any CPU.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugMac|Any CPU.Build.0 = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugMac|x64.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugMac|x64.Build.0 = Debug|Any CPU + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugMac|x86.ActiveCfg = Debug|x86 + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugMac|x86.Build.0 = Debug|x86 {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|Any CPU.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|Any CPU.Build.0 = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|x64.ActiveCfg = Debug|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|x64.Build.0 = Debug|Any CPU + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|x86.ActiveCfg = Debug|x86 + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.DebugWindows|x86.Build.0 = Debug|x86 {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|Any CPU.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|Any CPU.Build.0 = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|x64.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|x64.Build.0 = Release|Any CPU + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|x86.ActiveCfg = Release|x86 + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.Release|x86.Build.0 = Release|x86 {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|Any CPU.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|Any CPU.Build.0 = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|x64.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|x64.Build.0 = Release|Any CPU + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|x86.ActiveCfg = Release|x86 + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseLinux|x86.Build.0 = Release|x86 {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseMac|Any CPU.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseMac|Any CPU.Build.0 = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseMac|x64.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseMac|x64.Build.0 = Release|Any CPU + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseMac|x86.ActiveCfg = Release|x86 + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseMac|x86.Build.0 = Release|x86 {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseWindows|Any CPU.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseWindows|Any CPU.Build.0 = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseWindows|x64.ActiveCfg = Release|Any CPU {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseWindows|x64.Build.0 = Release|Any CPU + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseWindows|x86.ActiveCfg = Release|x86 + {A4610E4C-DD34-428B-BABB-779CA0B5993A}.ReleaseWindows|x86.Build.0 = Release|x86 {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Debug|Any CPU.Build.0 = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Debug|x64.ActiveCfg = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Debug|x64.Build.0 = Debug|Any CPU + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Debug|x86.ActiveCfg = Debug|x86 + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Debug|x86.Build.0 = Debug|x86 {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugLinux|Any CPU.ActiveCfg = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugLinux|Any CPU.Build.0 = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugLinux|x64.ActiveCfg = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugLinux|x64.Build.0 = Debug|Any CPU + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugLinux|x86.ActiveCfg = Debug|x86 + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugLinux|x86.Build.0 = Debug|x86 {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugMac|Any CPU.ActiveCfg = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugMac|Any CPU.Build.0 = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugMac|x64.ActiveCfg = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugMac|x64.Build.0 = Debug|Any CPU + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugMac|x86.ActiveCfg = Debug|x86 + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugMac|x86.Build.0 = Debug|x86 {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugWindows|Any CPU.ActiveCfg = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugWindows|Any CPU.Build.0 = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugWindows|x64.ActiveCfg = Debug|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugWindows|x64.Build.0 = Debug|Any CPU + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugWindows|x86.ActiveCfg = Debug|x86 + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.DebugWindows|x86.Build.0 = Debug|x86 {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Release|Any CPU.ActiveCfg = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Release|Any CPU.Build.0 = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Release|x64.ActiveCfg = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Release|x64.Build.0 = Release|Any CPU + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Release|x86.ActiveCfg = Release|x86 + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.Release|x86.Build.0 = Release|x86 {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseLinux|Any CPU.ActiveCfg = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseLinux|Any CPU.Build.0 = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseLinux|x64.ActiveCfg = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseLinux|x64.Build.0 = Release|Any CPU + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseLinux|x86.ActiveCfg = Release|x86 + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseLinux|x86.Build.0 = Release|x86 {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseMac|Any CPU.ActiveCfg = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseMac|Any CPU.Build.0 = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseMac|x64.ActiveCfg = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseMac|x64.Build.0 = Release|Any CPU + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseMac|x86.ActiveCfg = Release|x86 + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseMac|x86.Build.0 = Release|x86 {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseWindows|Any CPU.ActiveCfg = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseWindows|Any CPU.Build.0 = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseWindows|x64.ActiveCfg = Release|Any CPU {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseWindows|x64.Build.0 = Release|Any CPU + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseWindows|x86.ActiveCfg = Release|x86 + {3AF0347C-5A9B-4421-868C-8EE3DBFAEBC6}.ReleaseWindows|x86.Build.0 = Release|x86 {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|Any CPU.ActiveCfg = DebugWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|Any CPU.Build.0 = DebugWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|x64.ActiveCfg = DebugWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|x64.Build.0 = DebugWindows|Any CPU + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|x86.ActiveCfg = DebugMac|x86 + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Debug|x86.Build.0 = DebugMac|x86 {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|Any CPU.ActiveCfg = DebugLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|Any CPU.Build.0 = DebugLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|x64.ActiveCfg = DebugLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|x64.Build.0 = DebugLinux|Any CPU + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugLinux|x86.Build.0 = DebugLinux|x86 {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugMac|Any CPU.ActiveCfg = DebugMac|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugMac|Any CPU.Build.0 = DebugMac|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugMac|x64.ActiveCfg = DebugMac|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugMac|x64.Build.0 = DebugMac|Any CPU + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugMac|x86.ActiveCfg = DebugMac|x86 + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugMac|x86.Build.0 = DebugMac|x86 {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugWindows|Any CPU.ActiveCfg = DebugWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugWindows|Any CPU.Build.0 = DebugWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugWindows|x64.ActiveCfg = DebugWindows|Any CPU + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugWindows|x86.ActiveCfg = DebugWindows|x86 + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.DebugWindows|x86.Build.0 = DebugWindows|x86 {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|Any CPU.ActiveCfg = ReleaseWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|Any CPU.Build.0 = ReleaseWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|x64.ActiveCfg = ReleaseWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|x64.Build.0 = ReleaseWindows|Any CPU + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|x86.ActiveCfg = ReleaseMac|x86 + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.Release|x86.Build.0 = ReleaseMac|x86 {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|Any CPU.ActiveCfg = ReleaseLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|Any CPU.Build.0 = ReleaseLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|x64.Build.0 = ReleaseLinux|Any CPU + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86 {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseMac|Any CPU.ActiveCfg = ReleaseMac|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseMac|Any CPU.Build.0 = ReleaseMac|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseMac|x64.ActiveCfg = ReleaseMac|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseMac|x64.Build.0 = ReleaseMac|Any CPU + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseMac|x86.ActiveCfg = ReleaseMac|x86 + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseMac|x86.Build.0 = ReleaseMac|x86 {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseWindows|Any CPU.ActiveCfg = ReleaseWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseWindows|Any CPU.Build.0 = ReleaseWindows|Any CPU {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseWindows|x64.ActiveCfg = ReleaseWindows|Any CPU + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86 + {0AAD36E3-51A5-4A07-AB60-5C8A66BD38B7}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86 {830461AA-3E2E-4BDE-9B27-1B3280836521}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.Debug|Any CPU.Build.0 = Debug|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.Debug|x64.ActiveCfg = Debug|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.Debug|x64.Build.0 = Debug|Any CPU + {830461AA-3E2E-4BDE-9B27-1B3280836521}.Debug|x86.ActiveCfg = Debug|x86 + {830461AA-3E2E-4BDE-9B27-1B3280836521}.Debug|x86.Build.0 = Debug|x86 {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugLinux|Any CPU.ActiveCfg = DebugLinux|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugLinux|Any CPU.Build.0 = DebugLinux|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugLinux|x64.ActiveCfg = DebugLinux|Any CPU + {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 + {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugLinux|x86.Build.0 = DebugLinux|x86 {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugMac|Any CPU.ActiveCfg = DebugMac|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugMac|Any CPU.Build.0 = DebugMac|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugMac|x64.ActiveCfg = DebugMac|Any CPU + {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugMac|x86.ActiveCfg = DebugMac|x86 + {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugMac|x86.Build.0 = DebugMac|x86 {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugWindows|Any CPU.ActiveCfg = DebugWindows|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugWindows|Any CPU.Build.0 = DebugWindows|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugWindows|x64.ActiveCfg = DebugWindows|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugWindows|x64.Build.0 = DebugWindows|Any CPU + {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugWindows|x86.ActiveCfg = DebugWindows|x86 + {830461AA-3E2E-4BDE-9B27-1B3280836521}.DebugWindows|x86.Build.0 = DebugWindows|x86 {830461AA-3E2E-4BDE-9B27-1B3280836521}.Release|Any CPU.ActiveCfg = Release|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.Release|Any CPU.Build.0 = Release|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.Release|x64.ActiveCfg = Release|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.Release|x64.Build.0 = Release|Any CPU + {830461AA-3E2E-4BDE-9B27-1B3280836521}.Release|x86.ActiveCfg = Release|x86 + {830461AA-3E2E-4BDE-9B27-1B3280836521}.Release|x86.Build.0 = Release|x86 {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseLinux|Any CPU.ActiveCfg = ReleaseLinux|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseLinux|Any CPU.Build.0 = ReleaseLinux|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|Any CPU + {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 + {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86 {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseMac|Any CPU.ActiveCfg = ReleaseMac|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseMac|Any CPU.Build.0 = ReleaseMac|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseMac|x64.ActiveCfg = ReleaseMac|Any CPU + {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseMac|x86.ActiveCfg = ReleaseMac|x86 + {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseMac|x86.Build.0 = ReleaseMac|x86 {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseWindows|Any CPU.ActiveCfg = ReleaseWindows|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseWindows|Any CPU.Build.0 = ReleaseWindows|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseWindows|x64.ActiveCfg = ReleaseWindows|Any CPU {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseWindows|x64.Build.0 = ReleaseWindows|Any CPU + {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseWindows|x86.ActiveCfg = ReleaseWindows|x86 + {830461AA-3E2E-4BDE-9B27-1B3280836521}.ReleaseWindows|x86.Build.0 = ReleaseWindows|x86 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Debug|Any CPU.ActiveCfg = ReleaseLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Debug|Any CPU.Build.0 = ReleaseLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Debug|x64.ActiveCfg = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Debug|x64.Build.0 = DebugLinux|x64 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Debug|x86.ActiveCfg = DebugLinux|x86 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Debug|x86.Build.0 = DebugLinux|x86 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugLinux|Any CPU.ActiveCfg = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugLinux|x64.ActiveCfg = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugLinux|x64.Build.0 = DebugLinux|x64 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugLinux|x86.Build.0 = DebugLinux|x86 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugMac|Any CPU.ActiveCfg = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugMac|Any CPU.Build.0 = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugMac|x64.ActiveCfg = DebugLinux|x64 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugMac|x86.ActiveCfg = DebugLinux|x86 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugMac|x86.Build.0 = DebugLinux|x86 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugWindows|Any CPU.ActiveCfg = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugWindows|Any CPU.Build.0 = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugWindows|x64.ActiveCfg = DebugLinux|x64 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugWindows|x86.ActiveCfg = DebugLinux|x86 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.DebugWindows|x86.Build.0 = DebugLinux|x86 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Release|Any CPU.ActiveCfg = ReleaseLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Release|Any CPU.Build.0 = ReleaseLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Release|x64.ActiveCfg = ReleaseLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Release|x64.Build.0 = ReleaseLinux|x64 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Release|x86.ActiveCfg = ReleaseLinux|x86 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.Release|x86.Build.0 = ReleaseLinux|x86 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseLinux|Any CPU.ActiveCfg = ReleaseLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseLinux|x64.Build.0 = ReleaseLinux|x64 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseLinux|x86.Build.0 = ReleaseLinux|x86 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseMac|Any CPU.ActiveCfg = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseMac|Any CPU.Build.0 = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseMac|x64.ActiveCfg = ReleaseLinux|x64 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseMac|x86.ActiveCfg = ReleaseLinux|x86 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseMac|x86.Build.0 = ReleaseLinux|x86 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseWindows|Any CPU.ActiveCfg = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseWindows|Any CPU.Build.0 = DebugLinux|x64 {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseWindows|x64.ActiveCfg = ReleaseLinux|x64 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseWindows|x86.ActiveCfg = ReleaseLinux|x86 + {D7F9FDD3-AF03-46AD-A2C2-F590899712B7}.ReleaseWindows|x86.Build.0 = ReleaseLinux|x86 {CC996BB6-3781-4868-B996-07F9CDC936ED}.Debug|Any CPU.ActiveCfg = ReleaseMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.Debug|Any CPU.Build.0 = ReleaseMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.Debug|x64.ActiveCfg = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.Debug|x64.Build.0 = DebugMac|x64 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.Debug|x86.ActiveCfg = DebugMac|x86 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.Debug|x86.Build.0 = DebugMac|x86 {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugLinux|Any CPU.ActiveCfg = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugLinux|x64.ActiveCfg = DebugMac|x64 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugLinux|x86.ActiveCfg = DebugMac|x86 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugLinux|x86.Build.0 = DebugMac|x86 {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugMac|Any CPU.ActiveCfg = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugMac|Any CPU.Build.0 = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugMac|x64.ActiveCfg = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugMac|x64.Build.0 = DebugMac|x64 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugMac|x86.ActiveCfg = DebugMac|x86 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugMac|x86.Build.0 = DebugMac|x86 {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugWindows|Any CPU.ActiveCfg = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugWindows|Any CPU.Build.0 = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugWindows|x64.ActiveCfg = DebugMac|x64 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugWindows|x86.ActiveCfg = DebugMac|x86 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.DebugWindows|x86.Build.0 = DebugMac|x86 {CC996BB6-3781-4868-B996-07F9CDC936ED}.Release|Any CPU.ActiveCfg = ReleaseMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.Release|Any CPU.Build.0 = ReleaseMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.Release|x64.ActiveCfg = ReleaseMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.Release|x64.Build.0 = ReleaseMac|x64 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.Release|x86.ActiveCfg = ReleaseMac|x86 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.Release|x86.Build.0 = ReleaseMac|x86 {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseLinux|Any CPU.ActiveCfg = ReleaseMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseLinux|x64.ActiveCfg = ReleaseMac|x64 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseLinux|x86.ActiveCfg = ReleaseMac|x86 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseLinux|x86.Build.0 = ReleaseMac|x86 {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseMac|Any CPU.ActiveCfg = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseMac|Any CPU.Build.0 = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseMac|x64.ActiveCfg = ReleaseMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseMac|x64.Build.0 = ReleaseMac|x64 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseMac|x86.ActiveCfg = ReleaseMac|x86 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseMac|x86.Build.0 = ReleaseMac|x86 {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseWindows|Any CPU.ActiveCfg = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseWindows|Any CPU.Build.0 = DebugMac|x64 {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseWindows|x64.ActiveCfg = ReleaseMac|x64 - {777A5414-CAE5-4011-96DF-C9661985917E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.Debug|x64.ActiveCfg = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.Debug|x64.Build.0 = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugLinux|Any CPU.ActiveCfg = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugLinux|Any CPU.Build.0 = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugLinux|x64.ActiveCfg = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugLinux|x64.Build.0 = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugMac|Any CPU.ActiveCfg = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugMac|Any CPU.Build.0 = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugMac|x64.ActiveCfg = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugMac|x64.Build.0 = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugWindows|Any CPU.ActiveCfg = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugWindows|Any CPU.Build.0 = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugWindows|x64.ActiveCfg = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.DebugWindows|x64.Build.0 = Debug|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.Release|Any CPU.Build.0 = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.Release|x64.ActiveCfg = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.Release|x64.Build.0 = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseLinux|Any CPU.ActiveCfg = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseLinux|Any CPU.Build.0 = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseLinux|x64.ActiveCfg = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseLinux|x64.Build.0 = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseMac|Any CPU.ActiveCfg = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseMac|Any CPU.Build.0 = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseMac|x64.ActiveCfg = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseMac|x64.Build.0 = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseWindows|Any CPU.ActiveCfg = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseWindows|Any CPU.Build.0 = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseWindows|x64.ActiveCfg = Release|Any CPU - {777A5414-CAE5-4011-96DF-C9661985917E}.ReleaseWindows|x64.Build.0 = Release|Any CPU + {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseWindows|x86.ActiveCfg = ReleaseMac|x86 + {CC996BB6-3781-4868-B996-07F9CDC936ED}.ReleaseWindows|x86.Build.0 = ReleaseMac|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Debug|x64.ActiveCfg = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Debug|x64.Build.0 = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Debug|x86.ActiveCfg = Debug|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Debug|x86.Build.0 = Debug|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugLinux|Any CPU.ActiveCfg = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugLinux|Any CPU.Build.0 = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugLinux|x64.ActiveCfg = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugLinux|x64.Build.0 = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugLinux|x86.ActiveCfg = Debug|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugLinux|x86.Build.0 = Debug|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugMac|Any CPU.ActiveCfg = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugMac|Any CPU.Build.0 = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugMac|x64.ActiveCfg = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugMac|x64.Build.0 = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugMac|x86.ActiveCfg = Debug|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugMac|x86.Build.0 = Debug|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugWindows|Any CPU.ActiveCfg = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugWindows|Any CPU.Build.0 = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugWindows|x64.ActiveCfg = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugWindows|x64.Build.0 = Debug|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugWindows|x86.ActiveCfg = Debug|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.DebugWindows|x86.Build.0 = Debug|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Release|Any CPU.Build.0 = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Release|x64.ActiveCfg = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Release|x64.Build.0 = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Release|x86.ActiveCfg = Release|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.Release|x86.Build.0 = Release|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseLinux|Any CPU.ActiveCfg = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseLinux|Any CPU.Build.0 = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseLinux|x64.ActiveCfg = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseLinux|x64.Build.0 = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseLinux|x86.ActiveCfg = Release|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseLinux|x86.Build.0 = Release|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseMac|Any CPU.ActiveCfg = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseMac|Any CPU.Build.0 = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseMac|x64.ActiveCfg = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseMac|x64.Build.0 = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseMac|x86.ActiveCfg = Release|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseMac|x86.Build.0 = Release|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseWindows|Any CPU.ActiveCfg = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseWindows|Any CPU.Build.0 = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseWindows|x64.ActiveCfg = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseWindows|x64.Build.0 = Release|Any CPU + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseWindows|x86.ActiveCfg = Release|x86 + {0E7FEE6A-15E5-4A4E-943C-80276003478C}.ReleaseWindows|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -481,7 +681,7 @@ Global {D7F9FDD3-AF03-46AD-A2C2-F590899712B7} = {B2C129F2-8E5C-419A-98EB-161AA5B5FC71} {DBCF6FF0-3DE9-11E9-B3EF-63280FDBDA4A} = {F35DF9BF-0BED-4FEF-A51C-DD83C531882F} {CC996BB6-3781-4868-B996-07F9CDC936ED} = {DBCF6FF0-3DE9-11E9-B3EF-63280FDBDA4A} - {777A5414-CAE5-4011-96DF-C9661985917E} = {DE36F45F-F09E-4719-B953-00D148F7722A} + {0E7FEE6A-15E5-4A4E-943C-80276003478C} = {DE36F45F-F09E-4719-B953-00D148F7722A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {17032EAB-554B-4B44-A4F6-EFB177ACAB7A} diff --git a/Libraries/Concentus/CSharp/Concentus/Concentus.csproj b/Libraries/Concentus/CSharp/Concentus/Concentus.csproj index 1cf63c7b8..f31985b77 100644 --- a/Libraries/Concentus/CSharp/Concentus/Concentus.csproj +++ b/Libraries/Concentus/CSharp/Concentus/Concentus.csproj @@ -34,6 +34,24 @@ + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + diff --git a/Libraries/Facepunch.Steamworks/Facepunch.Steamworks.csproj b/Libraries/Facepunch.Steamworks/Facepunch.Steamworks.csproj index 09072c596..75936d8c8 100644 --- a/Libraries/Facepunch.Steamworks/Facepunch.Steamworks.csproj +++ b/Libraries/Facepunch.Steamworks/Facepunch.Steamworks.csproj @@ -1,15 +1,14 @@  - - + net45 true - Facepunch.Steamworks - - true - false - true - + Facepunch.Steamworks + false + false + true + .pdb + AnyCPU;x86 @@ -17,17 +16,27 @@ 1701;1702;1705;618;1591 + + TRACE;DEBUG + 1701;1702;1705;618;1591 + + TRACE;RELEASE 1701;1702;1705;618;1591 + + TRACE;RELEASE + 1701;1702;1705;618;1591 + + $(DefineConstants);NET_CORE - + @@ -65,5 +74,10 @@ full true + + + full + true + diff --git a/Libraries/Farseer Physics Engine 3.5/Farseer Physics MonoGame DesktopGL.csproj b/Libraries/Farseer Physics Engine 3.5/Farseer Physics MonoGame DesktopGL.csproj index d2b9e150e..627ba0b5b 100644 --- a/Libraries/Farseer Physics Engine 3.5/Farseer Physics MonoGame DesktopGL.csproj +++ b/Libraries/Farseer Physics Engine 3.5/Farseer Physics MonoGame DesktopGL.csproj @@ -80,6 +80,57 @@ 4 AnyCPU + + true + bin\x86\ReleaseWindows\ + TRACE;WINDOWS + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\ReleaseLinux\ + TRACE;LINUX + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\ReleaseMac\ + TRACE;OSX + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\DebugWindows\ + TRACE;DEBUG;WINDOWS + full + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\DebugLinux\ + TRACE;DEBUG;LINUX + full + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\DebugMac\ + TRACE;DEBUG;OSX + full + x86 + MinimumRecommendedRules.ruleset + diff --git a/Libraries/Farseer Physics Engine 3.5/Farseer Physics MonoGame WindowsDX.csproj b/Libraries/Farseer Physics Engine 3.5/Farseer Physics MonoGame WindowsDX.csproj index dad71b62a..631c2a116 100644 --- a/Libraries/Farseer Physics Engine 3.5/Farseer Physics MonoGame WindowsDX.csproj +++ b/Libraries/Farseer Physics Engine 3.5/Farseer Physics MonoGame WindowsDX.csproj @@ -82,6 +82,68 @@ + + true + bin\x86\ReleaseWindows\ + TRACE;WINDOWS + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\ReleaseLinux\ + TRACE;LINUX + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\ReleaseMac\ + TRACE;OSX + true + pdbonly + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\DebugWindows\ + TRACE;DEBUG;WINDOWS + full + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\DebugLinux\ + TRACE;DEBUG;LINUX + full + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\DebugMac\ + TRACE;DEBUG;OSX + full + x86 + MinimumRecommendedRules.ruleset + + + true + bin\x86\Debug\ + x86 + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + x86 + MinimumRecommendedRules.ruleset + diff --git a/Libraries/Hyper.ComponentModel/Hyper.ComponentModel.csproj b/Libraries/Hyper.ComponentModel/Hyper.ComponentModel.csproj index 4dd72588d..8ec0bd909 100644 --- a/Libraries/Hyper.ComponentModel/Hyper.ComponentModel.csproj +++ b/Libraries/Hyper.ComponentModel/Hyper.ComponentModel.csproj @@ -37,6 +37,25 @@ false AnyCPU + + true + bin\x86\Debug\ + DEBUG;TRACE + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\Release\ + TRACE + bin\Release\Hyper.ComponentModel.XML + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset +