//-------- Begin of static function put_spy_rec --------// // static void put_spy_rec(int recNo, int x, int y, int refreshFlag) { int x2 = x+browse_spy.rec_width-1; //-------- display icon of the spy unit -----// Spy* spyPtr = spy_array[ spy_filter(recNo) ]; //-------- get the rank of the spy --------// int unitId = race_res[spyPtr->race_id]->basic_unit_id; int rankId = RANK_SOLDIER; if( spyPtr->spy_place == SPY_FIRM ) { int unitRecno = firm_array[spyPtr->spy_place_para]->overseer_recno; if( unitRecno && unit_array[unitRecno]->spy_recno == spyPtr->spy_recno ) rankId = RANK_GENERAL; } //---------- display unit icon ---------// if( refreshFlag == INFO_REPAINT ) { vga.d3_panel_down(x+1, y+1, x+UNIT_SMALL_ICON_WIDTH+4, y+UNIT_SMALL_ICON_HEIGHT+4 ); vga_front.put_bitmap(x+3, y+3, unit_res[unitId]->get_small_icon_ptr(rankId) ); } //--------- set help parameters --------// if( mouse.in_area(x+1, y+1, x+RACE_ICON_WIDTH+4, y+RACE_ICON_HEIGHT+4) ) { help.set_unit_help( unitId, rankId, x+1, y+1, x+RACE_ICON_WIDTH+4, y+RACE_ICON_HEIGHT+4 ); } //-------- display spy skill -------// font_san.put( x+40, y+6, spyPtr->spy_skill, 1, x+66 ); //-------- display spy loyalty -------// font_san.put( x+67, y+6, spyPtr->spy_loyalty, 1, x+94 ); //------ display the action mode of the spy ------// vga.blt_buf( x+95, y+6, x2, y+5+font_san.height(), 0 ); font_san.use_max_height(); font_san.center_put( x+95, y+6, x2, y+5+font_san.height(), spyPtr->action_str() ); font_san.use_std_height(); }
//-------- Begin of static function put_spy_rec --------// // static void put_spy_rec(int recNo, int x, int y, int refreshFlag) { int spyRecno = spy_filter(recNo); Spy* spyPtr = spy_array[spyRecno]; x+=3; y+=5; //------ display rank/skill icon -------// int cloakedRankId = spyPtr->cloaked_rank_id(); int cloakedSkillId = spyPtr->cloaked_skill_id(); String str; switch( cloakedRankId ) { case RANK_KING: str = "U_KING"; break; case RANK_GENERAL: str = "U_GENE"; break; case RANK_SOLDIER: if( cloakedSkillId ) { str = "U_"; str += Skill::skill_code_array[cloakedSkillId-1]; } else { str = ""; } break; } if( str.len() > 0 ) image_icon.put_back(x, y+1, str); //------ display race icon -------------// vga_back.put_bitmap( x+13, y-4, race_res[spyPtr->race_id]->icon_bitmap_ptr ); //----------- display name -----------// font_san.put( x+39, y, race_res[spyPtr->race_id]->get_name(spyPtr->name_id), 0, 185 ); //------- display cloaked nation color ------// int tx = x+170; if( spyPtr->cloaked_nation_recno==0 ) // independent nation { vga_back.bar( tx, y, tx+12, y+12, V_WHITE ); vga_back.rect( tx, y, tx+12, y+12, 1, VGA_GRAY+8 ); } else { nation_array[spyPtr->cloaked_nation_recno]->disp_nation_color(tx, y+2); } //---------- display other info ----------// switch( spyPtr->spy_place ) { case SPY_FIRM: str = firm_res[firm_array[spyPtr->spy_place_para]->firm_id]->name; break; case SPY_TOWN: str = town_array[spyPtr->spy_place_para]->town_name(); break; case SPY_MOBILE: { Unit* unitPtr = unit_array[spyPtr->spy_place_para]; switch( unitPtr->unit_mode ) { case UNIT_MODE_CONSTRUCT: str = firm_res[firm_array[unitPtr->unit_mode_para]->firm_id]->name; break; case UNIT_MODE_ON_SHIP: str = "On Ship"; break; default: str = "Mobile"; } break; } default: str = ""; } font_san.put( x+205, y, str ); font_san.put( x+335, y, spyPtr->spy_skill ); font_san.put( x+385, y, spyPtr->spy_loyalty ); font_san.put( x+435, y, spyPtr->action_str() ); }