diff -Nurd -Xfreeciv/diff_ignore freeciv/common/improvement.c fi/common/improvement.c --- freeciv/common/improvement.c Sat Jan 12 16:38:36 2002 +++ fi/common/improvement.c Sat Jan 12 17:30:30 2002 @@ -526,18 +526,28 @@ Impr_Type_id impr, struct city *pcity) { struct impr_effect *ie; - int i; + int j, i; + int effects[EFR_LAST]; assert(pcity && impr>=0 && imprtyperange) { - case EFR_ISLAND: geffs[i++]=get_eff_island(pcity); break; - case EFR_PLAYER: geffs[i++]=get_eff_player(city_owner(pcity)); break; - case EFR_WORLD: geffs[i++]=get_eff_world(); break; - default: break; + effects[ie->range]=TRUE; + } + } + + i=0; + for (j=0; j