DLL: Output static field offsets (StaticFieldOffsetAttribute)
This commit is contained in:
@@ -67,6 +67,7 @@ namespace Il2CppInspector.Outputs
|
|||||||
// Our custom attributes
|
// Our custom attributes
|
||||||
private TypeDef addressAttribute;
|
private TypeDef addressAttribute;
|
||||||
private TypeDef fieldOffsetAttribute;
|
private TypeDef fieldOffsetAttribute;
|
||||||
|
private TypeDef staticFieldOffsetAttribute;
|
||||||
private TypeDef attributeAttribute;
|
private TypeDef attributeAttribute;
|
||||||
private TypeDef metadataOffsetAttribute;
|
private TypeDef metadataOffsetAttribute;
|
||||||
private TypeDef metadataPreviewAttribute;
|
private TypeDef metadataPreviewAttribute;
|
||||||
@@ -118,6 +119,10 @@ namespace Il2CppInspector.Outputs
|
|||||||
fieldOffsetAttribute.Fields.Add(new FieldDefUser("Offset", stringField, FieldAttributes.Public));
|
fieldOffsetAttribute.Fields.Add(new FieldDefUser("Offset", stringField, FieldAttributes.Public));
|
||||||
fieldOffsetAttribute.AddDefaultConstructor(attributeCtorRef);
|
fieldOffsetAttribute.AddDefaultConstructor(attributeCtorRef);
|
||||||
|
|
||||||
|
staticFieldOffsetAttribute = createAttribute("StaticFieldOffsetAttribute");
|
||||||
|
staticFieldOffsetAttribute.Fields.Add(new FieldDefUser("Offset", stringField, FieldAttributes.Public));
|
||||||
|
staticFieldOffsetAttribute.AddDefaultConstructor(attributeCtorRef);
|
||||||
|
|
||||||
attributeAttribute = createAttribute("AttributeAttribute");
|
attributeAttribute = createAttribute("AttributeAttribute");
|
||||||
attributeAttribute.Fields.Add(new FieldDefUser("Name", stringField, FieldAttributes.Public));
|
attributeAttribute.Fields.Add(new FieldDefUser("Name", stringField, FieldAttributes.Public));
|
||||||
attributeAttribute.Fields.Add(new FieldDefUser("RVA", stringField, FieldAttributes.Public));
|
attributeAttribute.Fields.Add(new FieldDefUser("RVA", stringField, FieldAttributes.Public));
|
||||||
@@ -233,7 +238,9 @@ namespace Il2CppInspector.Outputs
|
|||||||
|
|
||||||
// Field offset
|
// Field offset
|
||||||
if (!field.IsStatic)
|
if (!field.IsStatic)
|
||||||
mField.AddAttribute(module, fieldOffsetAttribute, ("Offset", $"0x{field.Offset:X}"));
|
mField.AddAttribute(module, fieldOffsetAttribute, ("Offset", $"0x{field.Offset:X2}"));
|
||||||
|
else if (!field.IsLiteral)
|
||||||
|
mField.AddAttribute(module, staticFieldOffsetAttribute, ("Offset", $"0x{field.Offset:X2}"));
|
||||||
|
|
||||||
// Add token attribute
|
// Add token attribute
|
||||||
mField.AddAttribute(module, tokenAttribute, ("Token", $"0x{field.MetadataToken:X8}"));
|
mField.AddAttribute(module, tokenAttribute, ("Token", $"0x{field.MetadataToken:X8}"));
|
||||||
|
|||||||
Reference in New Issue
Block a user