Exemplo n.º 1
0
        private void ReadLump(BinaryReader binaryReader, BSPLumpInfo lump, BspLumpType lumpType)
        {
            var startOffset = binaryReader.BaseStream.Position;

            binaryReader.BaseStream.Seek(lump.offset, SeekOrigin.Begin);

            // handle lump based on lumptype given
            switch (lumpType)
            {
            case BspLumpType.LumpPlanes:
                Lumps[(int)lumpType] = ReadPlaneLump(lump, binaryReader);
                break;

            case BspLumpType.LumpVertexes:
                Lumps[(int)lumpType] = ReadVertexesLump(lump, binaryReader);
                break;

            case BspLumpType.LumpEdges:
                Lumps[(int)lumpType] = ReadEdgesLump(lump, binaryReader);
                break;

            case BspLumpType.LumpSurfEdges:
                Lumps[(int)lumpType] = ReadSurfEdgesLump(lump, binaryReader);
                break;

            case BspLumpType.LumpFaces:
                Lumps[(int)lumpType] = ReadFacesLump(lump, binaryReader);
                break;

            case BspLumpType.LumpTexInfo:
                Lumps[(int)lumpType] = ReadTexInfoLump(lump, binaryReader);
                break;

            default:
                Logging.Log($"No lump reader for {lumpType}", Logging.Severity.Medium);
                break;
            }

            // seek back to original pos
            binaryReader.BaseStream.Seek(startOffset, SeekOrigin.Begin);
        }
Exemplo n.º 2
0
 public void WriteLumpData(BspLumpType lumpType, byte[] data)
 {
     WriteLumpData((int)lumpType, data);
 }
Exemplo n.º 3
0
 /// <summary>
 /// Writes lump info
 /// </summary>
 /// <param name="lumpId">Id of lump to override</param>
 public void WriteBspLumpInfo(BspLumpType lumpId, BspLumpInfo info)
 {
     //Write lump informations
     WriteBspLumpInfo((int)lumpId, info);
 }
Exemplo n.º 4
0
 /// <summary>
 /// Calculates offset of lump
 /// </summary>
 /// <param name="lump">Lump type</param>
 /// <returns></returns>
 public static int CalculateLumpOffset(BspLumpType lump)
 {
     return(CalculateLumpOffset((int)lump));
 }
Exemplo n.º 5
0
 /// <summary>
 /// Reads lump data
 /// </summary>
 /// <param name="lumpType">Lump to read</param>
 public byte[] ReadLumpData(BspLumpType lumpType)
 {
     return(ReadLumpData((int)lumpType));
 }
Exemplo n.º 6
0
 /// <summary>
 /// Reads lump info from file
 /// </summary>
 /// <param name="lumpId">Lump type</param>
 public BspLumpInfo ReadLumpInfo(BspLumpType lumpType)
 {
     return(ReadLumpInfo((int)lumpType));
 }