diff --git a/FModel/Globals.cs b/FModel/Globals.cs index 2fd46140..d14034e7 100644 --- a/FModel/Globals.cs +++ b/FModel/Globals.cs @@ -55,6 +55,7 @@ namespace FModel EGame.DeadByDaylight => "Dead By Daylight", EGame.Borderlands3 => "Borderlands 3", EGame.MinecraftDungeons => "Minecraft Dungeons", + EGame.BattleBreakers => "Battle Breakers", EGame.Unknown => "Unknown", _ => "Unknown", }; diff --git a/FModel/Grabber/Cdn/CdnDataGrabber.cs b/FModel/Grabber/Cdn/CdnDataGrabber.cs index 671b0c48..3f88784b 100644 --- a/FModel/Grabber/Cdn/CdnDataGrabber.cs +++ b/FModel/Grabber/Cdn/CdnDataGrabber.cs @@ -67,9 +67,9 @@ namespace FModel.Grabber.Cdn if (_data == null) _data = await CdnData.GetData().ConfigureAwait(false); - if (_data != null) + if (_data != null && _data.Backups.TryGetValue(Globals.Game.ActualGame.ToString(), out var backups)) { - return JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(_data.Backups[Globals.Game.ActualGame.ToString()])); + return JsonConvert.DeserializeObject>(JsonConvert.SerializeObject(backups)); } return new List(); } diff --git a/FModel/PakReader/Parsers/Class/USoundWave.cs b/FModel/PakReader/Parsers/Class/USoundWave.cs index e9f5a123..1d25622c 100644 --- a/FModel/PakReader/Parsers/Class/USoundWave.cs +++ b/FModel/PakReader/Parsers/Class/USoundWave.cs @@ -10,7 +10,7 @@ namespace PakReader.Parsers.Class { public bool bCooked; /** Whether this sound can be streamed to avoid increased memory usage. If using Stream Caching, use Loading Behavior instead to control memory usage. */ - public bool bStreaming = true; + public bool bStreaming; /** Uncompressed wav data 16 bit in mono or stereo - stereo not allowed for multichannel data */ public FByteBulkData RawData; /** GUID used to uniquely identify this node so it can be found in the DDC */ @@ -53,6 +53,9 @@ namespace PakReader.Parsers.Class internal USoundWave(PackageReader reader, Stream ubulk, long ubulkOffset) : base(reader) { + // if UE4.25+ && Windows -> True + bStreaming = FModel.Globals.Game.Version >= EPakVersion.PATH_HASH_INDEX ? true : false; + bCooked = reader.ReadInt32() != 0; if (this.TryGetValue("bStreaming", out var v) && v is BoolProperty b) bStreaming = b.Value; diff --git a/FModel/Utils/Paks.cs b/FModel/Utils/Paks.cs index 3bd027da..78f97c5d 100644 --- a/FModel/Utils/Paks.cs +++ b/FModel/Utils/Paks.cs @@ -34,6 +34,7 @@ namespace FModel.Utils } DebugHelper.WriteLine("{0} {1} {2}", "[FModel]", "[LauncherInstalled.dat]", $"{game} not found"); + return (string.Empty, string.Empty, string.Empty); } } } @@ -93,9 +94,9 @@ namespace FModel.Utils DebugHelper.WriteLine("{0} {1} {2}", "[FModel]", "[launcher_settings.json]", install); var launcherSettings = JsonConvert.DeserializeObject(File.ReadAllText(install)); - if (launcherSettings.productLibraryDir != null) - if(!string.IsNullOrEmpty(launcherSettings.productLibraryDir)) - return $"{launcherSettings.productLibraryDir}\\dungeons\\dungeons\\Dungeons\\Content\\Paks"; + if (launcherSettings.productLibraryDir != null && !string.IsNullOrEmpty(launcherSettings.productLibraryDir)) + return $"{launcherSettings.productLibraryDir}\\dungeons\\dungeons\\Dungeons\\Content\\Paks"; + DebugHelper.WriteLine("{0} {1} {2}", "[FModel]", "[launcher_settings.json]", "Minecraft Dungeons not found"); } return string.Empty; diff --git a/README.md b/README.md index c440be42..f10e7477 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,22 @@ To use FModel, you need to have [.NET Core 3.1](https://dotnet.microsoft.com/dow 🔧 🐦 + + + Jackson
+ Jackson +

+ 🔧 + 🐦 + + + + GMatrixGames
+ GMatrixGames +

+ 🔧 + 🐦 + XTigerHyperX