void tnf_deff (void) { bool blink_on = TRUE; tnf_x = 0; tnf_y = 0; timer_restart_free (GID_TNF_TIMER, TIME_4S); while (tnf_buttons_pressed < 100 && task_find_gid (GID_TNF_TIMER)) { dmd_alloc_pair_clean (); if (blink_on) { font_render_string_center (&font_mono5, 64, 4, "HIT FLIPPER BUTTONS"); blink_on = FALSE; } else blink_on = TRUE; psprintf ("%d DOINK", "%d DOINKS", tnf_buttons_pressed); font_render_string_center (&font_term6, 60 + tnf_x, 12 + tnf_y, sprintf_buffer); dmd_copy_low_to_high (); callset_invoke (score_overlay); draw_progress_bar (&tnf_progress_bar); dmd_show2 (); task_sleep (TIME_66MS); } deff_exit (); }
static void draw_file_download(struct listbox_item *item, struct listbox_context *context, int x, int y, int width) { struct file_download *file_download = item->udata; struct download *download = &file_download->download; unsigned char *stylename; struct color_pair *color; unsigned char *text; int length; int trimmedlen; int meter = DOWNLOAD_METER_WIDTH; /* We have nothing to work with */ if (width < 4) return; stylename = (item == context->box->sel) ? "menu.selected" : ((item->marked) ? "menu.marked" : "menu.normal"); color = get_bfu_color(context->term, stylename); text = get_file_download_text(item, context->term); if (!text) return; length = strlen(text); /* Show atleast the required percentage of the URI */ if (length * DOWNLOAD_URI_PERCENTAGE / 100 < width - meter - 4) { trimmedlen = int_min(length, width - meter - 4); } else { trimmedlen = int_min(length, width - 3); } draw_text(context->term, x, y, text, trimmedlen, 0, color); if (trimmedlen < length) { draw_text(context->term, x + trimmedlen, y, "...", 3, 0, color); trimmedlen += 3; } mem_free(text); if (!download->progress || download->progress->size < 0 || !is_in_state(download->state, S_TRANS) || !has_progress(download->progress)) { /* TODO: Show trimmed error message. */ return; } if (!dialog_has_refresh(context->dlg_data)) refresh_dialog(context->dlg_data, refresh_file_download, NULL); if (trimmedlen + meter >= width) return; x += width - meter; draw_progress_bar(download->progress, context->term, x, y, meter, NULL, NULL); }
void jets_hit_deff (void) { U16 fno; U16 img_start; U16 img_end; U8 x; U8 y; switch (random_scaled (3)) { case 0: img_start = IMG_FLASH_START; img_end = IMG_FLASH_END; break; default: case 1: img_start = IMG_FLASHCENTRE_START; img_end = IMG_FLASHCENTRE_END; break; case 2: img_start = IMG_FLASHLEFT_START; img_end = IMG_FLASHLEFT_END; break; } dmd_alloc_pair_clean (); for (fno = img_start; fno < img_end; fno += 2) { x = random_scaled (4); y = random_scaled (4); dmd_map_overlay (); dmd_clean_page_low (); psprintf ("1 HIT", "%d HITS", jets_scored); font_render_string_center (&font_fireball, 62 + x, 8 + y, sprintf_buffer); sprintf ("TOWNSQUARE LEVEL %d", jets_bonus_level + 1); font_render_string_center (&font_mono5, 64, 22, sprintf_buffer); dmd_text_outline (); dmd_alloc_pair (); frame_draw (fno); callset_invoke (score_overlay); dmd_overlay_outline (); draw_progress_bar (&jets_progress_bar); dmd_show2 (); task_sleep (TIME_33MS); } for (fno = 0; fno < 10; fno++) { dmd_alloc_pair_clean (); dmd_clean_page_low (); psprintf ("1 HIT", "%d HITS", jets_scored); font_render_string_center (&font_fireball, 64, 10, sprintf_buffer); sprintf ("TOWNSQUARE LEVEL %d", jets_bonus_level + 1); font_render_string_center (&font_mono5, 64, 22, sprintf_buffer); /* Copy to the high page so it doesn't look dark */ dmd_copy_low_to_high (); callset_invoke (score_overlay); draw_progress_bar (&jets_progress_bar); dmd_show2 (); task_sleep (TIME_100MS); } deff_exit (); }
static void download_dialog_layouter(struct dialog_data *dlg_data) { struct file_download *file_download = dlg_data->dlg->udata; struct terminal *term = dlg_data->win->term; int w = dialog_max_width(term); int rw = w; int x, y = 0; int url_len; unsigned char *url; struct download *download = &file_download->download; struct color_pair *dialog_text_color = get_bfu_color(term, "dialog.text"); unsigned char *msg = get_download_msg(download, term, 1, 1, "\n"); int show_meter = (download_is_progressing(download) && download->progress->size >= 0); #if CONFIG_BITTORRENT int bittorrent = (file_download->uri->protocol == PROTOCOL_BITTORRENT && (show_meter || is_in_state(download->state, S_RESUME))); #endif redraw_windows(REDRAW_BEHIND_WINDOW, dlg_data->win); file_download->dlg_data = dlg_data; if (!msg) return; url = get_uri_string(file_download->uri, URI_PUBLIC); if (!url) { mem_free(msg); return; } #ifdef CONFIG_UTF8 if (term->utf8_cp) decode_uri(url); else #endif /* CONFIG_UTF8 */ decode_uri_for_display(url); url_len = strlen(url); if (show_meter) { int_lower_bound(&w, DOWN_DLG_MIN); } dlg_format_text_do(dlg_data, url, 0, &y, w, &rw, dialog_text_color, ALIGN_LEFT, 1); y++; if (show_meter) y += 2; #if CONFIG_BITTORRENT if (bittorrent) y += 2; #endif dlg_format_text_do(dlg_data, msg, 0, &y, w, &rw, dialog_text_color, ALIGN_LEFT, 1); y++; dlg_format_buttons(dlg_data, dlg_data->widgets_data, dlg_data->number_of_widgets, 0, &y, w, &rw, ALIGN_CENTER, 1); draw_dialog(dlg_data, w, y); w = rw; if (url_len > w) { /* Truncate too long urls */ url_len = w; url[url_len] = '\0'; if (url_len > 4) { url[--url_len] = '.'; url[--url_len] = '.'; url[--url_len] = '.'; } } y = dlg_data->box.y + DIALOG_TB + 1; x = dlg_data->box.x + DIALOG_LB; dlg_format_text_do(dlg_data, url, x, &y, w, NULL, dialog_text_color, ALIGN_LEFT, 0); if (show_meter) { y++; draw_progress_bar(download->progress, term, x, y, w, NULL, NULL); y++; } #if CONFIG_BITTORRENT if (bittorrent) { y++; draw_bittorrent_piece_progress(download, term, x, y, w, NULL, NULL); y++; } #endif y++; dlg_format_text_do(dlg_data, msg, x, &y, w, NULL, dialog_text_color, ALIGN_LEFT, 0); y++; dlg_format_buttons(dlg_data, dlg_data->widgets_data, dlg_data->number_of_widgets, x, &y, w, NULL, ALIGN_CENTER, 0); mem_free(url); mem_free(msg); }