Add Unreal Engine SDK

This commit is contained in:
2025-12-06 09:32:39 +01:00
parent 0a884b7975
commit be33eaabca
31 changed files with 346052 additions and 0 deletions

149750
SleepAwake/Assertions.inl Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,41 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// FORWARD DECLARATIONS
namespace Seq_SleepSpell_Default_Medium_Alt1 { class USequenceDirector_C; }
namespace Seq_SleepSpell_Default_Medium { class USequenceDirector_C; }
namespace GameplayAbilities { struct FServerAbilityRPCBatch; }
namespace Seq_KA0_KitchenApparatusAndJournal { class USequenceDirector_C; }
namespace Seq_KA0_SS_LeavingKitchen { class USequenceDirector_C; }
namespace Seq_SleepSpell_Default_Large_FinalKA0SleepSpell { class USequenceDirector_C; }
namespace Seq_KA0_OpeningCine_HatchMarks { class USequenceDirector_C; }
namespace Seq_KA0_Reading1stMicrofiche { class USequenceDirector_C; }
namespace Seq_KA0_SS_RailingTowardsKitchen { class USequenceDirector_C; }
namespace Seq_KA0_TransitionVisuals_Out { class USequenceDirector_C; }
namespace Seq_SleepSpell_Default_Small { class USequenceDirector_C; }
namespace Seq_SleepSpell_Default_Large { class USequenceDirector_C; }
namespace Seq_SleepSpell_Default_Medium_Alt1_NoAudio { class USequenceDirector_C; }
namespace Seq_KA0_KitchenQuake { class USequenceDirector_C; }
namespace Seq_KA0_SS_DoorJamTowardsStudy { class USequenceDirector_C; }

View File

@@ -0,0 +1,21 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// PROPERTY-FIXUP
namespace SDK
{
class alignas(0x01) FMulticastSparseDelegateProperty_
{
unsigned __int8 Pad[0x1];
};
}

