UEnum, UFunction and UProperty injection
This commit is contained in:
parent
6ea9e81e29
commit
8d2f0ab142
|
@ -513,6 +513,37 @@ pub(crate) fn inject_coreuobject_types(sdk: &mut Sdk) {
|
|||
methods: vec![],
|
||||
};
|
||||
let ufield = sdk.inject_type(ufield).expect("ufield");
|
||||
|
||||
let uenum = Class {
|
||||
is_class: true,
|
||||
size: 48,
|
||||
name: "Enum".to_string(),
|
||||
full_name: "Class CoreUObject.Enum".to_string(),
|
||||
super_class: Some(unsafe { ufield.cast() }),
|
||||
fields: vec![
|
||||
ClassField {
|
||||
offset: 48,
|
||||
size: 16,
|
||||
name: "cpp_type".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::Custom("FString")),
|
||||
},
|
||||
ClassField {
|
||||
offset: 64,
|
||||
size: 16,
|
||||
name: "names".to_string(),
|
||||
ty: Type::Array(Box::new(Type::Name)),
|
||||
},
|
||||
ClassField {
|
||||
offset: 80,
|
||||
size: 4,
|
||||
name: "cpp_form_raw".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U32),
|
||||
},
|
||||
],
|
||||
methods: vec![],
|
||||
};
|
||||
let _uenum = sdk.inject_type(uenum).expect("uenum");
|
||||
|
||||
let ustruct = Class {
|
||||
is_class: true,
|
||||
size: 144,
|
||||
|
@ -524,13 +555,13 @@ pub(crate) fn inject_coreuobject_types(sdk: &mut Sdk) {
|
|||
offset: 48,
|
||||
size: 8,
|
||||
name: "super_struct".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::Custom("Option<NonNull<UStruct>>")),
|
||||
ty: Type::Primitive(PrimitiveType::Custom("Option<UStruct>")),
|
||||
},
|
||||
ClassField {
|
||||
offset: 56,
|
||||
size: 8,
|
||||
name: "children".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::Custom("Option<NonNull<UField>>")),
|
||||
ty: Type::Primitive(PrimitiveType::Custom("Option<UField>")),
|
||||
},
|
||||
ClassField {
|
||||
offset: 64,
|
||||
|
@ -548,18 +579,117 @@ pub(crate) fn inject_coreuobject_types(sdk: &mut Sdk) {
|
|||
methods: vec![],
|
||||
};
|
||||
let ustruct = sdk.inject_type(ustruct).expect("ustruct");
|
||||
|
||||
let uproperty = Class {
|
||||
is_class: true,
|
||||
size: 144,
|
||||
name: "Property".to_string(),
|
||||
full_name: "Class CoreUObject.Property".to_string(),
|
||||
super_class: Some(unsafe { ufield.cast() }),
|
||||
fields: vec![
|
||||
ClassField {
|
||||
offset: 48,
|
||||
size: 4,
|
||||
name: "array_dimensions".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::I32),
|
||||
},
|
||||
ClassField {
|
||||
offset: 52,
|
||||
size: 4,
|
||||
name: "element_size".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::I32),
|
||||
},
|
||||
ClassField {
|
||||
offset: 56,
|
||||
size: 8,
|
||||
name: "property_flags".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U64),
|
||||
},
|
||||
ClassField {
|
||||
offset: 64,
|
||||
size: 2,
|
||||
name: "rep_index".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::I16),
|
||||
},
|
||||
ClassField {
|
||||
offset: 68,
|
||||
size: 8,
|
||||
name: "rep_notify_function".to_string(),
|
||||
ty: Type::Name,
|
||||
},
|
||||
ClassField {
|
||||
offset: 76,
|
||||
size: 4,
|
||||
name: "offset".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::I32),
|
||||
},
|
||||
],
|
||||
methods: vec![],
|
||||
};
|
||||
let _uproperty = sdk.inject_type(uproperty).expect("uproperty");
|
||||
|
||||
let ufunction = Class {
|
||||
is_class: true,
|
||||
size: 176,
|
||||
name: "Function".to_string(),
|
||||
full_name: "Class CoreUObject.Function".to_string(),
|
||||
super_class: Some(unsafe { ustruct.cast() }),
|
||||
fields: vec![ClassField {
|
||||
offset: 144,
|
||||
size: 4,
|
||||
name: "function_flags".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U32),
|
||||
}],
|
||||
fields: vec![
|
||||
ClassField {
|
||||
offset: 144,
|
||||
size: 4,
|
||||
name: "function_flags".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U32),
|
||||
},
|
||||
ClassField {
|
||||
offset: 148,
|
||||
size: 2,
|
||||
name: "rep_offset".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U16),
|
||||
},
|
||||
ClassField {
|
||||
offset: 150,
|
||||
size: 1,
|
||||
name: "num_params".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U8),
|
||||
},
|
||||
ClassField {
|
||||
offset: 152,
|
||||
size: 2,
|
||||
name: "params_size".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U16),
|
||||
},
|
||||
ClassField {
|
||||
offset: 154,
|
||||
size: 2,
|
||||
name: "return_value_offset".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U16),
|
||||
},
|
||||
ClassField {
|
||||
offset: 156,
|
||||
size: 2,
|
||||
name: "rpc_id".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U16),
|
||||
},
|
||||
ClassField {
|
||||
offset: 158,
|
||||
size: 2,
|
||||
name: "rpc_response_id".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::U16),
|
||||
},
|
||||
ClassField {
|
||||
offset: 160,
|
||||
size: 8,
|
||||
name: "first_propert_to_init".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::Custom("Option<UProperty>")),
|
||||
},
|
||||
ClassField {
|
||||
offset: 168,
|
||||
size: 8,
|
||||
name: "func".to_string(),
|
||||
ty: Type::Primitive(PrimitiveType::Custom("Option<NonNull<()>>")),
|
||||
},
|
||||
],
|
||||
methods: vec![],
|
||||
};
|
||||
let _ufunction = sdk.inject_type(ufunction).expect("ufunction");
|
||||
|
|
Loading…
Reference in a new issue