#pragma once

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

// Package: AdvancedThirdPersonCamera

#include "Basic.hpp"

#include "AdvancedThirdPersonCamera_structs.hpp"
#include "Engine_classes.hpp"
#include "CoreUObject_classes.hpp"
#include "GameplayTags_structs.hpp"


namespace SDK
{

// Class AdvancedThirdPersonCamera.ATPCArrowDebugActor
// 0x0018 (0x02A8 - 0x0290)
class AATPCArrowDebugActor final : public AActor
{
public:
	class USceneComponent*                        SceneRootComponent;                                // 0x0290(0x0008)(Edit, BlueprintVisible, ExportObject, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class UArrowComponent*                        ArrowComponent;                                    // 0x0298(0x0008)(Edit, BlueprintVisible, ExportObject, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2A0[0x8];                                      // 0x02A0(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void PickActor(class AActor* Actor);

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

// Class AdvancedThirdPersonCamera.ATPCCameraBaseObject
// 0x0008 (0x0030 - 0x0028)
class UATPCCameraBaseObject : public UObject
{
public:
	class UATPCCameraComponent*                   OwningCamera;                                      // 0x0028(0x0008)(ExportObject, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

public:
	void K2_OnEnterCameraMode(bool bWithInterpolation);
	void K2_OnExitCameraMode();
	void K2_Tick(float DeltaSeconds);
	void K2_Validate(bool bWithInterpolation);
	void Validate(bool bWithInterpolation);

	class AActor* GetOwningActor() const;
	class UATPCCameraComponent* GetOwningCamera() const;
	class APawn* GetOwningPawn() const;
	class APlayerCameraManager* GetPlayerCameraManager() const;
	class APlayerController* GetPlayerController() const;

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

// Class AdvancedThirdPersonCamera.ATPCCameraComponent
// 0x04E0 (0x0710 - 0x0230)
class UATPCCameraComponent final : public USceneComponent
{
public:
	TMulticastInlineDelegate<void()>              OnCameraModeChangedDelegate;                       // 0x0230(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(bool IsUsing)>  OnUseCineCameraDeletage;                           // 0x0240(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	struct FATPCCameraDebugRules                  DebugRules;                                        // 0x0250(0x0007)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_257[0x1];                                      // 0x0257(0x0001)(Fixing Size After Last Property [ Dumper-7 ])
	struct FGameplayTag                           DefaultCameraModeTag;                              // 0x0258(0x0008)(Edit, BlueprintVisible, BlueprintReadOnly, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TArray<class UATPCCameraModeDataAsset*>       CameraModesAssets;                                 // 0x0260(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Protected, NativeAccessSpecifierProtected)
	TMap<struct FGameplayTag, class UATPCCameraModeDataAsset*> SortedCameraModes;                    // 0x0270(0x0050)(Protected, NativeAccessSpecifierProtected)
	class UATPCCameraModeDataAsset*               CustomCameraMode;                                  // 0x02C0(0x0008)(ZeroConstructor, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_2C8[0x8];                                      // 0x02C8(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	TSubclassOf<class UATPCCameraLocationObject>  LocationObjectClass;                               // 0x02D0(0x0008)(Edit, ZeroConstructor, NoClear, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSubclassOf<class UATPCCameraFOVObject>       FOVObjectClass;                                    // 0x02D8(0x0008)(Edit, ZeroConstructor, NoClear, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSubclassOf<class UATPCCameraFadingObject>    FadingObjectClass;                                 // 0x02E0(0x0008)(Edit, ZeroConstructor, NoClear, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSubclassOf<class UATPCCameraFollowTerrainObject> FollowTerrainObjectClass;                      // 0x02E8(0x0008)(Edit, ZeroConstructor, NoClear, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSubclassOf<class UATPCCameraShakesObject>    CameraShakesObjectClass;                           // 0x02F0(0x0008)(Edit, ZeroConstructor, NoClear, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSubclassOf<class UATPCCameraLockOnTargetObject> LockOnTargetObjectClass;                        // 0x02F8(0x0008)(Edit, ZeroConstructor, NoClear, NoDestructor, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UATPCCameraLocationObject*              LocationObject;                                    // 0x0300(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UATPCCameraFOVObject*                   FOVObject;                                         // 0x0308(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UATPCCameraFadingObject*                FadingObject;                                      // 0x0310(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UATPCCameraFollowTerrainObject*         FollowTerrainObject;                               // 0x0318(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UATPCCameraShakesObject*                CameraShakesObject;                                // 0x0320(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	class UATPCCameraLockOnTargetObject*          LockOnTargetObject;                                // 0x0328(0x0008)(ZeroConstructor, Transient, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TArray<class UATPCCameraBaseObject*>          CameraObjList;                                     // 0x0330(0x0010)(ZeroConstructor, Transient, Protected, NativeAccessSpecifierProtected)
	uint8                                         Pad_340[0x8];                                      // 0x0340(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class UATPCCameraModeDataAsset*               EmptyCameraMode;                                   // 0x0348(0x0008)(ZeroConstructor, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	struct FATPCCameraMode                        CameraModeDEV;                                     // 0x0350(0x03B8)(NativeAccessSpecifierPrivate)
	uint8                                         Pad_708[0x8];                                      // 0x0708(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void AddCameraMode(class UATPCCameraModeDataAsset* CameraMode);
	void ClearAllCameraModes();
	class UATPCCameraModeDataAsset* GetCameraMode(const struct FGameplayTag& CameraModeName);
	class UATPCCameraModeDataAsset* GetCurrentCameraMode();
	void RemoveCameraMode(const struct FGameplayTag& CameraModeName);
	void ResetCustomCameraMode(bool bWithInterpolation);
	void SetCameraDistance(float NewDistance, bool bInterpolate);
	void SetCameraMode(const struct FGameplayTag& CameraModeTag, bool bWithInterpolation, bool bForceSet);
	void SetCustomCameraMode(class UATPCCameraModeDataAsset* CameraMode, bool bWithInterpolation);
	void ValidateComponents(bool bWithInterpolation);
	void ZoomIn();
	void ZoomOut();