1194
SleepAwake/SDK.hpp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,43 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: AudioPlatformConfiguration
#include "Basic.hpp"
namespace SDK
{
// Enum AudioPlatformConfiguration.ESoundwaveSampleRateSettings
// NumValues: 0x0006
enum class ESoundwaveSampleRateSettings : uint8
{
Max = 0,
High = 1,
Medium = 2,
Low = 3,
Min = 4,
MatchDevice = 5,
};
// ScriptStruct AudioPlatformConfiguration.PlatformRuntimeAudioCompressionOverrides
// 0x0010 (0x0010 - 0x0000)
struct FPlatformRuntimeAudioCompressionOverrides final
{
public:
bool bOverrideCompressionTimes; // 0x0000(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_1[0x3]; // 0x0001(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
float DurationThreshold; // 0x0004(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 MaxNumRandomBranches; // 0x0008(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 SoundCueQualityIndex; // 0x000C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FPlatformRuntimeAudioCompressionOverrides;
}

135
SleepAwake/SDK/Basic.cpp Normal file
View File

@@ -0,0 +1,135 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Basic file containing function-implementations from Basic.hpp
#include <Windows.h>
#include "Basic.hpp"
#include "CoreUObject_classes.hpp"
#include "CoreUObject_structs.hpp"
#include "Engine_classes.hpp"
namespace SDK
{
uintptr_t InSDKUtils::GetImageBase()
{
return reinterpret_cast<uintptr_t>(GetModuleHandle(0));
}
class UClass* BasicFilesImpleUtils::FindClassByName(const std::string& Name, bool bByFullName)
{
return bByFullName ? UObject::FindClass(Name) : UObject::FindClassFast(Name);
}
class UClass* BasicFilesImpleUtils::FindClassByFullName(const std::string& Name)
{
return UObject::FindClass(Name);
}
std::string BasicFilesImpleUtils::GetObjectName(class UClass* Class)
{
return Class->GetName();
}
int32 BasicFilesImpleUtils::GetObjectIndex(class UClass* Class)
{
return Class->Index;
}
uint64 BasicFilesImpleUtils::GetObjFNameAsUInt64(class UClass* Class)
{
return *reinterpret_cast<uint64*>(&Class->Name);
}
class UObject* BasicFilesImpleUtils::GetObjectByIndex(int32 Index)
{
return UObject::GObjects->GetByIndex(Index);
}
UFunction* BasicFilesImpleUtils::FindFunctionByFName(const FName* Name)
{
for (int i = 0; i < UObject::GObjects->Num(); ++i)
{
UObject* Object = UObject::GObjects->GetByIndex(i);
if (!Object)
continue;
if (Object->Name == *Name)
return static_cast<UFunction*>(Object);
}
return nullptr;
}
FName BasicFilesImpleUtils::StringToName(const wchar_t* Name)
{
return UKismetStringLibrary::Conv_StringToName(FString(Name));
}
const FName& GetStaticName(const wchar_t* Name, FName& StaticName)
{
if (StaticName.IsNone())
{
StaticName = BasicFilesImpleUtils::StringToName(Name);
}
return StaticName;
}
// Predefined Function
class UObject* FWeakObjectPtr::Get() const
{
return UObject::GObjects->GetByIndex(ObjectIndex);
}
// Predefined Function
class UObject* FWeakObjectPtr::operator->() const
{
return UObject::GObjects->GetByIndex(ObjectIndex);
}
// Predefined Function
bool FWeakObjectPtr::operator==(const FWeakObjectPtr& Other) const
{
return ObjectIndex == Other.ObjectIndex;
}
// Predefined Function
bool FWeakObjectPtr::operator!=(const FWeakObjectPtr& Other) const
{
return ObjectIndex != Other.ObjectIndex;
}
// Predefined Function
bool FWeakObjectPtr::operator==(const class UObject* Other) const
{
return ObjectIndex == Other->Index;
}
// Predefined Function
bool FWeakObjectPtr::operator!=(const class UObject* Other) const
{
return ObjectIndex != Other->Index;
}
}

1260
SleepAwake/SDK/Basic.hpp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,466 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: Chaos
#include "Basic.hpp"
#include "CoreUObject_structs.hpp"
namespace SDK
{
// Enum Chaos.EClusterUnionMethod
// NumValues: 0x0006
enum class EClusterUnionMethod : uint8
{
PointImplicit = 0,
DelaunayTriangulation = 1,
MinimalSpanningSubsetDelaunayTriangulation = 2,
PointImplicitAugmentedWithMinimalDelaunay = 3,
None = 4,
EClusterUnionMethod_MAX = 5,
};
// Enum Chaos.EFieldPhysicsDefaultFields
// NumValues: 0x0007
enum class EFieldPhysicsDefaultFields : uint8
{
Field_RadialIntMask = 0,
Field_RadialFalloff = 1,
Field_UniformVector = 2,
Field_RadialVector = 3,
Field_RadialVectorFalloff = 4,
Field_EFieldPhysicsDefaultFields_Max = 5,
Field_MAX = 6,
};
// Enum Chaos.EFieldOutputType
// NumValues: 0x0004
enum class EFieldOutputType : uint8
{
Field_Output_Vector = 0,
Field_Output_Scalar = 1,
Field_Output_Integer = 2,
Field_Output_Max = 3,
};
// Enum Chaos.EFieldIntegerType
// NumValues: 0x0007
enum class EFieldIntegerType : uint8
{
Integer_DynamicState = 0,
Integer_ActivateDisabled = 1,
Integer_CollisionGroup = 2,
Integer_PositionAnimated = 3,
Integer_PositionStatic = 4,
Integer_TargetMax = 5,
Integer_MAX = 6,
};
// Enum Chaos.EFieldScalarType
// NumValues: 0x0008
enum class EFieldScalarType : uint8
{
Scalar_ExternalClusterStrain = 0,
Scalar_Kill = 1,
Scalar_DisableThreshold = 2,
Scalar_SleepingThreshold = 3,
Scalar_InternalClusterStrain = 4,
Scalar_DynamicConstraint = 5,
Scalar_TargetMax = 6,
Scalar_MAX = 7,
};
// Enum Chaos.EFieldVectorType
// NumValues: 0x0007
enum class EFieldVectorType : uint8
{
Vector_LinearForce = 0,
Vector_LinearVelocity = 1,
Vector_AngularVelocity = 2,
Vector_AngularTorque = 3,
Vector_PositionTarget = 4,
Vector_TargetMax = 5,
Vector_MAX = 6,
};
// Enum Chaos.EFieldPhysicsType
// NumValues: 0x0012
enum class EFieldPhysicsType : uint8
{
Field_None = 0,
Field_DynamicState = 1,
Field_LinearForce = 2,
Field_ExternalClusterStrain = 3,
Field_Kill = 4,
Field_LinearVelocity = 5,
Field_AngularVelociy = 6,
Field_AngularTorque = 7,
Field_InternalClusterStrain = 8,
Field_DisableThreshold = 9,
Field_SleepingThreshold = 10,
Field_PositionStatic = 11,
Field_PositionAnimated = 12,
Field_PositionTarget = 13,
Field_DynamicConstraint = 14,
Field_CollisionGroup = 15,
Field_ActivateDisabled = 16,
Field_PhysicsType_Max = 17,
};
// Enum Chaos.EFieldFalloffType
// NumValues: 0x0006
enum class EFieldFalloffType : uint8
{
Field_FallOff_None = 0,
Field_Falloff_Linear = 1,
Field_Falloff_Inverse = 2,
Field_Falloff_Squared = 3,
Field_Falloff_Logarithmic = 4,
Field_Falloff_Max = 5,
};
// Enum Chaos.EFieldFilterType
// NumValues: 0x0005
enum class EFieldFilterType : uint8
{
Field_Filter_Dynamic = 0,
Field_Filter_Kinematic = 1,
Field_Filter_Static = 2,
Field_Filter_All = 3,
Field_Filter_Max = 4,
};
// Enum Chaos.EFieldResolutionType
// NumValues: 0x0004
enum class EFieldResolutionType : uint8
{
Field_Resolution_Minimal = 0,
Field_Resolution_DisabledParents = 1,
Field_Resolution_Maximum = 2,
Field_Resolution_Max = 3,
};
// Enum Chaos.EFieldCullingOperationType
// NumValues: 0x0004
enum class EFieldCullingOperationType : uint8
{
Field_Culling_Inside = 0,
Field_Culling_Outside = 1,
Field_Culling_Operation_Max = 2,
Field_Culling_MAX = 3,
};
// Enum Chaos.EFieldOperationType
// NumValues: 0x0005
enum class EFieldOperationType : uint8
{
Field_Multiply = 0,
Field_Divide = 1,
Field_Add = 2,
Field_Substract = 3,
Field_Operation_Max = 4,
};
// Enum Chaos.EWaveFunctionType
// NumValues: 0x0005
enum class EWaveFunctionType : uint8
{
Field_Wave_Cosine = 0,
Field_Wave_Gaussian = 1,
Field_Wave_Falloff = 2,
Field_Wave_Decay = 3,
Field_Wave_Max = 4,
};
// Enum Chaos.ESetMaskConditionType
// NumValues: 0x0004
enum class ESetMaskConditionType : uint8
{
Field_Set_Always = 0,
Field_Set_IFF_NOT_Interior = 1,
Field_Set_IFF_NOT_Exterior = 2,
Field_MaskCondition_Max = 3,
};
// Enum Chaos.EEmissionPatternTypeEnum
// NumValues: 0x0003
enum class EEmissionPatternTypeEnum : uint8
{
Chaos_Emission_Pattern_First_Frame = 0,
Chaos_Emission_Pattern_On_Demand = 1,
Chaos_Max = 2,
};
// Enum Chaos.EInitialVelocityTypeEnum
// NumValues: 0x0003
enum class EInitialVelocityTypeEnum : uint8
{
Chaos_Initial_Velocity_User_Defined = 0,
Chaos_Initial_Velocity_None = 1,
Chaos_Max = 2,
};
// Enum Chaos.EGeometryCollectionPhysicsTypeEnum
// NumValues: 0x000B
enum class EGeometryCollectionPhysicsTypeEnum : uint8
{
Chaos_AngularVelocity = 0,
Chaos_DynamicState = 1,
Chaos_LinearVelocity = 2,
Chaos_InitialAngularVelocity = 3,
Chaos_InitialLinearVelocity = 4,
Chaos_CollisionGroup = 5,
Chaos_LinearForce = 6,
Chaos_AngularTorque = 7,
Chaos_ExternalClusterStrain = 8,
Chaos_InternalClusterStrain = 9,
Chaos_Max = 10,
};
// Enum Chaos.EObjectStateTypeEnum
// NumValues: 0x0007
enum class EObjectStateTypeEnum : uint8
{
Chaos_NONE = 0,
Chaos_Object_Sleeping = 1,
Chaos_Object_Kinematic = 2,
Chaos_Object_Static = 3,
Chaos_Object_Dynamic = 4,
Chaos_Object_UserDefined = 100,
Chaos_Max = 101,
};
// Enum Chaos.EImplicitTypeEnum
// NumValues: 0x0007
enum class EImplicitTypeEnum : uint8
{
Chaos_Implicit_Box = 0,
Chaos_Implicit_Sphere = 1,
Chaos_Implicit_Capsule = 2,
Chaos_Implicit_LevelSet = 3,
Chaos_Implicit_None = 4,
Chaos_Implicit_Convex = 5,
Chaos_Max = 6,
};
// Enum Chaos.ECollisionTypeEnum
// NumValues: 0x0003
enum class ECollisionTypeEnum : uint8
{
Chaos_Volumetric = 0,
Chaos_Surface_Volumetric = 1,
Chaos_Max = 2,
};
// Enum Chaos.EChaosBufferMode
// NumValues: 0x0005
enum class EChaosBufferMode : uint8
{
Double = 0,
Triple = 1,
Num = 2,
Invalid = 3,
EChaosBufferMode_MAX = 4,
};
// Enum Chaos.EChaosThreadingMode
// NumValues: 0x0006
enum class EChaosThreadingMode : uint8
{
DedicatedThread = 0,
TaskGraph = 1,
SingleThread = 2,
Num = 3,
Invalid = 4,
EChaosThreadingMode_MAX = 5,
};
// Enum Chaos.EChaosSolverTickMode
// NumValues: 0x0005
enum class EChaosSolverTickMode : uint8
{
Fixed = 0,
Variable = 1,
VariableCapped = 2,
VariableCappedWithTarget = 3,
EChaosSolverTickMode_MAX = 4,
};
// Enum Chaos.EGeometryCollectionCacheType
// NumValues: 0x0005
enum class EGeometryCollectionCacheType : uint8
{
None = 0,
Record = 1,
Play = 2,
RecordAndPlay = 3,
EGeometryCollectionCacheType_MAX = 4,
};
// ScriptStruct Chaos.SolverCollisionFilterSettings
// 0x0010 (0x0010 - 0x0000)
struct FSolverCollisionFilterSettings final
{
public:
bool FilterEnabled; // 0x0000(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_1[0x3]; // 0x0001(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
float MinMass; // 0x0004(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MinSpeed; // 0x0008(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MinImpulse; // 0x000C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FSolverCollisionFilterSettings;
// ScriptStruct Chaos.SolverBreakingFilterSettings
// 0x0010 (0x0010 - 0x0000)
struct FSolverBreakingFilterSettings final
{
public:
bool FilterEnabled; // 0x0000(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_1[0x3]; // 0x0001(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
float MinMass; // 0x0004(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MinSpeed; // 0x0008(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MinVolume; // 0x000C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FSolverBreakingFilterSettings;
// ScriptStruct Chaos.SolverTrailingFilterSettings
// 0x0010 (0x0010 - 0x0000)
struct FSolverTrailingFilterSettings final
{
public:
bool FilterEnabled; // 0x0000(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_1[0x3]; // 0x0001(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
float MinMass; // 0x0004(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MinSpeed; // 0x0008(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MinVolume; // 0x000C(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FSolverTrailingFilterSettings;
// ScriptStruct Chaos.ChaosSolverConfiguration
// 0x006C (0x006C - 0x0000)
struct FChaosSolverConfiguration final
{
public:
int32 Iterations; // 0x0000(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 CollisionPairIterations; // 0x0004(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 PushOutIterations; // 0x0008(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 CollisionPushOutPairIterations; // 0x000C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float CollisionMarginFraction; // 0x0010(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float CollisionMarginMax; // 0x0014(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float CollisionCullDistance; // 0x0018(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float CollisionMaxPushOutVelocity; // 0x001C(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 JointPairIterations; // 0x0020(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 JointPushOutPairIterations; // 0x0024(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float ClusterConnectionFactor; // 0x0028(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
EClusterUnionMethod ClusterUnionConnectionType; // 0x002C(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bGenerateCollisionData; // 0x002D(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_2E[0x2]; // 0x002E(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
struct FSolverCollisionFilterSettings CollisionFilterSettings; // 0x0030(0x0010)(Edit, NoDestructor, NativeAccessSpecifierPublic)
bool bGenerateBreakData; // 0x0040(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_41[0x3]; // 0x0041(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
struct FSolverBreakingFilterSettings BreakingFilterSettings; // 0x0044(0x0010)(Edit, NoDestructor, NativeAccessSpecifierPublic)
bool bGenerateTrailingData; // 0x0054(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_55[0x3]; // 0x0055(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
struct FSolverTrailingFilterSettings TrailingFilterSettings; // 0x0058(0x0010)(Edit, NoDestructor, NativeAccessSpecifierPublic)
bool bGenerateContactGraph; // 0x0068(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_69[0x3]; // 0x0069(0x0003)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FChaosSolverConfiguration;
// ScriptStruct Chaos.SolverCollisionData
// 0x006C (0x006C - 0x0000)
struct FSolverCollisionData final
{
public:
struct FVector Location; // 0x0000(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector AccumulatedImpulse; // 0x000C(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector Normal; // 0x0018(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector Velocity1; // 0x0024(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector Velocity2; // 0x0030(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector AngularVelocity1; // 0x003C(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector AngularVelocity2; // 0x0048(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float Mass1; // 0x0054(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float Mass2; // 0x0058(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 ParticleIndex; // 0x005C(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 LevelsetIndex; // 0x0060(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 ParticleIndexMesh; // 0x0064(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 LevelsetIndexMesh; // 0x0068(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FSolverCollisionData;
// ScriptStruct Chaos.SolverBreakingData
// 0x0030 (0x0030 - 0x0000)
struct FSolverBreakingData final
{
public:
struct FVector Location; // 0x0000(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector Velocity; // 0x000C(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector AngularVelocity; // 0x0018(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float Mass; // 0x0024(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 ParticleIndex; // 0x0028(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 ParticleIndexMesh; // 0x002C(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FSolverBreakingData;
// ScriptStruct Chaos.SolverTrailingData
// 0x0030 (0x0030 - 0x0000)
struct FSolverTrailingData final
{
public:
struct FVector Location; // 0x0000(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector Velocity; // 0x000C(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector AngularVelocity; // 0x0018(0x000C)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float Mass; // 0x0024(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 ParticleIndex; // 0x0028(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 ParticleIndexMesh; // 0x002C(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FSolverTrailingData;
// ScriptStruct Chaos.RecordedFrame
// 0x00B8 (0x00B8 - 0x0000)
struct FRecordedFrame final
{
public:
TArray<struct FTransform> Transforms; // 0x0000(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
TArray<int32> TransformIndices; // 0x0010(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
TArray<int32> PreviousTransformIndices; // 0x0020(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
TArray<bool> DisabledFlags; // 0x0030(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
TArray<struct FSolverCollisionData> Collisions; // 0x0040(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
TArray<struct FSolverBreakingData> Breakings; // 0x0050(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
TSet<struct FSolverTrailingData> Trailings; // 0x0060(0x0050)(NativeAccessSpecifierPublic)
float Timestamp; // 0x00B0(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_B4[0x4]; // 0x00B4(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FRecordedFrame;
// ScriptStruct Chaos.RecordedTransformTrack
// 0x0010 (0x0010 - 0x0000)
struct FRecordedTransformTrack final
{
public:
TArray<struct FRecordedFrame> Records; // 0x0000(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FRecordedTransformTrack;
// ScriptStruct Chaos.SolverRemovalFilterSettings
// 0x000C (0x000C - 0x0000)
struct FSolverRemovalFilterSettings final
{
public:
bool FilterEnabled; // 0x0000(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_1[0x3]; // 0x0001(0x0003)(Fixing Size After Last Property [ Dumper-7 ])
float MinMass; // 0x0004(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MinVolume; // 0x0008(0x0004)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FSolverRemovalFilterSettings;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,217 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: CoreUObject
#include "Basic.hpp"
#include "CoreUObject_classes.hpp"
#include "CoreUObject_parameters.hpp"
namespace SDK
{
// Predefined Function
// Finds a UObject in the global object array by name, optionally with ECastFlags to reduce heavy string comparison
class UObject* UObject::FindObjectFastImpl(const std::string& Name, EClassCastFlags RequiredType)
{
for (int i = 0; i < GObjects->Num(); ++i)
{
UObject* Object = GObjects->GetByIndex(i);
if (!Object)
continue;
if (Object->HasTypeFlag(RequiredType) && Object->GetName() == Name)
return Object;
}
return nullptr;
}
// Predefined Function
// Finds a UObject in the global object array by full-name, optionally with ECastFlags to reduce heavy string comparison
class UObject* UObject::FindObjectImpl(const std::string& FullName, EClassCastFlags RequiredType)
{
for (int i = 0; i < GObjects->Num(); ++i)
{
UObject* Object = GObjects->GetByIndex(i);
if (!Object)
continue;
if (Object->HasTypeFlag(RequiredType) && Object->GetFullName() == FullName)
return Object;
}
return nullptr;
}
// Predefined Function
// Returns the name of this object in the format 'Class Package.Outer.Object'
std::string UObject::GetFullName() const
{
if (this && Class)
{
std::string Temp;
for (UObject* NextOuter = Outer; NextOuter; NextOuter = NextOuter->Outer)
{
Temp = NextOuter->GetName() + "." + Temp;
}
std::string Name = Class->GetName();
Name += " ";
Name += Temp;
Name += GetName();
return Name;
}
return "None";
}
// Predefined Function
// Retuns the name of this object
std::string UObject::GetName() const
{
return this ? Name.ToString() : "None";
}
// Predefined Function
// Checks Class->FunctionFlags for TypeFlags
bool UObject::HasTypeFlag(EClassCastFlags TypeFlags) const
{
return (Class->CastFlags & TypeFlags);
}
// Predefined Function
// Checks a UObjects' type by TypeFlags
bool UObject::IsA(EClassCastFlags TypeFlags) const
{
return (Class->CastFlags & TypeFlags);
}
// Predefined Function
// Checks a UObjects' type by Class name
bool UObject::IsA(const class FName& ClassName) const
{
return Class->IsSubclassOf(ClassName);
}
// Predefined Function
// Checks a UObjects' type by Class
bool UObject::IsA(const class UClass* TypeClass) const
{
return Class->IsSubclassOf(TypeClass);
}
// Predefined Function
// Checks whether this object is a classes' default-object
bool UObject::IsDefaultObject() const
{
return (Flags & EObjectFlags::ClassDefaultObject);
}
// Function CoreUObject.Object.ExecuteUbergraph
// (Event, Public, BlueprintEvent)
// Parameters:
// int32 EntryPoint (Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
void UObject::ExecuteUbergraph(int32 EntryPoint)
{
static class UFunction* Func = nullptr;
if (Func == nullptr)
Func = Class->GetFunction("Object", "ExecuteUbergraph");
Params::Object_ExecuteUbergraph Parms{};
Parms.EntryPoint = EntryPoint;
UObject::ProcessEvent(Func, &Parms);
}
// Predefined Function
// Checks if this class has a certain base
bool UStruct::IsSubclassOf(const UStruct* Base) const
{
if (!Base)
return false;
for (const UStruct* Struct = this; Struct; Struct = Struct->Super)
{
if (Struct == Base)
return true;
}
return false;
}
// Predefined Function
// Checks if this class has a certain base
bool UStruct::IsSubclassOf(const FName& baseClassName) const
{
if (baseClassName.IsNone())
return false;
for (const UStruct* Struct = this; Struct; Struct = Struct->Super)
{
if (Struct->Name == baseClassName)
return true;
}
return false;
}
// Predefined Function
// Gets a UFunction from this UClasses' 'Children' list
class UFunction* UClass::GetFunction(const char* ClassName, const char* FuncName) const
{
for(const UStruct* Clss = this; Clss; Clss = Clss->Super)
{
if (Clss->GetName() != ClassName)
continue;
for (UField* Field = Clss->Children; Field; Field = Field->Next)
{
if(Field->HasTypeFlag(EClassCastFlags::Function) && Field->GetName() == FuncName)
return static_cast<class UFunction*>(Field);
}
}
return nullptr;
}
}

View File

@@ -0,0 +1,27 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: CoreUObject
#include "Basic.hpp"
namespace SDK::Params
{
// Function CoreUObject.Object.ExecuteUbergraph
// 0x0004 (0x0004 - 0x0000)
struct Object_ExecuteUbergraph final
{
public:
int32 EntryPoint; // 0x0000(0x0004)(Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_Object_ExecuteUbergraph;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,91 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: DeveloperSettings
#include "Basic.hpp"
#include "CoreUObject_classes.hpp"
#include "DeveloperSettings_structs.hpp"
namespace SDK
{
// Class DeveloperSettings.DeveloperSettings
// 0x0010 (0x0038 - 0x0028)
class UDeveloperSettings : public UObject
{
public:
uint8 Pad_28[0x10]; // 0x0028(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("DeveloperSettings")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"DeveloperSettings")
}
static class UDeveloperSettings* GetDefaultObj()
{
return GetDefaultObjImpl<UDeveloperSettings>();
}
};
DUMPER7_ASSERTS_UDeveloperSettings;
// Class DeveloperSettings.PlatformSettings
// 0x0018 (0x0040 - 0x0028)
class UPlatformSettings : public UObject
{
public:
uint8 Pad_28[0x18]; // 0x0028(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("PlatformSettings")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"PlatformSettings")
}
static class UPlatformSettings* GetDefaultObj()
{
return GetDefaultObjImpl<UPlatformSettings>();
}
};
DUMPER7_ASSERTS_UPlatformSettings;
// Class DeveloperSettings.PlatformSettingsManager
// 0x0058 (0x0080 - 0x0028)
class UPlatformSettingsManager final : public UObject
{
public:
TMap<TSubclassOf<class UPlatformSettings>, struct FPlatformSettingsInstances> SettingsMap; // 0x0028(0x0050)(Transient, NativeAccessSpecifierPrivate)
uint8 Pad_78[0x8]; // 0x0078(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("PlatformSettingsManager")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"PlatformSettingsManager")
}
static class UPlatformSettingsManager* GetDefaultObj()
{
return GetDefaultObjImpl<UPlatformSettingsManager>();
}
};
DUMPER7_ASSERTS_UPlatformSettingsManager;
}

View File

@@ -0,0 +1,37 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: DeveloperSettings
#include "Basic.hpp"
namespace SDK
{
// ScriptStruct DeveloperSettings.PerPlatformSettings
// 0x0010 (0x0010 - 0x0000)
struct FPerPlatformSettings final
{
public:
TArray<class UPlatformSettings*> Settings; // 0x0000(0x0010)(Edit, ExportObject, EditFixedSize, ZeroConstructor, Transient, ContainsInstancedReference, NativeAccessSpecifierPrivate)
};
DUMPER7_ASSERTS_FPerPlatformSettings;
// ScriptStruct DeveloperSettings.PlatformSettingsInstances
// 0x0058 (0x0058 - 0x0000)
struct FPlatformSettingsInstances final
{
public:
class UPlatformSettings* PlatformInstance; // 0x0000(0x0008)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
TMap<class FName, class UPlatformSettings*> OtherPlatforms; // 0x0008(0x0050)(Transient, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FPlatformSettingsInstances;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,40 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: InputCore
#include "Basic.hpp"
#include "CoreUObject_classes.hpp"
namespace SDK
{
// Class InputCore.InputCoreTypes
// 0x0000 (0x0028 - 0x0028)
class UInputCoreTypes final : public UObject
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("InputCoreTypes")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"InputCoreTypes")
}
static class UInputCoreTypes* GetDefaultObj()
{
return GetDefaultObjImpl<UInputCoreTypes>();
}
};
DUMPER7_ASSERTS_UInputCoreTypes;
}

View File

@@ -0,0 +1,97 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: InputCore
#include "Basic.hpp"
namespace SDK
{
// Enum InputCore.ETouchIndex
// NumValues: 0x000D
enum class ETouchIndex : uint8
{
Touch1 = 0,
Touch2 = 1,
Touch3 = 2,
Touch4 = 3,
Touch5 = 4,
Touch6 = 5,
Touch7 = 6,
Touch8 = 7,
Touch9 = 8,
Touch10 = 9,
CursorPointerIndex = 10,
MAX_TOUCHES = 11,
ETouchIndex_MAX = 12,
};
// Enum InputCore.ETouchType
// NumValues: 0x0008
enum class ETouchType : uint8
{
Began = 0,
Moved = 1,
Stationary = 2,
ForceChanged = 3,
FirstMove = 4,
Ended = 5,
NumTypes = 6,
ETouchType_MAX = 7,
};
// Enum InputCore.EConsoleForGamepadLabels
// NumValues: 0x0004
enum class EConsoleForGamepadLabels : uint8
{
None = 0,
XBoxOne = 1,
PS4 = 2,
EConsoleForGamepadLabels_MAX = 3,
};
// Enum InputCore.EControllerHand
// NumValues: 0x0014
enum class EControllerHand : uint8
{
Left = 0,
Right = 1,
AnyHand = 2,
Pad = 3,
ExternalCamera = 4,
Gun = 5,
HMD = 6,
Special_1 = 7,
Special_2 = 8,
Special_3 = 9,
Special_4 = 10,
Special_5 = 11,
Special_6 = 12,
Special_7 = 13,
Special_8 = 14,
Special_9 = 15,
Special_10 = 16,
Special_11 = 17,
ControllerHand_Count = 18,
EControllerHand_MAX = 19,
};
// ScriptStruct InputCore.Key
// 0x0018 (0x0018 - 0x0000)
struct alignas(0x08) FKey final
{
public:
class FName KeyName; // 0x0000(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
uint8 Pad_8[0x10]; // 0x0008(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FKey;
}

View File

@@ -0,0 +1,63 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: PacketHandler
#include "Basic.hpp"
#include "CoreUObject_classes.hpp"
namespace SDK
{
// Class PacketHandler.HandlerComponentFactory
// 0x0000 (0x0028 - 0x0028)
class UHandlerComponentFactory : public UObject
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("HandlerComponentFactory")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"HandlerComponentFactory")
}
static class UHandlerComponentFactory* GetDefaultObj()
{
return GetDefaultObjImpl<UHandlerComponentFactory>();
}
};
DUMPER7_ASSERTS_UHandlerComponentFactory;
// Class PacketHandler.PacketHandlerProfileConfig
// 0x0010 (0x0038 - 0x0028)
class UPacketHandlerProfileConfig final : public UObject
{
public:
TArray<class FString> Components; // 0x0028(0x0010)(ZeroConstructor, Config, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("PacketHandlerProfileConfig")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"PacketHandlerProfileConfig")
}
static class UPacketHandlerProfileConfig* GetDefaultObj()
{
return GetDefaultObjImpl<UPacketHandlerProfileConfig>();
}
};
DUMPER7_ASSERTS_UPacketHandlerProfileConfig;
}

View File

@@ -0,0 +1,190 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: PhysicsCore
#include "Basic.hpp"
#include "PhysicsCore_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "DeveloperSettings_classes.hpp"
#include "Chaos_structs.hpp"
namespace SDK
{
// Class PhysicsCore.PhysicalMaterialPropertyBase
// 0x0000 (0x0028 - 0x0028)
class UPhysicalMaterialPropertyBase final : public UObject
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("PhysicalMaterialPropertyBase")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"PhysicalMaterialPropertyBase")
}
static class UPhysicalMaterialPropertyBase* GetDefaultObj()
{
return GetDefaultObjImpl<UPhysicalMaterialPropertyBase>();
}
};
DUMPER7_ASSERTS_UPhysicalMaterialPropertyBase;
// Class PhysicsCore.PhysicalMaterial
// 0x0058 (0x0080 - 0x0028)
class UPhysicalMaterial : public UObject
{
public:
float Friction; // 0x0028(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float StaticFriction; // 0x002C(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
EFrictionCombineMode FrictionCombineMode; // 0x0030(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bOverrideFrictionCombineMode; // 0x0031(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_32[0x2]; // 0x0032(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
float Restitution; // 0x0034(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
EFrictionCombineMode RestitutionCombineMode; // 0x0038(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bOverrideRestitutionCombineMode; // 0x0039(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_3A[0x2]; // 0x003A(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
float Density; // 0x003C(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float SleepLinearVelocityThreshold; // 0x0040(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float SleepAngularVelocityThreshold; // 0x0044(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 SleepCounterThreshold; // 0x0048(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float RaiseMassToPower; // 0x004C(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float DestructibleDamageThresholdScale; // 0x0050(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_54[0x4]; // 0x0054(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
class UPhysicalMaterialPropertyBase* PhysicalMaterialProperty; // 0x0058(0x0008)(ZeroConstructor, Deprecated, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
EPhysicalSurface SurfaceType; // 0x0060(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_61[0x1F]; // 0x0061(0x001F)(Fixing Struct Size After Last Property [ Dumper-7 ])
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("PhysicalMaterial")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"PhysicalMaterial")
}
static class UPhysicalMaterial* GetDefaultObj()
{
return GetDefaultObjImpl<UPhysicalMaterial>();
}
};
DUMPER7_ASSERTS_UPhysicalMaterial;
// Class PhysicsCore.BodySetupCore
// 0x0010 (0x0038 - 0x0028)
class UBodySetupCore : public UObject
{
public:
class FName BoneName; // 0x0028(0x0008)(Edit, ZeroConstructor, EditConst, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
EPhysicsType PhysicsType; // 0x0030(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
ECollisionTraceFlag CollisionTraceFlag; // 0x0031(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
EBodyCollisionResponse CollisionReponse; // 0x0032(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_33[0x5]; // 0x0033(0x0005)(Fixing Struct Size After Last Property [ Dumper-7 ])
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("BodySetupCore")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"BodySetupCore")
}
static class UBodySetupCore* GetDefaultObj()
{
return GetDefaultObjImpl<UBodySetupCore>();
}
};
DUMPER7_ASSERTS_UBodySetupCore;
// Class PhysicsCore.ChaosPhysicalMaterial
// 0x0020 (0x0048 - 0x0028)
class UChaosPhysicalMaterial final : public UObject
{
public:
float Friction; // 0x0028(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float StaticFriction; // 0x002C(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float Restitution; // 0x0030(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float LinearEtherDrag; // 0x0034(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float AngularEtherDrag; // 0x0038(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float SleepingLinearVelocityThreshold; // 0x003C(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float SleepingAngularVelocityThreshold; // 0x0040(0x0004)(Edit, BlueprintVisible, BlueprintReadOnly, 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("ChaosPhysicalMaterial")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"ChaosPhysicalMaterial")
}
static class UChaosPhysicalMaterial* GetDefaultObj()
{
return GetDefaultObjImpl<UChaosPhysicalMaterial>();
}
};
DUMPER7_ASSERTS_UChaosPhysicalMaterial;
// Class PhysicsCore.PhysicsSettingsCore
// 0x00B0 (0x00E8 - 0x0038)
class UPhysicsSettingsCore : public UDeveloperSettings
{
public:
float DefaultGravityZ; // 0x0038(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float DefaultTerminalVelocity; // 0x003C(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float DefaultFluidFriction; // 0x0040(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 SimulateScratchMemorySize; // 0x0044(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
int32 RagdollAggregateThreshold; // 0x0048(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float TriangleMeshTriangleMinAreaThreshold; // 0x004C(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bEnableShapeSharing; // 0x0050(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bEnablePCM; // 0x0051(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bEnableStabilization; // 0x0052(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bWarnMissingLocks; // 0x0053(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bEnable2DPhysics; // 0x0054(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bDefaultHasComplexCollision; // 0x0055(0x0001)(ZeroConstructor, Config, Deprecated, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_56[0x2]; // 0x0056(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
float BounceThresholdVelocity; // 0x0058(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
EFrictionCombineMode FrictionCombineMode; // 0x005C(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
EFrictionCombineMode RestitutionCombineMode; // 0x005D(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_5E[0x2]; // 0x005E(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
float MaxAngularVelocity; // 0x0060(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MaxDepenetrationVelocity; // 0x0064(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float ContactOffsetMultiplier; // 0x0068(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MinContactOffset; // 0x006C(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
float MaxContactOffset; // 0x0070(0x0004)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
bool bSimulateSkeletalMeshOnDedicatedServer; // 0x0074(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
ECollisionTraceFlag DefaultShapeComplexity; // 0x0075(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_76[0x2]; // 0x0076(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
struct FChaosSolverConfiguration SolverOptions; // 0x0078(0x006C)(Edit, Config, NoDestructor, NativeAccessSpecifierPublic)
uint8 Pad_E4[0x4]; // 0x00E4(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("PhysicsSettingsCore")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"PhysicsSettingsCore")
}
static class UPhysicsSettingsCore* GetDefaultObj()
{
return GetDefaultObjImpl<UPhysicsSettingsCore>();
}
};
DUMPER7_ASSERTS_UPhysicsSettingsCore;
}

