From e0eb3d8acfe0224dcf2c0c052234244d031517a3 Mon Sep 17 00:00:00 2001 From: alex4401 Date: Sun, 3 Nov 2019 02:22:32 +0100 Subject: [PATCH] Add adjustments for ARK's streamed SoundWaves --- Unreal/UnSound.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Unreal/UnSound.h b/Unreal/UnSound.h index 23d37df7..5398c8ea 100644 --- a/Unreal/UnSound.h +++ b/Unreal/UnSound.h @@ -143,6 +143,9 @@ class USoundWave : public UObject // actual parent is USoundBase DECLARE_CLASS(USoundWave, UObject); public: bool bStreaming; +#if ARK + bool bReallyUseStreamingReserved; +#endif FByteBulkData RawData; FGuid CompressedDataGuid; TArray CompressedFormatData; // FFormatContainer in UE4 @@ -155,12 +158,18 @@ class USoundWave : public UObject // actual parent is USoundBase USoundWave() : bStreaming(false) + #if ARK + , bReallyUseStreamingReserved(false) + #endif {} BEGIN_PROP_TABLE PROP_INT(NumChannels) PROP_INT(SampleRate) PROP_BOOL(bStreaming) +#if ARK + PROP_BOOL(bReallyUseStreamingReserved) // equivalent of bStreaming in ARK +#endif PROP_DROP(bHasVirtualizeWhenSilent) PROP_DROP(bVirtualizeWhenSilent) PROP_DROP(Duration) @@ -173,6 +182,13 @@ class USoundWave : public UObject // actual parent is USoundBase Super::Serialize(Ar); +#if ARK + if (Ar.Game == GAME_Ark) + { + bStreaming = bReallyUseStreamingReserved; + } +#endif + bool bCooked; Ar << bCooked; @@ -200,6 +216,14 @@ class USoundWave : public UObject // actual parent is USoundBase if (bStreaming) { +#if ARK + if (Ar.Game == GAME_Ark) + { + // another bCooked. this one is relevant for streaming. + // if negative, there's no data after it, but that won't happen with client assets. + Ar << bCooked; + } +#endif int32 NumChunks; FName AudioFormat; Ar << NumChunks << StreamedFormat;