--- /home/dzinsli/source/freeciv-cvs/client/gui-gtk/repodlgs.c Tue Feb 29 14:37:44 2000 +++ /home/dzinsli/source/freeciv/client/gui-gtk/repodlgs.c Wed Mar 8 17:57:54 2000 @@ -278,13 +278,15 @@ science_dialog_update(); } else { - my_snprintf(text, sizeof(text), "%d/%d", - game.player_ptr->research.researched, - research_time(game.player_ptr)); - gtk_set_label(science_current_label,text); - - packet.tech=to; - send_packet_player_request(&aconnection, &packet, PACKET_PLAYER_RESEARCH); + my_snprintf(text, sizeof(text), _("%d/%d %d turns per research"), + game.player_ptr->research.researched, + research_time(game.player_ptr), + turns_to_research (game.player_ptr)); + + gtk_set_label(science_current_label,text); + + packet.tech=to; + send_packet_player_request(&aconnection, &packet, PACKET_PLAYER_RESEARCH); } } @@ -385,9 +387,11 @@ gtk_widget_destroy(popupmenu); popupmenu = gtk_menu_new(); - my_snprintf(text, sizeof(text), "%d/%d", + my_snprintf(text, sizeof(text), _("%d/%d %d turns per research"), game.player_ptr->research.researched, - research_time(game.player_ptr)); + research_time(game.player_ptr), + turns_to_research (game.player_ptr)); + gtk_set_label(science_current_label,text); hist=0; --- /home/dzinsli/source/freeciv-cvs/common/tech.c Wed Jan 12 19:08:09 2000 +++ /home/dzinsli/source/freeciv/common/tech.c Wed Mar 8 17:49:10 2000 @@ -213,3 +213,20 @@ return A_LAST; } +/************************************************************************** + Returns number of turns to complete a research +**************************************************************************/ +int turns_to_research ( struct player *pplayer) { + + double res = 0; + + city_list_iterate(pplayer->cities, pcity) + res += pcity->science_total; + city_list_iterate_end; + + if (res <= 0) + return 999; + + return ((research_time(pplayer) + res - 1) / res); + +} --- /home/dzinsli/source/freeciv-cvs/common/tech.h Wed Jan 12 19:08:09 2000 +++ /home/dzinsli/source/freeciv/common/tech.h Wed Mar 8 17:49:42 2000 @@ -79,7 +79,7 @@ int tech_flag(int tech, int flag); enum tech_flag_id tech_flag_from_str(char *s); int find_tech_by_flag( int index, int flag ); - +int turns_to_research ( struct player *pplayer); extern struct advance advances[];