diff -Nur -X/home/thue/freeciv-dev/no.freeciv freeciv/server/citytools.c raze/server/citytools.c --- freeciv/server/citytools.c Thu Apr 13 20:46:21 2000 +++ raze/server/citytools.c Fri Apr 14 10:12:17 2000 @@ -952,7 +952,7 @@ a unit from another city, and both cities join the rebellion. We resolved stack conflicts for each city we would teleport the first of the units we met since the other would have another owner */ - if(!(pnewcity = transfer_city(cplayer, pplayer, pcity, -1, 0, 1))){ + if(!(pnewcity = transfer_city(cplayer, pplayer, pcity, -1, 0, 1, 0))){ freelog(LOG_VERBOSE, "Transfer city returned no city - aborting civil war."); return; @@ -994,7 +994,7 @@ ***************************************************************/ struct city *transfer_city(struct player *pplayer, struct player *cplayer, struct city *pcity, int kill_outside, - int transfer_unit_verbose, int resolve_stack) + int transfer_unit_verbose, int resolve_stack, int raze) { struct city *pnewcity; int i; @@ -1034,6 +1034,9 @@ update_map_with_city_workers(pnewcity); city_refresh(pnewcity); initialize_infrastructure_cache(pnewcity); + if (raze) + raze_city(pnewcity); + send_city_info(0, pnewcity); if (terrain_control.may_road && diff -Nur -X/home/thue/freeciv-dev/no.freeciv freeciv/server/citytools.h raze/server/citytools.h --- freeciv/server/citytools.h Thu Apr 13 20:46:21 2000 +++ raze/server/citytools.h Fri Apr 14 10:07:13 2000 @@ -64,7 +64,7 @@ void civil_war(struct player *pplayer); struct city *transfer_city(struct player *pplayer, struct player *cplayer, struct city *pcity, int kill_outside, - int transfer_unit_verbose, int resolve_stack); + int transfer_unit_verbose, int resolve_stack, int raze); struct city *find_closest_owned_city(struct player *pplayer, int x, int y); void adjust_city_free_cost(int *num_free, int *this_cost); diff -Nur -X/home/thue/freeciv-dev/no.freeciv freeciv/server/diplhand.c raze/server/diplhand.c --- freeciv/server/diplhand.c Thu Apr 13 20:46:21 2000 +++ raze/server/diplhand.c Fri Apr 14 10:12:55 2000 @@ -193,7 +193,7 @@ notify_player(pgiver, _("Game: You give city of %s to %s."), pcity->name, pdest->name); - if(!(pnewcity = transfer_city(pdest, pgiver, pcity,-1,1,1))){ + if(!(pnewcity = transfer_city(pdest, pgiver, pcity, -1, 1, 1, 0))){ freelog(LOG_NORMAL, "Transfer city returned no city - skipping clause."); break; } diff -Nur -X/home/thue/freeciv-dev/no.freeciv freeciv/server/unitfunc.c raze/server/unitfunc.c --- freeciv/server/unitfunc.c Thu Apr 13 20:46:22 2000 +++ raze/server/unitfunc.c Fri Apr 14 10:16:30 2000 @@ -774,7 +774,7 @@ * are within one square of the city) to the new owner. */ pcity->shield_stock = 0; - pnewcity = transfer_city (pplayer, cplayer, pcity, 1, 1, 1); + pnewcity = transfer_city (pplayer, cplayer, pcity, 1, 1, 1, 0); /* You get a technology advance, too! */ get_a_tech (pplayer, cplayer); diff -Nur -X/home/thue/freeciv-dev/no.freeciv freeciv/server/unithand.c raze/server/unithand.c --- freeciv/server/unithand.c Thu Apr 13 20:46:22 2000 +++ raze/server/unithand.c Fri Apr 14 10:09:35 2000 @@ -1237,8 +1237,7 @@ get_a_tech(pplayer, cplayer); make_partisans(pcity); - pnewcity = transfer_city(pplayer, cplayer, pcity , 0, 0, 1); - raze_city(pnewcity); + pnewcity = transfer_city(pplayer, cplayer, pcity , 0, 0, 1, 1); if (do_civil_war) civil_war(cplayer);