#!/usr/bin/env python3
+# SPDX-FileCopyrightText: Eric S. Raymond <esr@thyrsus.com>
+# SPDX-License-Identifier: BSD-2-Clause
"""
This is the open-adventure dungeon generator. It consumes a YAML description of
the dungeon and outputs a dungeon.h and dungeon.c pair of C code files.
The nontrivial part of this is the compilation of the YAML for
movement rules to the travel array that's actually used by
playermove().
-
-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,too-many-branches,global-statement,multiple-imports,too-many-locals,too-many-statements,too-many-nested-blocks,no-else-return,raise-missing-from,redefined-outer-name
+
import sys, yaml
YAML_NAME = "adventure.yaml"
return out
if __name__ == "__main__":
- with open(YAML_NAME, "r") as f:
+ with open(YAML_NAME, "r", encoding='ascii', errors='surrogateescape') as f:
db = yaml.safe_load(f)
locnames = [x[0] for x in db["locations"]]
db["objects"])
ignore = ""
try:
- with open(H_TEMPLATE_PATH, "r") as htf:
+ with open(H_TEMPLATE_PATH, "r", encoding='ascii', errors='surrogateescape') as htf:
# read in dungeon.h template
h_template = DONOTEDIT_COMMENT + htf.read()
- with open(C_TEMPLATE_PATH, "r") as ctf:
+ with open(C_TEMPLATE_PATH, "r", encoding='ascii', errors='surrogateescape') as ctf:
# read in dungeon.c template
c_template = DONOTEDIT_COMMENT + ctf.read()
except IOError as e:
state_definitions = statedefines
)
- with open(H_NAME, "w") as hf:
+ with open(H_NAME, "w", encoding='ascii', errors='surrogateescape') as hf:
hf.write(h)
- with open(C_NAME, "w") as cf:
+ with open(C_NAME, "w", encoding='ascii', errors='surrogateescape') as cf:
cf.write(c)
# end