Typo fix.
[open-adventure.git] / adventure.yaml
index c75dbd0ec060fa4ab2ca5bdc393e058cc522a1d1..31988de02af8bc300f4a95e8d784ed226846dbee 100644 (file)
@@ -1,3 +1,6 @@
+# SPDX-FileCopyrightText: (C) Eric S. Raymond <esr@thyrsus.com>
+# SPDX-License-Identifier: BSD-2-Clause
+#
 # This YAML file gets processed into a collection of data structures and
 # variable initializers describing Colossal Cave.  It replaces an ad-hoc
 # text database shipped with Adventure versions up to 2.5.  The format
 #      long:         Long description, always shown on first encounter.
 #      short:        Short description. If none, use long description.
 #      maptag:       Tag for mapping, not used by the game itself.
-#                    Only used if the "short" propery in !!null.
+#                    Only used if the "short" property is !!null.
 #      conditions:   A dictionary of attributes
 #        LIT           Light
 #        OILY          If FLUID flag is on: true for oil, false for water
 #        FLUID         Liquid asset
 #        NOARRR                Pirate doesn't go here unless following player
 #        NOBACK                Cannot use "back" to move away
+#        ALLDIFFERENT   Part of the maze all different (used in grapher only)
+#        ALLALIKE       Part of the maze all alike (used in grapher only)
 #        HCAVE         Trying to get into cave
 #        HBIRD         Trying to catch bird
 #        HSNAKE                Trying to deal with snake
 #    All attributes are optional except the long description and
 #    travel. Order of locations is not significant.
 #
-# arbitrary_messages: These are arguments to rspeak(). Some spans of
-#    these messages need to be kept adjacent and ordered (for now),
-#    though there are no dependencies on actual numbers left.  To see
-#    which, grep for rspeak() calls containing expressions with
-#    arithmetic.  Eventually, these will be pulled out into more
-#    appropriate data structures. Then ordering can be dropped.
+# arbitrary_messages: These are arguments to rspeak(). Order is
+#    not significant.
 #
 # classes: Each item contains a point threshold and a message
 #    describing a classification of player.  Point thresholds must be
@@ -83,7 +84,7 @@
 #    Order doesn't matter; the logic simply tests every threshold on
 #    the assumption that turn counts never decrease nor skip values.
 #
-# objects: Objects that are refernced in C code or the YAML by name
+# objects: Objects that are referenced in C code or the YAML by name
 #    have human-readable names; others are named OBJ with a numeric suffix.
 #    Objects have attributes as follows...
 #      inventory:    A description for use in the inventory command.
 # message when the message is printed.  These sequences are:
 #       %d = an integer
 #       %s = an ASCII string
-#      %S = The letter 's' or nothing (if a previous %d value is exactly 1)
+#      %S = the letter 's' or nothing (if a previous %d value is exactly 1)
 #      %V = substitute program version string
 #
-# Copyright (c) 2017 by Eric S. Raymond
-# SPDX-License-Identifier: BSD-2-clause
 
+# Motion names of the form MOT_* are not explicitly referenced in the
+# locations YAML, but usually get compiled into generated C.
 motions: !!omap
 - MOT_0:
     words: !!null
@@ -369,7 +370,7 @@ locations: !!omap
     description:
       long: !!null
       short: !!null
-      maptag: !!null
+      maptag: 'Nowhere'
     conditions: {}
     travel: [
     ]
@@ -783,7 +784,7 @@ locations: !!omap
           You are in a low n/s passage at a hole in the floor.  The hole goes
           down to an e/w passage.
       short: 'You''re in n/s passage above e/w passage.'