	bool CanSetCameraMode(const struct FGameplayTag& CameraModeTag) const;
	class AATPCCameraVolume* FindOverlapCameraVolume() const;
	float GetCameraDistance() const;
	class UATPCCameraFadingObject* GetCameraFadingObject() const;
	class UATPCCameraFollowTerrainObject* GetCameraFollowTerrainObject() const;
	class UATPCCameraFOVObject* GetCameraFOVObject() const;
	struct FVector GetCameraLocation() const;
	class UATPCCameraLocationObject* GetCameraLocationObject() const;
	class UATPCCameraLockOnTargetObject* GetCameraLockOnTargetObject() const;
	struct FGameplayTag GetCameraModeTagFromOverlapCameraVolume() const;
	struct FRotator GetCameraRotation() const;
	class UATPCCameraShakesObject* GetCameraShakesObject() const;
	struct FGameplayTag GetCurrentCameraModeTag() const;
	struct FGameplayTag GetDesiredCameraModeTag() const;
	struct FGameplayTag GetInitialCameraModeTag() const;
	class ACharacter* GetOwningCharacter() const;
	class USkeletalMeshComponent* GetOwningMesh() const;
	class APawn* GetOwningPawn() const;
	class APlayerCameraManager* GetPlayerCameraManager() const;
	class APlayerController* GetPlayerController() const;
	bool HasCameraMode(const struct FGameplayTag& CameraModeName) const;
	bool IsCineCameraActive() const;
	bool IsSetCustomCameraMode() const;

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

// Class AdvancedThirdPersonCamera.ATPCCameraFadingObject
// 0x00B0 (0x00E0 - 0x0030)
class UATPCCameraFadingObject final : public UATPCCameraBaseObject
{
public:
	uint8                                         Pad_30[0xB0];                                      // 0x0030(0x00B0)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void AddIgnoredActor(class AActor* Actor);
	void AddManualFadeActor(class AActor* Actor, bool bWithCustomTime, float CustomFadeOutTime);
	void ClearIgnoredActors();
	void ClearManualFadeActors();
	void RemoveIgnoredActor(class AActor* Actor);
	void RemoveManualFadeActor(class AActor* Actor);

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

// Class AdvancedThirdPersonCamera.ATPCCameraFollowTerrainObject
// 0x0060 (0x0090 - 0x0030)
class UATPCCameraFollowTerrainObject final : public UATPCCameraBaseObject
{
public:
	uint8                                         Pad_30[0x60];                                      // 0x0030(0x0060)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class AdvancedThirdPersonCamera.ATPCCameraFOVObject
// 0x0008 (0x0038 - 0x0030)
class UATPCCameraFOVObject final : public UATPCCameraBaseObject
{
public:
	uint8                                         Pad_30[0x8];                                       // 0x0030(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void SetCustomFOVModifier(float InValue);

