//--------- Begin of function FirmResearch::disp_research_info ---------// // void FirmResearch::disp_research_info(int dispY1, int refreshFlag) { static short lastTechId=0; if( refreshFlag==INFO_UPDATE && lastTechId != tech_id ) { lastTechId = tech_id; info.disp(); } //---------------- paint the panel --------------// if( refreshFlag == INFO_REPAINT ) vga.d3_panel_up( INFO_X1, dispY1, INFO_X2, dispY1+50 ); if( !tech_id ) return; int x=INFO_X1+4, y=dispY1+4; //-------- display the icon of the researching item ---------// TechInfo* techInfo = tech_res[tech_id]; if( refreshFlag == INFO_REPAINT ) { vga.d3_panel_down( x, y, x+TECH_LARGE_ICON_WIDTH+3, y+TECH_LARGE_ICON_HEIGHT+3, 2 ); vga_front.put_bitmap( x+2, y+2, techInfo->tech_large_icon() ); //----------- display text ------------// x += TECH_LARGE_ICON_WIDTH+10; String str; str = techInfo->tech_des(); int researchVersion = techInfo->get_nation_tech_level(nation_recno)+1; // research the next non-researched version if( researchVersion > 1 ) { str += " "; str += m.roman_number(researchVersion); } font_san.put( x, y+4, str); } else { x += TECH_LARGE_ICON_WIDTH+10; } vga_front.indicator( 0, x-2, y+21, techInfo->get_progress(nation_recno), (float)100, VGA_GRAY ); }
//-------- Begin of static function i_disp_research_button --------// // void i_disp_research_button(ButtonCustom *button, int repaintBody) { int x1 = button->x1; int y1 = button->y1; int x2 = button->x2; int y2 = button->y2; if( button->pushed_flag ) { vga.d3_panel2_down(x1, y1, x2, y2); x1++; y1++; } else { vga.d3_panel2_up(x1, y1, x2, y2); x2--; y2--; } //--------------------------------------------// TechInfo* techInfo = tech_res[button->custom_para.value]; // Vga::active_buf->d3_panel_down(x1+2, y1+2, x1+TECH_LARGE_ICON_WIDTH+7, y1+TECH_LARGE_ICON_HEIGHT+7, 2, 0 ); Vga::active_buf->put_bitmap(x1+4, y1+4, techInfo->tech_large_icon() ); //------ display research description -------// String str; str = techInfo->tech_des(); Firm *firmPtr = (Firm *) button->custom_para.ptr; int researchVersion = techInfo->get_nation_tech_level(firmPtr->nation_recno)+1; // research the next non-researched version if( researchVersion > 1 ) { str += " "; str += m.roman_number(researchVersion); } font_bible.put( x1+TECH_LARGE_ICON_WIDTH+12, y1+14, str ); }