void ui_draw_radio( UI_DIALOG *dlg, UI_GADGET_RADIO * radio ) { #if 0 //ndef OGL if ((radio->status==1) || (radio->position != radio->oldposition)) #endif { radio->status = 0; gr_set_current_canvas( radio->canvas ); if (dlg->keyboard_focus_gadget == (UI_GADGET *) radio) gr_set_fontcolor(CRED, -1); else gr_set_fontcolor(CBLACK, -1); if (radio->position == 0 ) { ui_draw_box_out( 0, 0, radio->width-1, radio->height-1 ); if (radio->flag) ui_string_centered(Middle(radio->width), Middle(radio->height), "O"); else ui_string_centered(Middle(radio->width), Middle(radio->height), " "); } else { ui_draw_box_in( 0, 0, radio->width-1, radio->height-1 ); if (radio->flag) ui_string_centered(Middle(radio->width) + 1, Middle(radio->height) + 1, "O"); else ui_string_centered(Middle(radio->width) + 1, Middle(radio->height) + 1, " "); } gr_ustring( radio->width+4, 2, radio->text ); } }
void player_dead_message(void) { if (!(Game_mode & GM_CAPTURE)) { if (Player_exploded) { if ( Players[Player_num].lives < 2 ) { int x, y, w, h, aw; gr_set_curfont( HUGE_FONT ); gr_get_string_size( TXT_GAME_OVER, &w, &h, &aw ); w += 20; h += 8; x = (grd_curcanv->cv_bitmap.bm_w - w ) / 2; y = (grd_curcanv->cv_bitmap.bm_h - h ) / 2; gr_settransblend(14, GR_BLEND_NORMAL); gr_setcolor( BM_XRGB(0,0,0) ); gr_rect( x, y, x+w, y+h ); gr_settransblend(GR_FADE_OFF, GR_BLEND_NORMAL); gr_printf(0x8000, (GHEIGHT - h)/2 + h/8, TXT_GAME_OVER ); } gr_set_curfont( GAME_FONT ); if (HUD_color == -1) HUD_color = BM_XRGB(0,28,0); gr_set_fontcolor( HUD_color, -1); gr_printf(0x8000, GHEIGHT-LINE_SPACING, TXT_PRESS_ANY_KEY); } } extern int player_spawn_timer; if (Game_mode & GM_CAPTURE) { if (Player_exploded) { if ( Players[Player_num].lives < 2 ) { int x, y, w, h, aw; gr_set_curfont( HUGE_FONT ); gr_get_string_size( TXT_GAME_OVER, &w, &h, &aw ); w += 20; h += 8; x = (grd_curcanv->cv_bitmap.bm_w - w ) / 2; y = (grd_curcanv->cv_bitmap.bm_h - h ) / 2; gr_settransblend(14, GR_BLEND_NORMAL); gr_setcolor( BM_XRGB(0,0,0) ); gr_rect( x, y, x+w, y+h ); gr_settransblend(GR_FADE_OFF, GR_BLEND_NORMAL); gr_printf(0x8000, (GHEIGHT - h)/2 + h/8, TXT_GAME_OVER ); } gr_set_curfont( GAME_FONT ); if (HUD_color == -1) HUD_color = BM_XRGB(0,28,0); gr_set_fontcolor( HUD_color, -1); if (((player_spawn_timer + Netgame.RespawnTime*5) > f2i(Players[Player_num].time_level)) && force_respawn == 0) gr_printf(0x8000, GHEIGHT-LINE_SPACING, "You must wait %d seconds to respawn.", (player_spawn_timer + (Netgame.RespawnTime*5)) - f2i(Players[Player_num].time_level)); if (((player_spawn_timer + Netgame.RespawnTime*5) > f2i(Players[Player_num].time_level)) && force_respawn == 1) gr_printf(0x8000, GHEIGHT-LINE_SPACING, "You will respawn in %d seconds.", (player_spawn_timer + (Netgame.RespawnTime*5)) - f2i(Players[Player_num].time_level)); if ((player_spawn_timer + Netgame.RespawnTime*5) <= f2i(Players[Player_num].time_level)) gr_printf(0x8000, GHEIGHT-LINE_SPACING, "Press any key or button to respawn."); } } }
void ui_draw_radio( UI_GADGET_RADIO * radio ) { if ((radio->status==1) || (radio->position != radio->oldposition)) { radio->status = 0; ui_mouse_hide(); gr_set_current_canvas( radio->canvas ); if (radio->flag) gr_set_fontcolor( CRED, -1 ); else gr_set_fontcolor( CBLACK, -1 ); if (radio->position == 0 ) { ui_draw_box_out( 0, 0, radio->width-1, radio->height-1 ); ui_string_centered( Middle(radio->width), Middle(radio->height), "þ" ); } else { ui_draw_box_in( 0, 0, radio->width-1, radio->height-1 ); ui_string_centered( Middle(radio->width)+1, Middle(radio->height)+1, "þ" ); } if (CurWindow->keyboard_focus_gadget == (UI_GADGET *)radio) gr_set_fontcolor( CRED, CWHITE ); else gr_set_fontcolor( CBLACK, CWHITE ); gr_ustring( radio->width+4, 2, radio->text ); ui_mouse_show(); } }
void kmatrix_redraw_coop() { int i, color; int sorted[MAX_PLAYERS]; multi_sort_kill_list(); grd_curcanv->cv_font = MEDIUM3_FONT; gr_string( 0x8000, FSPACY(10), "COOPERATIVE SUMMARY"); grd_curcanv->cv_font = GAME_FONT; multi_get_kill_list(sorted); kmatrix_draw_coop_names(sorted); for (i=0; i<N_players; i++ ) { color = sorted[i]; if (Players[sorted[i]].connected==CONNECT_DISCONNECTED) gr_set_fontcolor(gr_find_closest_color(31,31,31),-1); else gr_set_fontcolor(BM_XRGB(player_rgb[color].r,player_rgb[color].g,player_rgb[color].b),-1 ); kmatrix_draw_coop_item( i, sorted ); } gr_palette_load(gr_palette); }
void ui_draw_checkbox( UI_GADGET_CHECKBOX * checkbox ) { if ((checkbox->status==1) || (checkbox->position != checkbox->oldposition)) { checkbox->status = 0; ui_mouse_hide(); gr_set_current_canvas( checkbox->canvas ); if (CurWindow->keyboard_focus_gadget == (UI_GADGET *)checkbox) gr_set_fontcolor( CRED, -1 ); else gr_set_fontcolor( CBLACK, -1 ); if (checkbox->position == 0 ) { ui_draw_box_out( 0, 0, checkbox->width-1, checkbox->height-1 ); if (checkbox->flag) ui_string_centered( Middle(checkbox->width), Middle(checkbox->height), "X" ); else ui_string_centered( Middle(checkbox->width), Middle(checkbox->height), " " ); } else { ui_draw_box_in( 0, 0, checkbox->width-1, checkbox->height-1 ); if (checkbox->flag) ui_string_centered( Middle(checkbox->width)+1, Middle(checkbox->height)+1, "X" ); else ui_string_centered( Middle(checkbox->width)+1, Middle(checkbox->height)+1, " " ); } gr_ustring( checkbox->width+4, 2, checkbox->text ); ui_mouse_show(); } }
void kmatrix_draw_names(int *sorted) { int j, x, color; if(Netgame.FairColors) selected_player_rgb = player_rgb_all_blue; else if(Netgame.BlackAndWhitePyros) selected_player_rgb = player_rgb_alt; else selected_player_rgb = player_rgb; for (j=0; j<N_players; j++) { if (Game_mode & GM_TEAM) color = get_team(sorted[j]); else color = sorted[j]; x = FSPACX (70 + CENTERING_OFFSET(N_players) + j*25); if (Players[sorted[j]].connected==CONNECT_DISCONNECTED) gr_set_fontcolor(gr_find_closest_color(31,31,31),-1); else gr_set_fontcolor(BM_XRGB(selected_player_rgb[color].r,selected_player_rgb[color].g,selected_player_rgb[color].b),-1 ); gr_printf( x, FSPACY(40), "%c", Players[sorted[j]].callsign[0] ); } x = FSPACX(72 + CENTERING_OFFSET(N_players) + N_players*25); gr_set_fontcolor( BM_XRGB(31,31,31),-1 ); gr_string( x, FSPACY(40), "K/E"); }
// ----------------------------------------------------------------------------- // Returns char width. // If show_robot_flag set, then show a frame of the spinning robot. int show_char_delay(char the_char, int delay, int robot_num, int cursor_flag) { int w, h, aw; char message[2]; fix start_time; int i; start_time = timer_get_fixed_seconds(); message[0] = the_char; message[1] = 0; gr_get_string_size(message, &w, &h, &aw ); Assert((Current_color >= 0) && (Current_color < MAX_BRIEFING_COLORS)); // Draw cursor if there is some delay and caller says to draw cursor //added/changed on 9/13/98 by adb to fix messy code and add gr_update if (delay) { if (cursor_flag && delay) { gr_set_fontcolor(Briefing_foreground_colors[Current_color], -1); gr_printf(Briefing_text_x+1, Briefing_text_y, "_" ); } for (i=0; i<2; i++) { if (robot_num != -1) show_spinning_robot_frame(robot_num); show_bitmap_frame(); gr_update(); while (timer_get_fixed_seconds() < start_time + delay/2) ; start_time = timer_get_fixed_seconds(); } // Erase cursor if (cursor_flag) { gr_set_fontcolor(Erase_color, -1); gr_printf(Briefing_text_x+1, Briefing_text_y, "_" ); } } //end additions/changed - adb // Draw the character gr_set_fontcolor(Briefing_background_colors[Current_color], -1); gr_printf(Briefing_text_x, Briefing_text_y, message ); gr_set_fontcolor(Briefing_foreground_colors[Current_color], -1); gr_printf(Briefing_text_x+1, Briefing_text_y, message ); // if (the_char != ' ') // if (!digi_is_sound_playing(231)) // digi_play_sample( 231, F1_0 ); return w; }
void kmatrix_draw_coop_names(int *sorted) { sorted=sorted; gr_set_fontcolor( BM_XRGB(63,31,31),-1 ); gr_string( CENTERSCREEN, FSPACY(40), "SCORE"); gr_set_fontcolor( BM_XRGB(63,31,31),-1 ); gr_string( CENTERSCREEN+FSPACX(50), FSPACY(40), "DEATHS"); }
void print_status_bar( char message[DIAGNOSTIC_MESSAGE_MAX] ) { int w,h,aw; gr_set_current_canvas( NULL ); gr_set_curfont(editor_font); gr_set_fontcolor( CBLACK, CGREY ); gr_get_string_size( message, &w, &h, &aw ); gr_string( 4, 583, message ); gr_set_fontcolor( CBLACK, CWHITE ); gr_setcolor( CGREY ); gr_rect( 4+w, 583, 799, 599 ); }
void kmatrix_redraw(kmatrix_screen *km) { int i, color; int sorted[MAX_PLAYERS]; gr_set_current_canvas(NULL); show_fullscr(&km->background); if(Netgame.FairColors) selected_player_rgb = player_rgb_all_blue; else if(Netgame.BlackAndWhitePyros) selected_player_rgb = player_rgb_alt; else selected_player_rgb = player_rgb; if (Game_mode & GM_MULTI_COOP) { kmatrix_redraw_coop(); } else { multi_sort_kill_list(); grd_curcanv->cv_font = MEDIUM3_FONT; if (Game_mode & GM_CAPTURE) gr_string( 0x8000, FSPACY(10), "CAPTURE THE FLAG SUMMARY"); else if (Game_mode & GM_HOARD) gr_string( 0x8000, FSPACY(10), "HOARD SUMMARY"); else gr_string( 0x8000, FSPACY(10), TXT_KILL_MATRIX_TITLE); grd_curcanv->cv_font = GAME_FONT; multi_get_kill_list(sorted); kmatrix_draw_names(sorted); for (i=0; i<N_players; i++ ) { if (Game_mode & GM_TEAM) color = get_team(sorted[i]); else color = sorted[i]; if (Players[sorted[i]].connected==CONNECT_DISCONNECTED) gr_set_fontcolor(gr_find_closest_color(31,31,31),-1); else gr_set_fontcolor(BM_XRGB(selected_player_rgb[color].r,selected_player_rgb[color].g,selected_player_rgb[color].b),-1 ); kmatrix_draw_item( i, sorted ); } } gr_palette_load(gr_palette); }
void kmatrix_draw_coop_item( int i, int *sorted ) { int x, y; y = FSPACY(50+i*9); gr_printf( FSPACX(CENTERING_OFFSET(N_players)), y, "%s", Players[sorted[i]].callsign ); x = CENTERSCREEN; gr_set_fontcolor( BM_XRGB(60,40,10),-1 ); gr_printf( x, y, "%d", Players[sorted[i]].score ); x = CENTERSCREEN+FSPACX(50); gr_set_fontcolor( BM_XRGB(60,40,10),-1 ); gr_printf( x, y, "%d", Players[sorted[i]].net_killed_total); }
// ----------------------------------------------------------------------------- void flash_cursor(int cursor_flag) { if (cursor_flag == 0) return; if ((timer_get_fixed_seconds() % (F1_0/2) ) > (F1_0/4)) gr_set_fontcolor(Briefing_foreground_colors[Current_color], -1); else gr_set_fontcolor(Erase_color, -1); gr_printf(Briefing_text_x+1, Briefing_text_y, "_" ); }
void kmatrix_draw_item( int i, int *sorted ) { int j, x, y; char temp[10]; y = FSPACY(50+i*9); gr_printf( FSPACX(CENTERING_OFFSET(N_players)), y, "%s", Players[sorted[i]].callsign ); for (j=0; j<N_players; j++) { x = FSPACX(70 + CENTERING_OFFSET(N_players) + j*25); if (sorted[i]==sorted[j]) { if (kill_matrix[sorted[i]][sorted[j]] == 0) { gr_set_fontcolor( BM_XRGB(10,10,10),-1 ); gr_printf( x, y, "%d", kill_matrix[sorted[i]][sorted[j]] ); } else { gr_set_fontcolor( BM_XRGB(25,25,25),-1 ); gr_printf( x, y, "-%d", kill_matrix[sorted[i]][sorted[j]] ); } } else { if (kill_matrix[sorted[i]][sorted[j]] <= 0) { gr_set_fontcolor( BM_XRGB(10,10,10),-1 ); gr_printf( x, y, "%d", kill_matrix[sorted[i]][sorted[j]] ); } else { gr_set_fontcolor( BM_XRGB(25,25,25),-1 ); gr_printf( x, y, "%d", kill_matrix[sorted[i]][sorted[j]] ); } } } if (Players[sorted[i]].net_killed_total+Players[sorted[i]].net_kills_total==0) sprintf (temp,"NA"); else sprintf (temp,"%d%%",(int)((float)((float)Players[sorted[i]].net_kills_total/((float)Players[sorted[i]].net_killed_total+(float)Players[sorted[i]].net_kills_total))*100.0)); x = FSPACX(60 + CENTERING_OFFSET(N_players) + N_players*25); gr_set_fontcolor( BM_XRGB(25,25,25),-1 ); gr_printf( x ,y,"%4d/%s",Players[sorted[i]].net_kills_total,temp); }
void game_draw_multi_message() { if ( (Game_mode&GM_MULTI) && (multi_sending_message[Player_num])) { gr_set_curfont(GAME_FONT); gr_set_fontcolor(BM_XRGB(0,63,0),-1); gr_printf(0x8000, (LINE_SPACING*5)+FSPACY(1), "%s: %s_", TXT_MESSAGE, Network_message ); } if ( (Game_mode&GM_MULTI) && (multi_defining_message)) { gr_set_curfont(GAME_FONT); gr_set_fontcolor(BM_XRGB(0,63,0),-1); gr_printf(0x8000, (LINE_SPACING*5)+FSPACY(1), "%s #%d: %s_", TXT_MACRO, multi_defining_message, Network_message ); } }
void texpage_init( UI_WINDOW * win ) { int i; ui_add_gadget_button( win, TMAPCURBOX_X + 00, TMAPCURBOX_Y - 24, 30, 20, "<<", texpage_goto_prev ); ui_add_gadget_button( win, TMAPCURBOX_X + 32, TMAPCURBOX_Y - 24, 30, 20, ">>", texpage_goto_next ); ui_add_gadget_button( win, TMAPCURBOX_X + 00, TMAPCURBOX_Y - 48, 15, 20, "T", texpage_goto_first ); ui_add_gadget_button( win, TMAPCURBOX_X + 17, TMAPCURBOX_Y - 48, 15, 20, "M", texpage_goto_metals ); ui_add_gadget_button( win, TMAPCURBOX_X + 34, TMAPCURBOX_Y - 48, 15, 20, "L", texpage_goto_lights ); ui_add_gadget_button( win, TMAPCURBOX_X + 51, TMAPCURBOX_Y - 48, 15, 20, "E", texpage_goto_effects ); for (i=0;i<TMAPS_PER_PAGE;i++) TmapBox[i] = ui_add_gadget_userbox( win, TMAPBOX_X + (i/3)*(2+TMAPBOX_W), TMAPBOX_Y + (i%3)*(2+TMAPBOX_H), TMAPBOX_W, TMAPBOX_H); TmapCurrent = ui_add_gadget_userbox( win, TMAPCURBOX_X, TMAPCURBOX_Y, 64, 64 ); TmapnameCanvas = gr_create_sub_canvas(&grd_curscreen->sc_canvas, TMAPCURBOX_X , TMAPCURBOX_Y + TMAPBOX_H + 10, 100, 20); gr_set_current_canvas( TmapnameCanvas ); gr_set_curfont( ui_small_font ); gr_set_fontcolor( CBLACK, CWHITE ); texpage_redraw(); // Don't reset the current tmap every time we go back to the editor. // CurrentTmap = TexturePage*TMAPS_PER_PAGE; // CurrentTexture = TmapList[CurrentTmap]; texpage_show_current(); }
//print to canvas & double height grs_canvas *print_to_canvas(char *s,grs_font *font, int fc, int bc) { int y; ubyte *data; int rs; grs_canvas *temp_canv,*save_canv; save_canv = grd_curcanv; temp_canv = gr_create_canvas(font->ft_w*strlen(s),font->ft_h*2); gr_set_current_canvas(temp_canv); gr_set_curfont(font); gr_clear_canvas(255); //trans color gr_set_fontcolor(fc,bc); gr_printf(0,0,s); //now double it, since we're drawing to 400-line modex screen data = temp_canv->cv_bitmap.bm_data; rs = temp_canv->cv_bitmap.bm_rowsize; for (y=temp_canv->cv_bitmap.bm_h/2;y--;) { memcpy(data+(rs*y*2),data+(rs*y),temp_canv->cv_bitmap.bm_w); memcpy(data+(rs*(y*2+1)),data+(rs*y),temp_canv->cv_bitmap.bm_w); } gr_set_current_canvas(save_canv); return temp_canv; }
void ui_init() { grs_font * org_font; if (Initialized) return; Initialized = 1; org_font = grd_curcanv->cv_font; ui_small_font = gr_init_font( "pc6x8.fnt" ); grd_curcanv->cv_font =org_font; CBLACK = gr_find_closest_color( 1, 1, 1 ); CGREY = gr_find_closest_color( 45, 45, 45 ); CWHITE = gr_find_closest_color( 50, 50, 50 ); CBRIGHT = gr_find_closest_color( 58, 58, 58 ); CRED = gr_find_closest_color( 63, 0, 0 ); //key_init(); gr_set_fontcolor( CBLACK, CWHITE ); ui_pad_init(); atexit(ui_close ); }
int ui_init() { if (Initialized) return 1; const grs_font *org_font = grd_curcanv->cv_font; ui_small_font = gr_init_font(*grd_curcanv, "pc6x8.fnt"); if (!ui_small_font) { Warning("Could not find pc6x8.fnt"); return 0; } grd_curcanv->cv_font =org_font; CBLACK = gr_find_closest_color( 1, 1, 1 ); CGREY = gr_find_closest_color( 45, 45, 45 ); CWHITE = gr_find_closest_color( 50, 50, 50 ); CBRIGHT = gr_find_closest_color( 58, 58, 58 ); CRED = gr_find_closest_color( 63, 0, 0 ); //key_init(); gr_set_fontcolor(*grd_curcanv, CBLACK, CWHITE); ui_pad_init(); atexit(ui_close ); Initialized = 1; return 1; }
void show_framerate() { static int fps_count = 0, fps_rate = 0; int y = GHEIGHT; static fix64 fps_time = 0; gr_set_curfont(GAME_FONT); gr_set_fontcolor(BM_XRGB(0,31,0),-1); if (PlayerCfg.CockpitMode[1] == CM_FULL_SCREEN) { if ((Game_mode & GM_MULTI) || (Newdemo_state == ND_STATE_PLAYBACK && Newdemo_game_mode & GM_MULTI)) y -= LINE_SPACING * 10; else y -= LINE_SPACING * 4; } else if (PlayerCfg.CockpitMode[1] == CM_STATUS_BAR) { if ((Game_mode & GM_MULTI) || (Newdemo_state == ND_STATE_PLAYBACK && Newdemo_game_mode & GM_MULTI)) y -= LINE_SPACING * 6; else y -= LINE_SPACING * 1; } else { if ((Game_mode & GM_MULTI) || (Newdemo_state == ND_STATE_PLAYBACK && Newdemo_game_mode & GM_MULTI)) y -= LINE_SPACING * 7; else y -= LINE_SPACING * 2; } fps_count++; if (timer_query() >= fps_time + F1_0) { fps_rate = fps_count; fps_count = 0; fps_time = timer_query(); } gr_printf(SWIDTH-(GameArg.SysMaxFPS>999?FSPACX(43):FSPACX(37)),y,"FPS: %i",fps_rate); }
void player_dead_message(void) { if (Player_exploded) { if ( Players[Player_num].lives < 2 ) { int x, y, w, h, aw; gr_set_curfont( HUGE_FONT ); gr_get_string_size( TXT_GAME_OVER, &w, &h, &aw ); w += 20; h += 8; x = (grd_curcanv->cv_bitmap.bm_w - w ) / 2; y = (grd_curcanv->cv_bitmap.bm_h - h ) / 2; gr_settransblend(14, GR_BLEND_NORMAL); gr_setcolor( BM_XRGB(0,0,0) ); gr_rect( x, y, x+w, y+h ); gr_settransblend(GR_FADE_OFF, GR_BLEND_NORMAL); gr_string(0x8000, (GHEIGHT - h)/2 + h/8, TXT_GAME_OVER ); } gr_set_curfont( GAME_FONT ); if (HUD_color == -1) HUD_color = BM_XRGB(0,28,0); gr_set_fontcolor( HUD_color, -1); gr_string(0x8000, GHEIGHT-LINE_SPACING, TXT_PRESS_ANY_KEY); } }
void autodemo_menu_check(int nitems, newmenu_item * items, int *last_key, int citem ) { int curtime; nitems = nitems; items=items; citem = citem; //draw copyright message if ( Menu_draw_copyright ) { Menu_draw_copyright = 0; gr_set_current_canvas(NULL); gr_set_curfont(GAME_FONT); gr_set_fontcolor(BM_XRGB(6,6,6),-1); gr_printf(0x8000,grd_curcanv->cv_bitmap.bm_h-GAME_FONT->ft_h-2,TXT_COPYRIGHT); } // Don't allow them to hit ESC in the main menu. if (*last_key==KEY_ESC) *last_key = 0; if ( do_auto_demo ) { curtime = timer_get_approx_seconds(); //if ( ((keyd_time_when_last_pressed+i2f(20)) < curtime) && ((last_joy_time+i2f(20)) < curtime) && (!speedtest_on) ) { if ( ((keyd_time_when_last_pressed+i2f(45)) < curtime) && (!speedtest_on) ) { keyd_time_when_last_pressed = curtime; // Reset timer so that disk won't thrash if no demos. newdemo_start_playback(NULL); // Randomly pick a file if (Newdemo_state == ND_STATE_PLAYBACK) { Function_mode = FMODE_GAME; *last_key = -2; } } } }
static void ui_dialog_draw(UI_DIALOG *dlg) { int x, y, w, h; int req_w, req_h; x = D_X; y = D_Y; w = D_WIDTH; h = D_HEIGHT; req_w = w; req_h = h; if (dlg->flags & DF_BORDER) { req_w -= 2*BORDER_WIDTH; req_h -= 2*BORDER_WIDTH; gr_set_current_canvas( NULL ); ui_draw_frame( x, y, x+w-1, y+h-1 ); } ui_dialog_set_current_canvas(dlg); if (dlg->flags & DF_FILLED) ui_draw_box_out( 0, 0, req_w-1, req_h-1 ); gr_set_fontcolor( CBLACK, CWHITE ); D_TEXT_X = 0; D_TEXT_Y = 0; }
void render_countdown_gauge() { if (!Endlevel_sequence && Control_center_destroyed && (Countdown_seconds_left>-1) && (Countdown_seconds_left<127)) { gr_set_curfont(GAME_FONT); gr_set_fontcolor(BM_XRGB(0,63,0),-1); gr_printf(0x8000, (LINE_SPACING*6)+FSPACY(1), "T-%d s", Countdown_seconds_left ); } }
// --------------------------------------------------------------------------------------------------- void info_display_default(int show_all) { static int old_Num_segments = -1; static int old_Num_vertices = -1; static int old_Num_objects = -1; static int old_Cursegp_num = -1; static int old_Curside = -1; static int old_Cursegp_num_for_verts = -1; static int old_CurrentTexture = -1; static int old_Num_walls = -1; static int old_Num_triggers = -1; if (init_info | show_all) { init_info = 0; old_Num_segments = -1; old_Num_vertices = -1; old_Num_objects = -1; old_Cursegp_num = -1; old_Cursegp_num_for_verts = -1; old_Curside = -1; old_CurrentTexture = -1; old_Num_walls = -1; old_Num_triggers = -1; } gr_set_fontcolor(CBLACK,CWHITE); //--------------- Number of segments ---------------- if ( old_Num_segments != Num_segments ) { gr_uprintf( 0, 0, "Segments: %4d/%4d", Num_segments, MAX_SEGMENTS ); old_Num_segments = Num_segments; } //---------------- Number of vertics ----------------- if ( old_Num_vertices != Num_vertices ) { gr_uprintf( 0, 16, "Vertices: %4d/%4d", Num_vertices, MAX_VERTICES ); old_Num_vertices = Num_vertices; } //---------------- Number of objects ----------------- if ( old_Num_objects != num_objects ) { gr_uprintf( 0, 32, "Objs: %3d/%3d", num_objects, MAX_OBJECTS ); old_Num_objects = num_objects; } //--------------- Current_segment_number ------------- //--------------- Current_side_number ------------- if (( old_Cursegp_num != Cursegp-Segments ) || ( old_Curside != Curside )) { gr_uprintf( 0, 48, "Cursegp/side: %3d/%1d", Cursegp-Segments, Curside); gr_uprintf( 0, 128, " tmap1,2,o: %3d/%3dx%1d", Cursegp->sides[Curside].tmap_num, Cursegp->sides[Curside].tmap_num2 & 0x3FFF, (Cursegp->sides[Curside].tmap_num2 >> 14) & 3); old_Cursegp_num = Cursegp-Segments; old_Curside = Curside; }
void editor_sub_status( const char *format, ... ) { int w,h,aw; va_list ap; va_start(ap, format); vsprintf(sub_status_line, format, ap); va_end(ap); gr_set_current_canvas( NULL ); gr_set_curfont(editor_font); gr_set_fontcolor( BM_XRGB(0,0,31), CGREY ); gr_get_string_size( sub_status_line, &w, &h, &aw ); gr_string( 500, 583, sub_status_line ); gr_set_fontcolor( CBLACK, CWHITE ); gr_setcolor( CGREY ); gr_rect( 500+w, 583, 799, 599 ); }
void game_draw_hud_stuff() { #ifdef CROSSHAIR if ( Viewer->type == OBJ_PLAYER ) laser_do_crosshair(Viewer); #endif #ifndef NDEBUG draw_window_label(); #endif #ifdef NETWORK game_draw_multi_message(); #endif if ((Newdemo_state == ND_STATE_PLAYBACK) || (Newdemo_state == ND_STATE_RECORDING)) { char message[128]; int y; if (Newdemo_state == ND_STATE_PLAYBACK) { if (Newdemo_show_percentage) { sprintf(message, "%s (%d%%%% %s)", TXT_DEMO_PLAYBACK, newdemo_get_percent_done(), TXT_DONE); } else { sprintf (message, " "); } } else { extern int Newdemo_num_written; sprintf (message, "%s (%dK)", TXT_DEMO_RECORDING, (Newdemo_num_written / 1024)); } gr_set_curfont( GAME_FONT ); gr_set_fontcolor( BM_XRGB(27,0,0), -1 ); y = GHEIGHT-(LINE_SPACING*2); if (PlayerCfg.CockpitMode[1] == CM_FULL_COCKPIT) y = grd_curcanv->cv_bitmap.bm_h / 1.2 ; if (PlayerCfg.CockpitMode[1] != CM_REAR_VIEW) gr_string(0x8000, y, message ); } render_countdown_gauge(); if (GameCfg.FPSIndicator && PlayerCfg.CockpitMode[1] != CM_REAR_VIEW) show_framerate(); if (Newdemo_state == ND_STATE_PLAYBACK) Game_mode = Newdemo_game_mode; draw_hud(); if (Newdemo_state == ND_STATE_PLAYBACK) Game_mode = GM_NORMAL; if ( Player_is_dead ) player_dead_message(); }
void kmatrix_status_msg (fix time, int reactor) { grd_curcanv->cv_font = GAME_FONT; gr_set_fontcolor(gr_find_closest_color(255,255,255),-1); if (reactor) gr_printf(0x8000, SHEIGHT-LINE_SPACING, "Waiting for players to finish level. Reactor time: T-%d", time); else gr_printf(0x8000, SHEIGHT-LINE_SPACING, "Level finished. Wait (%d) to proceed or ESC to Quit.", time); }
void item_show( MENU * menu, int n ) { ITEM * item = &menu->Item[n]; gr_set_current_canvas(NULL); // If this is a seperator, then draw it. if ( item->Text[0] == '-' ) { gr_setcolor( CBLACK ); gr_urect( item->x, item->y+item->h/2, item->x+item->w-1, item->y+item->h/2 ); return; } if ( menu->CurrentItem==n && menu->ShowBar ) { if ( menu != &Menu[0] ) { gr_setcolor( CBLACK ); gr_urect( item->x+1, item->y+1, item->x+menu->w-2, item->y+item->h-2 ); } gr_set_fontcolor( CWHITE, CBLACK ); }else { if ( menu != &Menu[0] ) { gr_setcolor( CGREY ); gr_urect( item->x+1, item->y+1, item->x+menu->w-2, item->y+item->h-2 ); } gr_set_fontcolor( CBLACK, CGREY ); } if ( menu != &Menu[0] ) { if ( menu->Active) gr_ustring( item->x+1, item->y+1, item->Text ); else gr_ustring( item->x+1, item->y+1, item->InactiveText ); } else { if ( menu->Active) gr_ustring( item->x, item->y, item->Text ); else gr_ustring( item->x, item->y, item->InactiveText ); } }
void ui_draw_inputbox( UI_DIALOG *dlg, UI_GADGET_INPUTBOX * inputbox ) { int w, h, aw; #if 0 //ndef OGL if ((inputbox->status==1) || (inputbox->position != inputbox->oldposition)) #endif { gr_set_current_canvas( inputbox->canvas ); gr_setcolor( CBLACK ); gr_rect( 0, 0, inputbox->width-1, inputbox->height-1 ); gr_get_string_size(inputbox->text, &w, &h, &aw ); if (dlg->keyboard_focus_gadget == (UI_GADGET *)inputbox) { if (inputbox->first_time) { gr_set_fontcolor( CBLACK, -1 ); gr_setcolor( CRED ); gr_rect(2, 2, 2 + w, 2 + h); } else gr_set_fontcolor( CRED, -1 ); } else gr_set_fontcolor( CWHITE, -1 ); inputbox->status = 0; gr_string( 2, 2, inputbox->text ); //gr_setcolor( CBLACK ); //gr_rect( 2+w, 0, inputbox->width-1, inputbox->height-1 ); if (dlg->keyboard_focus_gadget == (UI_GADGET *)inputbox && !inputbox->first_time ) { gr_setcolor(CRED); Vline( 2,inputbox->height-3, 2+w+1 ); Vline( 2,inputbox->height-3, 2+w+2 ); } } }
static void con_draw(void) { int i = 0, y = 0; if (con_size <= 0) return; gr_set_default_canvas(); auto &canvas = *grd_curcanv; auto &game_font = *GAME_FONT; gr_set_curfont(canvas, GAME_FONT); const uint8_t color = BM_XRGB(0, 0, 0); gr_settransblend(canvas, 7, GR_BLEND_NORMAL); const auto &&fspacy1 = FSPACY(1); const auto &&line_spacing = LINE_SPACING(*canvas.cv_font, *GAME_FONT); y = fspacy1 + (line_spacing * con_size); gr_rect(canvas, 0, 0, SWIDTH, y, color); gr_settransblend(canvas, GR_FADE_OFF, GR_BLEND_NORMAL); i+=con_scroll_offset; gr_set_fontcolor(canvas, BM_XRGB(255, 255, 255), -1); y = cli_draw(y, line_spacing); const auto &&fspacx = FSPACX(); const auto &&fspacx1 = fspacx(1); for (;;) { auto &b = con_buffer[CON_LINES_MAX - 1 - i]; gr_set_fontcolor(canvas, get_console_color_by_priority(b.priority), -1); int w,h; gr_get_string_size(game_font, b.line, &w, &h, nullptr); y -= h + fspacy1; gr_string(canvas, game_font, fspacx1, y, b.line, w, h); i++; if (y<=0 || CON_LINES_MAX-1-i <= 0 || i < 0) break; } gr_rect(canvas, 0, 0, SWIDTH, line_spacing, color); gr_set_fontcolor(canvas, BM_XRGB(255, 255, 255),-1); gr_printf(canvas, game_font, fspacx1, fspacy1, "%s LOG", DESCENT_VERSION); gr_string(canvas, game_font, SWIDTH - fspacx(110), fspacy1, "PAGE-UP/DOWN TO SCROLL"); }