Removed inappropriate comments and string,

AppMenu fixes,
new project structure
master
1987kostya 4 years ago
parent 188a67e48c
commit 6117ea4db6

@ -156,73 +156,73 @@
<Compile Include="GUI\PackDataForm.Designer.cs">
<DependentUpon>PackDataForm.cs</DependentUpon>
</Compile>
<Compile Include="MMFParser\ChunkLoaders\AppMenu.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Events.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\EventsParts.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Expressions\Expression.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Position.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Int.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\GlobalValue.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\ParameterCommon.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Float.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Every.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Sample.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Remark.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Colour.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Short.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\AlterableValue.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Create.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\Time.cs" />
<Compile Include="MMFParser\ChunkLoaders\Events\Parameters\ParamObject.cs" />
<Compile Include="MMFParser\ChunkLoaders\ExtData.cs" />
<Compile Include="MMFParser\ChunkLoaders\Globals.cs" />
<Compile Include="MMFParser\ChunkLoaders\ObjectInfo.cs" />
<Compile Include="MMFParser\ChunkLoaders\FrameItems.cs" />
<Compile Include="MMFParser\ChunkLoaders\ObjectNames.cs" />
<Compile Include="MMFParser\ChunkLoaders\Objects\Animations.cs" />
<Compile Include="MMFParser\ChunkLoaders\Objects\Backdrop.cs" />
<Compile Include="MMFParser\ChunkLoaders\Objects\Counters.cs" />
<Compile Include="MMFParser\ChunkLoaders\Objects\ObjectCommon.cs" />
<Compile Include="MMFParser\ChunkLoaders\Objects\Value.cs" />
<Compile Include="MMFParser\Data\DataLoader.cs" />
<Compile Include="MMFParser\Data\EXE.cs" />
<Compile Include="MMFParser\Decompiling\MFAGenerator.cs" />
<Compile Include="MMFParser\Decompiling\PAME2MFA.cs" />
<Compile Include="MMFParser\MFALoaders\ChunkList.cs" />
<Compile Include="MMFParser\MFALoaders\Events.cs" />
<Compile Include="MMFParser\MFALoaders\Frame.cs" />
<Compile Include="MMFParser\MFALoaders\FrameInstance.cs" />
<Compile Include="MMFParser\MFALoaders\FrameItem.cs" />
<Compile Include="MMFParser\MFALoaders\ItemFolder.cs" />
<Compile Include="MMFParser\MFALoaders\Layer.cs" />
<Compile Include="MMFParser\MFALoaders\mfachunks\Active.cs" />
<Compile Include="MMFParser\MFALoaders\mfachunks\AnimationObject.cs" />
<Compile Include="MMFParser\MFALoaders\mfachunks\Behaviours.cs" />
<Compile Include="MMFParser\MFALoaders\mfachunks\Movements.cs" />
<Compile Include="MMFParser\MFALoaders\mfachunks\ObjectLoader.cs" />
<Compile Include="MMFParser\MFALoaders\ValueList.cs" />
<Compile Include="MMFParser\MFALoaders\Controls.cs" />
<Compile Include="MMFParser\MFALoaders\ImageBank.cs" />
<Compile Include="MMFParser\Data\MFA.cs" />
<Compile Include="MMFParser\ChunkLoaders\AppHeader.cs" />
<Compile Include="MMFParser\ChunkLoaders\ChunkLoader.cs" />
<Compile Include="MMFParser\ChunkLoaders\Banks\FontBank.cs" />
<Compile Include="MMFParser\ChunkLoaders\Frame.cs" />
<Compile Include="MMFParser\ChunkLoaders\Banks\ImageBank.cs" />
<Compile Include="MMFParser\ChunkLoaders\Banks\MusicBank.cs" />
<Compile Include="MMFParser\ChunkLoaders\Banks\SoundBank.cs" />
<Compile Include="MMFParser\ChunkLoaders\StringChunk.cs" />
<Compile Include="MMFParser\ChunkLoaders\yves.cs" />
<Compile Include="MMFParser\EXE\ChunkList.cs" />
<Compile Include="MMFParser\EXE\Loaders\AppHeader.cs" />
<Compile Include="MMFParser\EXE\Loaders\AppMenu.cs" />
<Compile Include="MMFParser\EXE\Loaders\Banks\FontBank.cs" />
<Compile Include="MMFParser\EXE\Loaders\Banks\ImageBank.cs" />
<Compile Include="MMFParser\EXE\Loaders\Banks\MusicBank.cs" />
<Compile Include="MMFParser\EXE\Loaders\Banks\SoundBank.cs" />
<Compile Include="MMFParser\EXE\Loaders\ChunkLoader.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Events.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\EventsParts.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Expressions\Expression.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\AlterableValue.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Colour.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Create.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Every.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Float.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\GlobalValue.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Int.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\ParameterCommon.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\ParamObject.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Position.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Remark.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Sample.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Short.cs" />
<Compile Include="MMFParser\EXE\Loaders\Events\Parameters\Time.cs" />
<Compile Include="MMFParser\EXE\Loaders\ExtData.cs" />
<Compile Include="MMFParser\EXE\Loaders\Frame.cs" />
<Compile Include="MMFParser\EXE\Loaders\FrameItems.cs" />
<Compile Include="MMFParser\EXE\Loaders\Globals.cs" />
<Compile Include="MMFParser\EXE\Loaders\ObjectInfo.cs" />
<Compile Include="MMFParser\EXE\Loaders\ObjectNames.cs" />
<Compile Include="MMFParser\EXE\Loaders\Objects\Animations.cs" />
<Compile Include="MMFParser\EXE\Loaders\Objects\Backdrop.cs" />
<Compile Include="MMFParser\EXE\Loaders\Objects\Counters.cs" />
<Compile Include="MMFParser\EXE\Loaders\Objects\ObjectCommon.cs" />
<Compile Include="MMFParser\EXE\Loaders\Objects\Value.cs" />
<Compile Include="MMFParser\EXE\Loaders\StringChunk.cs" />
<Compile Include="MMFParser\EXE\Loaders\yves.cs" />
<Compile Include="MMFParser\EXE\DataLoader.cs" />
<Compile Include="MMFParser\EXE\EXE.cs" />
<Compile Include="MMFParser\EXE\GameData.cs" />
<Compile Include="MMFParser\EXE\PackData.cs" />
<Compile Include="MMFParser\Constants.cs" />
<Compile Include="MMFParser\MFA\Decompiling\MFAGenerator.cs" />
<Compile Include="MMFParser\MFA\Decompiling\PAME2MFA.cs" />
<Compile Include="MMFParser\MFA\MFA.cs" />
<Compile Include="MMFParser\MFA\Loaders\ChunkList.cs" />
<Compile Include="MMFParser\MFA\Loaders\Controls.cs" />
<Compile Include="MMFParser\MFA\Loaders\Events.cs" />
<Compile Include="MMFParser\MFA\Loaders\Frame.cs" />
<Compile Include="MMFParser\MFA\Loaders\FrameInstance.cs" />
<Compile Include="MMFParser\MFA\Loaders\FrameItem.cs" />
<Compile Include="MMFParser\MFA\Loaders\ImageBank.cs" />
<Compile Include="MMFParser\MFA\Loaders\ItemFolder.cs" />
<Compile Include="MMFParser\MFA\Loaders\Layer.cs" />
<Compile Include="MMFParser\MFA\Loaders\mfachunks\Active.cs" />
<Compile Include="MMFParser\MFA\Loaders\mfachunks\AnimationObject.cs" />
<Compile Include="MMFParser\MFA\Loaders\mfachunks\Behaviours.cs" />
<Compile Include="MMFParser\MFA\Loaders\mfachunks\Movements.cs" />
<Compile Include="MMFParser\MFA\Loaders\mfachunks\ObjectLoader.cs" />
<Compile Include="MMFParser\MFA\Loaders\ValueList.cs" />
<Compile Include="Settings.cs" />
<Compile Include="Utils\Backend.cs" />
<Compile Include="Utils\BitDict.cs" />
<Compile Include="Utils\ByteFlag.cs" />
<Compile Include="Utils\ByteWriter.cs" />
<Compile Include="Utils\Helper.cs" />
<Compile Include="MMFParser\Data\ChunkList.cs" />
<Compile Include="MMFParser\Data\GameData.cs" />
<Compile Include="MMFParser\Data\PackData.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Utils\ByteReader.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
{

@ -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
{

@ -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

@ -1,5 +1,5 @@
using System.Windows.Forms;
using DotNetCTFDumper.MMFParser.ChunkLoaders;
using DotNetCTFDumper.MMFParser.EXE.Loaders;
namespace DotNetCTFDumper.GUI
{

@ -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

@ -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
{

@ -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
{

@ -2,7 +2,7 @@
using System.IO;
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.Data
namespace DotNetCTFDumper.MMFParser.EXE
{
public class Exe
{

@ -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
{

@ -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
{

@ -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)

@ -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)

@ -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
{

@ -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<MusicFile>();
NumOfItems = Reader.ReadInt32();

@ -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

@ -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
{

@ -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<Condition> Conditions = new List<Condition>();
public List<Action> Actions = new List<Action>();
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);
}
}
}

@ -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<Parameter> Items = new List<Parameter>();
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() : " ")}";
}
}

@ -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
{

@ -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
{

@ -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
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Create : ParameterCommon
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Every : ParameterCommon
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Float : ParameterCommon
{

@ -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
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Int : Short
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class ParamObject : ParameterCommon
{

@ -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
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Position : ParameterCommon
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Remark : ParameterCommon
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Sample : ParameterCommon
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Short : ParameterCommon
{

@ -1,6 +1,6 @@
using DotNetCTFDumper.Utils;
namespace DotNetCTFDumper.MMFParser.ChunkLoaders.Events.Parameters
namespace DotNetCTFDumper.MMFParser.EXE.Loaders.Events.Parameters
{
class Time : ParameterCommon
{

@ -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
{

@ -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<FrameName>();
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);

@ -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
{

@ -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
{

@ -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
{

@ -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
{

@ -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
{

@ -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
{

@ -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
{

@ -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
{

@ -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
{

@ -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
{

@ -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
{

@ -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
{

@ -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();

@ -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;

@ -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<DataLoader> _items = new List<DataLoader>();
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) { }
}

@ -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
{

@ -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<EventGroup>();
@ -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)
{
}

@ -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<Layer> 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<Layer>();
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();

@ -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)
{
}

@ -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();
}

@ -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
{

@ -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)
{
}

@ -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);

@ -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
{

@ -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()
{

@ -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<Animation> _items = new List<Animation>();
public override void Read()
@ -23,6 +23,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
}
}
public AnimationObject(ByteReader reader) : base(reader) { }
}

@ -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<Behaviour> _items = new List<Behaviour>();
public override void Write(ByteWriter Writer)

@ -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<Movement> Items = new List<Movement>();
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";

@ -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()

@ -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<Tuple<int, string, string, int, byte[]>> Extensions;
public List<Tuple<string, int>> CustomQuals;
public List<Frame> 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<int, int> 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<string,int> 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;
}

@ -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;

@ -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
{

@ -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);

@ -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
{

@ -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
{

Loading…
Cancel
Save