internal PictureCel(Picture picture, int celIndex, AssetLoader loader)
: base(loader)
{
Name = "Cel " + celIndex;
BinaryReader reader = loader.Reader;
reader.BaseStream.Position = 0x0E + celIndex * 0x2A;
Vector2i dimensions = new Vector2i(reader.ReadUInt16(), reader.ReadUInt16());
Displacement = new Vector2i(reader.ReadUInt16(), reader.ReadUInt16());
MaskIndex = reader.ReadByte();
loader.ExpectZeroes(1, 3);
Unknowns.ReadInt32s(reader, 2, "Data offsets?");
loader.ExpectZeroes(4, 1);
int dataOffset = reader.ReadInt32();
loader.ExpectZeroes(4, 2);
Priority = reader.ReadUInt16();
Offset = new Vector2i(reader.ReadUInt16(), reader.ReadUInt16()) * 2;
if (Offset.Y > 0)
Offset = new Vector2i(Offset.X, Offset.Y * 6 / 5);
reader.BaseStream.Position = dataOffset;
int[] indices = reader.ReadBytesAsInt32(dimensions.Product);
Setup(picture.Palette.PaletteAsset, dimensions.X, dimensions.Y, indices);
}