private void rasterise(int i) {
		if (aBooleanArray1664[i]) {
			method485(i);
			return;
		}
		int x = triangleX[i];
		int y = triangleY[i];
		int z = triangleZ[i];
		Rasterizer.restrictEdges = restrictEdges[i];
		if (triangleAlpha == null)
			Rasterizer.alpha = 0;
		else
			Rasterizer.alpha = triangleAlpha[i];
		int drawType;
		if (triangleDrawType == null)
			drawType = 0;
		else
			drawType = triangleDrawType[i] & 3;
		if (drawType == 0) {
			Rasterizer.drawShadedTriangle(vertexScreenY[x], vertexScreenY[y],
					vertexScreenY[z], vertexScreenX[x], vertexScreenX[y],
					vertexScreenX[z], triangleHSLA[i], triangleHSLB[i],
					triangleHSLC[i]);
			return;
		}
		if (drawType == 1) {
			Rasterizer.drawFlatTriangle(vertexScreenY[x], vertexScreenY[y],
					vertexScreenY[z], vertexScreenX[x], vertexScreenX[y],
					vertexScreenX[z], HSLtoRGB[triangleHSLA[i]]);
			return;
		}
		if (drawType == 2) {
			int triangle = triangleDrawType[i] >> 2;
			int x2 = texturedTrianglePointsX[triangle];
			int y2 = texturedTrianglePointsY[triangle];
			int z2 = texturedTrianglePointsZ[triangle];
			Rasterizer.drawTexturedTriangle(vertexScreenY[x], vertexScreenY[y],
					vertexScreenY[z], vertexScreenX[x], vertexScreenX[y],
					vertexScreenX[z], triangleHSLA[i], triangleHSLB[i],
					triangleHSLC[i], vertexMovedX[x2], vertexMovedX[y2],
					vertexMovedX[z2], vertexMovedY[x2], vertexMovedY[y2],
					vertexMovedY[z2], vertexMovedZ[x2], vertexMovedZ[y2],
					vertexMovedZ[z2], triangleColours[i]);
			return;
		}
		if (drawType == 3) {
			int triangle = triangleDrawType[i] >> 2;
			int x2 = texturedTrianglePointsX[triangle];
			int y2 = texturedTrianglePointsY[triangle];
			int z2 = texturedTrianglePointsZ[triangle];
			Rasterizer.drawTexturedTriangle(vertexScreenY[x], vertexScreenY[y],
					vertexScreenY[z], vertexScreenX[x], vertexScreenX[y],
					vertexScreenX[z], triangleHSLA[i], triangleHSLA[i],
					triangleHSLA[i], vertexMovedX[x2], vertexMovedX[y2],
					vertexMovedX[z2], vertexMovedY[x2], vertexMovedY[y2],
					vertexMovedY[z2], vertexMovedZ[x2], vertexMovedZ[y2],
					vertexMovedZ[z2], triangleColours[i]);
		}
	}