From decc3dccb41a323b6e118ee72405b0b458644bf6 Mon Sep 17 00:00:00 2001 From: dexyfex Date: Wed, 13 Mar 2019 04:23:30 +1100 Subject: [PATCH] Fix for resources saving empty arrays --- .../GameFiles/Resources/ResourceBaseTypes.cs | 114 +++++++++++++----- 1 file changed, 84 insertions(+), 30 deletions(-) diff --git a/CodeWalker.Core/GameFiles/Resources/ResourceBaseTypes.cs b/CodeWalker.Core/GameFiles/Resources/ResourceBaseTypes.cs index 17ff40c..7ccb4d9 100644 --- a/CodeWalker.Core/GameFiles/Resources/ResourceBaseTypes.cs +++ b/CodeWalker.Core/GameFiles/Resources/ResourceBaseTypes.cs @@ -714,12 +714,18 @@ namespace CodeWalker.GameFiles public override IResourceBlock[] GetReferences() { var list = new List(); - //if (Entries != null) list.Add(Entries); - data_block = new ResourceSimpleArray(); - data_block.Data = new List(); - data_block.Data.AddRange(data_items); - list.Add(data_block); + if (data_items?.Length > 0) + { + data_block = new ResourceSimpleArray(); + data_block.Data = new List(); + data_block.Data.AddRange(data_items); + list.Add(data_block); + } + else + { + data_block = null; + } return list.ToArray(); } @@ -787,11 +793,17 @@ namespace CodeWalker.GameFiles public override IResourceBlock[] GetReferences() { var list = new List(); - //if (Entries != null) list.Add(Entries); - data_block = new ResourceSystemStructBlock(data_items); + if (data_items?.Length > 0) + { + data_block = new ResourceSystemStructBlock(data_items); - list.Add(data_block); + list.Add(data_block); + } + else + { + data_block = null; + } return list.ToArray(); } @@ -861,11 +873,17 @@ namespace CodeWalker.GameFiles public override IResourceBlock[] GetReferences() { var list = new List(); - //if (Entries != null) list.Add(Entries); - data_block = new ResourceSystemStructBlock(data_items); + if (data_items?.Length > 0) + { + data_block = new ResourceSystemStructBlock(data_items); - list.Add(data_block); + list.Add(data_block); + } + else + { + data_block = null; + } return list.ToArray(); } @@ -933,11 +951,17 @@ namespace CodeWalker.GameFiles public override IResourceBlock[] GetReferences() { var list = new List(); - //if (Entries != null) list.Add(Entries); - data_block = new ResourceSystemStructBlock(data_items); + if (data_items?.Length > 0) + { + data_block = new ResourceSystemStructBlock(data_items); - list.Add(data_block); + list.Add(data_block); + } + else + { + data_block = null; + } return list.ToArray(); } @@ -1005,11 +1029,17 @@ namespace CodeWalker.GameFiles public override IResourceBlock[] GetReferences() { var list = new List(); - //if (Entries != null) list.Add(Entries); - data_block = new ResourceSystemStructBlock(data_items); + if (data_items?.Length > 0) + { + data_block = new ResourceSystemStructBlock(data_items); - list.Add(data_block); + list.Add(data_block); + } + else + { + data_block = null; + } return list.ToArray(); } @@ -1077,11 +1107,17 @@ namespace CodeWalker.GameFiles public override IResourceBlock[] GetReferences() { var list = new List(); - //if (Entries != null) list.Add(Entries); - data_block = new ResourceSystemStructBlock(data_items); + if (data_items?.Length > 0) + { + data_block = new ResourceSystemStructBlock(data_items); - list.Add(data_block); + list.Add(data_block); + } + else + { + data_block = null; + } return list.ToArray(); } @@ -1149,11 +1185,17 @@ namespace CodeWalker.GameFiles public override IResourceBlock[] GetReferences() { var list = new List(); - //if (Entries != null) list.Add(Entries); - data_block = new ResourceSystemStructBlock(data_items); + if (data_items?.Length > 0) + { + data_block = new ResourceSystemStructBlock(data_items); - list.Add(data_block); + list.Add(data_block); + } + else + { + data_block = null; + } return list.ToArray(); } @@ -1221,11 +1263,17 @@ namespace CodeWalker.GameFiles public override IResourceBlock[] GetReferences() { var list = new List(); - //if (Entries != null) list.Add(Entries); - data_block = new ResourceSystemStructBlock(data_items); + if (data_items?.Length > 0) + { + data_block = new ResourceSystemStructBlock(data_items); - list.Add(data_block); + list.Add(data_block); + } + else + { + data_block = null; + } return list.ToArray(); } @@ -1642,10 +1690,16 @@ namespace CodeWalker.GameFiles { var list = new List(); - //if (Entries != null) list.Add(Entries); - data_block = new ResourcePointerArray64(); - data_block.data_items = data_items; - list.Add(data_block); + if (data_items?.Length > 0) + { + data_block = new ResourcePointerArray64(); + data_block.data_items = data_items; + list.Add(data_block); + } + else + { + data_block = null; + } return list.ToArray(); }