	float GetCurrentFOV() const;
	float GetTargetFOV() const;

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

// Class AdvancedThirdPersonCamera.ATPCCameraLocationObject
// 0x04C0 (0x04F0 - 0x0030)
class UATPCCameraLocationObject final : public UATPCCameraBaseObject
{
public:
	uint8                                         Pad_30[0x4C0];                                     // 0x0030(0x04C0)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void ApplyAssignedRotation(const struct FRotator& InRotator, bool InAutoClear, bool InResetSpeed, bool InApplyPitch, bool InApplyYaw, bool InApplyRoll);
	void AttachCameraToComponent(class USceneComponent* ParentComponent, const struct FVector& RelativeLocation, class FName SocketName, bool bWithInterp, float InterpSpeed);
	void ClearAssignedRotation();
	float GetProbeSize();
	bool IsOverlapingPlayerMesh();
	void ResetOverrideCameraRotation();
	void SetCameraDistance(float NewDist, bool bInterpolate);
	void SetOverrideCameraRotation(const struct FRotator& NewOverrideRotation, bool bClampByCameraModeRotationLimits);
	void SetViewRotation(const struct FRotator& Rotation);
	void Tick(float DeltaSeconds);

	struct FVector GetAllSocketOffsets() const;
	float GetCameraDistance() const;
	struct FVector GetCameraLocation() const;
	struct FRotator GetCameraRotation() const;
	float GetCameraTargetDistance() const;
	struct FRotator GetDesiredRotation() const;
	struct FVector GetLocationFromSwitchToATPCamera() const;
	const struct FRotator GetOverrideCameraRotation() const;
	float GetRealCameraDistance() const;
	struct FRotator GetRotationFromSwitchToATPCamera() const;
	struct FVector GetSocketOffset() const;
	struct FVector GetTargetOffset() const;
	struct FRotator GetTargetRotation() const;
	struct FRotator GetViewRotation() const;
	bool IsOverrideCameraRotation() const;

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

// Class AdvancedThirdPersonCamera.ATPCCameraLockOnTargetObject
// 0x0080 (0x00B0 - 0x0030)
class UATPCCameraLockOnTargetObject final : public UATPCCameraBaseObject
{
public:
	TMulticastInlineDelegate<void(class AActor* NewTarget, EATPCChangeTargetReason ChangeTargetReason)> OnTargetChangeDelegate; // 0x0030(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_40[0x48];                                      // 0x0040(0x0048)(Fixing Size After Last Property [ Dumper-7 ])
	class AATPCArrowDebugActor*                   TargetDebugActor;                                  // 0x0088(0x0008)(ZeroConstructor, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_90[0x20];                                      // 0x0090(0x0020)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	class UATPCLockOnTargetLocationComponent* ChangeLockOnTargetLocation(float InputX, float InputY, bool CheckAngle);
	class UATPCLockOnTargetLocationComponent* FindNearestLockOnTargetLocation(bool InByNearestDistance);
	bool SetTargetActor(class AActor* NewTargetActor, class UATPCLockOnTargetLocationComponent* InLocationComponent);

