...
surface1:
x1=B1[6][0]; y01=B1[6][1]; z1=B1[6][2];
x2=B1[5][0]; y2=B1[5][1]; z2=B1[5][2];
x3=B1[4][0]; y3=B1[4][1]; z3=B1[4][2];
VisibilityTest();
if(sp>0) goto surface2;
sx1=B2[6][0]; sy1=B2[6][1];
sx2=B2[5][0]; sy2=B2[5][1];
sx3=B2[4][0]; sy3=B2[4][1];
sx4=B2[7][0]; sy4=B2[7][1];
sx5=B3[1][0]; sy5=B3[1][1];
DrawPoly();
surface2:
x1=B1[3][0]; y01=B1[3][1]; z1=B1[3][2];
x2=B1[2][0]; y2=B1[2][1]; z2=B1[2][2];
x3=B1[5][0]; y3=B1[5][1]; z3=B1[5][2];
VisibilityTest();
if(sp>0) goto surface3;
sx1=B2[3][0]; sy1=B2[3][1];
sx2=B2[2][0]; sy2=B2[2][1];
sx3=B2[5][0]; sy3=B2[5][1];
sx4=B2[6][0]; sy4=B2[6][1];
sx5=B3[2][0]; sy5=B3[2][1];
DrawPoly();
...