-      maptag: !!null
+      maptag: "Floor hole."
     conditions: {DEEP: true}
     travel: [
       {verbs: [HALL, OUT, SOUTH], action: [goto, LOC_KINGHALL]},
@@ -838,7 +839,7 @@ locations: !!omap
           west, and a wall of broken rock to the east.  There is a large "Y2" on
           a rock in the room's center.
       short: 'You''re at "Y2".'
-      maptag: !!null
+      maptag: "Y2."
     conditions: {DEEP: true}
     travel: [
       {verbs: [PLUGH], action: [goto, LOC_FOOF4]},
@@ -959,7 +960,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [UPWAR], action: [goto, LOC_MISTWEST]},
@@ -973,7 +974,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [WEST], action: [goto, LOC_ALIKE1]},
@@ -985,7 +986,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [EAST], action: [goto, LOC_ALIKE2]},
@@ -998,7 +999,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [WEST], action: [goto, LOC_ALIKE1]},
@@ -1012,7 +1013,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOARRR: true}
+    conditions: {DEEP: true, NOARRR: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [WEST, OUT], action: [goto, LOC_ALIKE4]},
@@ -1022,7 +1023,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOARRR: true}
+    conditions: {DEEP: true, NOARRR: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [EAST, OUT], action: [goto, LOC_ALIKE4]},
@@ -1032,7 +1033,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOARRR: true}
+    conditions: {DEEP: true, NOARRR: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [UPWAR, OUT], action: [goto, LOC_ALIKE3]},
@@ -1042,7 +1043,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [EAST], action: [goto, LOC_ALIKE6]},
@@ -1053,7 +1054,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [EAST], action: [goto, LOC_ALIKE3]},
@@ -1066,7 +1067,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [WEST], action: [goto, LOC_ALIKE5]},
@@ -1079,7 +1080,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [WEST], action: [goto, LOC_ALIKE6]},
@@ -1094,7 +1095,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [WEST], action: [goto, LOC_ALIKE7]},
@@ -1106,7 +1107,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOARRR: true}
+    conditions: {DEEP: true, NOARRR: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [WEST, OUT], action: [goto, LOC_ALIKE9]},
@@ -1116,7 +1117,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [WEST], action: [goto, LOC_ALIKE8]},
@@ -1129,7 +1130,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOARRR: true}
+    conditions: {DEEP: true, NOARRR: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [UPWAR, OUT], action: [goto, LOC_ALIKE10]},
@@ -1142,7 +1143,7 @@ locations: !!omap
           up.  The maze continues at this level.
       short: 'You''re at brink of pit.'
       maptag: !!null
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     travel: [
       {verbs: [DOWN, CLIMB], action: [goto, LOC_BIRDCHAMBER]},
       {verbs: [WEST], action: [goto, LOC_ALIKE10]},
@@ -1155,7 +1156,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {NOARRR: true, DEEP: true}
+    conditions: {NOARRR: true, DEEP: true, ALLALIKE: true}
     travel: [
       {verbs: [EAST, OUT], action: [goto, LOC_PITBRINK]},
     ]
@@ -1374,7 +1375,7 @@ locations: !!omap
           very tight canyon 15 feet below.  If you go down you may not be able
           to get back up.
       short: 'You''re in secret e/w canyon above tight canyon.'
-      maptag: 'Secret e/w canyom'
+      maptag: 'Secret e/w canyon'
     conditions: {DEEP: true}
     travel: [
       {verbs: [EAST], action: [goto, LOC_KINGHALL]},
@@ -1439,7 +1440,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [NORTH], action: [goto, LOC_ALIKE1]},
@@ -1452,7 +1453,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true}
+    conditions: {DEEP: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [WEST, OUT], action: [goto, LOC_ALIKE11]},
@@ -1462,7 +1463,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOARRR: true}
+    conditions: {DEEP: true, NOARRR: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [SOUTH, OUT], action: [goto, LOC_ALIKE3]},
@@ -1472,7 +1473,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     travel: [
       {verbs: [SOUTH], action: [goto, LOC_PITBRINK]},
       {verbs: [EAST], action: [goto, LOC_ALIKE13]},
@@ -1483,7 +1484,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     travel: [
       {verbs: [NORTH], action: [goto, LOC_PITBRINK]},
       {verbs: [WEST], action: [goto, LOC_ALIKE12]},
@@ -1494,7 +1495,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {NOARRR: true, DEEP: true}
+    conditions: {NOARRR: true, DEEP: true, ALLALIKE: true}
     travel: [
       {verbs: [EAST, OUT], action: [goto, LOC_ALIKE12]},
     ]
@@ -1503,7 +1504,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOARRR: true}
+    conditions: {DEEP: true, NOARRR: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [UPWAR, OUT], action: [goto, LOC_ALIKE8]},
@@ -1513,7 +1514,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all alike.'
       short: !!null
       maptag: 'Maze all alike.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLALIKE: true}
     hints: [*maze]
     travel: [
       {verbs: [UPWAR, DOWN], action: [goto, LOC_ALIKE4]},
@@ -1729,7 +1730,7 @@ locations: !!omap
     description:
       long: 'You are in a long sloping corridor with ragged sharp walls.'
       short: !!null
-      maptag: !!null
+      maptag: "Sloping corridor"
     conditions: {DEEP: true}
     travel: [
       {verbs: [UPWAR, SHELL], action: [goto, LOC_SHELLROOM]},
@@ -1765,7 +1766,7 @@ locations: !!omap
       long: 'You are in a maze of twisty little passages, all different.'
       short: !!null
       maptag: 'Maze all different'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [SOUTH], action: [goto, LOC_DIFFERENT3]},
       {verbs: [SW], action: [goto, LOC_DIFFERENT4]},
@@ -1835,7 +1836,7 @@ locations: !!omap
           having done so you would be unable to reach it to climb back up.
       short: 'You''re at top of stalactite.'
       maptag: !!null
-    conditions: {DEEP: true}
+    conditions: {DEEP: true, ALLALIKE: true}
     travel: [
       {verbs: [NORTH], action: [goto, LOC_SECRET2]},
       {verbs: [DOWN, JUMP, CLIMB], cond: [pct, 40],
@@ -1848,7 +1849,7 @@ locations: !!omap
       long: 'You are in a little maze of twisting passages, all different.'
       short: !!null
       maptag: 'Maze all different'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [SW], action: [goto, LOC_DIFFERENT3]},
       {verbs: [NORTH], action: [goto, LOC_DIFFERENT4]},
@@ -1883,7 +1884,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: !!null
-    conditions: {DEEP: true}
+    conditions: {DEEP: true, ALLALIKE: true}
     travel: [
       {verbs: [SE], action: [goto, LOC_ALIKE13]},
     ]
@@ -1902,7 +1903,7 @@ locations: !!omap
           wall, and stretches to the other end of the room, where various other
           sundry objects can be glimpsed dimly in the distance.
       short: 'You''re at ne end.'
-      maptag: 'Reoisitory ne end'
+      maptag: 'Repository ne end'
     conditions: {DEEP: true, LIT: true}
     sound: MURMURING_SNORING
     travel: [
@@ -2047,7 +2048,7 @@ locations: !!omap
           roar, so loud that the entire cave seems to be trembling.  Another
           passage leads south, and a low crawl goes east.
       short: 'You''re at junction with warm walls.'
-      maptag: !!null
+      maptag: "Warm junction"
     conditions: {NOARRR: true, DEEP: true}
     sound: LOUD_ROAR
     travel: [
@@ -2107,7 +2108,7 @@ locations: !!omap
     ]
 - LOC_LIMESTONE:
     description:
-      long:
+      long: |-
           You are walking along a gently sloping north/south passage lined with
           oddly shaped limestone formations.
       short: 'You''re in limestone passage.'
@@ -2151,7 +2152,7 @@ locations: !!omap
       long: 'You are in a maze of twisting little passages, all different.'
       short: !!null
       maptag: 'Maze all different.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [WEST], action: [goto, LOC_DIFFERENT1]},
       {verbs: [SE], action: [goto, LOC_DIFFERENT4]},
@@ -2169,7 +2170,7 @@ locations: !!omap
       long: 'You are in a little maze of twisty passages, all different.'
       short: !!null
       maptag: 'Maze all different.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [NW], action: [goto, LOC_DIFFERENT1]},
       {verbs: [UPWAR], action: [goto, LOC_DIFFERENT3]},
@@ -2187,7 +2188,7 @@ locations: !!omap
       long: 'You are in a twisting maze of little passages, all different.'
       short: !!null
       maptag: 'Maze all different.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [UPWAR], action: [goto, LOC_DIFFERENT1]},
       {verbs: [DOWN], action: [goto, LOC_DIFFERENT3]},
@@ -2205,7 +2206,7 @@ locations: !!omap
       long: 'You are in a twisting little maze of passages, all different.'
       short: !!null
       maptag: 'Maze all different.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [NE], action: [goto, LOC_DIFFERENT1]},
       {verbs: [NORTH], action: [goto, LOC_DIFFERENT3]},
@@ -2223,7 +2224,7 @@ locations: !!omap
       long: 'You are in a twisty little maze of passages, all different.'
       short: !!null
       maptag: 'Maze all different.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [NORTH], action: [goto, LOC_DIFFERENT1]},
       {verbs: [SE], action: [goto, LOC_DIFFERENT3]},
@@ -2241,7 +2242,7 @@ locations: !!omap
       long: 'You are in a twisty maze of little passages, all different.'
       short: !!null
       maptag: 'Maze all different.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [EAST], action: [goto, LOC_DIFFERENT1]},
       {verbs: [WEST], action: [goto, LOC_DIFFERENT3]},
@@ -2259,7 +2260,7 @@ locations: !!omap
       long: 'You are in a little twisty maze of passages, all different.'
       short: !!null
       maptag: 'Maze all different.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [SE], action: [goto, LOC_DIFFERENT1]},
       {verbs: [NE], action: [goto, LOC_DIFFERENT3]},
@@ -2277,7 +2278,7 @@ locations: !!omap
       long: 'You are in a maze of little twisting passages, all different.'
       short: !!null
       maptag: 'Maze all different.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [DOWN], action: [goto, LOC_DIFFERENT1]},
       {verbs: [EAST], action: [goto, LOC_DIFFERENT3]},
@@ -2295,7 +2296,7 @@ locations: !!omap
       long: 'You are in a maze of little twisty passages, all different.'
       short: !!null
       maptag: 'Maze all different.'
-    conditions: {DEEP: true, NOBACK: true}
+    conditions: {DEEP: true, NOBACK: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [SW], action: [goto, LOC_DIFFERENT1]},
       {verbs: [NW], action: [goto, LOC_DIFFERENT3]},
@@ -2313,7 +2314,7 @@ locations: !!omap
       long: 'Dead end'
       short: !!null
       maptag: !!null
-    conditions: {DEEP: true}
+    conditions: {DEEP: true, ALLDIFFERENT: true}
     travel: [
       {verbs: [NORTH, OUT], action: [goto, LOC_DIFFERENT2]},
       {verbs: [SOUTH], cond: [not, VEND, VEND_BLOCKS], action: [goto, LOC_ROUGHHEWN]},
@@ -2323,7 +2324,7 @@ locations: !!omap
     description:
       long: 'You are in a long, rough-hewn, north/south corridor.'
       short: !!null
-      maptag: 'Rough-newn corridor'
+      maptag: 'Rough-hewn corridor'
     conditions: {DEEP: true}
     travel: [
       {verbs: [NORTH], action: [goto, LOC_DEADEND13]},
@@ -2354,7 +2355,7 @@ locations: !!omap
     description:
       long: 'You are in the ogre''s storeroom.  The only exit is to the south.'
       short: !!null
-      maptag: 'Ogre''s streroom.'
+      maptag: 'Ogre''s storeroom.'
     conditions: {DEEP: true}
     travel: [
       {verbs: [SOUTH, OUT], action: [goto, LOC_LARGE]},
@@ -2755,7 +2756,7 @@ locations: !!omap
           You are on a small ledge at the top of a nearly vertical cliff.
           There is a low crawl leading off to the northeast.
       short: 'You''re at top of cliff.'
-      maptag: 'Cliiftop'
+      maptag: 'Clifftop'
     conditions: {DEEP: true}
     travel: [
       {verbs: [CLIMB, DOWN], action: [goto, LOC_CLIFFACE]},
@@ -2834,6 +2835,18 @@ locations: !!omap
       {verbs: [], action: [goto, LOC_Y2]},
     ]
 
+# Starting locations of dwarves.
+# Sixth dwarf is special (the pirate).  He always starts at his
+# chest's eventual location inside the maze.
+dwarflocs: [
+    LOC_KINGHALL,
+    LOC_WESTBANK,
+    LOC_Y2,
+    LOC_ALIKE3,
+    LOC_COMPLEX,
+    LOC_MAZEEND12,
+]
+
 arbitrary_messages:  !!omap
 - NO_MESSAGE: !!null
 - CAVE_NEARBY: |-
@@ -3015,6 +3028,7 @@ arbitrary_messages:  !!omap
       black smoke.
 - SHELL_IMPERVIOUS: 'The shell is very strong and is impervious to attack.'
 - START_OVER: 'What''s the matter, can''t you read?  Now you''d best start over.'
+- WELL_POINTLESS: 'Well, that was remarkably pointless!'
 - DRAGON_SCALES: 'The axe bounces harmlessly off the dragon''s thick scales.'
 - NASTY_DRAGON: 'The dragon looks rather nasty.  You''d best not try to get by.'
 - BIRD_BURNT: |-
@@ -3173,6 +3187,7 @@ arbitrary_messages:  !!omap
     To achieve the next higher rating would be a neat trick!
     Congratulations!!
 - OFF_SCALE: 'You just went off my scale!!'
+- SAVERESUME_DISABLED: 'Save and resume are disabled.'
 - RESUME_HELP: 'To resume your Adventure, start a new game and then say "RESUME".'
 # This message is not currently used
 #- TABLE_SPACE: |-
@@ -3183,18 +3198,18 @@ arbitrary_messages:  !!omap
 #    %d of %d "random" messages   %d of %d "class" messages
 #    %d of %d hints               %d of %d turn thresholds'
 - RESUME_ABANDON: 'To resume an earlier Adventure, you must abandon the current one.'
+- BAD_SAVE: 'Oops, that does not look like a valid save file.'
 - VERSION_SKEW: |-
     I'm sorry, but that Adventure was begun using Version %d.%d of the
     save file format, and this program uses Version %d.%d.  You must find an instance
     using that other version in order to resume that Adventure.
-# This message is not currently used
-#- SAVE_TAMPERING: |-
-#    A dark fog creeps in to surround you.  From somewhere in the fog you
-#    hear a stern voice.  "This Adventure has been tampered with!  You have
-#    been dabbling in magic, knowing not the havoc you might cause thereby.
-#    Leave at once, before you do irrevocable harm!"  The fog thickens,
-#    until at last you can see nothing at all.  Your vision then clears,
-#    and you find yourself back in The Real World.
+- SAVE_TAMPERING: |-
+    A dark fog creeps in to surround you.  From somewhere in the fog you
+    hear a stern voice.  "This Adventure has been tampered with!  You have
+    been dabbling in magic, knowing not the havoc you might cause thereby.
+    Leave at once, before you do irrevocable harm!"  The fog thickens,
+    until at last you can see nothing at all.  Your vision then clears,
+    and you find yourself back in The Real World.
 - TWIST_TURN: |-
     Sorry, but the path twisted and turned so much that I can't figure
     out which way to go to get back.
@@ -3227,10 +3242,10 @@ classes:
   message: 'All of Adventuredom gives tribute to you, Adventurer Grandmaster!'
 - threshold: 9999
   message: |-
-    'Adventuredom stands in awe -- you have now joined the ranks of the
+    Adventuredom stands in awe -- you have now joined the ranks of the
            W O R L D   C H A M P I O N   A D V E N T U R E R S !
     It may interest you to know that the Dungeon-Master himself has, to
-    my knowledge, never achieved this threshold in fewer than 330 turns.'
+    my knowledge, never achieved this threshold in fewer than 330 turns.
 
 turn_thresholds:
 - threshold: 350
@@ -3250,7 +3265,9 @@ turn_thresholds:
     Good grief, don't you *EVER* give up?  Do you realize you've spent
     over 2500 turns at this?  That's another ten points off, a total of
     twenty points lost for taking so long.
-  
+
+# Objects names OBJ_* are not made visible by the map-graph generator.
+# Don't change these casually.
 objects: !!omap
 - NO_OBJECT:
     inventory: !!null
@@ -3325,7 +3342,7 @@ objects: !!omap
     - 'The bird does not seem inclined to sing while in the cage.'
     - 'It almost seems as though the bird is trying to tell you something.'
     - |-
-      To your surprise, you can understand the bird''s chirping; it is
+      To your surprise, you can understand the bird's chirping; it is
       singing about the joys of its forest home.
     - 'The bird does not seem inclined to sing while in the cage.'
     - |- 
@@ -4144,7 +4161,7 @@ actions: !!omap
     message: |-
       Mist is a white vapor, usually water, seen from time to time in
       caverns.  It can be found anywhere but is frequently a sign of a deep
-      pit leading down to water.'
+      pit leading down to water.
     words: ['mist']
     noaction: true
 - FBOMB: