propertyflags and funtionflags bitflag enums

This commit is contained in:
Janis 2023-04-20 20:47:11 +02:00
parent e197021c59
commit 92a0b3f6cf

View file

@ -22,39 +22,133 @@ pub struct VTbl(NonNull<()>);
impl VTbl {}
bitflags! {
#[repr(C)]
pub struct EPropertyFlags: u64 {
const None = 0x0000000000000000;
const Edit = 0x0000000000000001;
const ConstParm = 0x0000000000000002;
const BlueprintVisible = 0x0000000000000004;
const ExportObject = 0x0000000000000008;
const BlueprintReadOnly = 0x0000000000000010;
const Net = 0x0000000000000020;
const EditFixedSize = 0x0000000000000040;
const Parm = 0x0000000000000080;
const OutParm = 0x0000000000000100;
const ZeroConstructor = 0x0000000000000200;
const ReturnParm = 0x0000000000000400;
const DisableEditOnTemplate = 0x0000000000000800;
const Transient = 0x0000000000002000;
const Config = 0x0000000000004000;
const DisableEditOnInstance = 0x0000000000010000;
const EditConst = 0x0000000000020000;
const GlobalConfig = 0x0000000000040000;
const InstancedReference = 0x0000000000080000;
const DuplicateTransient = 0x0000000000200000;
const SaveGame = 0x0000000001000000;
const NoClear = 0x0000000002000000;
const ReferenceParm = 0x0000000008000000;
const BlueprintAssignable = 0x0000000010000000;
const Deprecated = 0x0000000020000000;
const IsPlainOldData = 0x0000000040000000;
const RepSkip = 0x0000000080000000;
const RepNotify = 0x0000000100000000;
const Interp = 0x0000000200000000;
const NonTransactional = 0x0000000400000000;
const EditorOnly = 0x0000000800000000;
const NoDestructor = 0x0000001000000000;
const AutoWeak = 0x0000004000000000;
const ContainsInstancedReference = 0x0000008000000000;
const AssetRegistrySearchable = 0x0000010000000000;
const SimpleDisplay = 0x0000020000000000;
const AdvancedDisplay = 0x0000040000000000;
const Protected = 0x0000080000000000;
const BlueprintCallable = 0x0000100000000000;
const BlueprintAuthorityOnly = 0x0000200000000000;
const TextExportTransient = 0x0000400000000000;
const NonPIEDuplicateTransient = 0x0000800000000000;
const ExposeOnSpawn = 0x0001000000000000;
const PersistentInstance = 0x0002000000000000;
const UObjectWrapper = 0x0004000000000000;
const HasGetValueTypeHash = 0x0008000000000000;
const NativeAccessSpecifierPublic = 0x0010000000000000;
const NativeAccessSpecifierProtected = 0x0020000000000000;
const NativeAccessSpecifierPrivate = 0x0040000000000000;
const SkipSerialization = 0x0080000000000000;
}
}
bitflags! {
#[repr(C)]
pub struct EFunctionFlags: u32 {
const None = 0x00000000;
const Final = 0x00000001;
const RequiredAPI = 0x00000002;
const BlueprintAuthorityOnly = 0x00000004;
const BlueprintCosmetic = 0x00000008;
const Net = 0x00000040;
const NetReliable = 0x00000080;
const NetRequest = 0x00000100;
const Exec = 0x00000200;
const Native = 0x00000400;
const Event = 0x00000800;
const NetResponse = 0x00001000;
const Static = 0x00002000;
const NetMulticast = 0x00004000;
const UbergraphFunction = 0x00008000;
const MulticastDelegate = 0x00010000;
const Public = 0x00020000;
const Private = 0x00040000;
const Protected = 0x00080000;
const Delegate = 0x00100000;
const NetServer = 0x00200000;
const HasOutParms = 0x00400000;
const HasDefaults = 0x00800000;
const NetClient = 0x01000000;
const DLLImport = 0x02000000;
const BlueprintCallable = 0x04000000;
const BlueprintEvent = 0x08000000;
const BlueprintPure = 0x10000000;
const EditorOnly = 0x20000000;
const Const = 0x40000000;
const NetValidate = 0x80000000;
const AllFlags = 0xFFFFFFFF;
}
}
bitflags! {
#[repr(C)]
pub struct EObjectFlags: u32 {
const RF_NoFlags = 0x00000000;
const RF_Public = 0x00000001;
const RF_Standalone = 0x00000002;
const RF_MarkAsNative = 0x00000004;
const RF_Transactional = 0x00000008;
const RF_ClassDefaultObject = 0x00000010;
const RF_ArchetypeObject = 0x00000020;
const RF_Transient = 0x00000040;
const RF_MarkAsRootSet = 0x00000080;
const RF_TagGarbageTemp = 0x00000100;
const RF_NeedInitialization = 0x00000200;
const RF_NeedLoad = 0x00000400;
const RF_KeepForCooker = 0x00000800;
const RF_NeedPostLoad = 0x00001000;
const RF_NeedPostLoadSubobjects = 0x00002000;
const RF_NewerVersionExists = 0x00004000;
const RF_BeginDestroyed = 0x00008000;
const RF_FinishDestroyed = 0x00010000;
const RF_BeingRegenerated = 0x00020000;
const RF_DefaultSubObject = 0x00040000;
const RF_WasLoaded = 0x00080000;
const RF_TextExportTransient = 0x00100000;
const RF_LoadCompleted = 0x00200000;
const RF_InheritableComponentTemplate = 0x00400000;
const RF_DuplicateTransient = 0x00800000;
const RF_StrongRefOnFrame = 0x01000000;
const RF_NonPIEDuplicateTransient = 0x02000000;
const RF_Dynamic = 0x04000000;
const RF_WillBeLoaded = 0x08000000;
const RF_HasExternalPackage = 0x10000000;
const NoFlags = 0x00000000;
const Public = 0x00000001;
const Standalone = 0x00000002;
const MarkAsNative = 0x00000004;
const Transactional = 0x00000008;
const ClassDefaultObject = 0x00000010;
const ArchetypeObject = 0x00000020;
const Transient = 0x00000040;
const MarkAsRootSet = 0x00000080;
const TagGarbageTemp = 0x00000100;
const NeedInitialization = 0x00000200;
const NeedLoad = 0x00000400;
const KeepForCooker = 0x00000800;
const NeedPostLoad = 0x00001000;
const NeedPostLoadSubobjects = 0x00002000;
const NewerVersionExists = 0x00004000;
const BeginDestroyed = 0x00008000;
const FinishDestroyed = 0x00010000;
const BeingRegenerated = 0x00020000;
const DefaultSubObject = 0x00040000;
const WasLoaded = 0x00080000;
const TextExportTransient = 0x00100000;
const LoadCompleted = 0x00200000;
const InheritableComponentTemplate = 0x00400000;
const DuplicateTransient = 0x00800000;
const StrongRefOnFrame = 0x01000000;
const NonPIEDuplicateTransient = 0x02000000;
const Dynamic = 0x04000000;
const WillBeLoaded = 0x08000000;
const HasExternalPackage = 0x10000000;
}
}
@ -603,7 +697,7 @@ pub mod traits {
#[const_trait]
pub trait UFunctionTrait: ~const AsUObject {
fn function_flags(&self) -> &u32 {
fn function_flags(&self) -> &super::EFunctionFlags {
unsafe { &*self.as_uobject().raw_ptr().offset(144).cast() }
}
fn rep_offset(&self) -> &u16 {
@ -640,7 +734,7 @@ pub mod traits {
fn element_size(&self) -> &i32 {
unsafe { &*self.as_uobject().raw_ptr().offset(52).cast() }
}
fn property_flags(&self) -> &u64 {
fn property_flags(&self) -> &super::EPropertyFlags {
unsafe { &*self.as_uobject().raw_ptr().offset(56).cast() }
}
fn rep_index(&self) -> &i16 {