Partial repair of Thingy code.
[super-star-trek.git] / sst
diff --git a/sst b/sst
index d7fa53a3583149321d13eb63d053ffd324cf97a6..32299535f3ada075a1f758e73bfa3b195098a444 100755 (executable)
--- a/sst
+++ b/sst
@@ -203,15 +203,15 @@ class Coord:
         return "%s - %s" % (self.i+1, self.j+1)
     __repr__ = __str__
 
-class Thingy(Coord):
+class Thingy():
     "Do not anger the Space Thingy!"
     def __init__(self):
-        Coord.__init__(self)
+        self.location = Coord()
         self.angered = False
     def angry(self):
         self.angered = True
     def at(self, q):
-        return (q.i, q.j) == (self.i, self.j)
+        return (q.i, q.j) == (self.location.i, self.location.j)
 
 class Planet:
     def __init__(self):
@@ -3546,7 +3546,7 @@ def cgetline():
             while True:
                 linein = replayfp.readline()
                 proutn(linein)
-                if linein == '':
+                if linein == '':    # pragma: no cover
                     prout("*** Replay finished")
                     replayfp.close()
                     break
@@ -3672,7 +3672,7 @@ def drawmaps(mode):
             lrscan_window.move(0, 0)
             lrscan(silent=False)
 
-def put_srscan_sym(w, sym):
+def put_srscan_sym(w, sym):    # pragma: no cover
     "Emit symbol for short-range scan."
     srscan_window.move(w.i+1, w.j*2+2)
     srscan_window.addch(sym)
@@ -3707,7 +3707,7 @@ def warble():
 
 def tracktorpedo(w, step, i, n, iquad):
     "Torpedo-track animation."
-    if not game.options & OPTION_CURSES:       # pragma: no cover
+    if not game.options & OPTION_CURSES:
         if step == 1:
             if n != 1:
                 skip(1)
@@ -3718,7 +3718,7 @@ def tracktorpedo(w, step, i, n, iquad):
         elif step in {4, 9}:
             skip(1)
         proutn("%s   " % w)
-    else:
+    else:      # pragma: no cover
         if not damaged(DSRSENS) or game.condition=="docked":
             if i != 0 and step == 1:
                 drawmaps(2)
@@ -5363,7 +5363,7 @@ def sectscan(goodScan, i, j):
     if goodScan or (abs(i-game.sector.i)<= 1 and abs(j-game.sector.j) <= 1):
         if game.quad[i][j] in ('E', 'F'):
             if game.iscloaked:
-                highvideo()
+                highvideo()    # pragma: no cover
             textcolor({"green":GREEN,
                        "yellow":YELLOW,
                        "red":RED,
@@ -5930,12 +5930,13 @@ def setup():
     # Place thing (in tournament game, we don't want one!)
     # New in SST2K: never place the Thing near a starbase.
     # This makes sense and avoids a special case in the old code.
-    global thing
-    if game.tourn is None:
-        while True:
-            thing = randplace(GALSIZE)
-            if thing not in game.state.baseq:
-                break
+    #global thing
+    #if game.tourn is None:
+    #    while True:
+    #        thing.location = randplace(GALSIZE)
+    #        # Put it somewhere a starbase is not
+    #        if thing.location not in game.state.baseq:
+    #            break
     skip(2)
     game.state.snap = False
     if game.skill == SKILL_NOVICE:
@@ -5971,7 +5972,7 @@ def setup():
     clrscr()
     setwnd(message_window)
     newqad()
-    if len(game.enemies) - (thing == game.quadrant) - (game.tholian is not None):
+    if len(game.enemies) - (thing.location == game.quadrant) - (game.tholian is not None):
         game.shldup = True
     if game.neutz:        # bad luck to start in a Romulan Neutral Zone
         attack(torps_ok=False)
@@ -5979,7 +5980,8 @@ def setup():
 def choose():
     "Choose your game type."
     while True:
-        game.tourn = game.length = 0
+        game.tourn = None
+        game.length = 0
         game.thawed = False
         game.skill = SKILL_NONE
         # Do not chew here, we want to use command-line tokens
@@ -5987,6 +5989,7 @@ def choose():
             proutn(_("Would you like a regular, tournament, or saved game? "))
         scanner.nexttok()
         if scanner.sees("tournament"):
+            game.tourn = 0
             while scanner.nexttok() == "IHEOL":
                 proutn(_("Type in tournament number-"))
             if scanner.real == 0:
@@ -6174,7 +6177,7 @@ def newqad():
             prout(_("INTRUDER! YOU HAVE VIOLATED THE ROMULAN NEUTRAL ZONE."))
             prout(_("LEAVE AT ONCE, OR YOU WILL BE DESTROYED!"))
     # Put in THING if needed
-    if thing == game.quadrant:
+    if thing.location == game.quadrant:
         Enemy(etype='?', loc=dropin(),
               power=rnd.real(6000,6500.0)+250.0*game.skill)
         if not damaged(DSRSENS):