public override void Deserialize(FAssetArchive Ar, long validPos) { base.Deserialize(Ar, validPos); bStreaming = Ar.Game >= EGame.GAME_UE4_25; if (TryGetValue(out bool s, nameof(bStreaming))) // will return false if not found { bStreaming = s; } else if (TryGetValue(out FName loadingBehavior, "LoadingBehavior")) { bStreaming = !loadingBehavior.IsNone && loadingBehavior.Text != "ESoundWaveLoadingBehavior::ForceInline"; } bCooked = Ar.ReadBoolean(); if (!bStreaming) { if (bCooked) { CompressedFormatData = new FFormatContainer(Ar); } else { RawData = new FByteBulkData(Ar); } CompressedDataGuid = Ar.Read <FGuid>(); } else { CompressedDataGuid = Ar.Read <FGuid>(); RunningPlatformData = new FStreamedAudioPlatformData(Ar); } }
public override void Deserialize(FAssetArchive Ar, long validPos) { base.Deserialize(Ar, validPos); bStreaming = Ar.Game >= EGame.GAME_UE4_25 && Ar.Game != EGame.GAME_GTATheTrilogyDefinitiveEdition && Ar.Game != EGame.GAME_ReadyOrNot; if (TryGetValue(out bool s, nameof(bStreaming))) // will return false if not found { bStreaming = s; } else if (TryGetValue(out FName loadingBehavior, "LoadingBehavior")) { bStreaming = !loadingBehavior.IsNone && loadingBehavior.Text != "ESoundWaveLoadingBehavior::ForceInline"; } bCooked = Ar.ReadBoolean(); if (Ar.Ver >= EUnrealEngineObjectUE4Version.SOUND_COMPRESSION_TYPE_ADDED && FFrameworkObjectVersion.Get(Ar) < FFrameworkObjectVersion.Type.RemoveSoundWaveCompressionName) { Ar.ReadFName(); // DummyCompressionName } if (!bStreaming) { if (bCooked) { CompressedFormatData = new FFormatContainer(Ar); } else { RawData = new FByteBulkData(Ar); } CompressedDataGuid = Ar.Read <FGuid>(); } else { CompressedDataGuid = Ar.Read <FGuid>(); RunningPlatformData = new FStreamedAudioPlatformData(Ar); } }