#pragma once

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

// Package: GameplayCameras

#include "Basic.hpp"

#include "Engine_structs.hpp"
#include "Engine_classes.hpp"
#include "GameplayCameras_structs.hpp"
#include "CoreUObject_structs.hpp"
#include "MovieSceneTracks_classes.hpp"


namespace SDK
{

// Class GameplayCameras.MatineeCameraShake
// 0x0140 (0x0230 - 0x00F0)
class UMatineeCameraShake : public UCameraShakeBase
{
public:
	float                                         OscillationDuration;                               // 0x00E8(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         OscillationBlendInTime;                            // 0x00EC(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         OscillationBlendOutTime;                           // 0x00F0(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FROscillator                           RotOscillation;                                    // 0x00F4(0x0024)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FVOscillator                           LocOscillation;                                    // 0x0118(0x0024)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FFOscillator                           FOVOscillation;                                    // 0x013C(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	float                                         AnimPlayRate;                                      // 0x0148(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         AnimScale;                                         // 0x014C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         AnimBlendInTime;                                   // 0x0150(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         AnimBlendOutTime;                                  // 0x0154(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         RandomAnimSegmentDuration;                         // 0x0158(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_15C[0x4];                                      // 0x015C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class UCameraAnim*                            Anim;                                              // 0x0160(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UCameraAnimationSequence*               AnimSequence;                                      // 0x0168(0x0008)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         bRandomAnimSegment : 1;                            // 0x0170(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (Edit, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         Pad_171[0x3];                                      // 0x0171(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         OscillatorTimeRemaining;                           // 0x0174(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UCameraAnimInst*                        AnimInst;                                          // 0x0178(0x0008)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_180[0x78];                                     // 0x0180(0x0078)(Fixing Size After Last Property [ Dumper-7 ])
	class USequenceCameraShakePattern*            SequenceShakePattern;                              // 0x01F8(0x0008)(ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, Protected, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_200[0x30];                                     // 0x0200(0x0030)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UMatineeCameraShake* StartMatineeCameraShake(class APlayerCameraManager* PlayerCameraManager, TSubclassOf<class UMatineeCameraShake> ShakeClass, float Scale, ECameraShakePlaySpace PlaySpace, const struct FRotator& UserPlaySpaceRot);
	static class UMatineeCameraShake* StartMatineeCameraShakeFromSource(class APlayerCameraManager* PlayerCameraManager, TSubclassOf<class UMatineeCameraShake> ShakeClass, class UCameraShakeSourceComponent* SourceComponent, float Scale, ECameraShakePlaySpace PlaySpace, const struct FRotator& UserPlaySpaceRot);

	void BlueprintUpdateCameraShake(float DeltaTime, float alpha, const struct FMinimalViewInfo& POV, struct FMinimalViewInfo* ModifiedPOV);
	void ReceivePlayShake(float Scale);
	void ReceiveStopShake(bool bImmediately);

	bool ReceiveIsFinished() const;

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

// Class GameplayCameras.CameraAnimationCameraModifier
// 0x0018 (0x0060 - 0x0048)
class UCameraAnimationCameraModifier final : public UCameraModifier
{
public:
	TArray<struct FActiveCameraAnimationInfo>     ActiveAnimations;                                  // 0x0048(0x0010)(ZeroConstructor, Protected, NativeAccessSpecifierProtected)
	uint16                                        InstanceSerialNumber;                              // 0x0058(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_5A[0x6];                                       // 0x005A(0x0006)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UCameraAnimationCameraModifier* GetCameraAnimationCameraModifier(const class UObject* WorldContextObject, int32 PlayerIndex);
	static class UCameraAnimationCameraModifier* GetCameraAnimationCameraModifierFromID(const class UObject* WorldContextObject, int32 ControllerId);
	static class UCameraAnimationCameraModifier* GetCameraAnimationCameraModifierFromPlayerController(const class APlayerController* PlayerController);

	struct FCameraAnimationHandle PlayCameraAnimation(class UCameraAnimationSequence* Sequence, const struct FCameraAnimationParams& Params_0);
	void StopAllCameraAnimations(bool bImmediate);
	void StopAllCameraAnimationsOf(class UCameraAnimationSequence* Sequence, bool bImmediate);
	void StopCameraAnimation(const struct FCameraAnimationHandle& Handle, bool bImmediate);

	bool IsCameraAnimationActive(const struct FCameraAnimationHandle& Handle) const;

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

// Class GameplayCameras.TestCameraShake
// 0x0000 (0x00F0 - 0x00F0)
class UTestCameraShake final : public UCameraShakeBase
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("TestCameraShake")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"TestCameraShake")
	}
	static class UTestCameraShake* GetDefaultObj()
	{
		return GetDefaultObjImpl<UTestCameraShake>();
	}
};
DUMPER7_ASSERTS_UTestCameraShake;

