From d55de18a3a110e4221c61815a56b79144fced8aa Mon Sep 17 00:00:00 2001 From: Alex Harrison Date: Sun, 27 Oct 2024 14:01:04 -0600 Subject: [PATCH] always buffer align --- HSDRaw/HSDRawFile.cs | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/HSDRaw/HSDRawFile.cs b/HSDRaw/HSDRawFile.cs index 82db2fb..6f04a6c 100644 --- a/HSDRaw/HSDRawFile.cs +++ b/HSDRaw/HSDRawFile.cs @@ -422,9 +422,9 @@ public static int BinarySearch(List a, int item) /// Saves dat data to filepath /// /// - public void Save(string fileName, bool bufferAlign = true, bool optimize = true, bool trim = false) + public void Save(string fileName, bool optimize = true, bool trim = false) { - Save(new FileStream(fileName, FileMode.Create), bufferAlign, optimize, trim); + Save(new FileStream(fileName, FileMode.Create), optimize, trim); } /// @@ -578,12 +578,8 @@ public void SetStructFlags() /// saves dat data to stream with optional alignment /// /// - /// - public void Save(Stream stream, bool bufferAlign = true, bool optimize = true, bool trim = false) + public void Save(Stream stream, bool optimize = true, bool trim = false) { - if (Roots.Count > 0 && (Roots[0].Data is MEX_Data || Roots[0].Data is kexData)) - bufferAlign = false; - // trim data if desired if (trim) TrimData(); @@ -656,22 +652,13 @@ public void Save(Stream stream, bool bufferAlign = true, bool optimize = true, b // write structs foreach (var s in _structCache) { - // align buffers and general alignment - // TODO: trim extra data? Not a problem aside from potential filesize - // no refereneces = buffer? - // textures need to be 0x20 aligned... but there is no way to detect which structures are textures - // this can result in unnessecary padding - if (IsBuffer(s) && bufferAlign) - writer.Align(0x20); - else - if(s.Align) - writer.Align(4); + writer.Align(0x20); structToOffset.Add(s, (int)writer.BaseStream.Position - 0x20); writer.Write(s.GetData()); } - writer.Align(4); + writer.Align(0x20); var relocationOffset = writer.BaseStream.Position; List relocationOffsets = new List();