+ /*
+ * Next, the colour bars for orientation.
+ */
+ if (state->orientable) {
+ int xw, yw, swap;
+ switch (tile & 3) {
+ case 0:
+ xw = TILE_SIZE - 3 - 2*HIGHLIGHT_WIDTH;
+ yw = HIGHLIGHT_WIDTH;
+ swap = FALSE;
+ break;
+ case 1:
+ xw = HIGHLIGHT_WIDTH;
+ yw = TILE_SIZE - 3 - 2*HIGHLIGHT_WIDTH;
+ swap = FALSE;
+ break;
+ case 2:
+ xw = TILE_SIZE - 3 - 2*HIGHLIGHT_WIDTH;
+ yw = HIGHLIGHT_WIDTH;
+ swap = TRUE;
+ break;
+ default /* case 3 */:
+ xw = HIGHLIGHT_WIDTH;
+ yw = TILE_SIZE - 3 - 2*HIGHLIGHT_WIDTH;
+ swap = TRUE;
+ break;
+ }
+
+ coords[0] = x + HIGHLIGHT_WIDTH + 1;
+ coords[1] = y + HIGHLIGHT_WIDTH + 1;
+ rotate(coords+0, rot);
+ coords[2] = x + HIGHLIGHT_WIDTH + 1 + xw;
+ coords[3] = y + HIGHLIGHT_WIDTH + 1;
+ rotate(coords+2, rot);
+ coords[4] = x + HIGHLIGHT_WIDTH + 1 + xw;
+ coords[5] = y + HIGHLIGHT_WIDTH + 1 + yw;
+ rotate(coords+4, rot);
+ coords[6] = x + HIGHLIGHT_WIDTH + 1;
+ coords[7] = y + HIGHLIGHT_WIDTH + 1 + yw;
+ rotate(coords+6, rot);
+ draw_polygon(fe, coords, 4, TRUE, swap ? COL_BOTTOM : COL_TOP);
+ draw_polygon(fe, coords, 4, FALSE, swap ? COL_BOTTOM : COL_TOP);
+
+ coords[0] = x + TILE_SIZE - 2 - HIGHLIGHT_WIDTH;
+ coords[1] = y + TILE_SIZE - 2 - HIGHLIGHT_WIDTH;
+ rotate(coords+0, rot);
+ coords[2] = x + TILE_SIZE - 2 - HIGHLIGHT_WIDTH - xw;
+ coords[3] = y + TILE_SIZE - 2 - HIGHLIGHT_WIDTH;
+ rotate(coords+2, rot);
+ coords[4] = x + TILE_SIZE - 2 - HIGHLIGHT_WIDTH - xw;
+ coords[5] = y + TILE_SIZE - 2 - HIGHLIGHT_WIDTH - yw;
+ rotate(coords+4, rot);
+ coords[6] = x + TILE_SIZE - 2 - HIGHLIGHT_WIDTH;
+ coords[7] = y + TILE_SIZE - 2 - HIGHLIGHT_WIDTH - yw;
+ rotate(coords+6, rot);
+ draw_polygon(fe, coords, 4, TRUE, swap ? COL_TOP : COL_BOTTOM);
+ draw_polygon(fe, coords, 4, FALSE, swap ? COL_TOP : COL_BOTTOM);
+ }
+