// Class GameplayCameras.SimpleCameraShakePattern
// 0x0010 (0x0038 - 0x0028)
class USimpleCameraShakePattern : public UCameraShakePattern
{
public:
	float                                         Duration;                                          // 0x0028(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         BlendInTime;                                       // 0x002C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         BlendOutTime;                                      // 0x0030(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_34[0x4];                                       // 0x0034(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class GameplayCameras.ConstantCameraShakePattern
// 0x0030 (0x0068 - 0x0038)
class UConstantCameraShakePattern final : public USimpleCameraShakePattern
{
public:
	struct FVector                                LocationOffset;                                    // 0x0038(0x0018)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FRotator                               RotationOffset;                                    // 0x0050(0x0018)(ZeroConstructor, IsPlainOldData, NoDestructor, NativeAccessSpecifierPublic)

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

// Class GameplayCameras.CompositeCameraShakePattern
// 0x0020 (0x0048 - 0x0028)
class UCompositeCameraShakePattern final : public UCameraShakePattern
{
public:
	TArray<class UCameraShakePattern*>            ChildPatterns;                                     // 0x0028(0x0010)(Edit, ExportObject, ZeroConstructor, ContainsInstancedReference, UObjectWrapper, NativeAccessSpecifierPublic)
	uint8                                         Pad_38[0x10];                                      // 0x0038(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class GameplayCameras.DefaultCameraShakeBase
// 0x0000 (0x00F0 - 0x00F0)
class UDefaultCameraShakeBase final : public UCameraShakeBase
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("DefaultCameraShakeBase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"DefaultCameraShakeBase")
	}
	static class UDefaultCameraShakeBase* GetDefaultObj()
	{
		return GetDefaultObjImpl<UDefaultCameraShakeBase>();
	}
};
DUMPER7_ASSERTS_UDefaultCameraShakeBase;

// Class GameplayCameras.MatineeCameraShakePattern
// 0x0000 (0x0028 - 0x0028)
class UMatineeCameraShakePattern final : public UCameraShakePattern
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("MatineeCameraShakePattern")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"MatineeCameraShakePattern")
	}
	static class UMatineeCameraShakePattern* GetDefaultObj()
	{
		return GetDefaultObjImpl<UMatineeCameraShakePattern>();
	}
};
DUMPER7_ASSERTS_UMatineeCameraShakePattern;

// Class GameplayCameras.MovieSceneMatineeCameraShakeEvaluator
// 0x0000 (0x0028 - 0x0028)
class UMovieSceneMatineeCameraShakeEvaluator final : public UMovieSceneCameraShakeEvaluator
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("MovieSceneMatineeCameraShakeEvaluator")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"MovieSceneMatineeCameraShakeEvaluator")
	}
	static class UMovieSceneMatineeCameraShakeEvaluator* GetDefaultObj()
	{
		return GetDefaultObjImpl<UMovieSceneMatineeCameraShakeEvaluator>();
	}
};
DUMPER7_ASSERTS_UMovieSceneMatineeCameraShakeEvaluator;

// Class GameplayCameras.MatineeCameraShakeFunctionLibrary
// 0x0000 (0x0028 - 0x0028)
class UMatineeCameraShakeFunctionLibrary final : public UBlueprintFunctionLibrary
{
public:
	static class UMatineeCameraShake* Conv_MatineeCameraShake(class UCameraShakeBase* CameraShake);

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

// Class GameplayCameras.PerlinNoiseCameraShakePattern
// 0x0080 (0x00B8 - 0x0038)
class UPerlinNoiseCameraShakePattern final : public USimpleCameraShakePattern
{
public:
	float                                         LocationAmplitudeMultiplier;                       // 0x0038(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         LocationFrequencyMultiplier;                       // 0x003C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     X;                                                 // 0x0040(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     Y;                                                 // 0x0048(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     Z;                                                 // 0x0050(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	float                                         RotationAmplitudeMultiplier;                       // 0x0058(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         RotationFrequencyMultiplier;                       // 0x005C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     Pitch;                                             // 0x0060(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     Yaw;                                               // 0x0068(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     Roll;                                              // 0x0070(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     FOV;                                               // 0x0078(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_80[0x38];                                      // 0x0080(0x0038)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class GameplayCameras.WaveOscillatorCameraShakePattern
// 0x00A0 (0x00D8 - 0x0038)
class UWaveOscillatorCameraShakePattern final : public USimpleCameraShakePattern
{
public:
	float                                         LocationAmplitudeMultiplier;                       // 0x0038(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         LocationFrequencyMultiplier;                       // 0x003C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        X;                                                 // 0x0040(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        Y;                                                 // 0x004C(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        Z;                                                 // 0x0058(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	float                                         RotationAmplitudeMultiplier;                       // 0x0064(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         RotationFrequencyMultiplier;                       // 0x0068(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        Pitch;                                             // 0x006C(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        Yaw;                                               // 0x0078(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        Roll;                                              // 0x0084(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        FOV;                                               // 0x0090(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_9C[0x3C];                                      // 0x009C(0x003C)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

}

