Suppress Supercommander creation befor 1979 versiom.
authorEric S. Raymond <esr@thyrsus.com>
Sat, 19 Aug 2023 17:56:06 +0000 (13:56 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Sat, 19 Aug 2023 17:56:06 +0000 (13:56 -0400)
doc/sst-doc.xml
sst

index b5ff6d30579ffcbd7054288b8207b1210eef795a..33c0c72da6ac5d260d976fd1ba49709466102ec4 100644 (file)
@@ -264,7 +264,7 @@ Here is a mapping of years to features:
 </varlistentry>
 <varlistentry>
 <term>1979</term>
-<listitem>Tholians and their webs.</listitem>
+<listitem>Tholians and their webs, supercommanders.</listitem>
 </varlistentry>
 <varlistentry>
 <term>1980</term>
diff --git a/sst b/sst
index 78c56d9622f0a68b26d8f8aaac82599b66494ff7..3d30875c8c47e9b5dbfb62fe08c4b6ae4055d5d4 100755 (executable)
--- a/sst
+++ b/sst
@@ -298,21 +298,22 @@ 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      = 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_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_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_SUPERCMDR  = 0x00000010        # Supercommanders (UT 1979 version)
+OPTION_PROBE      = 0x00000020        # deep-space probes (DECUS version, 1980)
+OPTION_MVBADDY    = 0x00000040        # more enemies can move (Almy, 1979?)
+OPTION_RAMMING    = 0x00000080        # enemies may ram Enterprise (Almy, 1979?)
+OPTION_ALMY       = 0x00000100        # Almy's death ray upgrade (1997?)
+OPTION_AUTOPASS   = 0x00000200        # Autogenerate password (Almy, 1997?)
+OPTION_BASE       = 0x00000400        # bases have good shields (Stas, 2005)
+OPTION_BLKHOLE    = 0x00000800        # black hole may timewarp you (Stas, 2005)
+OPTION_SHOWME     = 0x00001000        # bracket Enterprise in chart (ESR, 2005)
+OPTION_WORLDS     = 0x00002000        # logic for inhabited worlds (ESR, 2006)
+OPTION_AUTOSCAN   = 0x00004000        # automatic LRSCAN before CHART (ESR, 2006)
+OPTION_COLOR      = 0x00008000        # enable color display (ESR, 2010)
+OPTION_CAPTURE    = 0x00010000        # Enable BSD-Trek capture (Almy, 2013).
+OPTION_CLOAK      = 0x10020000        # Enable BSD-Trek capture (Almy, 2013).
+OPTION_DOTFILL    = 0x01040000        # fix dotfill glitch in chart (ESR, 2019)
+OPTION_ALPHAMERIC = 0x00080000        # Alpha Y coordinates (ESR, 2023)
 
 option_names = {
     "ALL": (OPTION_ALL, 0),
@@ -320,6 +321,7 @@ option_names = {
     "IOMODES": (OPTION_IOMODES, 0),
     "PLANETS": (OPTION_PLANETS, 1974),
     "THOLIAN": (OPTION_THOLIAN, 1979),
+    "SUPERCMDR": (OPTION_SUPERCMDR, 1979),
     "PROBE": (OPTION_PROBE, 1980),
     "MVBADDY": (OPTION_MVBADDY, 1981),   # year bumped to make it distinct
     "RAMMING": (OPTION_RAMMING, 1982),   # year bumped to make it distinct
@@ -6076,7 +6078,7 @@ def choose():
     if game.options & OPTION_WORLDS:
         game.inplan += int(NINHAB)
     game.state.nromrem = game.inrom = rnd.integer(2 * game.skill)
-    game.state.nscrem = game.inscom = (game.skill > SKILL_FAIR)
+    game.state.nscrem = game.inscom = (game.skill > SKILL_FAIR) and ((game.options & OPTION_SUPERCMDR) != 0)
     game.state.remtime = 7.0 * game.length
     game.intime = game.state.remtime
     game.inkling = int(2.0*game.intime*((game.skill+1 - 2*rnd.real())*game.skill*0.1+.15))