Inside the objects frankMe (in gndfrank.t) and debMe (in gnddeb.t) there are the following properties: jeanieActionList: a list of strings which encode the actions Jeanie has taken while that NPC (soon to be PC) is around pendingAction: a string which holds the encoded action Jeanie took, or '' for no encoded action acceptingActions: true if we should be monitoring what Jeanie does after each turn addAction: add an action in pendingAction to the jeanieActionList, or add the encoding for WAIT (if Jeanie's in the room and done something which escapes our attention) or ABSENT (if Jeanie isn't in the room with us) queueAction: put an action string into pendingAction. If global.pauseRecorder is true, then the string isn't recorded addAction in frankMe and debMe is called at the end of each turn during the postAction() routine, assuming that acceptingActions is set to true in frankMe and/or debMe and assuming that global.pauseRecorder isn't set to true. The encodings are one to four characters long each. This is a little wasteful of memory, but it makes my life very easy. Frank's encodings can have special prefixes, since Frank ignores much of what Jeanie does. If the encoding is of an action which Frank notices and potentially responds to, it begins with '*'. Critical actions, ones which Frank must respond to, begin with '!'. The only critical actions are conversations, as when Frank yells at Jeanie about the TV. ---==--- Frank's encodings: J leaves room L F tells J to turn off TV *Tl J enters room E when she leaves [1] J talks to Frank *C[id] F tells J to turn off TV *Ts J massages Frank *M for excessive switching J turns on TV T1 F tells J to turn off TV *Tt J turns off TV T0 after a while J waits Z J isn't around A F greets J *H J sits on couch s J stands S J drops bag in living rm DL J picks up bag P J drops bag on couch DC [1] This supercedes the "J leaves room" encoding. [id] in "J talks to Frank" identifies which conversation piece they have. It follows the same numbering scheme as in the jeanieMe object in gndjean.t: 1a for conversation 1 piece a, 1b for conversation 1 piece b, c1 for complaint about TV piece 1, etc. Note that some conversations are critical ones, and are encoded as "!C[id]" ---==--- Deb's encodings: J leaves room L J puts up groceries G J enters room E J isn't around A J picks up bag P J drops bag in kitchen DK J puts bag on table DT J puts bag on counter DC J talks to Deb C[id] J waits Z April honks H[n] Deb responds to honking H0 J leaves house B Deb mentions roast R [id] in "J talks to Deb" identifies which conversation piece they have. It follows the same numbering scheme as in the jeanieMe object in gndjean.t: 1a for conversation 1 piece a, 1b for conversation 1 piece b, etc. [n] in "April honks" counts which time April honked. If that number is zero, then Deb and Jeanie were in the same room the first time April honked, meaning that Deb said something.