diff --git a/FModel/Creator/Bases/BaseBundle.cs b/FModel/Creator/Bases/BaseBundle.cs index c39b5a93..b6d49b61 100644 --- a/FModel/Creator/Bases/BaseBundle.cs +++ b/FModel/Creator/Bases/BaseBundle.cs @@ -79,9 +79,8 @@ namespace FModel.Creator.Bases re.TryGetValue("ItemDefinition", out var d) && d is SoftObjectProperty itemDefinition) { if (!itemDefinition.Value.AssetPathName.IsNone && - !itemDefinition.Value.AssetPathName.String.StartsWith("/Game/Items/Tokens/") && - !itemDefinition.Value.AssetPathName.String.StartsWith("/Game/Athena/Items/Quests") && - !itemDefinition.Value.AssetPathName.String.StartsWith("/BattlepassS15/Items/Tokens/")) + !itemDefinition.Value.AssetPathName.String.Contains("/Items/Tokens/") && + !itemDefinition.Value.AssetPathName.String.Contains("/Items/Quests")) { CompletionRewards.Add(new CompletionReward(completionCount, quantity, itemDefinition)); } diff --git a/FModel/Creator/Bases/BaseSeason.cs b/FModel/Creator/Bases/BaseSeason.cs index 3dc9d8d6..3768f6cb 100644 --- a/FModel/Creator/Bases/BaseSeason.cs +++ b/FModel/Creator/Bases/BaseSeason.cs @@ -64,8 +64,7 @@ namespace FModel.Creator.Bases { if (reward.Value is UObject o && o.GetExport("ItemDefinition") is SoftObjectProperty itemDefinition && - !itemDefinition.Value.AssetPathName.String.StartsWith("/Game/Items/Tokens/") && - !itemDefinition.Value.AssetPathName.String.StartsWith("/BattlepassS15/Items/Tokens/") && + !itemDefinition.Value.AssetPathName.String.Contains("/Items/Tokens/") && o.GetExport("Quantity") is IntProperty quantity) { BookXpSchedule[i].Add(new Reward(quantity, itemDefinition.Value)); @@ -87,7 +86,6 @@ namespace FModel.Creator.Bases { if (reward.Value is UObject o && o.GetExport("ItemDefinition") is SoftObjectProperty itemDefinition && - //!itemDefinition.Value.AssetPathName.String.StartsWith("/Game/Items/Tokens/") && o.GetExport("Quantity") is IntProperty quantity) { BookXpSchedule[i].Add(new Reward(quantity, itemDefinition.Value)); diff --git a/FModel/Creator/Bundles/HeaderStyle.cs b/FModel/Creator/Bundles/HeaderStyle.cs index c7adf174..8d7c50f9 100644 --- a/FModel/Creator/Bundles/HeaderStyle.cs +++ b/FModel/Creator/Bundles/HeaderStyle.cs @@ -96,6 +96,7 @@ namespace FModel.Creator.Bundles break; } } + if (char.IsDigit(text[text.Length - 1])) { int s = text.Count(k => Char.IsDigit(k)); diff --git a/FModel/PakReader/Parsers/Class/USoundWave.cs b/FModel/PakReader/Parsers/Class/USoundWave.cs index ae9ee53c..1c093d58 100644 --- a/FModel/PakReader/Parsers/Class/USoundWave.cs +++ b/FModel/PakReader/Parsers/Class/USoundWave.cs @@ -63,12 +63,11 @@ namespace FModel.PakReader.Parsers.Class private void Serialize(PackageReader reader, Stream ubulk, long ubulkOffset) { - // if UE4.25+ && Windows -> True - bStreaming = FModel.Globals.Game.Version >= EPakVersion.PATH_HASH_INDEX; - bCooked = reader.ReadInt32() != 0; if (this.TryGetValue("bStreaming", out var v) && v is BoolProperty b) bStreaming = b.Value; + else if (this.TryGetValue("LoadingBehavior", out var e) && e is EnumProperty loadingBehavior) + bStreaming = !loadingBehavior.Value.IsNone && loadingBehavior.Value.String != "ESoundWaveLoadingBehavior::ForceInline"; if (!bStreaming) { diff --git a/FModel/PakReader/Parsers/Objects/FStreamedAudioChunk.cs b/FModel/PakReader/Parsers/Objects/FStreamedAudioChunk.cs index 572c8bfe..9b1dbf65 100644 --- a/FModel/PakReader/Parsers/Objects/FStreamedAudioChunk.cs +++ b/FModel/PakReader/Parsers/Objects/FStreamedAudioChunk.cs @@ -22,7 +22,6 @@ namespace FModel.PakReader.Parsers.Objects } else { - reader.Position -= 4; throw new FileLoadException("StreamedAudioChunk must be cooked"); } } diff --git a/FModel/Utils/Assets.cs b/FModel/Utils/Assets.cs index 147908bb..ab2a75a5 100644 --- a/FModel/Utils/Assets.cs +++ b/FModel/Utils/Assets.cs @@ -251,7 +251,7 @@ namespace FModel.Utils // Sound var s = p.GetExport(); - if (s != null && (s.AudioFormat.String.Equals("OGG") || s.AudioFormat.String.Equals("OGG10000-1-1-1-1-1") || s.AudioFormat.String.Equals("OGG10025600-1-1-1-1-1"))) + if (s != null && s.AudioFormat.String.Contains("OGG")) { string path = Properties.Settings.Default.OutputPath + "\\Sounds\\" + mount + entry.GetPathWithoutExtension() + ".ogg"; Directory.CreateDirectory(Path.GetDirectoryName(path));