View File

@@ -0,0 +1,204 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: PhysicsCore
#include "Basic.hpp"
namespace SDK
{
// Enum PhysicsCore.EBodyCollisionResponse
// NumValues: 0x0003
enum class EBodyCollisionResponse : uint8
{
BodyCollision_Enabled = 0,
BodyCollision_Disabled = 1,
BodyCollision_MAX = 2,
};
// Enum PhysicsCore.EPhysicsType
// NumValues: 0x0004
enum class EPhysicsType : uint8
{
PhysType_Default = 0,
PhysType_Kinematic = 1,
PhysType_Simulated = 2,
PhysType_MAX = 3,
};
// Enum PhysicsCore.ECollisionTraceFlag
// NumValues: 0x0005
enum class ECollisionTraceFlag : uint8
{
CTF_UseDefault = 0,
CTF_UseSimpleAndComplex = 1,
CTF_UseSimpleAsComplex = 2,
CTF_UseComplexAsSimple = 3,
CTF_MAX = 4,
};
// Enum PhysicsCore.ELinearConstraintMotion
// NumValues: 0x0004
enum class ELinearConstraintMotion : uint8
{
LCM_Free = 0,
LCM_Limited = 1,
LCM_Locked = 2,
LCM_MAX = 3,
};
// Enum PhysicsCore.EConstraintPlasticityType
// NumValues: 0x0004
enum class EConstraintPlasticityType : uint8
{
CCPT_Free = 0,
CCPT_Shrink = 1,
CCPT_Grow = 2,
CCPT_MAX = 3,
};
// Enum PhysicsCore.EConstraintFrame
// NumValues: 0x0003
enum class EConstraintFrame : uint8
{
Frame1 = 0,
Frame2 = 1,
EConstraintFrame_MAX = 2,
};
// Enum PhysicsCore.EAngularConstraintMotion
// NumValues: 0x0004
enum class EAngularConstraintMotion : uint8
{
ACM_Free = 0,
ACM_Limited = 1,
ACM_Locked = 2,
ACM_MAX = 3,
};
// Enum PhysicsCore.ESleepFamily
// NumValues: 0x0004
enum class ESleepFamily : uint8
{
Normal = 0,
Sensitive = 1,
Custom = 2,
ESleepFamily_MAX = 3,
};
// Enum PhysicsCore.ERadialImpulseFalloff
// NumValues: 0x0003
enum class ERadialImpulseFalloff : uint8
{
RIF_Constant = 0,
RIF_Linear = 1,
RIF_MAX = 2,
};
// Enum PhysicsCore.EPhysicalSurface
// NumValues: 0x0041
enum class EPhysicalSurface : uint8
{
SurfaceType_Default = 0,
SurfaceType1 = 1,
SurfaceType2 = 2,
SurfaceType3 = 3,
SurfaceType4 = 4,
SurfaceType5 = 5,
SurfaceType6 = 6,
SurfaceType7 = 7,
SurfaceType8 = 8,
SurfaceType9 = 9,
SurfaceType10 = 10,
SurfaceType11 = 11,
SurfaceType12 = 12,
SurfaceType13 = 13,
SurfaceType14 = 14,
SurfaceType15 = 15,
SurfaceType16 = 16,
SurfaceType17 = 17,
SurfaceType18 = 18,
SurfaceType19 = 19,
SurfaceType20 = 20,
SurfaceType21 = 21,
SurfaceType22 = 22,
SurfaceType23 = 23,
SurfaceType24 = 24,
SurfaceType25 = 25,
SurfaceType26 = 26,
SurfaceType27 = 27,
SurfaceType28 = 28,
SurfaceType29 = 29,
SurfaceType30 = 30,
SurfaceType31 = 31,
SurfaceType32 = 32,
SurfaceType33 = 33,
SurfaceType34 = 34,
SurfaceType35 = 35,
SurfaceType36 = 36,
SurfaceType37 = 37,
SurfaceType38 = 38,
SurfaceType39 = 39,
SurfaceType40 = 40,
SurfaceType41 = 41,
SurfaceType42 = 42,
SurfaceType43 = 43,
SurfaceType44 = 44,
SurfaceType45 = 45,
SurfaceType46 = 46,
SurfaceType47 = 47,
SurfaceType48 = 48,
SurfaceType49 = 49,
SurfaceType50 = 50,
SurfaceType51 = 51,
SurfaceType52 = 52,
SurfaceType53 = 53,
SurfaceType54 = 54,
SurfaceType55 = 55,
SurfaceType56 = 56,
SurfaceType57 = 57,
SurfaceType58 = 58,
SurfaceType59 = 59,
SurfaceType60 = 60,
SurfaceType61 = 61,
SurfaceType62 = 62,
SurfaceType_Max = 63,
EPhysicalSurface_MAX = 64,
};
// Enum PhysicsCore.EFrictionCombineMode
// NumValues: 0x0004
enum class EFrictionCombineMode : uint8
{
Average = 0,
Min = 1,
Multiply = 2,
Max = 3,
};
// ScriptStruct PhysicsCore.BodyInstanceCore
// 0x0018 (0x0018 - 0x0000)
struct alignas(0x08) FBodyInstanceCore
{
public:
uint8 Pad_0[0x10]; // 0x0000(0x0010)(Fixing Size After Last Property [ Dumper-7 ])
uint8 bSimulatePhysics : 1; // 0x0010(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 bOverrideMass : 1; // 0x0010(0x0001)(BitIndex: 0x01, PropSize: 0x0001 (Edit, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 bEnableGravity : 1; // 0x0010(0x0001)(BitIndex: 0x02, PropSize: 0x0001 (Edit, BlueprintVisible, BlueprintReadOnly, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 bAutoWeld : 1; // 0x0010(0x0001)(BitIndex: 0x03, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 bStartAwake : 1; // 0x0010(0x0001)(BitIndex: 0x04, PropSize: 0x0001 (Edit, BlueprintVisible, BlueprintReadOnly, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 bGenerateWakeEvents : 1; // 0x0010(0x0001)(BitIndex: 0x05, PropSize: 0x0001 (Edit, BlueprintVisible, BlueprintReadOnly, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 bUpdateMassWhenScaleChanges : 1; // 0x0010(0x0001)(BitIndex: 0x06, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 Pad_11[0x7]; // 0x0011(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FBodyInstanceCore;
}

View File

@@ -0,0 +1,107 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: PropertyAccess
#include "Basic.hpp"
#include "CoreUObject_classes.hpp"
namespace SDK
{
// Class PropertyAccess.PropertyAccess
// 0x0000 (0x0000 - 0x0000)
class IPropertyAccess final
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("PropertyAccess")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"PropertyAccess")
}
static class IPropertyAccess* GetDefaultObj()
{
return GetDefaultObjImpl<IPropertyAccess>();
}
class UObject* AsUObject()
{
return reinterpret_cast<UObject*>(this);
}
const class UObject* AsUObject() const
{
return reinterpret_cast<const UObject*>(this);
}
};
DUMPER7_ASSERTS_IPropertyAccess;
// Class PropertyAccess.PropertyEventBroadcaster
// 0x0000 (0x0000 - 0x0000)
class IPropertyEventBroadcaster final
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("PropertyEventBroadcaster")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"PropertyEventBroadcaster")
}
static class IPropertyEventBroadcaster* GetDefaultObj()
{
return GetDefaultObjImpl<IPropertyEventBroadcaster>();
}
class UObject* AsUObject()
{
return reinterpret_cast<UObject*>(this);
}
const class UObject* AsUObject() const
{
return reinterpret_cast<const UObject*>(this);
}
};
DUMPER7_ASSERTS_IPropertyEventBroadcaster;
// Class PropertyAccess.PropertyEventSubscriber
// 0x0000 (0x0000 - 0x0000)
class IPropertyEventSubscriber final
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("PropertyEventSubscriber")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"PropertyEventSubscriber")
}
static class IPropertyEventSubscriber* GetDefaultObj()
{
return GetDefaultObjImpl<IPropertyEventSubscriber>();
}
class UObject* AsUObject()
{
return reinterpret_cast<UObject*>(this);
}
const class UObject* AsUObject() const
{
return reinterpret_cast<const UObject*>(this);
}
};
DUMPER7_ASSERTS_IPropertyEventSubscriber;
}

