/// <summary> /// Skips to a particular part of the binary stream. /// </summary> /// <param name="length">Number of bytes to skip.</param> protected void Seek(BinaryMemoryReader reader, long length, SeekOrigin origin) { reader.Seek(length, origin); }
protected bool IsEOF(BinaryMemoryReader reader) { return(reader.PeekChar() == -1); }
protected void Seek(BinaryMemoryReader reader, long length) { Seek(reader, length, SeekOrigin.Current); }
/// <summary> /// Skips past a particular chunk. /// </summary> /// <remarks> /// Only really used during development, when logic for handling particular chunks is not yet complete. /// </remarks> protected void IgnoreCurrentChunk(BinaryMemoryReader reader) { Seek(reader, currentChunkLength - ChunkOverheadSize); }
protected ushort ReadUShort(BinaryMemoryReader reader) { return(reader.ReadUInt16()); }
/// <summary> /// Reads from the stream up to the first endline character. /// </summary> /// <returns>A string formed from characters up to the first '\n' character.</returns> protected string ReadString(BinaryMemoryReader reader) { // note: Not using Environment.NewLine here, this character is specifically used in Ogre files. return(ReadString(reader, '\n')); }
protected ulong ReadULong(BinaryMemoryReader reader) { return(reader.ReadUInt64()); }
protected uint ReadUInt(BinaryMemoryReader reader) { return(reader.ReadUInt32()); }
protected float ReadFloat(BinaryMemoryReader reader) { return(reader.ReadSingle()); }
protected bool ReadBool(BinaryMemoryReader reader) { return(reader.ReadBoolean()); }
protected SkeletonChunkID ReadChunk(BinaryMemoryReader reader) { return((SkeletonChunkID)ReadFileChunk(reader)); }