private static FrameTag FromReader(BinaryReader reader) { ushort fromFrame = reader.ReadUInt16(); ushort toFrame = reader.ReadUInt16(); var direction = reader.ReadByte(); var future = reader.ReadBytes(8); Color color = Color.FromArgb(reader.ReadByte(), reader.ReadByte(), reader.ReadByte()); var zero = reader.ReadByte(); string tagName = Ase.ReadString(reader); return(new FrameTag(fromFrame, toFrame, (AnimationDirection)direction, color, tagName)); }
internal static UserData FromChunk(Chunk chunk) { using (var reader = chunk.GetDataReader()) { switch (reader.ReadUInt32()) { case 0b00: return(new UserData()); case 0b01: return(new UserData(Ase.ReadString(reader))); case 0b10: return(new UserData(Colorizing.ReadColor(reader))); case 0b11: return(new UserData(Ase.ReadString(reader), Colorizing.ReadColor(reader))); default: throw new ArgumentException($"Unknown user data flags encountered at {reader.BaseStream.Position - 4}."); } } }