+def recompose(word):
+ "Compose the internal code for a vocabulary word from its YAML entry"
+ parts = ("motion", "action", "object", "special")
+ try:
+ attrs = db["vocabulary"][word]
+ return attrs["value"] + 1000 * parts.index(attrs["type"])
+ except KeyError:
+ sys.stderr.write("dungeon: %s is not a known word\n" % word)
+ sys.exit(1)
+ except IndexError:
+ sys.stderr.write("%s is not a known word classifier" % attrs["type"])
+ sys.exit(1)
+