X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=sst;h=307562cabe5da275300369f5331ce987acc3d567;hb=ba4307e942a56ac803caa3eeab448fe64bb8a73e;hp=cb64fd5cd2d14e429b82ff122eafb560cc9764d0;hpb=ea1ec724c5d45d0a64c909e2925647537291a9a3;p=super-star-trek.git diff --git a/sst b/sst index cb64fd5..307562c 100755 --- a/sst +++ b/sst @@ -296,20 +296,20 @@ OPTION_ALL = 0xffffffff OPTION_TTY = 0x00000001 # old interface OPTION_CURSES = 0x00000002 # new interface OPTION_IOMODES = 0x00000003 # cover both interfaces -OPTION_PLANETS = 0x00000004 # planets and mining +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 -OPTION_RAMMING = 0x00000080 # enemies may ram Enterprise (Almy) -OPTION_MVBADDY = 0x00000100 # more enemies can move (Almy) -OPTION_BLKHOLE = 0x00000200 # black hole may timewarp you (Stas, 2005) -OPTION_BASE = 0x00000400 # bases have good shields (Stas, 2005) -OPTION_WORLDS = 0x00000800 # logic for inhabited worlds (ESR, 2006) -OPTION_AUTOSCAN = 0x00001000 # automatic LRSCAN before CHART (ESR, 2006) -OPTION_CAPTURE = 0x00002000 # Enable BSD-Trek capture (Almy, 2013). -OPTION_CLOAK = 0x80004000 # Enable BSD-Trek capture (Almy, 2013). -OPTION_PLAIN = 0x01000000 # user chose plain game -OPTION_ALMY = 0x02000000 # user chose Almy variant +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_BLKHOLE = 0x00000400 # black hole may timewarp you (Stas, 2005) +OPTION_BASE = 0x00000800 # bases have good shields (Stas, 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) @@ -323,16 +323,17 @@ option_names = { "SHOWME": OPTION_SHOWME, "RAMMING": OPTION_RAMMING, "MVBADDY": OPTION_MVBADDY, + "AUTOPASS": OPTION_AUTOPASS, "BLKHOLE": OPTION_BLKHOLE, "BASE": OPTION_BASE, "WORLDS": OPTION_WORLDS, "AUTOSCAN": OPTION_AUTOSCAN, "CAPTURE": OPTION_CAPTURE, "CLOAK": OPTION_CLOAK, - "PLAIN": OPTION_PLAIN, "ALMY": OPTION_ALMY, "COLOR": OPTION_COLOR, "DOTFILL": OPTION_DOTFILL, + "ALPHAMERIC": OPTION_ALPHAMERIC, } # Define devices @@ -4812,7 +4813,7 @@ def beam(): if not ja(): scanner.chew() return - if not (game.options & OPTION_PLAIN): + if (game.options & OPTION_ALMY): nrgneed = 50 * game.skill + game.height / 100.0 if nrgneed > game.energy: prout(_("Engineering to bridge--")) @@ -5079,7 +5080,10 @@ def deathray(): prouts(_("WHIRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR")) skip(1) dprob = 0.30 - if game.options & OPTION_PLAIN: + # Ugh. This test (For Tom Almy's death-ray upgrade) was inverted for a long time. + # Furthermore, somebody (ESR or Stas?) changed Tom Almy's 0.7 upgraded chance of + # working to 0.5. + if game.options & OPTION_ALMY: dprob = 0.5 r = rnd.real() if r > dprob: @@ -5090,7 +5094,7 @@ def deathray(): prout(_("Ensign Chekov- \"Congratulations, Captain!\"")) if game.unwon() == 0: finish(FWON) - if (game.options & OPTION_PLAIN) == 0: + if (game.options & OPTION_ALMY): prout(_("Spock- \"Captain, I believe the `Experimental Death Ray'")) if rnd.withprob(0.05): prout(_(" is still operational.\"")) @@ -6048,12 +6052,10 @@ def choose(): scanner.nexttok() if scanner.sees("plain"): # Approximates the UT FORTRAN version. - game.options &=~ (OPTION_THOLIAN | OPTION_PLANETS | OPTION_PROBE | OPTION_RAMMING | OPTION_MVBADDY | OPTION_BLKHOLE | OPTION_BASE | OPTION_WORLDS | OPTION_COLOR | OPTION_CAPTURE | OPTION_CLOAK | OPTION_DOTFILL | OPTION_ALPHAMERIC) - game.options |= OPTION_PLAIN + game.options &=~ (OPTION_THOLIAN | OPTION_PLANETS | OPTION_PROBE | OPTION_RAMMING | OPTION_MVBADDY | OPTION_BLKHOLE | OPTION_BASE | OPTION_WORLDS | OPTION_COLOR | OPTION_CAPTURE | OPTION_CLOAK | OPTION_ALMY | OPTION_AUTOPASS | OPTION_DOTFILL | OPTION_ALPHAMERIC) elif scanner.sees("almy"): # Approximates Tom Almy's version. game.options &=~ (OPTION_BLKHOLE | OPTION_BASE | OPTION_WORLDS | OPTION_COLOR | OPTION_DOTFILL | OPTION_ALPHAMERIC) - game.options |= OPTION_ALMY elif scanner.sees("fancy") or scanner.sees("\n"): pass elif len(scanner.token): @@ -6228,7 +6230,12 @@ def newqad(): def setpassword(): "Set the self-destruct password." - if game.options & OPTION_PLAIN: + if game.options & OPTION_AUTOPASS: + game.passwd = "" + game.passwd += chr(ord('a')+rnd.integer(26)) + game.passwd += chr(ord('a')+rnd.integer(26)) + game.passwd += chr(ord('a')+rnd.integer(26)) + else: while True: scanner.chew() proutn(_("Please type in a secret password- ")) @@ -6237,11 +6244,6 @@ def setpassword(): #game.passwd = getpass.getpass("Please type in a secret password- ") if game.passwd is not None: break - else: - game.passwd = "" - game.passwd += chr(ord('a')+rnd.integer(26)) - game.passwd += chr(ord('a')+rnd.integer(26)) - game.passwd += chr(ord('a')+rnd.integer(26)) # Code from sst.c begins here @@ -6782,7 +6784,7 @@ if __name__ == '__main__': game = Gamestate() rnd = randomizer() logfp = None - game.options = OPTION_ALL &~ (OPTION_IOMODES | OPTION_PLAIN | OPTION_ALMY) + game.options = OPTION_ALL &~ OPTION_IOMODES if os.getenv("TERM"): game.options |= OPTION_CURSES # pragma: no cover else: