diff --git a/BlendFile/Reader.cs b/BlendFile/Reader.cs index bd0e9ca..5732004 100644 --- a/BlendFile/Reader.cs +++ b/BlendFile/Reader.cs @@ -188,23 +188,15 @@ public class Reader { case DNAFieldAttribute fieldAttribute: value = ConvertNormalField(block, fieldAttribute, startOffset); break; + case DNAArrayAttribute arrayAttribute: + value = ConvertArrayField(block, field, arrayAttribute, startOffset); + break; case DNAListAttribute listAttribute: value = ConvertListField(block, field, listAttribute, startOffset); break; default: continue; //should never happen. } - - var type = field.FieldType; - var valType = value?.GetType(); - if (valType != null && type != valType) { - if (type.IsArray && valType.IsArray) { - var array = (Array)value; - var newArray = Array.CreateInstance(type.GetElementType()!, array.Length); - Array.Copy(array, newArray, array.Length); - value = newArray; - } - } field.SetValue(obj, value); @@ -215,6 +207,10 @@ public class Reader { objects.Add((block.MemAddr.ToPointer() + startOffset, obj!.GetType()), obj!); } + private object? ConvertArrayField(FileBlock block, FieldInfo field, DNAArrayAttribute arrayAttribute, IntPtr startOffset) { + throw new NotImplementedException(); + } + private void FillObject(IntPtr ptr, ref object? obj, FieldInfo[] fieldMetadata) { var block = GetBlock(ptr.ToInt64());