View File

@@ -0,0 +1,173 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: PropertyAccess
#include "Basic.hpp"
namespace SDK
{
// Enum PropertyAccess.EPropertyAccessCopyBatch
// NumValues: 0x0006
enum class EPropertyAccessCopyBatch : uint8
{
InternalUnbatched = 0,
ExternalUnbatched = 1,
InternalBatched = 2,
ExternalBatched = 3,
Count = 4,
EPropertyAccessCopyBatch_MAX = 5,
};
// Enum PropertyAccess.EPropertyAccessCopyType
// NumValues: 0x0012
enum class EPropertyAccessCopyType : uint8
{
None = 0,
Plain = 1,
Complex = 2,
Bool = 3,
Struct = 4,
Object = 5,
Name = 6,
Array = 7,
PromoteBoolToByte = 8,
PromoteBoolToInt32 = 9,
PromoteBoolToInt64 = 10,
PromoteBoolToFloat = 11,
PromoteByteToInt32 = 12,
PromoteByteToInt64 = 13,
PromoteByteToFloat = 14,
PromoteInt32ToInt64 = 15,
PromoteInt32ToFloat = 16,
EPropertyAccessCopyType_MAX = 17,
};
// Enum PropertyAccess.EPropertyAccessObjectType
// NumValues: 0x0005
enum class EPropertyAccessObjectType : uint8
{
None = 0,
Object = 1,
WeakObject = 2,
SoftObject = 3,
EPropertyAccessObjectType_MAX = 4,
};
// Enum PropertyAccess.EPropertyAccessIndirectionType
// NumValues: 0x0006
enum class EPropertyAccessIndirectionType : uint8
{
Offset = 0,
Object = 1,
Array = 2,
ScriptFunction = 3,
NativeFunction = 4,
EPropertyAccessIndirectionType_MAX = 5,
};
// ScriptStruct PropertyAccess.PropertyAccessSegment
// 0x0040 (0x0040 - 0x0000)
struct FPropertyAccessSegment final
{
public:
class FName Name; // 0x0000(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
class UStruct* Struct; // 0x0008(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
TFieldPath<class FProperty> Property; // 0x0010(0x0020)(HasGetValueTypeHash, NativeAccessSpecifierPrivate)
class UFunction* Function; // 0x0030(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 ArrayIndex; // 0x0038(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
uint16 Flags; // 0x003C(0x0002)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
uint8 Pad_3E[0x2]; // 0x003E(0x0002)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyAccessSegment;
// ScriptStruct PropertyAccess.PropertyAccessPath
// 0x000C (0x000C - 0x0000)
struct FPropertyAccessPath final
{
public:
int32 PathSegmentStartIndex; // 0x0000(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 PathSegmentCount; // 0x0004(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
uint8 bHasEvents : 1; // 0x0008(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate))
uint8 Pad_9[0x3]; // 0x0009(0x0003)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyAccessPath;
// ScriptStruct PropertyAccess.PropertyAccessCopy
// 0x0010 (0x0010 - 0x0000)
struct FPropertyAccessCopy final
{
public:
int32 AccessIndex; // 0x0000(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 DestAccessStartIndex; // 0x0004(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 DestAccessEndIndex; // 0x0008(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
EPropertyAccessCopyType Type; // 0x000C(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
uint8 Pad_D[0x3]; // 0x000D(0x0003)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyAccessCopy;
// ScriptStruct PropertyAccess.PropertyAccessCopyBatch
// 0x0010 (0x0010 - 0x0000)
struct FPropertyAccessCopyBatch final
{
public:
TArray<struct FPropertyAccessCopy> Copies; // 0x0000(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
};
DUMPER7_ASSERTS_FPropertyAccessCopyBatch;
// ScriptStruct PropertyAccess.PropertyAccessIndirectionChain
// 0x0030 (0x0030 - 0x0000)
struct FPropertyAccessIndirectionChain final
{
public:
TFieldPath<class FProperty> Property; // 0x0000(0x0020)(HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 IndirectionStartIndex; // 0x0020(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 IndirectionEndIndex; // 0x0024(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 EventId; // 0x0028(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
uint8 Pad_2C[0x4]; // 0x002C(0x0004)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyAccessIndirectionChain;
// ScriptStruct PropertyAccess.PropertyAccessIndirection
// 0x0040 (0x0040 - 0x0000)
struct FPropertyAccessIndirection final
{
public:
TFieldPath<class FArrayProperty> ArrayProperty; // 0x0000(0x0020)(HasGetValueTypeHash, NativeAccessSpecifierPrivate)
class UFunction* Function; // 0x0020(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 ReturnBufferSize; // 0x0028(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 ReturnBufferAlignment; // 0x002C(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
int32 ArrayIndex; // 0x0030(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
uint32 Offset; // 0x0034(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
EPropertyAccessObjectType ObjectType; // 0x0038(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
EPropertyAccessIndirectionType Type; // 0x0039(0x0001)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
uint8 Pad_3A[0x6]; // 0x003A(0x0006)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyAccessIndirection;
// ScriptStruct PropertyAccess.PropertyAccessLibrary
// 0x00C8 (0x00C8 - 0x0000)
struct FPropertyAccessLibrary final
{
public:
TArray<struct FPropertyAccessSegment> PathSegments; // 0x0000(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
TArray<struct FPropertyAccessPath> SrcPaths; // 0x0010(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
TArray<struct FPropertyAccessPath> DestPaths; // 0x0020(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
struct FPropertyAccessCopyBatch CopyBatches[0x4]; // 0x0030(0x0010)(NativeAccessSpecifierPrivate)
TArray<struct FPropertyAccessIndirectionChain> SrcAccesses; // 0x0070(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPrivate)
TArray<struct FPropertyAccessIndirectionChain> DestAccesses; // 0x0080(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPrivate)
TArray<struct FPropertyAccessIndirection> Indirections; // 0x0090(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPrivate)
TArray<int32> EventAccessIndices; // 0x00A0(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
uint8 Pad_B0[0x18]; // 0x00B0(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FPropertyAccessLibrary;
}

View File

@@ -0,0 +1,196 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: SlateCore
#include "Basic.hpp"
#include "CoreUObject_classes.hpp"
namespace SDK
{
// Class SlateCore.FontBulkData
// 0x0050 (0x0078 - 0x0028)
class UFontBulkData final : public UObject
{
public:
uint8 Pad_28[0x50]; // 0x0028(0x0050)(Fixing Struct Size After Last Property [ Dumper-7 ])
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("FontBulkData")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"FontBulkData")
}
static class UFontBulkData* GetDefaultObj()
{
return GetDefaultObjImpl<UFontBulkData>();
}
};
DUMPER7_ASSERTS_UFontBulkData;
// Class SlateCore.FontFaceInterface
// 0x0000 (0x0000 - 0x0000)
class IFontFaceInterface final
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("FontFaceInterface")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"FontFaceInterface")
}
static class IFontFaceInterface* GetDefaultObj()
{
return GetDefaultObjImpl<IFontFaceInterface>();
}
class UObject* AsUObject()
{
return reinterpret_cast<UObject*>(this);
}
const class UObject* AsUObject() const
{
return reinterpret_cast<const UObject*>(this);
}
};
DUMPER7_ASSERTS_IFontFaceInterface;
// Class SlateCore.FontProviderInterface
// 0x0000 (0x0000 - 0x0000)
class IFontProviderInterface final
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("FontProviderInterface")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"FontProviderInterface")
}
static class IFontProviderInterface* GetDefaultObj()
{
return GetDefaultObjImpl<IFontProviderInterface>();
}
class UObject* AsUObject()
{
return reinterpret_cast<UObject*>(this);
}
const class UObject* AsUObject() const
{
return reinterpret_cast<const UObject*>(this);
}
};
DUMPER7_ASSERTS_IFontProviderInterface;
// Class SlateCore.SlateTypes
// 0x0000 (0x0028 - 0x0028)
class USlateTypes final : public UObject
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("SlateTypes")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"SlateTypes")
}
static class USlateTypes* GetDefaultObj()
{
return GetDefaultObjImpl<USlateTypes>();
}
};
DUMPER7_ASSERTS_USlateTypes;
// Class SlateCore.SlateWidgetStyleAsset
// 0x0008 (0x0030 - 0x0028)
class USlateWidgetStyleAsset final : public UObject
{
public:
class USlateWidgetStyleContainerBase* CustomStyle; // 0x0028(0x0008)(Edit, ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData, NoDestructor, PersistentInstance, HasGetValueTypeHash, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("SlateWidgetStyleAsset")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"SlateWidgetStyleAsset")
}
static class USlateWidgetStyleAsset* GetDefaultObj()
{
return GetDefaultObjImpl<USlateWidgetStyleAsset>();
}
};
DUMPER7_ASSERTS_USlateWidgetStyleAsset;
// Class SlateCore.SlateWidgetStyleContainerBase
// 0x0008 (0x0030 - 0x0028)
class USlateWidgetStyleContainerBase : public UObject
{
public:
uint8 Pad_28[0x8]; // 0x0028(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("SlateWidgetStyleContainerBase")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"SlateWidgetStyleContainerBase")
}
static class USlateWidgetStyleContainerBase* GetDefaultObj()
{
return GetDefaultObjImpl<USlateWidgetStyleContainerBase>();
}
};
DUMPER7_ASSERTS_USlateWidgetStyleContainerBase;
// Class SlateCore.SlateWidgetStyleContainerInterface
// 0x0000 (0x0000 - 0x0000)
class ISlateWidgetStyleContainerInterface final
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("SlateWidgetStyleContainerInterface")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"SlateWidgetStyleContainerInterface")
}
static class ISlateWidgetStyleContainerInterface* GetDefaultObj()
{
return GetDefaultObjImpl<ISlateWidgetStyleContainerInterface>();
}
class UObject* AsUObject()
{
return reinterpret_cast<UObject*>(this);
}
const class UObject* AsUObject() const
{
return reinterpret_cast<const UObject*>(this);
}
};
DUMPER7_ASSERTS_ISlateWidgetStyleContainerInterface;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,319 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: Slate
#include "Basic.hpp"
#include "SlateCore_structs.hpp"
#include "SlateCore_classes.hpp"
#include "CoreUObject_classes.hpp"
namespace SDK
{
// Class Slate.ButtonWidgetStyle
// 0x0278 (0x02A8 - 0x0030)
class UButtonWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FButtonStyle ButtonStyle; // 0x0030(0x0278)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("ButtonWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"ButtonWidgetStyle")
}
static class UButtonWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UButtonWidgetStyle>();
}
};
DUMPER7_ASSERTS_UButtonWidgetStyle;
// Class Slate.CheckBoxWidgetStyle
// 0x0580 (0x05B0 - 0x0030)
class UCheckBoxWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FCheckBoxStyle CheckBoxStyle; // 0x0030(0x0580)(Edit, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("CheckBoxWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"CheckBoxWidgetStyle")
}
static class UCheckBoxWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UCheckBoxWidgetStyle>();
}
};
DUMPER7_ASSERTS_UCheckBoxWidgetStyle;
// Class Slate.ComboBoxWidgetStyle
// 0x03F0 (0x0420 - 0x0030)
class UComboBoxWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FComboBoxStyle ComboBoxStyle; // 0x0030(0x03F0)(Edit, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("ComboBoxWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"ComboBoxWidgetStyle")
}
static class UComboBoxWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UComboBoxWidgetStyle>();
}
};
DUMPER7_ASSERTS_UComboBoxWidgetStyle;
// Class Slate.ComboButtonWidgetStyle
// 0x03B8 (0x03E8 - 0x0030)
class UComboButtonWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FComboButtonStyle ComboButtonStyle; // 0x0030(0x03B8)(Edit, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("ComboButtonWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"ComboButtonWidgetStyle")
}
static class UComboButtonWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UComboButtonWidgetStyle>();
}
};
DUMPER7_ASSERTS_UComboButtonWidgetStyle;
// Class Slate.EditableTextBoxWidgetStyle
// 0x07F8 (0x0828 - 0x0030)
class UEditableTextBoxWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FEditableTextBoxStyle EditableTextBoxStyle; // 0x0030(0x07F8)(Edit, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("EditableTextBoxWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"EditableTextBoxWidgetStyle")
}
static class UEditableTextBoxWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UEditableTextBoxWidgetStyle>();
}
};
DUMPER7_ASSERTS_UEditableTextBoxWidgetStyle;
// Class Slate.EditableTextWidgetStyle
// 0x0220 (0x0250 - 0x0030)
class UEditableTextWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FEditableTextStyle EditableTextStyle; // 0x0030(0x0220)(Edit, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("EditableTextWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"EditableTextWidgetStyle")
}
static class UEditableTextWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UEditableTextWidgetStyle>();
}
};
DUMPER7_ASSERTS_UEditableTextWidgetStyle;
// Class Slate.ProgressWidgetStyle
// 0x01A0 (0x01D0 - 0x0030)
class UProgressWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FProgressBarStyle ProgressBarStyle; // 0x0030(0x01A0)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("ProgressWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"ProgressWidgetStyle")
}
static class UProgressWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UProgressWidgetStyle>();
}
};
DUMPER7_ASSERTS_UProgressWidgetStyle;
// Class Slate.ScrollBarWidgetStyle
// 0x04D0 (0x0500 - 0x0030)
class UScrollBarWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FScrollBarStyle ScrollBarStyle; // 0x0030(0x04D0)(Edit, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("ScrollBarWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"ScrollBarWidgetStyle")
}
static class UScrollBarWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UScrollBarWidgetStyle>();
}
};
DUMPER7_ASSERTS_UScrollBarWidgetStyle;
// Class Slate.ScrollBoxWidgetStyle
// 0x0228 (0x0258 - 0x0030)
class UScrollBoxWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FScrollBoxStyle ScrollBoxStyle; // 0x0030(0x0228)(Edit, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("ScrollBoxWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"ScrollBoxWidgetStyle")
}
static class UScrollBoxWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UScrollBoxWidgetStyle>();
}
};
DUMPER7_ASSERTS_UScrollBoxWidgetStyle;
// Class Slate.SlateSettings
// 0x0008 (0x0030 - 0x0028)
class USlateSettings final : public UObject
{
public:
bool bExplicitCanvasChildZOrder; // 0x0028(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 Pad_29[0x7]; // 0x0029(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("SlateSettings")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"SlateSettings")
}
static class USlateSettings* GetDefaultObj()
{
return GetDefaultObjImpl<USlateSettings>();
}
};
DUMPER7_ASSERTS_USlateSettings;
// Class Slate.SpinBoxWidgetStyle
// 0x02E8 (0x0318 - 0x0030)
class USpinBoxWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FSpinBoxStyle SpinBoxStyle; // 0x0030(0x02E8)(Edit, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("SpinBoxWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"SpinBoxWidgetStyle")
}
static class USpinBoxWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<USpinBoxWidgetStyle>();
}
};
DUMPER7_ASSERTS_USpinBoxWidgetStyle;
// Class Slate.TextBlockWidgetStyle
// 0x0270 (0x02A0 - 0x0030)
class UTextBlockWidgetStyle final : public USlateWidgetStyleContainerBase
{
public:
struct FTextBlockStyle TextBlockStyle; // 0x0030(0x0270)(Edit, NativeAccessSpecifierPublic)
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("TextBlockWidgetStyle")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"TextBlockWidgetStyle")
}
static class UTextBlockWidgetStyle* GetDefaultObj()
{
return GetDefaultObjImpl<UTextBlockWidgetStyle>();
}
};
DUMPER7_ASSERTS_UTextBlockWidgetStyle;
// Class Slate.ToolMenuBase
// 0x0000 (0x0028 - 0x0028)
class UToolMenuBase final : public UObject
{
public:
static class UClass* StaticClass()
{
STATIC_CLASS_IMPL("ToolMenuBase")
}
static const class FName& StaticName()
{
STATIC_NAME_IMPL(L"ToolMenuBase")
}
static class UToolMenuBase* GetDefaultObj()
{
return GetDefaultObjImpl<UToolMenuBase>();
}
};
DUMPER7_ASSERTS_UToolMenuBase;
}

