void PrintSubTree(FILE *OutFile, TreeNode Node, int Indent) { int i,itsrank,itslocation; itsrank = Rank(Node); fprintf(OutFile, "[%5d] ", Node); for (i=1; i <= Indent; i++) fprintf(OutFile,". "); Write_String(OutFile, NodeName(Node)); fprintf(OutFile ,"(%1d)", itsrank); itslocation = SourceLocation(Node); if(itslocation!=UndefinedString) { fprintf (OutFile, " @ "); Write_String(OutFile, itslocation); } if (Decoration(Node) != 0) fprintf(OutFile, " Decoration: %1d", Decoration(Node)); fprintf(OutFile,"\n"); for (i=1; i <= itsrank; i++) PrintSubTree (OutFile, Child(Node, i), Indent+1); }
void QSGTextNode::addTextLayout(const QPointF &position, QTextLayout *textLayout, const QColor &color, QSGText::TextStyle style, const QColor &styleColor) { QList<QGlyphRun> glyphsList(textLayout->glyphRuns()); QSGGlyphNode *prevNode = 0; QFont font = textLayout->font(); qreal underlinePosition, ascent, lineThickness; int decorations = NoDecoration; decorations |= (font.underline() ? Underline : 0); decorations |= (font.overline() ? Overline : 0); decorations |= (font.strikeOut() ? StrikeOut : 0); underlinePosition = ascent = lineThickness = 0; for (int i=0; i<glyphsList.size(); ++i) { QGlyphRun glyphs = glyphsList.at(i); QRawFont rawfont = glyphs.rawFont(); prevNode = addGlyphs(position + QPointF(0, rawfont.ascent()), glyphs, color, style, styleColor); if (decorations) { qreal rawAscent = rawfont.ascent(); if (decorations & Underline) { ascent = qMax(ascent, rawAscent); qreal pos = rawfont.underlinePosition(); if (pos > underlinePosition) { underlinePosition = pos; // take line thickness from the rawfont with maximum underline // position in this case lineThickness = rawfont.lineThickness(); } } else { // otherwise it's strike out or overline, we take line thickness // from the rawfont with maximum ascent if (rawAscent > ascent) { ascent = rawAscent; lineThickness = rawfont.lineThickness(); } } } } if (decorations) { addTextDecorations(Decoration(decorations), position + QPointF(0, ascent), color, textLayout->boundingRect().width(), lineThickness, underlinePosition, ascent); } }
void QSGTextNode::addTextBlock(const QPointF &position, QTextDocument *textDocument, const QTextBlock &block, const QColor &overrideColor, QSGText::TextStyle style, const QColor &styleColor) { if (!block.isValid()) return; QPointF blockPosition = textDocument->documentLayout()->blockBoundingRect(block).topLeft(); QTextBlock::iterator it = block.begin(); while (!it.atEnd()) { QTextFragment fragment = it.fragment(); if (!fragment.text().isEmpty()) { QTextCharFormat charFormat = fragment.charFormat(); QColor color = overrideColor.isValid() ? overrideColor : charFormat.foreground().color(); QList<QGlyphRun> glyphsList = fragment.glyphRuns(); for (int i=0; i<glyphsList.size(); ++i) { QGlyphRun glyphs = glyphsList.at(i); QRawFont font = glyphs.rawFont(); QSGGlyphNode *glyphNode = addGlyphs(position + blockPosition + QPointF(0, font.ascent()), glyphs, color, style, styleColor); int decorations = (glyphs.overline() ? Overline : 0) | (glyphs.strikeOut() ? StrikeOut : 0) | (glyphs.underline() ? Underline : 0); if (decorations) { QPointF baseLine = glyphNode->baseLine(); qreal width = glyphNode->boundingRect().width(); addTextDecorations(Decoration(decorations), baseLine, color, width, font.lineThickness(), font.underlinePosition(), font.ascent()); } } } ++it; } }
func Initialize() { DrawMaterialQuad("Tunnel",1378,1327-5,1860,1327-5,1860,1330,1387,1330,1); for(var i = 1380; i<=1800; i+=28) CreateObjectAbove(Dynamite,i,1328); Sound("BirdsLoop",true,100,nil,+1); Cloud->Place(40); // Create the parkour goal. var goal = CreateObject(Goal_Parkour, 0, 0, NO_OWNER); var mode = PARKOUR_CP_Respawn | PARKOUR_CP_Ordered | PARKOUR_CP_Team; goal->SetStartpoint(20, 1000); goal->AddCheckpoint(760, 950, mode); goal->AddCheckpoint(400, 660, mode); goal->AddCheckpoint(870, 460, mode); goal->AddCheckpoint(1665, 1070, mode); goal->AddCheckpoint(1485, 800, mode); goal->AddCheckpoint(1735, 1410, mode); goal->AddCheckpoint(2110, 1180, mode); goal->AddCheckpoint(3350, 1240, mode); goal->AddCheckpoint(3040, 720, mode); goal->AddCheckpoint(2530, 520, mode); goal->AddCheckpoint(2150, 510, mode); goal->AddCheckpoint(2000, 200, mode); goal->AddCheckpoint(3090, 300, mode); var c=goal->AddCheckpoint(1000, 100, mode); c->SetCPSize(40); var door=CreateObjectAbove(StoneDoor, 135, 60, NO_OWNER); door->CloseDoor(); AddEffect("AutoOpen",door,100,100); goal->SetFinishpoint(100, 150, true); //Items CreateObjectAbove(Dynamite,1904,878); CreateObjectAbove(Dynamite,1905,878); CreateObjectAbove(Dynamite,1906,878); CreateObjectAbove(Dynamite,2567,918); CreateObjectAbove(Dynamite,2568,918); CreateObjectAbove(Dynamite,2569,918); //PlaceEdges(); Doors(); Decoration(); DrawMaterialQuad("Tunnel-brickback",339,687,350,687,350,761,339,761); DrawMaterialQuad("Tunnel-brickback",1889,866,1955,866,1955,882,1889,882); DrawMaterialQuad("Tunnel-brickback",1920,874,1955,874,1930,1000,1920,1000); DrawMaterialQuad("Tunnel-brickback",1920,1000,1930,1000,1970,1100,1960,1100); DrawMaterialQuad("Tunnel-brickback",1960,1100,1970,1100,1930,1201,1919,1201); DrawMaterialQuad("Tunnel-brickback",2549,907,2590,907,2590,920,2549,920); DrawMaterialQuad("Tunnel-brickback",2549,920,2560,920,2560,1000,2550,1000); DrawMaterialQuad("Tunnel-brickback",2550,1000,2560,1000,2720,1160,2710,1160); DrawMaterialQuad("Tunnel-brickback",2710,1160,2720,1160,2710,1190,2700,1190); DrawMaterialQuad("Tunnel-brickback",2680,1185,2750,1185,2750,1195,2680,1195); DrawMaterialQuad("Tunnel-brickback",2737,1195,2750,1190,2775,1255,2765,1255); AddEffect("DynamiteEruption",nil,100,130); return 1; }