Document -a option.
[open-adventure.git] / make_graph.py
index f29c3e183b5a1b1ef1057e01a1aa7c849ef870fc..b9124d6ab9fc0c9e67cb81df7908dbe61aeb680a 100755 (executable)
@@ -9,20 +9,22 @@ Make a DOT graph of Colossal Cave.
 -f = emit graph of forest locations
 -m = emit graph of maze all alike
 -s = emit graph of non-forest surface locations
--v = include internal sy,no;s in room labels
+-v = include internal symbols in room labels
 """
 # Copyright (c) 2017 by Eric S. Raymond
 # SPDX-License-Identifier: BSD-2-clause
 
+# pylint: disable=consider-using-f-string,line-too-long,invalid-name,missing-function-docstring,multiple-imports,redefined-outer-name
+
 import sys, getopt, yaml
 
 def allalike(loc):
     "Select out loci related to the Maze All Alike"
-    return ("ALIKE" in loc) or (loc == "LOC_PITBRINK") or ("MAZEEND" in loc) or ("STALACTITE" in loc)
+    return location_lookup[loc]["conditions"].get("ALLALIKE")
 
 def alldifferent(loc):
     "Select out loci related to the Maze All Alike"
-    return ("DIFFERENT" in loc) or (loc == "LOC_DEADEND13")
+    return location_lookup[loc]["conditions"].get("ALLDIFFERENT")
 
 def surface(loc):
     "Select out surface locations"
@@ -104,7 +106,7 @@ def reveal(objname):
     return not obj.get("immovable")
 
 if __name__ == "__main__":
-    with open("adventure.yaml", "r") as f:
+    with open("adventure.yaml", "r", encoding='ascii', errors='surrogateescape') as f:
         db = yaml.safe_load(f)
 
     location_lookup = dict(db["locations"])