+ (f & F_ERROR_LEFT) ? COL_ERROR : fg);
+ draw_update(dr, ox-g, oy, g, TILE_SIZE);
+ }
+}
+
+static void draw_adjs(drawing *dr, game_drawstate *ds, int ox, int oy,
+ unsigned int f, int bg, int fg)
+{
+ int g = GAP_SIZE, g38 = 3*(g+1)/8, g4 = (g+1)/4;
+
+ /* Draw all the adjacency bars relevant to this tile; we only have
+ * to worry about F_ADJ_RIGHT and F_ADJ_DOWN.
+ *
+ * If we _only_ have the error flag set (i.e. it's not supposed to be
+ * adjacent, but adjacent numbers were entered) draw an outline red bar.
+ */
+
+ if (f & (F_ADJ_RIGHT|F_ERROR_RIGHT)) {
+ if (f & F_ADJ_RIGHT) {
+ draw_rect(dr, ox+TILE_SIZE+g38, oy, g4, TILE_SIZE,
+ (f & F_ERROR_RIGHT) ? COL_ERROR : fg);
+ } else {
+ draw_rect_outline(dr, ox+TILE_SIZE+g38, oy, g4, TILE_SIZE, COL_ERROR);
+ }
+ } else if (bg >= 0) {
+ draw_rect(dr, ox+TILE_SIZE+g38, oy, g4, TILE_SIZE, bg);
+ }
+ draw_update(dr, ox+TILE_SIZE, oy, g, TILE_SIZE);
+
+ if (f & (F_ADJ_DOWN|F_ERROR_DOWN)) {
+ if (f & F_ADJ_DOWN) {
+ draw_rect(dr, ox, oy+TILE_SIZE+g38, TILE_SIZE, g4,
+ (f & F_ERROR_DOWN) ? COL_ERROR : fg);
+ } else {
+ draw_rect_outline(dr, ox, oy+TILE_SIZE+g38, TILE_SIZE, g4, COL_ERROR);
+ }
+ } else if (bg >= 0) {
+ draw_rect(dr, ox, oy+TILE_SIZE+g38, TILE_SIZE, g4, bg);