Revert invalid change from 19 Feb,
[super-star-trek.git] / sst.py
diff --git a/sst.py b/sst.py
index 8e3db850c8450900fce64db42d966748eb8847a4..724674ad24f9f51e5ca2c08dcb221fcdeb65397b 100755 (executable)
--- a/sst.py
+++ b/sst.py
@@ -1099,7 +1099,8 @@ def torpedo(origin, bearing, dispersion, number, nburst):
        if iquad == '.':
            continue
        # hit something 
-       if not damaged(DSRSENS) or game.condition == "docked":
+        setwnd(message_window)
+        if not damaged(DSRSENS) or game.condition == "docked":
            skip(1)     # start new line after text track 
        if iquad in ('E', 'F'): # Hit our ship 
            skip(1)
@@ -1662,7 +1663,8 @@ def hittem(hits):
     "Register a phaser hit on Klingons and Romulans."
     w = Coord()
     skip(1)
-    for (kk, wham) in enumerate(hits):
+    kk = 0
+    for wham in hits:
        if wham == 0:
            continue
        dustfac = randreal(0.9, 1.0)
@@ -3184,7 +3186,8 @@ def pause_game():
         global linecount
         sys.stdout.write('\n')
         proutn(prompt)
-        raw_input()
+        if not replayfp:
+            raw_input()
         sys.stdout.write('\n' * rows)
         linecount = 0
 
@@ -3213,6 +3216,9 @@ def proutn(line):
        if curwnd == message_window and y >= my - 2:
            pause_game()
            clrscr()
+        # Uncomment this to debug curses problems
+        if logfp:
+            logfp.write("#curses: at %s proutn(%s)\n" % ((y, x), repr(line)))
        curwnd.addstr(line)
        curwnd.refresh()
     else:
@@ -3262,8 +3268,31 @@ def setwnd(wnd):
     "Change windows -- OK for this to be a no-op in tty mode."
     global curwnd
     if game.options & OPTION_CURSES:
+        # Uncomment this to debug curses problems
+        if logfp:
+            if wnd == fullscreen_window:
+                legend = "fullscreen"
+            elif wnd == srscan_window:
+                legend = "srscan"
+            elif wnd == report_window:
+                legend = "report"
+            elif wnd == status_window:
+                legend = "status"
+            elif wnd == lrscan_window:
+                legend = "lrscan"
+            elif wnd == message_window:
+                legend = "message"
+            elif wnd == prompt_window:
+                legend = "prompt"
+            else:
+                legend = "unknown"
+            logfp.write("#curses: setwnd(%s)\n" % legend)
         curwnd = wnd
-        curses.curs_set(wnd == fullscreen_window or wnd == message_window or wnd == prompt_window)
+        # Some curses implementations get confused when you try this.
+        try:
+            curses.curs_set(wnd in (fullscreen_window, message_window, prompt_window))
+        except curses.error:
+            pass
 
 def clreol():
     "Clear to end of line -- can be a no-op in tty mode"