+ /*
+ * Next, the colour bars for orientation.
+ */
+ if (state->orientable) {
+ int xdx, xdy, ydx, ydy;
+ int cx, cy, displ, displ2;
+ switch (tile & 3) {
+ case 0:
+ xdx = 1, xdy = 0;
+ ydx = 0, ydy = 1;
+ break;
+ case 1:
+ xdx = 0, xdy = -1;
+ ydx = 1, ydy = 0;
+ break;
+ case 2:
+ xdx = -1, xdy = 0;
+ ydx = 0, ydy = -1;
+ break;
+ default /* case 3 */:
+ xdx = 0, xdy = 1;
+ ydx = -1, ydy = 0;
+ break;
+ }
+
+ cx = x + TILE_SIZE / 2;
+ cy = y + TILE_SIZE / 2;
+ displ = TILE_SIZE / 2 - HIGHLIGHT_WIDTH - 2;
+ displ2 = TILE_SIZE / 3 - HIGHLIGHT_WIDTH;
+
+ coords[0] = cx - displ * xdx + displ2 * ydx;
+ coords[1] = cy - displ * xdy + displ2 * ydy;
+ rotate(coords+0, rot);
+ coords[2] = cx + displ * xdx + displ2 * ydx;
+ coords[3] = cy + displ * xdy + displ2 * ydy;
+ rotate(coords+2, rot);
+ coords[4] = cx - displ * ydx;
+ coords[5] = cy - displ * ydy;
+ rotate(coords+4, rot);
+ draw_polygon(fe, coords, 3, TRUE, COL_LOWLIGHT_GENTLE);
+ draw_polygon(fe, coords, 3, FALSE, COL_LOWLIGHT_GENTLE);
+ }
+