|
|
using mmfparser;
|
|
|
using NetMFAPatcher.Utils;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Drawing;
|
|
|
using System.Linq;
|
|
|
using System.Text;
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
namespace NetMFAPatcher.mmfparser.mfaloaders
|
|
|
{
|
|
|
class Frame : DataLoader
|
|
|
{
|
|
|
public string name = "ERROR";
|
|
|
public int sizeX;
|
|
|
public int sizeY;
|
|
|
public Color background;
|
|
|
public int maxObjects;
|
|
|
|
|
|
public Frame(ByteIO reader) : base(reader)
|
|
|
{
|
|
|
}
|
|
|
|
|
|
|
|
|
public override void Print()
|
|
|
{
|
|
|
throw new NotImplementedException();
|
|
|
}
|
|
|
|
|
|
public override void Read()
|
|
|
{
|
|
|
var handle = reader.ReadInt32();
|
|
|
name = reader.ReadAscii(reader.ReadInt32());
|
|
|
sizeX = reader.ReadInt32();
|
|
|
sizeY = reader.ReadInt32();
|
|
|
var background = reader.ReadColor();
|
|
|
var flags = reader.ReadInt32();
|
|
|
maxObjects = reader.ReadInt32();
|
|
|
var password = reader.ReadAscii(reader.ReadInt32());
|
|
|
reader.Skip(4);
|
|
|
var lastViewedX = reader.ReadInt32();
|
|
|
var lastViewedY = reader.ReadInt32();
|
|
|
|
|
|
var paletteNum = reader.ReadInt32();
|
|
|
List<Color> palette = new List<Color>();
|
|
|
for (int i = 0; i < paletteNum; i++)
|
|
|
{
|
|
|
palette.Add(reader.ReadColor());
|
|
|
}
|
|
|
var stampHandle = reader.ReadInt32();
|
|
|
var activeLayer = reader.ReadInt32();
|
|
|
var layersCunt = reader.ReadInt32();
|
|
|
var layers = new List<Layer>();
|
|
|
for (int i = 0; i < layersCunt; i++)
|
|
|
{
|
|
|
var layer = new Layer(reader);
|
|
|
layer.Read();
|
|
|
layers.Add(layer);
|
|
|
|
|
|
}
|
|
|
//fadein
|
|
|
|
|
|
//fadeout
|
|
|
reader.Skip(2);
|
|
|
var frameitems = new List<FrameItem>();
|
|
|
var frameitemsCount = reader.ReadInt32();
|
|
|
|
|
|
for (int i = 0; i < frameitemsCount; i++)
|
|
|
{
|
|
|
var frameitem = new FrameItem(reader);
|
|
|
frameitem.Read();
|
|
|
frameitems.Add(frameitem);
|
|
|
//break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//ПРОЧИТАЙ ЭТО
|
|
|
//вжух и весь код для фрейма готов
|
|
|
//блин не сработало
|
|
|
//я задолбался, завтра доделаю
|
|
|
//короче я из будущего, тут надо с циклами аккуратно работать, надо создавать переменную для размера
|
|
|
//тип var frameCount = reader.ReadInt32();
|
|
|
//for(int i=0;i<frameCount;i++), иначе смещения уплывут и будет жопа жопная
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|