"""
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)
return None
return delta.bearing()
-def photon():
- "Launch photon torpedo."
+def torps():
+ "Launch photon torpedo salvo."
course = []
game.ididit = False
if damaged(DPHOTON):
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):
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:
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."
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()
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 == '':
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)
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