From 7598ee272239244a1fe6664af49da8eacb0c33eb Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Fri, 11 Aug 2023 09:34:08 -0400 Subject: [PATCH] Improved internal sanity checking. --- sst.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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: -- 2.31.1