X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=make_dungeon.py;h=03b5b04229fc60023a378208cc8525fb8873bb97;hp=b37856368947d219bcb5a79ef66deeaf38fdbdcf;hb=e8a627f964a8337caf0c71dd87b1d7533f489f57;hpb=4da9742cd28e87ea91d3a7b75e3d7147011b95e7 diff --git a/make_dungeon.py b/make_dungeon.py index b378563..03b5b04 100755 --- a/make_dungeon.py +++ b/make_dungeon.py @@ -105,13 +105,9 @@ typedef struct {{ typedef struct {{ const string_group_t words; const char* message; + const bool noaction; }} action_t; -typedef struct {{ - const string_group_t words; - const char* message; -}} special_t; - enum condtype_t {{cond_goto, cond_pct, cond_carry, cond_with, cond_not}}; enum desttype_t {{dest_goto, dest_special, dest_speak}}; @@ -143,7 +139,6 @@ extern const hint_t hints[]; extern long conditions[]; extern const motion_t motions[]; extern const action_t actions[]; -extern const special_t specials[]; extern const travelop_t travel[]; extern const long tkey[]; extern const char *ignore; @@ -154,9 +149,8 @@ extern const char *ignore; #define NCLASSES {} #define NDEATHS {} #define NTHRESHOLDS {} -#define NMOTIONS {} +#define NMOTIONS {} #define NACTIONS {} -#define NSPECIALS {} #define NTRAVEL {} #define NKEYS {} @@ -182,10 +176,6 @@ enum action_refs {{ {} }}; -enum special_refs {{ -{} -}}; - /* State definitions */ {} @@ -236,10 +226,6 @@ const action_t actions[] = {{ {} }}; -const special_t specials[] = {{ -{} -}}; - const long tkey[] = {{{}}}; const travelop_t travel[] = {{ @@ -501,40 +487,12 @@ def get_actions(actions): template = """ {{ .words = {}, .message = {}, + .noaction = {}, }}, """ act_str = "" for action in actions: contents = action[1] - - if contents["words"] == None: - words_str = get_string_group([]) - else: - words_str = get_string_group(contents["words"]) - - if contents["message"] == None: - message = "NO_MESSAGE" - else: - message = contents["message"] - - act_str += template.format(words_str, message) - global ignore - if contents.get("oldstyle", True) == False: - for word in contents["words"]: - if len(word) == 1: - ignore += word.upper() - act_str = act_str[:-1] # trim trailing newline - return act_str - -def get_specials(specials): - template = """ {{ - .words = {}, - .message = {}, - }}, -""" - spc_str = "" - for special in specials: - contents = special[1] if contents["words"] == None: words_str = get_string_group([]) @@ -546,14 +504,19 @@ def get_specials(specials): else: message = make_c_string(contents["message"]) - spc_str += template.format(words_str, message) + if contents.get("noaction") == None: + noaction = "false" + else: + noaction = "true" + + act_str += template.format(words_str, message, noaction) global ignore if contents.get("oldstyle", True) == False: for word in contents["words"]: if len(word) == 1: ignore += word.upper() - spc_str = spc_str[:-1] # trim trailing newline - return spc_str + act_str = act_str[:-1] # trim trailing newline + return act_str def bigdump(arr): out = "" @@ -797,8 +760,7 @@ if __name__ == "__main__": get_hints(db["hints"], db["arbitrary_messages"]), get_condbits(db["locations"]), get_motions(db["motions"]), - get_specials(db["actions"]), - get_specials(db["specials"]), + get_actions(db["actions"]), bigdump(tkey), get_travel(travel), ignore, @@ -817,7 +779,6 @@ if __name__ == "__main__": len(db["turn_thresholds"]), len(db["motions"]), len(db["actions"]), - len(db["specials"]), len(travel), len(tkey), deathbird, @@ -826,7 +787,6 @@ if __name__ == "__main__": get_refs(db["objects"]), get_refs(db["motions"]), get_refs(db["actions"]), - get_refs(db["specials"]), statedefines, )