I use it in a few places:
1. When I leave this room, I want a message to be printed and to reset a number of flags (I'm leaving a room where I've been snooping around, opening the safe, etc so I want to leave it as I found it:
: match "s _" {
: if (is_at "secretarys_office") {
: print "You make sure you leave the room as you found it!" ;
: pocket "keyring" ;
: door_operation door = "secretary_door" operation = "lock_close" ;
: if (safeopen) {
: set_false "safeopen" ;
}
: if (safeunlocked) {
: set_false "safeunlocked" ;
}
: if (draweropen) {
: set_false "draweropen" ;
}
: goto "corridor7" ;
: press_any_key ;
: redescribe;
2. When I leave this room, I want a message to printed the first time that happens:
: match "s _" {
: if (is_at "bobsroom") {
: if (bobstuff==6&&bobother==3) {
: print "leaving room information" ;
: increment "bobstuff" ;
: goto "corridor2" ;
: press_any_key ;
: redescribe;
3. Here there are some doors mentioned in the description (that are just there for scenery). I thought that rather than create a locked door in each location, I'd just do this:
: match "s _" {
: if (is_at "corridor5") {
: print "There was a locked door in the way." ;
...I'm also matching "n_" elsewhere, but that is not causing phantom norths...
There is definitely some connection with another counter that I am incrementing. This increments at certain points in the game, after which the game is set to a new state (the player is put in another room etc). Before that change happens: no phantom souths. They appear afterwards.