I fixed it!
The full offending match statement is below:
---
: match "s_" {
: if (is_at "secretarys_office") {
: print "MESSAGE" ;
: pocket "keyring" ;
: door_operation door = "secretary_door" operation = "lock_close" ;
: if (safeopen) {
: set_false "safeopen" ;
}
: if (safeunlocked) {
: set_false "safeunlocked" ;
}
: destroy "safe" ;
: if (draweropen) {
: set_false "draweropen" ;
}
: goto "corridor7" ;
: press_any_key ;
: redescribe;
}
: if (is_at "corridor5") {
: print "There was a locked door in the way." ;
}
**OFFENDING CODE BELOW**
: if (traptor==3){
: if (is_at "bobsroom") {
: if (bobtell==6&&bobask==3) {
: print "MESSAGE" ;
: increment "bobask" ;
: goto "corridor2" ;
: press_any_key ;
: redescribe;
}
}
}
}
---
I changed the offending bit to:
: if (is_at "bobsroom") {
: if (traptor==3) {
: if (bobtell==6&&bobask==3) {
: print "MESSAGE";
: increment "bobask" ;
: goto "corridor2" ;
: press_any_key ;
: redescribe;
}
}
}
And it works (of course, I have no idea why, but breathe a sigh of relief and carry on!)