diff --git a/NetMFAPatcher/DotNetCTFDumper.csproj b/NetMFAPatcher/DotNetCTFDumper.csproj
index dc9e6c4..c4189de 100644
--- a/NetMFAPatcher/DotNetCTFDumper.csproj
+++ b/NetMFAPatcher/DotNetCTFDumper.csproj
@@ -72,8 +72,9 @@
true
-
- E:\ClickTFReader-master\DUMP\fnaf-world\CHUNKS\Ionic.Zlib.dll
+
+ ..\packages\Ionic.Zlib.1.9.1.5\lib\Ionic.Zlib.dll
+ True
@@ -95,7 +96,6 @@
MainForm.cs
-
@@ -143,6 +143,7 @@
+
diff --git a/NetMFAPatcher/GUI/MainForm.Designer.cs b/NetMFAPatcher/GUI/MainForm.Designer.cs
index 11970b6..9825512 100644
--- a/NetMFAPatcher/GUI/MainForm.Designer.cs
+++ b/NetMFAPatcher/GUI/MainForm.Designer.cs
@@ -38,7 +38,7 @@
//
// button1
//
- this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
+ this.button1.BackColor = System.Drawing.Color.FromArgb(((int) (((byte) (64)))), ((int) (((byte) (64)))), ((int) (((byte) (64)))));
this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.button1.ForeColor = System.Drawing.Color.Lime;
this.button1.Location = new System.Drawing.Point(12, 12);
@@ -115,16 +115,15 @@
this.Load += new System.EventHandler(this.MainForm_Load);
this.ResumeLayout(false);
this.PerformLayout();
-
}
- #endregion
-
private System.Windows.Forms.Button button1;
- private System.Windows.Forms.OpenFileDialog openFileDialog1;
- private System.Windows.Forms.TreeView treeView1;
- private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Label GameInfo;
private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.ListBox listBox1;
+ private System.Windows.Forms.OpenFileDialog openFileDialog1;
+ private System.Windows.Forms.TreeView treeView1;
+
+ #endregion
}
}
\ No newline at end of file
diff --git a/NetMFAPatcher/GUI/MainForm.cs b/NetMFAPatcher/GUI/MainForm.cs
index 94dd5f6..679145f 100644
--- a/NetMFAPatcher/GUI/MainForm.cs
+++ b/NetMFAPatcher/GUI/MainForm.cs
@@ -14,7 +14,7 @@ namespace NetMFAPatcher.GUI
{
public partial class MainForm : Form
{
- public Thread loaderThread;
+ public Thread LoaderThread;
public MainForm()
{
InitializeComponent();
@@ -57,28 +57,28 @@ namespace NetMFAPatcher.GUI
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
- var currentFrame = EXE.LatestInst.game_data.Frames[treeView1.SelectedNode.Index];
+ var currentFrame = Exe.LatestInst.GameData.Frames[treeView1.SelectedNode.Index];
listBox1.Items.Clear();
- listBox1.Items.Add($"Size: {currentFrame.width}x{currentFrame.height}");
+ listBox1.Items.Add($"Size: {currentFrame.Width}x{currentFrame.Height}");
listBox1.Items.Add($"Number of objects: {currentFrame.CountOfObjs}");
}
public void AfterLoad()
{
- var gameData = EXE.LatestInst.game_data;
+ var gameData = Exe.LatestInst.GameData;
foreach (var item in gameData.Frames)
{
- treeView1.Nodes.Add(item.name);
+ treeView1.Nodes.Add(item.Name);
}
string toLog = "";
- toLog += $"Title:{EXE.LatestInst.game_data.Name}\n";
- toLog += $"Copyright:{EXE.LatestInst.game_data.Copyright}\n";
- toLog += $"Editor Filename: {EXE.LatestInst.game_data.EditorFilename}\n";
+ toLog += $"Title:{Exe.LatestInst.GameData.Name}\n";
+ toLog += $"Copyright:{Exe.LatestInst.GameData.Copyright}\n";
+ toLog += $"Editor Filename: {Exe.LatestInst.GameData.EditorFilename}\n";
//toLog += $"Build Filename: {EXE.LatestInst.game_data.TargetFilename}\n";
- toLog += $"Product Build: {EXE.LatestInst.game_data.product_build}\n";
- toLog += $"Build: {EXE.LatestInst.game_data.build}\n";
- toLog += $"Runtime Version: {EXE.LatestInst.game_data.runtime_version}\n";
+ toLog += $"Product Build: {Exe.LatestInst.GameData.ProductBuild}\n";
+ toLog += $"Build: {Exe.LatestInst.GameData.Build}\n";
+ toLog += $"Runtime Version: {Exe.LatestInst.GameData.RuntimeVersion}\n";
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Events.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Events.cs
index d701f49..9bb7383 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Events.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Events.cs
@@ -1,5 +1,4 @@
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.Utils;
+using NetMFAPatcher.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -34,37 +33,37 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
{
while(true)
{
- var identifier = reader.ReadAscii(4);
+ var identifier = Reader.ReadAscii(4);
if (identifier == Header)
{
- MaxObjects = reader.ReadInt16();
- MaxObjectInfo = reader.ReadInt16();
- NumberOfPlayers = reader.ReadInt16();
+ MaxObjects = Reader.ReadInt16();
+ MaxObjectInfo = Reader.ReadInt16();
+ NumberOfPlayers = Reader.ReadInt16();
for (int i = 0; i < 17; i++)
{
- NumberOfConditions.Add(reader.ReadInt16());
+ NumberOfConditions.Add(Reader.ReadInt16());
}
- var QualifierCount = reader.ReadInt16();//should be 0, so i dont give a fuck
- Quailifers = new Quailifer[QualifierCount + 1];
- for (int i = 0; i < QualifierCount; i++)
+ var qualifierCount = Reader.ReadInt16();//should be 0, so i dont give a fuck
+ Quailifers = new Quailifer[qualifierCount + 1];
+ for (int i = 0; i < qualifierCount; i++)
{
- var NewQualifier = new Quailifer(reader);
- QualifiersList.Add(NewQualifier);//fucking python types
+ var newQualifier = new Quailifer(Reader);
+ QualifiersList.Add(newQualifier);//fucking python types
//THIS IS NOT DONE
}
}
else if (identifier == EventCount)
{
- var size = reader.ReadInt32();
+ var size = Reader.ReadInt32();
}
else if (identifier == EventgroupData)
{
- var size = reader.ReadInt32();
- var end_position = reader.Tell() + size;
+ var size = Reader.ReadInt32();
+ var endPosition = Reader.Tell() + size;
while (true)
{
- var eg = new EventGroup(reader);
+ var eg = new EventGroup(Reader);
eg.Read();
}
}
@@ -77,10 +76,10 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public class Quailifer : ChunkLoader
{
- public int objectInfo;
- public int type;
- public Quailifer qualifier;
- List Objects = new List();
+ public int ObjectInfo;
+ public int Type;
+ public Quailifer Qualifier;
+ List _objects = new List();
public Quailifer(Chunk chunk) : base(chunk) { }
public Quailifer(ByteIO reader) : base(reader) { }
@@ -92,9 +91,9 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public override void Read()
{
- objectInfo = reader.ReadUInt16();
- type = reader.ReadInt16();
- qualifier = this;
+ ObjectInfo = Reader.ReadUInt16();
+ Type = Reader.ReadInt16();
+ Qualifier = this;
}
}
@@ -104,9 +103,9 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
{
public int Flags;
public int IsRestricted;
- public int restrictCPT;
- public int identifier;
- public int undo;
+ public int RestrictCpt;
+ public int Identifier;
+ public int Undo;
public List Conditions = new List();
public List Actions = new List();
@@ -120,27 +119,27 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public override void Read()
{
- var currentPosition = reader.Tell();
- var size = reader.ReadInt16() * -1;
- var NumberOfConditions = reader.ReadByte();
- var NumberOfActions = reader.ReadByte();
- var flags = reader.ReadUInt16();
- var nop = reader.ReadInt16();
- IsRestricted = reader.ReadInt32();
- restrictCPT = reader.ReadInt32();
- for (int i = 0; i < NumberOfConditions; i++)
+ var currentPosition = Reader.Tell();
+ var size = Reader.ReadInt16() * -1;
+ var numberOfConditions = Reader.ReadByte();
+ var numberOfActions = Reader.ReadByte();
+ var flags = Reader.ReadUInt16();
+ var nop = Reader.ReadInt16();
+ IsRestricted = Reader.ReadInt32();
+ RestrictCpt = Reader.ReadInt32();
+ for (int i = 0; i < numberOfConditions; i++)
{
- var item = new Condition(reader);
+ var item = new Condition(Reader);
item.Read();
Conditions.Add(item);
}
- for (int i = 0; i < NumberOfActions; i++)
+ for (int i = 0; i < numberOfActions; i++)
{
- var item = new Action(reader);
+ var item = new Action(Reader);
item.Read();
Actions.Add(item);
}
- reader.Seek(currentPosition + size);
+ Reader.Seek(currentPosition + size);
Console.WriteLine("IF:");
if (Conditions!=null)
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/EventsParts.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/EventsParts.cs
index bb12038..a2adc4a 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/EventsParts.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/EventsParts.cs
@@ -1,5 +1,4 @@
using mmfparser;
-using NetMFAPatcher.chunkloaders;
using NetMFAPatcher.MMFParser.Data;
using NetMFAPatcher.Utils;
using System;
@@ -7,6 +6,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.utils;
using static NetMFAPatcher.mmfparser.Constants;
namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
@@ -18,11 +18,11 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public int DefType;
public int NumberOfParameters;
public ObjectType ObjectType;
- public int num;
+ public int Num;
public int ObjectInfo;
public int Identifier;
public int ObjectInfoList;
- public List items = new List();
+ public List Items = new List();
public Condition(ByteIO reader) : base(reader) { }
public override void Print()
{
@@ -31,31 +31,31 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public override void Read()
{
- var currentPosition = reader.Tell();
- var size = reader.ReadUInt16();
- ObjectType = (ObjectType)reader.ReadInt16();
- num = reader.ReadInt16();
- ObjectInfo = reader.ReadUInt16();
- ObjectInfoList = reader.ReadInt16();
- Flags = reader.ReadSByte();
- OtherFlags = reader.ReadSByte();
- NumberOfParameters = reader.ReadByte();
- DefType = reader.ReadByte();
- Identifier = reader.ReadInt16();
+ var currentPosition = Reader.Tell();
+ var size = Reader.ReadUInt16();
+ ObjectType = (ObjectType)Reader.ReadInt16();
+ Num = Reader.ReadInt16();
+ ObjectInfo = Reader.ReadUInt16();
+ ObjectInfoList = Reader.ReadInt16();
+ Flags = Reader.ReadSByte();
+ OtherFlags = Reader.ReadSByte();
+ NumberOfParameters = Reader.ReadByte();
+ DefType = Reader.ReadByte();
+ Identifier = Reader.ReadInt16();
for (int i = 0; i < NumberOfParameters; i++)
{
- var item = new Parameter(reader);
+ var item = new Parameter(Reader);
item.Read();
- items.Add(item);
+ Items.Add(item);
}
- reader.Seek(currentPosition + size);
+ Reader.Seek(currentPosition + size);
}
public override string ToString()
{
- return $"Condition {ObjectType}-{num}-{(items.Count > 0 ? items[0].ToString() : "cock")}";
+ return $"Condition {ObjectType}-{Num}-{(Items.Count > 0 ? Items[0].ToString() : "cock")}";
}
}
@@ -66,10 +66,10 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public int OtherFlags;
public int DefType;
public ObjectType ObjectType;
- public int num;
+ public int Num;
public int ObjectInfo;
public int ObjectInfoList;
- public List items = new List();
+ public List Items = new List();
public Action(ByteIO reader) : base(reader) { }
public override void Print( )
{
@@ -78,21 +78,21 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public override void Read()
{
- var currentPosition = reader.Tell();
- var size = reader.ReadUInt16();
- ObjectType = (ObjectType)reader.ReadInt16();
- num = reader.ReadInt16();
- ObjectInfo = reader.ReadUInt16();
- ObjectInfoList = reader.ReadInt16();
- Flags = reader.ReadSByte();
- OtherFlags = reader.ReadSByte();
- var number_of_parameters=reader.ReadByte();
- DefType = reader.ReadByte();
+ var currentPosition = Reader.Tell();
+ var size = Reader.ReadUInt16();
+ ObjectType = (ObjectType)Reader.ReadInt16();
+ Num = Reader.ReadInt16();
+ ObjectInfo = Reader.ReadUInt16();
+ ObjectInfoList = Reader.ReadInt16();
+ Flags = Reader.ReadSByte();
+ OtherFlags = Reader.ReadSByte();
+ var numberOfParameters=Reader.ReadByte();
+ DefType = Reader.ReadByte();
for (int i = 0; i < DefType; i++)
{
- var item = new Parameter(reader);
+ var item = new Parameter(Reader);
item.Read();
- items.Add(item);
+ Items.Add(item);
}
@@ -100,7 +100,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public override string ToString()
{
- return $"Action {ObjectType}-{num}-{(items.Count>0?items[0].ToString():"cock")}";
+ return $"Action {ObjectType}-{Num}-{(Items.Count>0?Items[0].ToString():"cock")}";
}
}
@@ -108,7 +108,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public class Parameter : DataLoader
{
public int Code;
- public DataLoader loader;
+ public DataLoader Loader;
public Parameter(ByteIO reader) : base(reader) { }
@@ -119,36 +119,36 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
public override void Read()
{
- var current_position = reader.Tell();
- var size = reader.ReadInt16();
- Code = reader.ReadInt16();
+ var currentPosition = Reader.Tell();
+ var size = Reader.ReadInt16();
+ Code = Reader.ReadInt16();
- var ActualLoader = Helper.LoadParameter(Code,reader);
- this.loader = ActualLoader;
- if (loader!=null)
+ var actualLoader = Helper.LoadParameter(Code,Reader);
+ this.Loader = actualLoader;
+ if (Loader!=null)
{
- loader.Read();
+ Loader.Read();
}
else
{
//throw new Exception("Loader is null");
}
- reader.Seek(current_position+size);
+ Reader.Seek(currentPosition+size);
}
- public object value
+ public object Value
{
get
{
- if (loader != null)
+ if (Loader != null)
{
- if (loader.GetType().GetField("value") != null)
+ if (Loader.GetType().GetField("value") != null)
{
- return loader.GetType().GetField("value").GetValue(loader);
+ return Loader.GetType().GetField("value").GetValue(Loader);
}
else
{
@@ -160,7 +160,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events
}
public override string ToString()
{
- if (loader != null) return loader.ToString();
+ if (Loader != null) return Loader.ToString();
else return "UNK-PARAMETER";
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Expressions/Expression.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Expressions/Expression.cs
index 924268a..d2480da 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Expressions/Expression.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Expressions/Expression.cs
@@ -12,7 +12,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Expressions
class Expression : DataLoader
{
public ObjectType ObjectType;
- public int num;
+ public int Num;
public int ObjectInfo;
public int ObjectInfoList;
public Expression(ByteIO reader) : base(reader) { }
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/AlterableValue.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/AlterableValue.cs
index 592e71f..47d5752 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/AlterableValue.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/AlterableValue.cs
@@ -17,7 +17,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
}
public override string ToString()
{
- return $"AlterableValue{Convert.ToChar(value).ToString().ToUpper()}";
+ return $"AlterableValue{Convert.ToChar(Value).ToString().ToUpper()}";
}
}
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Colour.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Colour.cs
index 7ec5c6b..d697daa 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Colour.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Colour.cs
@@ -10,13 +10,13 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
class Colour : ParameterCommon
{
- public Color value;
+ public Color Value;
public Colour(ByteIO reader) : base(reader) { }
public override void Read()
{
- var bytes = reader.ReadBytes(4);
- value = Color.FromArgb(bytes[0], bytes[1], bytes[2]);
+ var bytes = Reader.ReadBytes(4);
+ Value = Color.FromArgb(bytes[0], bytes[1], bytes[2]);
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Create.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Create.cs
index 637051b..71bc859 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Create.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Create.cs
@@ -16,10 +16,10 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public Create(ByteIO reader) : base(reader) { }
public override void Read()
{
- Position = new Position(reader);
+ Position = new Position(Reader);
Position.Read();
- ObjectInstances = reader.ReadUInt16();
- ObjectInfo = reader.ReadUInt16();
+ ObjectInstances = Reader.ReadUInt16();
+ ObjectInfo = Reader.ReadUInt16();
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Every.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Every.cs
index cf01f23..660dba9 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Every.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Every.cs
@@ -16,8 +16,8 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public Every(ByteIO reader) : base(reader) { }
public override void Read()
{
- Delay = reader.ReadInt32();
- Compteur = reader.ReadInt32();
+ Delay = Reader.ReadInt32();
+ Compteur = Reader.ReadInt32();
}
public override string ToString()
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Float.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Float.cs
index 8a6d99a..a42c702 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Float.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Float.cs
@@ -9,17 +9,17 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
class Float : ParameterCommon
{
- public float value;
+ public float Value;
public Float(ByteIO reader) : base(reader) { }
public override void Read()
{
- value = reader.ReadSingle();
+ Value = Reader.ReadSingle();
}
public override string ToString()
{
- return $"{this.GetType().Name} value: {value}";
+ return $"{this.GetType().Name} value: {Value}";
}
}
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/GlobalValue.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/GlobalValue.cs
index 342a2b5..3e448d0 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/GlobalValue.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/GlobalValue.cs
@@ -18,8 +18,8 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
}
public override string ToString()
{
- if(value>26) return $"GlobalValue{value}";
- return $"GlobalValue{Convert.ToChar(value).ToString().ToUpper()}";
+ if(Value>26) return $"GlobalValue{Value}";
+ return $"GlobalValue{Convert.ToChar(Value).ToString().ToUpper()}";
}
}
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Int.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Int.cs
index e11a432..2e13895 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Int.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Int.cs
@@ -14,7 +14,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public Int(ByteIO reader) : base(reader) { }
public override void Read()
{
- value = (short)reader.ReadInt32();
+ Value = (short)Reader.ReadInt32();
}
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParamObject.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParamObject.cs
index 7507b45..eff28db 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParamObject.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParamObject.cs
@@ -15,9 +15,9 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public ParamObject(ByteIO reader) : base(reader) { }
public override void Read()
{
- ObjectInfoList = reader.ReadInt16();
- ObjectInfo = reader.ReadUInt16();
- ObjectType = reader.ReadInt16();
+ ObjectInfoList = Reader.ReadInt16();
+ ObjectInfo = Reader.ReadUInt16();
+ ObjectType = Reader.ReadInt16();
}
public override string ToString()
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Position.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Position.cs
index 9370a30..977a8cd 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Position.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Position.cs
@@ -23,16 +23,16 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public Position(ByteIO reader) : base(reader) { }
public override void Read()
{
- ObjectInfoParent = reader.ReadInt16();
- Flags = reader.ReadUInt16();
- X = reader.ReadInt16();
- Y = reader.ReadInt16();
- Slope = reader.ReadInt16();
- Angle = reader.ReadInt16();
- Direction = reader.ReadSingle();
- TypeParent = reader.ReadInt16();
- ObjectInfoList = reader.ReadInt16();
- Layer = reader.ReadInt16();
+ ObjectInfoParent = Reader.ReadInt16();
+ Flags = Reader.ReadUInt16();
+ X = Reader.ReadInt16();
+ Y = Reader.ReadInt16();
+ Slope = Reader.ReadInt16();
+ Angle = Reader.ReadInt16();
+ Direction = Reader.ReadSingle();
+ TypeParent = Reader.ReadInt16();
+ ObjectInfoList = Reader.ReadInt16();
+ Layer = Reader.ReadInt16();
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Sample.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Sample.cs
index 5b32962..0d47a04 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Sample.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Sample.cs
@@ -9,20 +9,20 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
class Sample : ParameterCommon
{
- public int handle;
- public string name;
- public int flags;
+ public int Handle;
+ public string Name;
+ public int Flags;
public Sample(ByteIO reader) : base(reader) { }
public override void Read()
{
- handle = reader.ReadInt16();
- flags = reader.ReadUInt16();
- name = reader.ReadWideString();
+ Handle = Reader.ReadInt16();
+ Flags = Reader.ReadUInt16();
+ Name = Reader.ReadWideString();
}
public override string ToString()
{
- return $"Sample '{name}' handle: {handle}";
+ return $"Sample '{Name}' handle: {Handle}";
}
}
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Short.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Short.cs
index 5962e3b..60a06ee 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Short.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Short.cs
@@ -9,17 +9,17 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
{
class Short : ParameterCommon
{
- public short value;
+ public short Value;
public Short(ByteIO reader) : base(reader) { }
public override void Read()
{
- value = reader.ReadInt16();
+ Value = Reader.ReadInt16();
}
public override string ToString()
{
- return $"{this.GetType().Name} value: {value}";
+ return $"{this.GetType().Name} value: {Value}";
}
}
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Time.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Time.cs
index 369497e..858c1e8 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Time.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Time.cs
@@ -15,8 +15,8 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters
public Time(ByteIO reader) : base(reader) { }
public override void Read()
{
- Timer = reader.ReadInt32();
- Loops = reader.ReadInt32();
+ Timer = Reader.ReadInt32();
+ Loops = Reader.ReadInt32();
}
public override string ToString()
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/ExtData.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/ExtData.cs
index ba33b2e..4123ae6 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/ExtData.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/ExtData.cs
@@ -1,5 +1,4 @@
-using NetMFAPatcher.chunkloaders;
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -18,7 +17,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public override void Read()
{
- var filename = reader.ReadAscii();
+ var filename = Reader.ReadAscii();
//var data = reader.ReadBytes();
}
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Globals.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/Globals.cs
index 157c7bf..5d787c6 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Globals.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/Globals.cs
@@ -1,5 +1,4 @@
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.mmfparser;
+using NetMFAPatcher.mmfparser;
using NetMFAPatcher.Utils;
using System;
using System.Collections.Generic;
@@ -12,7 +11,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
public class GlobalValues : ChunkLoader
{
- public List items = new List();
+ public List Items = new List();
public GlobalValues(Chunk chunk) : base(chunk) { }
public override void Print(bool ext)
{
@@ -21,15 +20,15 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public override void Read()
{
- var numberOfItems = reader.ReadUInt16();
+ var numberOfItems = Reader.ReadUInt16();
var templist = new List();
for (int i = 0; i < numberOfItems; i++)
{
- templist.Add(new ByteIO(reader.ReadBytes(4)));
+ templist.Add(new ByteIO(Reader.ReadBytes(4)));
}
foreach (var item in templist)
{
- var globalType = reader.ReadSByte();
+ var globalType = Reader.ReadSByte();
float newGlobal = 0f;
if((Constants.ValueType)globalType==Constants.ValueType.Float)
{
@@ -43,7 +42,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
throw new Exception("unknown global type");
}
- items.Add(newGlobal);
+ Items.Add(newGlobal);
}
@@ -51,7 +50,7 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
}
public class GlobalStrings : ChunkLoader
{
- public List items = new List();
+ public List Items = new List();
public GlobalStrings(Chunk chunk) : base(chunk) { }
public override void Print(bool ext)
{
@@ -60,10 +59,10 @@ namespace NetMFAPatcher.MMFParser.ChunkLoaders
public override void Read()
{
- var count = reader.ReadUInt32();
+ var count = Reader.ReadUInt32();
for (int i = 0; i < count; i++)
{
- items.Add(reader.ReadAscii());
+ Items.Add(Reader.ReadAscii());
}
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/ObjectNames.cs b/NetMFAPatcher/MMFParser/ChunkLoaders/ObjectNames.cs
index 6eda0d8..81951db 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/ObjectNames.cs
+++ b/NetMFAPatcher/MMFParser/ChunkLoaders/ObjectNames.cs
@@ -1,13 +1,13 @@
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.Utils;
+using NetMFAPatcher.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.mmfparser.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
class ObjectNames : ChunkLoader//Fucking trash
{
@@ -18,13 +18,13 @@ namespace NetMFAPatcher.mmfparser.chunkloaders
public override void Read()
{
- var start = reader.Tell();
- var endpos = start + chunk.size;
+ var start = Reader.Tell();
+ var endpos = start + Chunk.Size;
while(true)
{
- if (reader.Tell() >= endpos+4) break;
+ if (Reader.Tell() >= endpos+4) break;
- Console.WriteLine(reader.ReadWideString());
+ Console.WriteLine(Reader.ReadWideString());
}
}
diff --git a/NetMFAPatcher/MMFParser/Data/ChunkList.cs b/NetMFAPatcher/MMFParser/Data/ChunkList.cs
index fd52ec4..935ce7e 100644
--- a/NetMFAPatcher/MMFParser/Data/ChunkList.cs
+++ b/NetMFAPatcher/MMFParser/Data/ChunkList.cs
@@ -1,40 +1,40 @@
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.mmfparser.chunkloaders;
-using NetMFAPatcher.MMFParser.ChunkLoaders;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
using NetMFAPatcher.MMFParser.ChunkLoaders.Events;
using NetMFAPatcher.utils;
using NetMFAPatcher.Utils;
using System;
using System.Collections.Generic;
using System.IO;
+using NetMFAPatcher.MMFParser.ChunkLoaders.banks;
+using NetMFAPatcher.MMFParser.ChunkLoaders.Banks;
using static NetMFAPatcher.mmfparser.Constants;
namespace NetMFAPatcher.MMFParser.Data
{
public class ChunkList
{
- public List chunks = new List();
- public bool verbose = false;
+ public List Chunks = new List();
+ public bool Verbose = false;
public List Frames = new List();
public void Read(ByteIO exeReader)
{
- chunks.Clear();
+ Chunks.Clear();
while (true)
{
- Chunk chunk = new Chunk(chunks.Count, this);
- chunk.verbose = verbose;
+ Chunk chunk = new Chunk(Chunks.Count, this);
+ chunk.Verbose = Verbose;
chunk.Read(exeReader);
- chunk.loader = LoadChunk(chunk);
+ chunk.Loader = LoadChunk(chunk);
- if (chunk.loader != null)
+ if (chunk.Loader != null)
{
- if (chunk.loader.verbose)
+ if (chunk.Loader.Verbose)
{
//chunk.loader.Print(Program.LogAll);
}
}
- if (chunk.verbose)
+ if (chunk.Verbose)
{
chunk.Print(Program.LogAll);
if(Program.LogAll) Console.ReadKey();
@@ -44,15 +44,15 @@ namespace NetMFAPatcher.MMFParser.Data
}
- chunks.Add(chunk);
- if (chunk.id == 8750)
+ Chunks.Add(chunk);
+ if (chunk.Id == 8750)
{
chunk.BuildKey();
}
- if (chunk.id == 32639) break; //LAST chunkID
+ if (chunk.Id == 32639) break; //LAST chunkID
}
//Logger.Log(verbose ? $" Total Chunks Count: {chunks.Count}":"ChunkList Done", true, ConsoleColor.Blue);
@@ -60,62 +60,62 @@ namespace NetMFAPatcher.MMFParser.Data
public class Chunk
{
- ChunkList chunk_list;
- public string name = "UNKNOWN";
- int uid;
- public int id = 0;
+ ChunkList _chunkList;
+ public string Name = "UNKNOWN";
+ int _uid;
+ public int Id = 0;
- public ChunkLoader loader;
- public byte[] chunk_data;
- public ChunkFlags flag;
- public int size = 0;
- public int decompressed_size = 0;
- public bool verbose = false;
-
- public Chunk(int Actualuid, ChunkList actual_chunk_list)
+ public ChunkLoader Loader;
+ public byte[] ChunkData;
+ public ChunkFlags Flag;
+ public int Size = 0;
+ public int DecompressedSize = 0;
+ public bool Verbose = false;
+
+ public Chunk(int actualuid, ChunkList actualChunkList)
{
- uid = Actualuid;
- chunk_list = actual_chunk_list;
+ _uid = actualuid;
+ _chunkList = actualChunkList;
}
public ByteIO get_reader()
{
- return new ByteIO(chunk_data);
+ return new ByteIO(ChunkData);
}
public void Read(ByteIO exeReader)
{
- id = exeReader.ReadInt16();
- name = ((ChunkNames) id).ToString();
+ Id = exeReader.ReadInt16();
+ Name = ((ChunkNames) Id).ToString();
- flag = (ChunkFlags) exeReader.ReadInt16();
- size = exeReader.ReadInt32();
+ Flag = (ChunkFlags) exeReader.ReadInt16();
+ Size = exeReader.ReadInt32();
- switch (flag)
+ switch (Flag)
{
case ChunkFlags.Encrypted:
- chunk_data = Decryption.DecodeChunk(exeReader.ReadBytes(size),size);
+ ChunkData = Decryption.DecodeChunk(exeReader.ReadBytes(Size),Size);
break;
case ChunkFlags.CompressedAndEncrypyed:
- chunk_data = Decryption.DecodeMode3(exeReader.ReadBytes(size), size,id);
+ ChunkData = Decryption.DecodeMode3(exeReader.ReadBytes(Size), Size,Id);
break;
case ChunkFlags.Compressed:
- chunk_data = Decompressor.Decompress(exeReader);
+ ChunkData = Decompressor.Decompress(exeReader);
break;
case ChunkFlags.NotCompressed:
- chunk_data = exeReader.ReadBytes(size);
+ ChunkData = exeReader.ReadBytes(Size);
break;
}
- if (chunk_data != null)
+ if (ChunkData != null)
{
- decompressed_size = chunk_data.Length;
- string path = $"{Program.DumpPath}\\CHUNKS\\{name}.chunk";
- File.WriteAllBytes(path, chunk_data);
+ DecompressedSize = ChunkData.Length;
+ // string path = $"{Program.DumpPath}\\CHUNKS\\{Name}.chunk";
+ // File.WriteAllBytes(path, ChunkData);
}
int tempId=0;
- int.TryParse(name,out tempId);
- if(tempId==id)
+ int.TryParse(Name,out tempId);
+ if(tempId==Id)
{
//chunk_data.Log(true, "X2");
}
@@ -126,22 +126,22 @@ namespace NetMFAPatcher.MMFParser.Data
{
if(extented)
{
- Logger.Log($"Chunk: {name} ({uid})", true, ConsoleColor.DarkCyan);
- Logger.Log($" ID: {id} - 0x{id.ToString("X")}", true, ConsoleColor.DarkCyan);
- Logger.Log($" Flags: {flag}", true, ConsoleColor.DarkCyan);
- Logger.Log($" Loader: {(loader != null ? loader.GetType().Name : "Empty Loader")}", true,ConsoleColor.DarkCyan);
- Logger.Log($" Size: {size} B", true, ConsoleColor.DarkCyan);
- Logger.Log($" Decompressed Size: {decompressed_size} B", true, ConsoleColor.DarkCyan);
+ Logger.Log($"Chunk: {Name} ({_uid})", true, ConsoleColor.DarkCyan);
+ Logger.Log($" ID: {Id} - 0x{Id.ToString("X")}", true, ConsoleColor.DarkCyan);
+ Logger.Log($" Flags: {Flag}", true, ConsoleColor.DarkCyan);
+ Logger.Log($" Loader: {(Loader != null ? Loader.GetType().Name : "Empty Loader")}", true,ConsoleColor.DarkCyan);
+ Logger.Log($" Size: {Size} B", true, ConsoleColor.DarkCyan);
+ Logger.Log($" Decompressed Size: {DecompressedSize} B", true, ConsoleColor.DarkCyan);
Logger.Log("---------------------------------------------", true, ConsoleColor.DarkCyan);
}
else
{
- Logger.Log($"Chunk: {name} ({uid})", true, ConsoleColor.DarkCyan);
- Logger.Log($" ID: {id} - 0x{id.ToString("X")}", true, ConsoleColor.DarkCyan);
- Logger.Log($" Decompressed Size: {decompressed_size} B", true, ConsoleColor.DarkCyan);
- Logger.Log($" Flags: {flag}", true, ConsoleColor.DarkCyan);
+ Logger.Log($"Chunk: {Name} ({_uid})", true, ConsoleColor.DarkCyan);
+ Logger.Log($" ID: {Id} - 0x{Id.ToString("X")}", true, ConsoleColor.DarkCyan);
+ Logger.Log($" Decompressed Size: {DecompressedSize} B", true, ConsoleColor.DarkCyan);
+ Logger.Log($" Flags: {Flag}", true, ConsoleColor.DarkCyan);
Logger.Log("---------------------------------------------", true, ConsoleColor.DarkCyan);
}
@@ -152,16 +152,16 @@ namespace NetMFAPatcher.MMFParser.Data
string copyright = "";
string project = "";
- var titleChunk = chunk_list.get_chunk();
- if (titleChunk != null) title = titleChunk.value;
+ var titleChunk = _chunkList.get_chunk();
+ if (titleChunk != null) title = titleChunk.Value;
- var copyrightChunk = chunk_list.get_chunk();
- if (copyrightChunk != null) copyright = copyrightChunk.value;
+ var copyrightChunk = _chunkList.get_chunk();
+ if (copyrightChunk != null) copyright = copyrightChunk.Value;
- var projectChunk = chunk_list.get_chunk();
- if (projectChunk != null) project = projectChunk.value;
+ var projectChunk = _chunkList.get_chunk();
+ if (projectChunk != null) project = projectChunk.Value;
- if (EXE.LatestInst.game_data.product_build >= 284)
+ if (Exe.LatestInst.GameData.ProductBuild >= 284)
{
Decryption.MakeKey(title, copyright, project);
}
@@ -188,7 +188,7 @@ namespace NetMFAPatcher.MMFParser.Data
public ChunkLoader LoadChunk(Chunk chunk)
{
ChunkLoader loader = null;
- switch (chunk.id)
+ switch (chunk.Id)
{
case 8739:
loader = new AppHeader(chunk);
@@ -277,13 +277,13 @@ namespace NetMFAPatcher.MMFParser.Data
public T get_chunk() where T : ChunkLoader
{
- foreach (Chunk chunk in chunks)
+ foreach (Chunk chunk in Chunks)
{
- if (chunk.loader != null)
+ if (chunk.Loader != null)
{
- if (chunk.loader.GetType().Name == typeof(T).Name)
+ if (chunk.Loader.GetType().Name == typeof(T).Name)
{
- return (T) chunk.loader;
+ return (T) chunk.Loader;
}
}
}
diff --git a/NetMFAPatcher/MMFParser/Data/DataLoader.cs b/NetMFAPatcher/MMFParser/Data/DataLoader.cs
index 3fbefd0..ceb49fa 100644
--- a/NetMFAPatcher/MMFParser/Data/DataLoader.cs
+++ b/NetMFAPatcher/MMFParser/Data/DataLoader.cs
@@ -10,18 +10,18 @@ namespace mmfparser
{
public abstract class DataLoader
{
- private Chunk chunk;
- public ByteIO reader;
- public bool verbose = true;
+ private Chunk _chunk;
+ public ByteIO Reader;
+ public bool Verbose = true;
protected DataLoader(ByteIO reader)
{
- this.reader = reader;
+ this.Reader = reader;
}
protected DataLoader(Chunk chunk)
{
- this.chunk = chunk;
- this.reader = chunk.get_reader();
+ this._chunk = chunk;
+ this.Reader = chunk.get_reader();
}
public abstract void Read();
diff --git a/NetMFAPatcher/MMFParser/Data/EXE.cs b/NetMFAPatcher/MMFParser/Data/EXE.cs
index 6347607..278c297 100644
--- a/NetMFAPatcher/MMFParser/Data/EXE.cs
+++ b/NetMFAPatcher/MMFParser/Data/EXE.cs
@@ -8,19 +8,19 @@ using System.Threading.Tasks;
namespace NetMFAPatcher.MMFParser.Data
{
- class EXE
+ class Exe
{
- public PackData pack_data;
- public GameData game_data;
- public static EXE LatestInst;
+ public PackData PackData;
+ public GameData GameData;
+ public static Exe LatestInst;
public void ParseExe(ByteIO exeReader)
{
LatestInst = this;
Logger.Log($"Executable: {Program.GameName}\n", true, ConsoleColor.DarkRed);
- string Header1 = exeReader.ReadAscii(2);
- Logger.Log("EXE Header: " + Header1, true, ConsoleColor.Yellow);
- if (Header1 != "MZ")
+ string header1 = exeReader.ReadAscii(2);
+ Logger.Log("EXE Header: " + header1, true, ConsoleColor.Yellow);
+ if (header1 != "MZ")
{
Console.WriteLine("Invalid executable signature");
Console.ReadKey();
@@ -29,35 +29,35 @@ namespace NetMFAPatcher.MMFParser.Data
exeReader.Seek(60, SeekOrigin.Begin);
- UInt16 hdr_offset = exeReader.ReadUInt16();
+ UInt16 hdrOffset = exeReader.ReadUInt16();
- exeReader.Seek(hdr_offset, SeekOrigin.Begin);
+ exeReader.Seek(hdrOffset, SeekOrigin.Begin);
string peHdr = exeReader.ReadAscii(2);
Logger.Log("PE Header: " + peHdr, true, ConsoleColor.Yellow);
exeReader.Skip(4);
- UInt16 num_of_sections = exeReader.ReadUInt16();
+ UInt16 numOfSections = exeReader.ReadUInt16();
exeReader.Skip(16);
- int optional_header = 28 + 68;
- int data_dir = 16 * 8;
- exeReader.Skip(optional_header + data_dir);
+ int optionalHeader = 28 + 68;
+ int dataDir = 16 * 8;
+ exeReader.Skip(optionalHeader + dataDir);
int possition = 0;
- for (int i = 0; i < num_of_sections; i++)
+ for (int i = 0; i < numOfSections; i++)
{
var entry = exeReader.Tell();
- var section_name = exeReader.ReadAscii();
+ var sectionName = exeReader.ReadAscii();
- if (section_name == ".extra")
+ if (sectionName == ".extra")
{
exeReader.Seek(entry + 20);
possition = (int)exeReader.ReadUInt32();
break;
}
- if (i >= num_of_sections - 1)
+ if (i >= numOfSections - 1)
{
exeReader.Seek(entry + 16);
uint size = exeReader.ReadUInt32();
@@ -70,16 +70,16 @@ namespace NetMFAPatcher.MMFParser.Data
}
exeReader.Seek((int)possition);
- UInt16 first_short = exeReader.PeekUInt16();
- Logger.Log("First Short: " + first_short.ToString("X2"), true, ConsoleColor.Yellow);
+ UInt16 firstShort = exeReader.PeekUInt16();
+ Logger.Log("First Short: " + firstShort.ToString("X2"), true, ConsoleColor.Yellow);
- if (first_short == 0x7777)
+ if (firstShort == 0x7777)
{
Logger.Log("Found PackData header!\nReading PackData header.", true, ConsoleColor.Blue);
- pack_data = new PackData();
- pack_data.Read(exeReader);
- game_data = new GameData();
- game_data.Read(exeReader);
+ PackData = new PackData();
+ PackData.Read(exeReader);
+ GameData = new GameData();
+ GameData.Read(exeReader);
Console.ForegroundColor = ConsoleColor.DarkGreen;
}
else
diff --git a/NetMFAPatcher/MMFParser/Data/GameData.cs b/NetMFAPatcher/MMFParser/Data/GameData.cs
index 7a73535..083d03f 100644
--- a/NetMFAPatcher/MMFParser/Data/GameData.cs
+++ b/NetMFAPatcher/MMFParser/Data/GameData.cs
@@ -1,30 +1,30 @@
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.mmfparser;
-using NetMFAPatcher.mmfparser.chunkloaders;
-using NetMFAPatcher.MMFParser.ChunkLoaders;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
using NetMFAPatcher.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.mmfparser;
+using NetMFAPatcher.MMFParser.ChunkLoaders.banks;
+using NetMFAPatcher.MMFParser.ChunkLoaders.Banks;
using static NetMFAPatcher.mmfparser.Constants;
namespace NetMFAPatcher.MMFParser.Data
{
public class GameData
{
- public int runtime_version;
- public int runtime_subversion;
- public int product_build;
- public int product_version;
- public Products build;
- public ChunkList gameChunks;
+ public int RuntimeVersion;
+ public int RuntimeSubversion;
+ public int ProductBuild;
+ public int ProductVersion;
+ public Products Build;
+ public ChunkList GameChunks;
public string Name;
public string Author;
public string Copyright;
- public string aboutText;
+ public string AboutText;
public string Doc;
public string EditorFilename;
@@ -45,7 +45,7 @@ namespace NetMFAPatcher.MMFParser.Data
public GlobalValues GValues;
public GlobalStrings GStrings;
- public static FrameItems testItems;
+ public static FrameItems TestItems;
//public Extensions Ext;
@@ -59,72 +59,72 @@ namespace NetMFAPatcher.MMFParser.Data
string magic = exeReader.ReadAscii(4); //Reading header
//Checking for header
- if (magic == Constants.UNICODE_GAME_HEADER) Constants.isUnicode = true;//PAMU
- else if (magic == Constants.GAME_HEADER) Constants.isUnicode = false;//PAME
+ if (magic == Constants.UnicodeGameHeader) Constants.IsUnicode = true;//PAMU
+ else if (magic == Constants.GameHeader) Constants.IsUnicode = false;//PAME
else Logger.Log("Couldn't found any known headers", true, ConsoleColor.Red);//Header not found
- runtime_version = exeReader.ReadUInt16(); //
- runtime_subversion = exeReader.ReadUInt16(); //0
- product_version = exeReader.ReadInt32(); //CTF/MMF2/MMF1.5/CNC
- product_build = exeReader.ReadInt32(); //CTF Build
- build = (Products)runtime_version;
+ RuntimeVersion = exeReader.ReadUInt16(); //
+ RuntimeSubversion = exeReader.ReadUInt16(); //0
+ ProductVersion = exeReader.ReadInt32(); //CTF/MMF2/MMF1.5/CNC
+ ProductBuild = exeReader.ReadInt32(); //CTF Build
+ Build = (Products)RuntimeVersion;
- gameChunks = new ChunkList(); //Reading game chunks
- gameChunks.Read(exeReader);
+ GameChunks = new ChunkList(); //Reading game chunks
+ GameChunks.Read(exeReader);
//Load chunks into gamedata for easier access
- if (gameChunks.get_chunk() != null) Name = gameChunks.get_chunk().value;
- if (gameChunks.get_chunk() != null) Copyright = gameChunks.get_chunk().value;
- if (gameChunks.get_chunk()!=null) Author = gameChunks.get_chunk().value;
- if (gameChunks.get_chunk() != null) EditorFilename = gameChunks.get_chunk().value;
- if (gameChunks.get_chunk() != null) TargetFilename = gameChunks.get_chunk().value;
- if (gameChunks.get_chunk() != null) Menu = gameChunks.get_chunk();
- if (gameChunks.get_chunk() != null) Header = gameChunks.get_chunk();
- if (gameChunks.get_chunk() != null) Sounds = gameChunks.get_chunk();
- if (gameChunks.get_chunk() != null) Music = gameChunks.get_chunk();
- if (gameChunks.get_chunk() != null) Fonts = gameChunks.get_chunk();
- if (gameChunks.get_chunk() != null) Images = gameChunks.get_chunk();
- if (gameChunks.get_chunk() != null) Icon = gameChunks.get_chunk();
- if (gameChunks.get_chunk() != null) GStrings = gameChunks.get_chunk();
- if (gameChunks.get_chunk() != null) GValues = gameChunks.get_chunk();
- if (gameChunks.get_chunk() != null) Frameitems = gameChunks.get_chunk();
- Frames = gameChunks.Frames; //Its a list, so i have to manually parse them in chunk list.
+ if (GameChunks.get_chunk() != null) Name = GameChunks.get_chunk().Value;
+ if (GameChunks.get_chunk() != null) Copyright = GameChunks.get_chunk().Value;
+ if (GameChunks.get_chunk()!=null) Author = GameChunks.get_chunk().Value;
+ if (GameChunks.get_chunk() != null) EditorFilename = GameChunks.get_chunk().Value;
+ if (GameChunks.get_chunk() != null) TargetFilename = GameChunks.get_chunk().Value;
+ if (GameChunks.get_chunk() != null) Menu = GameChunks.get_chunk();
+ if (GameChunks.get_chunk() != null) Header = GameChunks.get_chunk();
+ if (GameChunks.get_chunk() != null) Sounds = GameChunks.get_chunk();
+ if (GameChunks.get_chunk() != null) Music = GameChunks.get_chunk();
+ if (GameChunks.get_chunk() != null) Fonts = GameChunks.get_chunk();
+ if (GameChunks.get_chunk() != null) Images = GameChunks.get_chunk();
+ if (GameChunks.get_chunk() != null) Icon = GameChunks.get_chunk();
+ if (GameChunks.get_chunk() != null) GStrings = GameChunks.get_chunk();
+ if (GameChunks.get_chunk() != null) GValues = GameChunks.get_chunk();
+ if (GameChunks.get_chunk() != null) Frameitems = GameChunks.get_chunk();
+ Frames = GameChunks.Frames; //Its a list, so i have to manually parse them in chunk list.
Print();
}
public void Print()
{
Logger.Log($"GameData Info:", true, ConsoleColor.DarkGreen);
- Logger.Log($" Runtime Version: {runtime_version}", true, ConsoleColor.DarkGreen);
- Logger.Log($" Runtime Subversion: { runtime_subversion}", true, ConsoleColor.DarkGreen);
- Logger.Log($" Product Version: { ((Products)product_version).ToString()}", true, ConsoleColor.DarkGreen);
- Logger.Log($" Product Build: {product_build}", true, ConsoleColor.DarkGreen);
- Logger.Log($" {(isUnicode ? "Unicode" : "NonUnicode")} Game", true, ConsoleColor.DarkGreen);
+ Logger.Log($" Runtime Version: {RuntimeVersion}", true, ConsoleColor.DarkGreen);
+ Logger.Log($" Runtime Subversion: { RuntimeSubversion}", true, ConsoleColor.DarkGreen);
+ Logger.Log($" Product Version: { ((Products)ProductVersion).ToString()}", true, ConsoleColor.DarkGreen);
+ Logger.Log($" Product Build: {ProductBuild}", true, ConsoleColor.DarkGreen);
+ Logger.Log($" {(IsUnicode ? "Unicode" : "NonUnicode")} Game", true, ConsoleColor.DarkGreen);
Logger.Log($"Game Info:", true, ConsoleColor.Cyan);
Logger.Log($" Name:{Name}", true, ConsoleColor.Cyan);
Logger.Log($" Author:{Author}", true, ConsoleColor.Cyan);
Logger.Log($" Copyright:{Copyright}", true, ConsoleColor.Cyan);
Logger.Log($" Editor Filename:{EditorFilename}", true, ConsoleColor.Cyan);
Logger.Log($" Target Filename:{TargetFilename}", true, ConsoleColor.Cyan);
- Logger.Log($" Screen Resolution: {Header.windowWidth}x{Header.windowHeight}", true, ConsoleColor.Cyan);
+ Logger.Log($" Screen Resolution: {Header.WindowWidth}x{Header.WindowHeight}", true, ConsoleColor.Cyan);
- Logger.Log($" Frame Count:{Header.numberOfFrames}", true, ConsoleColor.Cyan);
- if (GStrings != null && GStrings.items.Count > 0)
+ Logger.Log($" Frame Count:{Header.NumberOfFrames}", true, ConsoleColor.Cyan);
+ if (GStrings != null && GStrings.Items.Count > 0)
{
Logger.Log($" Global Strings:", true, ConsoleColor.Cyan);
- foreach (var item in GStrings.items)
+ foreach (var item in GStrings.Items)
{
Logger.Log($" {item}");
}
}
- if (GValues != null && GValues.items.Count > 0)
+ if (GValues != null && GValues.Items.Count > 0)
{
Logger.Log($" Global Values:", true, ConsoleColor.Cyan);
- foreach (var item in GValues.items)
+ foreach (var item in GValues.Items)
{
Logger.Log($" {item.ToString()}");
}
@@ -134,7 +134,7 @@ namespace NetMFAPatcher.MMFParser.Data
Logger.Log("Frames: ", true, ConsoleColor.Cyan);
foreach (var item in Frames)
{
- Logger.Log($" Frame: {item.name}, Size: {item.width}x{item.height}, Number of objects: {item.CountOfObjs}", true, ConsoleColor.Cyan);
+ Logger.Log($" Frame: {item.Name}, Size: {item.Width}x{item.Height}, Number of objects: {item.CountOfObjs}", true, ConsoleColor.Cyan);
}
diff --git a/NetMFAPatcher/MMFParser/Data/MFA.cs b/NetMFAPatcher/MMFParser/Data/MFA.cs
index c51a3f4..73a5af3 100644
--- a/NetMFAPatcher/MMFParser/Data/MFA.cs
+++ b/NetMFAPatcher/MMFParser/Data/MFA.cs
@@ -1,53 +1,53 @@
using NetMFAPatcher.Utils;
-using mmfparser.mfaloaders;
-using NetMFAPatcher.chunkloaders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-using NetMFAPatcher.mmfparser;
-using NetMFAPatcher.mmfparser.mfaloaders;
-using NetMFAPatcher.mmfparser.chunkloaders;
using System.IO;
using Frame = NetMFAPatcher.mmfparser.mfaloaders.Frame;
using mmfparser;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
+using NetMFAPatcher.MMFParser.ChunkLoaders.banks;
+using NetMFAPatcher.mmfparser.mfaloaders;
+using NetMFAPatcher.MMFParser.MFALoaders;
+using NetMFAPatcher.utils;
namespace NetMFAPatcher.mfa
{
- class MFA : DataLoader
+ class Mfa : DataLoader
{
- public static readonly string FontBankID = "ATNF";
- public static readonly string ImageBankID = "AGMI";
- public static readonly string MusicBankID = "ASUM";
- public static readonly string SoundBankID = "APMS";
+ public static readonly string FontBankId = "ATNF";
+ public static readonly string ImageBankId = "AGMI";
+ public static readonly string MusicBankId = "ASUM";
+ public static readonly string SoundBankId = "APMS";
- public int mfaBuild;
- public int product;
- public int buildVersion;
- public int langID;
+ public int MfaBuild;
+ public int Product;
+ public int BuildVersion;
+ public int LangId;
- public string name;
- public string description;
- public string path;
+ public string Name;
+ public string Description;
+ public string Path;
- public FontBank fonts;
- public SoundBank sounds;
- public MusicBank music;
+ public FontBank Fonts;
+ public SoundBank Sounds;
+ public MusicBank Music;
- public string author;
- public string copyright;
- public string company;
- public string version;
+ public string Author;
+ public string Copyright;
+ public string Company;
+ public string Version;
- public byte[] stamp;
+ public byte[] Stamp;
- public int windowX;
- public int windowY;
+ public int WindowX;
+ public int WindowY;
- public ValueList globalValues;
- public ValueList globalStrings;
+ public ValueList GlobalValues;
+ public ValueList GlobalStrings;
public override void Print()
@@ -61,21 +61,21 @@ namespace NetMFAPatcher.mfa
{
writer.WriteAscii("MFU2");
- writer.WriteInt32(mfaBuild);
- writer.WriteInt32(product);
- writer.WriteInt32(buildVersion);
- writer.WriteInt32(langID);
- writer.AutoWriteUnicode(name);
- writer.AutoWriteUnicode(description);
- writer.AutoWriteUnicode(path);
-
- writer.WriteUInt32((uint)stamp.Length);
- writer.WriteBytes(stamp);
- writer.WriteAscii(FontBankID);
- fonts.Write(writer);
- writer.WriteAscii(SoundBankID);
- sounds.Write(writer);
- writer.WriteAscii(MusicBankID);
+ writer.WriteInt32(MfaBuild);
+ writer.WriteInt32(Product);
+ writer.WriteInt32(BuildVersion);
+ writer.WriteInt32(LangId);
+ writer.AutoWriteUnicode(Name);
+ writer.AutoWriteUnicode(Description);
+ writer.AutoWriteUnicode(Path);
+
+ writer.WriteUInt32((uint)Stamp.Length);
+ writer.WriteBytes(Stamp);
+ writer.WriteAscii(FontBankId);
+ Fonts.Write(writer);
+ writer.WriteAscii(SoundBankId);
+ Sounds.Write(writer);
+ writer.WriteAscii(MusicBankId);
//music.Write();//cum cum cum cum cum cum cum cum
writer.WriteInt32(0);//someone is using musics lol?
@@ -89,181 +89,181 @@ namespace NetMFAPatcher.mfa
public override void Read()
{
- Logger.Log($"MFA HEADER:{reader.ReadAscii(4)}\n");
- mfaBuild = reader.ReadInt32();
- product = reader.ReadInt32();
- buildVersion = reader.ReadInt32();
- Console.WriteLine($"mfaBuild: {mfaBuild}, product: {product}, buildVersion: {buildVersion}");
- langID = reader.ReadInt32();
+ Logger.Log($"MFA HEADER:{Reader.ReadAscii(4)}\n");
+ MfaBuild = Reader.ReadInt32();
+ Product = Reader.ReadInt32();
+ BuildVersion = Reader.ReadInt32();
+ Console.WriteLine($"mfaBuild: {MfaBuild}, product: {Product}, buildVersion: {BuildVersion}");
+ LangId = Reader.ReadInt32();
- name = Helper.AutoReadUnicode(reader);
+ Name = Helper.AutoReadUnicode(Reader);
- description = Helper.AutoReadUnicode(reader);
+ Description = Helper.AutoReadUnicode(Reader);
- path = Helper.AutoReadUnicode(reader);
- Console.WriteLine($"\nMFAName: {name}\nDescription: {description}\nPath: {path}");
+ Path = Helper.AutoReadUnicode(Reader);
+ Console.WriteLine($"\nMFAName: {Name}\nDescription: {Description}\nPath: {Path}");
- stamp = reader.ReadBytes(reader.ReadInt32());
+ Stamp = Reader.ReadBytes(Reader.ReadInt32());
- if (reader.ReadAscii(4) != "ATNF")
+ if (Reader.ReadAscii(4) != "ATNF")
{
throw new Exception("Invalid Font Bank");
}
- fonts = new FontBank(reader);
- fonts.Read();
- Console.WriteLine("FONTS: " + fonts.numberOfItems);
+ Fonts = new FontBank(Reader);
+ Fonts.Read();
+ Console.WriteLine("FONTS: " + Fonts.NumberOfItems);
- if (reader.ReadAscii(4) != "APMS")
+ if (Reader.ReadAscii(4) != "APMS")
{
throw new Exception("Invalid Sound Bank");
}
- sounds = new SoundBank(reader);
- sounds.isCompressed = false;
- sounds.Read();
+ Sounds = new SoundBank(Reader);
+ Sounds.IsCompressed = false;
+ Sounds.Read();
- if (reader.ReadAscii(4) != "ASUM")
+ if (Reader.ReadAscii(4) != "ASUM")
{
throw new Exception("Invalid Music Bank");
}
- music = new MusicBank(reader);
- music.Read();
+ Music = new MusicBank(Reader);
+ Music.Read();
- if (reader.ReadAscii(4) != "AGMI")
+ if (Reader.ReadAscii(4) != "AGMI")
{
throw new Exception("Invalid Icon Bank");
}
- var icons = new AGMIBank(reader);
+ var icons = new AgmiBank(Reader);
icons.Read();
- if (reader.ReadAscii(4) != "AGMI")
+ if (Reader.ReadAscii(4) != "AGMI")
{
throw new Exception("Invalid Image Bank");
}
- var images = new AGMIBank(reader);
+ var images = new AgmiBank(Reader);
images.Read();
- if (Helper.AutoReadUnicode(reader) != name) throw new Exception("Invalid name");
+ if (Helper.AutoReadUnicode(Reader) != Name) throw new Exception("Invalid name");
- author = Helper.AutoReadUnicode(reader);
+ Author = Helper.AutoReadUnicode(Reader);
- var newDesc = Helper.AutoReadUnicode(reader);
- if ( newDesc!= description) throw new Exception("Invalid description: "+newDesc);
+ var newDesc = Helper.AutoReadUnicode(Reader);
+ if ( newDesc!= Description) throw new Exception("Invalid description: "+newDesc);
- copyright = Helper.AutoReadUnicode(reader);
-
-
- company = Helper.AutoReadUnicode(reader);
- Console.WriteLine("Company: "+company);
- version = Helper.AutoReadUnicode(reader);
- Console.WriteLine("Version: " + version);
- windowX = reader.ReadInt32();
- windowY = reader.ReadInt32();
- Console.WriteLine($"Window:{windowX}x{windowY}");
- var borderColor = reader.ReadColor();
- var displayFlags = reader.ReadUInt32();
- var graphicFlags = reader.ReadUInt32();
- var helpFile = Helper.AutoReadUnicode(reader);
- Console.WriteLine(reader.Tell());
- var vitalizePreview = reader.ReadInt32();
- var initialScore = reader.ReadInt32();
- var initialLifes = reader.ReadInt32();
- var frameRate = reader.ReadInt32();
- var buildType = reader.ReadInt32();
- var buildPath = Helper.AutoReadUnicode(reader);
- reader.ReadInt32();
- var commandLine = Helper.AutoReadUnicode(reader);
- var aboutbox = Helper.AutoReadUnicode(reader);
+ Copyright = Helper.AutoReadUnicode(Reader);
+
+
+ Company = Helper.AutoReadUnicode(Reader);
+ Console.WriteLine("Company: "+Company);
+ Version = Helper.AutoReadUnicode(Reader);
+ Console.WriteLine("Version: " + Version);
+ WindowX = Reader.ReadInt32();
+ WindowY = Reader.ReadInt32();
+ Console.WriteLine($"Window:{WindowX}x{WindowY}");
+ var borderColor = Reader.ReadColor();
+ var displayFlags = Reader.ReadUInt32();
+ var graphicFlags = Reader.ReadUInt32();
+ var helpFile = Helper.AutoReadUnicode(Reader);
+ Console.WriteLine(Reader.Tell());
+ var vitalizePreview = Reader.ReadInt32();
+ var initialScore = Reader.ReadInt32();
+ var initialLifes = Reader.ReadInt32();
+ var frameRate = Reader.ReadInt32();
+ var buildType = Reader.ReadInt32();
+ var buildPath = Helper.AutoReadUnicode(Reader);
+ Reader.ReadInt32();
+ var commandLine = Helper.AutoReadUnicode(Reader);
+ var aboutbox = Helper.AutoReadUnicode(Reader);
Console.WriteLine(aboutbox);
- reader.ReadInt32();
- var binCount = reader.ReadInt32();//wtf i cant put it in loop fuck shit
+ Reader.ReadInt32();
+ var binCount = Reader.ReadInt32();//wtf i cant put it in loop fuck shit
for (int i = 0; i < binCount; i++)
{
- reader.ReadBytes(reader.ReadInt32());//binaryfiles
+ Reader.ReadBytes(Reader.ReadInt32());//binaryfiles
}
- var controls = new mmfparser.mfaloaders.Controls(reader);
+ var controls = new mmfparser.mfaloaders.Controls(Reader);
controls.Read();
- var menuSize = reader.ReadUInt32();
- var currentPosition = reader.Tell();
- var menu = new AppMenu(reader);
+ var menuSize = Reader.ReadUInt32();
+ var currentPosition = Reader.Tell();
+ var menu = new AppMenu(Reader);
menu.Read();
- reader.Seek(menuSize + currentPosition);
+ Reader.Seek(menuSize + currentPosition);
- var windowMenuIndex = reader.ReadInt32();
+ var windowMenuIndex = Reader.ReadInt32();
int[] menuImages = new int[65535];//govnokod suka
- var MICount = reader.ReadInt32();
- for (int i = 0; i < MICount; i++)
+ var miCount = Reader.ReadInt32();
+ for (int i = 0; i < miCount; i++)
{
- var id = reader.ReadInt32();
- menuImages[id] = reader.ReadInt32();
+ var id = Reader.ReadInt32();
+ menuImages[id] = Reader.ReadInt32();
}
- globalValues = new ValueList(reader);
- globalValues.Read();
- globalStrings = new ValueList(reader);
- globalStrings.Read();
- var globalEvents = reader.ReadBytes(reader.ReadInt32());
- var graphicMode = reader.ReadInt32();;
+ GlobalValues = new ValueList(Reader);
+ GlobalValues.Read();
+ GlobalStrings = new ValueList(Reader);
+ GlobalStrings.Read();
+ var globalEvents = Reader.ReadBytes(Reader.ReadInt32());
+ var graphicMode = Reader.ReadInt32();;
- var icoCount = reader.ReadInt32();
+ var icoCount = Reader.ReadInt32();
for (int i = 0; i < icoCount; i++)
{
- reader.ReadInt32();
+ Reader.ReadInt32();
}
- var qualCount = reader.ReadInt32();
+ var qualCount = Reader.ReadInt32();
for (int i = 0; i < qualCount; i++)//qualifiers
{
- var nameQ = reader.ReadAscii(reader.ReadInt32());
- var handleQ = reader.ReadInt32();
+ var nameQ = Reader.ReadAscii(Reader.ReadInt32());
+ var handleQ = Reader.ReadInt32();
}
- var extCount = reader.ReadInt32();
+ var extCount = Reader.ReadInt32();
for (int i = 0; i < extCount; i++)//extensions
{
- var handleE = reader.ReadInt32();
- var filenameE = Helper.AutoReadUnicode(reader);
- var nameE = Helper.AutoReadUnicode(reader);
- var magicE = reader.ReadInt32();
- var subType = reader.ReadBytes(reader.ReadInt32());
+ var handleE = Reader.ReadInt32();
+ var filenameE = Helper.AutoReadUnicode(Reader);
+ var nameE = Helper.AutoReadUnicode(Reader);
+ var magicE = Reader.ReadInt32();
+ var subType = Reader.ReadBytes(Reader.ReadInt32());
}
List frameOffsets = new List();
- var offCount = reader.ReadInt32();
+ var offCount = Reader.ReadInt32();
for (int i = 0; i < offCount; i++)
{
- frameOffsets.Add(reader.ReadInt32());
+ frameOffsets.Add(Reader.ReadInt32());
}
- var nextOffset = reader.ReadInt32();
+ var nextOffset = Reader.ReadInt32();
foreach (var item in frameOffsets)
{
- reader.Seek(item);
- var testframe = new Frame(reader);
+ Reader.Seek(item);
+ var testframe = new Frame(Reader);
testframe.Read();
}
- reader.Seek(nextOffset);
- var chunks = new ChunkList(reader);
+ Reader.Seek(nextOffset);
+ var chunks = new ChunkList(Reader);
chunks.Read();
return;
@@ -275,7 +275,7 @@ namespace NetMFAPatcher.mfa
}
- public MFA(ByteIO reader) : base(reader)
+ public Mfa(ByteIO reader) : base(reader)
{
}
diff --git a/NetMFAPatcher/MMFParser/Data/PackData.cs b/NetMFAPatcher/MMFParser/Data/PackData.cs
index 040da4a..2815461 100644
--- a/NetMFAPatcher/MMFParser/Data/PackData.cs
+++ b/NetMFAPatcher/MMFParser/Data/PackData.cs
@@ -12,7 +12,7 @@ namespace NetMFAPatcher.MMFParser.Data
{
public class PackData
{
- public PackFile[] items;
+ public PackFile[] Items;
public PackData()
{
@@ -23,14 +23,14 @@ namespace NetMFAPatcher.MMFParser.Data
byte[] header = exeReader.ReadBytes(8);
exeReader.Skip(8);
- uint header_size = exeReader.ReadUInt32();
- uint data_size = exeReader.ReadUInt32();
+ uint headerSize = exeReader.ReadUInt32();
+ uint dataSize = exeReader.ReadUInt32();
- exeReader.Seek((int)(start + data_size - 32));
+ exeReader.Seek((int)(start + dataSize - 32));
exeReader.Skip(4);
exeReader.Seek(start + 16);
- uint format_version = exeReader.ReadUInt32();
+ uint formatVersion = exeReader.ReadUInt32();
exeReader.Skip(8);
uint count = exeReader.ReadUInt32();
@@ -48,7 +48,7 @@ namespace NetMFAPatcher.MMFParser.Data
if (!exeReader.Check(value)) break;
}
exeReader.BaseStream.Position -= 5;//wtf lol
- header = exeReader.ReadFourCC();
+ header = exeReader.ReadFourCc();
exeReader.Seek(offset);
for (int i = 0; i < count; i++) new PackFile().Read(exeReader);
@@ -60,24 +60,24 @@ namespace NetMFAPatcher.MMFParser.Data
}
public class PackFile
{
- string PackFilename = "ERROR";
- int bingo = 0;
- byte[] data;
+ string _packFilename = "ERROR";
+ int _bingo = 0;
+ byte[] _data;
public void Read(ByteIO exeReader)
{
UInt16 len = exeReader.ReadUInt16();
- PackFilename = exeReader.ReadWideString(len);
- bingo = exeReader.ReadInt32();
- data = exeReader.ReadBytes(exeReader.ReadInt32());
+ _packFilename = exeReader.ReadWideString(len);
+ _bingo = exeReader.ReadInt32();
+ _data = exeReader.ReadBytes(exeReader.ReadInt32());
Dump();
}
public void Dump()
{
- Logger.Log($"Dumping {PackFilename}", true, ConsoleColor.DarkBlue);
- string path = $"{Program.DumpPath}\\extensions\\" + PackFilename;
- File.WriteAllBytes(path, data);
+ Logger.Log($"Dumping {_packFilename}", true, ConsoleColor.DarkBlue);
+ string path = $"{Program.DumpPath}\\extensions\\" + _packFilename;
+ File.WriteAllBytes(path, _data);
}
}
diff --git a/NetMFAPatcher/Program.cs b/NetMFAPatcher/Program.cs
index 561de33..d8e6f67 100644
--- a/NetMFAPatcher/Program.cs
+++ b/NetMFAPatcher/Program.cs
@@ -1,6 +1,4 @@
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.Utils;
-using NetMFAPatcher.mmfparser;
+using NetMFAPatcher.Utils;
using System;
using System.IO;
using System.Collections;
@@ -15,111 +13,109 @@ namespace NetMFAPatcher
{
class Program
{
-
//public static string path = @"H:\fnaf-world.exe";//test
//public static string path = @"D:\SteamLibrary\steamapps\common\Five Nights at Freddy's Sister Location\SisterLocation.exe";
- public static string path = "";//TODO: Make Selectable
+ public static string Path = ""; //TODO: Make Selectable
- public static string GameName;// = Path.GetFileNameWithoutExtension(path);
- public static string DumpPath;// = $"DUMP\\{GameName}";
+ public static string GameName; // = Path.GetFileNameWithoutExtension(path);
+ public static string DumpPath; // = $"DUMP\\{GameName}";
- public static bool doMFA=false;
+ public static bool DoMfa = false;
public static bool DumpImages = false;
public static bool DumpSounds = false;
- public static bool verbose;
+ public static bool Verbose;
- public static bool LogAll=false;
- public static bool UseGUI = false;
+ public static bool LogAll = false;
+ public static bool UseGui = false;
[STAThread]
static void Main(string[] args)
{
- string Path="";
- bool Verbose=false;
- bool DumpImages=true;
- bool DumpSounds=true;
-
- if(args.Length==0)
+ string path = "";
+ bool verbose = false;
+ bool dumpImages = true;
+ bool dumpSounds = true;
+
+ if (args.Length == 0)
{
- UseGUI = true;
+ UseGui = true;
var form = new MainForm();
Application.Run(form);
-
}
-
-
+
if (args.Length > 0)
{
- Path = args[0];
+ path = args[0];
}
+
if (args.Length > 1)
{
- Boolean.TryParse(args[1],out Verbose);
+ Boolean.TryParse(args[1], out verbose);
}
+
if (args.Length > 2)
{
- Boolean.TryParse(args[2],out DumpImages);
+ Boolean.TryParse(args[2], out dumpImages);
}
- if(args.Length>3)
+
+ if (args.Length > 3)
{
- Boolean.TryParse(args[3],out DumpSounds);
+ Boolean.TryParse(args[3], out dumpSounds);
}
- if(args[0]=="-h"||args[0]=="-help")
+
+ if (args.Length > 0 && (args[0] == "-h" || args[0] == "-help"))
{
- Logger.Log($"DotNetCTFDumper: 0.0.5",true,ConsoleColor.Green);
+ Logger.Log($"DotNetCTFDumper: 0.0.5", true, ConsoleColor.Green);
Logger.Log($"Lauch Args:", true, ConsoleColor.Green);
Logger.Log($" Filename - path to your exe or mfa", true, ConsoleColor.Green);
Logger.Log($" Info - Dump debug info to console(default:true)", true, ConsoleColor.Green);
- Logger.Log($" DumpImages - Dump images to 'DUMP\\[your game]\\ImageBank'(default:false)", true, ConsoleColor.Green);
- Logger.Log($" DumpSounds - Dump sounds to 'DUMP\\[your game]\\SoundBank'(default:true)\n", true, ConsoleColor.Green);
- Logger.Log($"Exaple: DotNetCTFDumper.exe E:\\SisterLocation.exe true true false true", true, ConsoleColor.Green);
+ Logger.Log($" DumpImages - Dump images to 'DUMP\\[your game]\\ImageBank'(default:false)", true,
+ ConsoleColor.Green);
+ Logger.Log($" DumpSounds - Dump sounds to 'DUMP\\[your game]\\SoundBank'(default:true)\n", true,
+ ConsoleColor.Green);
+ Logger.Log($"Exaple: DotNetCTFDumper.exe E:\\SisterLocation.exe true true false true", true,
+ ConsoleColor.Green);
Console.ReadKey();
Environment.Exit(0);
-
}
- if(args.Length>0) ReadFile(Path, Verbose, DumpImages, DumpSounds);
-
-
-
+ if (args.Length > 0) ReadFile(path, verbose, dumpImages, dumpSounds);
}
- public static void ReadFile(string path,bool verbose=false,bool dumpImages=false,bool dumpSounds=true)
+
+ public static void ReadFile(string path, bool verbose = false, bool dumpImages = false, bool dumpSounds = true)
{
- GameName = Path.GetFileNameWithoutExtension(path);
+ GameName = System.IO.Path.GetFileNameWithoutExtension(path);
DumpPath = $"DUMP\\{GameName}";
PrepareFolders();
-
+
DumpImages = dumpImages;
DumpSounds = dumpSounds;
- Program.verbose = verbose;
+ Program.Verbose = verbose;
if (File.Exists(path))
{
-
-
if (path.EndsWith(".exe"))
{
- doMFA = false;
+ DoMfa = false;
ByteIO exeReader = new ByteIO(path, FileMode.Open);
- EXE currentEXE = new EXE();
- currentEXE.ParseExe(exeReader);
+ Exe currentExe = new Exe();
+ currentExe.ParseExe(exeReader);
Logger.Log("Finished!", true, ConsoleColor.Yellow);
- if(!UseGUI) Console.ReadKey();
-
+ if (!UseGui) Console.ReadKey();
}
else if (path.EndsWith(".mfa"))
{
- doMFA = true;
+ DoMfa = true;
Logger.Log("MFA reading is currently unstable");
Logger.Log("Are you sure?");
Console.ReadKey();
ByteIO mfaReader = new ByteIO(path, FileMode.Open);
- var mfa = new MFA(mfaReader);
+ var mfa = new Mfa(mfaReader);
mfa.Read();
Console.WriteLine("Writing");
- var MFAWriter = new ByteWriter("out.mfa",FileMode.Create);
- mfa.Write(MFAWriter);
+ var mfaWriter = new ByteWriter("out.mfa", FileMode.Create);
+ mfa.Write(mfaWriter);
Console.ReadKey();
}
else
@@ -129,14 +125,10 @@ namespace NetMFAPatcher
}
else
{
- Logger.Log($"File '{path}' does not exist",true,ConsoleColor.Red);
+ Logger.Log($"File '{path}' does not exist", true, ConsoleColor.Red);
}
-
-
-
-
-
}
+
public static void PrepareFolders()
{
Directory.CreateDirectory($"{DumpPath}\\CHUNKS\\OBJECTINFO");
@@ -146,7 +138,5 @@ namespace NetMFAPatcher
Directory.CreateDirectory($"{DumpPath}\\SoundBank");
Directory.CreateDirectory($"{DumpPath}\\extensions");
}
-
-
}
}
\ No newline at end of file
diff --git a/NetMFAPatcher/Utils/BitDict.cs b/NetMFAPatcher/Utils/BitDict.cs
new file mode 100644
index 0000000..c85e916
--- /dev/null
+++ b/NetMFAPatcher/Utils/BitDict.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+
+namespace NetMFAPatcher.utils
+{
+ public class BitDict
+ {
+ private String[] Keys;
+ public UInt32 flag { get; set; }
+
+ public BitDict(String[] keys)
+ {
+ Keys = keys;
+ }
+
+ public bool this[String key]
+ {
+ get => GetFlag(key);
+ }
+
+ public bool GetFlag(String key)
+ {
+ Int32 pos = Array.IndexOf(Keys, key);
+ if (pos >= 0)
+ {
+ return (flag & ((UInt32) Math.Pow(2, pos))) != 0;
+ }
+
+ return false;
+ }
+
+ public static string ToDebugString(IDictionary dictionary)
+ {
+ return "{" + string.Join(",", dictionary.Select(kv => kv.Key + "=" + kv.Value).ToArray()) + "}";
+ }
+
+ public override string ToString()
+ {
+ Dictionary actualKeys = new Dictionary();
+ foreach (var key in Keys)
+ {
+ actualKeys[key] = this[key];
+ }
+
+ return ToDebugString(actualKeys);
+ }
+ }
+}
\ No newline at end of file
diff --git a/NetMFAPatcher/Utils/ByteFlag.cs b/NetMFAPatcher/Utils/ByteFlag.cs
index 77b78bc..35e9f19 100644
--- a/NetMFAPatcher/Utils/ByteFlag.cs
+++ b/NetMFAPatcher/Utils/ByteFlag.cs
@@ -8,12 +8,11 @@ namespace NetMFAPatcher.utils
{
public static class ByteFlag
{
- public static bool getFlag(int flagbyte,int pos)
+ public static bool GetFlag(UInt32 flagbyte, int pos)
{
- var mask = Math.Pow(2, pos);
- var result = flagbyte & (int)mask;
+ UInt32 mask = (uint) (2 << pos);
+ UInt32 result = flagbyte & mask;
return result == mask;
-
}
}
-}
+}
\ No newline at end of file
diff --git a/NetMFAPatcher/Utils/ByteIO.cs b/NetMFAPatcher/Utils/ByteIO.cs
index 4eb94bc..40cdc8c 100644
--- a/NetMFAPatcher/Utils/ByteIO.cs
+++ b/NetMFAPatcher/Utils/ByteIO.cs
@@ -36,7 +36,7 @@ namespace NetMFAPatcher.Utils
{
BaseStream.Seek(count, SeekOrigin.Current);
}
- public byte[] ReadFourCC()
+ public byte[] ReadFourCc()
{
return Encoding.UTF8.GetBytes(ReadAscii(4));
}
@@ -56,7 +56,7 @@ namespace NetMFAPatcher.Utils
return Size() - Tell() >= size;
}
- public bool eof()
+ public bool Eof()
{
return BaseStream.Position < BaseStream.Length;
}
diff --git a/NetMFAPatcher/Utils/ByteWriter.cs b/NetMFAPatcher/Utils/ByteWriter.cs
index 8c4b631..ec8f7eb 100644
--- a/NetMFAPatcher/Utils/ByteWriter.cs
+++ b/NetMFAPatcher/Utils/ByteWriter.cs
@@ -53,7 +53,7 @@ namespace NetMFAPatcher.Utils
return Size() - Tell() >= size;
}
- public bool eof()
+ public bool Eof()
{
return BaseStream.Position < BaseStream.Length;
}
diff --git a/NetMFAPatcher/Utils/Decompressor.cs b/NetMFAPatcher/Utils/Decompressor.cs
index 4784828..e182f7c 100644
--- a/NetMFAPatcher/Utils/Decompressor.cs
+++ b/NetMFAPatcher/Utils/Decompressor.cs
@@ -1,4 +1,5 @@
using System;
+using System.Diagnostics;
namespace NetMFAPatcher.Utils
{
@@ -6,37 +7,36 @@ namespace NetMFAPatcher.Utils
{
public static byte[] Decompress(ByteIO exeReader)
{
- Int32 decomp_size = exeReader.ReadInt32();
- Int32 comp_size = exeReader.ReadInt32();
- return decompress_block(exeReader, comp_size, decomp_size);
-
+ Int32 decompSize = exeReader.ReadInt32();
+ Int32 compSize = exeReader.ReadInt32();
+ return decompress_block(exeReader, compSize, decompSize);
}
+
public static ByteIO DecompressAsReader(ByteIO exeReader)
{
- Int32 decomp_size = exeReader.ReadInt32();
- Int32 comp_size = exeReader.ReadInt32();
- byte[] compressedData = exeReader.ReadBytes(comp_size);
+ Int32 decompSize = exeReader.ReadInt32();
+ Int32 compSize = exeReader.ReadInt32();
+ byte[] compressedData = exeReader.ReadBytes(compSize);
byte[] actualData = Ionic.Zlib.ZlibStream.UncompressBuffer(compressedData);
+ Debug.Assert(actualData.Length == decompSize);
return new ByteIO(actualData);
}
- public static byte[] decompress_block(ByteIO reader,int size,int decomp_size)
+
+ public static byte[] decompress_block(ByteIO reader, int size, int decompSize)
{
byte[] compressedData = reader.ReadBytes(size);
byte[] actualData = Ionic.Zlib.ZlibStream.UncompressBuffer(compressedData);
return actualData;
-
}
- public static ByteIO decompress_asReader(ByteIO image_data, int v, int decompressed_size)
+ public static ByteIO decompress_asReader(ByteIO imageData, int v, int decompressedSize)
{
- return new ByteIO(decompress_block(image_data, v, decompressed_size));
+ return new ByteIO(decompress_block(imageData, v, decompressedSize));
}
- internal static byte[] decompress_block(ByteIO data, uint compressed_size, uint decompressedSize)
+ internal static byte[] decompress_block(ByteIO data, uint compressedSize, uint decompressedSize)
{
throw new NotImplementedException();
}
}
-
-
-}
+}
\ No newline at end of file
diff --git a/NetMFAPatcher/Utils/Decryption.cs b/NetMFAPatcher/Utils/Decryption.cs
index d55ddae..e17fc95 100644
--- a/NetMFAPatcher/Utils/Decryption.cs
+++ b/NetMFAPatcher/Utils/Decryption.cs
@@ -13,69 +13,69 @@ namespace NetMFAPatcher.utils
{
public static byte[] DecryptionKey;
public static byte MagicChar=54;
- public static void MakeKey(string STitle, string SCopyright,string SProject)
+ public static void MakeKey(string sTitle, string sCopyright,string sProject)
{
- var RawKey = "";
- RawKey += STitle;
- RawKey += SCopyright;
- RawKey += SProject;
- Logger.Log("Combined data "+RawKey,true,ConsoleColor.Yellow);
- var RawKeyPTR = Marshal.StringToHGlobalAnsi(RawKey);
+ var rawKey = "";
+ rawKey += sTitle;
+ rawKey += sCopyright;
+ rawKey += sProject;
+ Logger.Log("Combined data "+rawKey,true,ConsoleColor.Yellow);
+ var rawKeyPtr = Marshal.StringToHGlobalAnsi(rawKey);
- var ptr = Decryption.make_key_combined(RawKeyPTR, MagicChar);
+ var ptr = Decryption.make_key_combined(rawKeyPtr, MagicChar);
- byte[] Key = new byte[257];
- Marshal.Copy(ptr, Key, 0, 256);
- Marshal.FreeHGlobal(RawKeyPTR);
+ byte[] key = new byte[257];
+ Marshal.Copy(ptr, key, 0, 256);
+ Marshal.FreeHGlobal(rawKeyPtr);
- DecryptionKey = Key;
+ DecryptionKey = key;
Logger.Log($"First 16-Bytes of key: {DecryptionKey.GetHex(16)}",true,ConsoleColor.Yellow);
File.WriteAllBytes($"{Program.DumpPath}\\key.bin", DecryptionKey);
}
- public static byte[] DecodeMode3(byte[] ChunkData, int ChunkSize,int ChunkID)
+ public static byte[] DecodeMode3(byte[] chunkData, int chunkSize,int chunkId)
{
- var reader = new ByteIO(ChunkData);
- var DecompressedSize = reader.ReadUInt32();
+ var reader = new ByteIO(chunkData);
+ var decompressedSize = reader.ReadUInt32();
- var chunkData = reader.ReadBytes((int)reader.Size());
- if (ChunkID % 2 != 0)
+ var rawData = reader.ReadBytes((int)reader.Size());
+ if (chunkId % 2 != 0)
{
- chunkData[0] ^= (byte)(((byte)ChunkID & 0xFF) ^ ((byte)ChunkID >> 0x8));
+ rawData[0] ^= (byte)(((byte)chunkId & 0xFF) ^ ((byte)chunkId >> 0x8));
}
- var rawData = DecodeChunk(chunkData, ChunkSize);
+ rawData = DecodeChunk(rawData, chunkSize);
var data = new ByteIO(rawData);
- var compressed_size = data.ReadUInt32();
+ var compressedSize = data.ReadUInt32();
- return Decompressor.decompress_block(data, (int)compressed_size, (int)DecompressedSize);
+ return Decompressor.decompress_block(data, (int)compressedSize, (int)decompressedSize);
}
- public static byte[] DecodeChunk(byte[] ChunkData, int ChunkSize)
+ public static byte[] DecodeChunk(byte[] chunkData, int chunkSize)
{
- IntPtr InputChunkPtr = Marshal.AllocHGlobal(ChunkData.Length);
- Marshal.Copy(ChunkData, 0, InputChunkPtr, ChunkData.Length);
+ IntPtr inputChunkPtr = Marshal.AllocHGlobal(chunkData.Length);
+ Marshal.Copy(chunkData, 0, inputChunkPtr, chunkData.Length);
- IntPtr KeyPtr = Marshal.AllocHGlobal(DecryptionKey.Length);
- Marshal.Copy(DecryptionKey, 0, KeyPtr, DecryptionKey.Length);
+ IntPtr keyPtr = Marshal.AllocHGlobal(DecryptionKey.Length);
+ Marshal.Copy(DecryptionKey, 0, keyPtr, DecryptionKey.Length);
- var OutputChunkPtr = decode_chunk(InputChunkPtr, ChunkSize, MagicChar, KeyPtr);
+ var outputChunkPtr = decode_chunk(inputChunkPtr, chunkSize, MagicChar, keyPtr);
- byte[] DecodedChunk = new byte[ChunkSize];
- Marshal.Copy(OutputChunkPtr, DecodedChunk,0,ChunkSize);
+ byte[] decodedChunk = new byte[chunkSize];
+ Marshal.Copy(outputChunkPtr, decodedChunk,0,chunkSize);
- Marshal.FreeHGlobal(InputChunkPtr);
- Marshal.FreeHGlobal(KeyPtr);
+ Marshal.FreeHGlobal(inputChunkPtr);
+ Marshal.FreeHGlobal(keyPtr);
- return DecodedChunk;
+ return decodedChunk;
}
[DllImport("Decrypter-x64.dll", EntryPoint = "decode_chunk", CharSet = CharSet.Auto)]
- public static extern IntPtr decode_chunk(IntPtr chunk_data, int chunk_size, byte magic_char,IntPtr wrapper_key);
+ public static extern IntPtr decode_chunk(IntPtr chunkData, int chunkSize, byte magicChar,IntPtr wrapperKey);
[DllImport("Decrypter-x64.dll", EntryPoint = "make_key", CharSet = CharSet.Auto)]
- public static extern IntPtr make_key(IntPtr c_title, IntPtr c_copyright, IntPtr c_project, byte magic_char);
+ public static extern IntPtr make_key(IntPtr cTitle, IntPtr cCopyright, IntPtr cProject, byte magicChar);
[DllImport("Decrypter-x64.dll", EntryPoint = "make_key_combined", CharSet = CharSet.Auto)]
- public static extern IntPtr make_key_combined(IntPtr data, byte magic_char);
+ public static extern IntPtr make_key_combined(IntPtr data, byte magicChar);
}
}
diff --git a/NetMFAPatcher/Utils/Helper.cs b/NetMFAPatcher/Utils/Helper.cs
index e068bf3..a1e5c13 100644
--- a/NetMFAPatcher/Utils/Helper.cs
+++ b/NetMFAPatcher/Utils/Helper.cs
@@ -1,16 +1,12 @@
-using mmfparser;
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.mmfparser.mfaloaders;
-using NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters;
-using NetMFAPatcher.Utils;
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
-using System.Text;
using System.Text.RegularExpressions;
-using System.Threading.Tasks;
+using mmfparser;
+using NetMFAPatcher.MMFParser.ChunkLoaders.Events.Parameters;
+using NetMFAPatcher.Utils;
-namespace NetMFAPatcher
+namespace NetMFAPatcher.utils
{
static class Helper
{
@@ -31,18 +27,18 @@ namespace NetMFAPatcher
public static string Log(this byte[] bytes, bool log = true, string format = "")
{
- string Temp = String.Empty;
+ string temp = String.Empty;
for (int i = 0; i < bytes.Length; i++)
{
var item = bytes[i];
if (i > 0)
{
- Temp += " " + item.ToString(format);
+ temp += " " + item.ToString(format);
}
else
{
- Temp += item.ToString(format);
+ temp += item.ToString(format);
}
}
@@ -50,9 +46,9 @@ namespace NetMFAPatcher
{
- Console.WriteLine(Temp);
+ Console.WriteLine(temp);
}
- return Temp;
+ return temp;
}
@@ -110,7 +106,7 @@ namespace NetMFAPatcher
if (b < 128 && b > 32) charAcc += Convert.ToChar(b);
else charAcc += '.';
}
- var b_len = block.Count();
+ var bLen = block.Count();
//var accLen=
diff --git a/NetMFAPatcher/Utils/ImageHelper.cs b/NetMFAPatcher/Utils/ImageHelper.cs
index 6134a28..19a1a29 100644
--- a/NetMFAPatcher/Utils/ImageHelper.cs
+++ b/NetMFAPatcher/Utils/ImageHelper.cs
@@ -5,39 +5,118 @@ using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.MMFParser.ChunkLoaders.Banks;
namespace NetMFAPatcher.utils
{
public static class ImageHelper
{
- public static Color ReadPoint(byte[] data,int position)
+ public static (byte[], int) ReadPoint(byte[] data, int width, int height)
{
- //byte b2 = binaryReader.ReadByte();
- //byte b3 = binaryReader.ReadByte();
- //byte b4 = binaryReader.ReadByte();
- byte b2 = data[position];
- byte b3 = data[position+1];
- byte b4 = data[position+2];
- return Color.FromArgb((int)b4, (int)b3, (int)b2);
+ byte[] colorArray = new byte[width * height * 4];
+ int stride = width * 4;
+ int pad = GetPadding(width, 3);
+ int position = 0;
+ for (int y = 0; y < height; y++)
+ {
+ for (int x = 0; x < width; x++)
+ {
+ colorArray[(y * stride) + (x * 4) + 0] = data[position];
+ colorArray[(y * stride) + (x * 4) + 1] = data[position + 1];
+ colorArray[(y * stride) + (x * 4) + 2] = data[position + 2];
+ colorArray[(y * stride) + (x * 4) + 3] = 255;
+ position += 3;
+ }
+
+ position += pad * 3;
+ }
+ return (colorArray, position);
}
- public static Color ReadSixteen(byte[] data, int position)
+
+ public static (byte[], int) ReadSixteen(byte[] data, int width, int height)
{
- var newShort = (data[position] | data[position + 1] << 8);
- byte r = (byte)((newShort & 31744) >> 10);
- byte g = (byte)((newShort & 992) >> 5);
- byte b = (byte)((newShort & 31));
- return Color.FromArgb((int)b, (int)g, (int)r);
+ byte[] colorArray = new byte[width * height * 4];
+ int stride = width * 4;
+ int pad = GetPadding(width, 3);
+ int position = 0;
+ for (int y = 0; y < height; y++)
+ {
+ for (int x = 0; x < width; x++)
+ {
+ UInt16 newShort = (ushort) (data[position] | data[position + 1] << 8);
+ byte r = (byte) ((newShort & 31744) >> 10);
+ byte g = (byte) ((newShort & 992) >> 5);
+ byte b = (byte) ((newShort & 31));
+
+ colorArray[(y * stride) + (x * 4) + 0] = (byte) (r << 3);
+ colorArray[(y * stride) + (x * 4) + 1] = (byte) (g << 2);
+ colorArray[(y * stride) + (x * 4) + 2] = (byte) (b << 3);
+ colorArray[(y * stride) + (x * 4) + 3] = 255;
+ position += 2;
+ }
+ position += pad * 2;
+ }
+
+ return (colorArray, position);
}
- public static int getPadding(int width, int pad = 2)
+
+ public static (byte[], int) ReadFifteen(byte[] data, int width, int height)
{
- int num = pad - width * 3 % pad;
- if (num == pad)
+ byte[] colorArray = new byte[width * height * 4];
+ int stride = width * 4;
+ int pad = GetPadding(width, 3);
+ int position = 0;
+ for (int y = 0; y < height; y++)
{
- num = 0;
+ for (int x = 0; x < width; x++)
+ {
+ UInt16 newShort = (ushort) (data[position] | data[position + 1] << 8);
+ byte r = (byte) ((newShort & 31744) >> 10);
+ byte g = (byte) ((newShort & 992) >> 5);
+ byte b = (byte) ((newShort & 31));
+
+ colorArray[(y * stride) + (x * 4) + 0] = (byte) (r << 3);
+ colorArray[(y * stride) + (x * 4) + 1] = (byte) (g << 3);
+ colorArray[(y * stride) + (x * 4) + 2] = (byte) (b << 3);
+ colorArray[(y * stride) + (x * 4) + 3] = 255;
+ position += 2;
+ }
+
+ position += pad * 2;
}
- return (int)Math.Ceiling((double)((float)num / 3f));
+
+ return (colorArray, position);
+ }
+
+ public static byte[,] ReadAlpha(byte[] data, int width, int height, int possition)
+ {
+ int pad = GetPadding(width, 1, 4);
+ byte[,] alpha = new byte[width, height];
+ for (int i = 0; i < height; i++)
+ {
+ for (int j = 0; j < width; j++)
+ {
+ alpha[j, i] = data[possition];
+ possition += 1;
+ }
+
+ possition += pad;
+ }
+
+ return alpha;
+ }
+
+ public static int GetPadding(int width, int pointSize, int bytes = 2)
+ {
+ int pad = bytes - ((width * pointSize) % bytes);
+ if (pad == bytes)
+ {
+ return 0;
+ }
+
+ return (int) Math.Ceiling((double) ((float) pad / (float) pointSize));
}
}
-}
+}
\ No newline at end of file
diff --git a/NetMFAPatcher/Utils/Logger.cs b/NetMFAPatcher/Utils/Logger.cs
index 813a49f..55f5a8e 100644
--- a/NetMFAPatcher/Utils/Logger.cs
+++ b/NetMFAPatcher/Utils/Logger.cs
@@ -9,17 +9,17 @@ namespace NetMFAPatcher.Utils
{
public static class Logger
{
- static StreamWriter writer;
+ static StreamWriter _writer;
public static void Log(string text, bool logToScreen = true,ConsoleColor color = ConsoleColor.White)
{
- if (writer == null)
+ if (_writer == null)
{
File.Delete("Dump.log");
- writer = new StreamWriter("Dump.log", true);
- writer.AutoFlush = true;
+ _writer = new StreamWriter("Dump.log", true);
+ _writer.AutoFlush = true;
}
- writer.WriteLine(text);
+ _writer.WriteLine(text);
if (logToScreen)
{
diff --git a/NetMFAPatcher/mmfparser/Constants.cs b/NetMFAPatcher/mmfparser/Constants.cs
index ec581f4..29fdf34 100644
--- a/NetMFAPatcher/mmfparser/Constants.cs
+++ b/NetMFAPatcher/mmfparser/Constants.cs
@@ -8,15 +8,15 @@ namespace NetMFAPatcher.mmfparser
{
public static class Constants
{
- public static readonly string GAME_HEADER = "PAME";
- public static readonly string UNICODE_GAME_HEADER = "PAMU";//"50 41 4D 55";
- public static bool isUnicode;
+ public static readonly string GameHeader = "PAME";
+ public static readonly string UnicodeGameHeader = "PAMU";//"50 41 4D 55";
+ public static bool IsUnicode;
public enum Products
{
- MMF1=1,
- MMF15=2,
- MMF2=3,
- CNC1=0
+ Mmf1=1,
+ Mmf15=2,
+ Mmf2=3,
+ Cnc1=0
}
public enum ValueType
@@ -44,9 +44,9 @@ namespace NetMFAPatcher.mmfparser
Score=5,
Lives = 6,
Counter=7,
- RTF=8,
+ Rtf=8,
SubApplication=9,
- INI=33,
+ Ini=33,
IniPp=32,
File=34,
TextEntry=35
@@ -66,7 +66,7 @@ namespace NetMFAPatcher.mmfparser
GlobalEvents=8746,
FrameHandles=8747,
ExtData=8748,
- Additional_Extension=8749,
+ AdditionalExtension=8749,
AppEditorFilename=8750,
AppTargetFilename=8751,
AppDoc=8752,
@@ -83,7 +83,7 @@ namespace NetMFAPatcher.mmfparser
Copyright=8763,
GlobalValuesNames=8764,
GlobalStringNames=8765,
- MVTexts=8766,
+ MvTexts=8766,
FrameItems2=8767,
ExeOnly=8768,
Protection=8770,
@@ -109,7 +109,7 @@ namespace NetMFAPatcher.mmfparser
RandomSeed=13124,
FrameLayerEffects=13125,
BlurayFrameOptions=13126,
- MVTimerBase=13127,
+ MvTimerBase=13127,
MosaicImageTable=13128,
FrameEffects=13129,
FrameIphoneOptions=13130,
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/AppHeader.cs b/NetMFAPatcher/mmfparser/chunkloaders/AppHeader.cs
index 35997ae..8ff81e7 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/AppHeader.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/AppHeader.cs
@@ -5,48 +5,49 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NetMFAPatcher.mmfparser;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
using NetMFAPatcher.mmfparser.mfaloaders;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
public class AppHeader : ChunkLoader
{
- public int size;
- public int windowWidth;
- public int windowHeight;
- public int initialScore;
- public int initialLives;
- public int numberOfFrames;
+ public int Size;
+ public int WindowWidth;
+ public int WindowHeight;
+ public int InitialScore;
+ public int InitialLives;
+ public int NumberOfFrames;
public override void Read()
{
- reader = new ByteIO(chunk.chunk_data);
- size = reader.ReadInt32();
- var flags = reader.ReadInt16(); //raw,need convert
- var new_flags = reader.ReadInt16(); //read flags or no balls
- var graphics_mode = reader.ReadInt16(); //i am serious
- var otherflags = reader.ReadInt16(); //last chance to get balls back
- windowWidth = reader.ReadInt16();
- windowHeight = reader.ReadInt16();
- initialScore = (int) (reader.ReadUInt32() ^ 0xffffffff);
- initialLives = (int) (reader.ReadUInt32() ^ 0xffffffff);
- var controls = new Controls(reader);
+ Reader = new ByteIO(Chunk.ChunkData);
+ Size = Reader.ReadInt32();
+ var flags = Reader.ReadInt16(); //raw,need convert
+ var newFlags = Reader.ReadInt16(); //read flags or no balls
+ var graphicsMode = Reader.ReadInt16(); //i am serious
+ var otherflags = Reader.ReadInt16(); //last chance to get balls back
+ WindowWidth = Reader.ReadInt16();
+ WindowHeight = Reader.ReadInt16();
+ InitialScore = (int) (Reader.ReadUInt32() ^ 0xffffffff);
+ InitialLives = (int) (Reader.ReadUInt32() ^ 0xffffffff);
+ var controls = new Controls(Reader);
controls.Read();
// controls.Print(false);
- var borderColor = reader.ReadBytes(4);
- numberOfFrames = reader.ReadInt32();
- var frameRate = reader.ReadInt32();
- var windowsMenuIndex = reader.ReadSByte();
+ var borderColor = Reader.ReadBytes(4);
+ NumberOfFrames = Reader.ReadInt32();
+ var frameRate = Reader.ReadInt32();
+ var windowsMenuIndex = Reader.ReadSByte();
}
public override void Print(bool ext)
{
- Logger.Log($"ScreenRes: {windowWidth}x{windowHeight}", true, ConsoleColor.DarkMagenta);
- Logger.Log($"Score: {initialScore}, Lives: {initialLives}", true, ConsoleColor.DarkMagenta);
- Logger.Log($"Frame count: {numberOfFrames}", true, ConsoleColor.DarkMagenta);
+ Logger.Log($"ScreenRes: {WindowWidth}x{WindowHeight}", true, ConsoleColor.DarkMagenta);
+ Logger.Log($"Score: {InitialScore}, Lives: {InitialLives}", true, ConsoleColor.DarkMagenta);
+ Logger.Log($"Frame count: {NumberOfFrames}", true, ConsoleColor.DarkMagenta);
Logger.Log("");
}
@@ -63,23 +64,22 @@ namespace NetMFAPatcher.chunkloaders
public class Controls:ChunkLoader
{
- public List items;
- ByteIO reader;
+ public List Items;
public Controls(ByteIO reader) : base(reader)
{
- this.reader = reader;
+ this.Reader = reader;
}
public override void Read()
{
- items = new List();
+ Items = new List();
for (int i = 0; i < 4; i++)
{
- var item = new PlayerControl(reader);
- items.Add(item);
+ var item = new PlayerControl(Reader);
+ Items.Add(item);
item.Read();
}
}
@@ -87,7 +87,7 @@ namespace NetMFAPatcher.chunkloaders
public override void Print(bool ext)
{
Logger.Log("Controls: ",true,ConsoleColor.Yellow);
- foreach (var item in items)
+ foreach (var item in Items)
{
item.Print();
}
@@ -96,70 +96,70 @@ namespace NetMFAPatcher.chunkloaders
public class PlayerControl
{
- int controlType = 0;
- ByteIO reader;
- Keys keys;
+ int _controlType = 0;
+ ByteIO _reader;
+ Keys _keys;
public PlayerControl(ByteIO reader)
{
- this.reader = reader;
+ this._reader = reader;
}
public void Read()
{
- keys = new Keys(reader);
- controlType = reader.ReadInt16();
- keys.Read();
+ _keys = new Keys(_reader);
+ _controlType = _reader.ReadInt16();
+ _keys.Read();
}
public void Print()
{
Logger.Log(" PlayerControl:", true, ConsoleColor.Yellow);
- Logger.Log($" ControlType: {controlType}", true, ConsoleColor.Yellow);
- keys.Print();
+ Logger.Log($" ControlType: {_controlType}", true, ConsoleColor.Yellow);
+ _keys.Print();
}
}
public class Keys
{
- int up;
- int down;
- int left;
- int right;
- int button1;
- int button2;
- int button3;
- int button4;
- ByteIO reader;
+ int _up;
+ int _down;
+ int _left;
+ int _right;
+ int _button1;
+ int _button2;
+ int _button3;
+ int _button4;
+ ByteIO _reader;
public Keys(ByteIO reader)
{
- this.reader = reader;
+ this._reader = reader;
}
public void Read()
{
- up = reader.ReadInt16();
- down = reader.ReadInt16();
- left = reader.ReadInt16();
- right = reader.ReadInt16();
- button1 = reader.ReadInt16();
- button2 = reader.ReadInt16();
- button3 = reader.ReadInt16();
- button4 = reader.ReadInt16();
+ _up = _reader.ReadInt16();
+ _down = _reader.ReadInt16();
+ _left = _reader.ReadInt16();
+ _right = _reader.ReadInt16();
+ _button1 = _reader.ReadInt16();
+ _button2 = _reader.ReadInt16();
+ _button3 = _reader.ReadInt16();
+ _button4 = _reader.ReadInt16();
}
public void Print()
{
- Logger.Log($" Up: {up}", true, ConsoleColor.Yellow);
- Logger.Log($" Down: {down}", true, ConsoleColor.Yellow);
- Logger.Log($" Left: {left}", true, ConsoleColor.Yellow);
- Logger.Log($" Right: {right}", true, ConsoleColor.Yellow);
- Logger.Log($" Button1: {button1}", true, ConsoleColor.Yellow);
- Logger.Log($" Button2: {button2}", true, ConsoleColor.Yellow);
- Logger.Log($" Button3: {button3}", true, ConsoleColor.Yellow);
- Logger.Log($" Button4: {button4}", true, ConsoleColor.Yellow);
+ Logger.Log($" Up: {_up}", true, ConsoleColor.Yellow);
+ Logger.Log($" Down: {_down}", true, ConsoleColor.Yellow);
+ Logger.Log($" Left: {_left}", true, ConsoleColor.Yellow);
+ Logger.Log($" Right: {_right}", true, ConsoleColor.Yellow);
+ Logger.Log($" Button1: {_button1}", true, ConsoleColor.Yellow);
+ Logger.Log($" Button2: {_button2}", true, ConsoleColor.Yellow);
+ Logger.Log($" Button3: {_button3}", true, ConsoleColor.Yellow);
+ Logger.Log($" Button4: {_button4}", true, ConsoleColor.Yellow);
}
}
}
\ No newline at end of file
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/AppMenu.cs b/NetMFAPatcher/mmfparser/chunkloaders/AppMenu.cs
index 6cea97f..a7c1346 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/AppMenu.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/AppMenu.cs
@@ -1,18 +1,18 @@
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.utils;
+using NetMFAPatcher.utils;
using NetMFAPatcher.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.mmfparser.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
public class AppMenu : ChunkLoader
{
- public List items = new List();
+ public List Items = new List();
public AppMenu(ByteIO reader) : base(reader)
{
}
@@ -27,27 +27,27 @@ namespace NetMFAPatcher.mmfparser.chunkloaders
public override void Read()
{
- var current_position = reader.Tell();
- var header_size = reader.ReadUInt32();
- var menu_offset = reader.ReadInt32();
- var menu_size = reader.ReadInt32();
- if (menu_size == 0) return;
- var accel_offset = reader.ReadInt32();
- var accel_size = reader.ReadInt32();
- reader.Seek(current_position + menu_offset);
- reader.Skip(4);
+ var currentPosition = Reader.Tell();
+ var headerSize = Reader.ReadUInt32();
+ var menuOffset = Reader.ReadInt32();
+ var menuSize = Reader.ReadInt32();
+ if (menuSize == 0) return;
+ var accelOffset = Reader.ReadInt32();
+ var accelSize = Reader.ReadInt32();
+ Reader.Seek(currentPosition + menuOffset);
+ Reader.Skip(4);
Load();
- reader.Seek(current_position + accel_offset);
+ Reader.Seek(currentPosition + accelOffset);
- for (int i = 0; i < accel_size/8; i++)
+ for (int i = 0; i < accelSize/8; i++)
{
- reader.ReadByte();
- reader.Skip(1);
- reader.ReadInt16();
- reader.ReadInt16();
- reader.Skip(2);
+ Reader.ReadByte();
+ Reader.Skip(1);
+ Reader.ReadInt16();
+ Reader.ReadInt16();
+ Reader.Skip(2);
}
}
@@ -55,11 +55,11 @@ namespace NetMFAPatcher.mmfparser.chunkloaders
{
while(true)
{
- var new_item = new AppMenuItem(reader);
- new_item.Read();
- items.Add(new_item);
+ var newItem = new AppMenuItem(Reader);
+ newItem.Read();
+ Items.Add(newItem);
- if (new_item.name.Contains("About")) break;
+ if (newItem.Name.Contains("About")) break;
if (true)//ByteFlag.getFlag(new_item.flags,4))
{
Load();
@@ -79,10 +79,10 @@ namespace NetMFAPatcher.mmfparser.chunkloaders
}
public class AppMenuItem : ChunkLoader
{
- public string name = "";
- public int flags = 0;
- public int id = 0;
- public string mnemonic = "";
+ public string Name = "";
+ public int Flags = 0;
+ public int Id = 0;
+ public string Mnemonic = "";
public AppMenuItem(ByteIO reader) : base(reader)
{
}
@@ -97,24 +97,24 @@ namespace NetMFAPatcher.mmfparser.chunkloaders
public override void Read()
{
- var flags = reader.ReadInt16();
- if (!ByteFlag.getFlag(flags,4))
+ uint flags = (uint) Reader.ReadInt16();
+ if (!ByteFlag.GetFlag(flags,4))
{
- id = reader.ReadInt16();
+ Id = Reader.ReadInt16();
}
- name = reader.ReadWideString();
+ Name = Reader.ReadWideString();
- for (int i = 0; i < name.Length; i++)
+ for (int i = 0; i < Name.Length; i++)
{
- if(name[i]=='&')
+ if(Name[i]=='&')
{
- mnemonic = name[i + 1].ToString().ToUpper();
+ Mnemonic = Name[i + 1].ToString().ToUpper();
}
- name = name.Replace("&", "");
+ Name = Name.Replace("&", "");
}
- Console.WriteLine(name);
+ Console.WriteLine(Name);
}
public void Load()
{
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/ChunkLoader.cs b/NetMFAPatcher/mmfparser/chunkloaders/ChunkLoader.cs
index fa72d9e..2d11de0 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/ChunkLoader.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/ChunkLoader.cs
@@ -1,28 +1,22 @@
-using NetMFAPatcher.mfa;
-using NetMFAPatcher.Utils;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using NetMFAPatcher.Utils;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
public abstract class ChunkLoader//:DataLoader
{
- public Chunk chunk;
- public ByteIO reader;
- public bool verbose = false;
+ public Chunk Chunk;
+ public ByteIO Reader;
+ public bool Verbose = false;
protected ChunkLoader(ByteIO reader)
{
- this.reader = reader;
+ this.Reader = reader;
}
protected ChunkLoader(Chunk chunk)
{
- this.chunk = chunk;
- this.reader = chunk.get_reader();
+ this.Chunk = chunk;
+ this.Reader = chunk.get_reader();
}
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/Frame.cs b/NetMFAPatcher/mmfparser/chunkloaders/Frame.cs
index f0d902e..16f8e1c 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/Frame.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/Frame.cs
@@ -7,8 +7,9 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
-namespace NetMFAPatcher.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
class FrameName : StringChunk
{
@@ -34,52 +35,51 @@ namespace NetMFAPatcher.chunkloaders
public class Frame : ChunkLoader
{
- ByteIO reader;
- public string name;
- public string password;
- public int width;
- public int height;
- public byte[] background;
- public int flags;
+ public string Name;
+ public string Password;
+ public int Width;
+ public int Height;
+ public byte[] Background;
+ public int Flags;
public int CountOfObjs;
- int top;
- int bottom;
- int left;
- int right;
+ int _top;
+ int _bottom;
+ int _left;
+ int _right;
public override void Print(bool ext)
{
- Logger.Log($"Frame: {name}", true, ConsoleColor.Green);
- Logger.Log($" Password: {(password!=null ? password : "None")}", true, ConsoleColor.Green);
- Logger.Log($" Size: {width}x{height}", true, ConsoleColor.Green);
+ Logger.Log($"Frame: {Name}", true, ConsoleColor.Green);
+ Logger.Log($" Password: {(Password!=null ? Password : "None")}", true, ConsoleColor.Green);
+ Logger.Log($" Size: {Width}x{Height}", true, ConsoleColor.Green);
Logger.Log($" Objects: {CountOfObjs}", true, ConsoleColor.Green);
Logger.Log($"-------------------------", true, ConsoleColor.Green);
}
public override void Read()
{
- var FrameReader = new ByteIO(chunk.chunk_data);
+ var frameReader = new ByteIO(Chunk.ChunkData);
var chunks = new ChunkList();
- chunks.verbose = false;
- chunks.Read(FrameReader);
+ chunks.Verbose = false;
+ chunks.Read(frameReader);
var name = chunks.get_chunk();
if (name != null) //Just to be sure
{
- this.name = name.value;
+ this.Name = name.Value;
}
var password = chunks.get_chunk();
if (password != null) //Just to be sure
{
- this.password = password.value;
+ this.Password = password.Value;
}
var header = chunks.get_chunk();
- width = header.width;
- height = header.height;
- background = header.background;
- flags = header.flags;
+ Width = header.Width;
+ Height = header.Height;
+ Background = header.Background;
+ Flags = header.Flags;
var objects = chunks.get_chunk();
if(objects!=null)
{
@@ -91,7 +91,7 @@ namespace NetMFAPatcher.chunkloaders
- foreach (var item in chunks.chunks)
+ foreach (var item in chunks.Chunks)
{
//Directory.CreateDirectory($"{Program.DumpPath}\\CHUNKS\\FRAMES\\{this.name}");
//string path = $"{Program.DumpPath}\\CHUNKS\\FRAMES\\{this.name}\\{chunk.name}.chunk";
@@ -115,10 +115,10 @@ namespace NetMFAPatcher.chunkloaders
class FrameHeader : ChunkLoader
{
- public int width;
- public int height;
- public int flags;
- public byte[] background;
+ public int Width;
+ public int Height;
+ public int Flags;
+ public byte[] Background;
public FrameHeader(ByteIO reader) : base(reader)
{
}
@@ -134,10 +134,10 @@ namespace NetMFAPatcher.chunkloaders
public override void Read()
{
- width = reader.ReadInt32();
- height = reader.ReadInt32();
- background = reader.ReadBytes(4);
- flags = (int)reader.ReadUInt32();
+ Width = Reader.ReadInt32();
+ Height = Reader.ReadInt32();
+ Background = Reader.ReadBytes(4);
+ Flags = (int)Reader.ReadUInt32();
@@ -147,7 +147,7 @@ namespace NetMFAPatcher.chunkloaders
{
public int CountOfObjects=0;
- public List items = new List();
+ public List Items = new List();
public ObjectInstances(ByteIO reader) : base(reader)
{
@@ -165,13 +165,13 @@ namespace NetMFAPatcher.chunkloaders
public override void Read()
{
- CountOfObjects = (int)reader.ReadUInt32();
+ CountOfObjects = (int)Reader.ReadUInt32();
return;
for (int i = 0; i < CountOfObjects; i++)
{
- var item = new ObjectInstances(reader);
+ var item = new ObjectInstances(Reader);
item.Read();
- items.Add(item);
+ Items.Add(item);
}
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/FrameItems.cs b/NetMFAPatcher/mmfparser/chunkloaders/FrameItems.cs
index bd8500f..b771dc4 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/FrameItems.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/FrameItems.cs
@@ -1,19 +1,19 @@
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.MMFParser.Data;
+using NetMFAPatcher.MMFParser.Data;
using NetMFAPatcher.Utils;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.mmfparser.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
public class FrameItems : ChunkLoader
{
public Dictionary ItemDict = new Dictionary();
- public List names = new List();
+ public List Names = new List();
public FrameItems(Chunk chunk) : base(chunk) { }
public FrameItems(ByteIO reader) : base(reader) { }
public override void Print(bool ext)
@@ -23,18 +23,18 @@ namespace NetMFAPatcher.mmfparser.chunkloaders
public override void Read()
{
- var count = reader.ReadInt32();
+ var count = Reader.ReadInt32();
for (int i = 0; i < count; i++)
{
- var item = new ObjectInfo(reader);
- item.verbose = false;
+ var item = new ObjectInfo(Reader);
+ item.Verbose = false;
item.Read();
- ItemDict.Add(item.handle, item);
- names.Add(item.name);
+ ItemDict.Add(item.Handle, item);
+ Names.Add(item.Name);
//Logger.Log($"Found FrameItem: '{item.name}' with handle ({item.handle})", true, ConsoleColor.Magenta);
}
- GameData.testItems = this;
+ GameData.TestItems = this;
}
}
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/ObjectInfo.cs b/NetMFAPatcher/mmfparser/chunkloaders/ObjectInfo.cs
index 3e7cad6..0793d7e 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/ObjectInfo.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/ObjectInfo.cs
@@ -1,68 +1,69 @@
-using NetMFAPatcher.chunkloaders;
+using System;
using NetMFAPatcher.MMFParser.Data;
using NetMFAPatcher.utils;
using NetMFAPatcher.Utils;
using System.Collections.Generic;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.mmfparser.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
public class ObjectInfo : ChunkLoader
{
- public List chunks = new List();
- public int properties = 0;
- public string name = "ERROR";
- public int handle;
- public int objectType;
- public int flags;
- public bool transparent;
- public bool antialias;
- public int inkEffect;
- public int inkEffectValue;
- public int shaderId;
- public int items;
- public ObjectInfo(Chunk chunk) : base(chunk) { }
- public ObjectInfo(ByteIO reader) : base(reader) { }
+ public List Chunks = new List();
+ public int Properties = 0;
+ public string Name = "ERROR";
+ public int Handle;
+ public int ObjectType;
+ public UInt32 Flags;
+ public bool Transparent;
+ public bool Antialias;
+ public int InkEffect;
+ public int InkEffectValue;
+ public int ShaderId;
+ public int Items;
+
+ public ObjectInfo(Chunk chunk) : base(chunk)
+ {
+ }
+
+ public ObjectInfo(ByteIO reader) : base(reader)
+ {
+ }
+
public override void Print(bool ext)
{
-
}
public override void Read()
{
var infoChunks = new ChunkList();
- infoChunks.verbose = false;
- infoChunks.Read(reader);
-
- foreach (var chunk in infoChunks.chunks)
+ infoChunks.Verbose = false;
+ infoChunks.Read(Reader);
+
+ foreach (var infoChunk in infoChunks.Chunks)
{
- chunk.verbose = false;
- var loader = chunk.loader;
- if(loader is ObjectName)
+ infoChunk.Verbose = false;
+ var loader = infoChunk.Loader;
+ if (loader is ObjectName)
{
var actualLoader = infoChunks.get_loader(loader);
- name = actualLoader.value;
-
+ Name = actualLoader.Value;
}
- else if(loader is ObjectHeader)
+ else if (loader is ObjectHeader)
{
var actualLoader = infoChunks.get_loader(loader);
- handle = actualLoader.handle;
- objectType = actualLoader.objectType;
- flags = actualLoader.flags;
- var inkEffect = actualLoader.inkEffect;
- transparent = ByteFlag.getFlag(inkEffect, 28);
- antialias = ByteFlag.getFlag(inkEffect, 29);
-
-
- }
-
-
-
+ Handle = actualLoader.Handle;
+ ObjectType = actualLoader.ObjectType;
+ Flags = actualLoader.Flags;
+ UInt32 inkEffect = actualLoader.InkEffect;
+ Transparent = ByteFlag.GetFlag(inkEffect, 28);
+ Antialias = ByteFlag.GetFlag(inkEffect, 29);
+ }
}
-
}
}
+
class ObjectName : StringChunk
{
public ObjectName(ByteIO reader) : base(reader)
@@ -73,13 +74,15 @@ namespace NetMFAPatcher.mmfparser.chunkloaders
{
}
}
+
class ObjectHeader : ChunkLoader
{
- public int handle;
- public int objectType;
- public int flags;
- public int inkEffect;
- public int inkEffectParameter;
+ public Int16 Handle;
+ public Int16 ObjectType;
+ public UInt32 Flags;
+ public UInt32 InkEffect;
+ public UInt32 InkEffectParameter;
+
public ObjectHeader(ByteIO reader) : base(reader)
{
}
@@ -90,18 +93,16 @@ namespace NetMFAPatcher.mmfparser.chunkloaders
public override void Print(bool ext)
{
-
}
public override void Read()
{
- handle = reader.ReadInt16();
- objectType = reader.ReadInt16();
- flags = reader.ReadUInt16();
- var reserved = reader.ReadInt16();
- inkEffect = (int)reader.ReadUInt32();
- inkEffectParameter = (int)reader.ReadUInt32();
-
+ Handle = Reader.ReadInt16();
+ ObjectType = Reader.ReadInt16();
+ Flags = Reader.ReadUInt16();
+ Int16 reserved = Reader.ReadInt16();
+ InkEffect = Reader.ReadUInt32();
+ InkEffectParameter = Reader.ReadUInt32();
}
}
-}
+}
\ No newline at end of file
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/StringChunk.cs b/NetMFAPatcher/mmfparser/chunkloaders/StringChunk.cs
index 31af190..f597b12 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/StringChunk.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/StringChunk.cs
@@ -5,24 +5,25 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NetMFAPatcher.mmfparser;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
class StringChunk : ChunkLoader
{
- public string value;
+ public string Value;
public override void Read()
{
- reader = new ByteIO(chunk.chunk_data);
- value = reader.ReadWideString();
+ Reader = new ByteIO(Chunk.ChunkData);
+ Value = Reader.ReadWideString();
}
public override void Print(bool ext)
{
- Logger.Log($"{chunk.name} contains: {value}\n",true,ConsoleColor.DarkCyan);
+ Logger.Log($"{Chunk.Name} contains: {Value}\n",true,ConsoleColor.DarkCyan);
}
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/banks/DebugImageBank.cs b/NetMFAPatcher/mmfparser/chunkloaders/banks/DebugImageBank.cs
deleted file mode 100644
index 69f3d0f..0000000
--- a/NetMFAPatcher/mmfparser/chunkloaders/banks/DebugImageBank.cs
+++ /dev/null
@@ -1,194 +0,0 @@
-using NetMFAPatcher.mmfparser;
-using NetMFAPatcher.utils;
-using NetMFAPatcher.Utils;
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Drawing.Imaging;
-using System.IO;
-using System.Linq;
-using System.Numerics;
-using System.Text;
-using System.Threading.Tasks;
-using static NetMFAPatcher.MMFParser.Data.ChunkList;
-
-namespace NetMFAPatcher.chunkloaders
-{
- class DebugImageBank : ChunkLoader
- {
- Dictionary images = new Dictionary();
- public DebugImageBank(ByteIO reader) : base(reader)
- {
- }
-
- public DebugImageBank(Chunk chunk) : base(chunk)
- {
- }
- public override void Print(bool ext)
- {
-
- }
-
- public override void Read()
- {
- reader = new ByteIO(chunk.chunk_data);
- var number_of_items = reader.ReadUInt32();
- Console.WriteLine($"Found {number_of_items} images");
- for (int i = 0; i < number_of_items; i++)
- {
- var item = new DebugImageItem(reader);
- item.Read();
- item.handle -= 1;
-
- //images[item.handle] = item;
-
-
-
- }
-
- }
- }
- class DebugImageItem : ChunkLoader
- {
-
- public int handle;
- int position;
- int checksum;
- int references;
- int width;
- int height;
- int graphic_mode;
- int x_hotspot;
- int y_hotspot;
- int action_x;
- int action_y;
- public int flags;
- public int size;
- //tranparent,add later
- int indexed;
- byte[] image;
- byte[] alpha;
- ByteIO image_data;
-
- public bool isCompressed = true;
-
- public override void Read()
- {
- handle = reader.ReadInt32();
- position = (int)reader.Tell();
- if (!Program.DumpImages) return;
- Save($"{Program.DumpPath}\\ImageBank\\{handle}.png");
-
- }
-
- public void Save(string filename)
- {
- Bitmap result;
- var image_data = Decompressor.DecompressAsReader(reader);
- using (ByteIO binaryReader = image_data)
- {
- int num = 0;
- byte b = 0;
- short num2;
- short num3;
- if (true)
- {
- binaryReader.ReadInt32();
- binaryReader.ReadInt32();
- num = (int)binaryReader.ReadUInt32();
- num2 = binaryReader.ReadInt16();
- num3 = binaryReader.ReadInt16();
- graphic_mode = binaryReader.ReadByte();
- b = (byte)binaryReader.ReadSByte();
- binaryReader.BaseStream.Position += 2;
- binaryReader.ReadInt16();
- binaryReader.ReadInt16();
- binaryReader.ReadInt16();
- binaryReader.ReadInt16();
- binaryReader.ReadByte();
- binaryReader.ReadByte();
- binaryReader.ReadByte();
- binaryReader.ReadByte();
-
- }
- var colorSize = 3;
- Bitmap bitmap = new Bitmap((int)num2, (int)num3);
- Color[,] array = new Color[(int)num2, (int)num3];
- int num4 = ImageHelper.getPadding((int)num2, 2);
- int num5 = 0;
- for (int i = 0; i < (int)num3; i++)
- {
- for (int j = 0; j < (int)num2; j++)
- {
- byte[] colorData=null;
- if(graphic_mode==4)
- {
- colorSize = 3;
- colorData = binaryReader.ReadBytes(colorSize);
- array[j, i] = ImageHelper.ReadPoint(colorData, 0);
- }
- else
- {
- colorSize = 2;
- colorData = binaryReader.ReadBytes(colorSize);
- array[j, i] = ImageHelper.ReadSixteen(colorData, 0);
- }
-
-
-
-
- num5 += 3;
- }
- binaryReader.ReadBytes(num4 * 3);
- num5 += num4 * 3;
- }
- int num6 = num - num5;
- if (b == 16)
- {
- num4 = (num6 - (int)(num2 * num3)) / (int)num3;
- for (int k = 0; k < (int)num3; k++)
- {
- for (int l = 0; l < (int)num2; l++)
- {
- byte b5 = binaryReader.ReadByte();
- Color color = array[l, k];
- array[l, k] = Color.FromArgb((int)b5, (int)color.R, (int)color.G, (int)color.B);
- }
- binaryReader.ReadBytes(num4);
- }
- }
- for (int m = 0; m < (int)num3; m++)
- {
- for (int n = 0; n < (int)num2; n++)
- {
- bitmap.SetPixel(n, m, array[n, m]);
- }
- }
- result = bitmap;
- }
- result.Save(filename);
- }
-
-
-
-
-
-
-
-
-
- public override void Print(bool ext)
- {
-
- }
- public DebugImageItem(ByteIO reader) : base(reader)
- {
- }
-
- public DebugImageItem(Chunk chunk) : base(chunk)
- {
- }
-
-
- }
-}
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/banks/FontBank.cs b/NetMFAPatcher/mmfparser/chunkloaders/banks/FontBank.cs
index a41811f..528dfbe 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/banks/FontBank.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/banks/FontBank.cs
@@ -1,30 +1,23 @@
-
-using NetMFAPatcher.mmfparser;
-using NetMFAPatcher.Utils;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using NetMFAPatcher.Utils;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders.banks
{
public class FontBank : ChunkLoader
{
- public int numberOfItems;
+ public int NumberOfItems;
public override void Print(bool ext)
{
- Logger.Log($"FontCount:{numberOfItems.ToString()}");
+ Logger.Log($"FontCount:{NumberOfItems.ToString()}");
}
public override void Read()
{
- numberOfItems = reader.ReadInt32();
+ NumberOfItems = Reader.ReadInt32();
}
public void Write(ByteWriter writer)
{
- writer.WriteInt32(numberOfItems);
+ writer.WriteInt32(NumberOfItems);
//i am testing with no fonts suck pinus haha
}
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/banks/ImageBank.cs b/NetMFAPatcher/mmfparser/chunkloaders/banks/ImageBank.cs
index 948b098..e3cffe5 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/banks/ImageBank.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/banks/ImageBank.cs
@@ -1,22 +1,22 @@
-using NetMFAPatcher.mmfparser;
-using NetMFAPatcher.utils;
-using NetMFAPatcher.Utils;
-using System;
+using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
-using System.Numerics;
-using System.Text;
-using System.Threading.Tasks;
+using System.Net;
+using System.Runtime.InteropServices;
+using NetMFAPatcher.MMFParser.Data;
+using NetMFAPatcher.utils;
+using NetMFAPatcher.Utils;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders.Banks
{
public class ImageBank : ChunkLoader
{
- Dictionary images = new Dictionary();
+ Dictionary _images = new Dictionary();
+
public ImageBank(ByteIO reader) : base(reader)
{
}
@@ -24,212 +24,187 @@ namespace NetMFAPatcher.chunkloaders
public ImageBank(Chunk chunk) : base(chunk)
{
}
+
public override void Print(bool ext)
{
-
}
public override void Read()
{
- reader = new ByteIO(chunk.chunk_data);
- var number_of_items = reader.ReadUInt32();
- if (!Program.DumpImages) return;
- Console.WriteLine($"Found {number_of_items} images");
- for (int i = 0; i < number_of_items; i++)
- {
- var item = new ImageItem(reader);
- //item.isCompressed = false;
-
+ Reader = new ByteIO(Chunk.ChunkData);
+ var numberOfItems = Reader.ReadUInt32();
+ Console.WriteLine(@"Found {numberOfItems} images");
+ for (int i = 0; i < numberOfItems; i++)
+ {
+ var item = new ImageItem(Reader);
item.Read();
- item.handle -= 1;
-
- //images[item.handle] = item;
-
+ if (Program.DumpImages)
+ item.Save($"{Program.DumpPath}\\ImageBank\\" + item.Handle.ToString() + ".png");
+ if (Exe.LatestInst.GameData.ProductBuild >= 284)
+ item.Handle -= 1;
+ //images[item.handle] = item;
}
-
}
}
+
public class ImageItem : ChunkLoader
{
+ public int Handle;
+ int Position;
+ int _checksum;
+ int _references;
+ int _width;
+ int _height;
+ int _graphicMode;
+ int _xHotspot;
+ int _yHotspot;
+ int _actionX;
+ int _actionY;
+
+ BitDict Flags = new BitDict(new string[]
+ {
+ "RLE",
+ "RLEW",
+ "RLET",
+ "LZX",
+ "Alpha",
+ "ACE",
+ "Mac"
+ });
+
+ public int Size;
- public int handle;
- int position;
- int checksum;
- int references;
- int width;
- int height;
- int graphic_mode;
- int x_hotspot;
- int y_hotspot;
- int action_x;
- int action_y;
- public int flags;
- public int size;
//tranparent,add later
- int indexed;
- byte[] image;
- byte[] alpha;
- ByteIO image_data;
+ byte[] _transparent;
+ byte[] _colorArray;
+ int _indexed;
- public bool isCompressed = true;
+ public bool IsCompressed = true;
public override void Read()
{
- handle = reader.ReadInt32();
- position = (int)reader.Tell();
- if (Program.DumpImages)
- {
- Load();
- return;
- }
- else
- {
- if (isCompressed)
- {
- reader.Skip(8);
- size = (int)reader.ReadUInt32();
- reader.Skip(size + 20);
- }
- else
- {
- reader.Skip(4);
- size = (int)reader.ReadUInt32();
- reader.Seek(size + position);
- }
- }
-
+ Handle = Reader.ReadInt32();
+ Position = (int) Reader.Tell();
+ Load();
}
+
public void Load()
{
-
-
- reader.Seek(position);
-
- if (isCompressed)
+ Reader.Seek(Position);
+ ByteIO imageReader;
+ if (IsCompressed)
{
- image_data = Decompressor.DecompressAsReader(reader);
+ imageReader = Decompressor.DecompressAsReader(Reader);
}
else
{
- image_data = reader;
+ imageReader = Reader;
}
- var start = image_data.Tell();
- if (!isCompressed)
- {
+ long start = imageReader.Tell();
+ _checksum = imageReader.ReadInt32();
+ _references = imageReader.ReadInt32();
+ Size = (int) imageReader.ReadUInt32();
+ if (!IsCompressed)
+ {
+ imageReader = new ByteIO(imageReader.ReadBytes(Size + 20));
}
- checksum = image_data.ReadInt32();
-
- references = image_data.ReadInt32();
- size = (int)image_data.ReadUInt32();
- if (!isCompressed)
+ _width = imageReader.ReadInt16();
+ _height = imageReader.ReadInt16();
+ _graphicMode = imageReader.ReadByte(); //Graphic mode is always 4 for SL
+ Flags.flag = imageReader.ReadByte();
+
+ imageReader.Skip(2);
+ _xHotspot = imageReader.ReadInt16();
+ _yHotspot = imageReader.ReadInt16();
+ _actionX = imageReader.ReadInt16();
+ _actionY = imageReader.ReadInt16();
+ _transparent = imageReader.ReadBytes(4);
+ Logger.Log($"{Handle.ToString(),4} Size: {_width,4}x{_height,4}, flags: {Flags}");
+ byte[] imageData;
+ if (Flags["LZX"])
{
- image_data = new ByteIO(image_data.ReadBytes(size + 20));
+ throw new NotImplementedException();
+ imageData = new byte[1];
}
- width = image_data.ReadInt16();
- height = image_data.ReadInt16();
- graphic_mode = image_data.ReadByte();//Graphic mode is always 4 for SL
- flags = image_data.ReadByte();
-
- image_data.Skip(2);
- x_hotspot = image_data.ReadInt16();
- y_hotspot = image_data.ReadInt16();
- action_x = image_data.ReadInt16();
- action_y = image_data.ReadInt16();
-
- Logger.Log($"Size: {width}x{height}");
- for (int i = 0; i < 4; i++)
+ else
{
- image_data.ReadByte();
+ imageData = imageReader.ReadBytes((int) (imageReader.Size() - imageReader.Tell()));
}
- //Save($"{Program.DumpPath}\\ImageBank\\" + handle.ToString() + ".png");
- Save("cum.png");
-
-
- return;
-
-
-
-
-
-
-
-
- }
- public void Save(string filename)
- {
- Bitmap bitmap = new Bitmap((int)width, (int)height);
- Color[,] array = new Color[(int)width, (int)height];
- int num4 = ImageHelper.getPadding((int)width, 2);
- int num5 = 0;
- using (ByteIO binaryReader = image_data)
+ int bytesRead = 0;
+ if (Flags["RLE"] || Flags["RLEW"] || Flags["RLET"])
+ {
+ }
+ else
{
- int colorSize = 3;
- for (int i = 0; i < (int)height; i++)
+ switch (_graphicMode)
{
- for (int j = 0; j < (int)width; j++)
+ case 4:
{
- byte[] colorData = null;
- if (graphic_mode == 4)
- {
- colorSize = 3;
- colorData = binaryReader.ReadBytes(colorSize);
- array[j, i] = ImageHelper.ReadPoint(colorData, 0);
- }
- else
- {
- colorSize = 2;
- colorData = binaryReader.ReadBytes(colorSize);
- array[j, i] = ImageHelper.ReadSixteen(colorData, 0);
- }
- num5 += 3;
+ (_colorArray, bytesRead) = ImageHelper.ReadPoint(imageData, _width, _height);
+ break;
}
- binaryReader.ReadBytes(num4 * 3);
- num5 += num4 * 3;
- }
- int num6 = size - num5;
- if (flags == 16)
- {
- num4 = (num6 - (int)(width * height)) / (int)height;
- for (int k = 0; k < (int)height; k++)
+ case 6:
{
- for (int l = 0; l < (int)width; l++)
- {
- byte Calpha = binaryReader.ReadByte();
- Color color = array[l, k];
- array[l, k] = Color.FromArgb(Calpha, color.R, color.G, color.B);
- }
- binaryReader.ReadBytes(num4);
+ (_colorArray, bytesRead) = ImageHelper.ReadFifteen(imageData, _width, _height);
+ break;
+ }
+ case 7:
+ {
+ (_colorArray, bytesRead) = ImageHelper.ReadSixteen(imageData, _width, _height);
+ break;
}
}
- for (int m = 0; m < (int)height; m++)
+ }
+
+ int alphaSize = Size - bytesRead;
+ if (Flags["Alpha"])
+ {
+ byte[,] alpha = ImageHelper.ReadAlpha(imageData, _width, _height, Size - alphaSize);
+ int stride = _width * 4;
+ for (int y = 0; y < _height; y++)
{
- for (int n = 0; n < (int)width; n++)
+ for (int x = 0; x < _width; x++)
{
- bitmap.SetPixel(n, m, array[n, m]);
+ _colorArray[(y * stride) + (x * 4) + 3] = alpha[x, y];
}
}
-
+ }
+ return;
+ }
+
+ public void Save(string filename)
+ {
+ using (var bmp = new Bitmap(_width, _height, PixelFormat.Format32bppArgb))
+ {
+ BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0,
+ bmp.Width,
+ bmp.Height),
+ ImageLockMode.WriteOnly,
+ bmp.PixelFormat);
+
+ IntPtr pNative = bmpData.Scan0;
+ Marshal.Copy(_colorArray, 0, pNative, _colorArray.Length);
+
+ bmp.UnlockBits(bmpData);
+
+ bmp.Save(filename);
}
- bitmap.Save(filename, ImageFormat.Png);
}
-
-
-
-
+
public override void Print(bool ext)
{
-
}
+
public ImageItem(ByteIO reader) : base(reader)
{
}
@@ -241,7 +216,8 @@ namespace NetMFAPatcher.chunkloaders
public class TestPoint
{
- public int size = 3;
+ public int Size = 3;
+
public (byte r, byte g, byte b) Read(byte[] data, int position)
{
byte r = 0;
@@ -249,22 +225,16 @@ namespace NetMFAPatcher.chunkloaders
byte b = 0;
try
{
-
-
b = data[position];
g = data[position + 1];
r = data[position + 2];
}
catch
{
-
Console.WriteLine(position);
}
+
return (r, g, b);
}
-
-
}
-
-
-}
+}
\ No newline at end of file
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/banks/MusicBank.cs b/NetMFAPatcher/mmfparser/chunkloaders/banks/MusicBank.cs
index 71e39a8..55758b2 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/banks/MusicBank.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/banks/MusicBank.cs
@@ -1,20 +1,14 @@
-using NetMFAPatcher.Utils;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using NetMFAPatcher.mmfparser;
+using System.Collections.Generic;
+using NetMFAPatcher.Utils;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders.banks
{
public class MusicBank : ChunkLoader
{
- public int num_of_items = 0;
- public int references = 0;
- public List items;
+ public int NumOfItems = 0;
+ public int References = 0;
+ public List Items;
public override void Print(bool ext)
{
@@ -23,13 +17,13 @@ namespace NetMFAPatcher.chunkloaders
public override void Read()
{
//Someone is using this lol?
- items = new List();
- num_of_items = reader.ReadInt32();
- for (int i = 0; i < num_of_items; i++)
+ Items = new List();
+ NumOfItems = Reader.ReadInt32();
+ for (int i = 0; i < NumOfItems; i++)
{
- var item = new MusicFile(reader);
+ var item = new MusicFile(Reader);
item.Read();
- items.Add(item);
+ Items.Add(item);
}
}
@@ -44,9 +38,9 @@ namespace NetMFAPatcher.chunkloaders
public class MusicFile : ChunkLoader
{
- public int handle;
- public string name = "ERROR";
- public byte[] data;
+ public int Handle;
+ public string Name = "ERROR";
+ public byte[] Data;
public override void Print(bool ext)
{
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/banks/SoundBank.cs b/NetMFAPatcher/mmfparser/chunkloaders/banks/SoundBank.cs
index ac9d1da..d5fd0b8 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/banks/SoundBank.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/banks/SoundBank.cs
@@ -1,21 +1,18 @@
-using NetMFAPatcher.Utils;
-using System;
+using System;
using System.Collections.Generic;
using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using NetMFAPatcher.mmfparser;
+using NetMFAPatcher.utils;
+using NetMFAPatcher.Utils;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders.banks
{
public class SoundBank : ChunkLoader
{
- public int num_of_items = 0;
- public int references = 0;
- public List items;
- public bool isCompressed = true;
+ public int NumOfItems = 0;
+ public int References = 0;
+ public List Items;
+ public bool IsCompressed = true;
public override void Print(bool ext)
{
@@ -24,22 +21,22 @@ namespace NetMFAPatcher.chunkloaders
public override void Read()
{
//Implementing for standalone-only because of my lazyness
- items = new List();
- num_of_items = reader.ReadInt32();
+ Items = new List();
+ NumOfItems = Reader.ReadInt32();
- for (int i = 0; i < num_of_items; i++)
+ for (int i = 0; i < NumOfItems; i++)
{
- var item = new SoundItem(reader);
- item.isCompressed = isCompressed;
+ var item = new SoundItem(Reader);
+ item.IsCompressed = IsCompressed;
item.Read();
- items.Add(item);
+ Items.Add(item);
}
}
public void Write(ByteWriter writer)
{
- writer.WriteInt32(num_of_items);
- foreach (var item in items)
+ writer.WriteInt32(NumOfItems);
+ foreach (var item in Items)
{
item.Write(writer);
}
@@ -56,9 +53,9 @@ namespace NetMFAPatcher.chunkloaders
public class SoundBase : ChunkLoader
{
- public int handle;
- public string name = "ERROR";
- public byte[] data;
+ public int Handle;
+ public string Name = "ERROR";
+ public byte[] Data;
public override void Print(bool ext)
{
@@ -79,63 +76,63 @@ namespace NetMFAPatcher.chunkloaders
public class SoundItem : SoundBase
{
- public bool compressed;
- public int checksum;
- public int references;
- public int flags;
- public bool isCompressed = true;
+ public bool Compressed;
+ public int Checksum;
+ public int References;
+ public int Flags;
+ public bool IsCompressed = true;
public override void Read()
{
- var start = reader.Tell();
+ var start = Reader.Tell();
- handle = (int) reader.ReadUInt32();
- checksum = reader.ReadInt32();
- references = reader.ReadInt32();
- var decompressed_size = reader.ReadInt32();
- flags = (int)reader.ReadUInt32(); //flags
- var reserved = reader.ReadInt32();
- var name_lenght = reader.ReadInt32();
- ByteIO SoundData;
- if (isCompressed) //compressed
+ Handle = (int) Reader.ReadUInt32();
+ Checksum = Reader.ReadInt32();
+ References = Reader.ReadInt32();
+ var decompressedSize = Reader.ReadInt32();
+ Flags = (int)Reader.ReadUInt32(); //flags
+ var reserved = Reader.ReadInt32();
+ var nameLenght = Reader.ReadInt32();
+ ByteIO soundData;
+ if (IsCompressed) //compressed
{
- var size = reader.ReadInt32();
- SoundData = new ByteIO(Decompressor.decompress_block(reader, size, decompressed_size));
+ var size = Reader.ReadInt32();
+ soundData = new ByteIO(Decompressor.decompress_block(Reader, size, decompressedSize));
}
else
{
- SoundData = new ByteIO(reader.ReadBytes(decompressed_size));
+ soundData = new ByteIO(Reader.ReadBytes(decompressedSize));
}
- if (isCompressed)
+ if (IsCompressed)
{
- name = SoundData.ReadWideString(name_lenght);
+ Name = soundData.ReadWideString(nameLenght);
}
else
{
- name = SoundData.ReadAscii(name_lenght);
+ Name = soundData.ReadAscii(nameLenght);
}
- this.data = SoundData.ReadBytes((int) SoundData.Size());
- name = Helper.CleanInput(name);
- Console.WriteLine($"Dumping {name}");
+ this.Data = soundData.ReadBytes((int) soundData.Size());
+ Name = Helper.CleanInput(Name);
+ Console.WriteLine($"Dumping {Name}");
- string path = $"{Program.DumpPath}\\SoundBank\\{name}.wav";
- File.WriteAllBytes(path, data);
+ string path = $"{Program.DumpPath}\\SoundBank\\{Name}.wav";
+ File.WriteAllBytes(path, Data);
}
public void Write(ByteWriter writer)
{
- writer.WriteUInt32((uint)handle);
- writer.WriteInt32(checksum);
- writer.WriteInt32(references);
- writer.WriteInt32(data.Length+name.Length+1);
- writer.WriteInt32(flags);
+ writer.WriteUInt32((uint)Handle);
+ writer.WriteInt32(Checksum);
+ writer.WriteInt32(References);
+ writer.WriteInt32(Data.Length+Name.Length+1);
+ writer.WriteInt32(Flags);
writer.WriteInt32(0);
- writer.WriteInt32(name.Length+1);
- if (isCompressed) writer.WriteUnicode(name);
- else writer.WriteAscii(name);
- writer.WriteBytes(data);
+ writer.WriteInt32(Name.Length+1);
+ if (IsCompressed) writer.WriteUnicode(Name);
+ else writer.WriteAscii(Name);
+ writer.WriteBytes(Data);
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/yves.cs b/NetMFAPatcher/mmfparser/chunkloaders/yves.cs
index 6dc736f..f65da8f 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/yves.cs
+++ b/NetMFAPatcher/mmfparser/chunkloaders/yves.cs
@@ -8,13 +8,14 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.MMFParser.ChunkLoaders;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace NetMFAPatcher.chunkloaders
+namespace NetMFAPatcher.MMFParser.ChunkLoaders
{
- public class AppIcon:ChunkLoader
+ public class AppIcon : ChunkLoader
{
- List points;
+ List _points;
public AppIcon(ByteIO reader) : base(reader)
@@ -29,47 +30,40 @@ namespace NetMFAPatcher.chunkloaders
{
return;
Logger.Log("dumpingIcon");
- reader.ReadBytes(reader.ReadInt32() - 4);
- List color_indexes = new List();
- for (int i = 0; i < 16*16; i++)
+ Reader.ReadBytes(Reader.ReadInt32() - 4);
+ List colorIndexes = new List();
+ for (int i = 0; i < 16 * 16; i++)
{
-
- var b = reader.ReadByte();
- var g = reader.ReadByte();
- var r = reader.ReadByte();
- reader.ReadByte();
- color_indexes.Add(r);
- color_indexes.Add(g);
- color_indexes.Add(b);
+ var b = Reader.ReadByte();
+ var g = Reader.ReadByte();
+ var r = Reader.ReadByte();
+ Reader.ReadByte();
+ colorIndexes.Add(r);
+ colorIndexes.Add(g);
+ colorIndexes.Add(b);
}
- points = new List();
+
+ _points = new List();
for (int y = 0; y < 16; y++)
{
- var x_list = new List();
+ var xList = new List();
for (int x = 0; x < 16; x++)
{
- x_list.Add(color_indexes[reader.ReadByte()]);
+ xList.Add(colorIndexes[Reader.ReadByte()]);
}
+
//x_list.AddRange(points);
//points = x_list;
- x_list.AddRange(points);
- points = x_list;
-
-
-
+ xList.AddRange(_points);
+ _points = xList;
}
- File.WriteAllBytes("fatcock.raw", points.ToArray());
-
-
-
-
+ File.WriteAllBytes("fatcock.raw", _points.ToArray());
}
public override void Print(bool ext)
{
-
}
}
-}
+}
\ No newline at end of file
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/ChunkList.cs b/NetMFAPatcher/mmfparser/mfaloaders/ChunkList.cs
index e0db09c..50f6a36 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/ChunkList.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/ChunkList.cs
@@ -10,7 +10,7 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
{
class ChunkList : DataLoader//This is used for MFA reading/writing
{
- List items = new List();
+ List _items = new List();
public override void Print()
{
throw new NotImplementedException();
@@ -18,10 +18,10 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
public override void Read()
{
- var start = reader.Tell();
+ var start = Reader.Tell();
while(true)
{
- var id = reader.ReadByte();
+ var id = Reader.ReadByte();
if(id==0) break;
Console.WriteLine("ChunkFound:"+id);
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/Controls.cs b/NetMFAPatcher/mmfparser/mfaloaders/Controls.cs
index 1cdd338..a780dcd 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/Controls.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/Controls.cs
@@ -10,7 +10,7 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
{
class Controls : DataLoader
{
- public List items;
+ public List Items;
public Controls(ByteIO reader) : base(reader)
{
@@ -24,12 +24,12 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
public override void Read()
{
- items = new List();
- var count = reader.ReadInt32();
+ Items = new List();
+ var count = Reader.ReadInt32();
for (int i = 0; i < count; i++)
{
- var item = new mmfparser.mfaloaders.PlayerControl(reader);
- items.Add(item);
+ var item = new mmfparser.mfaloaders.PlayerControl(Reader);
+ Items.Add(item);
item.Read();
}
}
@@ -37,7 +37,7 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
class PlayerControl : DataLoader
{
- int controlType;
+ int _controlType;
@@ -54,19 +54,19 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
public override void Read()
{
- controlType = reader.ReadInt32();
- var count = reader.ReadInt32();
- var up = reader.ReadInt32();
- var down = reader.ReadInt32();
- var left = reader.ReadInt32();
- var right = reader.ReadInt32();
- var button1 = reader.ReadInt32();
- var button2 = reader.ReadInt32();
- var button3 = reader.ReadInt32();
- var button4 = reader.ReadInt32();
+ _controlType = Reader.ReadInt32();
+ var count = Reader.ReadInt32();
+ var up = Reader.ReadInt32();
+ var down = Reader.ReadInt32();
+ var left = Reader.ReadInt32();
+ var right = Reader.ReadInt32();
+ var button1 = Reader.ReadInt32();
+ var button2 = Reader.ReadInt32();
+ var button3 = Reader.ReadInt32();
+ var button4 = Reader.ReadInt32();
for (int i = 0; i < 8; i++)
{
- reader.ReadInt32();
+ Reader.ReadInt32();
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/Frame.cs b/NetMFAPatcher/mmfparser/mfaloaders/Frame.cs
index 879195f..810fe34 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/Frame.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/Frame.cs
@@ -6,16 +6,17 @@ using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.utils;
namespace NetMFAPatcher.mmfparser.mfaloaders
{
class Frame : DataLoader
{
- public string name = "ERROR";
- public int sizeX;
- public int sizeY;
- public Color background;
- public int maxObjects;
+ public string Name = "ERROR";
+ public int SizeX;
+ public int SizeY;
+ public Color Background;
+ public int MaxObjects;
public Frame(ByteIO reader) : base(reader)
{
@@ -29,32 +30,32 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
public override void Read()
{
- var handle = reader.ReadInt32();
- name = Helper.AutoReadUnicode(reader);
- Console.WriteLine(name);
- sizeX = reader.ReadInt32();
- sizeY = reader.ReadInt32();
- var background = reader.ReadColor();
- var flags = reader.ReadInt32();
- maxObjects = reader.ReadInt32();
- var password = Helper.AutoReadUnicode(reader);
- reader.Skip(4);
- var lastViewedX = reader.ReadInt32();
- var lastViewedY = reader.ReadInt32();
-
- var paletteNum = reader.ReadInt32();
+ var handle = Reader.ReadInt32();
+ Name = Helper.AutoReadUnicode(Reader);
+ Console.WriteLine(Name);
+ SizeX = Reader.ReadInt32();
+ SizeY = Reader.ReadInt32();
+ var background = Reader.ReadColor();
+ var flags = Reader.ReadInt32();
+ MaxObjects = Reader.ReadInt32();
+ var password = Helper.AutoReadUnicode(Reader);
+ Reader.Skip(4);
+ var lastViewedX = Reader.ReadInt32();
+ var lastViewedY = Reader.ReadInt32();
+
+ var paletteNum = Reader.ReadInt32();
List palette = new List();
for (int i = 0; i < paletteNum; i++)
{
- palette.Add(reader.ReadColor());
+ palette.Add(Reader.ReadColor());
}
- var stampHandle = reader.ReadInt32();
- var activeLayer = reader.ReadInt32();
- var layersCunt = reader.ReadInt32();
+ var stampHandle = Reader.ReadInt32();
+ var activeLayer = Reader.ReadInt32();
+ var layersCunt = Reader.ReadInt32();
var layers = new List();
for (int i = 0; i < layersCunt; i++)
{
- var layer = new Layer(reader);
+ var layer = new Layer(Reader);
layer.Read();
layers.Add(layer);
@@ -62,13 +63,13 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
//fadein
//fadeout
- reader.Skip(2);
+ Reader.Skip(2);
var frameitems = new List();
- var frameitemsCount = reader.ReadInt32();
+ var frameitemsCount = Reader.ReadInt32();
for (int i = 0; i < frameitemsCount; i++)
{
- var frameitem = new FrameItem(reader);
+ var frameitem = new FrameItem(Reader);
frameitem.Read();
frameitems.Add(frameitem);
//break;
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/FrameItem.cs b/NetMFAPatcher/mmfparser/mfaloaders/FrameItem.cs
index fa1afd2..0aeef47 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/FrameItem.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/FrameItem.cs
@@ -7,50 +7,51 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.utils;
namespace NetMFAPatcher.mmfparser.mfaloaders
{
class FrameItem : DataLoader
{
- public int objectType;
- public int handle;
- public string name;
- public bool transparent;
- public int inkEffect;
- public int inkEffectParameter;
- public int antiAliasing;
- public int flags;
- public int iconType;
+ public int ObjectType;
+ public int Handle;
+ public string Name;
+ public bool Transparent;
+ public int InkEffect;
+ public int InkEffectParameter;
+ public int AntiAliasing;
+ public int Flags;
+ public int IconType;
public override void Print()
{
- Console.WriteLine($"Name: {name}");
+ Console.WriteLine($"Name: {Name}");
}
public override void Read()
{
- objectType = reader.ReadInt32();
- handle = reader.ReadInt32();
- name = Helper.AutoReadUnicode(reader);
- var transparent1 = reader.ReadInt32();
+ ObjectType = Reader.ReadInt32();
+ Handle = Reader.ReadInt32();
+ Name = Helper.AutoReadUnicode(Reader);
+ var transparent1 = Reader.ReadInt32();
- inkEffect = reader.ReadInt32();
- inkEffectParameter = reader.ReadInt32();
- antiAliasing = reader.ReadInt32();
+ InkEffect = Reader.ReadInt32();
+ InkEffectParameter = Reader.ReadInt32();
+ AntiAliasing = Reader.ReadInt32();
- flags = reader.ReadInt32();
- iconType = reader.ReadInt32();
- if(iconType==1)
+ Flags = Reader.ReadInt32();
+ IconType = Reader.ReadInt32();
+ if(IconType==1)
{
- var iconHandle = reader.ReadInt32();
+ var iconHandle = Reader.ReadInt32();
}
else
{
throw new NotImplementedException("invalid icon");
}
- var chunks = new mmfparser.mfaloaders.ChunkList(reader);
+ var chunks = new mmfparser.mfaloaders.ChunkList(Reader);
chunks.Read();
- if(objectType>=32)//extension base
+ if(ObjectType>=32)//extension base
{
//swallow some cum
@@ -58,7 +59,7 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
else
{
- var loader = new Active(reader);
+ var loader = new Active(Reader);
loader.Read();
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/ImageBank.cs b/NetMFAPatcher/mmfparser/mfaloaders/ImageBank.cs
index bae5e2a..7f34275 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/ImageBank.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/ImageBank.cs
@@ -1,16 +1,12 @@
-using NetMFAPatcher.chunkloaders;
-using NetMFAPatcher.mmfparser;
+using System;
+using mmfparser;
+using NetMFAPatcher.MMFParser.ChunkLoaders.Banks;
using NetMFAPatcher.Utils;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using static NetMFAPatcher.MMFParser.Data.ChunkList;
-namespace mmfparser.mfaloaders
+namespace NetMFAPatcher.MMFParser.MFALoaders
{
- class AGMIBank : DataLoader
+ class AgmiBank : DataLoader
{
public override void Print()
{
@@ -20,27 +16,27 @@ namespace mmfparser.mfaloaders
public override void Read()
{
Logger.Log("TEX READ");
- var graphicMode = reader.ReadInt32();
+ var graphicMode = Reader.ReadInt32();
Logger.Log($"GraphicMode:{graphicMode}");
- var paletteVersion = reader.ReadInt16();
+ var paletteVersion = Reader.ReadInt16();
Logger.Log($"PaletteVersion:{paletteVersion}");
- var paletteEntries = reader.ReadInt16();
+ var paletteEntries = Reader.ReadInt16();
Logger.Log($"PaletteEntries:{paletteEntries}");
for (int i = 0; i < 256; i++)
{
- reader.ReadColor();
+ Reader.ReadColor();
}
- var count = reader.ReadInt32();
+ var count = Reader.ReadInt32();
Logger.Log($"Number of image items: {count.ToString()}");
for (int i = 0; i < count; i++)
{
- var item = new ImageItem(reader);
- item.isCompressed = true;
- var currentPos = reader.Tell();
+ var item = new ImageItem(Reader);
+ item.IsCompressed = true;
+ var currentPos = Reader.Tell();
item.Read();
@@ -51,11 +47,11 @@ namespace mmfparser.mfaloaders
}
}
- public AGMIBank(ByteIO reader) : base(reader)
+ public AgmiBank(ByteIO reader) : base(reader)
{
}
- public AGMIBank(Chunk chunk) : base(chunk)
+ public AgmiBank(Chunk chunk) : base(chunk)
{
}
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/Layer.cs b/NetMFAPatcher/mmfparser/mfaloaders/Layer.cs
index 3527243..c733036 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/Layer.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/Layer.cs
@@ -5,15 +5,16 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.utils;
namespace NetMFAPatcher.mmfparser.mfaloaders
{
class Layer : DataLoader
{
- public string name="ERROR";
- public float xCoefficient;
- public float yCoefficient;
- public int flags;
+ public string Name="ERROR";
+ public float XCoefficient;
+ public float YCoefficient;
+ public int Flags;
public override void Print()
@@ -23,10 +24,10 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
public override void Read()
{
- name = Helper.AutoReadUnicode(reader);
- flags = reader.ReadInt32();
- xCoefficient = reader.ReadSingle();
- yCoefficient = reader.ReadSingle();
+ Name = Helper.AutoReadUnicode(Reader);
+ Flags = Reader.ReadInt32();
+ XCoefficient = Reader.ReadSingle();
+ YCoefficient = Reader.ReadSingle();
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/ValueList.cs b/NetMFAPatcher/mmfparser/mfaloaders/ValueList.cs
index fd2dce7..4878f3a 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/ValueList.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/ValueList.cs
@@ -5,12 +5,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.utils;
namespace NetMFAPatcher.mmfparser.mfaloaders
{
class ValueList : DataLoader
{
- public List items = new List();
+ public List Items = new List();
public ValueList(ByteIO reader) : base(reader)
{
}
@@ -23,12 +24,12 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
public override void Read()
{
- var count = reader.ReadInt32();
+ var count = Reader.ReadInt32();
for (int i = 0; i < count; i++)
{
- var item = new ValueItem(reader);
+ var item = new ValueItem(Reader);
item.Read();
- items.Add(item);
+ Items.Add(item);
}
@@ -37,8 +38,8 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
}
class ValueItem: DataLoader
{
- public object value;
- public string name;
+ public object Value;
+ public string Name;
public ValueItem(ByteIO reader) : base(reader)
{
@@ -52,18 +53,18 @@ namespace NetMFAPatcher.mmfparser.mfaloaders
public override void Read()
{
- name = Helper.AutoReadUnicode(reader);
- var type = reader.ReadInt32();
+ Name = Helper.AutoReadUnicode(Reader);
+ var type = Reader.ReadInt32();
switch (type)
{
case 2://string
- value = Helper.AutoReadUnicode(reader);
+ Value = Helper.AutoReadUnicode(Reader);
break;
case 0://int
- value = reader.ReadInt32();
+ Value = Reader.ReadInt32();
break;
case 1://double
- value = reader.ReadDouble();
+ Value = Reader.ReadDouble();
break;
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/AnimationObject.cs b/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/AnimationObject.cs
index a16230b..eadbdef 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/AnimationObject.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/AnimationObject.cs
@@ -10,18 +10,18 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
{
class AnimationObject:ObjectLoader
{
- List items = new List();
+ List _items = new List();
public override void Read()
{
base.Read();
- if(reader.ReadByte()!=0)
+ if(Reader.ReadByte()!=0)
{
- var animationCount = reader.ReadInt32();
+ var animationCount = Reader.ReadInt32();
for (int i = 0; i < animationCount; i++)
{
- var item = new Animation(reader);
+ var item = new Animation(Reader);
item.Read();
- items.Add(item);
+ _items.Add(item);
}
}
@@ -31,20 +31,20 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
}
class Animation : DataLoader
{
- public string name = "Animation-UNKNOWN";
+ public string Name = "Animation-UNKNOWN";
public override void Print()
{
- Logger.Log($" Found animation: {name} ");
+ Logger.Log($" Found animation: {Name} ");
}
public override void Read()
{
- name = reader.ReadAscii(reader.ReadInt32());
- var directionCount = reader.ReadInt32();
+ Name = Reader.ReadAscii(Reader.ReadInt32());
+ var directionCount = Reader.ReadInt32();
var directions = new List();
for (int i = 0; i < directionCount; i++)
{
- var direction = new AnimationDirection(reader);
+ var direction = new AnimationDirection(Reader);
direction.Read();
directions.Add(direction);
}
@@ -56,7 +56,7 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
}
class AnimationDirection : DataLoader
{
- public string name = "Animation-UNKNOWN";
+ public string Name = "Animation-UNKNOWN";
public override void Print()
{
throw new NotImplementedException();
@@ -64,11 +64,11 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
public override void Read()
{
- var index = reader.ReadInt32();
- var minSpeed = reader.ReadInt32();
- var maxSpeed= reader.ReadInt32();
- var repeat= reader.ReadInt32();
- var backTo= reader.ReadInt32();
+ var index = Reader.ReadInt32();
+ var minSpeed = Reader.ReadInt32();
+ var maxSpeed= Reader.ReadInt32();
+ var repeat= Reader.ReadInt32();
+ var backTo= Reader.ReadInt32();
var frames = new List();
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Behaviours.cs b/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Behaviours.cs
index 4bb36dc..70ba6cb 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Behaviours.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Behaviours.cs
@@ -10,7 +10,7 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
{
class Behaviours : DataLoader
{
- List items = new List();
+ List _items = new List();
public override void Print()
{
throw new NotImplementedException();
@@ -18,20 +18,20 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
public override void Read()
{
- var count = reader.ReadInt32();
+ var count = Reader.ReadInt32();
for (int i = 0; i < count; i++)
{
- var item = new Behaviour(reader);
+ var item = new Behaviour(Reader);
item.Read();
- items.Add(item);
+ _items.Add(item);
}
}
public Behaviours(ByteIO reader) : base(reader) { }
}
class Behaviour : DataLoader
{
- public string name = "ERROR";
- public ByteIO data;
+ public string Name = "ERROR";
+ public ByteIO Data;
public override void Print()
{
throw new NotImplementedException();
@@ -39,8 +39,8 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
public override void Read()
{
- name = reader.ReadAscii(reader.ReadInt32());
- data = new ByteIO(reader.ReadBytes(reader.ReadInt32()));
+ Name = Reader.ReadAscii(Reader.ReadInt32());
+ Data = new ByteIO(Reader.ReadBytes(Reader.ReadInt32()));
}
public Behaviour(ByteIO reader) : base(reader) { }
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Movements.cs b/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Movements.cs
index ed4c3be..6fa47ca 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Movements.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Movements.cs
@@ -5,12 +5,13 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using NetMFAPatcher.utils;
namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
{
class Movements : DataLoader
{
- public List items = new List();
+ public List Items = new List();
public override void Print()
{
throw new NotImplementedException();
@@ -18,12 +19,12 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
public override void Read()
{
- var count = reader.ReadInt32();
+ var count = Reader.ReadInt32();
for (int i = 0; i < count; i++)
{
- var item = new Movement(reader);
+ var item = new Movement(Reader);
item.Read();
- items.Add(item);
+ Items.Add(item);
}
@@ -33,7 +34,7 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
}
class Movement : DataLoader
{
- public string name="ERROR";
+ public string Name="ERROR";
public override void Print()
{
@@ -42,23 +43,23 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
public override void Read()
{
- name = Helper.AutoReadUnicode(reader);
- var extension = Helper.AutoReadUnicode(reader);
- var identifier = reader.ReadInt32();
- var dataSize = reader.ReadInt32();
+ Name = Helper.AutoReadUnicode(Reader);
+ var extension = Helper.AutoReadUnicode(Reader);
+ var identifier = Reader.ReadInt32();
+ var dataSize = Reader.ReadInt32();
if(extension.Length>0)
{
- var newReader = new ByteIO(reader.ReadBytes(dataSize));
+ var newReader = new ByteIO(Reader.ReadBytes(dataSize));
}
else
{
- var player = reader.ReadInt16();
- var type = reader.ReadInt16();
- var movingAtStart = reader.ReadByte();
- reader.Skip(3);
- var directionAtStart = reader.ReadInt32();
+ var player = Reader.ReadInt16();
+ var type = Reader.ReadInt16();
+ var movingAtStart = Reader.ReadByte();
+ Reader.Skip(3);
+ var directionAtStart = Reader.ReadInt32();
//implement types, but i am tired, fuck this shit
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/ObjectLoader.cs b/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/ObjectLoader.cs
index a2e1149..b653a42 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/ObjectLoader.cs
+++ b/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/ObjectLoader.cs
@@ -11,62 +11,62 @@ namespace NetMFAPatcher.mmfparser.mfaloaders.mfachunks
{
class ObjectLoader : DataLoader
{
- public int objectFlags;
- public int newObjectFlags;
- public Color backgroundColor;
- List qualifiers = new List();
- public ValueList values;
- public ValueList strings;
- public Movements movements;
- public Behaviours behaviours;
+ public int ObjectFlags;
+ public int NewObjectFlags;
+ public Color BackgroundColor;
+ List _qualifiers = new List();
+ public ValueList Values;
+ public ValueList Strings;
+ public Movements Movements;
+ public Behaviours Behaviours;
public override void Print()
{
Logger.Log("Object Loader: ");
Logger.Log(" Values:");
- foreach (var item in values.items)
+ foreach (var item in Values.Items)
{
- Logger.Log($" Value {item.name} contains '{item.value}'");
+ Logger.Log($" Value {item.Name} contains '{item.Value}'");
}
Logger.Log("\n Strings:");
- foreach (var item in strings.items)
+ foreach (var item in Strings.Items)
{
- Logger.Log($" String {item.name} contains '{item.value}'");
+ Logger.Log($" String {item.Name} contains '{item.Value}'");
}
Logger.Log("\n Movements:");
- foreach (var item in movements.items)
+ foreach (var item in Movements.Items)
{
- Logger.Log($" Movement {item.name}");
+ Logger.Log($" Movement {item.Name}");
}
Logger.Log("\n");
}
public override void Read()
{
- objectFlags = reader.ReadInt32();
- newObjectFlags = reader.ReadInt32();
- backgroundColor = reader.ReadColor();
- var end = reader.Tell() + 2 * 9;
+ ObjectFlags = Reader.ReadInt32();
+ NewObjectFlags = Reader.ReadInt32();
+ BackgroundColor = Reader.ReadColor();
+ var end = Reader.Tell() + 2 * 9;
for (int i = 0; i < 9; i++)
{
- var value = reader.ReadInt16();
+ var value = Reader.ReadInt16();
if(value==-1)
{
break;
}
- qualifiers.Add(value);
+ _qualifiers.Add(value);
}
- reader.Seek(end);
+ Reader.Seek(end);
- values = new ValueList(reader);
- values.Read();
- strings = new ValueList(reader);
- strings.Read();
- movements = new Movements(reader);
- movements.Read();
- behaviours = new Behaviours(reader);
- behaviours.Read();
- reader.Skip(56);
+ Values = new ValueList(Reader);
+ Values.Read();
+ Strings = new ValueList(Reader);
+ Strings.Read();
+ Movements = new Movements(Reader);
+ Movements.Read();
+ Behaviours = new Behaviours(Reader);
+ Behaviours.Read();
+ Reader.Skip(56);
Print();
diff --git a/NetMFAPatcher/packages.config b/NetMFAPatcher/packages.config
index 4b0596a..fe83587 100644
--- a/NetMFAPatcher/packages.config
+++ b/NetMFAPatcher/packages.config
@@ -1,4 +1,5 @@
+
\ No newline at end of file