--- data/default/game.ruleset.orig Sun Jul 9 22:48:10 2000 +++ data/default/game.ruleset Tue Sep 26 00:58:18 2000 @@ -38,3 +38,9 @@ ; "Pollution" - Pollution (same as industrial/population-generated). ; "Fallout" - Nuclear Fallout (distinct from industrial/population). nuke_contamination = "Fallout" + +;If this is set to 1, all units in the same tile of a killed unit will +;be killed (unless they are on a fortress, airbase or city) +;If this options is set to 0, units are killed one by one, +;except by nuclear weapons, of course. +killstack = 1 --- common/packets.c.orig Tue Sep 26 00:17:26 2000 +++ common/packets.c Tue Sep 26 00:53:32 2000 @@ -3791,7 +3791,8 @@ if (pc && has_capability("nuclear_fallout", pc->capability)) { cptr=put_uint8(cptr, packet->nuke_contamination); } - + cptr=put_uint8(cptr, packet->killstack); + put_uint16(buffer, cptr-buffer); return send_connection_data(pc, buffer, cptr-buffer); } @@ -3820,6 +3821,7 @@ } else { packet->nuke_contamination = CONTAMINATION_POLLUTION; } + iget_uint8(&iter, &packet->killstack); pack_iter_end(&iter, pc); remove_packet_from_buffer(pc->buffer); --- server/unitfunc.c.orig Tue Sep 26 00:37:56 2000 +++ server/unitfunc.c Tue Sep 26 00:40:04 2000 @@ -2867,7 +2867,7 @@ if( (incity) || (map_get_special(punit->x, punit->y)&S_FORTRESS) || (map_get_special(punit->x, punit->y)&S_AIRBASE) || - unitcount == 1) { + unitcount == 1 || !game.rgame.killstack) { notify_player_ex(pplayer, punit->x, punit->y, E_UNIT_LOST, _("Game: %s lost to an attack by %s's %s%s."), get_unit_type(punit->type)->name, destroyer->name, --- server/ruleset.c.orig Tue Sep 26 00:46:45 2000 +++ server/ruleset.c Tue Sep 26 00:48:57 2000 @@ -2128,6 +2128,8 @@ game.rgame.nuke_contamination = CONTAMINATION_POLLUTION; } + game.rgame.killstack = secfile_lookup_int(&file, "civstyle.killstack"); + section_file_check_unused(&file, filename); section_file_free(&file); } @@ -2442,7 +2444,8 @@ misc_p.hut_overflight = game.rgame.hut_overflight; misc_p.pillage_select = game.rgame.pillage_select; misc_p.nuke_contamination = game.rgame.nuke_contamination; - + misc_p.killstack = game.rgame.killstack; + lsend_packet_ruleset_game(dest, &misc_p); } --- common/game.h.orig Thu Sep 28 03:00:29 2000 +++ common/game.h Thu Sep 28 03:01:44 2000 @@ -168,6 +168,7 @@ int hut_overflight; int pillage_select; int nuke_contamination; + int killstack; } rgame; char demography[MAX_LEN_DEMOGRAPHY]; --- common/packets.h.orig Thu Sep 7 01:07:16 2000 +++ common/packets.h Thu Sep 28 03:13:14 2000 @@ -766,6 +766,7 @@ int hut_overflight; int pillage_select; int nuke_contamination; + int killstack; }; /*********************************************************