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); }
public void addSide(MapBrushSideOld ns) { sides.Add(ns); }