inventory: !!null
longs: !!null
+obituaries:
+ - query: 'Oh dear, you seem to have gotten yourself killed. I might be able to\nhelp you out, but I''ve never really done this before. Do you want me\nto try to reincarnate you?'
+ yes_response: 'All right. But don''t blame me if something goes wr......\n --- POOF!! ---\nYou are engulfed in a cloud of orange smoke. Coughing and gasping,\nyou emerge from the smoke and find....'
+ - query: 'You clumsy oaf, you''ve done it again! I don''t know how long I can\nkeep this up. Do you want me to try reincarnating you again?'
+ yes_response: 'Okay, now where did I put my orange smoke?.... >POOF!<\nEverything disappears in a dense cloud of orange smoke.'
+ - query: 'Now you''ve really done it! I''m out of orange smoke! You don''t expect\nme to do a decent reincarnation without any orange smoke, do you?'
+ yes_response: 'Okay, if you''re so smart, do it yourself! I''m leaving!'
descriptions_t description;
} location_t;
+typedef struct {
+ const char* query;
+ const char* yes_response;
+} obituary_t;
+
extern location_t locations[];
extern object_description_t object_descriptions[];
extern const char* arbitrary_messages[];
extern const char* class_messages[];
extern const char* turn_threshold_messages[];
+extern obituary_t obituaries[];
extern size_t CLSSES;
-
+extern int maximum_deaths;
"""
c = """#include "{}"
except (TypeError, IndexError):
c += " .longs = NULL,\n"
c += " },\n"
-h += "};"
-c += "};"
+h += "};\n\n"
+c += "};\n\n"
+
+c += "obituary_t obituaries[] = {\n"
+for obit in dungeon["obituaries"]:
+
+ query = quotewrap(c_escape(obit["query"]))
+ yes_response = quotewrap(c_escape(obit["yes_response"]))
+
+ c += """ {{
+ .query = {},
+ .yes_response = {},
+ }},
+""".format(query, yes_response)
+
+c += "};\n"
c += """
size_t CLSSES = {};
""".format(len(dungeon["class_messages"]))
+c += """
+int maximum_deaths = {};
+""".format(len(dungeon["obituaries"]))
+
+
# finally, write out the files
d = {
h_name: h,