diff --git a/NetMFAPatcher/DotNetCTFDumper.csproj b/NetMFAPatcher/DotNetCTFDumper.csproj
index dff2630..24959ec 100644
--- a/NetMFAPatcher/DotNetCTFDumper.csproj
+++ b/NetMFAPatcher/DotNetCTFDumper.csproj
@@ -156,73 +156,73 @@
PackDataForm.cs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
diff --git a/NetMFAPatcher/GUI/ChunkNode.cs b/NetMFAPatcher/GUI/ChunkNode.cs
index fb4ef2f..6d0c225 100644
--- a/NetMFAPatcher/GUI/ChunkNode.cs
+++ b/NetMFAPatcher/GUI/ChunkNode.cs
@@ -1,6 +1,6 @@
using System.Windows.Forms;
-using DotNetCTFDumper.MMFParser.ChunkLoaders;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
+using DotNetCTFDumper.MMFParser.EXE.Loaders;
namespace DotNetCTFDumper.GUI
{
diff --git a/NetMFAPatcher/GUI/FrameViewer.cs b/NetMFAPatcher/GUI/FrameViewer.cs
index 7681488..087bb75 100644
--- a/NetMFAPatcher/GUI/FrameViewer.cs
+++ b/NetMFAPatcher/GUI/FrameViewer.cs
@@ -3,12 +3,10 @@ using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
-using DotNetCTFDumper.MMFParser.ChunkLoaders;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Banks;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Objects;
-using DotNetCTFDumper.MMFParser.Data;
-using DotNetCTFDumper.MMFParser.MFALoaders;
-using Frame = DotNetCTFDumper.MMFParser.ChunkLoaders.Frame;
+using DotNetCTFDumper.MMFParser.EXE;
+using DotNetCTFDumper.MMFParser.EXE.Loaders;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
+using Frame = DotNetCTFDumper.MMFParser.EXE.Loaders.Frame;
namespace DotNetCTFDumper.GUI
{
diff --git a/NetMFAPatcher/GUI/MainForm.cs b/NetMFAPatcher/GUI/MainForm.cs
index 8379b9c..a5ca3d4 100644
--- a/NetMFAPatcher/GUI/MainForm.cs
+++ b/NetMFAPatcher/GUI/MainForm.cs
@@ -4,10 +4,10 @@ using System.Diagnostics;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
-using DotNetCTFDumper.MMFParser.ChunkLoaders;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Banks;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.MMFParser.Decompiling;
+using DotNetCTFDumper.MMFParser.EXE;
+using DotNetCTFDumper.MMFParser.EXE.Loaders;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.GUI
diff --git a/NetMFAPatcher/GUI/ObjectBox.cs b/NetMFAPatcher/GUI/ObjectBox.cs
index 9cd1603..05d6e10 100644
--- a/NetMFAPatcher/GUI/ObjectBox.cs
+++ b/NetMFAPatcher/GUI/ObjectBox.cs
@@ -1,5 +1,5 @@
using System.Windows.Forms;
-using DotNetCTFDumper.MMFParser.ChunkLoaders;
+using DotNetCTFDumper.MMFParser.EXE.Loaders;
namespace DotNetCTFDumper.GUI
{
diff --git a/NetMFAPatcher/GUI/PackDataForm.cs b/NetMFAPatcher/GUI/PackDataForm.cs
index 0422e46..a12bf95 100644
--- a/NetMFAPatcher/GUI/PackDataForm.cs
+++ b/NetMFAPatcher/GUI/PackDataForm.cs
@@ -3,7 +3,7 @@ using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.GUI
diff --git a/NetMFAPatcher/MMFParser/Data/ChunkList.cs b/NetMFAPatcher/MMFParser/EXE/ChunkList.cs
similarity index 98%
rename from NetMFAPatcher/MMFParser/Data/ChunkList.cs
rename to NetMFAPatcher/MMFParser/EXE/ChunkList.cs
index bd92c25..fa1af50 100644
--- a/NetMFAPatcher/MMFParser/Data/ChunkList.cs
+++ b/NetMFAPatcher/MMFParser/EXE/ChunkList.cs
@@ -1,12 +1,11 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Xml.Linq;
-using DotNetCTFDumper.MMFParser.ChunkLoaders;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Banks;
+using DotNetCTFDumper.MMFParser.EXE.Loaders;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.Data
+namespace DotNetCTFDumper.MMFParser.EXE
{
public class ChunkList
{
diff --git a/NetMFAPatcher/MMFParser/Data/DataLoader.cs b/NetMFAPatcher/MMFParser/EXE/DataLoader.cs
similarity index 85%
rename from NetMFAPatcher/MMFParser/Data/DataLoader.cs
rename to NetMFAPatcher/MMFParser/EXE/DataLoader.cs
index 36dac3c..4bcd471 100644
--- a/NetMFAPatcher/MMFParser/Data/DataLoader.cs
+++ b/NetMFAPatcher/MMFParser/EXE/DataLoader.cs
@@ -1,7 +1,7 @@
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.Data
+namespace DotNetCTFDumper.MMFParser.EXE
{
public abstract class DataLoader
{
diff --git a/NetMFAPatcher/MMFParser/Data/EXE.cs b/NetMFAPatcher/MMFParser/EXE/EXE.cs
similarity index 98%
rename from NetMFAPatcher/MMFParser/Data/EXE.cs
rename to NetMFAPatcher/MMFParser/EXE/EXE.cs
index 835d484..4cb0db4 100644
--- a/NetMFAPatcher/MMFParser/Data/EXE.cs
+++ b/NetMFAPatcher/MMFParser/EXE/EXE.cs
@@ -2,7 +2,7 @@
using System.IO;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.Data
+namespace DotNetCTFDumper.MMFParser.EXE
{
public class Exe
{
diff --git a/NetMFAPatcher/MMFParser/Data/GameData.cs b/NetMFAPatcher/MMFParser/EXE/GameData.cs
similarity index 97%
rename from NetMFAPatcher/MMFParser/Data/GameData.cs
rename to NetMFAPatcher/MMFParser/EXE/GameData.cs
index e5589dc..3f8f8e3 100644
--- a/NetMFAPatcher/MMFParser/Data/GameData.cs
+++ b/NetMFAPatcher/MMFParser/EXE/GameData.cs
@@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.ChunkLoaders;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Banks;
+using DotNetCTFDumper.MMFParser.EXE.Loaders;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.Data
+namespace DotNetCTFDumper.MMFParser.EXE
{
public class GameData
{
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/AppHeader.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/AppHeader.cs
similarity index 98%
rename from NetMFAPatcher/mmfparser/chunkloaders/AppHeader.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/AppHeader.cs
index 3d5261d..ec78558 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/AppHeader.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/AppHeader.cs
@@ -2,9 +2,9 @@
using System.Collections.Generic;
using System.Drawing;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
public class AppHeader : ChunkLoader
{
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/AppMenu.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/AppMenu.cs
similarity index 94%
rename from NetMFAPatcher/mmfparser/chunkloaders/AppMenu.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/AppMenu.cs
index b868e9d..bd1f996 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/AppMenu.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/AppMenu.cs
@@ -1,11 +1,11 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics.Eventing;
using System.IO;
using DotNetCTFDumper.Utils;
-using Ionic.Zip;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
public class AppMenu : ChunkLoader
{
@@ -63,7 +63,7 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders
{
writer.WriteInt32(20);
writer.WriteInt32(20);
- writer.WriteInt32(0);
+ //writer.WriteInt32(0);
ByteWriter menuDataWriter = new ByteWriter(new MemoryStream());
@@ -72,20 +72,24 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders
item.Write(menuDataWriter);
}
- writer.WriteUInt32((uint) menuDataWriter.BaseStream.Position);
+
+ writer.WriteUInt32((uint) menuDataWriter.BaseStream.Position+4);
+ //
writer.WriteUInt32((uint) (24 + menuDataWriter.BaseStream.Position));
writer.WriteInt32(AccelKey.Count * 8);
writer.WriteInt32(0);
writer.WriteWriter(menuDataWriter);
+
for (Int32 i = 0; i < AccelKey.Count; i++)
{
writer.WriteInt8(AccelShift[i]);
writer.WriteInt8(0);
writer.WriteInt16(AccelKey[i]);
writer.WriteInt16(AccelId[i]);
- writer.WriteInt8(0);
+ writer.WriteInt16(0);
}
+
}
public void Load(ByteReader reader)
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/banks/FontBank.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Banks/FontBank.cs
similarity index 81%
rename from NetMFAPatcher/mmfparser/chunkloaders/banks/FontBank.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Banks/FontBank.cs
index 8d186b1..5ddebc5 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/banks/FontBank.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Banks/FontBank.cs
@@ -1,7 +1,7 @@
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Banks
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Banks
{
public class FontBank : ChunkLoader
{
@@ -23,7 +23,7 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Banks
public void Write(ByteWriter writer)
{
writer.WriteInt32(NumberOfItems);
- //i am testing with no fonts suck pinus haha
+ //i am testing with no fonts
}
public FontBank(ByteReader reader) : base(reader)
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/banks/ImageBank.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Banks/ImageBank.cs
similarity index 98%
rename from NetMFAPatcher/mmfparser/chunkloaders/banks/ImageBank.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Banks/ImageBank.cs
index 55c8b82..8fb4bdf 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/banks/ImageBank.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Banks/ImageBank.cs
@@ -5,11 +5,10 @@ using System.Drawing.Imaging;
using System.IO;
using System.Runtime.InteropServices;
using DotNetCTFDumper.GUI;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Banks
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Banks
{
public class ImageBank : ChunkLoader
{
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/banks/MusicBank.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Banks/MusicBank.cs
similarity index 93%
rename from NetMFAPatcher/mmfparser/chunkloaders/banks/MusicBank.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Banks/MusicBank.cs
index 4933ccf..3214010 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/banks/MusicBank.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Banks/MusicBank.cs
@@ -1,13 +1,11 @@
using System;
using System.Collections.Generic;
using System.IO;
-using System.Net;
-using System.Windows.Forms;
using DotNetCTFDumper.GUI;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Banks
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Banks
{
public class MusicBank : ChunkLoader
{
@@ -33,8 +31,7 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Banks
public event MainForm.SaveHandler OnMusicSaved;
public override void Read()
{
- //Someone is using this lol?
- //Actually,yes
+
if (!Settings.DoMFA)Reader.Seek(0);//Reset the reader to avoid bugs when dumping more than once
Items = new List();
NumOfItems = Reader.ReadInt32();
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/banks/SoundBank.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Banks/SoundBank.cs
similarity index 96%
rename from NetMFAPatcher/mmfparser/chunkloaders/banks/SoundBank.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Banks/SoundBank.cs
index 72abf54..5af39cd 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/banks/SoundBank.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Banks/SoundBank.cs
@@ -3,9 +3,9 @@ using System.Collections.Generic;
using System.IO;
using DotNetCTFDumper.GUI;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Banks
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Banks
{
public class SoundBank : ChunkLoader
{
@@ -36,7 +36,6 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Banks
public event MainForm.SaveHandler OnSoundSaved;
public override void Read()
{
- //Implementing for standalone-only because of my lazyness
if (!Settings.DoMFA)Reader.Seek(0);//Reset the reader to avoid bugs when dumping more than once
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/ChunkLoader.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/ChunkLoader.cs
similarity index 75%
rename from NetMFAPatcher/mmfparser/chunkloaders/ChunkLoader.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/ChunkLoader.cs
index 0af2bd6..cd3f4cc 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/ChunkLoader.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/ChunkLoader.cs
@@ -1,8 +1,7 @@
-using DotNetCTFDumper.MMFParser.Data;
-using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using DotNetCTFDumper.Utils;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
public abstract class ChunkLoader
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Events.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Events.cs
similarity index 74%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Events.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Events.cs
index 51fee0e..bab1ff2 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Events.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Events.cs
@@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
-using System.Security.Cryptography.X509Certificates;
+using System.IO;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events
{
public class Events : ChunkLoader
{
@@ -50,12 +50,12 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events
NumberOfConditions.Add(Reader.ReadInt16());
}
- var qualifierCount = Reader.ReadInt16(); //should be 0, so i dont give a fuck
+ var qualifierCount = Reader.ReadInt16(); //should be 0, so i dont care
Quailifers = new Quailifer[qualifierCount + 1];
for (int i = 0; i < qualifierCount; i++)
{
var newQualifier = new Quailifer(Reader);
- QualifiersList.Add(newQualifier); //fucking python types
+ QualifiersList.Add(newQualifier); //i dont understand python types
//THIS IS NOT DONE
}
}
@@ -114,13 +114,16 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events
public class EventGroup : ChunkLoader
{
- public int Flags;
+ public ushort Flags;
public int IsRestricted;
public int RestrictCpt;
public int Identifier;
public int Undo;
public List Conditions = new List();
public List Actions = new List();
+ public int Size;
+ public byte NumberOfConditions;
+ public byte NumberOfActions;
public EventGroup(Chunk chunk) : base(chunk)
{
@@ -143,10 +146,10 @@ namespace DotNetCTFDumper.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();
+ Size = Reader.ReadInt16() * -1;
+ NumberOfConditions = Reader.ReadByte();
+ NumberOfActions = Reader.ReadByte();
+ Flags = Reader.ReadUInt16();
if (Settings.Build >= 284)
{
var nop = Reader.ReadInt16();
@@ -161,21 +164,21 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events
Undo = Reader.ReadInt16();
}
- for (int i = 0; i < numberOfConditions; i++)
+ for (int i = 0; i < NumberOfConditions; i++)
{
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);
item.Read();
Actions.Add(item);
}
- Reader.Seek(currentPosition + size);
+ Reader.Seek(currentPosition + Size);
Console.WriteLine("IF:");
if (Conditions != null)
{
@@ -197,6 +200,39 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events
public void Write(ByteWriter Writer)
{
+ ByteWriter newWriter = new ByteWriter(new MemoryStream());
+ newWriter.WriteInt8((byte) Conditions.Count);
+ newWriter.WriteInt8((byte) Actions.Count);
+ newWriter.WriteUInt16(Flags);
+ if (Settings.Build >= 284)
+ {
+ newWriter.WriteInt16(0);
+ newWriter.WriteInt32(IsRestricted);
+ newWriter.WriteInt32(RestrictCpt);
+ }
+ else
+ {
+ newWriter.WriteInt16((short) IsRestricted);
+ newWriter.WriteInt16((short) RestrictCpt);
+ newWriter.WriteInt16((short) Identifier);
+ newWriter.WriteInt16((short) Undo);
+ }
+ foreach (Condition condition in Conditions)
+ {
+ condition.Write(newWriter);
+ }
+ foreach (Action action in Actions)
+ {
+ action.Write(newWriter);
+ }
+ Writer.WriteInt16((short) ((newWriter.Size()+2)*-1));
+ Writer.WriteWriter(newWriter);
+
+
+
+
+
+
}
}
}
\ No newline at end of file
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/EventsParts.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/EventsParts.cs
similarity index 71%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/EventsParts.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/EventsParts.cs
index 7ac0cb8..85bf128 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/EventsParts.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/EventsParts.cs
@@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
+using System.IO;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events
{
public class Condition : DataLoader
{
@@ -17,10 +17,28 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events
public int Identifier;
public int ObjectInfoList;
public List Items = new List();
+
public Condition(ByteReader reader) : base(reader) { }
public override void Write(ByteWriter Writer)
{
- throw new NotImplementedException();
+ ByteWriter newWriter = new ByteWriter(new MemoryStream());
+ newWriter.WriteInt16((short) ObjectType);
+ newWriter.WriteInt16((short) Num);
+ newWriter.WriteUInt16((ushort) ObjectInfo);
+ newWriter.WriteInt16((short) ObjectInfoList);
+ newWriter.WriteUInt8((sbyte) Flags);
+ newWriter.WriteUInt8((sbyte) OtherFlags);
+ newWriter.WriteUInt8((sbyte) Items.Count);
+ newWriter.WriteInt8((byte) DefType);
+ newWriter.WriteInt16((short) Identifier);
+ foreach (Parameter parameter in Items)
+ {
+ parameter.Write(newWriter);
+ }
+ Writer.WriteInt16((short) (newWriter.BaseStream.Position+2));
+ Writer.WriteWriter(newWriter);
+
+
}
public override void Print()
@@ -54,7 +72,7 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events
}
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() : " ")}";
}
}
@@ -72,7 +90,23 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events
public Action(ByteReader reader) : base(reader) { }
public override void Write(ByteWriter Writer)
{
- throw new NotImplementedException();
+ ByteWriter newWriter = new ByteWriter(new MemoryStream());
+ newWriter.WriteInt16((short) ObjectType);
+ newWriter.WriteInt16((short) Num);
+ newWriter.WriteUInt16((ushort) ObjectInfo);
+ newWriter.WriteInt16((short) ObjectInfoList);
+ newWriter.WriteUInt8((sbyte) Flags);
+ newWriter.WriteUInt8((sbyte) OtherFlags);
+ newWriter.WriteUInt8((sbyte) Items.Count);
+ newWriter.WriteInt8((byte) DefType);
+
+ foreach (Parameter parameter in Items)
+ {
+ parameter.Write(newWriter);
+ }
+ Writer.WriteInt16((short) (newWriter.BaseStream.Position+2));
+ Writer.WriteWriter(newWriter);
+
}
public override void Print( )
@@ -104,7 +138,7 @@ namespace DotNetCTFDumper.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() : " ")}";
}
}
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Expressions/Expression.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Expressions/Expression.cs
similarity index 84%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Expressions/Expression.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Expressions/Expression.cs
index a675546..a7b43b3 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Expressions/Expression.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Expressions/Expression.cs
@@ -1,8 +1,7 @@
using System;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Expressions
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Expressions
{
class Expression : DataLoader
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/AlterableValue.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/AlterableValue.cs
similarity index 85%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/AlterableValue.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/AlterableValue.cs
index dcde2a9..652822e 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/AlterableValue.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/AlterableValue.cs
@@ -1,7 +1,7 @@
using System;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class AlterableValue : Short
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Colour.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Colour.cs
similarity index 85%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Colour.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Colour.cs
index 3a38408..f21dbd5 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Colour.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Colour.cs
@@ -1,7 +1,7 @@
using System.Drawing;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Colour : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Create.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Create.cs
similarity index 90%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Create.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Create.cs
index d01dcdb..6c60ed4 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Create.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Create.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Create : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Every.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Every.cs
similarity index 87%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Every.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Every.cs
index d554d2b..72f7676 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Every.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Every.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Every : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Float.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Float.cs
similarity index 85%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Float.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Float.cs
index db30f9d..4736a2e 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Float.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Float.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Float : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/GlobalValue.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/GlobalValue.cs
similarity index 86%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/GlobalValue.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/GlobalValue.cs
index 5e6fb77..0c61aa2 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/GlobalValue.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/GlobalValue.cs
@@ -1,7 +1,7 @@
using System;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class GlobalValue : Short
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Int.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Int.cs
similarity index 78%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Int.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Int.cs
index b5532ff..0a15f27 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Int.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Int.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Int : Short
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParamObject.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/ParamObject.cs
similarity index 89%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParamObject.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/ParamObject.cs
index f966dc5..f0a02f5 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParamObject.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/ParamObject.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class ParamObject : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParameterCommon.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/ParameterCommon.cs
similarity index 82%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParameterCommon.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/ParameterCommon.cs
index 0e893c9..963217e 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/ParameterCommon.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/ParameterCommon.cs
@@ -1,8 +1,7 @@
using System;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class ParameterCommon : DataLoader
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Position.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Position.cs
similarity index 94%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Position.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Position.cs
index eb63360..f0389f5 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Position.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Position.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Position : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Remark.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Remark.cs
similarity index 78%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Remark.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Remark.cs
index f60f9d5..47e197b 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Remark.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Remark.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Remark : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Sample.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Sample.cs
similarity index 88%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Sample.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Sample.cs
index 11c8318..afb0e89 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Sample.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Sample.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Sample : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Short.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Short.cs
similarity index 85%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Short.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Short.cs
index dccc12d..c1b70de 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Short.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Short.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Short : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Time.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Time.cs
similarity index 87%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Time.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Time.cs
index 69c3d30..bc5120c 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Events/Parameters/Time.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Events/Parameters/Time.cs
@@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Time : ParameterCommon
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/ExtData.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/ExtData.cs
similarity index 82%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/ExtData.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/ExtData.cs
index 314ea57..1e121f3 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/ExtData.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/ExtData.cs
@@ -1,7 +1,7 @@
using System;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
class ExtData : ChunkLoader
{
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/Frame.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Frame.cs
similarity index 97%
rename from NetMFAPatcher/mmfparser/chunkloaders/Frame.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Frame.cs
index 7dc7032..2771409 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/Frame.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Frame.cs
@@ -1,11 +1,9 @@
using System;
using System.Collections.Generic;
using System.Drawing;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.Utils;
-using ChunkList = DotNetCTFDumper.MMFParser.Data.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
class FrameName : StringChunk
{
@@ -76,7 +74,6 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders
Chunks.Verbose = false;
Chunks.Read(frameReader);
- //return;
var name = Chunks.GetChunk();
if (name != null) //Just to be sure
{
@@ -213,7 +210,7 @@ namespace DotNetCTFDumper.MMFParser.ChunkLoaders
public override void Read()
{
- CountOfObjects = (int)Reader.ReadUInt32();
+ CountOfObjects = Reader.ReadInt32();
for (int i = 0; i < CountOfObjects; i++)
{
var item = new ObjectInstance(Reader);
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/FrameItems.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/FrameItems.cs
similarity index 92%
rename from NetMFAPatcher/mmfparser/chunkloaders/FrameItems.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/FrameItems.cs
index afecd59..d1d4279 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/FrameItems.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/FrameItems.cs
@@ -1,10 +1,9 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
public class FrameItems : ChunkLoader
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Globals.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Globals.cs
similarity index 95%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Globals.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Globals.cs
index da299f4..6c27acf 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Globals.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Globals.cs
@@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
public class GlobalValues : ChunkLoader
{
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/ObjectInfo.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/ObjectInfo.cs
similarity index 94%
rename from NetMFAPatcher/mmfparser/chunkloaders/ObjectInfo.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/ObjectInfo.cs
index b0483ee..2952510 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/ObjectInfo.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/ObjectInfo.cs
@@ -1,14 +1,11 @@
using System;
using System.Collections.Generic;
-using System.Drawing;
-using System.Windows.Forms;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Banks;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Objects;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Objects;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
public class ObjectInfo : ChunkLoader
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/ObjectNames.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/ObjectNames.cs
similarity index 88%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/ObjectNames.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/ObjectNames.cs
index 355cd2f..b672ae7 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/ObjectNames.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/ObjectNames.cs
@@ -1,8 +1,8 @@
using System;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
class ObjectNames : ChunkLoader//Fucking trash
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Animations.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Animations.cs
similarity index 97%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Animations.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Animations.cs
index 39f4d05..069f621 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Animations.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Animations.cs
@@ -1,9 +1,8 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Objects
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Objects
{
public class Animations:ChunkLoader
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Backdrop.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Backdrop.cs
similarity index 90%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Backdrop.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Backdrop.cs
index e3988e5..8d05097 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Backdrop.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Backdrop.cs
@@ -1,7 +1,6 @@
-using DotNetCTFDumper.MMFParser.Data;
-using DotNetCTFDumper.Utils;
+using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Objects
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Objects
{
public enum Obstacle
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Counters.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Counters.cs
similarity index 96%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Counters.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Counters.cs
index 8794280..878efe8 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Counters.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Counters.cs
@@ -1,9 +1,8 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Objects
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Objects
{
public class Counter:ChunkLoader
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/ObjectCommon.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/ObjectCommon.cs
similarity index 98%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Objects/ObjectCommon.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Objects/ObjectCommon.cs
index 77b08e2..5cdb976 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/ObjectCommon.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/ObjectCommon.cs
@@ -1,9 +1,8 @@
using System;
using System.Drawing;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Objects
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Objects
{
public class ObjectCommon : ChunkLoader
{
diff --git a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Value.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Value.cs
similarity index 95%
rename from NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Value.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Value.cs
index 852aec8..ed17b4a 100644
--- a/NetMFAPatcher/MMFParser/ChunkLoaders/Objects/Value.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/Objects/Value.cs
@@ -1,9 +1,8 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Objects
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Objects
{
public class AlterableValues:ChunkLoader
{
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/StringChunk.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/StringChunk.cs
similarity index 96%
rename from NetMFAPatcher/mmfparser/chunkloaders/StringChunk.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/StringChunk.cs
index 086acc5..c3004dd 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/StringChunk.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/StringChunk.cs
@@ -1,8 +1,8 @@
using System;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
public class StringChunk : ChunkLoader
{
diff --git a/NetMFAPatcher/mmfparser/chunkloaders/yves.cs b/NetMFAPatcher/MMFParser/EXE/Loaders/yves.cs
similarity index 94%
rename from NetMFAPatcher/mmfparser/chunkloaders/yves.cs
rename to NetMFAPatcher/MMFParser/EXE/Loaders/yves.cs
index 6e42b87..2f53e9d 100644
--- a/NetMFAPatcher/mmfparser/chunkloaders/yves.cs
+++ b/NetMFAPatcher/MMFParser/EXE/Loaders/yves.cs
@@ -2,12 +2,11 @@
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
-using System.IO;
using System.Runtime.InteropServices;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.ChunkLoaders
+namespace DotNetCTFDumper.MMFParser.EXE.Loaders
{
public class AppIcon : ChunkLoader
{
diff --git a/NetMFAPatcher/MMFParser/Data/PackData.cs b/NetMFAPatcher/MMFParser/EXE/PackData.cs
similarity index 98%
rename from NetMFAPatcher/MMFParser/Data/PackData.cs
rename to NetMFAPatcher/MMFParser/EXE/PackData.cs
index 069b17f..c971ac3 100644
--- a/NetMFAPatcher/MMFParser/Data/PackData.cs
+++ b/NetMFAPatcher/MMFParser/EXE/PackData.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.IO;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.Data
+namespace DotNetCTFDumper.MMFParser.EXE
{
public class PackData
{
diff --git a/NetMFAPatcher/MMFParser/Decompiling/MFAGenerator.cs b/NetMFAPatcher/MMFParser/MFA/Decompiling/MFAGenerator.cs
similarity index 91%
rename from NetMFAPatcher/MMFParser/Decompiling/MFAGenerator.cs
rename to NetMFAPatcher/MMFParser/MFA/Decompiling/MFAGenerator.cs
index 892436c..52dd6d8 100644
--- a/NetMFAPatcher/MMFParser/Decompiling/MFAGenerator.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Decompiling/MFAGenerator.cs
@@ -1,6 +1,6 @@
using System;
using System.IO;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.Decompiling
@@ -14,7 +14,7 @@ namespace DotNetCTFDumper.MMFParser.Decompiling
{
Settings.DoMFA = true;
var mfaReader = new ByteReader(TemplatePath, FileMode.Open);
- var template = new MFA(mfaReader);
+ var template = new MFA.MFA(mfaReader);
template.Read(); //Loading template
@@ -32,7 +32,7 @@ namespace DotNetCTFDumper.MMFParser.Decompiling
public static void ReadTestMFA()
{
var mfaReader = new ByteReader(TemplatePath, FileMode.Open);
- var template = new MFA(mfaReader);
+ var template = new MFA.MFA(mfaReader);
Settings.DoMFA = true;
template.Read();
diff --git a/NetMFAPatcher/MMFParser/Decompiling/PAME2MFA.cs b/NetMFAPatcher/MMFParser/MFA/Decompiling/PAME2MFA.cs
similarity index 94%
rename from NetMFAPatcher/MMFParser/Decompiling/PAME2MFA.cs
rename to NetMFAPatcher/MMFParser/MFA/Decompiling/PAME2MFA.cs
index 97624e9..65558ba 100644
--- a/NetMFAPatcher/MMFParser/Decompiling/PAME2MFA.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Decompiling/PAME2MFA.cs
@@ -1,11 +1,11 @@
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
namespace DotNetCTFDumper.MMFParser.Decompiling
{
public static class Pame2Mfa
{
- public static void Translate(ref MFA mfa, GameData game)
+ public static void Translate(ref MFA.MFA mfa, GameData game)
{
//mfa.MfaBuild = 4;
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/ChunkList.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/ChunkList.cs
similarity index 59%
rename from NetMFAPatcher/mmfparser/mfaloaders/ChunkList.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/ChunkList.cs
index be7516b..c5a6d8f 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/ChunkList.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/ChunkList.cs
@@ -1,17 +1,25 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
- class ChunkList : DataLoader//This is used for MFA reading/writing
+ public class ChunkList : DataLoader//This is used for MFA reading/writing
{
List _items = new List();
-
+ public byte[] Saved;
+
public override void Write(ByteWriter Writer)
{
- throw new NotImplementedException();
+ if (Saved != null)
+ {
+ Writer.WriteBytes(Saved);
+ }
+ else
+ {
+ Writer.WriteInt8(0);
+ }
}
public override void Print()
@@ -28,14 +36,13 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
if(id==0) break;
var data = new ByteReader(Reader.ReadBytes((int) Reader.ReadUInt32()));
-
-
-
-
}
+ var size = Reader.Tell() - start;
+ Reader.Seek(start);
+ Saved = Reader.ReadBytes((int) size);
+
-
}
public ChunkList(ByteReader reader) : base(reader) { }
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/Controls.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/Controls.cs
similarity index 97%
rename from NetMFAPatcher/mmfparser/mfaloaders/Controls.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/Controls.cs
index 1303f37..d632981 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/Controls.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/Controls.cs
@@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
public class Controls : DataLoader
{
diff --git a/NetMFAPatcher/MMFParser/mfaloaders/Events.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/Events.cs
similarity index 94%
rename from NetMFAPatcher/MMFParser/mfaloaders/Events.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/Events.cs
index 53bc5cb..bf0480c 100644
--- a/NetMFAPatcher/MMFParser/mfaloaders/Events.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/Events.cs
@@ -1,13 +1,13 @@
using System;
using System.Collections.Generic;
-using System.Data;
using System.IO;
using System.Runtime.InteropServices;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Events;
-using DotNetCTFDumper.MMFParser.Data;
+using System.Text;
+using DotNetCTFDumper.MMFParser.EXE;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Events;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
public class Events:DataLoader
{
@@ -40,17 +40,20 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
public uint LineItemType;
public uint EventLine;
public uint EventLineY;
+ public byte[] Saved;
public Events(ByteReader reader) : base(reader)
{
}
- public Events(Data.ChunkList.Chunk chunk) : base(chunk)
+ public Events(EXE.ChunkList.Chunk chunk) : base(chunk)
{
}
public override void Read()
{
+ Saved = Reader.ReadBytes(92);
+ return;
Version = Reader.ReadUInt16();
FrameType = Reader.ReadUInt16();
Items = new List();
@@ -59,6 +62,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{
string name = Reader.ReadAscii(4);
+ Console.WriteLine("Group: "+name+" "+Encoding.ASCII.GetBytes(name).GetHex()+", Position: "+Reader.Tell());
if (name == EventData)
{
uint size = Reader.ReadUInt32();
@@ -174,11 +178,15 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
public override void Write(ByteWriter Writer)
{
+ Writer.WriteBytes(Saved);
+ return;
Writer.WriteUInt16(Version);
Writer.WriteInt16((short) FrameType);
+ Writer.WriteBytes(new byte[]{0x04,0x04,0x00,0x00});
if (Items != null)
{
Writer.WriteAscii(EventData);
+
ByteWriter newWriter = new ByteWriter(new MemoryStream());
foreach (EventGroup eventGroup in Items)
{
@@ -186,7 +194,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
}
Writer.WriteWriter(newWriter);
}
-
+
if (Comments != null)
{
Writer.WriteAscii(CommentData);
@@ -275,7 +283,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{
}
- public Comment(Data.ChunkList.Chunk chunk) : base(chunk)
+ public Comment(EXE.ChunkList.Chunk chunk) : base(chunk)
{
}
@@ -315,7 +323,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{
}
- public EventObject(Data.ChunkList.Chunk chunk) : base(chunk)
+ public EventObject(EXE.ChunkList.Chunk chunk) : base(chunk)
{
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/Frame.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/Frame.cs
similarity index 90%
rename from NetMFAPatcher/mmfparser/mfaloaders/Frame.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/Frame.cs
index 0cc9566..7d48227 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/Frame.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/Frame.cs
@@ -1,10 +1,10 @@
using System;
using System.Collections.Generic;
using System.Drawing;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
public class Frame : DataLoader
{
@@ -26,6 +26,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
public int ActiveLayer;
public List Layers;
public Events Events;
+ public ChunkList Chunks;
public Frame(ByteReader reader) : base(reader)
{
@@ -50,6 +51,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{
Writer.WriteColor(item);
}
+
Writer.WriteInt32(StampHandle);
Writer.WriteInt32(ActiveLayer);
Writer.WriteInt32(Layers.Count);
@@ -57,6 +59,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{
layer.Write(Writer);
}
+
//TODO: Do transitions
Writer.WriteInt8(0);
Writer.WriteInt8(0);
@@ -76,7 +79,10 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{
item.Write(Writer);
}
+ Console.WriteLine("BeforeEventsPos: "+Writer.Tell());
Events.Write(Writer);
+ Console.WriteLine("AfterEventsPos: "+Writer.Tell());
+ Chunks.Write(Writer);
@@ -112,9 +118,9 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
}
StampHandle = Reader.ReadInt32();
ActiveLayer = Reader.ReadInt32();
- var layersCunt = Reader.ReadInt32();
+ var layersCount = Reader.ReadInt32();
Layers = new List();
- for (int i = 0; i < layersCunt; i++)
+ for (int i = 0; i < layersCount; i++)
{
var layer = new Layer(Reader);
layer.Read();
@@ -154,6 +160,8 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
}
Events = new Events(Reader);
Events.Read();
+ Chunks = new ChunkList(Reader);
+ Chunks.Read();
diff --git a/NetMFAPatcher/MMFParser/mfaloaders/FrameInstance.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/FrameInstance.cs
similarity index 89%
rename from NetMFAPatcher/MMFParser/mfaloaders/FrameInstance.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/FrameInstance.cs
index 86b0971..1f92c53 100644
--- a/NetMFAPatcher/MMFParser/mfaloaders/FrameInstance.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/FrameInstance.cs
@@ -1,7 +1,7 @@
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
public class FrameInstance:DataLoader
{
@@ -18,7 +18,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{
}
- public FrameInstance(Data.ChunkList.Chunk chunk) : base(chunk)
+ public FrameInstance(EXE.ChunkList.Chunk chunk) : base(chunk)
{
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/FrameItem.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/FrameItem.cs
similarity index 71%
rename from NetMFAPatcher/mmfparser/mfaloaders/FrameItem.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/FrameItem.cs
index 6872ed4..2f2b5c0 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/FrameItem.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/FrameItem.cs
@@ -1,9 +1,9 @@
using System;
-using DotNetCTFDumper.MMFParser.Data;
-using DotNetCTFDumper.MMFParser.MFALoaders.mfachunks;
+using DotNetCTFDumper.MMFParser.EXE;
+using DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
public class FrameItem : DataLoader
{
@@ -16,6 +16,9 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
public int AntiAliasing;
public int Flags;
public int IconType;
+ public int IconHandle;
+ public ChunkList Chunks;
+ public Active Loader;
public override void Write(ByteWriter Writer)
{
@@ -25,6 +28,12 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
Writer.WriteInt32(Transparent);
Writer.WriteInt32(InkEffect);
Writer.WriteInt32(InkEffectParameter);
+ Writer.WriteInt32(AntiAliasing);
+ Writer.WriteInt32(Flags);
+ Writer.WriteInt32(1);
+ Writer.WriteInt32(IconHandle);
+ Chunks.Write(Writer);
+ Loader.Write(Writer);
}
@@ -46,26 +55,27 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
AntiAliasing = Reader.ReadInt32();
Flags = Reader.ReadInt32();
+
IconType = Reader.ReadInt32();
if(IconType==1)
{
- var iconHandle = Reader.ReadInt32();
+ IconHandle = Reader.ReadInt32();
}
else
{
throw new NotImplementedException("invalid icon");
}
- var chunks = new ChunkList(Reader);
- chunks.Read();
+ Chunks = new ChunkList(Reader);
+ Chunks.Read();
if(ObjectType>=32)//extension base
{
//TODO: Nonactives
}
- else
+ else if(ObjectType==2)
{
- var loader = new Active(Reader);
- loader.Read();
+ Loader = new Active(Reader);
+ Loader.Read();
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/ImageBank.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/ImageBank.cs
similarity index 91%
rename from NetMFAPatcher/mmfparser/mfaloaders/ImageBank.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/ImageBank.cs
index a8a1d75..c7ce198 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/ImageBank.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/ImageBank.cs
@@ -1,12 +1,12 @@
using System;
using System.Collections.Generic;
using System.Drawing;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Banks;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
using DotNetCTFDumper.Utils;
-using static DotNetCTFDumper.MMFParser.Data.ChunkList;
+using static DotNetCTFDumper.MMFParser.EXE.ChunkList;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
public class AgmiBank : DataLoader
{
diff --git a/NetMFAPatcher/MMFParser/mfaloaders/ItemFolder.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/ItemFolder.cs
similarity index 90%
rename from NetMFAPatcher/MMFParser/mfaloaders/ItemFolder.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/ItemFolder.cs
index 859a787..a78034f 100644
--- a/NetMFAPatcher/MMFParser/mfaloaders/ItemFolder.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/ItemFolder.cs
@@ -1,8 +1,8 @@
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
public class ItemFolder:DataLoader
{
@@ -13,7 +13,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{
}
- public ItemFolder(Data.ChunkList.Chunk chunk) : base(chunk)
+ public ItemFolder(EXE.ChunkList.Chunk chunk) : base(chunk)
{
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/Layer.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/Layer.cs
similarity index 86%
rename from NetMFAPatcher/mmfparser/mfaloaders/Layer.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/Layer.cs
index cc6bee3..73f6acb 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/Layer.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/Layer.cs
@@ -1,8 +1,8 @@
using System;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
public class Layer : DataLoader
{
@@ -14,7 +14,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
public override void Write(ByteWriter Writer)
{
- Helper.AutoWriteUnicode(Writer,Name);
+ Writer.AutoWriteUnicode(Name);
Writer.WriteInt32(Flags);
Writer.WriteSingle(XCoefficient);
Writer.WriteSingle(YCoefficient);
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/ValueList.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/ValueList.cs
similarity index 96%
rename from NetMFAPatcher/mmfparser/mfaloaders/ValueList.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/ValueList.cs
index 497c40f..6fc7258 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/ValueList.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/ValueList.cs
@@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders
{
public class ValueList : DataLoader
{
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Active.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/Active.cs
similarity index 74%
rename from NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Active.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/Active.cs
index e9c59bf..b71ea53 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Active.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/Active.cs
@@ -1,8 +1,8 @@
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
{
- class Active : AnimationObject
+ public class Active : AnimationObject
{
public override void Print()
{
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/AnimationObject.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/AnimationObject.cs
similarity index 93%
rename from NetMFAPatcher/mmfparser/mfaloaders/mfachunks/AnimationObject.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/AnimationObject.cs
index d8b47d8..4bcca20 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/AnimationObject.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/AnimationObject.cs
@@ -1,11 +1,11 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
{
- class AnimationObject:ObjectLoader
+ public class AnimationObject:ObjectLoader
{
List _items = new List();
public override void Read()
@@ -23,6 +23,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
}
}
+
public AnimationObject(ByteReader reader) : base(reader) { }
}
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Behaviours.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/Behaviours.cs
similarity index 90%
rename from NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Behaviours.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/Behaviours.cs
index 65a19b2..b3f2950 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Behaviours.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/Behaviours.cs
@@ -1,11 +1,11 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
{
- class Behaviours : DataLoader
+ public class Behaviours : DataLoader
{
List _items = new List();
public override void Write(ByteWriter Writer)
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Movements.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/Movements.cs
similarity index 91%
rename from NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Movements.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/Movements.cs
index 8fcf5e9..d5236b2 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/Movements.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/Movements.cs
@@ -1,11 +1,11 @@
using System;
using System.Collections.Generic;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
{
- class Movements : DataLoader
+ public class Movements : DataLoader
{
public List Items = new List();
public override void Write(ByteWriter Writer)
@@ -33,7 +33,8 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
}
public Movements(ByteReader reader) : base(reader) { }
}
- class Movement : DataLoader
+
+ public class Movement : DataLoader
{
public string Name="ERROR";
diff --git a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/ObjectLoader.cs b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/ObjectLoader.cs
similarity index 91%
rename from NetMFAPatcher/mmfparser/mfaloaders/mfachunks/ObjectLoader.cs
rename to NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/ObjectLoader.cs
index 8960aca..013fa8c 100644
--- a/NetMFAPatcher/mmfparser/mfaloaders/mfachunks/ObjectLoader.cs
+++ b/NetMFAPatcher/MMFParser/MFA/Loaders/mfachunks/ObjectLoader.cs
@@ -1,11 +1,11 @@
using System.Collections.Generic;
using System.Drawing;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
-namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
+namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
{
- class ObjectLoader : DataLoader
+ public class ObjectLoader : DataLoader
{
public int ObjectFlags;
public int NewObjectFlags;
@@ -18,7 +18,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
public override void Write(ByteWriter Writer)
{
- throw new System.NotImplementedException();
+
}
public override void Print()
diff --git a/NetMFAPatcher/MMFParser/Data/MFA.cs b/NetMFAPatcher/MMFParser/MFA/MFA.cs
similarity index 91%
rename from NetMFAPatcher/MMFParser/Data/MFA.cs
rename to NetMFAPatcher/MMFParser/MFA/MFA.cs
index a523b4a..5a35a9d 100644
--- a/NetMFAPatcher/MMFParser/Data/MFA.cs
+++ b/NetMFAPatcher/MMFParser/MFA/MFA.cs
@@ -2,15 +2,16 @@
using System.Collections.Generic;
using System.Drawing;
using System.IO;
-using System.Numerics;
-using DotNetCTFDumper.MMFParser.ChunkLoaders;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Banks;
-using DotNetCTFDumper.MMFParser.MFALoaders;
+using DotNetCTFDumper.MMFParser.EXE;
+using DotNetCTFDumper.MMFParser.EXE.Loaders;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
+using DotNetCTFDumper.MMFParser.MFA.Loaders;
using DotNetCTFDumper.Utils;
-using Controls = DotNetCTFDumper.MMFParser.MFALoaders.Controls;
-using Frame = DotNetCTFDumper.MMFParser.MFALoaders.Frame;
+using ChunkList = DotNetCTFDumper.MMFParser.MFA.Loaders.ChunkList;
+using Controls = DotNetCTFDumper.MMFParser.MFA.Loaders.Controls;
+using Frame = DotNetCTFDumper.MMFParser.MFA.Loaders.Frame;
-namespace DotNetCTFDumper.MMFParser.Data
+namespace DotNetCTFDumper.MMFParser.MFA
{
public class MFA : DataLoader
{
@@ -112,6 +113,7 @@ namespace DotNetCTFDumper.MMFParser.Data
public List> Extensions;
public List> CustomQuals;
public List Frames;
+ public ChunkList Chunks;
public override void Print()
@@ -184,7 +186,7 @@ namespace DotNetCTFDumper.MMFParser.Data
Controls.Write(Writer);
-
+
if (Menu != null)
{
using (ByteWriter menuWriter = new ByteWriter(new MemoryStream()))
@@ -200,6 +202,7 @@ namespace DotNetCTFDumper.MMFParser.Data
Writer.WriteInt32(0);
}
+
Writer.WriteInt32(windowMenuIndex);
Writer.WriteInt32(menuImages.Count);
foreach (KeyValuePair valuePair in menuImages)
@@ -217,10 +220,26 @@ namespace DotNetCTFDumper.MMFParser.Data
{
Writer.WriteInt32(iconImage);
}
- Writer.WriteInt32(0);//custom qualifiers
- Writer.WriteInt32(0); //extensions
+ Writer.WriteInt32(CustomQuals.Count);
+ foreach (Tuple customQual in CustomQuals)
+ {
+ Writer.AutoWriteUnicode(customQual.Item1);
+ Writer.WriteInt32(customQual.Item2);
+ }
+ Writer.WriteInt32(Extensions.Count);
+ foreach(var extension in Extensions)
+ {
+ Writer.WriteInt32(extension.Item1);
+ Writer.WriteUnicode(extension.Item2);
+ Writer.WriteUnicode(extension.Item3);
+ Writer.WriteInt32(extension.Item4);
+ Writer.WriteBytes(extension.Item5);
+
+ }
+
Writer.WriteInt32(Frames.Count); //frame
var startPos = Reader.Tell() + 4 * Frames.Count + 4;
+
ByteWriter newWriter = new ByteWriter(new MemoryStream());
foreach (Frame frame in Frames)
{
@@ -229,7 +248,7 @@ namespace DotNetCTFDumper.MMFParser.Data
}
Writer.WriteUInt32((uint) (startPos+newWriter.Tell()+4));
Writer.WriteWriter(newWriter);
-
+ Chunks.Write(Writer);
@@ -378,8 +397,8 @@ namespace DotNetCTFDumper.MMFParser.Data
}
Reader.Seek(nextOffset);
- var chunks = new MFALoaders.ChunkList(Reader);
- chunks.Read();
+ Chunks = new ChunkList(Reader);
+ Chunks.Read();
return;
}
diff --git a/NetMFAPatcher/Program.cs b/NetMFAPatcher/Program.cs
index 8d96db7..791063b 100644
--- a/NetMFAPatcher/Program.cs
+++ b/NetMFAPatcher/Program.cs
@@ -3,8 +3,8 @@ using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using DotNetCTFDumper.GUI;
-using DotNetCTFDumper.MMFParser.Data;
using DotNetCTFDumper.MMFParser.Decompiling;
+using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.Utils;
using Joveler.Compression.ZLib;
diff --git a/NetMFAPatcher/Utils/Backend.cs b/NetMFAPatcher/Utils/Backend.cs
index 66bdbc4..8eb5987 100644
--- a/NetMFAPatcher/Utils/Backend.cs
+++ b/NetMFAPatcher/Utils/Backend.cs
@@ -1,7 +1,7 @@
using System.ComponentModel;
using DotNetCTFDumper.GUI;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Banks;
-using static DotNetCTFDumper.MMFParser.Data.Exe;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
+using static DotNetCTFDumper.MMFParser.EXE.Exe;
namespace DotNetCTFDumper.Utils
{
diff --git a/NetMFAPatcher/Utils/ByteWriter.cs b/NetMFAPatcher/Utils/ByteWriter.cs
index 69f385c..3f94043 100644
--- a/NetMFAPatcher/Utils/ByteWriter.cs
+++ b/NetMFAPatcher/Utils/ByteWriter.cs
@@ -59,6 +59,8 @@ namespace DotNetCTFDumper.Utils
}
public void WriteInt8(byte value) => Write(value);
+ public void WriteUInt8(sbyte value) => Write(value);
+
public void WriteInt16(short value) => Write(value);
public void WriteInt32(int value) => Write(value);
public void WriteInt64(long value) => Write(value);
diff --git a/NetMFAPatcher/Utils/Helper.cs b/NetMFAPatcher/Utils/Helper.cs
index 9e2927b..a572988 100644
--- a/NetMFAPatcher/Utils/Helper.cs
+++ b/NetMFAPatcher/Utils/Helper.cs
@@ -7,9 +7,9 @@ using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using DotNetCTFDumper.GUI;
using DotNetCTFDumper.MMFParser;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Objects;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Objects;
namespace DotNetCTFDumper.Utils
{
diff --git a/NetMFAPatcher/Utils/ImageDumper.cs b/NetMFAPatcher/Utils/ImageDumper.cs
index a4373c2..7c4276b 100644
--- a/NetMFAPatcher/Utils/ImageDumper.cs
+++ b/NetMFAPatcher/Utils/ImageDumper.cs
@@ -2,10 +2,10 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using DotNetCTFDumper.MMFParser.ChunkLoaders;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Banks;
-using DotNetCTFDumper.MMFParser.ChunkLoaders.Objects;
-using DotNetCTFDumper.MMFParser.Data;
+using DotNetCTFDumper.MMFParser.EXE;
+using DotNetCTFDumper.MMFParser.EXE.Loaders;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Banks;
+using DotNetCTFDumper.MMFParser.EXE.Loaders.Objects;
namespace DotNetCTFDumper.Utils
{