X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=make_dungeon.py;h=836d1483a8480d08616df65323613c61d965fb59;hp=576601d675f3ee4142ef37962082e306e1d40c11;hb=8f5c262e6dc953447f1a47b45aa045353d97f765;hpb=659f797d8adb0b3894f042ca11372196bff84e9d diff --git a/make_dungeon.py b/make_dungeon.py index 576601d..836d148 100755 --- a/make_dungeon.py +++ b/make_dungeon.py @@ -141,7 +141,7 @@ typedef struct {{ typedef struct {{ const string_group_t words; - const long message; + const char* message; }} action_t; typedef struct {{ @@ -192,6 +192,8 @@ extern const char *ignore; #define NTRAVEL {} #define NKEYS {} +#define BIRD_ENDSTATE {} + enum arbitrary_messages_refs {{ {} }}; @@ -442,9 +444,7 @@ def get_objects(obj): immovable = attr.get("immovable", False) try: if type(locs) == str: - locs = [locnames.index(locs), -1 if immovable else 0] - else: - locs = [locnames.index(x) for x in locs] + locs = [locs, -1 if immovable else 0] except IndexError: sys.stderr.write("dungeon: unknown object location in %s\n" % locs) sys.exit(1) @@ -761,13 +761,17 @@ if __name__ == "__main__": get_hints(db["hints"], db["arbitrary_messages"]), get_condbits(db["locations"]), get_motions(db["motions"]), - get_actions(db["actions"]), + get_specials(db["actions"]), get_specials(db["specials"]), bigdump(tkey), get_travel(travel), ignore, ) + # 0-origin index of birds's last song. Bird should + # die after player hears this. + deathbird = len(dict(db["objects"])["BIRD"]["sounds"]) - 1 + h = h_template.format( len(db["locations"])-1, len(db["objects"])-1, @@ -780,6 +784,7 @@ if __name__ == "__main__": len(db["specials"]), len(travel), len(tkey), + deathbird, get_refs(db["arbitrary_messages"]), get_refs(db["locations"]), get_refs(db["objects"]),