diff --git a/src/dumper/dumper.cs b/src/dumper/dumper.cs index 6f759b5..501da66 100644 --- a/src/dumper/dumper.cs +++ b/src/dumper/dumper.cs @@ -351,17 +351,19 @@ class Dumper */ if (!_provider.TryLoadPackage(cleanPath, out IPackage? package)) { - string searchSuffix = cleanPath; + string[] pathSegments = cleanPath.Split('/', StringSplitOptions.RemoveEmptyEntries); - if (searchSuffix.StartsWith("/Game/")) - searchSuffix = searchSuffix["/Game/".Length..]; + if (pathSegments.Length > 1) + { + string innerPath = string.Join('/', pathSegments.Skip(1)) + ".uasset"; - if (!searchSuffix.EndsWith(".uasset")) - searchSuffix += ".uasset"; + KeyValuePair actualFile = _provider.Files.FirstOrDefault( + kvp => kvp.Key.EndsWith(innerPath, StringComparison.OrdinalIgnoreCase) + ); - KeyValuePair actualFile = _provider.Files.FirstOrDefault(kvp => kvp.Key.EndsWith(searchSuffix, StringComparison.OrdinalIgnoreCase)); - if (actualFile.Value != null) - _provider.TryLoadPackage(actualFile.Value, out package); + if (actualFile.Value != null) + _provider.TryLoadPackage(actualFile.Value, out package); + } }