	class AActor* GetTargetActor() const;

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

// Class AdvancedThirdPersonCamera.ATPCCameraModeDataAsset
// 0x03D0 (0x0400 - 0x0030)
class UATPCCameraModeDataAsset final : public UDataAsset
{
public:
	struct FGameplayTag                           CameraModeTag;                                     // 0x0030(0x0008)(Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FATPCCameraMode                        CameraModeSettings;                                // 0x0038(0x03B8)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
	TArray<class UATPCCameraModeScript*>          CameraModeScripts;                                 // 0x03F0(0x0010)(Edit, BlueprintVisible, ExportObject, ZeroConstructor, ContainsInstancedReference, NativeAccessSpecifierPublic)

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

// Class AdvancedThirdPersonCamera.ATPCCameraModeScript
// 0x0018 (0x0040 - 0x0028)
class UATPCCameraModeScript : public UObject
{
public:
	class UATPCCameraComponent*                   OwningCamera;                                      // 0x0028(0x0008)(BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, InstancedReference, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          bEnableTick;                                       // 0x0030(0x0001)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_31[0x3];                                       // 0x0031(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	EATPCCameraModeScriptTickGroup                TickGroup;                                         // 0x0034(0x0004)(Edit, ZeroConstructor, DisableEditOnInstance, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_38[0x8];                                       // 0x0038(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void K2_OnEnterCameraMode(class UATPCCameraComponent* Camera);
	void K2_OnExitCameraMode(class UATPCCameraComponent* Camera);
	void K2_Tick(class UATPCCameraComponent* Camera, float DeltaSeconds);

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

// Class AdvancedThirdPersonCamera.ATPCCameraModeScript_ChangeMovementSpeed
// 0x0010 (0x0050 - 0x0040)
class UATPCCameraModeScript_ChangeMovementSpeed final : public UATPCCameraModeScript
{
public:
	float                                         NewMaxMovementSpeed;                               // 0x0040(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bRestoreOldMovementSpeedOnExitCameraMode;          // 0x0044(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_45[0x3];                                       // 0x0045(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
	float                                         OldMaxMovementSpeed;                               // 0x0048(0x0004)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_4C[0x4];                                       // 0x004C(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class AdvancedThirdPersonCamera.ATPCCameraModeScript_PawnUseControllerRotation
// 0x0008 (0x0048 - 0x0040)
class UATPCCameraModeScript_PawnUseControllerRotation final : public UATPCCameraModeScript
{
public:
	bool                                          OrientRotationToMovement;                          // 0x0040(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          UseControllerDesiredRotation;                      // 0x0041(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bRestoreOldValuesOnExitCameraMode;                 // 0x0042(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          OldOrientRotationToMovement;                       // 0x0043(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          OldUseControllerDesiredRotation;                   // 0x0044(0x0001)(BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_45[0x3];                                       // 0x0045(0x0003)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class AdvancedThirdPersonCamera.ATPCCameraModeScript_RotateActorToTarget
// 0x0008 (0x0048 - 0x0040)
class UATPCCameraModeScript_RotateActorToTarget final : public UATPCCameraModeScript
{
public:
	float                                         RotationSpeed;                                     // 0x0040(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_44[0x4];                                       // 0x0044(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class AdvancedThirdPersonCamera.ATPCCameraShakesObject
// 0x0010 (0x0040 - 0x0030)
class UATPCCameraShakesObject final : public UATPCCameraBaseObject
{
public:
	uint8                                         Pad_30[0x10];                                      // 0x0030(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class AdvancedThirdPersonCamera.ATPCCameraVolume
// 0x0020 (0x02E8 - 0x02C8)
class AATPCCameraVolume final : public AVolume
{
public:
	struct FGameplayTag                           CameraModeTag;                                     // 0x02C8(0x0008)(Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bChangeCameraModeWithInterp;                       // 0x02D0(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bCheckFilterActorClassWithCamera;                  // 0x02D1(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_2D2[0x6];                                      // 0x02D2(0x0006)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<TSubclassOf<class AActor>>             FilterActorClassesWithCamera;                      // 0x02D8(0x0010)(Edit, BlueprintVisible, ZeroConstructor, UObjectWrapper, NativeAccessSpecifierPublic)

public:
	void OnVolumeBeginOverlap(class AActor* OverlappedActor, class AActor* OtherActor);
	void OnVolumeEndOverlap(class AActor* OverlappedActor, class AActor* OtherActor);

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

// Class AdvancedThirdPersonCamera.ATPCFunctionLibrary
// 0x0000 (0x0028 - 0x0028)
class UATPCFunctionLibrary final : public UBlueprintFunctionLibrary
{
public:
	static float InterpFloat(const float& Current, const float& Target, float DeltaTime, struct FATPCInterploationSpeed* InterpSpeed, bool bResetSpeedIfResultEqualToTarget);
	static float InterpolationSpeed_GetCurrentInterpolationSpeed(const struct FATPCInterploationSpeed& InterpSpeed);
	static void InterpolationSpeed_InterpolateSpeed(struct FATPCInterploationSpeed* InterpSpeed, float DeltaTime);
	static void InterpolationSpeed_ResetSpeed(struct FATPCInterploationSpeed* InterpSpeed);
	static struct FRotator InterpRotator(const struct FRotator& Current, const struct FRotator& Target, float DeltaTime, struct FATPCInterploationSpeed* InterpSpeed, bool bResetSpeedIfResultEqualToTarget);
	static struct FVector InterpVector(const struct FVector& Current, const struct FVector& Target, float DeltaTime, struct FATPCInterploationSpeed* InterpSpeed, bool bResetSpeedIfResultEqualToTarget);
	static bool ReplaceSpringArmToATPCComponent(class AActor* Actor);

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

// Class AdvancedThirdPersonCamera.ATPCLockOnTargetLocationComponent
// 0x0010 (0x0240 - 0x0230)
class UATPCLockOnTargetLocationComponent : public USceneComponent
{
public:
	uint8                                         Pad_230[0x10];                                     // 0x0230(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	bool CanBeLockedOnTarget();
	struct FVector GetTargetLocation();
	struct FVector GetWidgetRelativeLocation();
	void OnRegisterTimerUp();

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

}

