Full documentation of wayback feature.
authorEric S. Raymond <esr@thyrsus.com>
Sat, 19 Aug 2023 14:16:41 +0000 (10:16 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Sat, 19 Aug 2023 14:16:41 +0000 (10:16 -0400)
NEWS
doc/sst-doc.xml
doc/sst.xml
sst

diff --git a/NEWS b/NEWS
index ce4e95b28fcaf19f2ec6bbcc54d7f589628d548c..eae4b1010231faacefb0e17091aa5e774730454f 100644 (file)
--- 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.
index 6c4d793311a5baf0c0111197102747f54ba689a7..b5ff6d30579ffcbd7054288b8207b1210eef795a 100644 (file)
@@ -251,15 +251,84 @@ game&mdash;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.</para>
 
-<para>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 &amp; 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.</para>
+<para>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:
+
+<variablelist>
+<varlistentry>
+<term>1974</term>
+<listitem>Planets and dilithium mining</listitem>
+</varlistentry>
+<varlistentry>
+<term>1979</term>
+<listitem>Tholians and their webs.</listitem>
+</varlistentry>
+<varlistentry>
+<term>1980</term>
+<listitem>Deep-space probes.</listitem>
+</varlistentry>
+<varlistentry>
+<term>1981</term>
+<listitem>Bad guys do tactical movement.</listitem>
+</varlistentry>
+<varlistentry>
+<term>1982</term>
+<listitem>Bad guys can ram you.</listitem>
+</varlistentry>
+<varlistentry>
+<term>1997</term>
+<listitem>Death ray gets an upgrade.</listitem>
+</varlistentry>
+<varlistentry>
+<term>1998</term>
+<listitem>Automatic generation of self-destruct password.</listitem>
+</varlistentry>
+<varlistentry>
+<term>2004</term>
+<listitem>Upgraded shields for bases, and chance of time-waeping through a black hole.</listitem>
+<varlistentry>
+<term>2005</term>
+<listitem>Our ship is bracketed in the chart/</listitem>
+</varlistentry>
+</varlistentry>
+<varlistentry>
+<term>2006</term>
+<listitem>Logic for inhabited worlds and Klingon captures.</listitem>
+</varlistentry>
+<varlistentry>
+<term>2007</term>
+<listitem>Automatically update the long-range scan when displaying the chart.</listitem>
+</varlistentry><varlistentry>
+<varlistentry>
+<term>2010</term>
+<listitem>Use color in interface.</listitem>
+</varlistentry>
+<term>2013</term>
+<listitem>Defeated Klingons can be captured.</listitem>
+<varlistentry>
+<term>2014</term>
+<listitem>The cloaking device.</listitem>
+</varlistentry>
+<varlistentry>
+<term>2019</term>
+<listitem>Consistent dot-filling in the galaxy chart.</listitem>
+</varlistentry>
+<varlistentry>
+<term>2023</term>
+<listitem>Alphameric coordinates.</listitem>
+</varlistentry>
+</varlistentry>
+</variablelist>
+
+<para>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.</para>
 
 </chapter>
 <chapter><title>How To Issue Commands</title>
index 1fbe4a6dc0e99e183137f8d6b146d1924698ae30..47353fb676e8c288995e9ed4721e34a70fb0b1fa 100644 (file)
@@ -39,7 +39,7 @@ invasion fleet and make the galaxy safe for democracy.</para>
 
 <para>This is one of the great early classic computer games from the
 1970s and still has a remarkable amount of play value. Run
-<command>sst.py</command> in a terminal window to start it.  Typing
+<command>sst</command> 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 <ulink
 url='&projecthome;/sst-doc.html'>browseable</ulink>.  On
diff --git a/sst b/sst
index cee6f46c4114fc4b53ca333abf80668e8ec9bf5a..78c56d9622f0a68b26d8f8aaac82599b66494ff7 100755 (executable)
--- 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)
 }