@ -197,16 +197,16 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders
Writer.WriteWriter(newWriter);*/
}
if (Objects != null)
{
Console.WriteLine("Writing EventObjects");
Writer.WriteAscii(ObjectData);
Writer.WriteUInt32((uint) Objects.Count);
foreach (EventObject eventObject in Objects)
eventObject.Write(Writer);
// if (Objects != null)
// {
// Console.WriteLine("Writing EventObjects");
// Writer.WriteAscii(ObjectData);
// Writer.WriteUInt32((uint) Objects.Count);
// foreach (EventObject eventObject in Objects)
// eventObject.Write(Writer);
// }
if (ObjectTypes != null)
@ -92,16 +92,16 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders
FadeOut.Write(Writer);
else Writer.Skip(1);
//Writer.Skip(2);
Writer.WriteInt32(Items.Count);
foreach (var item in Items)
item.Write(Writer);
Writer.Skip(4);
//Writer.Skip(4);
var bytes = new byte[] {0x01,0x01,0x00,0x00, 0x00,0x00,0x00,0x00, 0x80,0x01,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x32,0x00, 0x00,0x00,0x32,0x00, 0x00,0x00,0x01,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x01,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00};
Writer.WriteBytes(bytes);
//Writer.WriteBytes(bytes);
//wtf help
// Writer.WriteAscii("AA");
@ -1,4 +1,5 @@
using System;
using System.Diagnostics;
using DotNetCTFDumper.MMFParser.EXE;
using DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks;
using DotNetCTFDumper.Utils;
@ -22,6 +23,7 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders
public override void Write(ByteWriter Writer)
Debug.Assert(ObjectType==2);
Writer.WriteInt32(this.ObjectType);
Writer.WriteInt32(Handle);
Writer.AutoWriteUnicode(Name);
@ -56,7 +56,7 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders
public override void Read()
Name = Helper.AutoReadUnicode(Reader);
Name = Reader.AutoReadUnicode();
var type = Reader.ReadInt32();
switch (type)
@ -88,7 +88,7 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders
else if (Value is double || Value is float)
Writer.WriteInt32(1);
Writer.Write((float)Value);
Writer.WriteSingle((float)Value);
@ -22,7 +22,17 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
Items.Add(item);
base.Write(Writer);
Writer.WriteInt8(1);
Writer.WriteUInt32((uint) Items.Count);
foreach (Animation animation in Items)
animation.Write(Writer);
@ -36,7 +46,12 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
throw new NotImplementedException();
Writer.WriteInt32(Directions.Count);
foreach (AnimationDirection direction in Directions)
direction.Write(Writer);
public override void Print()
@ -79,6 +94,7 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
Writer.WriteInt32(MaxSpeed);
Writer.WriteInt32(Repeat);
Writer.WriteInt32(BackTo);
Writer.WriteInt32(Frames.Count);
foreach (int frame in Frames)
Writer.WriteInt32(frame);
@ -12,7 +12,7 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
public List<Movement> Items = new List<Movement>();
foreach (Movement movement in Items)
movement.Write(Writer);
@ -50,13 +50,13 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
public byte MovingAtStart=1;
public int DirectionAtStart;
public int DataSize;
public byte[] extData;
public byte[] extData=new byte[0];
Writer.AutoWriteUnicode(Extension);
Writer.WriteUInt32((uint) Identifier);
Writer.WriteInt32(DataSize);
Writer.WriteInt32(Identifier);
//
var newWriter = new ByteWriter(new MemoryStream());
if (Extension.Length==0)
@ -66,8 +66,9 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
newWriter.WriteInt8(MovingAtStart);
newWriter.Skip(3);
newWriter.WriteInt32(DirectionAtStart);
// newWriter.WriteBytes(extData);
//newWriter.WriteBytes(extData);
//write loader
Writer.WriteWriter(newWriter);
@ -87,8 +88,6 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
if(Extension.Length>0)
extData = Reader.ReadBytes(DataSize);
else
@ -22,6 +22,7 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
Writer.WriteInt32(ObjectFlags);
Writer.WriteInt32(NewObjectFlags);
Writer.WriteColor(BackgroundColor);
for (int i = 0; i < 9; i++)
try
@ -31,9 +32,10 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
catch
Writer.WriteInt16(-1);
Values.Write(Writer);
Strings.Write(Writer);
Movements.Write(Writer);
@ -91,7 +93,7 @@ namespace DotNetCTFDumper.MMFParser.MFA.Loaders.mfachunks
Movements.Read();
Behaviours = new Behaviours(Reader);
Behaviours.Read();
Reader.Skip(2);//TODO: Help
Reader.Skip(2);//Transitions
Print();