View File

@@ -0,0 +1,318 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Package: Slate
#include "Basic.hpp"
#include "InputCore_structs.hpp"
#include "CoreUObject_structs.hpp"
namespace SDK
{
// Enum Slate.EVirtualKeyboardDismissAction
// NumValues: 0x0004
enum class EVirtualKeyboardDismissAction : uint8
{
TextChangeOnDismiss = 0,
TextCommitOnAccept = 1,
TextCommitOnDismiss = 2,
EVirtualKeyboardDismissAction_MAX = 3,
};
// Enum Slate.EVirtualKeyboardTrigger
// NumValues: 0x0003
enum class EVirtualKeyboardTrigger : uint8
{
OnFocusByPointer = 0,
OnAllFocusEvents = 1,
EVirtualKeyboardTrigger_MAX = 2,
};
// Enum Slate.ETableViewMode
// NumValues: 0x0004
enum class ETableViewMode : uint8
{
List = 0,
Tile = 1,
Tree = 2,
ETableViewMode_MAX = 3,
};
// Enum Slate.ESelectionMode
// NumValues: 0x0005
enum class ESelectionMode : uint8
{
None = 0,
Single = 1,
SingleToggle = 2,
Multi = 3,
ESelectionMode_MAX = 4,
};
// Enum Slate.EMultiBlockType
// NumValues: 0x000A
enum class EMultiBlockType : uint8
{
None = 0,
ButtonRow = 1,
EditableText = 2,
Heading = 3,
MenuEntry = 4,
Separator = 5,
ToolBarButton = 6,
ToolBarComboButton = 7,
Widget = 8,
EMultiBlockType_MAX = 9,
};
// Enum Slate.EMultiBoxType
// NumValues: 0x0007
enum class EMultiBoxType : uint8
{
MenuBar = 0,
ToolBar = 1,
VerticalToolBar = 2,
UniformToolBar = 3,
Menu = 4,
ButtonRow = 5,
EMultiBoxType_MAX = 6,
};
// Enum Slate.EProgressBarFillType
// NumValues: 0x0006
enum class EProgressBarFillType : uint8
{
LeftToRight = 0,
RightToLeft = 1,
FillFromCenter = 2,
TopToBottom = 3,
BottomToTop = 4,
EProgressBarFillType_MAX = 5,
};
// Enum Slate.EStretch
// NumValues: 0x0009
enum class EStretch : uint8
{
None = 0,
Fill = 1,
ScaleToFit = 2,
ScaleToFitX = 3,
ScaleToFitY = 4,
ScaleToFill = 5,
ScaleBySafeZone = 6,
UserSpecified = 7,
EStretch_MAX = 8,
};
// Enum Slate.EStretchDirection
// NumValues: 0x0004
enum class EStretchDirection : uint8
{
Both = 0,
DownOnly = 1,
UpOnly = 2,
EStretchDirection_MAX = 3,
};
// Enum Slate.EScrollWhenFocusChanges
// NumValues: 0x0004
enum class EScrollWhenFocusChanges : uint8
{
NoScroll = 0,
InstantScroll = 1,
AnimatedScroll = 2,
EScrollWhenFocusChanges_MAX = 3,
};
// Enum Slate.EDescendantScrollDestination
// NumValues: 0x0005
enum class EDescendantScrollDestination : uint8
{
IntoView = 0,
TopOrLeft = 1,
Center = 2,
BottomOrRight = 3,
EDescendantScrollDestination_MAX = 4,
};
// Enum Slate.EListItemAlignment
// NumValues: 0x0008
enum class EListItemAlignment : uint8
{
EvenlyDistributed = 0,
EvenlySize = 1,
EvenlyWide = 2,
LeftAligned = 3,
RightAligned = 4,
CenterAligned = 5,
Fill = 6,
EListItemAlignment_MAX = 7,
};
// Enum Slate.ETextFlowDirection
// NumValues: 0x0004
enum class ETextFlowDirection : uint8
{
Auto = 0,
LeftToRight = 1,
RightToLeft = 2,
ETextFlowDirection_MAX = 3,
};
// Enum Slate.ETextWrappingPolicy
// NumValues: 0x0003
enum class ETextWrappingPolicy : uint8
{
DefaultWrapping = 0,
AllowPerCharacterWrapping = 1,
ETextWrappingPolicy_MAX = 2,
};
// Enum Slate.ETextTransformPolicy
// NumValues: 0x0004
enum class ETextTransformPolicy : uint8
{
None = 0,
ToLower = 1,
ToUpper = 2,
ETextTransformPolicy_MAX = 3,
};
// Enum Slate.ETextElementVerticalJustification
// NumValues: 0x0004
enum class ETextElementVerticalJustification : uint8
{
Top = 0,
Center = 1,
Bottom = 2,
ETextElementVerticalJustification_MAX = 3,
};
// Enum Slate.ETextJustify
// NumValues: 0x0004
enum class ETextJustify : uint8
{
Left = 0,
Center = 1,
Right = 2,
ETextJustify_MAX = 3,
};
// Enum Slate.ECustomizedToolMenuVisibility
// NumValues: 0x0004
enum class ECustomizedToolMenuVisibility : uint32
{
None = 0,
Visible = 1,
Hidden = 2,
ECustomizedToolMenuVisibility_MAX = 3,
};
// Enum Slate.EMultipleKeyBindingIndex
// NumValues: 0x0004
enum class EMultipleKeyBindingIndex : uint8
{
Primary = 0,
Secondary = 1,
NumChords = 2,
EMultipleKeyBindingIndex_MAX = 3,
};
// Enum Slate.EUserInterfaceActionType
// NumValues: 0x0007
enum class EUserInterfaceActionType : uint8
{
None = 0,
Button = 1,
ToggleButton = 2,
RadioButton = 3,
Check = 4,
CollapsedButton = 5,
EUserInterfaceActionType_MAX = 6,
};
// ScriptStruct Slate.VirtualKeyboardOptions
// 0x0001 (0x0001 - 0x0000)
struct FVirtualKeyboardOptions final
{
public:
bool bEnableAutocorrect; // 0x0000(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FVirtualKeyboardOptions;
// ScriptStruct Slate.CustomizedToolMenuEntry
// 0x0004 (0x0004 - 0x0000)
struct FCustomizedToolMenuEntry final
{
public:
ECustomizedToolMenuVisibility Visibility; // 0x0000(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FCustomizedToolMenuEntry;
// ScriptStruct Slate.CustomizedToolMenuSection
// 0x0004 (0x0004 - 0x0000)
struct FCustomizedToolMenuSection final
{
public:
ECustomizedToolMenuVisibility Visibility; // 0x0000(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FCustomizedToolMenuSection;
// ScriptStruct Slate.CustomizedToolMenuNameArray
// 0x0010 (0x0010 - 0x0000)
struct FCustomizedToolMenuNameArray final
{
public:
TArray<class FName> Names; // 0x0000(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FCustomizedToolMenuNameArray;
// ScriptStruct Slate.CustomizedToolMenu
// 0x01E8 (0x01E8 - 0x0000)
struct FCustomizedToolMenu final
{
public:
class FName Name; // 0x0000(0x0008)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
TMap<class FName, struct FCustomizedToolMenuEntry> Entries; // 0x0008(0x0050)(NativeAccessSpecifierPublic)
TMap<class FName, struct FCustomizedToolMenuSection> Sections; // 0x0058(0x0050)(NativeAccessSpecifierPublic)
TMap<class FName, struct FCustomizedToolMenuNameArray> EntryOrder; // 0x00A8(0x0050)(NativeAccessSpecifierPublic)
TArray<class FName> SectionOrder; // 0x00F8(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
uint8 Pad_108[0xE0]; // 0x0108(0x00E0)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FCustomizedToolMenu;
// ScriptStruct Slate.InputChord
// 0x0020 (0x0020 - 0x0000)
struct FInputChord final
{
public:
struct FKey Key; // 0x0000(0x0018)(Edit, BlueprintVisible, HasGetValueTypeHash, NativeAccessSpecifierPublic)
uint8 bShift : 1; // 0x0018(0x0001)(BitIndex: 0x00, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 bCtrl : 1; // 0x0018(0x0001)(BitIndex: 0x01, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 bAlt : 1; // 0x0018(0x0001)(BitIndex: 0x02, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 bCmd : 1; // 0x0018(0x0001)(BitIndex: 0x03, PropSize: 0x0001 (Edit, BlueprintVisible, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic))
uint8 Pad_19[0x7]; // 0x0019(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])
};
DUMPER7_ASSERTS_FInputChord;
// ScriptStruct Slate.Anchors
// 0x0010 (0x0010 - 0x0000)
struct FAnchors final
{
public:
struct FVector2D Minimum; // 0x0000(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
struct FVector2D Maximum; // 0x0008(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
};
DUMPER7_ASSERTS_FAnchors;
}

View File

@@ -0,0 +1,909 @@
#pragma once
/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/
// Container implementations with iterators. See https://github.com/Fischsalat/UnrealContainers
#include <string>
#include <stdexcept>
#include <iostream>
#include "UtfN.hpp"
namespace UC
{
typedef int8_t int8;
typedef int16_t int16;
typedef int32_t int32;
typedef int64_t int64;
typedef uint8_t uint8;
typedef uint16_t uint16;
typedef uint32_t uint32;
typedef uint64_t uint64;
template<typename ArrayElementType>
class TArray;
template<typename SparseArrayElementType>
class TSparseArray;
template<typename SetElementType>
class TSet;
template<typename KeyElementType, typename ValueElementType>
class TMap;
template<typename KeyElementType, typename ValueElementType>
class TPair;
namespace Iterators
{
class FSetBitIterator;
template<typename ArrayType>
class TArrayIterator;
template<class ContainerType>
class TContainerIterator;
template<typename SparseArrayElementType>
using TSparseArrayIterator = TContainerIterator<TSparseArray<SparseArrayElementType>>;
template<typename SetElementType>
using TSetIterator = TContainerIterator<TSet<SetElementType>>;
template<typename KeyElementType, typename ValueElementType>
using TMapIterator = TContainerIterator<TMap<KeyElementType, ValueElementType>>;
}
namespace ContainerImpl
{
namespace HelperFunctions
{
inline uint32 FloorLog2(uint32 Value)
{
uint32 pos = 0;
if (Value >= 1 << 16) { Value >>= 16; pos += 16; }
if (Value >= 1 << 8) { Value >>= 8; pos += 8; }
if (Value >= 1 << 4) { Value >>= 4; pos += 4; }
if (Value >= 1 << 2) { Value >>= 2; pos += 2; }
if (Value >= 1 << 1) { pos += 1; }
return pos;
}
inline uint32 CountLeadingZeros(uint32 Value)
{
if (Value == 0)
return 32;
return 31 - FloorLog2(Value);
}
}
template<int32 Size, uint32 Alignment>
struct TAlignedBytes
{
alignas(Alignment) uint8 Pad[Size];
};
template<uint32 NumInlineElements>
class TInlineAllocator
{
public:
template<typename ElementType>
class ForElementType
{
private:
static constexpr int32 ElementSize = sizeof(ElementType);
static constexpr int32 ElementAlign = alignof(ElementType);
static constexpr int32 InlineDataSizeBytes = NumInlineElements * ElementSize;
private:
TAlignedBytes<ElementSize, ElementAlign> InlineData[NumInlineElements];
ElementType* SecondaryData;
public:
ForElementType()
: InlineData{ 0x0 }, SecondaryData(nullptr)
{
}
ForElementType(ForElementType&&) = default;
ForElementType(const ForElementType&) = default;
public:
ForElementType& operator=(ForElementType&&) = default;
ForElementType& operator=(const ForElementType&) = default;
public:
inline const ElementType* GetAllocation() const { return SecondaryData ? SecondaryData : reinterpret_cast<const ElementType*>(&InlineData); }
inline uint32 GetNumInlineBytes() const { return NumInlineElements; }
};
};
class FBitArray
{
protected:
static constexpr int32 NumBitsPerDWORD = 32;
static constexpr int32 NumBitsPerDWORDLogTwo = 5;
private:
TInlineAllocator<4>::ForElementType<int32> Data;
int32 NumBits;
int32 MaxBits;
public:
FBitArray()
: NumBits(0), MaxBits(Data.GetNumInlineBytes() * NumBitsPerDWORD)
{
}
FBitArray(const FBitArray&) = default;
FBitArray(FBitArray&&) = default;
public:
FBitArray& operator=(FBitArray&&) = default;
FBitArray& operator=(const FBitArray& Other) = default;
private:
inline void VerifyIndex(int32 Index) const { if (!IsValidIndex(Index)) throw std::out_of_range("Index was out of range!"); }
public:
inline int32 Num() const { return NumBits; }
inline int32 Max() const { return MaxBits; }
inline const uint32* GetData() const { return reinterpret_cast<const uint32*>(Data.GetAllocation()); }
inline bool IsValidIndex(int32 Index) const { return Index >= 0 && Index < NumBits; }
inline bool IsValid() const { return GetData() && NumBits > 0; }
public:
inline bool operator[](int32 Index) const { VerifyIndex(Index); return GetData()[Index / NumBitsPerDWORD] & (1 << (Index & (NumBitsPerDWORD - 1))); }
inline bool operator==(const FBitArray& Other) const { return NumBits == Other.NumBits && GetData() == Other.GetData(); }
inline bool operator!=(const FBitArray& Other) const { return NumBits != Other.NumBits || GetData() != Other.GetData(); }
public:
friend Iterators::FSetBitIterator begin(const FBitArray& Array);
friend Iterators::FSetBitIterator end (const FBitArray& Array);
};
template<typename SparseArrayType>
union TSparseArrayElementOrFreeListLink
{
SparseArrayType ElementData;
struct
{
int32 PrevFreeIndex;
int32 NextFreeIndex;
};
};
template<typename SetType>
class SetElement
{
private:
template<typename SetDataType>
friend class TSet;
private:
SetType Value;
int32 HashNextId;
int32 HashIndex;
};
}
template <typename KeyType, typename ValueType>
class TPair
{
public:
KeyType First;
ValueType Second;
public:
TPair(KeyType Key, ValueType Value)
: First(Key), Second(Value)
{
}
public:
inline KeyType& Key() { return First; }
inline const KeyType& Key() const { return First; }
inline ValueType& Value() { return Second; }
inline const ValueType& Value() const { return Second; }
};
template<typename ArrayElementType>
class TArray
{
private:
template<typename ArrayElementType>
friend class TAllocatedArray;
template<typename SparseArrayElementType>
friend class TSparseArray;
protected:
static constexpr uint64 ElementAlign = alignof(ArrayElementType);
static constexpr uint64 ElementSize = sizeof(ArrayElementType);
protected:
ArrayElementType* Data;
int32 NumElements;
int32 MaxElements;
public:
TArray()
: TArray(nullptr, 0, 0)
{
}
TArray(ArrayElementType* Data, int32 NumElements, int32 MaxElements)
: Data(Data), NumElements(NumElements), MaxElements(MaxElements)
{
}
TArray(const TArray&) = default;
TArray(TArray&&) = default;
public:
TArray& operator=(TArray&&) = default;
TArray& operator=(const TArray&) = default;
private:
inline int32 GetSlack() const { return MaxElements - NumElements; }
inline void VerifyIndex(int32 Index) const { if (!IsValidIndex(Index)) throw std::out_of_range("Index was out of range!"); }
inline ArrayElementType& GetUnsafe(int32 Index) { return Data[Index]; }
inline const ArrayElementType& GetUnsafe(int32 Index) const { return Data[Index]; }
public:
/* Adds to the array if there is still space for one more element */
inline bool Add(const ArrayElementType& Element)
{
if (GetSlack() <= 0)
return false;
Data[NumElements] = Element;
NumElements++;
return true;
}
inline bool Remove(int32 Index)
{
if (!IsValidIndex(Index))
return false;
NumElements--;
for (int i = Index; i < NumElements; i++)
{
/* NumElements was decremented, acessing i + 1 is safe */
Data[i] = Data[i + 1];
}
return true;
}
inline void Clear()
{
NumElements = 0;
if (Data)
memset(Data, 0, NumElements * ElementSize);
}
public:
inline int32 Num() const { return NumElements; }
inline int32 Max() const { return MaxElements; }
inline const ArrayElementType* GetDataPtr() const { return Data; }
inline bool IsValidIndex(int32 Index) const { return Data && Index >= 0 && Index < NumElements; }
inline bool IsValid() const { return Data && NumElements > 0 && MaxElements >= NumElements; }
public:
inline ArrayElementType& operator[](int32 Index) { VerifyIndex(Index); return Data[Index]; }
inline const ArrayElementType& operator[](int32 Index) const { VerifyIndex(Index); return Data[Index]; }
inline bool operator==(const TArray<ArrayElementType>& Other) const { return Data == Other.Data; }
inline bool operator!=(const TArray<ArrayElementType>& Other) const { return Data != Other.Data; }
inline explicit operator bool() const { return IsValid(); };
public:
template<typename T> friend Iterators::TArrayIterator<T> begin(const TArray& Array);
template<typename T> friend Iterators::TArrayIterator<T> end (const TArray& Array);
};
class FString : public TArray<wchar_t>
{
public:
friend std::ostream& operator<<(std::ostream& Stream, const UC::FString& Str) { return Stream << Str.ToString(); }
public:
using TArray::TArray;
FString(const wchar_t* Str)
{
const uint32 NullTerminatedLength = static_cast<uint32>(wcslen(Str) + 0x1);
Data = const_cast<wchar_t*>(Str);
NumElements = NullTerminatedLength;
MaxElements = NullTerminatedLength;
}
FString(wchar_t* Str, int32 Num, int32 Max)
{
Data = Str;
NumElements = Num;
MaxElements = Max;
}
public:
inline std::string ToString() const
{
if (*this)
{
return UtfN::Utf16StringToUtf8String<std::string>(Data, NumElements - 1); // Exclude null-terminator
}
return "";
}
inline std::wstring ToWString() const
{
if (*this)
return std::wstring(Data);
return L"";
}
public:
inline wchar_t* CStr() { return Data; }
inline const wchar_t* CStr() const { return Data; }
public:
inline bool operator==(const FString& Other) const { return Other ? NumElements == Other.NumElements && wcscmp(Data, Other.Data) == 0 : false; }
inline bool operator!=(const FString& Other) const { return Other ? NumElements != Other.NumElements || wcscmp(Data, Other.Data) != 0 : true; }
};
// Utf8String that assumes C-APIs (strlen, strcmp) behaviour works for char8_t like Ansi strings, execept it's counting/comparing bytes not characters.
class FUtf8String : public TArray<char8_t>
{
public:
friend std::ostream& operator<<(std::ostream& Stream, const UC::FUtf8String& Str) { return Stream << Str.ToString(); }
private:
inline const char* GetDataAsConstCharPtr() const
{
return reinterpret_cast<const char*>(Data);
}
public:
using TArray::TArray;
FUtf8String(const char8_t* Str)
{
Data = const_cast<char8_t*>(Str);
const uint32 NullTerminatedLength = static_cast<uint32>(strlen(GetDataAsConstCharPtr()) + 0x1);
NumElements = NullTerminatedLength;
MaxElements = NullTerminatedLength;
}
FUtf8String(char8_t* Str, int32 Num, int32 Max)
{
Data = Str;
NumElements = Num;
MaxElements = Max;
}
public:
inline std::string ToString() const
{
if (*this)
{
return std::string(GetDataAsConstCharPtr(), NumElements - 1); // Exclude null-terminator
}
return "";
}
inline std::wstring ToWString() const
{
if (*this)
return UtfN::StringToWString<std::string>(ToString()); // Exclude null-terminator
return L"";
}
public:
inline char8_t* CStr() { return Data; }
inline const char8_t* CStr() const { return Data; }
public:
inline bool operator==(const FUtf8String& Other) const { return Other ? NumElements == Other.NumElements && strcmp(GetDataAsConstCharPtr(), Other.GetDataAsConstCharPtr()) == 0 : false; }
inline bool operator!=(const FUtf8String& Other) const { return Other ? NumElements != Other.NumElements || strcmp(GetDataAsConstCharPtr(), Other.GetDataAsConstCharPtr()) != 0 : true; }
};
class FAnsiString : public TArray<char>
{
public:
friend std::ostream& operator<<(std::ostream& Stream, const UC::FAnsiString& Str) { return Stream << Str.ToString(); }
public:
using TArray::TArray;
FAnsiString(const char* Str)
{
const uint32 NullTerminatedLength = static_cast<uint32>(strlen(Str) + 0x1);
Data = const_cast<char*>(Str);
NumElements = NullTerminatedLength;
MaxElements = NullTerminatedLength;
}
FAnsiString(char* Str, int32 Num, int32 Max)
{
Data = Str;
NumElements = Num;
MaxElements = Max;
}
public:
inline std::string ToString() const
{
if (*this)
{
return std::string(Data, NumElements - 1); // Exclude null-terminator
}
return "";
}
inline std::wstring ToWString() const
{
if (*this)
return UtfN::StringToWString<std::string>(ToString()); // Exclude null-terminator
return L"";
}
public:
inline char* CStr() { return Data; }
inline const char* CStr() const { return Data; }
public:
inline bool operator==(const FAnsiString& Other) const { return Other ? NumElements == Other.NumElements && strcmp(Data, Other.Data) == 0 : false; }
inline bool operator!=(const FAnsiString& Other) const { return Other ? NumElements != Other.NumElements || strcmp(Data, Other.Data) != 0 : true; }
};
/*
* Class to allow construction of a TArray, that uses c-style standard-library memory allocation.
*
* Useful for calling functions that expect a buffer of a certain size and do not reallocate that buffer.
* This avoids leaking memory, if the array would otherwise be allocated by the engine, and couldn't be freed without FMemory-functions.
*/
template<typename ArrayElementType>
class TAllocatedArray : public TArray<ArrayElementType>
{
public:
TAllocatedArray() = delete;
public:
TAllocatedArray(int32 Size)
{
this->Data = static_cast<ArrayElementType*>(malloc(Size * sizeof(ArrayElementType)));
this->NumElements = 0x0;
this->MaxElements = Size;
}
~TAllocatedArray()
{
if (this->Data)
free(this->Data);
this->NumElements = 0x0;
this->MaxElements = 0x0;
}
public:
inline operator TArray<ArrayElementType>() { return *reinterpret_cast< TArray<ArrayElementType>*>(this); }
inline operator const TArray<ArrayElementType>() const { return *reinterpret_cast<const TArray<ArrayElementType>*>(this); }
};
/*
* Class to allow construction of an FString, that uses c-style standard-library memory allocation.
*
* Useful for calling functions that expect a buffer of a certain size and do not reallocate that buffer.
* This avoids leaking memory, if the array would otherwise be allocated by the engine, and couldn't be freed without FMemory-functions.
*/
class FAllocatedString : public FString
{
public:
FAllocatedString() = delete;
public:
FAllocatedString(int32 Size)
{
Data = static_cast<wchar_t*>(malloc(Size * sizeof(wchar_t)));
NumElements = 0x0;
MaxElements = Size;
}
~FAllocatedString()
{
if (Data)
free(Data);
NumElements = 0x0;
MaxElements = 0x0;
}
public:
inline operator FString() { return *reinterpret_cast< FString*>(this); }
inline operator const FString() const { return *reinterpret_cast<const FString*>(this); }
};
template<typename SparseArrayElementType>
class TSparseArray
{
private:
static constexpr uint32 ElementAlign = alignof(SparseArrayElementType);
static constexpr uint32 ElementSize = sizeof(SparseArrayElementType);
private:
using FElementOrFreeListLink = ContainerImpl::TSparseArrayElementOrFreeListLink<ContainerImpl::TAlignedBytes<ElementSize, ElementAlign>>;
private:
TArray<FElementOrFreeListLink> Data;
ContainerImpl::FBitArray AllocationFlags;
int32 FirstFreeIndex;
int32 NumFreeIndices;
public:
TSparseArray()
: FirstFreeIndex(-1), NumFreeIndices(0)
{
}
TSparseArray(TSparseArray&&) = default;
TSparseArray(const TSparseArray&) = default;
public:
TSparseArray& operator=(TSparseArray&&) = default;
TSparseArray& operator=(const TSparseArray&) = default;
private:
inline void VerifyIndex(int32 Index) const { if (!IsValidIndex(Index)) throw std::out_of_range("Index was out of range!"); }
public:
inline int32 NumAllocated() const { return Data.Num(); }
inline int32 Num() const { return NumAllocated() - NumFreeIndices; }
inline int32 Max() const { return Data.Max(); }
inline bool IsValidIndex(int32 Index) const { return Data.IsValidIndex(Index) && AllocationFlags[Index]; }
inline bool IsValid() const { return Data.IsValid() && AllocationFlags.IsValid(); }
public:
const ContainerImpl::FBitArray& GetAllocationFlags() const { return AllocationFlags; }
public:
inline SparseArrayElementType& operator[](int32 Index) { VerifyIndex(Index); return *reinterpret_cast<SparseArrayElementType*>(&Data.GetUnsafe(Index).ElementData); }
inline const SparseArrayElementType& operator[](int32 Index) const { VerifyIndex(Index); return *reinterpret_cast<SparseArrayElementType*>(&Data.GetUnsafe(Index).ElementData); }
inline bool operator==(const TSparseArray<SparseArrayElementType>& Other) const { return Data == Other.Data; }
inline bool operator!=(const TSparseArray<SparseArrayElementType>& Other) const { return Data != Other.Data; }
public:
template<typename T> friend Iterators::TSparseArrayIterator<T> begin(const TSparseArray& Array);
template<typename T> friend Iterators::TSparseArrayIterator<T> end (const TSparseArray& Array);
};
template<typename SetElementType>
class TSet
{
private:
static constexpr uint32 ElementAlign = alignof(SetElementType);
static constexpr uint32 ElementSize = sizeof(SetElementType);
private:
using SetDataType = ContainerImpl::SetElement<SetElementType>;
using HashType = ContainerImpl::TInlineAllocator<1>::ForElementType<int32>;
private:
TSparseArray<SetDataType> Elements;
HashType Hash;
int32 HashSize;
public:
TSet()
: HashSize(0)
{
}
TSet(TSet&&) = default;
TSet(const TSet&) = default;
public:
TSet& operator=(TSet&&) = default;
TSet& operator=(const TSet&) = default;
private:
inline void VerifyIndex(int32 Index) const { if (!IsValidIndex(Index)) throw std::out_of_range("Index was out of range!"); }
public:
inline int32 NumAllocated() const { return Elements.NumAllocated(); }
inline int32 Num() const { return Elements.Num(); }
inline int32 Max() const { return Elements.Max(); }
inline bool IsValidIndex(int32 Index) const { return Elements.IsValidIndex(Index); }
inline bool IsValid() const { return Elements.IsValid(); }
public:
const ContainerImpl::FBitArray& GetAllocationFlags() const { return Elements.GetAllocationFlags(); }
public:
inline SetElementType& operator[] (int32 Index) { return Elements[Index].Value; }
inline const SetElementType& operator[] (int32 Index) const { return Elements[Index].Value; }
inline bool operator==(const TSet<SetElementType>& Other) const { return Elements == Other.Elements; }
inline bool operator!=(const TSet<SetElementType>& Other) const { return Elements != Other.Elements; }
public:
template<typename T> friend Iterators::TSetIterator<T> begin(const TSet& Set);
template<typename T> friend Iterators::TSetIterator<T> end (const TSet& Set);
};
template<typename KeyElementType, typename ValueElementType>
class TMap
{
public:
using ElementType = TPair<KeyElementType, ValueElementType>;
private:
TSet<ElementType> Elements;
private:
inline void VerifyIndex(int32 Index) const { if (!IsValidIndex(Index)) throw std::out_of_range("Index was out of range!"); }
public:
inline int32 NumAllocated() const { return Elements.NumAllocated(); }
inline int32 Num() const { return Elements.Num(); }
inline int32 Max() const { return Elements.Max(); }
inline bool IsValidIndex(int32 Index) const { return Elements.IsValidIndex(Index); }
inline bool IsValid() const { return Elements.IsValid(); }
public:
const ContainerImpl::FBitArray& GetAllocationFlags() const { return Elements.GetAllocationFlags(); }
public:
inline decltype(auto) Find(const KeyElementType& Key, bool(*Equals)(const KeyElementType& LeftKey, const KeyElementType& RightKey))
{
for (auto It = begin(*this); It != end(*this); ++It)
{
if (Equals(It->Key(), Key))
return It;
}
return end(*this);
}
public:
inline ElementType& operator[] (int32 Index) { return Elements[Index]; }
inline const ElementType& operator[] (int32 Index) const { return Elements[Index]; }
inline bool operator==(const TMap<KeyElementType, ValueElementType>& Other) const { return Elements == Other.Elements; }
inline bool operator!=(const TMap<KeyElementType, ValueElementType>& Other) const { return Elements != Other.Elements; }
public:
template<typename KeyType, typename ValueType> friend Iterators::TMapIterator<KeyType, ValueType> begin(const TMap& Map);
template<typename KeyType, typename ValueType> friend Iterators::TMapIterator<KeyType, ValueType> end (const TMap& Map);
};
namespace Iterators
{
class FRelativeBitReference
{
protected:
static constexpr int32 NumBitsPerDWORD = 32;
static constexpr int32 NumBitsPerDWORDLogTwo = 5;
public:
inline explicit FRelativeBitReference(int32 BitIndex)
: WordIndex(BitIndex >> NumBitsPerDWORDLogTwo)
, Mask(1 << (BitIndex & (NumBitsPerDWORD - 1)))
{
}
int32 WordIndex;
uint32 Mask;
};
class FSetBitIterator : public FRelativeBitReference
{
private:
const ContainerImpl::FBitArray& Array;
uint32 UnvisitedBitMask;
int32 CurrentBitIndex;
int32 BaseBitIndex;
public:
explicit FSetBitIterator(const ContainerImpl::FBitArray& InArray, int32 StartIndex = 0)
: FRelativeBitReference(StartIndex)
, Array(InArray)
, UnvisitedBitMask((~0U) << (StartIndex & (NumBitsPerDWORD - 1)))
, CurrentBitIndex(StartIndex)
, BaseBitIndex(StartIndex & ~(NumBitsPerDWORD - 1))
{
if (StartIndex != Array.Num())
FindFirstSetBit();
}
public:
inline FSetBitIterator& operator++()
{
UnvisitedBitMask &= ~this->Mask;
FindFirstSetBit();
return *this;
}
inline explicit operator bool() const { return CurrentBitIndex < Array.Num(); }
inline bool operator==(const FSetBitIterator& Rhs) const { return CurrentBitIndex == Rhs.CurrentBitIndex && &Array == &Rhs.Array; }
inline bool operator!=(const FSetBitIterator& Rhs) const { return CurrentBitIndex != Rhs.CurrentBitIndex || &Array != &Rhs.Array; }
public:
inline int32 GetIndex() { return CurrentBitIndex; }
void FindFirstSetBit()
{
const uint32* ArrayData = Array.GetData();
const int32 ArrayNum = Array.Num();
const int32 LastWordIndex = (ArrayNum - 1) / NumBitsPerDWORD;
uint32 RemainingBitMask = ArrayData[this->WordIndex] & UnvisitedBitMask;
while (!RemainingBitMask)
{
++this->WordIndex;
BaseBitIndex += NumBitsPerDWORD;
if (this->WordIndex > LastWordIndex)
{
CurrentBitIndex = ArrayNum;
return;
}
RemainingBitMask = ArrayData[this->WordIndex];
UnvisitedBitMask = ~0;
}
const uint32 NewRemainingBitMask = RemainingBitMask & (RemainingBitMask - 1);
this->Mask = NewRemainingBitMask ^ RemainingBitMask;
CurrentBitIndex = BaseBitIndex + NumBitsPerDWORD - 1 - ContainerImpl::HelperFunctions::CountLeadingZeros(this->Mask);
if (CurrentBitIndex > ArrayNum)
CurrentBitIndex = ArrayNum;
}
};
template<typename ArrayType>
class TArrayIterator
{
private:
TArray<ArrayType>& IteratedArray;
int32 Index;
public:
TArrayIterator(const TArray<ArrayType>& Array, int32 StartIndex = 0x0)
: IteratedArray(const_cast<TArray<ArrayType>&>(Array)), Index(StartIndex)
{
}
public:
inline int32 GetIndex() { return Index; }
inline int32 IsValid() { return IteratedArray.IsValidIndex(GetIndex()); }
public:
inline TArrayIterator& operator++() { ++Index; return *this; }
inline TArrayIterator& operator--() { --Index; return *this; }
inline ArrayType& operator*() { return IteratedArray[GetIndex()]; }
inline const ArrayType& operator*() const { return IteratedArray[GetIndex()]; }
inline ArrayType* operator->() { return &IteratedArray[GetIndex()]; }
inline const ArrayType* operator->() const { return &IteratedArray[GetIndex()]; }
inline bool operator==(const TArrayIterator& Other) const { return &IteratedArray == &Other.IteratedArray && Index == Other.Index; }
inline bool operator!=(const TArrayIterator& Other) const { return &IteratedArray != &Other.IteratedArray || Index != Other.Index; }
};
template<class ContainerType>
class TContainerIterator
{
private:
ContainerType& IteratedContainer;
FSetBitIterator BitIterator;
public:
TContainerIterator(const ContainerType& Container, const ContainerImpl::FBitArray& BitArray, int32 StartIndex = 0x0)
: IteratedContainer(const_cast<ContainerType&>(Container)), BitIterator(BitArray, StartIndex)
{
}
public:
inline int32 GetIndex() { return BitIterator.GetIndex(); }
inline int32 IsValid() { return IteratedContainer.IsValidIndex(GetIndex()); }
public:
inline TContainerIterator& operator++() { ++BitIterator; return *this; }
inline TContainerIterator& operator--() { --BitIterator; return *this; }
inline auto& operator*() { return IteratedContainer[GetIndex()]; }
inline const auto& operator*() const { return IteratedContainer[GetIndex()]; }
inline auto* operator->() { return &IteratedContainer[GetIndex()]; }
inline const auto* operator->() const { return &IteratedContainer[GetIndex()]; }
inline bool operator==(const TContainerIterator& Other) const { return &IteratedContainer == &Other.IteratedContainer && BitIterator == Other.BitIterator; }
inline bool operator!=(const TContainerIterator& Other) const { return &IteratedContainer != &Other.IteratedContainer || BitIterator != Other.BitIterator; }
};
}
inline Iterators::FSetBitIterator begin(const ContainerImpl::FBitArray& Array) { return Iterators::FSetBitIterator(Array, 0); }
inline Iterators::FSetBitIterator end (const ContainerImpl::FBitArray& Array) { return Iterators::FSetBitIterator(Array, Array.Num()); }
template<typename T> inline Iterators::TArrayIterator<T> begin(const TArray<T>& Array) { return Iterators::TArrayIterator<T>(Array, 0); }
template<typename T> inline Iterators::TArrayIterator<T> end (const TArray<T>& Array) { return Iterators::TArrayIterator<T>(Array, Array.Num()); }
template<typename T> inline Iterators::TSparseArrayIterator<T> begin(const TSparseArray<T>& Array) { return Iterators::TSparseArrayIterator<T>(Array, Array.GetAllocationFlags(), 0); }
template<typename T> inline Iterators::TSparseArrayIterator<T> end (const TSparseArray<T>& Array) { return Iterators::TSparseArrayIterator<T>(Array, Array.GetAllocationFlags(), Array.NumAllocated()); }
template<typename T> inline Iterators::TSetIterator<T> begin(const TSet<T>& Set) { return Iterators::TSetIterator<T>(Set, Set.GetAllocationFlags(), 0); }
template<typename T> inline Iterators::TSetIterator<T> end (const TSet<T>& Set) { return Iterators::TSetIterator<T>(Set, Set.GetAllocationFlags(), Set.NumAllocated()); }
template<typename T0, typename T1> inline Iterators::TMapIterator<T0, T1> begin(const TMap<T0, T1>& Map) { return Iterators::TMapIterator<T0, T1>(Map, Map.GetAllocationFlags(), 0); }
template<typename T0, typename T1> inline Iterators::TMapIterator<T0, T1> end (const TMap<T0, T1>& Map) { return Iterators::TMapIterator<T0, T1>(Map, Map.GetAllocationFlags(), Map.NumAllocated()); }
#if defined(_WIN64)
static_assert(sizeof(TArray<int32>) == 0x10, "TArray has a wrong size!");
static_assert(sizeof(TSet<int32>) == 0x50, "TSet has a wrong size!");
static_assert(sizeof(TMap<int32, int32>) == 0x50, "TMap has a wrong size!");
#elif defined(_WIN32)
static_assert(sizeof(TArray<int32>) == 0x0C, "TArray has a wrong size!");
static_assert(sizeof(TSet<int32>) == 0x3C, "TSet has a wrong size!");
static_assert(sizeof(TMap<int32, int32>) == 0x3C, "TMap has a wrong size!");
#endif
}

1613
SleepAwake/UtfN.hpp Normal file

File diff suppressed because it is too large Load Diff