Added memoryOffset value to DNAFieldAttribute, regenerated files.

This commit is contained in:
Samuele Lorefice
2025-02-20 21:00:55 +01:00
parent b171b65aa5
commit f383debd18
939 changed files with 9636 additions and 9605 deletions

View File

@@ -117,9 +117,8 @@ namespace CodeGenerator {
}
var size = 0;
var attributes = GenerateDNAFieldAttribute(index, field, field.M_Parent.M_Parent, out size);
var attributes = GenerateDNAFieldAttribute(index, field, field.M_Parent.M_Parent, totalSize, out size);
totalSize += size;
cmf.CustomAttributes.Add(attributes);
ctd.Members.Add(cmf);
}
@@ -266,6 +265,25 @@ namespace CodeGenerator {
ctd.Members.Add(cmp);
cmf = new CodeMemberField(typeof(int), "_memoryOffset") {
Attributes = MemberAttributes.Private
};
cmp = new CodeMemberProperty() {
Name = "MemoryOffset",
Type = new CodeTypeReference(typeof(int)),
Attributes = MemberAttributes.Public,
HasGet = true,
GetStatements = {
new CodeMethodReturnStatement(new CodeSnippetExpression("0"))
},
HasSet = true,
SetStatements = {
new CodeAssignStatement(new CFieldRefExp(new CThisRefExp(), "_memoryOffset"), new CArgRefExp("value"))
}
};
ctd.Members.Add(cmp);
var cc = new CodeConstructor() { Attributes = MemberAttributes.Public };
cc.Parameters.AddRange(new CParamDeclExp[] {
@@ -274,7 +292,8 @@ namespace CodeGenerator {
new(typeof(string), "originalName"),
new(typeof(string), "underlyingType"),
new(typeof(int), "size"),
new(typeof(bool), "isPointer")
new(typeof(bool), "isPointer"),
new(typeof(int), "memoryOffset")
});
cc.Statements.AddRange(new CodeAssignStatement[] {
@@ -283,7 +302,8 @@ namespace CodeGenerator {
new(new CFieldRefExp(new CThisRefExp(), "OriginalName"), new CArgRefExp("originalName")),
new(new CFieldRefExp(new CThisRefExp(), "OriginalType"), new CArgRefExp("underlyingType")),
new(new CFieldRefExp(new CThisRefExp(), "Size"), new CArgRefExp("size")),
new(new CFieldRefExp(new CThisRefExp(), "IsPointer"), new CArgRefExp("isPointer"))
new(new CFieldRefExp(new CThisRefExp(), "IsPointer"), new CArgRefExp("isPointer")),
new(new CFieldRefExp(new CThisRefExp(), "MemoryOffset"), new CArgRefExp("memoryOffset"))
});
ctd.Members.Add(cc);
@@ -381,7 +401,7 @@ namespace CodeGenerator {
}
private static CodeAttributeDeclaration GenerateDNAFieldAttribute(int index, BlendFile.DnaField field,
BlendFile.Dna1Body body, out int size) {
BlendFile.Dna1Body body, int offset, out int size) {
string t;
size = body.Lengths[field.IdxType];
@@ -421,7 +441,8 @@ namespace CodeGenerator {
new(new CodePrimitiveExpression(field.Name)),
new(new CodePrimitiveExpression(t)),
new(new CodePrimitiveExpression(size)),
new(new CodePrimitiveExpression(isPointer))
new(new CodePrimitiveExpression(isPointer)),
new(new CodePrimitiveExpression(offset))
});
return cad;
}