X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Fsst.py;h=09d838d2bdd3001cb5dc02f6cba62a807be8445f;hp=fe29b948d11870230dff7c043789bc50e9474b44;hb=57f572761a2e2d3e28fe5b4446942be1f97a7963;hpb=8daf76bb73f4194657e8c215f542a14ea162eeda diff --git a/src/sst.py b/src/sst.py index fe29b94..09d838d 100644 --- a/src/sst.py +++ b/src/sst.py @@ -13,8 +13,7 @@ ion how to modify (and how not to modify!) this code. """ import os, sys, math, curses, time, readline, cPickle, random, copy, gettext, getpass -SSTDOC = "/usr/share/doc/sst/sst.doc" -DOC_NAME = "sst.doc" +docpath = (".", "../doc", "/usr/share/doc/sst") def _(str): return gettext.gettext(str) @@ -1483,8 +1482,8 @@ def targetcheck(w): return None return delta.bearing() -def photon(): - "Launch photon torpedo." +def torps(): + "Launch photon torpedo salvo." course = [] game.ididit = False if damaged(DPHOTON): @@ -3064,6 +3063,12 @@ curwnd = None def iostart(): global stdscr, rows + "for some recent versions of python2, the following enables UTF8" + "for the older ones we probably need to set C locale, and the python3" + "has no problems at all" + if sys.version_info.major < 3: + import locale + locale.setlocale(locale.LC_ALL, "") gettext.bindtextdomain("sst", "/usr/local/share/locale") gettext.textdomain("sst") if not (game.options & OPTION_CURSES): @@ -3149,7 +3154,7 @@ def skip(i): if game.options & OPTION_CURSES: (y, x) = curwnd.getyx() (my, mx) = curwnd.getmaxyx() - if curwnd == message_window and y >= my - 3: + if curwnd == message_window and y >= my - 2: pause_game() clrscr() else: @@ -4780,7 +4785,7 @@ def report(): scanner.chew() s1 = "" and game.thawed and _("thawed ") s2 = {1:"short", 2:"medium", 4:"long"}[game.length] - s3 = (None, _("novice"). _("fair"), + s3 = (None, _("novice"), _("fair"), _("good"), _("expert"), _("emeritus"))[game.skill] prout(_("You %s a %s%s %s game.") % ((_("were playing"), _("are playing"))[game.alldone], s1, s2, s3)) if game.skill>SKILL_GOOD and game.thawed and not game.alldone: @@ -4874,7 +4879,8 @@ def lrscan(silent): proutn(" ***") elif not silent: proutn(" %3d" % (game.state.chart[x][y].klingons*100 + game.state.chart[x][y].starbase * 10 + game.state.chart[x][y].stars)) - prout(" ") + if not silent: + prout(" ") def damagereport(): "Damage report." @@ -5742,7 +5748,7 @@ def setpassword(): break else: game.passwd = "" - for i in range(8): + for i in range(3): game.passwd += chr(ord('a')+randrange(26)) # Code from sst.c begins here @@ -5812,7 +5818,7 @@ def helpme(): setwnd(message_window) if key == "IHEOL": return - if scanner.token in commands or scanner.token == "ABBREV": + if scanner.token.upper() in commands or scanner.token == "ABBREV": break skip(1) listCommands() @@ -5820,22 +5826,20 @@ def helpme(): scanner.chew() skip(1) cmd = scanner.token.upper() - try: - fp = open(SSTDOC, "r") - except IOError: + for directory in docpath: try: - fp = open(DOC_NAME, "r") + fp = open(os.path.join(directory, "sst.doc"), "r") + break except IOError: - prout(_("Spock- \"Captain, that information is missing from the")) - proutn(_(" computer. You need to find ")) - proutn(DOC_NAME) - prout(_(" and put it in the")) - proutn(_(" current directory or to ")) - proutn(SSTDOC) - prout(".\"") - # This used to continue: "You need to find SST.DOC and put - # it in the current directory." - return + pass + else: + prout(_("Spock- \"Captain, that information is missing from the")) + prout(_(" computer. You need to find sst.doc and put it somewhere")) + proutn(_(" in these directories: %s") % ":".join(docpath)) + prout(".\"") + # This used to continue: "You need to find SST.DOC and put + # it in the current directory." + return while True: linebuf = fp.readline() if linebuf == '': @@ -5844,12 +5848,13 @@ def helpme(): return if linebuf[0] == '%' and linebuf[1] == '%' and linebuf[2] == ' ': linebuf = linebuf[3:].strip() - if cmd == linebuf: + if cmd.upper() == linebuf: break skip(1) prout(_("Spock- \"Captain, I've found the following information:\"")) skip(1) - while linebuf in fp: + while True: + linebuf = fp.readline() if "******" in linebuf: break proutn(linebuf) @@ -5900,8 +5905,8 @@ def makemoves(): phasers() if game.ididit: hitme = True - elif cmd == "TORPEDO": # photon torpedos - photon() + elif cmd in ("TORPEDO", "PHOTONS"): # photon torpedos + torps() if game.ididit: hitme = True elif cmd == "MOVE": # move under warp