+ for (j = 0; j < NSCORE - 1; j++)
+ time_coin[j] = gui_count(md, 1000, GUI_SML, 0);
+
+ time_coin[j++] = gui_count(md, 1000, GUI_SML, GUI_SW);
+
+ if (e)
+ {
+ gui_space(md);
+ time_coin[j++] = gui_count(md, 1000, GUI_SML, GUI_LFT);
+ }
+ }
+ }
+ }
+ gui_filler(jd);
+ }
+}
+
+/* Set the Best Times top three list values. */
+
+static void set_best_times(const struct score *s, int hilight, int goal)
+{
+ const char *name;
+ int j;
+
+ gui_set_label(time_label, goal ? _("Unlock Goal") : _("Best Times"));
+
+ if (s == NULL)
+ {
+ for (j = 0; j < NSCORE + time_extra_row ; j++)
+ {
+ gui_set_clock(time_time[j], -1);
+ gui_set_label(time_name[j], "");
+ gui_set_count(time_coin[j], -1);
+ }
+ }
+ else
+ {
+ for (j = 0; j < NSCORE + time_extra_row; j++)
+ {
+ name = s->player[j];
+
+ if (j == hilight)
+ {
+ if (j < NSCORE)
+ gui_set_color(time_name[j], gui_grn, gui_grn);
+ else
+ gui_set_color(time_name[j], gui_red, gui_red);
+ }
+ else
+ gui_set_color(time_name[j], gui_yel, gui_wht);
+
+ gui_set_clock(time_time[j], s->timer[j]);
+ gui_set_label(time_name[j], is_special_name(name) ? _(name) : name);
+ gui_set_count(time_coin[j], s->coins[j]);
+ }
+ }
+}
+
+/*---------------------------------------------------------------------------*/
+
+static int score_type = GUI_MOST_COINS;
+
+void gui_score_board(int id, unsigned int types, int e, int h)
+{
+ int jd, kd, ld;
+
+ assert((types & GUI_MOST_COINS) == GUI_MOST_COINS ||
+ (types & GUI_BEST_TIMES) == GUI_BEST_TIMES ||
+ (types & GUI_UNLOCK_GOAL) == GUI_UNLOCK_GOAL );
+
+ /* Make sure current score type matches the spec. */