+ nodwarves = (cond == 100)
+ if cond == 0:
+ condtype = "cond_goto"
+ condarg1 = condarg2 = 0
+ elif cond < 100:
+ condtype = "cond_pct"
+ condarg1 = cond
+ condarg2 = 0
+ elif cond == 100:
+ condtype = "cond_goto"
+ condarg1 = 100
+ condarg2 = 0
+ elif cond <= 200:
+ condtype = "cond_carry"
+ condarg1 = objnames[cond - 100]
+ condarg2 = 0
+ elif cond <= 300:
+ condtype = "cond_with"
+ condarg1 = objnames[cond - 200]
+ condarg2 = 0
+ else:
+ condtype = "cond_not"
+ condarg1 = cond % 100
+ condarg2 = (cond - 300) // 100.
+ dest = newloc % 1000
+ if dest <= 300:
+ desttype = "dest_goto";
+ destval = locnames[dest]
+ elif dest > 500:
+ desttype = "dest_speak";
+ destval = msgnames[dest - 500]
+ else:
+ desttype = "dest_special";
+ destval = locnames[dest - 300]
+ travel.append([len(tkey)-1,
+ locnames[len(tkey)-1],
+ rule.pop(0),
+ condtype,
+ condarg1,
+ condarg2,
+ desttype,
+ destval,
+ "true" if nodwarves else "false",
+ "false"])
+ travel[-1][-1] = "true"