diff --git a/Barotrauma/BarotraumaClient/Source/Characters/AI/EnemyAIController.cs b/Barotrauma/BarotraumaClient/Source/Characters/AI/EnemyAIController.cs index c18e14dee..e112d338c 100644 --- a/Barotrauma/BarotraumaClient/Source/Characters/AI/EnemyAIController.cs +++ b/Barotrauma/BarotraumaClient/Source/Characters/AI/EnemyAIController.cs @@ -16,13 +16,14 @@ namespace Barotrauma if (SelectedAiTarget?.Entity != null) { - GUI.DrawLine(spriteBatch, pos, new Vector2(SelectedAiTarget.WorldPosition.X, -SelectedAiTarget.WorldPosition.Y), Color.Red * 0.3f, 0, 5); + GUI.DrawLine(spriteBatch, pos, new Vector2(SelectedAiTarget.WorldPosition.X, -SelectedAiTarget.WorldPosition.Y), Color.Red * 0.5f, 0, 4); if (wallTarget != null) { Vector2 wallTargetPos = wallTarget.Position; + if (wallTarget.Structure.Submarine != null) { wallTargetPos += wallTarget.Structure.Submarine.Position; } wallTargetPos.Y = -wallTargetPos.Y; - GUI.DrawRectangle(spriteBatch, wallTargetPos - new Vector2(10.0f, 10.0f), new Vector2(20.0f, 20.0f), Color.Red, false); + GUI.DrawRectangle(spriteBatch, wallTargetPos - new Vector2(10.0f, 10.0f), new Vector2(20.0f, 20.0f), Color.Orange, false); GUI.DrawLine(spriteBatch, pos, wallTargetPos, Color.Orange * 0.5f, 0, 5); } GUI.DrawString(spriteBatch, pos - Vector2.UnitY * 60.0f, $"{SelectedAiTarget.Entity.ToString()} ({targetValue.FormatZeroDecimal()})", Color.Red, Color.Black); @@ -56,18 +57,16 @@ namespace Barotrauma { GUI.DrawLine(spriteBatch, ConvertUnits.ToDisplayUnits(new Vector2(attachJoint.WorldAnchorA.X, -attachJoint.WorldAnchorA.Y)), - ConvertUnits.ToDisplayUnits(new Vector2(attachJoint.WorldAnchorB.X, -attachJoint.WorldAnchorB.Y)), Color.Orange * 0.6f, 0, 5); + ConvertUnits.ToDisplayUnits(new Vector2(attachJoint.WorldAnchorB.X, -attachJoint.WorldAnchorB.Y)), Color.Green, 0, 4); } if (latchOntoAI.WallAttachPos.HasValue) { GUI.DrawLine(spriteBatch, pos, - ConvertUnits.ToDisplayUnits(new Vector2(latchOntoAI.WallAttachPos.Value.X, -latchOntoAI.WallAttachPos.Value.Y)), Color.Orange * 0.6f, 0, 3); + ConvertUnits.ToDisplayUnits(new Vector2(latchOntoAI.WallAttachPos.Value.X, -latchOntoAI.WallAttachPos.Value.Y)), Color.Green, 0, 3); } } - GUI.DrawLine(spriteBatch, pos, pos + ConvertUnits.ToDisplayUnits(new Vector2(Steering.X, -Steering.Y)), Color.Blue, width: 3); - if (steeringManager is IndoorsSteeringManager pathSteering) { var path = pathSteering.CurrentPath; diff --git a/Barotrauma/BarotraumaClient/Source/Items/Components/Door.cs b/Barotrauma/BarotraumaClient/Source/Items/Components/Door.cs index 8a1858095..d536e9fe5 100644 --- a/Barotrauma/BarotraumaClient/Source/Items/Components/Door.cs +++ b/Barotrauma/BarotraumaClient/Source/Items/Components/Door.cs @@ -93,7 +93,7 @@ namespace Barotrauma.Items.Components public void Draw(SpriteBatch spriteBatch, bool editing) { - Color color = item.SpriteColor; + Color color = Color.White; if (brokenSprite == null) { //broken doors turn black if no broken sprite has been configured @@ -108,7 +108,7 @@ namespace Barotrauma.Items.Components weldSpritePos.Y = -weldSpritePos.Y; weldedSprite.Draw(spriteBatch, - weldSpritePos, item.SpriteColor * (stuck / 100.0f), scale: item.Scale); + weldSpritePos, Color.White * (stuck / 100.0f), scale: item.Scale); } if (openState == 1.0f) diff --git a/Barotrauma/BarotraumaClient/Source/Items/Components/Turret.cs b/Barotrauma/BarotraumaClient/Source/Items/Components/Turret.cs index 6e42a2949..4ed31820f 100644 --- a/Barotrauma/BarotraumaClient/Source/Items/Components/Turret.cs +++ b/Barotrauma/BarotraumaClient/Source/Items/Components/Turret.cs @@ -237,13 +237,13 @@ namespace Barotrauma.Items.Components railSprite?.Draw(spriteBatch, drawPos, - item.SpriteColor, + Color.White, rotation + MathHelper.PiOver2, item.Scale, SpriteEffects.None, item.SpriteDepth + (railSprite.Depth - item.Sprite.Depth)); barrelSprite?.Draw(spriteBatch, - drawPos - new Vector2((float)Math.Cos(rotation), (float)Math.Sin(rotation)) * recoilOffset * item.Scale, - item.SpriteColor, + drawPos - new Vector2((float)Math.Cos(rotation), (float)Math.Sin(rotation)) * recoilOffset * item.Scale, + Color.White, rotation + MathHelper.PiOver2, item.Scale, SpriteEffects.None, item.SpriteDepth + (barrelSprite.Depth - item.Sprite.Depth)); diff --git a/Barotrauma/BarotraumaClient/Source/Networking/FileTransfer/FileReceiver.cs b/Barotrauma/BarotraumaClient/Source/Networking/FileTransfer/FileReceiver.cs index be2dd8d7b..ad3a3fb8b 100644 --- a/Barotrauma/BarotraumaClient/Source/Networking/FileTransfer/FileReceiver.cs +++ b/Barotrauma/BarotraumaClient/Source/Networking/FileTransfer/FileReceiver.cs @@ -241,30 +241,20 @@ namespace Barotrauma.Networking FileSize = fileSize }; - int maxRetries = 4; - for (int i = 0; i <= maxRetries; i++) + try { - try - { - newTransfer.OpenStream(); - } - catch (IOException e) - { - if (i < maxRetries) - { - DebugConsole.NewMessage("Failed to initiate a file transfer {" + e.Message + "}, retrying in 250 ms...", Color.Red); - Thread.Sleep(250); - } - else - { - DebugConsole.NewMessage("Failed to initiate a file transfer {" + e.Message + "}", Color.Red); - GameMain.Client.CancelFileTransfer(inc.SequenceChannel); - newTransfer.Status = FileTransferStatus.Error; - OnTransferFailed(newTransfer); - return; - } - } + newTransfer.OpenStream(); } + catch (IOException e) + { + GameMain.Client.CancelFileTransfer(inc.SequenceChannel); + DebugConsole.NewMessage("Failed to initiate a file transfer {" + e.Message + "}", Color.Red); + + newTransfer.Status = FileTransferStatus.Error; + OnTransferFailed(newTransfer); + return; + } + activeTransfers.Add(newTransfer); } break; diff --git a/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs b/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs index fb9abb67a..dd064d8fe 100644 --- a/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs +++ b/Barotrauma/BarotraumaClient/Source/Networking/GameClient.cs @@ -141,23 +141,8 @@ namespace Barotrauma.Networking { OnClicked = (btn, userdata) => { - if (!permissions.HasFlag(ClientPermissions.ManageRound)) { return false; } - if (!Submarine.MainSub.AtStartPosition && !Submarine.MainSub.AtEndPosition) - { - var msgBox = new GUIMessageBox("", TextManager.Get("EndRoundSubNotAtLevelEnd"), - new string[] { TextManager.Get("Yes"), TextManager.Get("No") }); - msgBox.Buttons[0].OnClicked = (_, __) => - { - GameMain.Client.RequestRoundEnd(); - return true; - }; - msgBox.Buttons[0].OnClicked += msgBox.Close; - msgBox.Buttons[1].OnClicked += msgBox.Close; - } - else - { - RequestRoundEnd(); - } + if (!permissions.HasFlag(ClientPermissions.ManageRound)) return false; + RequestRoundEnd(); return true; }, Visible = false @@ -1282,75 +1267,6 @@ namespace Barotrauma.Networking } } - private void ReadLobbyUpdate(NetIncomingMessage inc) - { - UInt16 listId = inc.ReadUInt16(); - List tempClients = new List(); - int clientCount = inc.ReadByte(); - for (int i = 0; i < clientCount; i++) - { - byte id = inc.ReadByte(); - string name = inc.ReadString(); - UInt16 characterID = inc.ReadUInt16(); - bool muted = inc.ReadBoolean(); - inc.ReadPadBits(); - - tempClients.Add(new TempClient - { - ID = id, - Name = name, - CharacterID = characterID, - Muted = muted - }); - } - - if (NetIdUtils.IdMoreRecent(listId, LastClientListUpdateID)) - { - bool updateClientListId = true; - List currentClients = new List(); - foreach (TempClient tc in tempClients) - { - //see if the client already exists - var existingClient = ConnectedClients.Find(c => c.ID == tc.ID && c.Name == tc.Name); - if (existingClient == null) //if not, create it - { - existingClient = new Client(tc.Name, tc.ID) - { - Muted = tc.Muted - }; - ConnectedClients.Add(existingClient); - GameMain.NetLobbyScreen.AddPlayer(existingClient); - } - existingClient.Character = null; - existingClient.Muted = tc.Muted; - if (tc.CharacterID > 0) - { - existingClient.Character = Entity.FindEntityByID(tc.CharacterID) as Character; - if (existingClient.Character == null) - { - updateClientListId = false; - } - } - if (existingClient.ID == myID) - { - existingClient.SetPermissions(permissions, permittedConsoleCommands); - } - currentClients.Add(existingClient); - } - //remove clients that aren't present anymore - for (int i = ConnectedClients.Count - 1; i >= 0; i--) - { - if (!currentClients.Contains(ConnectedClients[i])) - { - GameMain.NetLobbyScreen.RemovePlayer(ConnectedClients[i]); - ConnectedClients[i].Dispose(); - ConnectedClients.RemoveAt(i); - } - } - if (updateClientListId) LastClientListUpdateID = listId; - } - } - private void ReadLobbyUpdate(NetIncomingMessage inc) { ServerNetObject objHeader; @@ -1513,11 +1429,7 @@ namespace Barotrauma.Networking break; case ServerNetObject.ENTITY_EVENT: case ServerNetObject.ENTITY_EVENT_INITIAL: - if (!entityEventManager.Read(objHeader, inc, sendingTime, entities)) - { - eventReadFailed = true; - break; - } + if (!entityEventManager.Read(objHeader, inc, sendingTime, entities)) { break; } break; case ServerNetObject.CHAT_MESSAGE: ChatMessage.ClientRead(inc); diff --git a/Barotrauma/BarotraumaClient/Source/Screens/CampaignUI.cs b/Barotrauma/BarotraumaClient/Source/Screens/CampaignUI.cs index 3c322d12d..827b8af57 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/CampaignUI.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/CampaignUI.cs @@ -457,14 +457,11 @@ namespace Barotrauma { IgnoreLayoutGroups = true, OnClicked = (GUIButton btn, object obj) => { StartRound?.Invoke(); return true; }, - Enabled = true + Enabled = true, + Visible = GameMain.Client == null || + GameMain.Client.HasPermission(Networking.ClientPermissions.ManageRound) || + GameMain.Client.HasPermission(Networking.ClientPermissions.ManageCampaign) }; - if (GameMain.Client != null) - { - startButton.Visible = !GameMain.Client.GameStarted && - (GameMain.Client.HasPermission(Networking.ClientPermissions.ManageRound) || - GameMain.Client.HasPermission(Networking.ClientPermissions.ManageCampaign)); - } } OnLocationSelected?.Invoke(location, connection); diff --git a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs index 02f6ba21c..e249c088f 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/NetLobbyScreen.cs @@ -726,12 +726,6 @@ namespace Barotrauma spectateButton.Visible = GameMain.Client.GameStarted; ReadyToStartBox.Visible = !GameMain.Client.GameStarted; ReadyToStartBox.Selected = false; - if (campaignUI?.StartButton != null) - { - campaignUI.StartButton.Visible = !GameMain.Client.GameStarted && - (GameMain.Client.HasPermission(ClientPermissions.ManageRound) || - GameMain.Client.HasPermission(ClientPermissions.ManageCampaign)); - } GameMain.Client.SetReadyToStart(ReadyToStartBox); } else @@ -853,9 +847,9 @@ namespace Barotrauma if (campaignUI?.StartButton != null) { - campaignUI.StartButton.Visible = !GameMain.Client.GameStarted && - (GameMain.Client.HasPermission(ClientPermissions.ManageRound) || - GameMain.Client.HasPermission(ClientPermissions.ManageCampaign)); + campaignUI.StartButton.Visible = + GameMain.Client.HasPermission(ClientPermissions.ManageRound) || + GameMain.Client.HasPermission(ClientPermissions.ManageCampaign); } } diff --git a/Barotrauma/BarotraumaServer/Source/Networking/GameServer.cs b/Barotrauma/BarotraumaServer/Source/Networking/GameServer.cs index 202c87097..dd514f544 100644 --- a/Barotrauma/BarotraumaServer/Source/Networking/GameServer.cs +++ b/Barotrauma/BarotraumaServer/Source/Networking/GameServer.cs @@ -813,16 +813,7 @@ namespace Barotrauma.Networking Log(c.Name + " has reported an error: " + errorStr, ServerLog.MessageType.Error); GameAnalyticsManager.AddErrorEventOnce("GameServer.HandleClientError:LevelsDontMatch" + error, GameAnalyticsSDK.Net.EGAErrorSeverity.Error, errorStr); - - if (c.Connection == OwnerConnection) - { - SendDirectChatMessage(errorStr, c, ChatMessageType.MessageBox); - EndGame(); - } - else - { - KickClient(c, errorStr); - } + KickClient(c, errorStr); } public override void CreateEntityEvent(INetSerializable entity, object[] extraData = null) @@ -1039,7 +1030,7 @@ namespace Barotrauma.Networking if (command == ClientPermissions.ManageRound && inc.PeekBoolean() && GameMain.GameSession?.GameMode is MultiPlayerCampaign mpCampaign) { - if (!mpCampaign.AllowedToEndRound(sender.Character) && !sender.HasPermission(command)) + if (!mpCampaign.AllowedToEndRound(sender.Character)) { return; } diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs index 2bdd86696..be6ca7fcb 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs @@ -288,7 +288,7 @@ namespace Barotrauma } else { - var targetingPriority = UpdateTargets(Character); + UpdateTargets(Character, out TargetingPriority targetingPriority); updateTargetsTimer = UpdateTargetsInterval; if (SelectedAiTarget == null) @@ -299,7 +299,7 @@ namespace Barotrauma { State = AIState.Escape; } - else + else if (targetingPriority != null) { State = targetingPriority.State; } @@ -472,7 +472,10 @@ namespace Barotrauma } else { - UpdateWallTarget(); + if (!IsProperlyLatched) + { + UpdateWallTarget(); + } raycastTimer = RaycastInterval; } @@ -496,6 +499,10 @@ namespace Barotrauma if (wallTarget != null) { attackWorldPos = wallTarget.Position; + if (wallTarget.Structure.Submarine != null) + { + attackWorldPos += wallTarget.Structure.Submarine.Position; + } attackSimPos = ConvertUnits.ToSimUnits(attackWorldPos); } else @@ -839,12 +846,7 @@ namespace Barotrauma attachTargetNormal = new Vector2(Math.Sign(WorldPosition.X - wall.WorldPosition.X), 0.0f); sectionPos.X += (wall.BodyWidth <= 0.0f ? wall.Rect.Width : wall.BodyWidth) / 2 * attachTargetNormal.X; } - - latchOntoAI?.SetAttachTarget(wall.Submarine.PhysicsBody.FarseerBody, wall.Submarine, sectionPos, attachTargetNormal); - if (wall.Submarine != null) - { - sectionPos += wall.Submarine.Position; - } + latchOntoAI?.SetAttachTarget(wall.Submarine.PhysicsBody.FarseerBody, wall.Submarine, ConvertUnits.ToSimUnits(sectionPos), attachTargetNormal); wallTarget = new WallTarget(sectionPos, wall, sectionIndex); } } @@ -967,18 +969,27 @@ namespace Barotrauma steeringManager.SteeringSeek(attackSimPosition - (mouthPos - SimPosition)); } } - + #endregion #region Targeting + private bool IsProperlyLatched => latchOntoAI != null && latchOntoAI.IsAttached && SelectedAiTarget?.Entity == wallTarget?.Structure; + //goes through all the AItargets, evaluates how preferable it is to attack the target, //whether the Character can see/hear the target and chooses the most preferable target within //sight/hearing range - public TargetingPriority UpdateTargets(Character character) + public AITarget UpdateTargets(Character character, out TargetingPriority priority) { + if (IsProperlyLatched) + { + // If attached to a valid target, just keep the target. + // Priority not used in this case. + priority = null; + return SelectedAiTarget; + } AITarget newTarget = null; - TargetingPriority targetingPriority = null; + priority = null; selectedTargetMemory = null; targetValue = 0.0f; @@ -1177,7 +1188,7 @@ namespace Barotrauma { newTarget = target; selectedTargetMemory = targetMemory; - targetingPriority = targetingPriorities[targetingTag]; + priority = targetingPriorities[targetingTag]; targetValue = valueModifier; } } @@ -1187,7 +1198,7 @@ namespace Barotrauma { wallTarget = null; } - return targetingPriority; + return SelectedAiTarget; } private AITargetMemory GetTargetMemory(AITarget target) diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/LatchOntoAI.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/LatchOntoAI.cs index 200e20a5a..fe5304a4c 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/LatchOntoAI.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/LatchOntoAI.cs @@ -193,7 +193,7 @@ namespace Barotrauma // is not attached or is attached to something else if (!IsAttached || IsAttached && attachJoints[0].BodyB == attachTargetBody) { - if (Vector2.DistanceSquared(ConvertUnits.ToDisplayUnits(transformedAttachPos), enemyAI.AttackingLimb.WorldPosition) < enemyAI.AttackingLimb.attack.Range * enemyAI.AttackingLimb.attack.Range) + if (Vector2.DistanceSquared(ConvertUnits.ToDisplayUnits(transformedAttachPos), enemyAI.AttackingLimb.WorldPosition) < enemyAI.AttackingLimb.attack.DamageRange * enemyAI.AttackingLimb.attack.DamageRange) { AttachToBody(character.AnimController.Collider, attachLimb, attachTargetBody, transformedAttachPos); } diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Limb.cs b/Barotrauma/BarotraumaShared/Source/Characters/Limb.cs index 2d07409d1..b19684c74 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/Limb.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/Limb.cs @@ -528,7 +528,7 @@ namespace Barotrauma } else { - // If the attack is aimed to a character but hits a structure, the hit is blocked. + // If there is nothing between, the hit is successful wasHit = structureBody == null; } } diff --git a/Barotrauma/BarotraumaShared/Source/Events/Missions/Mission.cs b/Barotrauma/BarotraumaShared/Source/Events/Missions/Mission.cs index d82b66631..1aa0e23cf 100644 --- a/Barotrauma/BarotraumaShared/Source/Events/Missions/Mission.cs +++ b/Barotrauma/BarotraumaShared/Source/Events/Missions/Mission.cs @@ -103,6 +103,12 @@ namespace Barotrauma if (missionType == MissionType.Random) { allowedMissions.AddRange(MissionPrefab.List); +#if SERVER + if (GameMain.Server != null) + { + allowedMissions.RemoveAll(mission => !GameMain.Server.ServerSettings.AllowedRandomMissionTypes.Contains(mission.type)); + } +#endif } else if (missionType == MissionType.None) { diff --git a/Barotrauma/BarotraumaShared/Source/Items/Item.cs b/Barotrauma/BarotraumaShared/Source/Items/Item.cs index 11c413b9b..32cb6f3be 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Item.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Item.cs @@ -211,14 +211,14 @@ namespace Barotrauma set { spriteColor = value; } } - [Serialize("1.0,1.0,1.0,1.0", true), Editable] + [Serialize("1.0,1.0,1.0,1.0", false), Editable] public Color InventoryIconColor { get; protected set; } - [Serialize("1.0,1.0,1.0,1.0", true), Editable(ToolTip = "Changes the color of the item this item is contained inside. Only has an effect if either of the UseContainedSpriteColor or UseContainedInventoryIconColor property of the container is set to true.")] + [Serialize("1.0,1.0,1.0,1.0", false), Editable(ToolTip = "Changes the color of the item this item is contained inside. Only has an effect if either of the UseContainedSpriteColor or UseContainedInventoryIconColor property of the container is set to true.")] public Color ContainerColor { get; diff --git a/Barotrauma/BarotraumaShared/Source/Map/Map/Location.cs b/Barotrauma/BarotraumaShared/Source/Map/Map/Location.cs index e397d485f..f507b0796 100644 --- a/Barotrauma/BarotraumaShared/Source/Map/Map/Location.cs +++ b/Barotrauma/BarotraumaShared/Source/Map/Map/Location.cs @@ -33,7 +33,7 @@ namespace Barotrauma get { CheckMissionCompleted(); - + for (int i = availableMissions.Count; i < Connections.Count * 2; i++) { int seed = (ToolBox.StringToInt(BaseName) + MissionsCompleted * 10 + i) % int.MaxValue; @@ -47,7 +47,7 @@ namespace Barotrauma if (availableMissions.Any(m => m.Prefab == mission.Prefab)) { continue; } if (GameSettings.VerboseLogging && mission != null) { - DebugConsole.NewMessage("Generated a new mission for a location (location: " + Name + ", seed: " + seed.ToString("X") + ", missions completed: " + MissionsCompleted + ", type: " + mission.Name + ")", Color.White); + DebugConsole.NewMessage("Generated a new mission for a location connection (seed: " + seed.ToString("X") + ", type: " + mission.Name + ")", Color.White); } availableMissions.Add(mission); } @@ -100,16 +100,7 @@ namespace Barotrauma public void ChangeType(LocationType newType) { - if (newType == Type) { return; } - - //clear missions from this and adjacent locations (they may be invalid now) - availableMissions.Clear(); - foreach (LocationConnection connection in Connections) - { - connection.OtherLocation(this)?.availableMissions.Clear(); - } - - DebugConsole.Log("Location " + baseName + " changed it's type from " + Type + " to " + newType); + if (newType == Type) return; Type = newType; Name = Type.NameFormats[nameFormatIndex % Type.NameFormats.Count].Replace("[name]", baseName); @@ -121,7 +112,6 @@ namespace Barotrauma { if (mission.Completed) { - DebugConsole.Log("Mission \"" + mission.Name + "\" completed in \"" + Name + "\"."); MissionsCompleted++; } } diff --git a/Barotrauma/BarotraumaShared/Source/Utils/SaveUtil.cs b/Barotrauma/BarotraumaShared/Source/Utils/SaveUtil.cs index 601318392..822be89c9 100644 --- a/Barotrauma/BarotraumaShared/Source/Utils/SaveUtil.cs +++ b/Barotrauma/BarotraumaShared/Source/Utils/SaveUtil.cs @@ -32,7 +32,6 @@ namespace Barotrauma public static void SaveGame(string filePath) { - DebugConsole.Log("Saving the game to: " + filePath); Directory.CreateDirectory(TempPath); try { @@ -112,7 +111,6 @@ namespace Barotrauma public static XDocument LoadGameSessionDoc(string filePath) { - DebugConsole.Log("Loading game session doc: " + filePath); try { DecompressToDirectory(filePath, TempPath, null); @@ -403,18 +401,18 @@ namespace Barotrauma } } - public static void ClearFolder(string FolderName, string[] ignoredFileNames = null) + public static void ClearFolder(string FolderName, string[] ignoredFiles = null) { DirectoryInfo dir = new DirectoryInfo(FolderName); foreach (FileInfo fi in dir.GetFiles()) { - if (ignoredFileNames != null) + if (ignoredFiles != null) { bool ignore = false; - foreach (string ignoredFile in ignoredFileNames) + foreach (string ignoredFile in ignoredFiles) { - if (Path.GetFileName(fi.FullName).Equals(Path.GetFileName(ignoredFile))) + if (Path.GetFullPath(fi.FullName).Equals(Path.GetFullPath(ignoredFile))) { ignore = true; break;