Fixed list length value returning always zero.

Added separated pointer and count memory offsets to list attributes.
Tried handling them
This commit is contained in:
Samuele Lorefice
2025-03-06 19:11:03 +01:00
parent 0bc7f73aee
commit fb50e3fa44
12 changed files with 75 additions and 48 deletions

View File

@@ -13,15 +13,15 @@ using System;
namespace BlendFile.DNA {
using BlendFile;
[DNAClassAttribute(63, "ActionChannelBag", 8)]
[DNAClassAttribute(63, "ActionChannelBag", 24)]
public class ActionChannelBag {
[DNAFieldAttribute(4, "int", 0, "slot_handle", "int", false, 0)]
public int slot_handle;
[DNAFieldAttribute(4, "uchar", 3, "_pad[4]", "System.Byte[]", false, 4)]
public byte[] _pad = new System.Byte[4];
[DNAListAttribute(8, "bActionGroup", "**group_array", 2, "bActionGroup", "group_array_num", 1, 8)]
[DNAListAttribute(8, "bActionGroup", "**group_array", 2, "bActionGroup", "group_array_num", 1, 8, 0)]
public System.Collections.Generic.List<bActionGroup> group_array;
[DNAListAttribute(8, "FCurve", "**fcurve_array", 5, "FCurve", "fcurve_array_num", 4, 8)]
[DNAListAttribute(8, "FCurve", "**fcurve_array", 5, "FCurve", "fcurve_array_num", 4, 16, 0)]
public System.Collections.Generic.List<FCurve> fcurve_array;
public ActionChannelBag() {
this.slot_handle = default;

View File

@@ -13,7 +13,7 @@ using System;
namespace BlendFile.DNA {
using BlendFile;
[DNAClassAttribute(66, "ActionLayer", 76)]
[DNAClassAttribute(66, "ActionLayer", 84)]
public class ActionLayer {
[DNAFieldAttribute(64, "char", 0, "name[64]", "System.Char[]", false, 0)]
public char[] name = new System.Char[64];
@@ -27,7 +27,7 @@ namespace BlendFile.DNA {
public byte[] _pad0 = new System.Byte[2];
[DNAFieldAttribute(4, "uchar", 7, "_pad1[4]", "System.Byte[]", false, 72)]
public byte[] _pad1 = new System.Byte[4];
[DNAListAttribute(8, "ActionStrip", "**strip_array", 5, "ActionStrip", "strip_array_num", 6, 76)]
[DNAListAttribute(8, "ActionStrip", "**strip_array", 5, "ActionStrip", "strip_array_num", 6, 76, 0)]
public System.Collections.Generic.List<ActionStrip> strip_array;
public ActionLayer() {
this.name = default;

View File

@@ -13,11 +13,11 @@ using System;
namespace BlendFile.DNA {
using BlendFile;
[DNAClassAttribute(68, "ActionStripKeyframeData", 4)]
[DNAClassAttribute(68, "ActionStripKeyframeData", 12)]
public class ActionStripKeyframeData {
[DNAFieldAttribute(4, "uchar", 2, "_pad[4]", "System.Byte[]", false, 0)]
public byte[] _pad = new System.Byte[4];
[DNAListAttribute(8, "ActionChannelBag", "**channelbag_array", 0, "ActionChannelBag", "channelbag_array_num", 1, 4)]
[DNAListAttribute(8, "ActionChannelBag", "**channelbag_array", 0, "ActionChannelBag", "channelbag_array_num", 1, 4, 0)]
public System.Collections.Generic.List<ActionChannelBag> channelbag_array;
public ActionStripKeyframeData() {
this._pad = default;

View File

@@ -13,7 +13,7 @@ using System;
namespace BlendFile.DNA {
using BlendFile;
[DNAClassAttribute(311, "GreasePencil", 570)]
[DNAClassAttribute(311, "GreasePencil", 586)]
public class GreasePencil {
[DNAFieldAttribute(208, "ID", 0, "id", "ID", false, 0)]
public ID id;
@@ -45,9 +45,9 @@ namespace BlendFile.DNA {
public GreasePencilOnionSkinningSettings onion_skinning_settings;
[DNAFieldAttribute(8, "GreasePencilRuntimeHandle", 18, "*runtime", "GreasePencilRuntimeHandle", true, 562)]
public GreasePencilRuntimeHandle runtime;
[DNAListAttribute(8, "GreasePencilDrawingBase", "**drawing_array", 2, "GreasePencilDrawingBase", "drawing_array_size", 3, 570)]
[DNAListAttribute(8, "GreasePencilDrawingBase", "**drawing_array", 2, "GreasePencilDrawingBase", "drawing_array_size", 3, 570, 0)]
public System.Collections.Generic.List<GreasePencilDrawingBase> drawing_array;
[DNAListAttribute(8, "Material", "**material_array", 10, "Material", "material_array_size", 11, 570)]
[DNAListAttribute(8, "Material", "**material_array", 10, "Material", "material_array_size", 11, 578, 0)]
public System.Collections.Generic.List<Material> material_array;
public GreasePencil() {
this.id = default;

View File

@@ -13,7 +13,7 @@ using System;
namespace BlendFile.DNA {
using BlendFile;
[DNAClassAttribute(19, "IDPropertyUIDataBool", 20)]
[DNAClassAttribute(19, "IDPropertyUIDataBool", 28)]
public class IDPropertyUIDataBool {
[DNAFieldAttribute(16, "IDPropertyUIData", 0, "base", "IDPropertyUIData", false, 0)]
public IDPropertyUIData @base;
@@ -21,7 +21,7 @@ namespace BlendFile.DNA {
public char[] _pad = new System.Char[3];
[DNAFieldAttribute(1, "int8_t", 4, "default_value", "int8_t", false, 19)]
public sbyte default_value;
[DNAListAttribute(8, "int8_t", "*default_array", 1, "int8_t", "default_array_len", 2, 20)]
[DNAListAttribute(8, "int8_t", "*default_array", 1, "int8_t", "default_array_len", 2, 20, 0)]
public System.Collections.Generic.List<sbyte> default_array;
public IDPropertyUIDataBool() {
this.@base = default;

View File

@@ -13,7 +13,7 @@ using System;
namespace BlendFile.DNA {
using BlendFile;
[DNAClassAttribute(20, "IDPropertyUIDataFloat", 68)]
[DNAClassAttribute(20, "IDPropertyUIDataFloat", 76)]
public class IDPropertyUIDataFloat {
[DNAFieldAttribute(16, "IDPropertyUIData", 0, "base", "IDPropertyUIData", false, 0)]
public IDPropertyUIData @base;
@@ -33,7 +33,7 @@ namespace BlendFile.DNA {
public double soft_max;
[DNAFieldAttribute(8, "double", 10, "default_value", "double", false, 60)]
public double default_value;
[DNAListAttribute(8, "double", "*default_array", 1, "double", "default_array_len", 2, 68)]
[DNAListAttribute(8, "double", "*default_array", 1, "double", "default_array_len", 2, 68, 0)]
public System.Collections.Generic.List<double> default_array;
public IDPropertyUIDataFloat() {
this.@base = default;

View File

@@ -13,7 +13,7 @@ using System;
namespace BlendFile.DNA {
using BlendFile;
[DNAClassAttribute(18, "IDPropertyUIDataInt", 52)]
[DNAClassAttribute(18, "IDPropertyUIDataInt", 60)]
public class IDPropertyUIDataInt {
[DNAFieldAttribute(16, "IDPropertyUIData", 0, "base", "IDPropertyUIData", false, 0)]
public IDPropertyUIData @base;
@@ -33,7 +33,7 @@ namespace BlendFile.DNA {
public int enum_items_num;
[DNAFieldAttribute(8, "IDPropertyUIDataEnumItem", 10, "*enum_items", "IDPropertyUIDataEnumItem", true, 44)]
public IDPropertyUIDataEnumItem enum_items;
[DNAListAttribute(8, "int", "*default_array", 1, "int", "default_array_len", 2, 52)]
[DNAListAttribute(8, "int", "*default_array", 1, "int", "default_array_len", 2, 52, 0)]
public System.Collections.Generic.List<int> default_array;
public IDPropertyUIDataInt() {
this.@base = default;

View File

@@ -13,7 +13,7 @@ using System;
namespace BlendFile.DNA {
using BlendFile;
[DNAClassAttribute(65, "bAction", 316)]
[DNAClassAttribute(65, "bAction", 340)]
public class bAction {
[DNAFieldAttribute(208, "ID", 0, "id", "ID", false, 0)]
public ID id;
@@ -45,11 +45,11 @@ namespace BlendFile.DNA {
public float frame_end;
[DNAFieldAttribute(8, "PreviewImage", 20, "*preview", "PreviewImage", true, 308)]
public PreviewImage preview;
[DNAListAttribute(8, "ActionLayer", "**layer_array", 1, "ActionLayer", "layer_array_num", 2, 316)]
[DNAListAttribute(8, "ActionLayer", "**layer_array", 1, "ActionLayer", "layer_array_num", 2, 316, 0)]
public System.Collections.Generic.List<ActionLayer> layer_array;
[DNAListAttribute(8, "ActionSlot", "**slot_array", 4, "ActionSlot", "slot_array_num", 5, 316)]
[DNAListAttribute(8, "ActionSlot", "**slot_array", 4, "ActionSlot", "slot_array_num", 5, 324, 0)]
public System.Collections.Generic.List<ActionSlot> slot_array;
[DNAListAttribute(8, "ActionStripKeyframeData", "**strip_keyframe_data_array", 7, "ActionStripKeyframeData", "strip_keyframe_data_array_num", 8, 316)]
[DNAListAttribute(8, "ActionStripKeyframeData", "**strip_keyframe_data_array", 7, "ActionStripKeyframeData", "strip_keyframe_data_array_num", 8, 332, 0)]
public System.Collections.Generic.List<ActionStripKeyframeData> strip_keyframe_data_array;
public bAction() {
this.id = default;

View File

@@ -13,7 +13,7 @@ using System;
namespace BlendFile.DNA {
using BlendFile;
[DNAClassAttribute(106, "bArmature", 404)]
[DNAClassAttribute(106, "bArmature", 412)]
public class bArmature {
[DNAFieldAttribute(208, "ID", 0, "id", "ID", false, 0)]
public ID id;
@@ -59,7 +59,7 @@ namespace BlendFile.DNA {
public float axes_position;
[DNAFieldAttribute(16, "bArmature_Runtime", 23, "runtime", "bArmature_Runtime", false, 388)]
public bArmature_Runtime runtime;
[DNAListAttribute(8, "BoneCollection", "**collection_array", 15, "BoneCollection", "collection_array_num", 16, 404)]
[DNAListAttribute(8, "BoneCollection", "**collection_array", 15, "BoneCollection", "collection_array_num", 16, 404, 0)]
public System.Collections.Generic.List<BoneCollection> collection_array;
public bArmature() {
this.id = default;

View File

@@ -77,16 +77,25 @@ namespace BlendFile {
this._CountFieldIndex = value;
}
}
private int _MemoryOffset;
public virtual int MemoryOffset {
private int _PtrMemoryOffset;
public virtual int PtrMemoryOffset {
get {
return this._MemoryOffset;
return this._PtrMemoryOffset;
}
set {
this._MemoryOffset = value;
this._PtrMemoryOffset = value;
}
}
public DNAListAttribute(int Size, string OriginalType, string OriginalName, int OriginalIndex, string UnderlyingType, string CountFieldName, int CountFieldIndex, int MemoryOffset) :
private int _CountMemoryOffset;
public virtual int CountMemoryOffset {
get {
return this._CountMemoryOffset;
}
set {
this._CountMemoryOffset = value;
}
}
public DNAListAttribute(int Size, string OriginalType, string OriginalName, int OriginalIndex, string UnderlyingType, string CountFieldName, int CountFieldIndex, int PtrMemoryOffset, int CountMemoryOffset) :
base(OriginalIndex, OriginalName) {
this._Size = Size;
this._OriginalType = OriginalType;
@@ -95,7 +104,8 @@ namespace BlendFile {
this._UnderlyingType = UnderlyingType;
this._CountFieldName = CountFieldName;
this._CountFieldIndex = CountFieldIndex;
this._MemoryOffset = MemoryOffset;
this._PtrMemoryOffset = PtrMemoryOffset;
this._CountMemoryOffset = CountMemoryOffset;
}
}
}