#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: BlooberWwise

#include "Basic.hpp"

#include "BlooberWwise_structs.hpp"
#include "Engine_classes.hpp"
#include "AkAudio_classes.hpp"
#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "DeveloperSettings_classes.hpp"
#include "Niagara_classes.hpp"


namespace SDK
{

// Class BlooberWwise.AkComponentsPoolSubsystem
// 0x0038 (0x0078 - 0x0040)
class UAkComponentsPoolSubsystem final : public UTickableWorldSubsystem
{
public:
	TMulticastInlineDelegate<void(class UAkComponent* Component, class UObject* Acquirer)> OnTakenComponentsPoolAdded; // 0x0040(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	int32                                         InitPoolSizeValue;                                 // 0x0050(0x0004)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_54[0x4];                                       // 0x0054(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class UAkComponent*>                   AvailableComponentsPool;                           // 0x0058(0x0010)(ExportObject, ZeroConstructor, Transient, ContainsInstancedReference, Protected, NativeAccessSpecifierProtected)
	TArray<class UAkComponent*>                   TakenComponentsPool;                               // 0x0068(0x0010)(ExportObject, ZeroConstructor, Transient, ContainsInstancedReference, Protected, NativeAccessSpecifierProtected)

public:
	static void PostPooledAkEvent(class UObject* WorldContextObject, class USceneComponent* InComp, class FName InSocket, class UAkAudioEvent* AudioEvent);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("AkComponentsPoolSubsystem")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"AkComponentsPoolSubsystem")
	}
	static class UAkComponentsPoolSubsystem* GetDefaultObj()
	{
		return GetDefaultObjImpl<UAkComponentsPoolSubsystem>();
	}
};
DUMPER7_ASSERTS_UAkComponentsPoolSubsystem;

// Class BlooberWwise.BlooberAkComponent
// 0x0010 (0x0450 - 0x0440)
#pragma pack(push, 0x1)
class alignas(0x10) UBlooberAkComponent : public UAkComponent
{
public:
	uint8                                         Pad_440[0x8];                                      // 0x0440(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void EnableDynamicTick();
	int32 SimplePostAkEvent(class UAkAudioEvent* InEvent);
	int32 SimplePostAssociatedAkEvent();

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkComponent")
	}
	static class UBlooberAkComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UBlooberAkComponent>();
	}
};
#pragma pack(pop)
DUMPER7_ASSERTS_UBlooberAkComponent;

// Class BlooberWwise.AkFakeAttachmentComponent
// 0x0010 (0x0460 - 0x0450)
class UAkFakeAttachmentComponent final : public UBlooberAkComponent
{
public:
	uint8                                         Pad_448[0x18];                                     // 0x0448(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("AkFakeAttachmentComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"AkFakeAttachmentComponent")
	}
	static class UAkFakeAttachmentComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UAkFakeAttachmentComponent>();
	}
};
DUMPER7_ASSERTS_UAkFakeAttachmentComponent;

// Class BlooberWwise.BlooberAkPortalComponent
// 0x0000 (0x0440 - 0x0440)
class UBlooberAkPortalComponent : public UAkPortalComponent
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkPortalComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkPortalComponent")
	}
	static class UBlooberAkPortalComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UBlooberAkPortalComponent>();
	}
};
DUMPER7_ASSERTS_UBlooberAkPortalComponent;

// Class BlooberWwise.BlooberAkAcousticPortal
// 0x0000 (0x0310 - 0x0310)
class ABlooberAkAcousticPortal : public AAkAcousticPortal
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkAcousticPortal")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkAcousticPortal")
	}
	static class ABlooberAkAcousticPortal* GetDefaultObj()
	{
		return GetDefaultObjImpl<ABlooberAkAcousticPortal>();
	}
};
DUMPER7_ASSERTS_ABlooberAkAcousticPortal;

// Class BlooberWwise.BlooberAkAmbientSound
// 0x0000 (0x0308 - 0x0308)
class ABlooberAkAmbientSound : public AAkAmbientSound
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkAmbientSound")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkAmbientSound")
	}
	static class ABlooberAkAmbientSound* GetDefaultObj()
	{
		return GetDefaultObjImpl<ABlooberAkAmbientSound>();
	}
};
DUMPER7_ASSERTS_ABlooberAkAmbientSound;

// Class BlooberWwise.BlooberAkGameplayStatics
// 0x0000 (0x0028 - 0x0028)
class UBlooberAkGameplayStatics final : public UBlueprintFunctionLibrary
{
public:
	static void PostOnAkComponents(const class AActor* ActorToPostOn, class UAkAudioEvent* EventToPost, bool bOnlyOnPlayingComponents);
	static int32 SeekOnEvent(class UAkAudioEvent* AkEvent, class UAkComponent* in_pComponent, float in_fPercent, bool in_bSeekToNearestMarker, int32 InPlayingID);
	static bool ShouldCullSound(const class UObject* WorldContext, const struct FVector& SoundPosition, bool bCullInCinematicMode, float MaxRange);
	static bool ShouldCullSoundEvent(const class UObject* WorldContext, const struct FVector& SoundPosition, class UAkAudioEvent* InEvent, bool bCullInCinematicMode);
	static float SimpleGetRTPCValueGlobal(const class UAkRtpc* InRTPCValue);
	static void SimpleResetState(const class UAkStateValue* InSwitchValue);
	static void SimpleSetRTPCValueGlobal(const class UAkRtpc* InRTPCValue, float InValue);
	static void SimpleSetState(const class UAkStateValue* InSwitchValue);
	static void StopOnAkComponents(const class AActor* ActorToStopOn);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkGameplayStatics")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkGameplayStatics")
	}
	static class UBlooberAkGameplayStatics* GetDefaultObj()
	{
		return GetDefaultObjImpl<UBlooberAkGameplayStatics>();
	}
};
DUMPER7_ASSERTS_UBlooberAkGameplayStatics;

