add flags

master
REDxEYE 4 years ago
parent 188a67e48c
commit 8c39d923a4

@ -19,7 +19,22 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
public int LastViewedY; public int LastViewedY;
public List<ItemFolder> Folders; public List<ItemFolder> Folders;
public List<FrameInstance> Instances; public List<FrameInstance> Instances;
public uint Flags;
public BitDict Flags = new BitDict(new string[]
{
"GrabDesktop",
"KeepDisplay",
"BackgroundCollisions",
"DisplayFrameTitle",
"ResizeToScreen",
"ForceLoadOnCall",
"NoDisplaySurface",
"ScreenSaverSetup",
"TimerBasedMovements",
"MochiAds",
"NoGlobalEvents"
});
public string Password; public string Password;
public List<Color> Palette; public List<Color> Palette;
public int StampHandle; public int StampHandle;
@ -39,7 +54,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
Writer.WriteInt32(SizeX); Writer.WriteInt32(SizeX);
Writer.WriteInt32(SizeY); Writer.WriteInt32(SizeY);
Writer.WriteColor(Background); Writer.WriteColor(Background);
Writer.WriteUInt32(Flags); Writer.WriteUInt32(Flags.flag);
Writer.WriteInt32(MaxObjects); Writer.WriteInt32(MaxObjects);
Writer.AutoWriteUnicode(Password); Writer.AutoWriteUnicode(Password);
Writer.WriteInt32(0); Writer.WriteInt32(0);
@ -50,6 +65,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{ {
Writer.WriteColor(item); Writer.WriteColor(item);
} }
Writer.WriteInt32(StampHandle); Writer.WriteInt32(StampHandle);
Writer.WriteInt32(ActiveLayer); Writer.WriteInt32(ActiveLayer);
Writer.WriteInt32(Layers.Count); Writer.WriteInt32(Layers.Count);
@ -57,6 +73,7 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{ {
layer.Write(Writer); layer.Write(Writer);
} }
//TODO: Do transitions //TODO: Do transitions
Writer.WriteInt8(0); Writer.WriteInt8(0);
Writer.WriteInt8(0); Writer.WriteInt8(0);
@ -66,22 +83,20 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
{ {
item.Write(Writer); item.Write(Writer);
} }
Writer.WriteInt32(Folders.Count); Writer.WriteInt32(Folders.Count);
foreach (var item in Folders) foreach (var item in Folders)
{ {
item.Write(Writer); item.Write(Writer);
} }
Writer.WriteInt32(Instances.Count); Writer.WriteInt32(Instances.Count);
foreach (var item in Instances) foreach (var item in Instances)
{ {
item.Write(Writer); item.Write(Writer);
} }
Events.Write(Writer);
Events.Write(Writer);
} }
public override void Print() public override void Print()
@ -97,80 +112,77 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders
SizeX = Reader.ReadInt32(); SizeX = Reader.ReadInt32();
SizeY = Reader.ReadInt32(); SizeY = Reader.ReadInt32();
Background = Reader.ReadColor(); Background = Reader.ReadColor();
Flags = Reader.ReadUInt32(); Flags.flag = Reader.ReadUInt32();
MaxObjects = Reader.ReadInt32(); MaxObjects = Reader.ReadInt32();
Password = Helper.AutoReadUnicode(Reader); Password = Helper.AutoReadUnicode(Reader);
Reader.Skip(4); Reader.Skip(4);
LastViewedX = Reader.ReadInt32(); LastViewedX = Reader.ReadInt32();
LastViewedY = Reader.ReadInt32(); LastViewedY = Reader.ReadInt32();
var paletteNum = Reader.ReadInt32(); var paletteSize = Reader.ReadInt32();
Palette = new List<Color>(); Palette = new List<Color>();
for (int i = 0; i < paletteNum; i++) for (int i = 0; i < paletteSize; i++)
{ {
Palette.Add(Reader.ReadColor()); Palette.Add(Reader.ReadColor());
} }
StampHandle = Reader.ReadInt32(); StampHandle = Reader.ReadInt32();
ActiveLayer = Reader.ReadInt32(); ActiveLayer = Reader.ReadInt32();
var layersCunt = Reader.ReadInt32();
int layersCount = Reader.ReadInt32();
Layers = new List<Layer>(); Layers = new List<Layer>();
for (int i = 0; i < layersCunt; i++) for (int i = 0; i < layersCount; i++)
{ {
var layer = new Layer(Reader); var layer = new Layer(Reader);
layer.Read(); layer.Read();
Layers.Add(layer); Layers.Add(layer);
} }
//fadein //fadein
if (Reader.ReadByte() != 0)
{
throw new NotImplementedException();
}
//fadeout //fadeout
Reader.Skip(2); if (Reader.ReadByte() != 0)
{
throw new NotImplementedException();
}
Items = new List<FrameItem>(); Items = new List<FrameItem>();
var frameitemsCount = Reader.ReadInt32(); var frameItemsCount = Reader.ReadInt32();
for (int i = 0; i < frameitemsCount; i++) for (int i = 0; i < frameItemsCount; i++)
{ {
var frameitem = new FrameItem(Reader); var frameitem = new FrameItem(Reader);
frameitem.Read(); frameitem.Read();
Items.Add(frameitem); Items.Add(frameitem);
Console.WriteLine("Frameitem:"+frameitem.Name); Console.WriteLine("Frameitem:" + frameitem.Name);
} }
Folders = new List<ItemFolder>(); Folders = new List<ItemFolder>();
var folderCount = Reader.ReadInt32(); var folderCount = Reader.ReadInt32();
for (int i = 0; i < frameitemsCount; i++) for (int i = 0; i < folderCount; i++)
{ {
var folder = new ItemFolder(Reader); var folder = new ItemFolder(Reader);
folder.Read(); folder.Read();
Folders.Add(folder); Folders.Add(folder);
} }
Instances = new List<FrameInstance>(); Instances = new List<FrameInstance>();
var instancesCount = 0;//Reader.ReadInt32(); var instancesCount = Reader.ReadInt32();
for (int i = 0; i < instancesCount; i++) for (int i = 0; i < instancesCount; i++)
{ {
var inst = new FrameInstance(Reader); var inst = new FrameInstance(Reader);
//inst.Read(); inst.Read();
Instances.Add(inst); Instances.Add(inst);
} }
Reader.Skip(96);
Events = new Events(Reader); Events = new Events(Reader);
Events.Read(); Events.Read();
} }
} }
}
}

@ -67,7 +67,6 @@ namespace DotNetCTFDumper.MMFParser.MFALoaders.mfachunks
Movements.Read(); Movements.Read();
Behaviours = new Behaviours(Reader); Behaviours = new Behaviours(Reader);
Behaviours.Read(); Behaviours.Read();
Reader.Skip(56);
Print(); Print();

Loading…
Cancel
Save