From 632b023f29f72c029bdabd15cbc0108ad4826c20 Mon Sep 17 00:00:00 2001 From: hguy Date: Sat, 19 Aug 2023 17:07:04 +0200 Subject: [PATCH 1/6] Fix SteamPath value reading + small refacto --- src/ARZExplorer/ExtractProgress.cs | 4 +- src/ARZExplorer/MainForm.cs | 12 +++--- src/ARZExplorer/Models/NodeTag.cs | 1 - src/TQVaultAE.Data/ArcFileProvider.cs | 42 +++---------------- src/TQVaultAE.Data/ArzFileProvider.cs | 34 +-------------- .../Contracts/Providers/IArcFileProvider.cs | 9 ++-- .../Contracts/Providers/IArzFileProvider.cs | 9 ++-- src/TQVaultAE.Domain/Entities/ArcFile.cs | 9 ++-- src/TQVaultAE.Domain/Entities/ArzFile.cs | 7 ++-- .../GamePathServiceWin.cs | 5 ++- 10 files changed, 33 insertions(+), 99 deletions(-) diff --git a/src/ARZExplorer/ExtractProgress.cs b/src/ARZExplorer/ExtractProgress.cs index f77df39c..a0820d61 100644 --- a/src/ARZExplorer/ExtractProgress.cs +++ b/src/ARZExplorer/ExtractProgress.cs @@ -117,7 +117,7 @@ private void DoArzExtraction() try { bool canceled = false; - foreach (RecordId recordID in arzProv.GetKeyTable(this.MainForm.SelectedFile.ARZFile)) + foreach (RecordId recordID in this.MainForm.SelectedFile.ARZFile.Keys) { if (canceled) break; @@ -160,7 +160,7 @@ private void DoArcExtraction() { bool canceled = false; - foreach (RecordId recordID in arcProv.GetKeyTable(this.MainForm.SelectedFile.ARCFile)) + foreach (RecordId recordID in this.MainForm.SelectedFile.ARCFile.Keys) { if (canceled) break; diff --git a/src/ARZExplorer/MainForm.cs b/src/ARZExplorer/MainForm.cs index 743bfcb3..fd361173 100644 --- a/src/ARZExplorer/MainForm.cs +++ b/src/ARZExplorer/MainForm.cs @@ -525,12 +525,12 @@ private void BuildTreeView() { this.treeViewTOC.BeginUpdate(); - RecordId[] dataRecords; + IEnumerable dataRecords; if (this.SelectedFile.FileType == CompressedFileType.ArzFile) - dataRecords = arzProv.GetKeyTable(this.SelectedFile.ARZFile); + dataRecords = this.SelectedFile.ARZFile.Keys; else if (this.SelectedFile.FileType == CompressedFileType.ArcFile) - dataRecords = arcProv.GetKeyTable(this.SelectedFile.ARCFile); + dataRecords = this.SelectedFile.ARCFile.Keys; else return; @@ -569,9 +569,9 @@ private void BuildTreeView() } } - for (int recIdx = 0; recIdx < dataRecords.Length; recIdx++) + foreach (var record in dataRecords) { - RecordId recordID = arcPrefix == string.Empty ? dataRecords[recIdx] : Path.Combine(arcPrefix, dataRecords[recIdx].Raw); + RecordId recordID = arcPrefix == string.Empty ? record : Path.Combine(arcPrefix, record.Raw); for (int tokIdx = 0; tokIdx < recordID.TokensRaw.Count; tokIdx++) { @@ -597,7 +597,6 @@ private void BuildTreeView() Thread = recordID, Key = currnodeKey, - RecIdx = recIdx, TokIdx = tokIdx, Text = token, @@ -638,7 +637,6 @@ void GetRootNode(string arcPrefix, TreeNode rootNode, out TreeNode arcRootNode) Thread = null, Key = arcPrefix, - RecIdx = 0, TokIdx = 0, Text = arcRootNode.Text, diff --git a/src/ARZExplorer/Models/NodeTag.cs b/src/ARZExplorer/Models/NodeTag.cs index f5077d3f..eedbca59 100644 --- a/src/ARZExplorer/Models/NodeTag.cs +++ b/src/ARZExplorer/Models/NodeTag.cs @@ -12,7 +12,6 @@ internal class NodeTag internal string Text; internal string TextU => Text.ToUpper(); - internal int RecIdx; internal int TokIdx; internal RecordId Key; internal TreeNode thisNode; diff --git a/src/TQVaultAE.Data/ArcFileProvider.cs b/src/TQVaultAE.Data/ArcFileProvider.cs index 58280b12..8fb62c3a 100644 --- a/src/TQVaultAE.Data/ArcFileProvider.cs +++ b/src/TQVaultAE.Data/ArcFileProvider.cs @@ -38,18 +38,6 @@ public ArcFileProvider(ILogger log, ITQDataService tQData) this.TQData = tQData; } - /// - /// Gets the sorted list of directoryEntries. - /// - /// string array holding the sorted list - public RecordId[] GetKeyTable(ArcFile file) - { - if (file.Keys == null || file.Keys.Length == 0) - this.BuildKeyTable(file); - - return (RecordId[])file.Keys.Clone(); - } - #region ArcFile Public Methods /// @@ -63,7 +51,7 @@ public bool Read(ArcFile file) if (!file.FileHasBeenRead) this.ReadARCToC(file); - return file.DirectoryEntries != null; + return file.DirectoryEntries.Any(); } catch (IOException exception) { @@ -125,7 +113,7 @@ public byte[] GetData(ArcFile file, RecordId dataId) if (!file.FileHasBeenRead) this.ReadARCToC(file); - if (file.DirectoryEntries == null) + if (!file.DirectoryEntries.Any()) { if (TQDebug.ArcFileDebugLevel > 1) Log.LogDebug("Error - Could not read {0}", file.FileName); @@ -284,25 +272,6 @@ public bool ExtractArcFile(ArcFile file, string destination) #region ArcFile Private Methods - /// - /// Builds a sorted list of entries in the directoryEntries dictionary. Used to build a tree structure of the names. - /// - private void BuildKeyTable(ArcFile file) - { - if (file.DirectoryEntries == null || file.DirectoryEntries.Count == 0) - return; - - int index = 0; - file.Keys = new RecordId[file.DirectoryEntries.Count]; - foreach (RecordId filename in file.DirectoryEntries.Keys) - { - file.Keys[index] = filename; - index++; - } - - Array.Sort(file.Keys); - } - /// /// Read the table of contents of the ARC file /// @@ -348,13 +317,14 @@ public void ReadARCToC(ArcFile file) Log.LogDebug("File Length={0}", arcFile.Length); // check the file header - if (reader.ReadByte() != 0x41) + byte first; + if ((first = reader.ReadByte()) != 0x41) return; - if (reader.ReadByte() != 0x52) + if ((first = reader.ReadByte()) != 0x52) return; - if (reader.ReadByte() != 0x43) + if ((first = reader.ReadByte()) != 0x43) return; if (arcFile.Length < 0x21) diff --git a/src/TQVaultAE.Data/ArzFileProvider.cs b/src/TQVaultAE.Data/ArzFileProvider.cs index fcba7fa0..2d9f225e 100644 --- a/src/TQVaultAE.Data/ArzFileProvider.cs +++ b/src/TQVaultAE.Data/ArzFileProvider.cs @@ -7,7 +7,9 @@ namespace TQVaultAE.Data { using Microsoft.Extensions.Logging; using System; + using System.Collections.Generic; using System.IO; + using System.Linq; using TQVaultAE.Config; using TQVaultAE.Domain.Contracts.Providers; using TQVaultAE.Domain.Contracts.Services; @@ -34,19 +36,6 @@ public ArzFileProvider(ILogger log, IRecordInfoProvider recordI this.infoProv = recordInfoProvider; } - - /// - /// Gets the list of keys from the recordInfo dictionary. - /// - /// string array holding the sorted list - public RecordId[] GetKeyTable(ArzFile file) - { - if (file.Keys == null || file.Keys.Length == 0) - this.BuildKeyTable(file); - - return (RecordId[])file.Keys.Clone(); - } - /// /// Reads the ARZ file. /// @@ -156,25 +145,6 @@ public DBRecordCollection GetItem(ArzFile file, RecordId recordId) public DBRecordCollection GetRecordNotCached(ArzFile file, RecordId recordId) => infoProv.Decompress(file, file.RecordInfo[recordId]); - /// - /// Builds a list of the keys for this file. Used to help build the tree structure. - /// - private void BuildKeyTable(ArzFile file) - { - if (file.RecordInfo == null || file.RecordInfo.Count == 0) - return; - - int index = 0; - file.Keys = new RecordId[file.RecordInfo.Count]; - foreach (RecordId recordID in file.RecordInfo.Keys) - { - file.Keys[index] = recordID; - index++; - } - - Array.Sort(file.Keys); - } - /// /// Reads the whole string table into memory from a stream. diff --git a/src/TQVaultAE.Domain/Contracts/Providers/IArcFileProvider.cs b/src/TQVaultAE.Domain/Contracts/Providers/IArcFileProvider.cs index b1da00dd..b0a64d43 100644 --- a/src/TQVaultAE.Domain/Contracts/Providers/IArcFileProvider.cs +++ b/src/TQVaultAE.Domain/Contracts/Providers/IArcFileProvider.cs @@ -1,4 +1,5 @@ -using TQVaultAE.Domain.Entities; +using System.Collections.Generic; +using TQVaultAE.Domain.Entities; namespace TQVaultAE.Domain.Contracts.Providers { @@ -21,11 +22,7 @@ public interface IArcFileProvider /// Read the table of contents of the ARC file /// void ReadARCToC(ArcFile file); - /// - /// Gets the sorted list of directoryEntries. - /// - /// string array holding the sorted list - RecordId[] GetKeyTable(ArcFile file); + /// /// Reads the ARC file table of contents to determine if the file is readable. /// diff --git a/src/TQVaultAE.Domain/Contracts/Providers/IArzFileProvider.cs b/src/TQVaultAE.Domain/Contracts/Providers/IArzFileProvider.cs index 5b4299eb..16206ef9 100644 --- a/src/TQVaultAE.Domain/Contracts/Providers/IArzFileProvider.cs +++ b/src/TQVaultAE.Domain/Contracts/Providers/IArzFileProvider.cs @@ -1,4 +1,5 @@ -using TQVaultAE.Domain.Entities; +using System.Collections.Generic; +using TQVaultAE.Domain.Entities; namespace TQVaultAE.Domain.Contracts.Providers { @@ -10,11 +11,7 @@ public interface IArzFileProvider /// string ID of the record will be normalized internally /// DBRecord corresponding to the string ID. DBRecordCollection GetItem(ArzFile file, RecordId recordId); - /// - /// Gets the list of keys from the recordInfo dictionary. - /// - /// string array holding the sorted list - RecordId[] GetKeyTable(ArzFile file); + /// /// Gets a database record without adding it to the cache. /// diff --git a/src/TQVaultAE.Domain/Entities/ArcFile.cs b/src/TQVaultAE.Domain/Entities/ArcFile.cs index 25218c73..de8f0e23 100644 --- a/src/TQVaultAE.Domain/Entities/ArcFile.cs +++ b/src/TQVaultAE.Domain/Entities/ArcFile.cs @@ -6,6 +6,7 @@ namespace TQVaultAE.Domain.Entities { using System.Collections.Generic; + using System.Linq; /// /// Reads and decodes a Titan Quest ARC file. @@ -20,12 +21,12 @@ public class ArcFile /// /// Dictionary of the directory entries. /// - public Dictionary DirectoryEntries; + public Dictionary DirectoryEntries = new(); /// - /// Holds the keys for the directoryEntries dictionary. + /// Ordered keys for the directoryEntries dictionary. /// - public RecordId[] Keys; + public IEnumerable Keys => this.DirectoryEntries.Keys.OrderBy(v => v); /// /// Initializes a new instance of the ArcFile class. @@ -42,7 +43,7 @@ public ArcFile(string fileName) /// /// Gets the number of Directory entries /// - public int Count => this.DirectoryEntries?.Count ?? 0; + public int Count => this.DirectoryEntries.Count; } } \ No newline at end of file diff --git a/src/TQVaultAE.Domain/Entities/ArzFile.cs b/src/TQVaultAE.Domain/Entities/ArzFile.cs index 533aad7b..ae791362 100644 --- a/src/TQVaultAE.Domain/Entities/ArzFile.cs +++ b/src/TQVaultAE.Domain/Entities/ArzFile.cs @@ -8,6 +8,7 @@ namespace TQVaultAE.Domain.Entities using System; using System.Collections.Concurrent; using System.Collections.Generic; + using System.Linq; using TQVaultAE.Domain.Helpers; /// @@ -28,12 +29,12 @@ public class ArzFile /// /// RecordInfo keyed by their ID /// - public Dictionary RecordInfo = new Dictionary(); + public Dictionary RecordInfo = new(); /// - /// Holds the keys for the recordInfo Dictionary + /// Ordered keys for the recordInfo Dictionary /// - public RecordId[] Keys; + public IEnumerable Keys => this.RecordInfo.Keys.OrderBy(v => v); /// /// Initializes a new instance of the ArzFile class. diff --git a/src/TQVaultAE.Services.Win32/GamePathServiceWin.cs b/src/TQVaultAE.Services.Win32/GamePathServiceWin.cs index b987e30a..df42d584 100644 --- a/src/TQVaultAE.Services.Win32/GamePathServiceWin.cs +++ b/src/TQVaultAE.Services.Win32/GamePathServiceWin.cs @@ -619,7 +619,8 @@ public string ResolveGamePath() { if (vdfPathRegex.Match(line.Trim()) is { Success: true } match) { - fullPath = Path.Combine(match.Groups[1].Value, steamTQPath); + var vdfPathValue = match.Groups[1].Value.Replace(@"\\", @"\"); + fullPath = Path.Combine(vdfPathValue, steamTQPath); if (Directory.Exists(fullPath)) { titanQuestGamePath = fullPath; @@ -638,7 +639,7 @@ public string ResolveGamePath() { // Match "path" if (regExPath.Match(line) is { Success: true } match) - steamPath = match.Groups["path"].Value; + steamPath = match.Groups["path"].Value.Replace(@"\\", @"\");// Backslashes ares escaped in this file // Match gameId if (line.Contains(gameIdMarkup)) From 528c05e72df695a5fd0c9bb21f2fd5f48501560c Mon Sep 17 00:00:00 2001 From: hguy Date: Sun, 20 Aug 2023 01:08:36 +0200 Subject: [PATCH 2/6] Reduce log "Attribute unknown" & fix rare highlight exception --- src/TQVaultAE.Data/ItemProvider.cs | 9 ++++++++- src/TQVaultAE.Domain/Entities/SessionContext.cs | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/TQVaultAE.Data/ItemProvider.cs b/src/TQVaultAE.Data/ItemProvider.cs index bda5dfc0..5b4bbc3c 100644 --- a/src/TQVaultAE.Data/ItemProvider.cs +++ b/src/TQVaultAE.Data/ItemProvider.cs @@ -132,7 +132,14 @@ public class ItemProvider : IItemProvider "CONTAGIONMAXSPREAD", "CONTAGIONRADIUS", "NOHIGHLIGHTDEFAULTCOLORA", // AMS: New property on most EE items - "FORCEIGNORERUNSPEEDCAPS" // hguy: New property on EE "Potion of Speed" + "FORCEIGNORERUNSPEEDCAPS", // hguy: New property on EE "Potion of Speed" + "LOOTRANDOMIZERSCALE", + "PROJECTILEFRAGMENTSLAUNCHNUMBERMAX", + "PROJECTILEFRAGMENTSLAUNCHNUMBERMIN", + "SPAWNOBJECTSRANDOMROTATION", + "SKILLPROJECTILETARGETGROUNDONLY", + "OFFENSIVETOTALDAMAGEGLOBAL", + "OFFENSIVETOTALDAMAGEXOR", }; internal static readonly string[] requirementTags = diff --git a/src/TQVaultAE.Domain/Entities/SessionContext.cs b/src/TQVaultAE.Domain/Entities/SessionContext.cs index 35308bc0..183848ca 100644 --- a/src/TQVaultAE.Domain/Entities/SessionContext.cs +++ b/src/TQVaultAE.Domain/Entities/SessionContext.cs @@ -260,7 +260,7 @@ public void FindHighlight() availableItems = availableItems.Where(i => i.FriendlyNames.ItemSet != null); } - this.HighlightedItems.AddRange(availableItems.Select(i => i.Item)); + this.HighlightedItems.AddRange(availableItems.Select(i => i.Item).ToList()); return; } ResetHighlight(); From 838115b61b9951f8d1014c1032366d1bde8156be Mon Sep 17 00:00:00 2001 From: hguy Date: Sun, 20 Aug 2023 14:33:46 +0200 Subject: [PATCH 3/6] FIx items red background on secondary vault display --- src/TQVaultAE.GUI/Components/EquipmentPanel.cs | 7 +++++-- src/TQVaultAE.GUI/Components/SackPanel.cs | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/TQVaultAE.GUI/Components/EquipmentPanel.cs b/src/TQVaultAE.GUI/Components/EquipmentPanel.cs index f3851a21..93be3380 100644 --- a/src/TQVaultAE.GUI/Components/EquipmentPanel.cs +++ b/src/TQVaultAE.GUI/Components/EquipmentPanel.cs @@ -763,8 +763,11 @@ protected override void PaintAreaUnderItem(PaintEventArgs e) // If we are showing the cannot equip background then // change to invalid color and adjust the alpha. else if ( - (Config.UserSettings.Default.EnableItemRequirementRestriction && !this.PlayerMeetRequierements(item)) - || !IsSuitableForCurrentPlayer(item) + !this.SecondaryVaultShown + && ( + (Config.UserSettings.Default.EnableItemRequirementRestriction && !this.PlayerMeetRequierements(item)) + || !IsSuitableForCurrentPlayer(item) + ) ) { backgroundColor = this.HighlightInvalidItemColor; diff --git a/src/TQVaultAE.GUI/Components/SackPanel.cs b/src/TQVaultAE.GUI/Components/SackPanel.cs index ed54dcf2..aae3c8b3 100644 --- a/src/TQVaultAE.GUI/Components/SackPanel.cs +++ b/src/TQVaultAE.GUI/Components/SackPanel.cs @@ -2544,8 +2544,11 @@ protected virtual void PaintAreaUnderItem(PaintEventArgs e) // If we are showing the cannot equip background then // change to invalid color and adjust the alpha. else if ( - (Config.UserSettings.Default.EnableItemRequirementRestriction && !this.PlayerMeetRequierements(item)) - || !IsSuitableForCurrentPlayer(item) + !this.SecondaryVaultShown + && ( + (Config.UserSettings.Default.EnableItemRequirementRestriction && !this.PlayerMeetRequierements(item)) + || !IsSuitableForCurrentPlayer(item) + ) ) { backgroundColor = this.HighlightInvalidItemColor; From c6204d8a4bec821171e43e08292d9912f440df26 Mon Sep 17 00:00:00 2001 From: hguy Date: Sun, 20 Aug 2023 14:46:47 +0200 Subject: [PATCH 4/6] Fix #504 --- src/TQVaultAE.GUI/Components/SackPanel.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/TQVaultAE.GUI/Components/SackPanel.cs b/src/TQVaultAE.GUI/Components/SackPanel.cs index aae3c8b3..d9a35682 100644 --- a/src/TQVaultAE.GUI/Components/SackPanel.cs +++ b/src/TQVaultAE.GUI/Components/SackPanel.cs @@ -2500,7 +2500,8 @@ protected virtual bool IsCurrentPlayerReadOnly() protected virtual bool IsSuitableForCurrentPlayer(Item item) { var currPlayer = this.userContext.CurrentPlayer; - if (!(currPlayer?.IsImmortalThrone ?? false) // Player is TQ Original + + if (currPlayer is not null && !currPlayer.IsImmortalThrone // Player is TQ Original && item.GameDlc != GameDlc.TitanQuest // Non base game item ) return false; From 9d6087db21bb97ad2a1cc592f6239b8cd10a697c Mon Sep 17 00:00:00 2001 From: hguy Date: Mon, 21 Aug 2023 07:42:14 +0200 Subject: [PATCH 5/6] Fix #505 : Fully support HCDungeon relic --- .../Entities/RecordId.ForItems.cs | 27 +++++++++++++++++-- src/TQVaultAE.Domain/Entities/RecordId.cs | 2 +- src/TQVaultAE.GUI/Components/StashPanel.cs | 10 +++---- .../Resources.Designer.cs | 12 ++++----- src/TQVaultAE.Presentation/Resources.de.resx | 6 ++--- src/TQVaultAE.Presentation/Resources.es.resx | 6 ++--- src/TQVaultAE.Presentation/Resources.fr.resx | 6 ++--- src/TQVaultAE.Presentation/Resources.pl.resx | 6 ++--- src/TQVaultAE.Presentation/Resources.pt.resx | 6 ++--- src/TQVaultAE.Presentation/Resources.resx | 6 ++--- src/TQVaultAE.Presentation/Resources.ru.resx | 6 ++--- src/TQVaultAE.Presentation/Resources.zh.resx | 6 ++--- 12 files changed, 61 insertions(+), 38 deletions(-) diff --git a/src/TQVaultAE.Domain/Entities/RecordId.ForItems.cs b/src/TQVaultAE.Domain/Entities/RecordId.ForItems.cs index c74829d9..5e0f1b2e 100644 --- a/src/TQVaultAE.Domain/Entities/RecordId.ForItems.cs +++ b/src/TQVaultAE.Domain/Entities/RecordId.ForItems.cs @@ -1,12 +1,33 @@ using System; +using System.Linq; namespace TQVaultAE.Domain.Entities; public partial class RecordId { + #region IsHCDungeonEE + + bool? _IsHardCoreDungeonEE; + /// + /// This leads to the EE Hardcore Dungeon. + /// + public bool IsHardCoreDungeonEE + { + get + { + if (_IsHardCoreDungeonEE is null) + _IsHardCoreDungeonEE = this.Normalized.Contains(@"\HCDUNGEON\"); + return _IsHardCoreDungeonEE.Value; + } + } + + #endregion + #region IsRelic + private readonly string[] HCDungeonRelic = new[] { "03_X4_ESSENCEOFORDER_CHARM", "03_X4_ESSENCEOFCHAOS" }; + bool? _IsRelic; /// /// This leads to a Relic content. @@ -17,7 +38,8 @@ public bool IsRelic { if (_IsRelic is null) _IsRelic = (this.Dlc == GameDlc.TitanQuest && this.Normalized.Contains(@"RELICS") && !IsCharm) // Is base game - || this.Normalized.Contains(@"\RELICS\");// Is part of an extension + || this.Normalized.Contains(@"\RELICS\")// Is part of an extension + || (this.IsHardCoreDungeonEE && HCDungeonRelic.Any(n => this.Normalized.Contains(n)));// items that break the rule return _IsRelic.Value; } } @@ -36,7 +58,8 @@ public bool IsCharm { if (_IsCharm is null) _IsCharm = (this.Dlc == GameDlc.TitanQuest && this.Normalized.Contains(@"ANIMALRELICS")) // Is base game - || this.Normalized.Contains(@"\CHARMS\");// Is part of an extension + || this.Normalized.Contains(@"\CHARMS\")// Is part of an extension + || (this.IsHardCoreDungeonEE && this.Normalized.Contains(@"GOLDENSCARAB"));// items that break the rule return _IsCharm.Value; } } diff --git a/src/TQVaultAE.Domain/Entities/RecordId.cs b/src/TQVaultAE.Domain/Entities/RecordId.cs index 98e2dc0f..177d37a9 100644 --- a/src/TQVaultAE.Domain/Entities/RecordId.cs +++ b/src/TQVaultAE.Domain/Entities/RecordId.cs @@ -51,7 +51,7 @@ public GameDlc Dlc if (_Dlc is null) _Dlc = this.Normalized switch { - var x when x.Contains(@"\XPACK4\") => GameDlc.EternalEmbers, + var x when x.Contains(@"\XPACK4\") || this.IsHardCoreDungeonEE => GameDlc.EternalEmbers, var x when x.Contains(@"\XPACK3\") => GameDlc.Atlantis, var x when x.Contains(@"\XPACK2\") => GameDlc.Ragnarok, var x when x.Contains(@"\XPACK\") => GameDlc.ImmortalThrone, diff --git a/src/TQVaultAE.GUI/Components/StashPanel.cs b/src/TQVaultAE.GUI/Components/StashPanel.cs index e37c5ed6..15f88ca2 100644 --- a/src/TQVaultAE.GUI/Components/StashPanel.cs +++ b/src/TQVaultAE.GUI/Components/StashPanel.cs @@ -29,9 +29,9 @@ public class StashPanel : VaultPanel, IScalingControl /// private static string[] buttonNames = { - Resources.StashPanelBtn1, - Resources.StashPanelBtn2, - Resources.StashPanelBtn3, + Resources.StashPanelBtnEquipment, + Resources.StashPanelBtnTransferArea, + Resources.StashPanelBtnStorageArea, Resources.GlobalRelicVaultStash }; @@ -263,7 +263,7 @@ private void GetSkillStatBonus() private void DisplayPlayerInfo() { - if (this.Player == null || !this.equipmentPanel.Visible || this.BagButtons[this.CurrentBag].ButtonText != Resources.StashPanelBtn1) + if (this.Player == null || !this.equipmentPanel.Visible || this.BagButtons[this.CurrentBag].ButtonText != Resources.StashPanelBtnEquipment) { this.PlayerPanel.Visible = false; return; @@ -544,7 +544,7 @@ public Bitmap StashBackground if (this.currentBag == BAGID_EQUIPMENTPANEL) { // Equipment Panel - if (this.Player == null) + if (this.Player == null) this.equipmentPanel.Sack = null; else this.equipmentPanel.Sack = this.Player.EquipmentSack; diff --git a/src/TQVaultAE.Presentation/Resources.Designer.cs b/src/TQVaultAE.Presentation/Resources.Designer.cs index 456de58c..30825e2a 100644 --- a/src/TQVaultAE.Presentation/Resources.Designer.cs +++ b/src/TQVaultAE.Presentation/Resources.Designer.cs @@ -5085,27 +5085,27 @@ public static System.Drawing.Bitmap StashPanel { /// /// Looks up a localized string similar to Equipment. /// - public static string StashPanelBtn1 { + public static string StashPanelBtnEquipment { get { - return ResourceManager.GetString("StashPanelBtn1", resourceCulture); + return ResourceManager.GetString("StashPanelBtnEquipment", resourceCulture); } } /// /// Looks up a localized string similar to Transfer Area. /// - public static string StashPanelBtn2 { + public static string StashPanelBtnTransferArea { get { - return ResourceManager.GetString("StashPanelBtn2", resourceCulture); + return ResourceManager.GetString("StashPanelBtnTransferArea", resourceCulture); } } /// /// Looks up a localized string similar to Storage Area. /// - public static string StashPanelBtn3 { + public static string StashPanelBtnStorageArea { get { - return ResourceManager.GetString("StashPanelBtn3", resourceCulture); + return ResourceManager.GetString("StashPanelBtnStorageArea", resourceCulture); } } diff --git a/src/TQVaultAE.Presentation/Resources.de.resx b/src/TQVaultAE.Presentation/Resources.de.resx index cdb482f0..af96a2e9 100644 --- a/src/TQVaultAE.Presentation/Resources.de.resx +++ b/src/TQVaultAE.Presentation/Resources.de.resx @@ -813,13 +813,13 @@ um den Titel-Screen zu Schließen. Bitte besuchen Sie im Spiel den Karawanentreiber, um eine Stauraum-Datei zu erstellen. Der Stauraum ist für diesen Charakter nicht verfügbar. - + Ausrüstung - + Übergabebereich - + Stauraum diff --git a/src/TQVaultAE.Presentation/Resources.es.resx b/src/TQVaultAE.Presentation/Resources.es.resx index 9c5c0bab..80d670d7 100644 --- a/src/TQVaultAE.Presentation/Resources.es.resx +++ b/src/TQVaultAE.Presentation/Resources.es.resx @@ -814,13 +814,13 @@ avance al programa por sí sola. Por favor, visita al conductor de caravana para crearlo. La pestaña de almacén de caravana estará deshabilitada. - + Equipo - + Almacén caravana (transfer.) - + Almacén caravana diff --git a/src/TQVaultAE.Presentation/Resources.fr.resx b/src/TQVaultAE.Presentation/Resources.fr.resx index d15521b1..028aa7f4 100644 --- a/src/TQVaultAE.Presentation/Resources.fr.resx +++ b/src/TQVaultAE.Presentation/Resources.fr.resx @@ -816,13 +816,13 @@ automatiquement activé sur l'écran d'accueil. Allez voir le Conducteur de caravane dans le jeu pour créer le fichier. L'onglet Zone de stockage ne sera pas disponible pour ce personnage. - + Equipement - + Zone de transfert - + Zone de stockage diff --git a/src/TQVaultAE.Presentation/Resources.pl.resx b/src/TQVaultAE.Presentation/Resources.pl.resx index 653cae14..f8f2cd92 100644 --- a/src/TQVaultAE.Presentation/Resources.pl.resx +++ b/src/TQVaultAE.Presentation/Resources.pl.resx @@ -806,13 +806,13 @@ klawisza Enter na ekranie tytułowym. Odwiedź Karawanę w grze by stworzyć plik. Pole Okna Karawany będzie niedostępne dla tej postaci. - + Ekwipunek - + Pole Transferu - + Pole Karawany diff --git a/src/TQVaultAE.Presentation/Resources.pt.resx b/src/TQVaultAE.Presentation/Resources.pt.resx index defbfe8e..b07f2537 100644 --- a/src/TQVaultAE.Presentation/Resources.pt.resx +++ b/src/TQVaultAE.Presentation/Resources.pt.resx @@ -834,13 +834,13 @@ avançe para o programa por si só. Por favor, visite o condutor da Caravana no jogo para criar o arquivo. A guia área de armazenamento ficará indisponível para esse personagem. - + Equipamento - + Área de Transferência - + Área de Armazenamento diff --git a/src/TQVaultAE.Presentation/Resources.resx b/src/TQVaultAE.Presentation/Resources.resx index 66ba4f0a..2d79c2e9 100644 --- a/src/TQVaultAE.Presentation/Resources.resx +++ b/src/TQVaultAE.Presentation/Resources.resx @@ -836,13 +836,13 @@ the Enter key on the title screen. Please visit the Caravan Trader in game to create the file. The Storage Area tab will be unavailable for this character. - + Equipment - + Transfer Area - + Storage Area diff --git a/src/TQVaultAE.Presentation/Resources.ru.resx b/src/TQVaultAE.Presentation/Resources.ru.resx index 2142be00..c36f240f 100644 --- a/src/TQVaultAE.Presentation/Resources.ru.resx +++ b/src/TQVaultAE.Presentation/Resources.ru.resx @@ -811,13 +811,13 @@ Enter когда появляется экран приветствия. тех пор вкладки, связанные с Погонщиком для этого персонажа будут недоступны. - + Экипировка - + Панель передачи - + Склад diff --git a/src/TQVaultAE.Presentation/Resources.zh.resx b/src/TQVaultAE.Presentation/Resources.zh.resx index 0936f6d1..ded6ffd2 100644 --- a/src/TQVaultAE.Presentation/Resources.zh.resx +++ b/src/TQVaultAE.Presentation/Resources.zh.resx @@ -819,13 +819,13 @@ TQVault关闭仍有物品在垃圾桶时将不会有提示信息。 请在游戏中找旅行商队来创建这个文件。 该角色将会没有存储区域选项卡。 - + 装备 - + 共享空间 - + 存储空间 From 6f7ae78108d650084c890f87430894872341d66b Mon Sep 17 00:00:00 2001 From: hguy Date: Tue, 22 Aug 2023 22:47:54 +0200 Subject: [PATCH 6/6] Tag cleanup --- src/TQVaultAE.Data/ItemProvider.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/TQVaultAE.Data/ItemProvider.cs b/src/TQVaultAE.Data/ItemProvider.cs index 5b4bbc3c..d6cfb6ec 100644 --- a/src/TQVaultAE.Data/ItemProvider.cs +++ b/src/TQVaultAE.Data/ItemProvider.cs @@ -140,6 +140,11 @@ public class ItemProvider : IItemProvider "SKILLPROJECTILETARGETGROUNDONLY", "OFFENSIVETOTALDAMAGEGLOBAL", "OFFENSIVETOTALDAMAGEXOR", + // hguy : HCDUNGEON ITEMS + "SKILLALLOWSWARMUP", + "ONHITACTIVATIONCHANCE", + "DECREMENTSTATTYPE", + "ALLSKILLENHANCEMENT", }; internal static readonly string[] requirementTags =