From e33eb070b6a78dfed8af3842ee682a95fc3356a7 Mon Sep 17 00:00:00 2001 From: 1987kostya Date: Tue, 26 Jan 2021 22:01:47 +0600 Subject: [PATCH] Image fixes --- CTFAK/MMFParser/EXE/GameData.cs | 2 ++ .../MMFParser/EXE/Loaders/Banks/ImageBank.cs | 8 ++++---- CTFAK/MMFParser/EXE/Loaders/Events/Events.cs | 8 ++++---- .../EXE/Loaders/Objects/ObjectCommon.cs | 4 ++-- .../MFA/Loaders/mfachunks/ExtensionObject.cs | 2 +- CTFAK/MMFParser/Translation/PAME2MFA.cs | 20 +++++++++++++++---- CTFAK/Utils/Helper.cs | 12 +++++++++++ 7 files changed, 41 insertions(+), 15 deletions(-) diff --git a/CTFAK/MMFParser/EXE/GameData.cs b/CTFAK/MMFParser/EXE/GameData.cs index d3aadf8..97f019c 100644 --- a/CTFAK/MMFParser/EXE/GameData.cs +++ b/CTFAK/MMFParser/EXE/GameData.cs @@ -62,6 +62,8 @@ namespace CTFAK.MMFParser.EXE ProductVersion = (Constants.Products)exeReader.ReadInt32(); ProductBuild = exeReader.ReadInt32();//Easy Access Settings.Build=ProductBuild; + Logger.Log("GAME BUILD: "+Settings.Build); + Logger.Log("PRODUCT: "+ProductVersion); Build = ProductBuild; diff --git a/CTFAK/MMFParser/EXE/Loaders/Banks/ImageBank.cs b/CTFAK/MMFParser/EXE/Loaders/Banks/ImageBank.cs index 45ef9cc..1e46ebf 100644 --- a/CTFAK/MMFParser/EXE/Loaders/Banks/ImageBank.cs +++ b/CTFAK/MMFParser/EXE/Loaders/Banks/ImageBank.cs @@ -146,8 +146,8 @@ namespace CTFAK.MMFParser.EXE.Loaders.Banks Handle = Reader.ReadInt32(); if (!Debug) { - if (Settings.Build>=289) Handle -= 1; - // if (Program.CleanData.ProductVersion != Constants.Products.MMF15&&Settings.Build>=284) Handle -= 1; + // if (Settings.Build>=287) Handle -= 1; + if (Program.CleanData.ProductVersion != Constants.Products.MMF15&&Settings.Build>=284) Handle -= 1; } Position = (int) Reader.Tell(); @@ -160,8 +160,8 @@ namespace CTFAK.MMFParser.EXE.Loaders.Banks Handle = Reader.ReadInt32(); if (!Debug) { - if (Settings.Build>=289) Handle -= 1; - // if (Exe.Instance.GameData.ProductVersion != Constants.Products.MMF15&&Settings.Build>=284) Handle -= 1; + // if (Settings.Build>=287) Handle -= 1; + if (Exe.Instance.GameData.ProductVersion != Constants.Products.MMF15&&Settings.Build>=284) Handle -= 1; } Position = (int) Reader.Tell(); diff --git a/CTFAK/MMFParser/EXE/Loaders/Events/Events.cs b/CTFAK/MMFParser/EXE/Loaders/Events/Events.cs index afe94ba..4f286c2 100644 --- a/CTFAK/MMFParser/EXE/Loaders/Events/Events.cs +++ b/CTFAK/MMFParser/EXE/Loaders/Events/Events.cs @@ -258,18 +258,18 @@ namespace CTFAK.MMFParser.EXE.Loaders.Events { var num = cond.Num; if (num == -42) num = -27; - if (Settings.Build >= 290) + if (Settings.Build >= 287) { - if (num == -28||num == -29||num == -30||num == -31||num == -32||num == -33||num == -34||num == -35||num == -36||num == -37||num == -38||num == -39) num = -8; + // if (num == -28||num == -29||num == -30||num == -31||num == -32||num == -33||num == -34||num == -35||num == -36||num == -37||num == -38||num == -39) num = -8; } cond.Num = num; } public static void FixActions(ref Action act) { var num = act.Num; - if (Settings.Build >= 290) + if (Settings.Build >= 287) { - if (num == 27||num == 28||num == 29||num == 30) num = 3; + // if (num == 27||num == 28||num == 29||num == 30) num = 3; } act.Num = num; } diff --git a/CTFAK/MMFParser/EXE/Loaders/Objects/ObjectCommon.cs b/CTFAK/MMFParser/EXE/Loaders/Objects/ObjectCommon.cs index 58eead2..9922032 100644 --- a/CTFAK/MMFParser/EXE/Loaders/Objects/ObjectCommon.cs +++ b/CTFAK/MMFParser/EXE/Loaders/Objects/ObjectCommon.cs @@ -155,10 +155,10 @@ namespace CTFAK.MMFParser.EXE.Loaders.Objects Flags.flag = Reader.ReadUInt16(); var end = Reader.Tell()+(8+1)*2; Reader.Skip(2); - for (int i = 0; i < 9; i++) + for (int i = 0; i < 8; i++) { var value = Reader.ReadInt16(); - // _qualifiers[i]=value; + _qualifiers[i]=value; } Reader.Seek(end); diff --git a/CTFAK/MMFParser/MFA/Loaders/mfachunks/ExtensionObject.cs b/CTFAK/MMFParser/MFA/Loaders/mfachunks/ExtensionObject.cs index 7efbed5..26ed616 100644 --- a/CTFAK/MMFParser/MFA/Loaders/mfachunks/ExtensionObject.cs +++ b/CTFAK/MMFParser/MFA/Loaders/mfachunks/ExtensionObject.cs @@ -53,7 +53,7 @@ namespace CTFAK.MMFParser.MFA.Loaders.mfachunks Writer.AutoWriteUnicode(SubType); } - // if (ExtensionData == null) ExtensionData = new byte[0]; + if (ExtensionData == null) ExtensionData = new byte[1]{0}; Writer.WriteInt32(ExtensionData.Length+20); Writer.WriteInt32(ExtensionData.Length+20); Writer.WriteInt32(-1); diff --git a/CTFAK/MMFParser/Translation/PAME2MFA.cs b/CTFAK/MMFParser/Translation/PAME2MFA.cs index 1f78d25..497b13a 100644 --- a/CTFAK/MMFParser/Translation/PAME2MFA.cs +++ b/CTFAK/MMFParser/Translation/PAME2MFA.cs @@ -159,7 +159,6 @@ namespace CTFAK.MMFParser.Translation //LayerInfo if(frame.Layers==null) continue; var count = frame.Layers.Count; - Logger.Log($"{newFrame.Name} - {count}"); for (int i=0;i() {0}; var shape = counter?.Shape; - if(counter==null) throw new NullReferenceException(nameof(counter)); + // if(counter==null) throw new NullReferenceException(nameof(counter)); if (counter == null) { newCount.DisplayType = 0; diff --git a/CTFAK/Utils/Helper.cs b/CTFAK/Utils/Helper.cs index 6e3cd17..f0e99b9 100644 --- a/CTFAK/Utils/Helper.cs +++ b/CTFAK/Utils/Helper.cs @@ -12,6 +12,8 @@ using CTFAK.GUI.GUIComponents; using CTFAK.MMFParser.EXE; using CTFAK.MMFParser.EXE.Loaders.Events.Parameters; using CTFAK.MMFParser.EXE.Loaders.Objects; +using CTFAK.MMFParser.MFA.Loaders; +using ChunkList = CTFAK.MMFParser.EXE.ChunkList; namespace CTFAK.Utils { @@ -46,6 +48,16 @@ namespace CTFAK.Utils } } + public static bool ContainsItem(this List items, int handle) + { + bool contrains = false; + foreach (var item in items) + { + if (item.Handle == handle) return true; + } + return false; + } + public static string AutoReadUnicode(this ByteReader reader) { var len = reader.ReadInt16();