[ InfixDescribeWatchSub x y z s flag aflag; print "; The Infix ~;watch~ verb allows you to set a watch on any named routine(s) or objects: for instance ~;watch ScoreSub~ or ~;watch silver bars~. You can also: ^ ~;watch objects~: changes to attribute or property settings"; if (debug_flag & 8) print " (on)"; else print " (off)"; print ";^ ~;watch timers~: the running of timers and daemons each turn"; if (debug_flag & 4) print " (on)"; else print " (off)"; print ";^ ~;watch messages~: all messages sent"; if (debug_flag & 1) print " (on)"; else print " (off)"; print ";^ ~;watch actions~: all actions generated"; if (debug_flag & 2) print " (on)"; else print " (off)"; print ".^~~;watch~ can be abbreviated to ~;w~ and use ~off~ to stop watching: for instance ~;w location off~.^"; aflag = debug_flag; objectloop (x has infix__watching) flag = true; aflag = aflag || flag; if (flag) print "The following objects are currently being watched: "; flag = false; objectloop (x has infix__watching) { if (flag) print ", "; flag = true; print (name) x, " (", x, ")"; } if (flag) new_line; s = (#highest_routine_number - #lowest_routine_number); if (s%8 == 0) s=s/8; else s=s/8+1; for (flag=false, x=0:xx) flag = true; aflag = aflag || flag; if (flag) print "The following routines are currently being watched: "; for (x=0, flag=false:xx) & y) { if (flag) print ", "; flag = true; print (InfixPrintRoutine) #lowest_routine_number + x*8 + z; } } } if (flag) new_line; if (aflag == false) "At present, nothing is being watched."; ];