public FCNS(IFFChunk BaseChunk) : base(BaseChunk) { FileReader Reader = new FileReader(new MemoryStream(m_Data), false); Reader.ReadInt32(); //4 bytes always set to 0. int Version = Reader.ReadInt32(); Reader.ReadInt32(); //'SNCF' uint Count = Reader.ReadUInt32(); for(int i = 0; i < Count; i++) { if(Version == 1) { FCNSConstant Constant = new FCNSConstant(); Constant.Name = Reader.ReadPaddedCString(); Constant.Value = Reader.ReadPaddedCString(); Reader.ReadPaddedCString(); //Description } else { FCNSConstant Constant = new FCNSConstant(); Constant.Name = Reader.ReadString(); Constant.Value = Reader.ReadString(); Reader.ReadString(); //Description } } Reader.Close(); m_Data = null; }
public SpriteInfo(FileReader Reader, uint Version) { if(Version == 20000 || Version == 20001) { Type = Reader.ReadInt16(); SPRChunkID = Reader.ReadInt16(); SPRFrameNum = Reader.ReadInt16(); Flags = Reader.ReadInt16(); SpriteXOffset = Reader.ReadInt16(); SpriteYOffset = Reader.ReadInt16(); ObjectZOffset = Reader.ReadFloat(); } else { SPRChunkID = Reader.ReadInt32(); SPRFrameNum = Reader.ReadInt32(); SpriteXOffset = Reader.ReadInt32(); SpriteYOffset = Reader.ReadInt32(); ObjectZOffset = Reader.ReadFloat(); Flags = Reader.ReadInt32(); if (Version == 20004) { ObjectXOffset = Reader.ReadFloat(); ObjectYOffset = Reader.ReadFloat(); } } }