* Initialize constants
(0:0) When everything is starting up,
 (5:300) set variable %NEObject to the value 17.
 (5:300) set variable %SEObject to the value 18.
 (5:300) set variable %SWObject to the value 19.
 (5:300) set variable %NWObject to the value 20.
 (5:300) set variable %FloorType to the value 168.


* Orient the furre to face towards the front of the object
(0:3) When somebody moves into object type %NEObject,
 (5:90) turn the triggering furre to face northeast.


(0:3) When somebody moves into object type %SEObject,
 (5:91) turn the triggering furre to face southeast.


(0:3) When somebody moves into object type %SWObject,
 (5:92) turn the triggering furre to face southwest.


(0:3) When somebody moves into object type %NWObject,
 (5:93) turn the triggering furre to face northwest.


* Switch objects when the furre turns
(0:5) When a furre turns right(clockwise),
 (1:18) and they (moved from/are standing at) object type %NEObject,
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type %SEObject.


(0:6) When a furre turns left(counterclockwise),
 (1:18) and they (moved from/are standing at) object type %NEObject,
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type %NWObject.


(0:5) When a furre turns right(clockwise),
 (1:18) and they (moved from/are standing at) object type %SEObject,
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type %SWObject.


(0:6) When a furre turns left(counterclockwise),
 (1:18) and they (moved from/are standing at) object type %SEObject,
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type %NEObject.


(0:5) When a furre turns right(clockwise),
 (1:18) and they (moved from/are standing at) object type %SWObject,
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type %NWObject.


(0:6) When a furre turns left(counterclockwise),
 (1:18) and they (moved from/are standing at) object type %SWObject,
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type %SEObject.


(0:5) When a furre turns right(clockwise),
 (1:18) and they (moved from/are standing at) object type %NWObject,
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type %NEObject.


(0:6) When a furre turns left(counterclockwise),
 (1:18) and they (moved from/are standing at) object type %NWObject,
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type %SWObject.


* When the furre presses F3 to move
(0:16) When a furre uses any object,
 (1:18) and they (moved from/are standing at) object type %NEObject,
 (1:40) and 1 step(s) northeast (up and right) from the triggering furre is floor %FloorType,
 (1:50) and 1 step(s) northeast (up and right) from the triggering furre is object 0.
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type 0.
  (3:50) 1 step(s) northeast (up and right) from where the triggering furre (moved from/is standing),
   (5:4) place object type %NEObject.
  (3:5) where the triggering furre (moved from/is standing at),
   (5:80) move any furre present 1 step(s) northeast (up and right) if there's nobody already there.


(0:16) When a furre uses any object,
 (1:18) and they (moved from/are standing at) object type %SEObject,
 (1:41) and 1 step(s) southeast (down and right) from the triggering furre is floor %FloorType,
 (1:51) and 1 step(s) southeast (down and right) from the triggering furre is object 0.
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type 0.
  (3:51) 1 step(s) southeast (down and right) from where the triggering furre (moved from/is standing),
   (5:4) place object type %SEObject.
  (3:5) where the triggering furre (moved from/is standing at),
   (5:81) move any furre present 1 step(s) southeast (down and right) if there's nobody already there.


(0:16) When a furre uses any object,
 (1:18) and they (moved from/are standing at) object type %SWObject,
 (1:42) and 1 step(s) southwest (down and left) from the triggering furre is floor %FloorType,
 (1:52) and 1 step(s) southwest (down and left) from the triggering furre is object 0.
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type 0.
  (3:52) 1 step(s) southwest (down and left) from where the triggering furre (moved from/is standing),
   (5:4) place object type %SWObject.
  (3:5) where the triggering furre (moved from/is standing at),
   (5:82) move any furre present 1 step(s) southwest (down and left) if there's nobody already there.


(0:16) When a furre uses any object,
 (1:18) and they (moved from/are standing at) object type %NWObject,
 (1:43) and 1 step(s) northwest (up and left) from the triggering furre is floor %FloorType,
 (1:53) and 1 step(s) northwest (up and left) from the triggering furre is object 0.
  (3:5) where the triggering furre (moved from/is standing at),
   (5:4) place object type 0.
  (3:53) 1 step(s) northwest (up and left) from where the triggering furre (moved from/is standing),
   (5:4) place object type %NWObject.
  (3:5) where the triggering furre (moved from/is standing at),
   (5:83) move any furre present 1 step(s) northwest (up and left) if there's nobody already there.