diff --git a/UndertaleModLib/UndertaleChunks.cs b/UndertaleModLib/UndertaleChunks.cs index 18dc943f0..d1f8e8d1a 100644 --- a/UndertaleModLib/UndertaleChunks.cs +++ b/UndertaleModLib/UndertaleChunks.cs @@ -1459,6 +1459,8 @@ public class UndertaleChunkTXTR : UndertaleListChunk public override string Name => "TXTR"; private static bool checkedFor2022_3; + private static bool checkedFor2_0_6; + private void CheckFor2022_3And5(UndertaleReader reader) { // Detect GM2022.3 @@ -1580,7 +1582,10 @@ private void CheckForGMS2_0_6(UndertaleReader reader) { bool atLeastGMS2_0 = reader.undertaleData.IsGameMaker2(); if (!atLeastGMS2_0 || reader.undertaleData.IsVersionAtLeast(2, 0, 6)) + { + checkedFor2_0_6 = true; return; + } long returnPos = reader.Position; bool noGeneratedMips = false; @@ -1617,6 +1622,7 @@ private void CheckForGMS2_0_6(UndertaleReader reader) reader.undertaleData.SetGMS2Version(2, 0, 6); reader.Position = returnPos; + checkedFor2_0_6 = true; } internal override void UnserializeChunk(UndertaleReader reader) @@ -1624,7 +1630,8 @@ internal override void UnserializeChunk(UndertaleReader reader) if (!checkedFor2022_3) CheckFor2022_3And5(reader); - CheckForGMS2_0_6(reader); + if (!checkedFor2_0_6) + CheckForGMS2_0_6(reader); base.UnserializeChunk(reader); reader.SwitchReaderType(false); @@ -1648,8 +1655,10 @@ internal override void UnserializeChunk(UndertaleReader reader) internal override uint UnserializeObjectCount(UndertaleReader reader) { checkedFor2022_3 = false; + checkedFor2_0_6 = false; CheckFor2022_3And5(reader); + CheckForGMS2_0_6(reader); // Texture blobs are already included in the count return base.UnserializeObjectCount(reader);