X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=newdungeon.py;h=5888f83f64c8e100e63eec5df0c07a288b2a5e92;hp=2bd2a5a6f8b191cd4efb943b7e6a2cc98cc4c2a5;hb=18a9be501ff8f0c57c5d540d0f5cd080c0438cd0;hpb=d844c2a3913e1c7d331b080a4a09631e515d9364 diff --git a/newdungeon.py b/newdungeon.py index 2bd2a5a..5888f83 100755 --- a/newdungeon.py +++ b/newdungeon.py @@ -60,14 +60,20 @@ typedef struct { 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 "{}" @@ -126,13 +132,32 @@ for key, data in dungeon["object_descriptions"]: 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,