Revert invalid change from 19 Feb,
authorEric S. Raymond <esr@thyrsus.com>
Mon, 20 Feb 2012 22:17:17 +0000 (17:17 -0500)
committerEric S. Raymond <esr@thyrsus.com>
Mon, 20 Feb 2012 22:17:17 +0000 (17:17 -0500)
My commit 'pylint found a real bug in phaser damage allocation
vs. multiple targets.' was erroneous.  This fixes it, and adds a regression
test for that code.

sst.py
test/test2.chk [new file with mode: 0644]
test/test2.log [new file with mode: 0644]

diff --git a/sst.py b/sst.py
index ee6b58a2347e7f2999c26a10795c15598a5dcc6d..724674ad24f9f51e5ca2c08dcb221fcdeb65397b 100755 (executable)
--- a/sst.py
+++ b/sst.py
@@ -1663,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)
@@ -3185,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
 
@@ -3286,7 +3288,11 @@ def setwnd(wnd):
                 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" 
diff --git a/test/test2.chk b/test/test2.chk
new file mode 100644 (file)
index 0000000..24c547a
--- /dev/null
@@ -0,0 +1,98 @@
+sst2k: seed set to 1329775764
+
+
+-SUPER- STAR TREK
+
+Would you like a regular, tournament, or saved game? # recorded by esr@snark on Mon Feb 20 17:09:24 2012
+r
+Would you like a Short, Medium, or Long game? s
+Are you a Novice, Fair, Good, Expert, or Emeritus player? g
+Choose your game style (plain, almy, fancy or just press enter): f
+
+
+Stardate 2149.
+
+22 Klingons.
+An unknown number of Romulans.
+And one (GULP) Super-Commander.
+7 stardates.
+5 starbases in 4 - 8  4 - 7  2 - 1  1 - 1  8 - 8  
+
+The Enterprise is currently in Quadrant 2 - 7 Sector 4 - 5
+
+Good Luck!
+  YOU'LL NEED IT.
+COMMAND> phasers
+
+Weapons Officer Sulu-  "High-speed shield control enabled, sir."
+Manual or automatic? auto
+Phasers locked on target. Energy available: 4800.00
+3064 units required. Units to fire= 4800
+
+Shields lowered.
+
+219 unit hit on Klingon at Sector 4 - 7
+***Klingon at Sector 4 - 7 destroyed.
+192 unit hit on Klingon at Sector 10 - 1
+***Mr. Spock-  "Captain, the vessel at Sector 10 - 1
+   has just lost its firepower."
+708 unit hit on Klingon at Sector 6 - 7
+***Klingon at Sector 6 - 7 destroyed.
+244 unit hit on Klingon at Sector 10 - 1
+***Klingon at Sector 10 - 1 destroyed.
+271 unit hit on Klingon at Sector 7 - 2
+***Klingon at Sector 7 - 2 destroyed.
+279 unit hit on Commander at Sector 6 - 3
+2175 expended on empty space.
+
+Shields raised.
+Weapons officer Sulu-  "Phasers overheated, sir."
+
+27 unit hit from Klingon at 8 - 6
+
+26 unit hit from Klingon at 9 - 5
+
+
+[CONTINUE?]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+It is stardate 2149.8.
+
+The Enterprise has been destroyed in battle.
+
+Dulce et decorum est pro patria mori.
+The Federation will be destroyed.
+
+
+Your score --
+  0.00 Klingons per stardate                  0
+     1 ship(s) lost or destroyed           -100
+Penalty for getting yourself killed        -200
+
+TOTAL SCORE                                -300
+
+May the Great Bird of the Galaxy roost upon your home planet.
diff --git a/test/test2.log b/test/test2.log
new file mode 100644 (file)
index 0000000..e6d34d2
--- /dev/null
@@ -0,0 +1,10 @@
+# seed 1329775764
+# options 
+# recorded by esr@snark on Mon Feb 20 17:09:24 2012
+r
+s
+g
+f
+phasers
+auto
+4800