From c36101676b6d3eff229ca7fe7fcba2729a2791e0 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Mon, 20 Feb 2012 14:56:49 -0500 Subject: [PATCH] Fixed a fatal bug in torpedo firing with the curses interface. --- sst.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/sst.py b/sst.py index 8e3db85..ee6b58a 100755 --- 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) @@ -3213,6 +3214,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,6 +3266,25 @@ 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) -- 2.31.1