Clean out the now-disused vocabulary structure.

This commit is contained in:
Jason S. Ninneman 2017-06-29 11:20:36 -07:00 committed by Eric S. Raymond
parent e7d1388c42
commit 3f580acc05
2 changed files with 8 additions and 246 deletions

View file

@ -124,234 +124,6 @@
# %B = Variable number of blanks
# %! = The entire message should be suppressed
# There are duplicate keys in this vocabulary, that's why it can't be a normal
# map. You have to iterate through it looking for a match qualified by type.
# 1 is not allocated because it's used as a sentinel value in motion-verb
# lists.
vocabulary: [
{word: "ROAD", type: motion, value: 2},
{word: "HILL", type: motion, value: 2},
{word: "ENTER", type: motion, value: 3},
{word: "UPSTR", type: motion, value: 4},
{word: "DOWNS", type: motion, value: 5},
{word: "FORES", type: motion, value: 6},
{word: "FORWA", type: motion, value: 7},
{word: "CONTI", type: motion, value: 7},
{word: "ONWAR", type: motion, value: 7},
{word: "BACK", type: motion, value: 8},
{word: "RETUR", type: motion, value: 8},
{word: "RETRE", type: motion, value: 8},
{word: "VALLE", type: motion, value: 9},
{word: "STAIR", type: motion, value: 10},
{word: "OUT", type: motion, value: 11},
{word: "OUTSI", type: motion, value: 11},
{word: "EXIT", type: motion, value: 11},
{word: "LEAVE", type: motion, value: 11},
{word: "BUILD", type: motion, value: 12},
{word: "HOUSE", type: motion, value: 12},
{word: "GULLY", type: motion, value: 13},
{word: "STREA", type: motion, value: 14},
{word: "FORK", type: motion, value: 15},
{word: "BED", type: motion, value: 16},
{word: "CRAWL", type: motion, value: 17},
{word: "COBBL", type: motion, value: 18},
{word: "INWAR", type: motion, value: 19},
{word: "INSID", type: motion, value: 19},
{word: "IN", type: motion, value: 19},
{word: "SURFA", type: motion, value: 20},
{word: "NULL", type: motion, value: 21},
{word: "NOWHE", type: motion, value: 21},
{word: "DARK", type: motion, value: 22},
{word: "PASSA", type: motion, value: 23},
{word: "TUNNE", type: motion, value: 23},
{word: "LOW", type: motion, value: 24},
{word: "CANYO", type: motion, value: 25},
{word: "AWKWA", type: motion, value: 26},
{word: "GIANT", type: motion, value: 27},
{word: "VIEW", type: motion, value: 28},
{word: "UPWAR", type: motion, value: 29},
{word: "UP", type: motion, value: 29},
{word: "U", type: motion, value: 29},
{word: "ABOVE", type: motion, value: 29},
{word: "ASCEN", type: motion, value: 29},
{word: "D", type: motion, value: 30},
{word: "DOWNW", type: motion, value: 30},
{word: "DOWN", type: motion, value: 30},
{word: "DESCE", type: motion, value: 30},
{word: "PIT", type: motion, value: 31},
{word: "OUTDO", type: motion, value: 32},
{word: "CRACK", type: motion, value: 33},
{word: "STEPS", type: motion, value: 34},
{word: "DOME", type: motion, value: 35},
{word: "LEFT", type: motion, value: 36},
{word: "RIGHT", type: motion, value: 37},
{word: "HALL", type: motion, value: 38},
{word: "JUMP", type: motion, value: 39},
{word: "BARRE", type: motion, value: 40},
{word: "OVER", type: motion, value: 41},
{word: "ACROS", type: motion, value: 42},
{word: "EAST", type: motion, value: 43},
{word: "E", type: motion, value: 43},
{word: "WEST", type: motion, value: 44},
{word: "W", type: motion, value: 44},
{word: "NORTH", type: motion, value: 45},
{word: "N", type: motion, value: 45},
{word: "SOUTH", type: motion, value: 46},
{word: "S", type: motion, value: 46},
{word: "NE", type: motion, value: 47},
{word: "SE", type: motion, value: 48},
{word: "SW", type: motion, value: 49},
{word: "NW", type: motion, value: 50},
{word: "DEBRI", type: motion, value: 51},
{word: "HOLE", type: motion, value: 52},
{word: "WALL", type: motion, value: 53},
{word: "BROKE", type: motion, value: 54},
{word: "Y2", type: motion, value: 55},
{word: "CLIMB", type: motion, value: 56},
{word: "LOOK", type: motion, value: 57},
{word: "EXAMI", type: motion, value: 57},
{word: "TOUCH", type: motion, value: 57},
{word: "DESCR", type: motion, value: 57},
{word: "FLOOR", type: motion, value: 58},
{word: "ROOM", type: motion, value: 59},
{word: "SLIT", type: motion, value: 60},
{word: "SLAB", type: motion, value: 61},
{word: "SLABR", type: motion, value: 61},
{word: "XYZZY", type: motion, value: 62},
{word: "DEPRE", type: motion, value: 63},
{word: "ENTRA", type: motion, value: 64},
{word: "PLUGH", type: motion, value: 65},
{word: "SECRE", type: motion, value: 66},
{word: "CAVE", type: motion, value: 67},
{word: "CROSS", type: motion, value: 69},
{word: "BEDQU", type: motion, value: 70},
{word: "PLOVE", type: motion, value: 71},
{word: "ORIEN", type: motion, value: 72},
{word: "CAVER", type: motion, value: 73},
{word: "SHELL", type: motion, value: 74},
{word: "RESER", type: motion, value: 75},
{word: "MAIN", type: motion, value: 76},
{word: "OFFIC", type: motion, value: 76},
{word: "CARRY", type: action, value: 1},
{word: "TAKE", type: action, value: 1},
{word: "KEEP", type: action, value: 1},
{word: "CATCH", type: action, value: 1},
{word: "STEAL", type: action, value: 1},
{word: "CAPTU", type: action, value: 1},
{word: "GET", type: action, value: 1},
{word: "TOTE", type: action, value: 1},
{word: "SNARF", type: action, value: 1},
{word: "DROP", type: action, value: 2},
{word: "RELEA", type: action, value: 2},
{word: "FREE", type: action, value: 2},
{word: "DISCA", type: action, value: 2},
{word: "DUMP", type: action, value: 2},
{word: "SAY", type: action, value: 3},
{word: "CHANT", type: action, value: 3},
{word: "SING", type: action, value: 3},
{word: "UTTER", type: action, value: 3},
{word: "MUMBL", type: action, value: 3},
{word: "UNLOC", type: action, value: 4},
{word: "OPEN", type: action, value: 4},
{word: "NOTHI", type: action, value: 5},
{word: "LOCK", type: action, value: 6},
{word: "CLOSE", type: action, value: 6},
{word: "LIGHT", type: action, value: 7},
{word: "ON", type: action, value: 7},
{word: "EXTIN", type: action, value: 8},
{word: "OFF", type: action, value: 8},
{word: "WAVE", type: action, value: 9},
{word: "SHAKE", type: action, value: 9},
{word: "SWING", type: action, value: 9},
{word: "CALM", type: action, value: 10},
{word: "PLACA", type: action, value: 10},
{word: "TAME", type: action, value: 10},
{word: "WALK", type: action, value: 11},
{word: "RUN", type: action, value: 11},
{word: "TRAVE", type: action, value: 11},
{word: "GO", type: action, value: 11},
{word: "PROCE", type: action, value: 11},
{word: "CONTI", type: action, value: 11},
{word: "EXPLO", type: action, value: 11},
{word: "FOLLO", type: action, value: 11},
{word: "TURN", type: action, value: 11},
{word: "ATTAC", type: action, value: 12},
{word: "KILL", type: action, value: 12},
{word: "FIGHT", type: action, value: 12},
{word: "HIT", type: action, value: 12},
{word: "STRIK", type: action, value: 12},
{word: "SLAY", type: action, value: 12},
{word: "POUR", type: action, value: 13},
{word: "EAT", type: action, value: 14},
{word: "DEVOU", type: action, value: 14},
{word: "DRINK", type: action, value: 15},
{word: "RUB", type: action, value: 16},
{word: "THROW", type: action, value: 17},
{word: "TOSS", type: action, value: 17},
{word: "QUIT", type: action, value: 18},
{word: "FIND", type: action, value: 19},
{word: "WHERE", type: action, value: 19},
{word: "INVEN", type: action, value: 20},
{word: "FEED", type: action, value: 21},
{word: "FILL", type: action, value: 22},
{word: "BLAST", type: action, value: 23},
{word: "DETON", type: action, value: 23},
{word: "IGNIT", type: action, value: 23},
{word: "BLOWU", type: action, value: 23},
{word: "SCORE", type: action, value: 24},
{word: "FEE", type: action, value: 25},
{word: "FIE", type: action, value: 25},
{word: "FOE", type: action, value: 25},
{word: "FOO", type: action, value: 25},
{word: "FUM", type: action, value: 25},
{word: "BRIEF", type: action, value: 26},
{word: "READ", type: action, value: 27},
{word: "PERUS", type: action, value: 27},
{word: "BREAK", type: action, value: 28},
{word: "SHATT", type: action, value: 28},
{word: "SMASH", type: action, value: 28},
{word: "WAKE", type: action, value: 29},
{word: "DISTU", type: action, value: 29},
{word: "SUSPE", type: action, value: 30},
{word: "PAUSE", type: action, value: 30},
{word: "SAVE", type: action, value: 30},
{word: "RESUM", type: action, value: 31},
{word: "RESTA", type: action, value: 31},
{word: "FLY", type: action, value: 32},
{word: "LISTE", type: action, value: 33},
{word: "Z'ZZZ", type: action, value: 34}, # Gets replaced
{word: "FEE", type: special, value: 1},
{word: "FIE", type: special, value: 2},
{word: "FOE", type: special, value: 3},
{word: "FOO", type: special, value: 4},
{word: "FUM", type: special, value: 5},
{word: "THANK", type: special, value: 13},
{word: "SESAM", type: special, value: 50},
{word: "OPENS", type: special, value: 50},
{word: "ABRA", type: special, value: 50},
{word: "ABRAC", type: special, value: 50},
{word: "SHAZA", type: special, value: 50},
{word: "HOCUS", type: special, value: 50},
{word: "POCUS", type: special, value: 50},
{word: "HELP", type: special, value: 51},
{word: "?", type: special, value: 51},
{word: "NO", type: special, value: 54},
{word: "TREE", type: special, value: 64},
{word: "TREES", type: special, value: 64},
{word: "DIG", type: special, value: 66},
{word: "EXCAV", type: special, value: 66},
{word: "LOST", type: special, value: 68},
{word: "MIST", type: special, value: 69},
{word: "FUCK", type: special, value: 79},
{word: "STOP", type: special, value: 139},
{word: "INFO", type: special, value: 142},
{word: "INFOR", type: special, value: 142},
{word: "SWIM", type: special, value: 147},
{word: "WIZAR", type: special, value: 246},
{word: "YES", type: special, value: 271},
{word: "NEWS", type: special, value: 275},
]
motions: !!omap
- MOT_0:
words: !!null

