Code:
private void rasterize(int triPtr) {
if (aBooleanArray1664[triPtr]) {
method485(triPtr);
return;
}
int tA = triangleA[triPtr];
int tB = triangleB[triPtr];
int tC = triangleC[triPtr];
Rasterizer.restrict_edges = aBooleanArray1663[triPtr];
if (triangleAlpha == null)
Rasterizer.alpha = 0;
else
Rasterizer.alpha = triangleAlpha[triPtr];
int triangleDrawType;
if (this.triangleDrawType == null)
triangleDrawType = 0;
else
triangleDrawType = this.triangleDrawType[triPtr] & 3;
if (triangleDrawType == 0) {
Rasterizer.drawShadedTriangle(vertexSY[tA], vertexSY[tB], vertexSY[tC], vertexSX[tA], vertexSX[tB], vertexSX[tC], triangleHslA[triPtr], triangleHslB[triPtr], triangleHslC[triPtr]);
return;
}
if (triangleDrawType == 1) {
Rasterizer.drawFlatTriangle(vertexSY[tA], vertexSY[tB], vertexSY[tC], vertexSX[tA], vertexSX[tB], vertexSX[tC], HSL2RGB[triangleHslA[triPtr]]);
return;
}
if (triangleDrawType == 2) {
int textriPtr = this.triangleDrawType[triPtr] >> 2;
int tP = triPIndex[textriPtr];
int tM = triMIndex[textriPtr];
int tN = triNIndex[textriPtr];
Rasterizer.drawTexturedTriangle(vertexSY[tA], vertexSY[tB], vertexSY[tC], vertexSX[tA], vertexSX[tB], vertexSX[tC], triangleHslA[triPtr], triangleHslB[triPtr], triangleHslC[triPtr], vertexMvX[tP], vertexMvX[tM], vertexMvX[tN], vertexMvY[tP], vertexMvY[tM], vertexMvY[tN], vertexMvZ[tP], vertexMvZ[tM], vertexMvZ[tN], triangleColourOrTexture[triPtr]);
return;
}
if (triangleDrawType == 3) {
int k1 = this.triangleDrawType[triPtr] >> 2;
int i2 = triPIndex[k1];
int k2 = triMIndex[k1];
int i3 = triNIndex[k1];
Rasterizer.drawTexturedTriangle(vertexSY[tA], vertexSY[tB], vertexSY[tC], vertexSX[tA], vertexSX[tB], vertexSX[tC], triangleHslA[triPtr], triangleHslA[triPtr], triangleHslA[triPtr], vertexMvX[i2], vertexMvX[k2], vertexMvX[i3], vertexMvY[i2], vertexMvY[k2], vertexMvY[i3], vertexMvZ[i2], vertexMvZ[k2], vertexMvZ[i3], triangleColourOrTexture[triPtr]);
}
}