diff -Nur -X/data/freeciv-dev/freeciv/diff_ignore freeciv/client/options.c patchciv/client/options.c --- freeciv/client/options.c Sun Jan 21 00:36:41 2001 +++ patchciv/client/options.c Sun Jan 21 00:40:13 2001 @@ -133,6 +133,9 @@ N_("First Contact"), /* E_FIRST_CONTACT */ N_("City May Soon Grow"), /* E_CITY_MAY_SOON_GROW */ N_("Wonder Made Obsolete"), /* E_WONDER_OBSOLETE */ + N_("Famine Feared in City"), /* E_CITY_FAMINE_FEARED */ + N_("Wonder Will Be Finished Next Turn"), /* E_CITY_WONDER_WILL_BE_BUILT */ + N_("Learned New Government"), /* E_NEW_GOVERNMENT */ }; /************************************************************************** diff -Nur -X/data/freeciv-dev/freeciv/diff_ignore freeciv/common/events.h patchciv/common/events.h --- freeciv/common/events.h Sun Jan 21 00:36:47 2001 +++ patchciv/common/events.h Sun Jan 21 00:40:17 2001 @@ -56,6 +56,9 @@ E_FIRST_CONTACT, E_CITY_MAY_SOON_GROW, E_WONDER_OBSOLETE, + E_CITY_FAMINE_FEARED, + E_CITY_WONDER_WILL_BE_BUILT, + E_NEW_GOVERNMENT, /* Note: If you add a new event, make sure you make a similar change to message_text in client/options.c */ diff -Nur -X/data/freeciv-dev/freeciv/diff_ignore freeciv/server/cityturn.c patchciv/server/cityturn.c --- freeciv/server/cityturn.c Sun Jan 21 00:36:51 2001 +++ patchciv/server/cityturn.c Sun Jan 21 00:40:21 2001 @@ -762,6 +762,14 @@ int turns_growth, turns_granary; int can_grow; + if (!pcity->is_building_unit && is_wonder(pcity->currently_building) && + (city_turns_to_build(pcity,pcity->currently_building,0) <= 1)) { + notify_conn_ex(dest, pcity->x, pcity->y, + E_CITY_WONDER_WILL_BE_BUILT, + _("Game: Notice: Wonder %s in %s will be finished next turn"), + get_improvement_name(pcity->currently_building), pcity->name); + } + if (pcity->food_surplus > 0) { turns_growth = (((pcity->size+1) * game.foodbox) - pcity->food_stock - 1) / pcity->food_surplus; @@ -793,7 +801,15 @@ _("Game: %s may soon grow to size %i."), pcity->name, pcity->size + 1); } + } else { + if (pcity->food_stock + pcity->food_surplus <= 0 && pcity->food_surplus < 0) { + notify_conn_ex(dest, pcity->x, pcity->y, + E_CITY_FAMINE_FEARED, + _("Game: Warning: Famine feared in %s."), + pcity->name); + } } + } /************************************************************************** @@ -955,7 +971,7 @@ static void city_reduce_size(struct city *pcity) { notify_player_ex(city_owner(pcity), pcity->x, pcity->y, E_CITY_FAMINE, - _("Game: Famine feared in %s."), pcity->name); + _("Game: Famine causes population loss in %s."), pcity->name); if (city_got_effect(pcity, B_GRANARY)) pcity->food_stock=(pcity->size*game.foodbox)/2; else diff -Nur -X/data/freeciv-dev/freeciv/diff_ignore freeciv/server/plrhand.c patchciv/server/plrhand.c --- freeciv/server/plrhand.c Sun Jan 21 00:36:54 2001 +++ patchciv/server/plrhand.c Sun Jan 21 00:40:28 2001 @@ -205,6 +205,7 @@ void found_new_tech(struct player *plr, int tech_found, char was_discovery, char saving_bulbs) { + int i; int philohack=0; int was_first=0; int saved_bulbs; @@ -219,6 +220,16 @@ get_nation_name_plural(plr->nation), advances[tech_found].name ); + + for (i=0; i<=game.government_count; i++) { + if (tech_found == governments[i].required_tech) { + notify_player_ex(plr,-1,-1, E_NEW_GOVERNMENT, + _("Game: Discovery of %s makes the government form %s" + "available. You may want to start a revolution."), + advances[tech_found].name, get_government_name(i)); + } + } + /* Alert the owners of any wonders that have been made obsolete */ for (wonder = 0; wonder < game.num_impr_types; wonder++) if (game.global_wonders[wonder] && is_wonder(wonder) &&