View file

@ -506,18 +506,6 @@ def get_condbits(locations):
cnd_str += " " + line + ",\t// " + name + "\n"
return cnd_str
def recompose(type_word, value):
"Compose the internal code for a vocabulary word from its YAML entry"
parts = ("motion", "action", "object", "special")
try:
return value + 1000 * parts.index(type_word)
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\n" % attrs["type"])
sys.exit(1)
def get_motions(motions):
template = """ {{
.words = {},
@ -568,12 +556,15 @@ def bigdump(arr):
out = out[:-2] + "\n"
return out
def buildtravel(locs, objs, voc):
def buildtravel(locs, objs):
ltravel = []
verbmap = {}
for entry in db["vocabulary"]:
if entry["type"] == "motion" and entry["value"] not in verbmap:
verbmap[entry["word"]] = entry["value"]
for i, motion in enumerate(db["motions"]):
try:
for word in motion[1]["words"]:
verbmap[word.upper()] = i
except TypeError:
pass
def dencode(action, name):
"Decode a destination number"
if action[0] == "goto":
@ -705,8 +696,7 @@ if __name__ == "__main__":
objnames = [el[0] for el in db["objects"]]
(travel, tkey) = buildtravel(db["locations"],
db["objects"],
db["vocabulary"])
db["objects"])
c = c_template.format(
h_name,