X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=make_dungeon.py;h=576601d675f3ee4142ef37962082e306e1d40c11;hp=c394b5f516d20c0b4d74017a17b84d12ce1b21d8;hb=a8ac2f477a2564bcf5b40508aea2c192d237c88a;hpb=f1b37ea1636d84fb253648b71fb2eca4b2b13ea9 diff --git a/make_dungeon.py b/make_dungeon.py index c394b5f..576601d 100755 --- a/make_dungeon.py +++ b/make_dungeon.py @@ -407,18 +407,15 @@ def get_objects(obj): else: labels = [] for l_msg in attr["descriptions"]: - if not isinstance(l_msg, str): - labels.append(l_msg) - l_msg = l_msg[1] descriptions_str += " " * 12 + make_c_string(l_msg) + ",\n" + for label in attr.get("states", []): + labels.append(label) descriptions_str = descriptions_str[:-1] # trim trailing newline if labels: global statedefines statedefines += "/* States for %s */\n" % item[0] - for (i, (label, message)) in enumerate(labels): - if len(message) >= 45: - message = message[:45] + "..." - statedefines += "#define %s\t%d /* %s */\n" % (label, i, message) + for (i, label) in enumerate(labels): + statedefines += "#define %s\t%d\n" % (label, i) statedefines += "\n" sounds_str = "" if attr.get("sounds") == None: @@ -651,6 +648,8 @@ def buildtravel(locs, objs): obj = objnames.index(cond[1]) if type(cond[2]) == int: state = cond[2] + elif cond[2] in objs[obj][1].get("states", []): + state = objs[obj][1].get("states").index(cond[2]) else: for (i, stateclause) in enumerate(objs[obj][1]["descriptions"]): if type(stateclause) == list: @@ -716,10 +715,11 @@ def buildtravel(locs, objs): elif travel: travel[-1][-1] = not travel[-1][-1] while rule: + cond = newloc // 1000 travel.append([rule.pop(0), - newloc // 1000, + cond, newloc % 1000, - (newloc//1000)==100, + cond==100, False]) travel[-1][-1] = True return (travel, tkey)