Beispiel #1
0
        private bool parseMapBrush(MapEntity e)
        {
            MapBrushOld br = new MapBrushOld();

            while (p.isAtToken("}") == false)
            {
                Vec3 a, b, c;
                if (p.readBracedVec3(out a))
                {
                    showParseError("Failed to read point A of plane equation of brushside " + br.getNumSides() + " at line " + p.getCurrentLineNumber());
                    return(true);
                }
                if (p.readBracedVec3(out b))
                {
                    showParseError("Failed to read point B of plane equation of brushside " + br.getNumSides() + " at line " + p.getCurrentLineNumber());
                    return(true);
                }
                if (p.readBracedVec3(out c))
                {
                    showParseError("Failed to read point C of plane equation of brushside " + br.getNumSides() + " at line " + p.getCurrentLineNumber());
                    return(true);
                }
                string matName;
                if (p.readToken(out matName))
                {
                    showParseError("Failed to read material name of brushside " + br.getNumSides() + " at line " + p.getCurrentLineNumber());
                    return(true);
                }
                Vec2 texShift;
                if (p.readVec2(out texShift))
                {
                    showParseError("Failed to texture shift of brushside " + br.getNumSides() + " at line " + p.getCurrentLineNumber());
                    return(true);
                }
                float texRotation;
                if (p.readFloat(out texRotation))
                {
                    showParseError("Failed to texture rotation of brushside " + br.getNumSides() + " at line " + p.getCurrentLineNumber());
                    return(true);
                }
                Vec2 texScale;
                if (p.readVec2(out texScale))
                {
                    showParseError("Failed to texture scale of brushside " + br.getNumSides() + " at line " + p.getCurrentLineNumber());
                    return(true);
                }
                // used for detail flag, this is 0 for structural brushes
                // those tokens are missing in older map formats (check subterfuge.map, etc)
                int contents;
                if (p.isAtEOL() == false)
                {
                    if (p.readInt(out contents))
                    {
                        showParseError("Failed to contentFlags of brushside " + br.getNumSides() + " at line " + p.getCurrentLineNumber());
                        return(true);
                    }
                }
                else
                {
                    contents = 0;
                }
                // now texDef->flags and texDef->value
                p.skipToNextLine();
                MapBrushSideOld bs = new MapBrushSideOld();
                bs.setPlanePoints(a, b, c);
                bs.setMatName(matName);
                bs.setTexShift(texShift);
                bs.setTexScale(texScale);
                bs.setTexRotation(texRotation);
                bs.setContentFlags(contents);
                br.addSide(bs);
            }
            e.addBrush(br);
            return(false);
        }
Beispiel #2
0
 public void addSide(MapBrushSideOld ns)
 {
     sides.Add(ns);
 }