From a22d7a720d6fa0eb81f29f6574fa034afc3fc90b Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Sat, 19 Aug 2023 10:16:41 -0400 Subject: [PATCH] Full documentation of wayback feature. --- NEWS | 1 + doc/sst-doc.xml | 87 ++++++++++++++++++++++++++++++++++++++++++++----- doc/sst.xml | 2 +- sst | 44 ++++++++++++------------- 4 files changed, 102 insertions(+), 32 deletions(-) diff --git a/NEWS b/NEWS index ce4e95b..eae4b10 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,7 @@ Repository head:: Fix for enemy dispersion on torpedo hits. Re-conform to the documentation by removing the .py estension from sst. Fancy-mode coordinates can have the Y as a letter, e,g. "c4" = "3 - 4". + Wayback option: you can revert the game to the behavior of past years. 2.7: 2021-09-20:: Ubuntu has abolished /usr/bin/python, change shebang to python3. diff --git a/doc/sst-doc.xml b/doc/sst-doc.xml index 6c4d793..b5ff6d3 100644 --- a/doc/sst-doc.xml +++ b/doc/sst-doc.xml @@ -251,15 +251,84 @@ game—but, of course, the level of game you play is up to you. If you want to start at the Expert level, go ahead. It's your funeral. The Emeritus game is strictly for masochists. -The fourth question, new in SST2K, sets your game options. A -blank answer or 'fancy' enables all SST2K features. The option -'plain' approximated the original CDC 6600 FORTRAN game from UT Austin -and disables a number of features: Tholians, planets & dilithium, -deep-space-probes, Klingon ramming and movement, time-warping through -black holes, death-ray upgrade, inhabited worlds. The option 'almy' -approximates Tom Almy's C translation from 1979, disabling base -shields, time-warping through black holes, and inhabited -worlds. +The fourth question, new in SST2K, sets the wayback machine. A +blank answer enables all SST2K features. Given a year, it will disable +features not implemented in that year or earlier. The year +'1973' approximated the original CDC 6600 FORTRAN game from UT Austin. +Here is a mapping of years to features: + + + +1974 +Planets and dilithium mining + + +1979 +Tholians and their webs. + + +1980 +Deep-space probes. + + +1981 +Bad guys do tactical movement. + + +1982 +Bad guys can ram you. + + +1997 +Death ray gets an upgrade. + + +1998 +Automatic generation of self-destruct password. + + +2004 +Upgraded shields for bases, and chance of time-waeping through a black hole. + +2005 +Our ship is bracketed in the chart/ + + + +2006 +Logic for inhabited worlds and Klingon captures. + + +2007 +Automatically update the long-range scan when displaying the chart. + + +2010 +Use color in interface. + +2013 +Defeated Klingons can be captured. + +2014 +The cloaking device. + + +2019 +Consistent dot-filling in the galaxy chart. + + +2023 +Alphameric coordinates. + + + + +Some caveats apply. The development history of this game is obscure; some +years of introduction have had to be guessed, and we have chosen guesses to +make support as many interesting wayback options as possible. Some options +are not affected by the wayback setting - notably, the TUI interface is always +available even though it wasn't written until 2005. Some early features, +notably "clockface" course setting, couldn't be reconstructed. How To Issue Commands diff --git a/doc/sst.xml b/doc/sst.xml index 1fbe4a6..47353fb 100644 --- a/doc/sst.xml +++ b/doc/sst.xml @@ -39,7 +39,7 @@ invasion fleet and make the galaxy safe for democracy. This is one of the great early classic computer games from the 1970s and still has a remarkable amount of play value. Run -sst.py in a terminal window to start it. Typing +sst in a terminal window to start it. Typing 'commands' at the prompt will list all commands; help is available for each one individually as well. Full documentation is browseable. On diff --git a/sst b/sst index cee6f46..78c56d9 100755 --- a/sst +++ b/sst @@ -298,21 +298,21 @@ OPTION_CURSES = 0x00000002 # new interface OPTION_IOMODES = 0x00000003 # cover both interfaces OPTION_PLANETS = 0x00000004 # planets and mining (> 1974) OPTION_THOLIAN = 0x00000008 # Tholians and their webs (UT 1979 version) -OPTION_PROBE = 0x00000020 # deep-space probes (DECUS version, 1980) -OPTION_SHOWME = 0x00000040 # bracket Enterprise in chart (ESR, 2005) -OPTION_RAMMING = 0x00000080 # enemies may ram Enterprise (Almy, 1979) -OPTION_MVBADDY = 0x00000100 # more enemies can move (Almy, 1979?) -OPTION_AUTOPASS = 0x00000200 # Autogenerate password (Almy, 1997?) +OPTION_PROBE = 0x00000010 # deep-space probes (DECUS version, 1980) +OPTION_MVBADDY = 0x00000020 # more enemies can move (Almy, 1979?) +OPTION_RAMMING = 0x00000040 # enemies may ram Enterprise (Almy, 1979?) +OPTION_ALMY = 0x00000080 # Almy's death ray upgrade (1997?) +OPTION_AUTOPASS = 0x00000100 # Autogenerate password (Almy, 1997?) +OPTION_BASE = 0x00000200 # bases have good shields (Stas, 2005) OPTION_BLKHOLE = 0x00000400 # black hole may timewarp you (Stas, 2005) -OPTION_BASE = 0x00000800 # bases have good shields (Stas, 2005) +OPTION_SHOWME = 0x00000800 # bracket Enterprise in chart (ESR, 2005) OPTION_WORLDS = 0x00001000 # logic for inhabited worlds (ESR, 2006) OPTION_AUTOSCAN = 0x00002000 # automatic LRSCAN before CHART (ESR, 2006) -OPTION_CAPTURE = 0x00004000 # Enable BSD-Trek capture (Almy, 2013). -OPTION_CLOAK = 0x80008000 # Enable BSD-Trek capture (Almy, 2013). -OPTION_ALMY = 0x01000000 # Almy's death ray upgrade (1997?) -OPTION_COLOR = 0x04000000 # enable color display (ESR, 2010) -OPTION_DOTFILL = 0x08000000 # fix dotfill glitch in chart (ESR, 2019) -OPTION_ALPHAMERIC = 0x10000000 # Alpha Y coordinates (ESR, 2023) +OPTION_COLOR = 0x00004000 # enable color display (ESR, 2010) +OPTION_CAPTURE = 0x00008000 # Enable BSD-Trek capture (Almy, 2013). +OPTION_CLOAK = 0x80010000 # Enable BSD-Trek capture (Almy, 2013). +OPTION_DOTFILL = 0x08200000 # fix dotfill glitch in chart (ESR, 2019) +OPTION_ALPHAMERIC = 0x00400000 # Alpha Y coordinates (ESR, 2023) option_names = { "ALL": (OPTION_ALL, 0), @@ -321,18 +321,18 @@ option_names = { "PLANETS": (OPTION_PLANETS, 1974), "THOLIAN": (OPTION_THOLIAN, 1979), "PROBE": (OPTION_PROBE, 1980), - "SHOWME": (OPTION_SHOWME, 2006), - "RAMMING": (OPTION_RAMMING, 1979), - "MVBADDY": (OPTION_MVBADDY, 1979), - "AUTOPASS": (OPTION_AUTOPASS, 1997), - "BLKHOLE": (OPTION_BLKHOLE, 2006), - "BASE": (OPTION_BASE, 2005), - "WORLDS": (OPTION_WORLDS, 2006), - "AUTOSCAN": (OPTION_AUTOSCAN, 2000), - "CAPTURE": (OPTION_CAPTURE, 2013), - "CLOAK": (OPTION_CLOAK, 2013), + "MVBADDY": (OPTION_MVBADDY, 1981), # year bumped to make it distinct + "RAMMING": (OPTION_RAMMING, 1982), # year bumped to make it distinct "ALMY": (OPTION_ALMY, 1997), + "AUTOPASS": (OPTION_AUTOPASS, 1998), # year bumped to make it distinct + "BASE": (OPTION_BASE, 2004), # year bumped to make it distinct + "BLKHOLE": (OPTION_BLKHOLE, 2004), # year bumped to make it distinct + "SHOWME": (OPTION_SHOWME, 2005), + "WORLDS": (OPTION_WORLDS, 2006), + "AUTOSCAN": (OPTION_AUTOSCAN, 2007), # year bumped to make it distinct "COLOR": (OPTION_COLOR, 2010), + "CAPTURE": (OPTION_CAPTURE, 2013), + "CLOAK": (OPTION_CLOAK, 2014), # year bumped to make it distinct "DOTFILL": (OPTION_DOTFILL, 2019), "ALPHAMERIC": (OPTION_ALPHAMERIC, 2023) } -- 2.31.1