//! Redraw the whole board void board_redraw_all () { board_redraw (main_window, NULL); }
void ui_result (global_t * gp) { int p, i; int iy[4]; char buf[1024]; int n = 0; if (flag_pause && !auto_play && !BUILD4) { wait4key (); } if (!point) make_point (); if (BUILD4) wrap_widgets (); snd (audioplay_yaku ()); flag_not_needredraw = 0; point_clear (); memcpy (hora_global, gp, sizeof (global_t)); hora_reset (); for (p = 0; p < 4; p++) { if (result[p].flag == 0) { continue; } n++; } for (p = 0; p < 4; p++) { if (result[p].flag == 0) { continue; } if (result[p].flag != RESULT_RYUKYOKU && (result[p].who != -1)) { hora_set (hora_global, result[p].who); } else { hora_set (hora_global, -1); } result_cvt_to_int (result + p, iy); pmcontainer_print (point_results, pm_result_name[result[p].flag]); for (i = 0; i < 4; i++) { integer_t color; pmcontainer_print (point_home[i], pm_home_names[i]); print_yakupoint (point_home_point[i], result[p].points[i]); widget_configure (point_home_user[i], resource_text, player[pplayer[i]].name); color = point_color (result[p].points[i]); widget_configure (point_home_user[i], resource_textfont, MEDIUMJP); widget_configure (point_home_user[i], resource_textcolor, color); { extern integer_t *tblpos; color = point_bgcolor (result[p].points[i]); widget_model_change (name_frame[tblpos[i]], color, white, white, white); } } if (result[p].fu) { widget_configure (point_fubase, resource_invisible, 0); print_yakupoint (point_fu, result[p].fu); print_yakupoint (point_fan, result[p].fan); } else { widget_configure (point_fubase, resource_invisible, 1); } #define yaku_idx(idx) \ if (!point_yaku[idx]) { goto YAKUEND; } { integer_t idx = 0; for (i = 0; i < Y_MAX; i++) { if (Y_GET (iy, i)) { char buf[128]; int len, n; yaku_idx (idx); strcpy (buf, result_str[i]); len = strlen (buf); if (buf[len - 1] == ')' && buf[len - 3] == '(') { buf[len - 3] = buf[len - 1] = 0; n = buf[len - 2] - '0'; print_yakupoint (point_yaku_point[idx], n); } else { widget_configure (point_yaku_point[idx], resource_text, ""); } widget_configure (point_yaku[idx], resource_text, buf); idx++; } } if (result[p].dora) { yaku_idx (idx); widget_configure (point_yaku[idx], resource_text, dora_str); print_yakupoint (point_yaku_point[idx], result[p].dora); idx++; } if (result[p].uradora) { yaku_idx (idx); widget_configure (point_yaku[idx], resource_text, uradora_str); print_yakupoint (point_yaku_point[idx], result[p].uradora); idx++; } if (result[p].akadora) { yaku_idx (idx); widget_configure (point_yaku[idx], resource_text, akadora_str); print_yakupoint (point_yaku_point[idx], result[p].akadora); idx++; } for (; idx < 30; idx++) { if (!point_yaku[idx]) { continue; } widget_configure (point_yaku[idx], resource_text, ""); widget_configure (point_yaku_point[idx], resource_text, ""); } } YAKUEND: draw_hora (); { extern widget_t board; if (!BUILD4) { widget_unmap (board); } widget_map (point); widget_display (point); widget_flush (point); { for (i = 0; i < 4; i++) { widget_display (name_frame[i]); widget_flush (name_frame[i]); } } if (!auto_play) wait_key (); hora_reset (); } } linepos_clear (); for (i = 0; i < 4; i++) { widget_model_change (name_frame[i], get_basiccolorpixel (), white, white, white); } if (!BUILD4) { widget_unmap (point); } else { unwrap_widgets (); } board_reset (); board_redraw (1); if (logfile) log_play (gp, logfile); }