typedef struct {{
const string_group_t words;
- const long message;
+ const char* message;
}} action_t;
typedef struct {{
#define NTRAVEL {}
#define NKEYS {}
+#define BIRD_ENDSTATE {}
+
enum arbitrary_messages_refs {{
{}
}};
return trn_str
def get_locations(loc):
- template = """ {{ // {}
+ template = """ {{ // {}: {}
.description = {{
.small = {},
.big = {},
long_d = make_c_string(item[1]["description"]["long"])
sound = item[1].get("sound", "SILENT")
loud = "true" if item[1].get("loud") else "false"
- loc_str += template.format(i, short_d, long_d, sound, loud)
+ loc_str += template.format(i, item[0], short_d, long_d, sound, loud)
loc_str = loc_str[:-1] # trim trailing newline
return loc_str
def get_objects(obj):
- template = """ {{ // {}
+ template = """ {{ // {}: {}
.words = {},
.inventory = {},
.plac = {},
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)
treasure = "true" if attr.get("treasure") else "false"
- obj_str += template.format(i, words_str, i_msg, locs[0], locs[1], treasure, descriptions_str, sounds_str, texts_str, changes_str)
+ obj_str += template.format(i, item[0], words_str, i_msg, locs[0], locs[1], treasure, descriptions_str, sounds_str, texts_str, changes_str)
obj_str = obj_str[:-1] # trim trailing newline
return obj_str
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,
len(db["specials"]),
len(travel),
len(tkey),
+ deathbird,
get_refs(db["arbitrary_messages"]),
get_refs(db["locations"]),
get_refs(db["objects"]),