diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CXml.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CXml.cs index 5104fe737..41b17b60f 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CXml.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CXml.cs @@ -38,6 +38,7 @@ public override void Read(BinaryReader file, uint size) { var len = file.ReadInt32(); backingfield = file.ReadBytes(len); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -52,9 +53,11 @@ public override CVariable SetValue(object val) { case XDocument document: Data = document; + SetIsSerialized(); break; case CXml cvar: - this.Data = cvar.Data; + Data = cvar.Data; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CurveInfo.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CurveInfo.cs index f8fa17476..95f47d8d1 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CurveInfo.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CurveInfo.cs @@ -60,6 +60,7 @@ public override void Read(BinaryReader file, uint size) pieces.Read(file, size, count); + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CurvePiece.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CurvePiece.cs index 223381788..31c8271e8 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CurvePiece.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/CurvePiece.cs @@ -58,6 +58,7 @@ public override void Read(BinaryReader file, uint size) } values.Read(file, size, valueCount.val); + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockData.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockData.cs index 3eca87b01..a4127e844 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockData.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockData.cs @@ -104,6 +104,7 @@ public override void Read(BinaryReader file, uint size) { throw new InvalidParsingException("read too far"); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockDataObjects/SBlockDataDecal.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockDataObjects/SBlockDataDecal.cs index 3258e4222..861b8e59f 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockDataObjects/SBlockDataDecal.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockDataObjects/SBlockDataDecal.cs @@ -45,6 +45,7 @@ public override void Read(BinaryReader file, uint size) { throw new InvalidParsingException("read too far"); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockDataObjects/SBlockDataMeshObject.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockDataObjects/SBlockDataMeshObject.cs index a65c1644a..057643cb0 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockDataObjects/SBlockDataMeshObject.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SBlockDataObjects/SBlockDataMeshObject.cs @@ -43,6 +43,7 @@ public override void Read(BinaryReader file, uint size) { throw new InvalidParsingException("read too far"); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SEntityBufferType1.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SEntityBufferType1.cs index d59616d22..0f049f7f1 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SEntityBufferType1.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SEntityBufferType1.cs @@ -43,6 +43,7 @@ public override void Read(BinaryReader file , uint size) Guid.Read(file, 16); Buffer.Read(file, size); } + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SEntityBufferType2.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SEntityBufferType2.cs index f216d9653..db82d7f76 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SEntityBufferType2.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SEntityBufferType2.cs @@ -35,6 +35,7 @@ public override void Read(BinaryReader file, uint size) sizeofdata.Read(file, 4); componentName.Read(file, 2); variables.Read(file, size); + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SMeshBlock5.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SMeshBlock5.cs index e68126c50..a5e7706b7 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SMeshBlock5.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SMeshBlock5.cs @@ -32,6 +32,7 @@ public override void Read(BinaryReader file, uint size) throw new NotImplementedException(); unk1.Read(file, (uint)bytesize.val - 2); + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SParticleEmitterModuleData.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SParticleEmitterModuleData.cs index 7f972fb3a..194c46b4c 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SParticleEmitterModuleData.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SParticleEmitterModuleData.cs @@ -173,6 +173,7 @@ public override void Read(BinaryReader file, uint size) CVariable variable = fields[i]; variable.Read(file, size); } + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -193,6 +194,7 @@ public override CVariable SetValue(object val) if (val is SParticleEmitterModuleData) { fields = (val as SParticleEmitterModuleData).fields; + SetIsSerialized(); } return this; } diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SVector3D.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SVector3D.cs index 0fce6a873..90f710dd8 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SVector3D.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/Complex/SVector3D.cs @@ -66,6 +66,7 @@ public override void Read(BinaryReader file, uint size) X.Read(file, size); Y.Read(file, size); Z.Read(file, size); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -82,6 +83,7 @@ public override CVariable SetValue(object val) this.X = v.X; this.Y = v.Y; this.Z = v.Z; + SetIsSerialized(); } return this; diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/SMipData.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/SMipData.cs index 15db84475..991865550 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/SMipData.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/SMipData.cs @@ -31,6 +31,7 @@ public override void Read(BinaryReader file, uint size) // if is uncooked if (this.REDFlags == 0) Mip.Read(file, 0); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/SVector2D.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/SVector2D.cs index 08c079866..2aa6d07c1 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/SVector2D.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferStructs/SVector2D.cs @@ -24,6 +24,7 @@ public override CVariable SetValue(object val) { this.x = v.x; this.y = v.y; + SetIsSerialized(); } return this; diff --git a/WolvenKit.CR2W/Types/BufferedTypes/BufferedClasses.cs b/WolvenKit.CR2W/Types/BufferedTypes/BufferedClasses.cs index 63d4de412..78f925ccd 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/BufferedClasses.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/BufferedClasses.cs @@ -183,6 +183,7 @@ public override CVariable SetValue(object val) if (val is CXml) { Ragdolldata = (CXml)val; + SetIsSerialized(); } return this; @@ -207,6 +208,7 @@ public override void Read(BinaryReader file, uint size) return; Unk1 = new CUInt32(cr2w, this, nameof(Unk1)) { IsSerialized = true }; Unk1.Read(file, size); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CBitmapTexture.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CBitmapTexture.cs index 77d5f76d8..c25bebb91 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CBitmapTexture.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CBitmapTexture.cs @@ -73,6 +73,7 @@ public override void Read(BinaryReader file, uint size) unk1.Read(file, 2); unk2.Read(file, 2); Residentmip.Read(file, ResidentmipSize.val); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CCubeTexture.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CCubeTexture.cs index 1796f8559..d16011c33 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CCubeTexture.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CCubeTexture.cs @@ -38,6 +38,7 @@ public override void Read(BinaryReader file, uint size) Rawfile.Read(file, Filesize.val); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CEntity.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CEntity.cs index f410adede..d2e73d640 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CEntity.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CEntity.cs @@ -112,6 +112,7 @@ public override void Read(BinaryReader file, uint size) } #endregion + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CFXTrackItem.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CFXTrackItem.cs index 406917a35..a85623205 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CFXTrackItem.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CFXTrackItem.cs @@ -45,6 +45,7 @@ public override void Read(BinaryReader file, uint size) { } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CFont.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CFont.cs index 74d1ff0a2..ab9f94d64 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CFont.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CFont.cs @@ -87,6 +87,7 @@ public override void Read(BinaryReader file, uint size) Glyphs.AddVariable(glyph); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CGenericGrassMask.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CGenericGrassMask.cs index 346216e07..28d7959b3 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CGenericGrassMask.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CGenericGrassMask.cs @@ -34,6 +34,7 @@ public override void Read(BinaryReader file, uint size) if (MaskRes == null) return; var res = MaskRes.val; grassmask.Bytes = file.ReadBytes((int)(res * res >> 3)); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CLayerInfo.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CLayerInfo.cs index 088b96a18..bb484dc20 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CLayerInfo.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CLayerInfo.cs @@ -34,6 +34,7 @@ public override void Read(BinaryReader file, uint size) ParentGroup.ChunkHandle = true; ParentGroup.Read(file, 4); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CPhysicalCollision.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CPhysicalCollision.cs index 3fe3e8205..bc2eb4eda 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CPhysicalCollision.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CPhysicalCollision.cs @@ -32,6 +32,7 @@ public override void Read(BinaryReader file, uint size) var endpos = file.BaseStream.Position; Data.Read(file, (uint)(size - (endpos - startpos))); + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CQuestScriptBlock.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CQuestScriptBlock.cs index 2b55ed0bf..caa85d195 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CQuestScriptBlock.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CQuestScriptBlock.cs @@ -37,6 +37,7 @@ public override void Read(BinaryReader file, uint size) BufferParameters.AddVariableWithName(cVariant); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSectorData.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSectorData.cs index d449ccdf1..4d25e51ab 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSectorData.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSectorData.cs @@ -66,6 +66,7 @@ public override void Read(BinaryReader file, uint size) blockdata.Read(file, (uint)len); BlockData.AddVariable(blockdata); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSkeleton.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSkeleton.cs index 39271a078..8a5d3b4f0 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSkeleton.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSkeleton.cs @@ -31,6 +31,7 @@ public override void Read(BinaryReader file, uint size) rigdata.Read(file, (uint)bonecount * 48, bonecount); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CStorySceneScript.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CStorySceneScript.cs index 9d1a678f1..57bafd59f 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CStorySceneScript.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CStorySceneScript.cs @@ -36,6 +36,7 @@ public override void Read(BinaryReader file, uint size) BufferParameters.AddVariableWithName(cVariant); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSwfTexture.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSwfTexture.cs index a1b486b09..1ad587b21 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSwfTexture.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CSwfTexture.cs @@ -29,6 +29,7 @@ public override void Read(BinaryReader file, uint size) //var textureSize = Convert.ToInt32( size - (file.BaseStream.Position - pos) ); //swfTexture.Read(file, (uint)textureSize); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CTerrainTile.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CTerrainTile.cs index d3565cd11..b5e05c626 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CTerrainTile.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CTerrainTile.cs @@ -28,6 +28,7 @@ public override void Read(BinaryReader file, uint size) base.Read(file, size); var maxres = file.ReadInt32(); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CTextureArray.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CTextureArray.cs index d81ab695c..52bc42d30 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CTextureArray.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CTextureArray.cs @@ -42,6 +42,7 @@ public override void Read(BinaryReader file, uint size) base.Read(file, size); rawfile.Read(file, filesize.val); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CWayPointsCollection.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CWayPointsCollection.cs index 128a063c3..1f8b6aaad 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/CWayPointsCollection.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/CWayPointsCollection.cs @@ -55,6 +55,7 @@ public override void Read(BinaryReader file, uint size) throw new InvalidParsingException("Did not read buffer to the end."); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/BufferedTypes/Complex/SAppearanceAttachment.cs b/WolvenKit.CR2W/Types/BufferedTypes/Complex/SAppearanceAttachment.cs index 5571c8cc0..66d21d361 100644 --- a/WolvenKit.CR2W/Types/BufferedTypes/Complex/SAppearanceAttachment.cs +++ b/WolvenKit.CR2W/Types/BufferedTypes/Complex/SAppearanceAttachment.cs @@ -51,6 +51,7 @@ public override void Read(BinaryReader file, uint size) { throw new InvalidParsingException($"Error in parsing SAppearanceAttachment: Data Variable. Bytes read: {bytesread} out of {bytecount}."); } + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Generic/Arrays/CArray.cs b/WolvenKit.CR2W/Types/Generic/Arrays/CArray.cs index 86263ac3a..499d8965f 100644 --- a/WolvenKit.CR2W/Types/Generic/Arrays/CArray.cs +++ b/WolvenKit.CR2W/Types/Generic/Arrays/CArray.cs @@ -24,6 +24,7 @@ public CArray(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, parent, public override void Read(BinaryReader file, uint size) { base.Read(file, size, (int)file.ReadUInt32()); + //SetIsSerialized() in base } diff --git a/WolvenKit.CR2W/Types/Generic/Arrays/CArrayBase.cs b/WolvenKit.CR2W/Types/Generic/Arrays/CArrayBase.cs index 6f9e0de74..62952acce 100644 --- a/WolvenKit.CR2W/Types/Generic/Arrays/CArrayBase.cs +++ b/WolvenKit.CR2W/Types/Generic/Arrays/CArrayBase.cs @@ -64,6 +64,7 @@ public override List GetEditableVariables() public override void Read(BinaryReader file, uint size) { throw new NotImplementedException(); + SetIsSerialized(); } protected void Read(BinaryReader file, uint size, int elementcount) @@ -98,6 +99,7 @@ public override CVariable SetValue(object val) if (val is CArrayBase cvar) { this.Elements = cvar.Elements; + SetIsSerialized(); } return this; diff --git a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferBase.cs b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferBase.cs index d671014f0..bbdc5b0ee 100644 --- a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferBase.cs +++ b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferBase.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections; using System.Collections.Generic; using System.IO; @@ -53,6 +53,7 @@ public override List GetEditableVariables() public override void Read(BinaryReader file, uint size) { throw new NotImplementedException(); + SetIsSerialized(); } public void Read(BinaryReader file, uint size, int elementcount) @@ -94,6 +95,7 @@ public override void AddVariable(CVariable variable) variable.SetREDName(elements.Count.ToString()); tvar.IsSerialized = true; elements.Add(tvar); + SetIsSerialized(); } } public void AddVariableWithName(CVariable variable) @@ -102,6 +104,7 @@ public void AddVariableWithName(CVariable variable) { tvar.IsSerialized = true; elements.Add(tvar); + SetIsSerialized(); } } public override bool CanRemoveVariable(IEditableVariable child) @@ -274,4 +277,4 @@ public void CopyTo(Array array, int index) #endregion } -} \ No newline at end of file +} diff --git a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferBit6.cs b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferBit6.cs index aa0ebbf3b..9798abc77 100644 --- a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferBit6.cs +++ b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferBit6.cs @@ -17,6 +17,7 @@ public CBufferBit6(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, pa public override void Read(BinaryReader file, uint size) { base.Read(file, size, (int)file.ReadBit6()); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferUInt32.cs b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferUInt32.cs index 297eb2b9a..02a61f202 100644 --- a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferUInt32.cs +++ b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferUInt32.cs @@ -21,6 +21,7 @@ public CBufferUInt32(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, public override void Read(BinaryReader file, uint size) { base.Read(file, size, (int)file.ReadUInt32()); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferUint16.cs b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferUint16.cs index df9b33c9e..aac2bf062 100644 --- a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferUint16.cs +++ b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferUint16.cs @@ -25,6 +25,7 @@ public override void Read(BinaryReader file, uint size) count.Read(file, size); base.Read(file, size, (int)count.val); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferVLQInt32.cs b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferVLQInt32.cs index bed50e492..b0f102ab6 100644 --- a/WolvenKit.CR2W/Types/Generic/Arrays/CBufferVLQInt32.cs +++ b/WolvenKit.CR2W/Types/Generic/Arrays/CBufferVLQInt32.cs @@ -19,6 +19,7 @@ public CBufferVLQInt32(CR2WFile cr2w, CVariable parent, string name) : base(cr2w public override void Read(BinaryReader file, uint size) { base.Read(file, size, (int)file.ReadVLQInt32()); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Generic/Arrays/CCompressedBuffer.cs b/WolvenKit.CR2W/Types/Generic/Arrays/CCompressedBuffer.cs index bc921dd11..88b38213d 100644 --- a/WolvenKit.CR2W/Types/Generic/Arrays/CCompressedBuffer.cs +++ b/WolvenKit.CR2W/Types/Generic/Arrays/CCompressedBuffer.cs @@ -37,6 +37,7 @@ public CCompressedBuffer(CR2WFile cr2w, CVariable parent, string name) : base(cr public override void Read(BinaryReader file, uint size) { throw new NotImplementedException(); + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Generic/Arrays/CPaddedBuffer.cs b/WolvenKit.CR2W/Types/Generic/Arrays/CPaddedBuffer.cs index 4d1437873..206ef8cfd 100644 --- a/WolvenKit.CR2W/Types/Generic/Arrays/CPaddedBuffer.cs +++ b/WolvenKit.CR2W/Types/Generic/Arrays/CPaddedBuffer.cs @@ -30,6 +30,7 @@ public override void Read(BinaryReader file, uint size) base.Read(file, size, count.val); padding.Read(file, 4); + //SetIsSerialized() in base } public override List GetEditableVariables() diff --git a/WolvenKit.CR2W/Types/Generic/CHandle.cs b/WolvenKit.CR2W/Types/Generic/CHandle.cs index 3c8b01c36..9630346d5 100644 --- a/WolvenKit.CR2W/Types/Generic/CHandle.cs +++ b/WolvenKit.CR2W/Types/Generic/CHandle.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Diagnostics; using System.IO; using System.Runtime.Serialization; @@ -68,6 +68,7 @@ public void ChangeHandleType() public override void Read(BinaryReader file, uint size) { SetValueInternal(file.ReadInt32()); + SetIsSerialized(); } private void SetValueInternal(int val) @@ -130,6 +131,7 @@ public override CVariable SetValue(object val) { case int o: SetValueInternal(o); + SetIsSerialized(); break; case IHandleAccessor cvar: this.ChunkHandle = cvar.ChunkHandle; @@ -138,6 +140,7 @@ public override CVariable SetValue(object val) this.Flags = cvar.Flags; this.Reference = cvar.Reference; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Generic/CPtr.cs b/WolvenKit.CR2W/Types/Generic/CPtr.cs index 4660cb196..9bb2361b4 100644 --- a/WolvenKit.CR2W/Types/Generic/CPtr.cs +++ b/WolvenKit.CR2W/Types/Generic/CPtr.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -51,6 +51,7 @@ public string GetPtrTargetType() public override void Read(BinaryReader file, uint size) { SetValueInternal(file.ReadInt32()); + SetIsSerialized(); } private void SetValueInternal(int val) @@ -104,10 +105,14 @@ public override CVariable SetValue(object val) switch (val) { case CR2WExportWrapper wrapper: + //IsSerialized = true; Reference = wrapper; + SetIsSerialized(); break; case IPtrAccessor cval: + //IsSerialized = true; Reference = cval.Reference; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Generic/CSoft.cs b/WolvenKit.CR2W/Types/Generic/CSoft.cs index 5336338d4..09c337beb 100644 --- a/WolvenKit.CR2W/Types/Generic/CSoft.cs +++ b/WolvenKit.CR2W/Types/Generic/CSoft.cs @@ -37,6 +37,7 @@ public CSoft(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, parent, public override void Read(BinaryReader file, uint size) { SetValueInternal(file.ReadUInt16()); + SetIsSerialized(); } private void SetValueInternal(ushort value) @@ -79,11 +80,13 @@ public override CVariable SetValue(object val) { case ushort o: this.SetValueInternal(o); + SetIsSerialized(); break; case ISoftAccessor cvar: this.DepotPath = cvar.DepotPath; this.ClassName = cvar.ClassName; this.Flags = cvar.Flags; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Primitive/CColor.cs b/WolvenKit.CR2W/Types/Primitive/CColor.cs index 20e30ff10..8d93bf1fc 100644 --- a/WolvenKit.CR2W/Types/Primitive/CColor.cs +++ b/WolvenKit.CR2W/Types/Primitive/CColor.cs @@ -33,6 +33,7 @@ public CColor(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, parent, public override void Read(BinaryReader file, uint size) { base.Read(file, size); + //SetIsSerialized() in base } public override void Write(BinaryWriter file) @@ -57,9 +58,12 @@ public override CVariable SetValue(object val) if (val is Color) { Color = (Color)val; + SetIsSerialized(); } - else if (val is CColor cvar) + else if (val is CColor cvar) { Color = cvar.Color; + SetIsSerialized(); + } return this; } diff --git a/WolvenKit.CR2W/Types/Primitive/CColorShift.cs b/WolvenKit.CR2W/Types/Primitive/CColorShift.cs index e4ba15dde..bec846ce5 100644 --- a/WolvenKit.CR2W/Types/Primitive/CColorShift.cs +++ b/WolvenKit.CR2W/Types/Primitive/CColorShift.cs @@ -34,9 +34,11 @@ public override CVariable SetValue(object val) { case Color o: Color = HslColor.FromRgb(o); + SetIsSerialized(); break; case CColorShift cvar: Color = cvar.Color; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Primitive/CName.cs b/WolvenKit.CR2W/Types/Primitive/CName.cs index b4d39e826..18cae2e2e 100644 --- a/WolvenKit.CR2W/Types/Primitive/CName.cs +++ b/WolvenKit.CR2W/Types/Primitive/CName.cs @@ -30,6 +30,7 @@ public override void Read(BinaryReader file, uint size) { var idx = file.ReadUInt16(); Value = cr2w.names[idx].Str; + SetIsSerialized(); } /// @@ -51,9 +52,12 @@ public override CVariable SetValue(object val) if (val is string) { Value = (string)val; + SetIsSerialized(); } - else if (val is CName cval) + else if (val is CName cval) { Value = cval.Value; + SetIsSerialized(); + } return this; } diff --git a/WolvenKit.CR2W/Types/Primitive/CVLQArray.cs b/WolvenKit.CR2W/Types/Primitive/CVLQArray.cs index bc190cd6f..cecad3e00 100644 --- a/WolvenKit.CR2W/Types/Primitive/CVLQArray.cs +++ b/WolvenKit.CR2W/Types/Primitive/CVLQArray.cs @@ -69,6 +69,8 @@ public override void Read(BinaryReader file, uint size) AddVariable(var); } + if (array.Count > 0) + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -91,6 +93,7 @@ public override CVariable SetValue(object val) { AddVariable(item); } + SetIsSerialized(); } return this; diff --git a/WolvenKit.CR2W/Types/Primitive/CVariant.cs b/WolvenKit.CR2W/Types/Primitive/CVariant.cs index 9d4ee10fc..e5340db37 100644 --- a/WolvenKit.CR2W/Types/Primitive/CVariant.cs +++ b/WolvenKit.CR2W/Types/Primitive/CVariant.cs @@ -35,6 +35,7 @@ public override void Read(BinaryReader file, uint size) { // do nothing I guess? } + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -74,6 +75,7 @@ public override CVariable SetValue(object val) Parent = this.ParentVar as CVariable }; this.Variant = cvar.Variant.Copy(context); + SetIsSerialized(); } return this; diff --git a/WolvenKit.CR2W/Types/Primitive/EntityHandle.cs b/WolvenKit.CR2W/Types/Primitive/EntityHandle.cs index d62fecddd..1e5ed4dfb 100644 --- a/WolvenKit.CR2W/Types/Primitive/EntityHandle.cs +++ b/WolvenKit.CR2W/Types/Primitive/EntityHandle.cs @@ -35,6 +35,7 @@ public override void Read(BinaryReader file, uint size) unk1.Read(file, size - 18); } + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Primitive/IdHandle.cs b/WolvenKit.CR2W/Types/Primitive/IdHandle.cs index b93d6f847..f854a57c2 100644 --- a/WolvenKit.CR2W/Types/Primitive/IdHandle.cs +++ b/WolvenKit.CR2W/Types/Primitive/IdHandle.cs @@ -26,6 +26,7 @@ public override void Read(BinaryReader file, uint size) { handlename.Read(file, 2); handle.Read(file, 2); + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Primitive/IdTag.cs b/WolvenKit.CR2W/Types/Primitive/IdTag.cs index e77a67d8e..72bbc544b 100644 --- a/WolvenKit.CR2W/Types/Primitive/IdTag.cs +++ b/WolvenKit.CR2W/Types/Primitive/IdTag.cs @@ -47,6 +47,7 @@ public override void Read(BinaryReader file, uint size) { _type = file.ReadByte(); _guid = file.ReadBytes(16); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -68,15 +69,18 @@ public override CVariable SetValue(object val) if(val is byte[]) { _guid = (byte[])val; + SetIsSerialized(); } else if(val is byte) { _type = (byte)val; + SetIsSerialized(); } else if (val is IdTag cvar) { _guid = cvar._guid; _type = cvar._type; + SetIsSerialized(); } return this; diff --git a/WolvenKit.CR2W/Types/Primitive/LocalizedString.cs b/WolvenKit.CR2W/Types/Primitive/LocalizedString.cs index 9afc5ab6e..456ee8b7d 100644 --- a/WolvenKit.CR2W/Types/Primitive/LocalizedString.cs +++ b/WolvenKit.CR2W/Types/Primitive/LocalizedString.cs @@ -35,6 +35,7 @@ public string Text public override void Read(BinaryReader file, uint size) { val = file.ReadUInt32(); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -47,14 +48,17 @@ public override CVariable SetValue(object val) if (val is uint) { this.val = (uint)val; + SetIsSerialized(); } else if (val is int) { this.val = (uint)(int)val; + SetIsSerialized(); } else if (val is LocalizedString cvar) { this.val = cvar.val; + SetIsSerialized(); } return this; diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CByteArray.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CByteArray.cs index ad3a99a26..da6a60ebf 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CByteArray.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CByteArray.cs @@ -21,6 +21,7 @@ public override void Read(BinaryReader file, uint size) { var arraysize = file.ReadUInt32(); Bytes = file.ReadBytes((int) arraysize); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -42,9 +43,11 @@ public override CVariable SetValue(object val) { case byte[] bytes: Bytes = bytes; + SetIsSerialized(); break; case CByteArray cvar: this.Bytes = cvar.Bytes; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CByteArray2.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CByteArray2.cs index 1c9fc69ad..8fba9d030 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CByteArray2.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CByteArray2.cs @@ -21,6 +21,7 @@ public override void Read(BinaryReader file, uint size) { var arraysize = file.ReadUInt32(); Bytes = file.ReadBytes((int) arraysize - 4); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -43,9 +44,11 @@ public override CVariable SetValue(object val) { case byte[] bytes: Bytes = bytes; + SetIsSerialized(); break; case CByteArray2 cvar: this.Bytes = cvar.Bytes; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CBytes.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CBytes.cs index 82fb16dd3..0c940536a 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CBytes.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CBytes.cs @@ -19,6 +19,7 @@ public CBytes(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, parent, public override void Read(BinaryReader file, uint size) { Bytes = file.ReadBytes((int) size); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -39,9 +40,11 @@ public override CVariable SetValue(object val) { case byte[] bytes: Bytes = bytes; + SetIsSerialized(); break; case CBytes cvar: this.Bytes = cvar.Bytes; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CDateTime.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CDateTime.cs index 5b5d58cd6..51a5203ec 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CDateTime.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CDateTime.cs @@ -193,6 +193,7 @@ public override string ToString() public override void Read(BinaryReader file, uint size) { TryParse(this, file.ReadUInt64()); + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CEnum.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CEnum.cs index b7ff07dc0..c77163a21 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CEnum.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CEnum.cs @@ -102,6 +102,7 @@ public override void Read(BinaryReader file, uint size) } SetValue(strings); + SetIsSerialized(); } /// @@ -170,6 +171,7 @@ public override CVariable SetValue(object val) T en = (T)Enum.Parse(WrappedEnum.GetType(), finalvalue); WrappedEnum = en; } + SetIsSerialized(); return this; } diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CFloat.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CFloat.cs index 20bd32f58..1eb9aba21 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CFloat.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CFloat.cs @@ -1,4 +1,4 @@ -using System.IO; +using System.IO; using System.Runtime.Serialization; using WolvenKit.CR2W.Reflection; @@ -20,6 +20,7 @@ public CFloat(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, parent, public override void Read(BinaryReader file, uint size) { val = file.ReadSingle(); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -33,9 +34,11 @@ public override CVariable SetValue(object val) { case float o: this.val = o; + SetIsSerialized(); break; case CFloat cvar: this.val = cvar.val; + SetIsSerialized(); break; } @@ -54,4 +57,4 @@ public override string ToString() return val.ToString(); } } -} \ No newline at end of file +} diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CGUID.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CGUID.cs index 1c71046e8..f22885a6a 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CGUID.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CGUID.cs @@ -35,6 +35,7 @@ public string GuidString public override void Read(BinaryReader file, uint size) { guid = file.ReadBytes(16); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -48,9 +49,11 @@ public override CVariable SetValue(object val) { case byte[] o: guid = o; + SetIsSerialized(); break; case CGUID cvar: this.guid = cvar.guid; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CString.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CString.cs index c5bd52fe4..3379c1c36 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CString.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/CString.cs @@ -24,6 +24,7 @@ public CString(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, parent public override void Read(BinaryReader file, uint size) { val = file.ReadLengthPrefixedString(); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -37,9 +38,11 @@ public override CVariable SetValue(object val) { case string s: this.val = s; + SetIsSerialized(); break; case CString cvar: this.val = cvar.val; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/IntegerTypes.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/IntegerTypes.cs index c99ee7315..ffbd0772b 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/IntegerTypes.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/IntegerTypes.cs @@ -26,6 +26,7 @@ public CUInt64(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, parent public override void Read(BinaryReader file, uint size) { val = file.ReadUInt64(); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -39,12 +40,15 @@ public override CVariable SetValue(object val) { case ulong o: this.val = o; + SetIsSerialized(); break; case string s: this.val = ulong.Parse(s); + SetIsSerialized(); break; case CUInt64 v: this.val = v.val; + SetIsSerialized(); break; } @@ -210,12 +214,15 @@ public override CVariable SetValue(object val) { case byte o: this.val = o; + SetIsSerialized(); break; case string s: this.val = byte.Parse(s); + SetIsSerialized(); break; case CUInt8 v: this.val = v.val; + SetIsSerialized(); break; } @@ -266,12 +273,15 @@ public override CVariable SetValue(object val) { case long o: this.val = o; + SetIsSerialized(); break; case string s: this.val = long.Parse(s); + SetIsSerialized(); break; case CInt64 v: this.val = v.val; + SetIsSerialized(); break; } @@ -324,12 +334,15 @@ public override CVariable SetValue(object val) { case int o: this.val = o; + SetIsSerialized(); break; case string s: this.val = int.Parse(s); + SetIsSerialized(); break; case CInt32 v: this.val = v.val; + SetIsSerialized(); break; } @@ -380,12 +393,15 @@ public override CVariable SetValue(object val) { case short o: this.val = o; + SetIsSerialized(); break; case string s: this.val = short.Parse(s); + SetIsSerialized(); break; case CInt16 v: this.val = v.val; + SetIsSerialized(); break; } @@ -436,12 +452,15 @@ public override CVariable SetValue(object newval) { case sbyte o: this.val = o; + SetIsSerialized(); break; case string s: this.val = sbyte.Parse(s); + SetIsSerialized(); break; case CInt8 v: this.val = v.val; + SetIsSerialized(); break; } @@ -492,12 +511,15 @@ public override CVariable SetValue(object val) { case sbyte o: this.val = o; + SetIsSerialized(); break; case string s: this.val = sbyte.Parse(s); + SetIsSerialized(); break; case CDynamicInt v: this.val = v.val; + SetIsSerialized(); break; } @@ -555,12 +577,15 @@ public override CVariable SetValue(object val) { case sbyte o: this.val = o; + SetIsSerialized(); break; case string s: this.val = sbyte.Parse(s); + SetIsSerialized(); break; case CVLQInt32 v: this.val = v.val; + SetIsSerialized(); break; } @@ -620,12 +645,15 @@ public override CVariable SetValue(object val) { case bool b: this.val = b; + SetIsSerialized(); break; case string s: this.val = bool.Parse(s); + SetIsSerialized(); break; case CBool v: this.val = v.val; + SetIsSerialized(); break; } diff --git a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/StringAnsi.cs b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/StringAnsi.cs index 25770faa8..16c868c83 100644 --- a/WolvenKit.CR2W/Types/Primitive/NetPrimitive/StringAnsi.cs +++ b/WolvenKit.CR2W/Types/Primitive/NetPrimitive/StringAnsi.cs @@ -20,6 +20,7 @@ public StringAnsi(CR2WFile cr2w, CVariable parent, string name) : base(cr2w, par public override void Read(BinaryReader file, uint size) { val = file.ReadLengthPrefixedStringNullTerminated(); + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -32,10 +33,12 @@ public override CVariable SetValue(object val) if (val is string) { this.val = (string) val; + SetIsSerialized(); } else if (val is StringAnsi cvar) { this.val = cvar.val; + SetIsSerialized(); } return this; } diff --git a/WolvenKit.CR2W/Types/Structs/Complex/EngineQsTranform.cs b/WolvenKit.CR2W/Types/Structs/Complex/EngineQsTranform.cs index 98fc67fd0..dbbf3e820 100644 --- a/WolvenKit.CR2W/Types/Structs/Complex/EngineQsTranform.cs +++ b/WolvenKit.CR2W/Types/Structs/Complex/EngineQsTranform.cs @@ -68,6 +68,7 @@ public override void Read(BinaryReader file, uint size) Scale_y.Read(file, 4); Scale_z.Read(file, 4); } + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Structs/Complex/EngineTransform.cs b/WolvenKit.CR2W/Types/Structs/Complex/EngineTransform.cs index 53a9bb956..4a3acd2da 100644 --- a/WolvenKit.CR2W/Types/Structs/Complex/EngineTransform.cs +++ b/WolvenKit.CR2W/Types/Structs/Complex/EngineTransform.cs @@ -62,6 +62,7 @@ public override void Read(BinaryReader file, uint size) Scale_y.Read(file, 4); Scale_z.Read(file, 4); } + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Structs/Complex/TagList.cs b/WolvenKit.CR2W/Types/Structs/Complex/TagList.cs index 8e9f5e04b..db5a5fe1a 100644 --- a/WolvenKit.CR2W/Types/Structs/Complex/TagList.cs +++ b/WolvenKit.CR2W/Types/Structs/Complex/TagList.cs @@ -27,6 +27,8 @@ public override void Read(BinaryReader file, uint size) var.Read(file, 0); AddVariable(var); } + if (count > 0) + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Utils/CMatrix3x3.cs b/WolvenKit.CR2W/Types/Utils/CMatrix3x3.cs index 965a32a30..4932e56f3 100644 --- a/WolvenKit.CR2W/Types/Utils/CMatrix3x3.cs +++ b/WolvenKit.CR2W/Types/Utils/CMatrix3x3.cs @@ -47,6 +47,7 @@ public override void Read(BinaryReader file, uint size) { variable.Read(file, size); } + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Utils/CMatrix4x4.cs b/WolvenKit.CR2W/Types/Utils/CMatrix4x4.cs index 5926fd3ca..11d363941 100644 --- a/WolvenKit.CR2W/Types/Utils/CMatrix4x4.cs +++ b/WolvenKit.CR2W/Types/Utils/CMatrix4x4.cs @@ -54,6 +54,7 @@ public override void Read(BinaryReader file, uint size) { variable.Read(file, size); } + SetIsSerialized(); } public override void Write(BinaryWriter file) @@ -78,8 +79,10 @@ public override CVariable Copy(CR2WCopyAction context) public override CVariable SetValue(object val) { - if (val is CMatrix4x4 v) + if (val is CMatrix4x4 v) { this.fields = v.fields; + SetIsSerialized(); + } return this; } diff --git a/WolvenKit.CR2W/Types/Utils/CVariable.cs b/WolvenKit.CR2W/Types/Utils/CVariable.cs index 405a13ae8..6b151ea11 100644 --- a/WolvenKit.CR2W/Types/Utils/CVariable.cs +++ b/WolvenKit.CR2W/Types/Utils/CVariable.cs @@ -1,4 +1,4 @@ -using DotNetHelper.FastMember.Extension.Extension; +using DotNetHelper.FastMember.Extension.Extension; using FastMember; using System; using System.CodeDom; @@ -56,7 +56,7 @@ protected CVariable(CR2WFile cr2w, CVariable parent, string name) /// Shows if the CVariable is to be serialized /// important because cr2w files only serialize initialized variables /// and some types are not null by default - /// Is set upon read + /// Is set upon Read(..) and SetValue(..) /// Must also be set when a variable is edited in the editor /// public bool IsSerialized { get; set; } @@ -324,7 +324,6 @@ public virtual void Read(BinaryReader file, uint size) break; cvar.IsSerialized = true; - #if DEBUG dbg_varnames.Add($"[{cvar.REDType}] {cvar.REDName}"); #endif @@ -590,6 +589,7 @@ public virtual CVariable SetValue(object val) if (item is CVariable citem) this.TrySettingFastMemberAccessor(citem); } + SetIsSerialized(); } return this; diff --git a/WolvenKit.CR2W/Types/Utils/CVariantSizeNameType.cs b/WolvenKit.CR2W/Types/Utils/CVariantSizeNameType.cs index d6a0ced71..4f759aab8 100644 --- a/WolvenKit.CR2W/Types/Utils/CVariantSizeNameType.cs +++ b/WolvenKit.CR2W/Types/Utils/CVariantSizeNameType.cs @@ -49,6 +49,7 @@ public override void Read(BinaryReader file, uint size) } Variant = parsedvar; + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Utils/CVariantSizeType.cs b/WolvenKit.CR2W/Types/Utils/CVariantSizeType.cs index 46413e18c..a9a28af3e 100644 --- a/WolvenKit.CR2W/Types/Utils/CVariantSizeType.cs +++ b/WolvenKit.CR2W/Types/Utils/CVariantSizeType.cs @@ -43,6 +43,7 @@ public override void Read(BinaryReader file, uint size) } Variant = parsedvar; + SetIsSerialized(); } public override void Write(BinaryWriter file) diff --git a/WolvenKit.CR2W/Types/Utils/CVariantSizeTypeName.cs b/WolvenKit.CR2W/Types/Utils/CVariantSizeTypeName.cs index 48c200a48..b2898a53a 100644 --- a/WolvenKit.CR2W/Types/Utils/CVariantSizeTypeName.cs +++ b/WolvenKit.CR2W/Types/Utils/CVariantSizeTypeName.cs @@ -48,6 +48,7 @@ public override void Read(BinaryReader file, uint size) } Variant = parsedvar; + SetIsSerialized(); } public override void Write(BinaryWriter file)