public static FLCHeader ReadFromStream(BinaryReader reader) { FLCHeader result = new FLCHeader(); result.size = reader.ReadInt32(); result.type = reader.ReadInt16(); result.frames = reader.ReadInt16(); result.width = reader.ReadInt16(); result.height = reader.ReadInt16(); result.depth = reader.ReadInt16(); result.flags = reader.ReadInt16(); result.speed = reader.ReadInt32(); result.reserved1 = reader.ReadInt16(); result.created = reader.ReadInt32(); result.creator = reader.ReadInt32(); result.updated = reader.ReadInt32(); result.updater = reader.ReadInt32(); result.aspect_dx = reader.ReadInt16(); result.aspect_dy = reader.ReadInt16(); result.ext_flags = reader.ReadInt16(); result.keyframes = reader.ReadInt16(); result.totalframes = reader.ReadInt16(); result.req_memory = reader.ReadInt32(); result.max_regions = reader.ReadInt16(); result.transp_num = reader.ReadInt16(); result.reserved2 = reader.ReadBytes(24); result.oframe1 = reader.ReadInt32(); result.oframe2 = reader.ReadInt32(); result.reserved3 = reader.ReadBytes(40); return result; }
public FLCFile(Stream setStream) { stream = setStream; header = null; ShouldLoop = true; IsPlaying = false; IsPaused = false; PauseAfterFirstFrame = false; currentFrame = null; currentPalette = null; }
public bool Open() { reader = new BinaryReader (stream); header = FLCHeader.ReadFromStream (reader); if (header.type != unchecked((short)0xAF12)) throw new Exception ("Can only open FLC videos (Type 0xAF12)"); currentFrame = new FLCFrameBuffer (this); return true; }