From: Jason S. Ninneman Date: Thu, 29 Jun 2017 18:20:36 +0000 (-0700) Subject: Clean out the now-disused vocabulary structure. X-Git-Tag: 1.1~15 X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=commitdiff_plain;h=3f580acc0565587e4fab1f2181f4ff859e9c3aef Clean out the now-disused vocabulary structure. --- diff --git a/adventure.yaml b/adventure.yaml index 87ef4b0..dd099d4 100644 --- a/adventure.yaml +++ b/adventure.yaml @@ -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 diff --git a/make_dungeon.py b/make_dungeon.py index 6f47152..7e18d76 100755 --- a/make_dungeon.py +++ b/make_dungeon.py @@ -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,