Remove option TREATIES
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 11 Jan 2014 17:02:53 +0000 (18:02 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 16 Feb 2014 10:44:14 +0000 (11:44 +0100)
commita109de948b00dd58a684702304d0b1e75487bb66
treeac8a8c32d967224fe3acb5e19c479340ae0eb934
parentb2090ed34fd91adcb1f626c0c6f88214cfd7c864
Remove option TREATIES

TREATIES has issues:

* Treaties can cover attack, assault, paradrop, board, lboard, fire,
  build (s|p|l|n) and enlist, but not bomb, launch, torpedo and
  enlistment centers.

* Usability is very poor.  While a treaty is in effect, every player
  action that violates a treaty condition triggers a prompt like this:

    This action is in contravention of  treaty #0 (with Curmudgeon)
    Do you wish to go ahead anyway? [yn]

  If you decline, the action is not executed.  If you accept, it is.
  In both cases, your decision is reported in the news.

  You cannot get rid of these prompts until the treaty expires.

* Virtually nobody uses them.

* Virtually unused code is buggy code.  There is at least one race
  condition: multifire() reads the firing sector, ship or land unit
  before the treaty prompt, and writes it back after, triggering a
  generation oops.  Any updates made by other threads while trechk()
  waits for input are wiped out, triggering a seqno mismatch oops.

* The treaty prompts could confuse smart clients that aren't prepared
  for them.  WinACE isn't, but is reported to work anyway at least
  common usage.  Ron Koenderink (the WinACE maintainer) suspects there
  could be a few situations where it will fail.

This feature is not earning its keep.  Remove it.  Drop command
treaty, consider treaty, offer treaty, xdump treaty, reject treaties.
Output of accept changed, obviously.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
60 files changed:
doc/xdump
include/combat.h
include/econfig-spec.h
include/empobj.h
include/file.h
include/nat.h
include/news.h
include/nsc.h
include/treaty.h [deleted file]
info/Novice.t
info/Options.t
info/Selector.t
info/accept.t
info/consider.t
info/newspaper.t
info/offer.t
info/power.t
info/reject.t
info/telegram.t
info/treaty.t [deleted file]
info/version.t
src/lib/commands/acce.c
src/lib/commands/assa.c
src/lib/commands/atta.c
src/lib/commands/boar.c
src/lib/commands/buil.c
src/lib/commands/cons.c
src/lib/commands/enli.c
src/lib/commands/lboard.c
src/lib/commands/mfir.c
src/lib/commands/offe.c
src/lib/commands/para.c
src/lib/commands/reje.c
src/lib/commands/trea.c [deleted file]
src/lib/commands/xdump.c
src/lib/common/empobj.c
src/lib/common/filetable.c
src/lib/common/nsc.c
src/lib/common/xdump.c
src/lib/global/news.c
src/lib/global/options.c
src/lib/global/symbol.c
src/lib/player/empmod.c
src/lib/subs/attsub.c
src/lib/subs/disloan.c
src/lib/subs/distrea.c [deleted file]
src/lib/subs/fileinit.c
src/lib/subs/trechk.c [deleted file]
src/lib/update/sect.c
tests/actofgod/final.xdump
tests/fairland/final.xdump
tests/files/final.xdump
tests/fire/final.xdump
tests/smoke/00/00-POGO
tests/smoke/00/02-2
tests/smoke/99/00-POGO
tests/smoke/99/01-1
tests/smoke/fairland.xdump
tests/smoke/final.xdump
tests/smoke/journal.log