// Class BlooberWwise.BlooberAkLateReverbComponent
// 0x0000 (0x02C0 - 0x02C0)
class UBlooberAkLateReverbComponent : public UAkLateReverbComponent
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkLateReverbComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkLateReverbComponent")
	}
	static class UBlooberAkLateReverbComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UBlooberAkLateReverbComponent>();
	}
};
DUMPER7_ASSERTS_UBlooberAkLateReverbComponent;

// Class BlooberWwise.BlooberAkReverbVolume
// 0x0000 (0x0338 - 0x0338)
class ABlooberAkReverbVolume : public AAkReverbVolume
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkReverbVolume")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkReverbVolume")
	}
	static class ABlooberAkReverbVolume* GetDefaultObj()
	{
		return GetDefaultObjImpl<ABlooberAkReverbVolume>();
	}
};
DUMPER7_ASSERTS_ABlooberAkReverbVolume;

// Class BlooberWwise.BlooberAkRoomComponent
// 0x0000 (0x0300 - 0x0300)
class UBlooberAkRoomComponent : public UAkRoomComponent
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkRoomComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkRoomComponent")
	}
	static class UBlooberAkRoomComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UBlooberAkRoomComponent>();
	}
};
DUMPER7_ASSERTS_UBlooberAkRoomComponent;

// Class BlooberWwise.BlooberAkSpatialAudioVolume
// 0x0000 (0x0318 - 0x0318)
class ABlooberAkSpatialAudioVolume : public AAkSpatialAudioVolume
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkSpatialAudioVolume")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkSpatialAudioVolume")
	}
	static class ABlooberAkSpatialAudioVolume* GetDefaultObj()
	{
		return GetDefaultObjImpl<ABlooberAkSpatialAudioVolume>();
	}
};
DUMPER7_ASSERTS_ABlooberAkSpatialAudioVolume;

// Class BlooberWwise.BlooberAkSpotReflector
// 0x0000 (0x0300 - 0x0300)
class ABlooberAkSpotReflector : public AAkSpotReflector
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkSpotReflector")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkSpotReflector")
	}
	static class ABlooberAkSpotReflector* GetDefaultObj()
	{
		return GetDefaultObjImpl<ABlooberAkSpotReflector>();
	}
};
DUMPER7_ASSERTS_ABlooberAkSpotReflector;

// Class BlooberWwise.BlooberAkVisualizationActor
// 0x0010 (0x02D8 - 0x02C8)
class ABlooberAkVisualizationActor final : public AActor
{
public:
	class UBlooberAkVisualizationComponent*       VisComponent;                                      // 0x02C8(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UInstancedStaticMeshComponent*          InstComponent;                                     // 0x02D0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, EditConst, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkVisualizationActor")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkVisualizationActor")
	}
	static class ABlooberAkVisualizationActor* GetDefaultObj()
	{
		return GetDefaultObjImpl<ABlooberAkVisualizationActor>();
	}
};
DUMPER7_ASSERTS_ABlooberAkVisualizationActor;

// Class BlooberWwise.BlooberAkVisualizationComponent
// 0x01D0 (0x0400 - 0x0230)
class UBlooberAkVisualizationComponent final : public USceneComponent
{
public:
	uint8                                         Pad_230[0x1B8];                                    // 0x0230(0x01B8)(Fixing Size After Last Property [ Dumper-7 ])
	struct FVector2D                              DbgScreenPosition;                                 // 0x03E8(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_3F8[0x8];                                      // 0x03F8(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberAkVisualizationComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberAkVisualizationComponent")
	}
	static class UBlooberAkVisualizationComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UBlooberAkVisualizationComponent>();
	}
};
DUMPER7_ASSERTS_UBlooberAkVisualizationComponent;

// Class BlooberWwise.DynamicAkComponentInterface
// 0x0000 (0x0000 - 0x0000)
class IDynamicAkComponentInterface final
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("DynamicAkComponentInterface")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"DynamicAkComponentInterface")
	}
	static class IDynamicAkComponentInterface* GetDefaultObj()
	{
		return GetDefaultObjImpl<IDynamicAkComponentInterface>();
	}

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_IDynamicAkComponentInterface;

