From: Eric S. Raymond Date: Fri, 11 Aug 2023 13:34:08 +0000 (-0400) Subject: Improved internal sanity checking. X-Git-Tag: 2.8~75 X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=commitdiff_plain;h=7598ee272239244a1fe6664af49da8eacb0c33eb Improved internal sanity checking. --- diff --git a/sst.py b/sst.py index 4cf0270..d25e3c6 100755 --- a/sst.py +++ b/sst.py @@ -142,9 +142,9 @@ class Coord: self.i = x # Row self.j = y # Column def valid_quadrant(self): - return self.i >= 0 and self.i < GALSIZE and self.j >= 0 and self.j < GALSIZE + return (self.i is not None) and (self.j is not None) and (self.i >= 0) and (self.i < GALSIZE) and (self.j >= 0) and (self.j < GALSIZE) def valid_sector(self): - return self.i >= 0 and self.i < QUADSIZE and self.j >= 0 and self.j < QUADSIZE + return (self.i is not None) and (self.j is not None) and (self.i >= 0) and (self.i < QUADSIZE) and (self.j >= 0) and (self.j < QUADSIZE) def invalidate(self): self.i = self.j = None def __eq__(self, other): @@ -3912,7 +3912,10 @@ def dock(verbose): if game.inorbit: prout(_("You must first leave standard orbit.")) return - if game.base is None or abs(game.sector.i-game.base.i) > 1 or abs(game.sector.j-game.base.j) > 1: + if game.base is None or not game.base.valid_sector(): + prout(_("No starbase available for docking in this quadrant.")) + return + if (abs(game.sector.i-game.base.i) > 1) or (abs(game.sector.j-game.base.j) > 1): prout(crmshp() + _(" not adjacent to base.")) return if game.iscloaked: