LEV.ParseSectorHeader C# (CSharp) Method

ParseSectorHeader() private method

private ParseSectorHeader ( Tokenizer, levelTokens ) : Sector,
levelTokens Tokenizer,
return Sector,
    private Sector ParseSectorHeader(Tokenizer levelTokens)
    {
        Sector sector = new Sector();

        levelTokens.EnsureNextToken("NAME");
        string sectorName = levelTokens.GetNextToken();

        if (sectorName != "AMBIENT") {
            sector.Name = sectorName;
        } else { // unnamed sector
            levelTokens.UngetToken();
        }

        levelTokens.EnsureNextToken("AMBIENT");
        sector.Ambient = levelTokens.RequireNextInt();

        levelTokens.EnsureNextToken("FLOOR");
        levelTokens.EnsureNextToken("TEXTURE");
        sector.FloorTex = levelTokens.RequireNextInt();
        sector.FloorShiftX = levelTokens.RequireNextFloat();
        sector.FloorShiftZ = levelTokens.RequireNextFloat();
        levelTokens.RequireNextInt();

        levelTokens.EnsureNextToken("FLOOR");
        levelTokens.EnsureNextToken("ALTITUDE");
        sector.FloorAlt = -levelTokens.RequireNextFloat();

        levelTokens.EnsureNextToken("CEILING");
        levelTokens.EnsureNextToken("TEXTURE");
        sector.CeilTex = levelTokens.RequireNextInt();
        sector.CeilShiftX = levelTokens.RequireNextFloat();
        sector.CeilShiftZ = levelTokens.RequireNextFloat();
        levelTokens.RequireNextInt();

        levelTokens.EnsureNextToken("CEILING");
        levelTokens.EnsureNextToken("ALTITUDE");
        sector.CeilAlt = -levelTokens.RequireNextFloat();

        levelTokens.EnsureNextToken("SECOND");
        levelTokens.EnsureNextToken("ALTITUDE");
        sector.SecondAlt = -levelTokens.RequireNextFloat();

        levelTokens.EnsureNextToken("FLAGS");
        sector.Flags0 = (Sector.EFlags0)levelTokens.RequireNextInt();
        sector.Flags1 = levelTokens.RequireNextInt();
        sector.Flags2 = levelTokens.RequireNextInt();

        levelTokens.EnsureNextToken("LAYER");
        sector.Layer = levelTokens.RequireNextInt();

        return sector;
    }