// Class BlooberWwise.ImpacterSettings
// 0x0110 (0x0148 - 0x0038)
class UImpacterSettings final : public UDeveloperSettings
{
public:
	struct FImpacterSoundConfig                   DefaultSoundConfig;                                // 0x0038(0x0070)(Edit, Config, NativeAccessSpecifierPublic)
	TMap<TSoftObjectPtr<class UPhysicalMaterial>, struct FImpacterSoundConfig> PhysicalMaterialMapping; // 0x00A8(0x0050)(Edit, Config, NativeAccessSpecifierPublic)
	TSoftObjectPtr<class UAkRtpc>                 MassRtpcValue;                                     // 0x00F8(0x0028)(Edit, Config, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TSoftObjectPtr<class UAkRtpc>                 VelocityRtpcValue;                                 // 0x0120(0x0028)(Edit, Config, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ImpacterSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ImpacterSettings")
	}
	static class UImpacterSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<UImpacterSettings>();
	}
};
DUMPER7_ASSERTS_UImpacterSettings;

// Class BlooberWwise.ImpacterSubsystem
// 0x0188 (0x01C8 - 0x0040)
class UImpacterSubsystem final : public UTickableWorldSubsystem
{
public:
	TMap<class UGeometryCollectionComponent*, struct FGeometryCollectionImpacterData> GeometryCollectionImpacterMap; // 0x0040(0x0050)(Transient, ContainsInstancedReference, NativeAccessSpecifierPrivate)
	TMap<class UPrimitiveComponent*, struct FPrimitiveImpacterData> PrimitiveImpacterMap;            // 0x0090(0x0050)(Transient, ContainsInstancedReference, NativeAccessSpecifierPrivate)
	TMap<class USkeletalMeshComponent*, struct FRagdollImpacterData> RagdollImpacterMap;             // 0x00E0(0x0050)(Transient, ContainsInstancedReference, NativeAccessSpecifierPrivate)
	class UAkRtpc*                                MassRtpcValue;                                     // 0x0130(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UAkRtpc*                                VelocityRtpcValue;                                 // 0x0138(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_140[0x88];                                     // 0x0140(0x0088)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void OnChaosCollision(const struct FChaosPhysicsCollisionInfo& CollisionInfo);
	void OnPrimitiveImpact(class UPrimitiveComponent* HitComponent, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, const struct FVector& NormalImpulse, const struct FHitResult& Hit);
	void OnRagdollImpact(class UPrimitiveComponent* HitComponent, class AActor* OtherActor, class UPrimitiveComponent* OtherComp, const struct FVector& NormalImpulse, const struct FHitResult& Hit);
	void RegisterGeometryCollectionImpacts(class UGeometryCollectionComponent* GeometryCollection);
	void RegisterGeometryCollectionImpactsWithConfig(class UGeometryCollectionComponent* GeometryCollection, const struct FImpacterSoundConfig& SoundConfig);
	void RegisterPrimitiveImpacts(class UPrimitiveComponent* PrimitiveComponent);
	void RegisterPrimitiveImpactsWithConfig(class UPrimitiveComponent* PrimitiveComponent, const struct FImpacterSoundConfig& SoundConfig);
	void RegisterRagdollImpactsWithConfig(class USkeletalMeshComponent* PrimitiveComponent, const struct FImpacterSoundConfig& SoundConfig);
	void UnregisterGeometryCollectionImpacts(class UGeometryCollectionComponent* GeometryCollection);
	void UnregisterPrimitiveImpacts(class UPrimitiveComponent* PrimitiveComponent);
	void UnregisterRagdollImpacts(class USkeletalMeshComponent* SkeletalMeshComponent);

	const struct FImpacterSoundConfig GetDefaultSoundConfig() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ImpacterSubsystem")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ImpacterSubsystem")
	}
	static class UImpacterSubsystem* GetDefaultObj()
	{
		return GetDefaultObjImpl<UImpacterSubsystem>();
	}
};
DUMPER7_ASSERTS_UImpacterSubsystem;

// Class BlooberWwise.BlooberNiagaraAkAudioPlayer
// 0x0028 (0x0060 - 0x0038)
class UBlooberNiagaraAkAudioPlayer final : public UNiagaraDataInterface
{
public:
	class UAkAudioEvent*                          SoundToPlay;                                       // 0x0038(0x0008)(Edit, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<class FString>                         StrParameterNames;                                 // 0x0040(0x0010)(Edit, ZeroConstructor, NativeAccessSpecifierPublic)
	bool                                          bLimitPlaysPerTick;                                // 0x0050(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_51[0x3];                                       // 0x0051(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	int32                                         MaxPlaysPerTick;                                   // 0x0054(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bStopWhenComponentIsDestroyed;                     // 0x0058(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bAllowLoopingOneShotSounds;                        // 0x0059(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_5A[0x6];                                       // 0x005A(0x0006)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("BlooberNiagaraAkAudioPlayer")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BlooberNiagaraAkAudioPlayer")
	}
	static class UBlooberNiagaraAkAudioPlayer* GetDefaultObj()
	{
		return GetDefaultObjImpl<UBlooberNiagaraAkAudioPlayer>();
	}
};
DUMPER7_ASSERTS_UBlooberNiagaraAkAudioPlayer;

}

