#pragma once

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

// Package: EngineCameras

#include "Basic.hpp"

#include "EngineCameras_structs.hpp"
#include "Engine_structs.hpp"
#include "Engine_classes.hpp"
#include "CoreUObject_structs.hpp"


namespace SDK
{

// Class EngineCameras.LegacyCameraShake
// 0x0110 (0x01F0 - 0x00E0)
class ULegacyCameraShake : public UCameraShakeBase
{
public:
	float                                         OscillationDuration;                               // 0x00D8(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         OscillationBlendInTime;                            // 0x00DC(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         OscillationBlendOutTime;                           // 0x00E0(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FROscillator                           RotOscillation;                                    // 0x00E4(0x0024)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FVOscillator                           LocOscillation;                                    // 0x0108(0x0024)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FFOscillator                           FOVOscillation;                                    // 0x012C(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	float                                         AnimPlayRate;                                      // 0x0138(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         AnimScale;                                         // 0x013C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         AnimBlendInTime;                                   // 0x0140(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         AnimBlendOutTime;                                  // 0x0144(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         RandomAnimSegmentDuration;                         // 0x0148(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_14C[0x4];                                      // 0x014C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class UCameraAnimationSequence*               AnimSequence;                                      // 0x0150(0x0008)(Edit, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         bRandomAnimSegment : 1;                            // 0x0158(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (Edit, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
	uint8                                         Pad_159[0x3];                                      // 0x0159(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         OscillatorTimeRemaining;                           // 0x015C(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_160[0x78];                                     // 0x0160(0x0078)(Fixing Size After Last Property [ Dumper-7 ])
	class USequenceCameraShakePattern*            SequenceShakePattern;                              // 0x01D8(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, Protected, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_1E0[0x10];                                     // 0x01E0(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class ULegacyCameraShake* StartLegacyCameraShake(class APlayerCameraManager* PlayerCameraManager, TSubclassOf<class ULegacyCameraShake> ShakeClass, float Scale, ECameraShakePlaySpace PlaySpace, const struct FRotator& UserPlaySpaceRot);
	static class ULegacyCameraShake* StartLegacyCameraShakeFromSource(class APlayerCameraManager* PlayerCameraManager, TSubclassOf<class ULegacyCameraShake> 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("LegacyCameraShake")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LegacyCameraShake")
	}
	static class ULegacyCameraShake* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULegacyCameraShake>();
	}
};
DUMPER7_ASSERTS_ULegacyCameraShake;

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

// Class EngineCameras.LegacyCameraShakeFunctionLibrary
// 0x0000 (0x0028 - 0x0028)
class ULegacyCameraShakeFunctionLibrary final : public UBlueprintFunctionLibrary
{
public:
	static class ULegacyCameraShake* Conv_LegacyCameraShake(class UCameraShakeBase* CameraShake);

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

// Class EngineCameras.CameraAnimationCameraModifier
// 0x0018 (0x0060 - 0x0048)
class UCameraAnimationCameraModifier final : public UCameraModifier
{
public:
	TArray<struct FActiveCameraAnimationInfo>     ActiveAnimations;                                  // 0x0048(0x0010)(ZeroConstructor, Protected, NativeAccessSpecifierProtected)
	uint16                                        NextInstanceSerialNumber;                          // 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 EngineCameras.EngineCameraAnimationFunctionLibrary
// 0x0000 (0x0028 - 0x0028)
class UEngineCameraAnimationFunctionLibrary final : public UBlueprintFunctionLibrary
{
public:
	static class UCameraAnimationCameraModifier* Conv_CameraAnimationCameraModifier(class APlayerCameraManager* PlayerCameraManager);
	static ECameraAnimationPlaySpace Conv_CameraAnimationPlaySpace(ECameraShakePlaySpace CameraShakePlaySpace);
	static ECameraShakePlaySpace Conv_CameraShakePlaySpace(ECameraAnimationPlaySpace CameraAnimationPlaySpace);

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

// Class EngineCameras.EngineCamerasSubsystem
// 0x0000 (0x0030 - 0x0030)
class UEngineCamerasSubsystem final : public UWorldSubsystem
{
public:
	struct FCameraAnimationHandle PlayCameraAnimation(class APlayerController* PlayerController, class UCameraAnimationSequence* Sequence, const struct FCameraAnimationParams& Params_0);
	void StopAllCameraAnimations(class APlayerController* PlayerController, bool bImmediate);
	void StopAllCameraAnimationsOf(class APlayerController* PlayerController, class UCameraAnimationSequence* Sequence, bool bImmediate);
	void StopCameraAnimation(class APlayerController* PlayerController, const struct FCameraAnimationHandle& Handle, bool bImmediate);

	bool IsCameraAnimationActive(class APlayerController* PlayerController, const struct FCameraAnimationHandle& Handle) const;

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

// Class EngineCameras.CompositeCameraShakePattern
// 0x0010 (0x0038 - 0x0028)
class UCompositeCameraShakePattern final : public UCameraShakePattern
{
public:
	TArray<class UCameraShakePattern*>            ChildPatterns;                                     // 0x0028(0x0010)(Edit, ExportObject, ZeroConstructor, ContainsInstancedReference, UObjectWrapper, NativeAccessSpecifierPublic)

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 EngineCameras.DefaultCameraShakeBase
// 0x0000 (0x00E0 - 0x00E0)
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 EngineCameras.SimpleCameraShakePattern
// 0x0030 (0x0058 - 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[0x24];                                      // 0x0034(0x0024)(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 EngineCameras.PerlinNoiseCameraShakePattern
// 0x0080 (0x00D8 - 0x0058)
class UPerlinNoiseCameraShakePattern final : public USimpleCameraShakePattern
{
public:
	float                                         LocationAmplitudeMultiplier;                       // 0x0058(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         LocationFrequencyMultiplier;                       // 0x005C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     X;                                                 // 0x0060(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     Y;                                                 // 0x0068(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     Z;                                                 // 0x0070(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	float                                         RotationAmplitudeMultiplier;                       // 0x0078(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         RotationFrequencyMultiplier;                       // 0x007C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     pitch;                                             // 0x0080(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     Yaw;                                               // 0x0088(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     Roll;                                              // 0x0090(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FPerlinNoiseShaker                     FOV;                                               // 0x0098(0x0008)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_A0[0x38];                                      // 0x00A0(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 EngineCameras.WaveOscillatorCameraShakePattern
// 0x00A0 (0x00F8 - 0x0058)
class UWaveOscillatorCameraShakePattern final : public USimpleCameraShakePattern
{
public:
	float                                         LocationAmplitudeMultiplier;                       // 0x0058(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         LocationFrequencyMultiplier;                       // 0x005C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        X;                                                 // 0x0060(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        Y;                                                 // 0x006C(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        Z;                                                 // 0x0078(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	float                                         RotationAmplitudeMultiplier;                       // 0x0084(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	float                                         RotationFrequencyMultiplier;                       // 0x0088(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        pitch;                                             // 0x008C(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        Yaw;                                               // 0x0098(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        Roll;                                              // 0x00A4(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	struct FWaveOscillator                        FOV;                                               // 0x00B0(0x000C)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_BC[0x3C];                                      // 0x00BC(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;

// Class EngineCameras.TestCameraShake
// 0x0000 (0x00E0 - 0x00E0)
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 EngineCameras.ConstantCameraShakePattern
// 0x0030 (0x0088 - 0x0058)
class UConstantCameraShakePattern final : public USimpleCameraShakePattern
{
public:
	struct FVector                                LocationOffset;                                    // 0x0058(0x0018)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FRotator                               RotationOffset;                                    // 0x0070(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;

}

