View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003107 | FSSCP | user interface | public | 2014-09-14 01:28 | 2014-09-25 02:07 |
Reporter | Yarn | Assigned To | Yarn | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | x64 | OS | Windows 7 | ||
Product Version | 3.7.1 | ||||
Fixed in Version | 3.7.2 | ||||
Summary | 0003107: Parts of the interface code assume a font size of 10 | ||||
Description | Because of what's described in the summary, if a font that's taller than the standard font is assigned to index 0, then the game may not provide enough vertical space for each line on certain screens, like the ship selection screen. Blue Planet 2 is a minor example of a mod where this occurs. | ||||
Additional Information | I have attached a patch that should fix every instance of an assumed font size of 10. I hope I didn't miss or mess up anything. | ||||
Tags | No tags attached. | ||||
|
mantis3107.patch (47,825 bytes)
Index: code/freespace2/freespace.cpp =================================================================== --- code/freespace2/freespace.cpp (revision 11075) +++ code/freespace2/freespace.cpp (working copy) @@ -1200,6 +1200,8 @@ char filename[35]; int size; int i; + int line_height = gr_get_font_height() + 1; + memblockinfo_sort(); for(i = 0; i < 30; i++) { @@ -1217,10 +1219,10 @@ short_name++; sprintf(mem_buffer,"%s:\t%d K", short_name, size); - gr_string( 20, 220 + (i*10), mem_buffer, GR_RESIZE_MENU); + gr_string( 20, 220 + (i*line_height), mem_buffer, GR_RESIZE_MENU); } sprintf(mem_buffer,"Total RAM:\t%d K", TotalRam / 1024); - gr_string( 20, 230 + (i*10), mem_buffer, GR_RESIZE_MENU); + gr_string( 20, 230 + (i*line_height), mem_buffer, GR_RESIZE_MENU); #endif // _WIN32 } #endif // !NDEBUG @@ -2126,6 +2128,7 @@ void game_show_framerate() { float cur_time; + int line_height = gr_get_font_height() + 1; cur_time = f2fl(timer_get_approx_seconds()); if (cur_time - Start_time > 30.0f) { @@ -2146,11 +2149,11 @@ for ( pss = GET_FIRST(&shipp->subsys_list); pss !=END_OF_LIST(&shipp->subsys_list); pss = GET_NEXT(pss) ) { if (pss->system_info->type == SUBSYSTEM_TURRET) { if(pss->turret_enemy_objnum == -1) - gr_printf_no_resize(10, t*10, "Turret %d: <None>", t); + gr_printf_no_resize(10, t*line_height, "Turret %d: <None>", t); else if (Objects[pss->turret_enemy_objnum].type == OBJ_SHIP) - gr_printf_no_resize(10, t*10, "Turret %d: %s", t, Ships[Objects[pss->turret_enemy_objnum].instance].ship_name); + gr_printf_no_resize(10, t*line_height, "Turret %d: %s", t, Ships[Objects[pss->turret_enemy_objnum].instance].ship_name); else - gr_printf_no_resize(10, t*10, "Turret %d: <Object %d>", t, pss->turret_enemy_objnum); + gr_printf_no_resize(10, t*line_height, "Turret %d: <Object %d>", t, pss->turret_enemy_objnum); t++; } @@ -2163,7 +2166,7 @@ gr_set_color_fast(&HUD_color_debug); if (Cmdline_frame_profile) { - gr_string(20, 110, profile_output, GR_RESIZE_NONE); + gr_string(20, 100 + line_height, profile_output, GR_RESIZE_NONE); } if (Show_framerate) { @@ -2195,11 +2198,11 @@ else sprintf(mem_buffer,"Using Physical: %d Meg",(Mem_starttime_phys - mem_stats.dwAvailPhys)/1024/1024); - gr_string( 20, 120, mem_buffer, GR_RESIZE_NONE); + gr_string( 20, 100 + (line_height * 2), mem_buffer, GR_RESIZE_NONE); sprintf(mem_buffer,"Using Pagefile: %d Meg",(Mem_starttime_pagefile - mem_stats.dwAvailPageFile)/1024/1024); - gr_string( 20, 130, mem_buffer, GR_RESIZE_NONE); + gr_string( 20, 100 + (line_height * 3), mem_buffer, GR_RESIZE_NONE); sprintf(mem_buffer,"Using Virtual: %d Meg",(Mem_starttime_virtual - mem_stats.dwAvailVirtual)/1024/1024); - gr_string( 20, 140, mem_buffer, GR_RESIZE_NONE); + gr_string( 20, 100 + (line_height * 4), mem_buffer, GR_RESIZE_NONE); if ( ((int)mem_stats.dwAvailPhys == -1) || ((int)mem_stats.dwTotalPhys == -1) ) sprintf(mem_buffer, "Physical Free: *** / *** (>4G)"); @@ -2206,11 +2209,11 @@ else sprintf(mem_buffer,"Physical Free: %d / %d Meg",mem_stats.dwAvailPhys/1024/1024, mem_stats.dwTotalPhys/1024/1024); - gr_string( 20, 160, mem_buffer, GR_RESIZE_NONE); + gr_string( 20, 100 + (line_height * 6), mem_buffer, GR_RESIZE_NONE); sprintf(mem_buffer,"Pagefile Free: %d / %d Meg",mem_stats.dwAvailPageFile/1024/1024, mem_stats.dwTotalPageFile/1024/1024); - gr_string( 20, 170, mem_buffer, GR_RESIZE_NONE); + gr_string( 20, 100 + (line_height * 7), mem_buffer, GR_RESIZE_NONE); sprintf(mem_buffer,"Virtual Free: %d / %d Meg",mem_stats.dwAvailVirtual/1024/1024, mem_stats.dwTotalVirtual/1024/1024); - gr_string( 20, 180, mem_buffer, GR_RESIZE_NONE); + gr_string( 20, 100 + (line_height * 8), mem_buffer, GR_RESIZE_NONE); } #endif @@ -2217,58 +2220,56 @@ #ifndef NDEBUG if ( Show_cpu == 1 ) { - int sx,sy,dy; + int sx,sy; sx = gr_screen.max_w - 154; sy = 15; - dy = gr_get_font_height() + 1; gr_set_color_fast(&HUD_color_debug); gr_printf_no_resize( sx, sy, NOX("DMA: %s"), transfer_text ); - sy += dy; + sy += line_height; gr_printf_no_resize( sx, sy, NOX("POLYP: %d"), modelstats_num_polys ); - sy += dy; + sy += line_height; gr_printf_no_resize( sx, sy, NOX("POLYD: %d"), modelstats_num_polys_drawn ); - sy += dy; + sy += line_height; gr_printf_no_resize( sx, sy, NOX("VERTS: %d"), modelstats_num_verts ); - sy += dy; + sy += line_height; { extern int Num_pairs; // Number of object pairs that were checked. gr_printf_no_resize( sx, sy, NOX("PAIRS: %d"), Num_pairs ); - sy += dy; + sy += line_height; extern int Num_pairs_checked; // What percent of object pairs were checked. gr_printf_no_resize( sx, sy, NOX("FVI: %d"), Num_pairs_checked ); - sy += dy; + sy += line_height; Num_pairs_checked = 0; } gr_printf_no_resize( sx, sy, NOX("Snds: %d"), snd_num_playing() ); - sy += dy; + sy += line_height; if ( Timing_total > 0.01f ) { gr_printf_no_resize( sx, sy, NOX("CLEAR: %.0f%%"), Timing_clear*100.0f/Timing_total ); - sy += dy; + sy += line_height; gr_printf_no_resize( sx, sy, NOX("REND2D: %.0f%%"), Timing_render2*100.0f/Timing_total ); - sy += dy; + sy += line_height; gr_printf_no_resize( sx, sy, NOX("REND3D: %.0f%%"), Timing_render3*100.0f/Timing_total ); - sy += dy; + sy += line_height; gr_printf_no_resize( sx, sy, NOX("FLIP: %.0f%%"), Timing_flip*100.0f/Timing_total ); - sy += dy; + sy += line_height; gr_printf_no_resize( sx, sy, NOX("GAME: %.0f%%"), (Timing_total-(Timing_render2+Timing_render3+Timing_flip+Timing_clear))*100.0f/Timing_total ); - sy += dy; + sy += line_height; } } if ( Show_mem ) { - int sx,sy,dy; + int sx,sy; sx = gr_screen.max_w - 154; sy = 15; - dy = gr_get_font_height() + 1; gr_set_color_fast(&HUD_color_debug); @@ -2275,26 +2276,26 @@ { extern int TotalRam; gr_printf_no_resize( sx, sy, NOX("DYN: %d KB\n"), TotalRam/1024 ); - sy += dy; + sy += line_height; } { extern int Model_ram; gr_printf_no_resize( sx, sy, NOX("POF: %d KB\n"), Model_ram/1024 ); - sy += dy; + sy += line_height; } gr_printf_no_resize( sx, sy, NOX("%s: %d KB\n"), (Cmdline_cache_bitmaps) ? NOX("C-BMP") : NOX("BMP"), bm_texture_ram/1024 ); - sy += dy; + sy += line_height; gr_printf_no_resize( sx, sy, NOX("S-SRAM: %d KB\n"), Snd_sram/1024 ); // mem used to store game sound - sy += dy; + sy += line_height; { extern int GL_textures_in; extern int GL_vertex_data_in; gr_printf_no_resize( sx, sy, NOX("VRAM: %d KB\n"), (GL_textures_in + GL_vertex_data_in)/1024 ); - sy += dy; + sy += line_height; } } @@ -2334,11 +2335,11 @@ short_name++; sprintf(mem_buffer,"%s:\t%d K", short_name, size); - gr_string( 20, 220 + (mi*10), mem_buffer, GR_RESIZE_NONE); + gr_string( 20, 100 + (line_height * 12) + (mi*line_height), mem_buffer, GR_RESIZE_NONE); } sprintf(mem_buffer,"Total RAM:\t%d K", TotalRam / 1024); - gr_string( 20, 230 + (mi*10), mem_buffer, GR_RESIZE_NONE); + gr_string( 20, 100 + (line_height * 13) + (mi*line_height), mem_buffer, GR_RESIZE_NONE); } #endif Index: code/hud/hudtarget.cpp =================================================================== --- code/hud/hudtarget.cpp (revision 11075) +++ code/hud/hudtarget.cpp (working copy) @@ -5550,12 +5550,13 @@ if(use_new_gauge) { - int currentx, currenty; + int currentx, currenty, line_height; int y; int max_w = 100; float remaining; currentx = position[0] + 10; currenty = position[1]; + line_height = gr_get_font_height() + 1; if(gr_screen.max_w_unscaled == 640) { max_w = 60; } @@ -5566,7 +5567,7 @@ //Draw name renderString(currentx, currenty, "Energy"); - currenty += 10; + currenty += line_height; //Draw background setGaugeColor(HUD_C_DIM); @@ -5606,7 +5607,7 @@ } //Next 'line' - currenty += 10; + currenty += line_height; //Draw the background for the gauge setGaugeColor(HUD_C_DIM); Index: code/hud/hudtargetbox.cpp =================================================================== --- code/hud/hudtargetbox.cpp (revision 11075) +++ code/hud/hudtargetbox.cpp (working copy) @@ -1701,7 +1701,7 @@ if (n_linebreaks) { p_line = strtok(outstr,linebreak); while (p_line != NULL) { - renderPrintf(subsys_name_pos_x, subsys_name_pos_y-h-(10*n_linebreaks), p_line); + renderPrintf(subsys_name_pos_x, subsys_name_pos_y-h-((h+1)*n_linebreaks), p_line); p_line = strtok(NULL,linebreak); n_linebreaks--; } Index: code/io/timer.cpp =================================================================== --- code/io/timer.cpp (revision 11075) +++ code/io/timer.cpp (working copy) @@ -436,16 +436,18 @@ #else int idx; + int line_height = gr_get_font_height() + 1; + gr_set_color_fast(&Color_bright_blue); // total time gr_printf_no_resize(x, y, "Total time %f\n", (float)timing_frame_total() / 1000000.0f); - y += 10; + y += line_height; // each event percentage for(idx=0; idx<Timing_event_count; idx++){ gr_printf_no_resize(x, y, "%s: %f\n", Timing_events[idx].name, timing_event_pct(Timing_events[idx].name)); - y += 10; + y += line_height; } #endif } Index: code/menuui/optionsmenumulti.cpp =================================================================== --- code/menuui/optionsmenumulti.cpp (revision 11075) +++ code/menuui/optionsmenumulti.cpp (working copy) @@ -642,6 +642,7 @@ int line_count; int y_start; int idx; + int line_height; // if there is no timestamp, do nothing if(Om_notify_stamp == -1){ @@ -655,6 +656,7 @@ } // otherwise display the string + line_height = gr_get_font_height() + 1; line_count = split_str(Om_notify_string, 600, n_chars, p_str, 3); y_start = OM_NOTIFY_Y; gr_set_color_fast(&Color_bright); @@ -665,7 +667,7 @@ gr_get_string_size(&w,NULL,line); gr_string((600 - w)/2,y_start,line,GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } @@ -1203,6 +1205,7 @@ { int idx; int y_start = Ip_list_coords[gr_screen.res][1]; + int line_height = gr_get_font_height() + 1; // get the # of items we should be displaying based upon the # of addresses and the starting display point if(Om_ip_start >= Ip_list_max_display[gr_screen.res]){ @@ -1220,7 +1223,7 @@ } gr_printf_menu(Ip_list_coords[gr_screen.res][0], y_start, Om_ip_addrs[idx]); - y_start += 10; + y_start += line_height; } } @@ -1255,7 +1258,7 @@ if(Om_ip_button.pressed()){ // determine which item he clicked on Om_ip_button.get_mouse_pos(NULL, &click_y); - item = click_y / 10; + item = click_y / (gr_get_font_height() + 1); // determine if there is an item in this location, and select it if so if(item < Om_ip_disp_count){ @@ -2055,10 +2058,12 @@ int selected_index,click_y; char str[CALLSIGN_LEN+2]; + int line_height = gr_get_font_height() + 1; + // check for mouse clicks if(Om_vox_plist_button.pressed()){ Om_vox_plist_button.get_mouse_pos(NULL,&click_y); - selected_index = (click_y / 10) + Om_vox_plist_start; + selected_index = (click_y / line_height) + Om_vox_plist_start; // if he clicked on a valid player, select him if(Om_vox_players[selected_index] != NULL){ @@ -2088,7 +2093,7 @@ gr_string(Om_vox_plist_coords[gr_screen.res][0], y_start, str, GR_RESIZE_MENU); // increment the y index - y_start += 10; + y_start += line_height; // increment the player count p_count++; Index: code/missionui/chatbox.cpp =================================================================== --- code/missionui/chatbox.cpp (revision 11075) +++ code/missionui/chatbox.cpp (working copy) @@ -887,11 +887,12 @@ void chatbox_render_chat_lines() { - int started_at,player_num,count,ly; + int started_at,player_num,count,ly,line_height; started_at = Brief_start_display_index; count = 0; ly = Chatbox_begin_y; + line_height = gr_get_font_height() + 1; while((count < Chatbox_max_lines) && (count < Num_brief_chat_lines)){ // determine what player this chat line came from, and set the appropriate text color player_num = Brief_chat_lines[started_at][0]; @@ -942,7 +943,7 @@ // increment the count and line position count++; - ly += 10; + ly += line_height; // increment the started at index started_at = Brief_chat_next_index[started_at]; Index: code/missionui/missionshipchoice.cpp =================================================================== --- code/missionui/missionshipchoice.cpp (revision 11075) +++ code/missionui/missionshipchoice.cpp (working copy) @@ -917,7 +917,7 @@ // blit any active ship information text void ship_select_blit_ship_info() { - int y_start; + int y_start, line_height; ship_info *sip; char str[100]; color *header = &Color_white; @@ -935,12 +935,14 @@ // starting line y_start = Ship_info_coords[gr_screen.res][SHIP_SELECT_Y_COORD]; + line_height = gr_get_font_height() + 1; + memset(str,0,100); // blit the ship class (name) gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Class",739), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; if(strlen((sip->alt_name[0]) ? sip->alt_name : sip->name)){ gr_set_color_fast(text); @@ -951,12 +953,12 @@ gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, temp, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the ship type gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Type",740), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); if((sip->type_str != NULL) && strlen(sip->type_str)){ gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, sip->type_str, GR_RESIZE_MENU); @@ -966,12 +968,12 @@ ship_get_type(str, sip); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, str, GR_RESIZE_MENU); } - y_start+=10; + y_start+=line_height; // blit the ship length gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Length",741), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); if((sip->ship_length != NULL) && strlen(sip->ship_length)){ if (Lcl_gr || Lcl_pl) { @@ -994,21 +996,21 @@ { gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, "Unknown", GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the max velocity gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Max Velocity",742), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; sprintf(str, XSTR("%d m/s",743),fl2i((float)sip->max_vel.xyz.z * Hud_speed_multiplier)); gr_set_color_fast(text); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start,str, GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; // blit the maneuverability gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Maneuverability",744), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); if((sip->maneuverability_str != NULL) && strlen(sip->maneuverability_str)){ gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, sip->maneuverability_str, GR_RESIZE_MENU); @@ -1037,12 +1039,12 @@ { gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, "Unknown", GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the armor gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Armor",745), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); if((sip->armor_str != NULL) && strlen(sip->armor_str)){ gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, sip->armor_str, GR_RESIZE_MENU); @@ -1076,7 +1078,7 @@ gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start,str, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the gun mounts gr_set_color_fast(header); @@ -1083,7 +1085,7 @@ if((sip->gun_mounts != NULL) && strlen(sip->gun_mounts)) { gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Gun Mounts",746), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, sip->gun_mounts, GR_RESIZE_MENU); } @@ -1091,7 +1093,7 @@ { //Calculate the number of gun mounts gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Gun Mounts",746), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); int i; int sum = 0; @@ -1109,7 +1111,7 @@ else { gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Gun Banks",1626), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); if(sip->num_primary_banks) { @@ -1121,12 +1123,12 @@ } gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, str, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the missile banks gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Missile Banks",747), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); if((sip->missile_banks != NULL) && strlen(sip->missile_banks)){ gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, sip->missile_banks, GR_RESIZE_MENU); @@ -1143,7 +1145,7 @@ } gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, str, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; if(ShipSelectModelNum >= 0) { @@ -1180,11 +1182,11 @@ { gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Turrets",1627), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); sprintf(str, "%d", num_turrets); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, str, GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } @@ -1191,7 +1193,7 @@ // blit the manufacturer gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Manufacturer",748), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; gr_set_color_fast(text); if((sip->manufacturer_str != NULL) && strlen(sip->manufacturer_str)){ gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, sip->manufacturer_str, GR_RESIZE_MENU); @@ -1200,7 +1202,7 @@ { gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, Species_info[sip->species].species_name, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the _short_ text description, if it exists // split the text info up @@ -1210,7 +1212,7 @@ gr_set_color_fast(header); gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD], y_start, XSTR("Description",1571), GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; Assert(strlen(sip->desc)); @@ -1262,7 +1264,7 @@ gr_set_color_fast(text); for(int idx=0;idx<Ship_select_ship_info_line_count;idx++){ gr_string(Ship_info_coords[gr_screen.res][SHIP_SELECT_X_COORD]+4, y_start, Ship_select_ship_info_lines[idx], GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } Index: code/missionui/missionweaponchoice.cpp =================================================================== --- code/missionui/missionweaponchoice.cpp (revision 11075) +++ code/missionui/missionweaponchoice.cpp (working copy) @@ -2258,6 +2258,8 @@ int *weapon_desc_coords; int *weapon_title_coords; + int line_height = gr_get_font_height() + 1; + // retrieve the correct set of text coordinates if (Game_mode & GM_MULTIPLAYER) { weapon_desc_coords = Wl_new_weapon_desc_coords_multi[gr_screen.res]; @@ -2286,12 +2288,12 @@ // draw the strings gr_set_color_fast(&Color_white); - gr_string(weapon_title_coords[0], weapon_title_coords[1]+(10*i), Weapon_desc_lines[i], GR_RESIZE_MENU); + gr_string(weapon_title_coords[0], weapon_title_coords[1]+(line_height*i), Weapon_desc_lines[i], GR_RESIZE_MENU); // draw the bright letters gr_set_color_fast(&Color_bright_white); gr_get_string_size(&w, &h, Weapon_desc_lines[i], curr_len); - gr_printf_menu(weapon_title_coords[0]+w, weapon_title_coords[1]+(10*i), "%c", bright_char[i]); + gr_printf_menu(weapon_title_coords[0]+w, weapon_title_coords[1]+(line_height*i), "%c", bright_char[i]); // restore the bright char to the string Weapon_desc_lines[i][bright_char_index] = bright_char[i]; @@ -2299,7 +2301,7 @@ } else { // draw the string gr_set_color_fast(&Color_white); - gr_string(weapon_title_coords[0], weapon_title_coords[1]+(10*i), Weapon_desc_lines[i], GR_RESIZE_MENU); + gr_string(weapon_title_coords[0], weapon_title_coords[1]+(line_height*i), Weapon_desc_lines[i], GR_RESIZE_MENU); } } @@ -2314,12 +2316,12 @@ // draw the string gr_set_color_fast(&Color_white); - gr_string(weapon_desc_coords[0], weapon_desc_coords[1]+(10*(i-2)), Weapon_desc_lines[i], GR_RESIZE_MENU); + gr_string(weapon_desc_coords[0], weapon_desc_coords[1]+(line_height*(i-2)), Weapon_desc_lines[i], GR_RESIZE_MENU); // draw the bright letters gr_set_color_fast(&Color_bright_white); gr_get_string_size(&w, &h, Weapon_desc_lines[i], curr_len); - gr_printf_menu(weapon_desc_coords[0]+w, weapon_desc_coords[1]+(10*(i-2)), "%c", bright_char[i]); + gr_printf_menu(weapon_desc_coords[0]+w, weapon_desc_coords[1]+(line_height*(i-2)), "%c", bright_char[i]); // restore the bright char to the string Weapon_desc_lines[i][bright_char_index] = bright_char[i]; @@ -2327,7 +2329,7 @@ } else { // draw the string gr_set_color_fast(&Color_white); - gr_string(weapon_desc_coords[0], weapon_desc_coords[1]+(10*(i-2)), Weapon_desc_lines[i], GR_RESIZE_MENU); + gr_string(weapon_desc_coords[0], weapon_desc_coords[1]+(line_height*(i-2)), Weapon_desc_lines[i], GR_RESIZE_MENU); } } @@ -2344,11 +2346,11 @@ // FIXME - change to use a for loop gr_set_color_fast(&Color_white); gr_string(weapon_title_coords[0], weapon_title_coords[1], Weapon_desc_lines[0], GR_RESIZE_MENU); - gr_string(weapon_title_coords[0], weapon_title_coords[1] + 10, Weapon_desc_lines[1], GR_RESIZE_MENU); + gr_string(weapon_title_coords[0], weapon_title_coords[1] + line_height, Weapon_desc_lines[1], GR_RESIZE_MENU); gr_string(weapon_desc_coords[0], weapon_desc_coords[1], Weapon_desc_lines[2], GR_RESIZE_MENU); - gr_string(weapon_desc_coords[0], weapon_desc_coords[1] + 10, Weapon_desc_lines[3], GR_RESIZE_MENU); - gr_string(weapon_desc_coords[0], weapon_desc_coords[1] + 20, Weapon_desc_lines[4], GR_RESIZE_MENU); - gr_string(weapon_desc_coords[0], weapon_desc_coords[1] + 30, Weapon_desc_lines[5], GR_RESIZE_MENU); + gr_string(weapon_desc_coords[0], weapon_desc_coords[1] + line_height, Weapon_desc_lines[3], GR_RESIZE_MENU); + gr_string(weapon_desc_coords[0], weapon_desc_coords[1] + line_height * 2, Weapon_desc_lines[4], GR_RESIZE_MENU); + gr_string(weapon_desc_coords[0], weapon_desc_coords[1] + line_height * 3, Weapon_desc_lines[5], GR_RESIZE_MENU); } } Index: code/network/multi.cpp =================================================================== --- code/network/multi.cpp (revision 11075) +++ code/network/multi.cpp (working copy) @@ -1793,6 +1793,7 @@ { int sx = gr_screen.max_w - 200; int sy = 20; + int dy = gr_get_font_height() + 1; int idx; // not multiplayer @@ -1814,30 +1815,30 @@ // server or client if(MULTIPLAYER_MASTER){ - gr_string(sx, sy, "SERVER", GR_RESIZE_NONE); sy += 10; + gr_string(sx, sy, "SERVER", GR_RESIZE_NONE); sy += dy; for(idx=0; idx<MAX_PLAYERS; idx++){ if(MULTI_CONNECTED(Net_players[idx]) && (Net_player != &Net_players[idx]) && (Net_players[idx].m_player != NULL)){ if(Net_players[idx].sv_last_pl < 0){ gr_printf_no_resize(sx, sy, "%s: %d, %d pl", Net_players[idx].m_player->callsign, Net_players[idx].sv_bytes_sent, 0); - sy += 10; + sy += dy; } else { gr_printf_no_resize(sx, sy, "%s: %d, %d pl", Net_players[idx].m_player->callsign, Net_players[idx].sv_bytes_sent, Net_players[idx].sv_last_pl); - sy += 10; + sy += dy; } } } } else { - gr_string(sx, sy, "CLIENT", GR_RESIZE_NONE); sy += 10; + gr_string(sx, sy, "CLIENT", GR_RESIZE_NONE); sy += dy; // display PL if(Net_player != NULL){ if(Net_player->cl_last_pl < 0){ gr_printf_no_resize(sx, sy, "PL: %d %d pl\n", Net_player->cl_bytes_recvd, 0); - sy += 10; + sy += dy; } else { gr_printf_no_resize(sx, sy, "PL: %d %d pl\n", Net_player->cl_bytes_recvd, Net_player->cl_last_pl); - sy += 10; + sy += dy; } } } Index: code/network/multi_dogfight.cpp =================================================================== --- code/network/multi_dogfight.cpp (revision 11075) +++ code/network/multi_dogfight.cpp (working copy) @@ -387,6 +387,7 @@ int idx, s_idx, str_len; int cx, cy; char squashed_string[CALLSIGN_LEN+1] = ""; + int dy = gr_get_font_height() + 1; // max width of an individual item, and the text that can be in that item float max_item_width = ((float)Multi_df_display_coords[gr_screen.res][2] - 40.0f) / (float)(Multi_df_score_count + 1); @@ -398,7 +399,7 @@ // start x for the side bar int side_x_start = Multi_df_display_coords[gr_screen.res][0]; - int side_y_start = Multi_df_display_coords[gr_screen.res][1] + 10; + int side_y_start = Multi_df_display_coords[gr_screen.res][1] + dy; // draw the top bar cx = top_x_start; @@ -474,7 +475,7 @@ gr_get_string_size(&str_len, NULL, squashed_string); gr_string(Multi_df_display_coords[gr_screen.res][0] + Multi_df_display_coords[gr_screen.res][2] - (MULTI_DF_TOTAL_ADJUST + str_len), cy, squashed_string, GR_RESIZE_MENU); - cy += 10; + cy += dy; } } Index: code/network/multi_ingame.cpp =================================================================== --- code/network/multi_ingame.cpp (revision 11075) +++ code/network/multi_ingame.cpp (working copy) @@ -845,6 +845,8 @@ int icon_num,idx; int y_spacing; ship_weapon *wp; + + int line_height = gr_get_font_height() + 1; // blit the ship name itself gr_set_color_fast(&Color_normal); @@ -861,15 +863,15 @@ wp = &Ships[objp->instance].weapons; // blit the ship's primary weapons - y_spacing = (Mi_spacing[gr_screen.res] - (wp->num_primary_banks * 10)) / 2; + y_spacing = (Mi_spacing[gr_screen.res] - (wp->num_primary_banks * line_height)) / 2; for(idx=0;idx<wp->num_primary_banks;idx++){ - gr_string(Mi_primary_field[gr_screen.res][MI_FIELD_X], y_start + y_spacing + (idx * 10), Weapon_info[wp->primary_bank_weapons[idx]].name, GR_RESIZE_MENU); + gr_string(Mi_primary_field[gr_screen.res][MI_FIELD_X], y_start + y_spacing + (idx * line_height), Weapon_info[wp->primary_bank_weapons[idx]].name, GR_RESIZE_MENU); } // blit the ship's secondary weapons - y_spacing = (Mi_spacing[gr_screen.res] - (wp->num_secondary_banks * 10)) / 2; + y_spacing = (Mi_spacing[gr_screen.res] - (wp->num_secondary_banks * line_height)) / 2; for(idx=0;idx<wp->num_secondary_banks;idx++){ - gr_string(Mi_secondary_field[gr_screen.res][MI_FIELD_X], y_start + y_spacing + (idx * 10), Weapon_info[wp->secondary_bank_weapons[idx]].name, GR_RESIZE_MENU); + gr_string(Mi_secondary_field[gr_screen.res][MI_FIELD_X], y_start + y_spacing + (idx * line_height), Weapon_info[wp->secondary_bank_weapons[idx]].name, GR_RESIZE_MENU); } // blit the shield/hull integrity Index: code/network/multi_pxo.cpp =================================================================== --- code/network/multi_pxo.cpp (revision 11075) +++ code/network/multi_pxo.cpp (working copy) @@ -2424,7 +2424,7 @@ Multi_pxo_channel_button.get_mouse_pos(NULL,&my); // index from the top - item_index = my / 10; + item_index = my / (gr_get_font_height() + 1); // select the item if possible if((item_index + Multi_pxo_channel_start_index) < Multi_pxo_channel_count){ @@ -2512,6 +2512,7 @@ char chan_servers[15]; int user_w,server_w; int disp_count,y_start; + int line_height = gr_get_font_height() + 1; // blit as many channels as we can disp_count = 0; @@ -2558,7 +2559,7 @@ // increment the displayed count disp_count++; - y_start += 10; + y_start += line_height; // next item moveup = moveup->next; @@ -2906,7 +2907,7 @@ Multi_pxo_player_button.get_mouse_pos(NULL,&my); // index from the top - item_index = my / 10; + item_index = my / (gr_get_font_height() + 1); // select the item if possible lookup = Multi_pxo_player_start; @@ -2940,6 +2941,7 @@ player_list *moveup; char player_name[MAX_PXO_TEXT_LEN]; int disp_count,y_start; + int line_height = gr_get_font_height() + 1; // blit as many channels as we can disp_count = 0; @@ -2967,7 +2969,7 @@ // increment the displayed count disp_count++; - y_start += 10; + y_start += line_height; // next item moveup = moveup->next; @@ -3246,7 +3248,7 @@ */ void multi_pxo_chat_blit() { - int y_start; + int y_start, line_height; int disp_count,token_width; char piece[100]; char title[MAX_PXO_TEXT_LEN]; @@ -3273,6 +3275,7 @@ moveup = Multi_pxo_chat_start; disp_count = 0; y_start = Multi_pxo_chat_coords[gr_screen.res][1]; + line_height = gr_get_font_height() + 1; while((moveup != NULL) && (moveup != Multi_pxo_chat_add) && (disp_count < (Multi_pxo_max_chat_display[gr_screen.res]))){ switch(moveup->mode){ // if this is text from the server, display it all "bright" @@ -3325,7 +3328,7 @@ // next chat line moveup = moveup->next; disp_count++; - y_start += 10; + y_start += line_height; } if ((moveup != Multi_pxo_chat_add) && (moveup != NULL)) { @@ -4964,11 +4967,12 @@ { int idx; int start_pos; - int y_start; + int y_start, line_height; help_page *cp = &Multi_pxo_help_pages[Multi_pxo_help_cur]; // blit each line y_start = Multi_pxo_help_coords[gr_screen.res][1]; + line_height = gr_get_font_height() + 1; for(idx=0;idx<cp->num_lines;idx++){ // if the first symbol is "@", highlight the line if(cp->text[idx][0] == '@'){ @@ -4983,7 +4987,7 @@ gr_string(Multi_pxo_help_coords[gr_screen.res][0], y_start, cp->text[idx] + start_pos, GR_RESIZE_MENU); // increment the y location - y_start += 10; + y_start += line_height; } } Index: code/network/multi_rate.cpp =================================================================== --- code/network/multi_rate.cpp (revision 11075) +++ code/network/multi_rate.cpp (working copy) @@ -187,6 +187,7 @@ { int idx; mr_info *m; + int line_height = gr_get_font_height() + 1; // sanity checks if((np_index < 0) || (np_index >= MAX_RATE_PLAYERS)){ @@ -205,7 +206,7 @@ // display gr_set_color_fast(&Color_red); gr_printf_no_resize(x, y, "%s %d (%d/s) (%f/f)", m->type, m->total_bytes, (int)m->avg_second, m->avg_frame); - y += 10; + y += line_height; } } Index: code/network/multiteamselect.cpp =================================================================== --- code/network/multiteamselect.cpp (revision 11075) +++ code/network/multiteamselect.cpp (working copy) @@ -1478,7 +1478,7 @@ // blit any active ship information text void multi_ts_blit_ship_info() { - int y_start; + int y_start, line_height; ship_info *sip; char str[100]; @@ -1493,6 +1493,8 @@ // starting line y_start = Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_Y_COORD]; + line_height = gr_get_font_height() + 1; + memset(str,0,100); // blit the ship class (name) @@ -1508,7 +1510,7 @@ gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD] + 150, y_start, temp, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the ship type gr_set_color_fast(&Color_normal); @@ -1517,7 +1519,7 @@ gr_set_color_fast(&Color_bright); gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD] + 150, y_start, sip->type_str, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the ship length gr_set_color_fast(&Color_normal); @@ -1526,7 +1528,7 @@ gr_set_color_fast(&Color_bright); gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD] + 150, y_start, sip->ship_length, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the max velocity gr_set_color_fast(&Color_normal); @@ -1534,7 +1536,7 @@ sprintf(str, XSTR("%d m/s",743),(int)sip->max_vel.xyz.z); gr_set_color_fast(&Color_bright); gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD] + 150, y_start,str,GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; // blit the maneuverability gr_set_color_fast(&Color_normal); @@ -1543,7 +1545,7 @@ gr_set_color_fast(&Color_bright); gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD] + 150, y_start, sip->maneuverability_str, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the armor gr_set_color_fast(&Color_normal); @@ -1552,7 +1554,7 @@ gr_set_color_fast(&Color_bright); gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD] + 150, y_start, sip->armor_str, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the gun mounts gr_set_color_fast(&Color_normal); @@ -1561,7 +1563,7 @@ gr_set_color_fast(&Color_bright); gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD] + 150, y_start, sip->gun_mounts, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the missile banke gr_set_color_fast(&Color_normal); @@ -1570,7 +1572,7 @@ gr_set_color_fast(&Color_bright); gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD] + 150, y_start, sip->missile_banks, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the manufacturer gr_set_color_fast(&Color_normal); @@ -1579,7 +1581,7 @@ gr_set_color_fast(&Color_bright); gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD] + 150, y_start, sip->manufacturer_str, GR_RESIZE_MENU); } - y_start += 10; + y_start += line_height; // blit the _short_ text description @@ -1587,7 +1589,7 @@ gr_set_color_fast(&Color_normal); for(int idx=0;idx<Multi_ts_ship_info_line_count;idx++){ gr_string(Multi_ts_ship_info_coords[gr_screen.res][MULTI_TS_X_COORD], y_start, Multi_ts_ship_info_lines[idx], GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } Index: code/network/multiui.cpp =================================================================== --- code/network/multiui.cpp (revision 11075) +++ code/network/multiui.cpp (working copy) @@ -1302,6 +1302,7 @@ int w,h; int con_type; int y_start = Mj_list_y[gr_screen.res]; + int line_height = gr_get_font_height() + 1; int count = 0; if(moveup != NULL){ @@ -1382,7 +1383,7 @@ gr_string(Mj_players_coords[gr_screen.res][MJ_X_COORD] + (Mj_players_coords[gr_screen.res][MJ_W_COORD] - w)/2,y_start,str,GR_RESIZE_MENU); count++; - y_start += 10; + y_start += line_height; moveup = moveup->next; } while((moveup != Active_game_head) && (count < Mj_max_game_items[gr_screen.res])); } @@ -1603,6 +1604,8 @@ void multi_join_process_select() { + int line_height = gr_get_font_height() + 1; + // if we don't have anything selected and there are items on the list - select the first one if((Multi_join_list_selected == -1) && (Active_game_count > 0)){ Multi_join_list_selected = 0; @@ -1622,7 +1625,7 @@ else if(Multi_join_select_button.pressed() && (Active_game_count > 0)){ int y,item; Multi_join_select_button.get_mouse_pos(NULL,&y); - item = y / 10; + item = y / line_height; if(item + Multi_join_list_start < Active_game_count){ gamesnd_play_iface(SND_IFACE_MOUSE_CLICK); @@ -1642,7 +1645,7 @@ if(Multi_join_select_button.double_clicked()){ int y,item; Multi_join_select_button.get_mouse_pos(NULL,&y); - item = y / 10; + item = y / line_height; if(item == Multi_join_list_selected){ multi_join_button_pressed(MJ_ACCEPT); } @@ -2850,7 +2853,7 @@ void multi_sg_rank_display_stuff() { - int y,idx,count; + int y,line_height,idx,count; char rank_name[40]; // if he doesn't have either of the rank flags set, then ignore this @@ -2860,6 +2863,7 @@ // display the list of ranks y = Msg_rank_list_coords[gr_screen.res][MSG_Y_COORD]; + line_height = gr_get_font_height() + 1; idx = Multi_sg_rank_start; count = 0; while((count < NUM_RANKS) && (count < Multi_sg_rank_max_display[gr_screen.res]) && (idx < NUM_RANKS)){ @@ -2875,7 +2879,7 @@ gr_string(Msg_rank_list_coords[gr_screen.res][MSG_X_COORD],y,rank_name,GR_RESIZE_MENU); // increment stuff - y+=10; + y+=line_height; idx++; count++; } @@ -2901,7 +2905,7 @@ if(Multi_sg_rank_button.pressed()){ int y,item; Multi_sg_rank_button.get_mouse_pos(NULL,&y); - item = y / 10; + item = y / (gr_get_font_height() + 1); if(item + Multi_sg_rank_start < NUM_RANKS){ // evaluate whether this rank is valid for the guy to pick @@ -4236,6 +4240,7 @@ int idx; char str[CALLSIGN_LEN+5]; int y_start = Mc_players_coords[gr_screen.res][MC_Y_COORD]; + int line_height = gr_get_font_height() + 1; int total_offset; // display all the players @@ -4276,7 +4281,7 @@ gr_force_fit_string(str,CALLSIGN_LEN,Mc_players_coords[gr_screen.res][MC_W_COORD] - total_offset); gr_string(Mc_players_coords[gr_screen.res][MC_X_COORD] + total_offset,y_start,str,GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } } @@ -4286,6 +4291,7 @@ int idx; char str[CALLSIGN_LEN+1]; int y_start = Mc_players_coords[gr_screen.res][MC_Y_COORD]; + int line_height = gr_get_font_height() + 1; int total_offset; // display all the red players first @@ -4350,7 +4356,7 @@ // display him in the correct half of the list depending on his team gr_string(Mc_players_coords[gr_screen.res][MC_X_COORD] + total_offset,y_start,str,GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } @@ -4416,7 +4422,7 @@ // display him in the correct half of the list depending on his team gr_string(Mc_players_coords[gr_screen.res][MC_X_COORD] + total_offset,y_start,str,GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } } @@ -4623,6 +4629,7 @@ { int idx; int start_index,stop_index; + int line_height = gr_get_font_height() + 1; char selected_name[255]; // bail early if there aren't any selectable items @@ -4634,7 +4641,7 @@ if(Multi_create_list_select_button.pressed()){ int y,item; Multi_create_list_select_button.get_mouse_pos(NULL,&y); - item = (y / 10); + item = (y / line_height); // make sure we are selectedin valid indices if((item < Multi_create_list_max_display[gr_screen.res]) && (item >= 0)){ @@ -4704,7 +4711,7 @@ gr_force_fit_string(selected_name, 255, Mc_column3_w[gr_screen.res]); gr_string(Mc_mission_fname_x[gr_screen.res], y_start, selected_name, GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; count++; } } @@ -5077,7 +5084,7 @@ Multi_create_player_select_button.get_mouse_pos(NULL,&y); // select things a little differently if we're in team vs. team or non-team vs. team mode - nth = (y / 10); + nth = (y / (gr_get_font_height() + 1)); if(Netgame.type_flags & NG_TYPE_TEAM){ int player_index = -1; @@ -6993,6 +7000,7 @@ int idx; char str[CALLSIGN_LEN+1]; int y_start = Mjw_players_coords[gr_screen.res][MJW_Y_COORD]; + int line_height = gr_get_font_height() + 1; int total_offset; // display all the players @@ -7033,7 +7041,7 @@ gr_force_fit_string(str,CALLSIGN_LEN,Mjw_players_coords[gr_screen.res][MJW_W_COORD] - total_offset); gr_string(Mjw_players_coords[gr_screen.res][MJW_X_COORD] + total_offset,y_start,str,GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } } @@ -7043,6 +7051,7 @@ int idx; char str[CALLSIGN_LEN+1]; int y_start = Mjw_players_coords[gr_screen.res][MJW_Y_COORD]; + int line_height = gr_get_font_height() + 1; int total_offset; // always blit the proper team button based on _my_ team status @@ -7105,7 +7114,7 @@ // display him in the correct half of the list depending on his team gr_string(Mjw_players_coords[gr_screen.res][MJW_X_COORD] + total_offset,y_start,str,GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } @@ -7165,7 +7174,7 @@ // display him in the correct half of the list depending on his team gr_string(Mjw_players_coords[gr_screen.res][MJW_X_COORD] + total_offset,y_start,str,GR_RESIZE_MENU); - y_start += 10; + y_start += line_height; } } } @@ -7183,7 +7192,7 @@ Multi_jw_plist_select_button.get_mouse_pos(NULL,&y); // select things a little differently if we're in team vs. team or non-team vs. team mode - nth = (y / 10); + nth = (y / (gr_get_font_height() + 1)); if(Netgame.type_flags & NG_TYPE_TEAM){ int player_index = -1; @@ -8341,6 +8350,7 @@ void multi_sync_display_name(const char *name,int index,int np_index) { char fit[CALLSIGN_LEN]; + int line_height = gr_get_font_height() + 1; // make sure the string actually fits strcpy_s(fit,name); @@ -8357,7 +8367,7 @@ } // blit the string - gr_string(Ms_status_coords[gr_screen.res][0] + Ms_cd_icon_offset[gr_screen.res] + Ms_team_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * 10),fit,GR_RESIZE_MENU); + gr_string(Ms_status_coords[gr_screen.res][0] + Ms_cd_icon_offset[gr_screen.res] + Ms_team_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * line_height),fit,GR_RESIZE_MENU); // blit his team icon // team 0 @@ -8366,7 +8376,7 @@ if(Net_players[np_index].flags & NETINFO_FLAG_TEAM_CAPTAIN){ if(Multi_common_icons[MICON_TEAM0_SELECT] != -1){ gr_set_bitmap(Multi_common_icons[MICON_TEAM0_SELECT]); - gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * 10) - 2, GR_RESIZE_MENU); + gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * line_height) - 2, GR_RESIZE_MENU); } } // normal team member icon @@ -8373,7 +8383,7 @@ else { if(Multi_common_icons[MICON_TEAM0] != -1){ gr_set_bitmap(Multi_common_icons[MICON_TEAM0]); - gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * 10) - 2, GR_RESIZE_MENU); + gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * line_height) - 2, GR_RESIZE_MENU); } } } @@ -8383,7 +8393,7 @@ if(Net_players[np_index].flags & NETINFO_FLAG_TEAM_CAPTAIN){ if(Multi_common_icons[MICON_TEAM1_SELECT] != -1){ gr_set_bitmap(Multi_common_icons[MICON_TEAM1_SELECT]); - gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * 10) - 2, GR_RESIZE_MENU); + gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * line_height) - 2, GR_RESIZE_MENU); } } // normal team member icon @@ -8390,7 +8400,7 @@ else { if(Multi_common_icons[MICON_TEAM1] != -1){ gr_set_bitmap(Multi_common_icons[MICON_TEAM1]); - gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * 10) - 2, GR_RESIZE_MENU); + gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * line_height) - 2, GR_RESIZE_MENU); } } } @@ -8405,13 +8415,13 @@ } // blit the string - gr_string(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * 10),fit,GR_RESIZE_MENU); + gr_string(Ms_status_coords[gr_screen.res][MS_X_COORD] + Ms_cd_icon_offset[gr_screen.res], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * line_height),fit,GR_RESIZE_MENU); } // maybe blit his CD status icon if((Net_players[np_index].flags & NETINFO_FLAG_HAS_CD) && (Multi_common_icons[MICON_CD] != -1)){ gr_set_bitmap(Multi_common_icons[MICON_CD]); - gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * 10), GR_RESIZE_MENU); + gr_bitmap(Ms_status_coords[gr_screen.res][MS_X_COORD], Ms_status_coords[gr_screen.res][MS_Y_COORD] + (index * line_height), GR_RESIZE_MENU); } } @@ -8423,7 +8433,7 @@ strcpy_s(fit, status); gr_force_fit_string(fit, 250, Ms_status2_coords[gr_screen.res][MS_W_COORD] - 20); gr_set_color_fast(&Color_bright); - gr_string(Ms_status2_coords[gr_screen.res][MS_X_COORD], Ms_status2_coords[gr_screen.res][MS_Y_COORD] + (index * 10), fit, GR_RESIZE_MENU); + gr_string(Ms_status2_coords[gr_screen.res][MS_X_COORD], Ms_status2_coords[gr_screen.res][MS_Y_COORD] + (index * (gr_get_font_height() + 1)), fit, GR_RESIZE_MENU); } void multi_sync_force_start_pre() @@ -8566,7 +8576,7 @@ Multi_sync_plist_button.get_mouse_pos(NULL,&my); // get the index of the item selected - select_index = my / 10; + select_index = my / (gr_get_font_height() + 1); // if the index is greater than the current # connections, do nothing if(select_index > (multi_num_connections() - 1)){ Index: code/sound/sound.cpp =================================================================== --- code/sound/sound.cpp (revision 11075) +++ code/sound/sound.cpp (working copy) @@ -253,11 +253,12 @@ } // spew info + int line_height = gr_get_font_height() + 1; gr_set_color_fast(&Color_normal); gr_printf_no_resize(30, 100, "Game sounds : %d\n", game_sounds); - gr_printf_no_resize(30, 110, "Interface sounds : %d\n", interface_sounds); - gr_printf_no_resize(30, 120, "Message sounds : %d\n", message_sounds); - gr_printf_no_resize(30, 130, "Total sounds : %d\n", game_sounds + interface_sounds + message_sounds); + gr_printf_no_resize(30, 100 + line_height, "Interface sounds : %d\n", interface_sounds); + gr_printf_no_resize(30, 100 + (line_height * 2), "Message sounds : %d\n", message_sounds); + gr_printf_no_resize(30, 100 + (line_height * 3), "Total sounds : %d\n", game_sounds + interface_sounds + message_sounds); } // --------------------------------------------------------------------------------------- |
|
Looks good. Patch committed. |
fs2open: trunk r11082 2014-09-24 22:43 Ported: N/A Details Diff |
Yarn's patch for Mantis 0003107 (Parts of the interface code assume a font size of 10) |
Affected Issues 0003107 |
|
mod - /trunk/fs2_open/code/io/timer.cpp | Diff File | ||
mod - /trunk/fs2_open/code/network/multiteamselect.cpp | Diff File | ||
mod - /trunk/fs2_open/code/menuui/optionsmenumulti.cpp | Diff File | ||
mod - /trunk/fs2_open/code/network/multi_rate.cpp | Diff File | ||
mod - /trunk/fs2_open/code/network/multi_dogfight.cpp | Diff File | ||
mod - /trunk/fs2_open/code/missionui/missionshipchoice.cpp | Diff File | ||
mod - /trunk/fs2_open/code/network/multi_ingame.cpp | Diff File | ||
mod - /trunk/fs2_open/code/missionui/chatbox.cpp | Diff File | ||
mod - /trunk/fs2_open/code/hud/hudtarget.cpp | Diff File | ||
mod - /trunk/fs2_open/code/network/multi_pxo.cpp | Diff File | ||
mod - /trunk/fs2_open/code/freespace2/freespace.cpp | Diff File | ||
mod - /trunk/fs2_open/code/sound/sound.cpp | Diff File | ||
mod - /trunk/fs2_open/code/hud/hudtargetbox.cpp | Diff File | ||
mod - /trunk/fs2_open/code/network/multiui.cpp | Diff File | ||
mod - /trunk/fs2_open/code/network/multi.cpp | Diff File | ||
mod - /trunk/fs2_open/code/missionui/missionweaponchoice.cpp | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-09-14 01:28 | Yarn | New Issue | |
2014-09-14 01:28 | Yarn | Status | new => assigned |
2014-09-14 01:28 | Yarn | Assigned To | => Yarn |
2014-09-14 01:29 | Yarn | File Added: mantis3107.patch | |
2014-09-14 01:29 | Yarn | Status | assigned => code review |
2014-09-25 02:07 | Goober5000 | Changeset attached | => fs2open trunk r11082 |
2014-09-25 02:07 | Goober5000 | Note Added: 0016297 | |
2014-09-25 02:07 | Goober5000 | Status | code review => resolved |
2014-09-25 02:07 | Goober5000 | Resolution | open => fixed |
2014-09-25 02:07 | Goober5000 | Fixed in Version | => 3.7.2 |