projects
/
super-star-trek.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix chart kossage in replay games.
[super-star-trek.git]
/
sst.py
diff --git
a/sst.py
b/sst.py
index 3b00bd6dc994c64f2e2a94443f6e1c448ab4ace8..409ba7aa0bac2375f04a4129c186902ebff14e1f 100755
(executable)
--- a/
sst.py
+++ b/
sst.py
@@
-319,7
+319,9
@@
class Enemy:
else:
self.location = Coord()
self.kdist = self.kavgd = None
else:
self.location = Coord()
self.kdist = self.kavgd = None
- game.enemies.remove(self)
+ # Guard prevents failure on Tholian or thingy
+ if self in game.enemies:
+ game.enemies.remove(self)
return motion
def __repr__(self):
return "<%s,%s.%f>" % (self.type, self.location, self.power) # For debugging
return motion
def __repr__(self):
return "<%s,%s.%f>" % (self.type, self.location, self.power) # For debugging
@@
-2606,7
+2608,7
@@
def wait():
if key != "IHEOL":
break
proutn(_("How long? "))
if key != "IHEOL":
break
proutn(_("How long? "))
- scanner.chew()
+
scanner.chew()
if key != "IHREAL":
huh()
return
if key != "IHREAL":
huh()
return
@@
-3431,8
+3433,8
@@
def proutn(proutntline):
pause_game()
clrscr()
# Uncomment this to debug curses problems
pause_game()
clrscr()
# Uncomment this to debug curses problems
- if logfp:
- logfp.write("#curses: at %s proutn(%s)\n" % ((y, x), repr(proutntline)))
+
#
if logfp:
+
#
logfp.write("#curses: at %s proutn(%s)\n" % ((y, x), repr(proutntline)))
curwnd.addstr(proutntline)
curwnd.refresh()
else:
curwnd.addstr(proutntline)
curwnd.refresh()
else:
@@
-3504,7
+3506,7
@@
def setwnd(wnd):
legend = "prompt"
else:
legend = "unknown"
legend = "prompt"
else:
legend = "unknown"
- logfp.write("#curses: setwnd(%s)\n" % legend)
+
#
logfp.write("#curses: setwnd(%s)\n" % legend)
curwnd = wnd
# Some curses implementations get confused when you try this.
try:
curwnd = wnd
# Some curses implementations get confused when you try this.
try:
@@
-3708,8
+3710,6
@@
def imove(icourse=None, noattack=False):
# check for edge of galaxy
kinks = 0
while True:
# check for edge of galaxy
kinks = 0
while True:
-
-
kink = False
if icourse.final.i < 0:
icourse.final.i = -icourse.final.i
kink = False
if icourse.final.i < 0:
icourse.final.i = -icourse.final.i
@@
-5208,7
+5208,8
@@
def lrscan(silent):
if not silent and game.state.galaxy[x][y].supernova:
proutn(" ***")
elif not silent:
if not silent and game.state.galaxy[x][y].supernova:
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))
+ cn = " %3d" % (game.state.chart[x][y].klingons*100 + game.state.chart[x][y].starbase * 10 + game.state.chart[x][y].stars)
+ proutn(((3 - len(cn)) * '.') + cn)
if not silent:
prout(" ")
if not silent:
prout(" ")
@@
-6100,6
+6101,9
@@
def newqad():
game.quad[QUADSIZE-1][0] = '.'
if game.quad[QUADSIZE-1][QUADSIZE-1]=='X':
game.quad[QUADSIZE-1][QUADSIZE-1] = '.'
game.quad[QUADSIZE-1][0] = '.'
if game.quad[QUADSIZE-1][QUADSIZE-1]=='X':
game.quad[QUADSIZE-1][QUADSIZE-1] = '.'
+ # This should guarantee that replay games don't lose info about the chart
+ if (game.options & OPTION_AUTOSCAN) or replayfp:
+ lrscan(silent=True)
def setpassword():
"Set the self-destruct password."
def setpassword():
"Set the self-destruct password."