diff --git a/rsrc/scenarios/tutorial/graphics/sheet0.png b/rsrc/scenarios/tutorial/graphics/sheet0.png
new file mode 100644
index 00000000..68e97200
Binary files /dev/null and b/rsrc/scenarios/tutorial/graphics/sheet0.png differ
diff --git a/rsrc/scenarios/tutorial/out/out0~0.map b/rsrc/scenarios/tutorial/out/out0~0.map
index 252b0691..58204f59 100644
--- a/rsrc/scenarios/tutorial/out/out0~0.map
+++ b/rsrc/scenarios/tutorial/out/out0~0.map
@@ -27,18 +27,18 @@
2,2,2,2,2,2,2,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,2,2,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,2,2,2,2,2,2,2
2,2,2,2,2,2,2,112,111,111,111,111,111,111,111,111,111,111,2,2,2,112,112,2&9:1,121!0,112,112,112,2,2,56,55,55,55,55,55,55,55,55,54,112,2,2,2,2,2,2,2
2,2,2,2,2,2,2,112,111,2,111,111,111,2,2,111,111,111,2,2,2,112,112,2,2,112,112,112,2,2,57,50,62,51,51,59,50,50,50,53,112,2,2,2,2,2,2,2
-2,2,2,2,2,2,2,112,2,2,2,2,111,2,111,2,2,2,2&25,2&9&25:2,2&25,2&25,2&25,2&25,2&25,2&25,2&25,2&25,2&25,2&25,57,50,53,2,242@3,57,50,50,50,53,112,2,2,2,2,2,2,2
+2,2,2,2,2,2,2,112,2,2,2,2,111,2,111,2,2,2,2&25,2&9&25:2,2&25,2&25,2&25,2&25,2&25,2&25,2&25,2&25,2&25,2&9&25:4,57,50,53,2,242@3,57,50,50,50,53,112,2,2,2,2,2,2,2
2,2,2,2,2,2,2,112,2,2,2,111,2,2,111,111,111,111,2,2,2,2,2,2,2&25,2,2,2,2,2,57,50,53,2,2,57,50,50,50,53,112,2,2,2,2,2,2,2
2,2,2,2,2,2,2,112,2,2,112,112,112,112,112,112,112,112,112,112,112,112,112,2,2&25,2,112,112,112,112,57,50,61,55,55,60,50,50,50,53,112,2,2,2,2,2,2,2
-2,2,2,2,2,2,2,112,2*2,112,112,2,2,2,2,2,2,2,2,2,2,2,112,112,112,112,112,56,55,55,60,50,50*3,50,50,50,50,50,50,53,112,2,2,2,2,2,2,2
-2,2,2,2,2,2,2,112,111,112,2,2,2,2,2,2,2,2,2,2,2,2,112,2,2&25,2,112,57,50,50,50,50,50,50,50,50,50,50,50,53,112,2,2,2,2,2,2,2
+2,2,2,2,2,2,2,112,2*2,112,112,2,2,2,2,2,2,2,2,2,2,2,112,2,2&9&25:3,2,112,56,55,55,60,50,50*3,50,50,50,50,50,50,53,112,2,2,2,2,2,2,2
+2,2,2,2,2,2,2,112,111,112,2,2,2,2,2,2,2,2,2,2,2,2,112,112,112,112,112,57,50,50,50,50,50,50,50,50,50,50,50,53,112,2,2,2,2,2,2,2
2,2,2,2,2,2,2,112,111,112,2,2,2,2,2,2,2,2,2,2,2,2,112,2,2&25,2,112,57,50,50,50,50,50,62,51,51,51,51,51,52,112,2,2,2,2,2,2,2
2,2,2,2,2,2,2,112,111,112,2,2,2,2,2,2,2,2,2,2,2,2,112,2,2&25,2,112,57,50,50,50,50,50,53,112,112,112,112,112,112,112,2,2,2,2,2,2,2
2,2,2,2,2,2,2,112,242@0,112,2,2,2,2,2,2,2,2,2,2,2,2,112,2,2&25,2,112,57,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
2,2,2,2,2,2,2,112,256,112,112,112,112,112,112,112,112,112,112,112,112,112,112,2,2&25,2,112,57,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
-2,2,2,2,2,2,2,112,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2&25,2,112,57,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
-2,2,2,2,2,2,2,112,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2&25,2,112,57,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
-2,2,2,2,2,2,2,112,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2&25,2,112,57,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
+2,2,2,2,2,2,2,112,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2:0,2,2&25,2,112,57,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
+2,2,2,2,2,2,2,112,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2:5,2,2&25,2,112,57,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
+2,2,2,2,2,2,2,112,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2:0,2,2&25,2,112,57,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
2,2,2,2,2,2,2,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,2,2&25,2,112,57,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,112,2,2&25,56,55,60,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,112,2,242@2,57,50,50,50,50,50,50,50,53,112,2,2,2,2,2,2,2,2,2,2,2,2,2
diff --git a/rsrc/scenarios/tutorial/out/out0~0.spec b/rsrc/scenarios/tutorial/out/out0~0.spec
index 4f946797..19d61d8a 100644
--- a/rsrc/scenarios/tutorial/out/out0~0.spec
+++ b/rsrc/scenarios/tutorial/out/out0~0.spec
@@ -19,3 +19,31 @@
ex1 -1, -1, -1
ex2 -1, -1, -1
goto -1
+@disp-msg = 3
+ sdf -1, -1
+ msg 14, -1, -1
+ pic 0, 4
+ ex1 -1, -1, -1
+ ex2 -1, -1, -1
+ goto -1
+@if-sdf = 4
+ sdf 200, 0
+ msg -1, -1, -1
+ pic 0, 4
+ ex1 1, -1, -1
+ ex2 -1, -1, -1
+ goto 5
+@disp-msg = 5
+ sdf -1, -1
+ msg 15, -1, -1
+ pic 0, 4
+ ex1 -1, -1, -1
+ ex2 -1, -1, -1
+ goto -1
+@once-disp-msg = 6
+ sdf 200, 1
+ msg 16, -1, -1
+ pic 0, 4
+ ex1 -1, -1, -1
+ ex2 -1, -1, -1
+ goto -1
diff --git a/rsrc/scenarios/tutorial/out/out0~0.xml b/rsrc/scenarios/tutorial/out/out0~0.xml
index f7199c1f..8bd2e453 100644
--- a/rsrc/scenarios/tutorial/out/out0~0.xml
+++ b/rsrc/scenarios/tutorial/out/out0~0.xml
@@ -6,6 +6,9 @@
Path to Marshy Tower
+ Backwoods
+ Road to Vault Tower
+ Road to Lake Tower
@@ -24,5 +27,13 @@
-
+
+
+
+
+
+
+
+
+
diff --git a/rsrc/scenarios/tutorial/scenario.xml b/rsrc/scenarios/tutorial/scenario.xml
index 4b47c4a7..3c72e39c 100644
--- a/rsrc/scenarios/tutorial/scenario.xml
+++ b/rsrc/scenarios/tutorial/scenario.xml
@@ -63,12 +63,21 @@
2
+
+ terrain
+
entrance message
supplies message
+ dining hall message
+ pantry message
+ # spiders killed
+ party cleaned webs
looked at book
book node
entry message
exit message
artifact pieces
+ found boat
+ exit backwoods message
diff --git a/rsrc/scenarios/tutorial/terrain.xml b/rsrc/scenarios/tutorial/terrain.xml
index 77049268..b29723ed 100644
--- a/rsrc/scenarios/tutorial/terrain.xml
+++ b/rsrc/scenarios/tutorial/terrain.xml
@@ -6293,4 +6293,28 @@
t
+
+ Boulder
+ 1000
+
+ move-and-shoot
+ 0
+ true
+ false
+ true
+ false
+ 0
+ step
+ none
+ 1
+ -1
+ 9
+
+ none
+ -1
+ 0
+ 0
+
+
+
diff --git a/rsrc/scenarios/tutorial/towns/town0.map b/rsrc/scenarios/tutorial/towns/town0.map
index 237bdc9a..595822bb 100644
--- a/rsrc/scenarios/tutorial/towns/town0.map
+++ b/rsrc/scenarios/tutorial/towns/town0.map
@@ -10,22 +10,22 @@
112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170:5,133,170,170,170,122,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,170,136,170,170,170:5,138,170,170:6&9,170,138,170,170,170,136,170,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
112,112,112,112,112,170,170,170,170,170,170,170,170,122,122,122,122,122,122,125,122,122,122,122,130,122,122,122,122,125,122,122,122,122,122,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,122,122,122,122,122,122,174,170,170,170,170,170,170,170,170,170,170,170,170,257,170,170,170,170,170,170,174,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,197,197,170,170,170,125:7,170,170,170,170,170,170,170,170,170,170,170,170,170,257,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,185,183,170,197,197,122,170,170,174,122,122,122,122,122,122,122,130,122,122,122,122,122,122,122,174,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,195,195,170,185,183,122,257,257,170,122,2,2,2,115,2,111,2,2,3,111,111,2,111,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,170,170,170,195,195,122,170,257,257,122,111,2,111,2,2,2,3,111,2,3,114,115,111,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,129:8,122,122,122,122,122,170,170,170,122,114,3,3,111,2,115,2,2,111,2,111,2,114,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,171,171&10,178@5,177,177,122,170,170,170,122,111,2,111,56,55,55,55,55,55,55,55,54,111,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,170&10,170,170&10,170$1,170$2,134,170,170,170,122,2,111,2,57,50,50,62,51,59,50,50,53,2,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,202,202,170@6$0,170&10,170&10,122,170,170,170,122,2,2,111,57,50,50,53,2&9,58,59,50,53,111,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,122,122,122,122,122,122,122,170,170,170,122,111,111,2,58,51,51,52,111,111,58,51,52,2,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,170,170,170,170,170,170,122,170,170,170,122,114,2,111,2,2,111,2,111,2,2,111,2,2,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,170,170,170,170,170,170,122,170,170,170,122,2,111,2,2,111,2,111,2,2,2,2,2,111,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112>,170,170,170,170,170,170,170,170,122,170,170,174,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,174,170,170,122,170,170,170,170,170,170,170,112<,112,112,112,112
112,112,112,112,112,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,122,170,170,170,122,122,122,122,122,122,122,130,122,122,122,122,122,122,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,122,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,122,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,122,170,170,170,0,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,122,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,0,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,0,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,0,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,0,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,0,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,0,170,170,170,170,170,170,170,170,170,170,170,170,170,122,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112>,170,170,170,170,170,170,170,170,170,170,170,170,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,170,170,170,170,170,170,170,170,170,170,170,112<,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
-112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,170,170,170,170,170,170,122,174,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,174,122,170,170,170,170,170,170,170,112,112,112,112,112
+112,112,112,112,112,170,170,170,170,170,170,170,170,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,170,170,170,170,170,170,170,112,112,112,112,112
112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
112,112,112,112,112,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,112,112,112,112,112
diff --git a/rsrc/scenarios/tutorial/towns/town0.spec b/rsrc/scenarios/tutorial/towns/town0.spec
index c6ce986b..0452b47b 100644
--- a/rsrc/scenarios/tutorial/towns/town0.spec
+++ b/rsrc/scenarios/tutorial/towns/town0.spec
@@ -47,3 +47,80 @@
ex1 22, 9, -1
ex2 133, 0, -1
goto -1
+@once-disp-msg = 7
+ sdf 0, 2
+ msg 15, -1, -1
+ pic 0, 4
+ ex1 -1, -1, -1
+ ex2 -1, -1, -1
+ goto -1
+@once-dlog = 8
+ sdf 0, 3
+ msg 16, -1, 1
+ pic 102, 3
+ ex1 -1, -1, -1
+ ex2 -1, -1, -1
+ goto -1
+@inc-sdf = 9
+ sdf 0, 4
+ msg -1, -1, -1
+ pic 0, 4
+ ex1 1, 0, -1
+ ex2 -1, -1, -1
+ goto 10
+@if-sdf = 10
+ sdf 0, 4
+ msg -1, -1, -1
+ pic 0, 4
+ ex1 3, 16, -1
+ ex2 -1, -1, -1
+ goto -1
+@once-dlog = 11
+ sdf -1, -1
+ msg 22, -1, 1
+ pic 0, 4
+ ex1 -1, -1, -1
+ ex2 -1, -1, -1
+ goto -1
+@if-status = 12
+ sdf -1, -1
+ msg -1, -1, -1
+ pic 0, 4
+ ex1 6, 14, -1
+ ex2 1, 0, 2
+ goto 15
+@if-sdf = 13
+ sdf 0, 4
+ msg -1, -1, -1
+ pic 0, 4
+ ex1 3, 12, -1
+ ex2 -1, -1, -1
+ goto -1
+@if-sdf = 14
+ sdf 0, 5
+ msg -1, -1, -1
+ pic 0, 4
+ ex1 1, -1, -1
+ ex2 -1, -1, -1
+ goto 11
+@set-sdf = 15
+ sdf 0, 5
+ msg 28, -1, -1
+ pic 0, 4
+ ex1 1, -1, -1
+ ex2 -1, -1, -1
+ goto -1
+@disp-msg = 16
+ sdf -1, -1
+ msg 29, -1, -1
+ pic 0, 4
+ ex1 -1, -1, -1
+ ex2 -1, -1, -1
+ goto -1
+@disp-msg = 17
+ sdf -1, -1
+ msg 30, -1, -1
+ pic 0, 4
+ ex1 -1, -1, -1
+ ex2 -1, -1, -1
+ goto -1
diff --git a/rsrc/scenarios/tutorial/towns/town0.xml b/rsrc/scenarios/tutorial/towns/town0.xml
index 125d3f88..5d9e4e0f 100644
--- a/rsrc/scenarios/tutorial/towns/town0.xml
+++ b/rsrc/scenarios/tutorial/towns/town0.xml
@@ -8,6 +8,8 @@
0
lit
+ 13
+ 17
@@ -27,6 +29,36 @@
155
true
+ -
+ 19
+
+ -
+ 19
+
+
+ 118
+ hostile-a
+ 1
+ -1
+ 0
+ 9
+
+
+ 118
+ hostile-a
+ 1
+ -1
+ 0
+ 9
+
+
+ 118
+ hostile-a
+ 1
+ -1
+ 0
+ 9
+
@@ -48,4 +80,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rsrc/scenarios/valleydy/towns/town0.xml b/rsrc/scenarios/valleydy/towns/town0.xml
index fc2eae92..afdefa36 100644
--- a/rsrc/scenarios/valleydy/towns/town0.xml
+++ b/rsrc/scenarios/valleydy/towns/town0.xml
@@ -90,16 +90,6 @@
-
155
- -
- -1
- true
- true
-
- -
- -1
- true
- true
-
-
20
true
@@ -213,10 +203,6 @@
-
171
- -
- -1
- true
-
-
165
true
diff --git a/rsrc/scenarios/valleydy/towns/town1.xml b/rsrc/scenarios/valleydy/towns/town1.xml
index f5eee8e6..2f8aaeaa 100644
--- a/rsrc/scenarios/valleydy/towns/town1.xml
+++ b/rsrc/scenarios/valleydy/towns/town1.xml
@@ -226,24 +226,15 @@
-
11
- -
- -1
-
-
10
- -
- -1
-
-
11
-
9
- -
- -1
-
-
12