//-------- Begin of static function put_nation_rec --------// // static void put_nation_rec(int recNo, int x, int y, int refreshFlag) { int nationRecno = nation_filter(recNo); Nation* nationPtr = nation_array[nationRecno]; Nation* viewingNation = nation_array[info.viewing_nation_recno]; NationRelation* nationRelation = viewingNation->get_relation(nationRecno); x+=3; y+=5; nationPtr->disp_nation_color(x, y+1); font_san.put( x+20 , y, nationPtr->nation_name(), 0, x+215 ); font_san.put( x+220, y, m.format((int) nationPtr->reputation) ); //------- display relation parameters --------// if( nationRecno != info.viewing_nation_recno ) { font_san.put( x+272, y, nationRelation->status_str() ); font_san.put( x+355, y, nationRelation->should_attack ? (char*)"Yes" : (char*)"No" ); font_san.put( x+412, y, nationRelation->trade_treaty ? (char*)"Yes" : (char*)"No" ); font_san.put( x+465, y, m.format( (int) viewingNation->total_year_trade(nationRecno),2) ); if( config.show_ai_info ) { font_san.put( x+510, y, m.format(nationPtr->get_relation(info.viewing_nation_recno)->ai_relation_level) ); font_san.put( x+180, y, m.format( (int) nationPtr->get_relation(info.viewing_nation_recno)->good_relation_duration_rating) ); } } }
//--------- Begin of static function disp_nation_info ---------// // static void disp_nation_info() { vga.d3_panel_down( REPORT_DET_X1, REPORT_DET_Y1, REPORT_DET_X2, REPORT_DET_Y2 ); //----------- display info ------------// int nationRecno = nation_filter(browse_nation.recno()); Nation* nationPtr = nation_array[nationRecno]; Nation* viewingNation = nation_array[info.viewing_nation_recno]; NationRelation* nationRelation = viewingNation->get_relation(nationRecno); int x1=REPORT_DET_X1+6, x2=REPORT_DET_X1+340, x3=REPORT_DET_X2-10; int y=REPORT_DET_Y1+6; //-------- display economic data ----------// String str; if( nationRecno == info.viewing_nation_recno ) { font_san.put_field( x1, y, "Your Food", x2, nationPtr->food_str() ); str = "$"; str += nationPtr->cash_str(); font_san.put_field( x1, y+=16, "Your Treasure", x2, str ); font_san.field( x1, y+=16, "Your Continuous Peace Time", x2, nationPtr->peace_duration_str(), x3, INFO_REPAINT, "PEACE" ); } else { str = translate.process("Your Yearly Import from "); str += nationPtr->nation_name(); font_san.field( x1, y , str, x2, (int) viewingNation->get_relation(nationRecno)->import_365days(IMPORT_TOTAL), 2, x3, INFO_REPAINT, "IMPORT" ); str = translate.process("Your Yearly Export to "); str += nationPtr->nation_name(); font_san.field( x1, y+=16, str, x2, (int) nationPtr->get_relation(info.viewing_nation_recno)->import_365days(IMPORT_TOTAL), 2, x3, INFO_REPAINT, "EXPORT" ); str = translate.process("Continuous Peace Time of "); str += nationPtr->nation_name(); font_san.field( x1, y+=16, str, x2, nationPtr->peace_duration_str(), x3, INFO_REPAINT, "PEACE" ); //--------- duration of current status ----------// #if(defined(SPANISH)) str = "Duración del estado de "; str += translate.process(nationRelation->status_str()); #elif(defined(FRENCH)) str = "Duration of "; str += nationRelation->status_str(); str += " Status"; str = translate.process(str); #else // GERMAN and US str = translate.process("Duration of "); str += translate.process(nationRelation->status_str()); str += " Status"; #endif font_san.field( x1, y+=16, str, x2, nationRelation->status_duration_str(), x3, INFO_REPAINT, "STATTIME" ); //------- display the allow_attack field --------// #if(defined(SPANISH)) // str = "Permitir que tus Unidades ataquen al "; str = "Permitir atacar al "; str += nationPtr->nation_name(); #elif(defined(FRENCH)) str = "Autoriser attaque contre le "; str += nationPtr->nation_name(); #elif(defined(GERMAN)) str = "Angriffe auf "; str += nationPtr->nation_name(); str += " erlauben"; #else str = "Allow Your Units to Attack "; str += nationPtr->nation_name(); #endif font_san.field( x1, y+=16, str, x2, "", x3, INFO_REPAINT, "ALLOWATK" ); button_allow_attack[1].create_text( x2+6 , y, x2+50 , y+15, "Yes" ); button_allow_attack[0].create_text( x2+54, y, x2+100, y+15, "No" ); button_allow_attack.paint( viewingNation->get_relation(nationRecno)->should_attack ); //---- if this nation is our ally, display its cash and food ----// if( viewingNation->get_relation(nationRecno)->status == NATION_ALLIANCE ) { #if(defined(SPANISH)) str = "Tesoro del "; str += nationPtr->nation_name(); #elif(defined(FRENCH)) str = "Trésor du "; str += nationPtr->nation_name(); #else // GERMAN and US str = nationPtr->nation_name(); str += " 's Treasure"; #endif font_san.field( x1, y+=16, str, x2, nationPtr->cash, 2, x3, INFO_REPAINT ); #if(defined(SPANISH)) str = "Alimentos del "; str += nationPtr->nation_name(); #elif(defined(FRENCH)) str = "Réserves de nourriture du "; str += nationPtr->nation_name(); #else // GERMAN and US str = nationPtr->nation_name(); str += " 's Food"; #endif font_san.field( x1, y+=16, str, x2, nationPtr->food, 2, x3, INFO_REPAINT ); } } y+=26; //----- display its relation status with other nations -----// if( info.viewing_nation_recno != nationRecno ) { String str; #if(defined(SPANISH)) str = "Estado Diplomático del "; str += nationPtr->nation_name(); str += " con otros Reinos:"; #elif(defined(FRENCH)) str = "Relations diplomatiques de "; str += nationPtr->nation_name(); str += " avec les autres royaumes:"; #else // GERMAN and US str = nationPtr->nation_name(); str += "'s "; str += translate.process( "Diplomatic Status with Other Kingdoms:" ); #endif nationPtr->disp_nation_color(x1, y+1); font_san.put(x1+20, y, str); y+=20; for( int i=1 ; i<=nation_array.size() ; i++ ) { if( nation_array.is_deleted(i) || i == nationRecno || i == info.viewing_nation_recno ) { continue; } nation_array[i]->disp_nation_color(x1, y+1); font_san.put( x1+20, y, nation_array[i]->nation_name() ); font_san.put( x1+240, y, nationPtr->get_relation(i)->status_str() ); if( nationPtr->get_relation(i)->trade_treaty ) { font_san.put( x1+330, y, "Trade Treaty" ); #if(defined(FRENCH)) font_san.put( x1+460, y, m.format((int)nationPtr->total_year_trade(i),2) ); #else // German and US font_san.put( x1+450, y, m.format((int)nationPtr->total_year_trade(i),2) ); #endif } if( config.show_ai_info ) { font_san.put( x1+500, y, nationPtr->get_relation(i)->ai_relation_level ); font_san.put( x1+530, y, (int) nationPtr->get_relation(i)->good_relation_duration_rating ); } y+=16; } } }
//--------- Begin of static function disp_nation_info ---------// // static void disp_nation_info() { vga_util.d3_panel_down( REPORT_DET_X1, REPORT_DET_Y1, REPORT_DET_X2, REPORT_DET_Y2 ); //----------- display info ------------// int nationRecno = info.nation_filter(browse_nation.recno()); Nation* nationPtr = nation_array[nationRecno]; Nation* viewingNation = nation_array[info.viewing_nation_recno]; NationRelation* nationRelation = viewingNation->get_relation(nationRecno); int x1=REPORT_DET_X1+6, x2=REPORT_DET_X1+380, x3=REPORT_DET_X2-10; int y=REPORT_DET_Y1+6; const int lineSpacing = 19; //---- display the nationality of the king ----// if( nationPtr->is_human() ) font_bld.put_field( x1, y, text_reports.str_king_race(nationPtr->race_id), x2, nationPtr->is_human() ? race_res[nationPtr->race_id]->name : monster_res[nationPtr->monster_id()]->name ); y += lineSpacing; //-------- display economic data ----------// String str; if( nationRecno == info.viewing_nation_recno ) { // font_bld.put_field( x1, y, "Your Food", x2, nationPtr->food_str() ); font_bld.put_field( x1, y, text_reports.str_your_food(), x2, nationPtr->food_str() ); str = "$"; str += nationPtr->cash_str(); font_bld.put_field( x1, y+=lineSpacing, text_reports.str_your_treasure(), x2, str ); if( nationPtr->is_monster() ) font_bld.put_field( x1, y+=lineSpacing, text_reports.str_your_live_points(), x2, (int) nationPtr->live_points ); font_bld.field( x1, y+=lineSpacing, text_reports.str_your_peace_time(), x2, nationPtr->peace_duration_str(), x3, INFO_REPAINT, "PEACE" ); } else { //str = translate.process("Your Yearly Import from "); //str += nationPtr->nation_name(); // font_bld.field( x1, y , str, x2, (int) viewingNation->get_relation(nationRecno)->import_365days(IMPORT_TOTAL), 2, x3, INFO_REPAINT, "IMPORT" ); font_bld.field( x1, y , text_reports.str_enemy_import_from(nationPtr->nation_name()), x2, (int) viewingNation->get_relation(nationRecno)->import_365days(IMPORT_TOTAL), 2, x3, INFO_REPAINT, "IMPORT" ); // str = translate.process("Your Yearly Export to "); // str += nationPtr->nation_name(); // font_bld.field( x1, y+=lineSpacing, str, x2, (int) nationPtr->get_relation(info.viewing_nation_recno)->import_365days(IMPORT_TOTAL), 2, x3, INFO_REPAINT, "EXPORT" ); font_bld.field( x1, y+=lineSpacing, text_reports.str_enemy_export_to(nationPtr->nation_name()), x2, (int) nationPtr->get_relation(info.viewing_nation_recno)->import_365days(IMPORT_TOTAL), 2, x3, INFO_REPAINT, "EXPORT" ); // str = translate.process("Continuous Peace Time of "); // str += nationPtr->nation_name(); // font_bld.field( x1, y+=lineSpacing, str, x2, nationPtr->peace_duration_str(), x3, INFO_REPAINT, "PEACE" ); font_bld.field( x1, y+=lineSpacing, text_reports.str_enemy_peace_time(nationPtr->nation_name()), x2, nationPtr->peace_duration_str(), x3, INFO_REPAINT, "PEACE" ); //--------- duration of current status ----------// // str = translate.process("Duration of "); // str += translate.process(nationRelation->status_str()); // str += " Status"; // font_bld.field( x1, y+=lineSpacing, str, x2, nationRelation->status_duration_str(), x3, INFO_REPAINT, "STATTIME" ); font_bld.field( x1, y+=lineSpacing, text_reports.str_enemy_status_duration(nationRelation->status_str()), x2, nationRelation->status_duration_str(), x3, INFO_REPAINT, "STATTIME" ); //------- display the allow_attack field --------// // str = "Allow Your Units to Attack "; // str += nationPtr->nation_name(); // font_bld.field( x1, y+=lineSpacing, str, x2, "", x3, INFO_REPAINT, "ALLOWATK" ); font_bld.field( x1, y+=lineSpacing, text_reports.str_enemy_allow_attack(nationPtr->nation_name()), x2, "", x3, INFO_REPAINT, "ALLOWATK" ); // button_allow_attack[0].set_font( &font_bld ); // button_allow_attack[1].set_font( &font_bld ); button_allow_attack[1].create_text( x2+6 , y, x2+50 , y+lineSpacing-1, text_reports.str_no_yes(1)); // "Yes" ); button_allow_attack[0].create_text( x2+54, y, x2+100, y+lineSpacing-1, text_reports.str_no_yes(0)); // "No" ); button_allow_attack.paint( viewingNation->get_relation(nationRecno)->should_attack ); //---- if this nation is our ally, display its cash and food ----// if( viewingNation->get_relation(nationRecno)->status == RELATION_ALLIANCE ) { // str = nationPtr->nation_name(); // str += " 's Treasure"; // font_bld.field( x1, y+=lineSpacing, str, x2, nationPtr->cash, 2, x3, INFO_REPAINT ); font_bld.field( x1, y+=lineSpacing, text_reports.str_ally_cash(nationPtr->nation_name()), x2, nationPtr->cash, 2, x3, INFO_REPAINT ); // str = nationPtr->nation_name(); // str += " 's Food"; // font_bld.field( x1, y+=lineSpacing, str, x2, nationPtr->food, 1, x3, INFO_REPAINT ); font_bld.field( x1, y+=lineSpacing, text_reports.str_ally_food(nationPtr->nation_name()), x2, nationPtr->food, 1, x3, INFO_REPAINT ); } } y+=lineSpacing+10; //----- display its relation status with other nations -----// if( info.viewing_nation_recno != nationRecno ) { // String str; nationPtr->disp_nation_color(x1, y+1); font_bld.put(x1+20, y, text_reports.str_enemy_relation(nationPtr->nation_name())); y+=20; for( int i=1 ; i<=nation_array.size() ; i++ ) { if( nation_array.is_deleted(i) || i == nationRecno || i == info.viewing_nation_recno ) { continue; } nation_array[i]->disp_nation_color(x1, y+1); font_bld.put( x1+20, y, nation_array[i]->nation_name() ); font_bld.put( x1+240, y, nationPtr->get_relation(i)->status_str() ); if( nationPtr->get_relation(i)->trade_treaty ) { int x2 = font_bld.put( x1+330, y, text_talk.str_trade_treaty()); // "Trade Treaty" ); // font_bld.put( x1+450, y, misc.format((int)nationPtr->total_year_trade(i),2) ); font_bld.put( x2+10, y, misc.format((int)nationPtr->total_year_trade(i),2) ); } if( config.show_debug_info ) { font_bld.put( x1+500, y, nationPtr->get_relation(i)->ai_relation_level ); font_bld.put( x1+530, y, (int) nationPtr->get_relation(i)->good_relation_duration_rating ); } y+=16; } } }
//-------- Begin of static function put_nation_rec --------// // static void put_nation_rec(int recNo, int x, int y, int refreshFlag) { int nationRecno = info.nation_filter(recNo); Nation* nationPtr = nation_array[nationRecno]; Nation* viewingNation = nation_array[info.viewing_nation_recno]; NationRelation* nationRelation = viewingNation->get_relation(nationRecno); x+=3; // ###### begin Gilbert 19/10 ######// y+=3; nationPtr->disp_nation_color(x, y+3); // ###### end Gilbert 19/10 ######// font_bld.put( x+20 , y, nationPtr->nation_name(), 0, x+215 ); if( nationPtr->is_human() ) font_bld.put( x+220, y, misc.format((int) nationPtr->reputation) ); //------- display relation parameters --------// if( nationRecno != info.viewing_nation_recno ) { String str; str = nationRelation->status_str(); if( config.show_ai_info ) { if( nationPtr->nation_type == NATION_AI ) { str += " ("; str += nationRelation->ai_relation_level; str += ")"; } } font_bld.put( x+262, y, str, 0, x+350 ); // font_bld.put( x+355, y, nationRelation->should_attack ? "Yes" : "No" ); font_bld.put( x+355, y, text_reports.str_no_yes(nationRelation->should_attack) ); // font_bld.put( x+412, y, nationRelation->trade_treaty ? "Yes" : "No" ); font_bld.put( x+412, y, text_reports.str_no_yes(nationRelation->trade_treaty) ); // ###### begin Gilbert 11/5 ########// // if the player has lost connection, display "disconnect" instead if( remote.is_enable() && nationPtr->is_ai() && nationPtr->player_id != 0 ) { font_red.put( x+465, y, text_reports.str_disconnect() ); //"Disconnect" ); } else { font_bld.put( x+465, y, misc.format( (int) viewingNation->total_year_trade(nationRecno),2) ); } // ###### end Gilbert 11/5 ########// if( config.show_debug_info ) { font_bld.put( x+510, y, misc.format(nationPtr->get_relation(info.viewing_nation_recno)->ai_relation_level) ); font_bld.put( x+180, y, misc.format( (int) nationPtr->get_relation(info.viewing_nation_recno)->good_relation_duration_rating) ); } } }