Elimination of OBJSND.
[open-adventure.git] / adventure.yaml
index 85a70bceff5b5f6952bf54812bcb59738ca15d12..6ba2797e8659634319a791fe9e4c415744b8cf78 100644 (file)
 #    number of the hint.  These values are stashed in the "hints"
 #    array.
 #
-# locations: Each item contains a long and short description.  Some
-#    short descriptions are empty.  Order of these locations is not significant.
-#    Location conditions can be read as follows:
+# locations: They have attributes as follows...
+#
+#    long:         Long description, always shown on first encounter.
+#    short:        Short description. If none, use long description.
+#    conditions:   A dictionary of attributes
 #        LIT           Light
 #        OILY          If FLUID flag is on: true for oil, false for water
 #        FLUID         Liquid asset
 #        HWOODS                Lost in forest
 #        HOGRE         Trying to deal with ogre
 #        HJADE         Found all treasures except jade
-#    The optional hints field is a list of YAML references to hints
-#    that may be available at this location. (This is why locations
-#    has to follow hints.)  The "sound" attribute, if present, is s
-#    label for a location sound.
+#    hints:        A list of YAML references to hints that may be available at
+#                  this location. (This is why locations has to follow hints.)
+#    sound:        Label for a location sound.
+#    loud:         If true, object sounds are drowned out at this location.
+#
+#    All attributes are optional except the long description. 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).
 #
 # objects: Each item contains a description for use in the inventory command
 #    and one or more messages describing the object in different states.
-#    If the inventory desription begins with "*" the object is dungeon
-#    furniture that cannot be taken or carried.
+#    If a state message is a tuple then the first element is made the name
+#    of a #define viible to the code for the associayed state, numbered
+#    from zero upwards. If the inventory desription begins with "*" the
+#    object is dungeon furniture that cannot be taken or carried.
 #
 # obituaries: Death messages and reincarnation queries.  Order is
 #    significant, they're used in succession as the player racks up
@@ -829,6 +836,7 @@ locations: !!omap
     conditions: {NOARRR: true, LIT: true, DEEP: true}
     hints: [*jade]
     sound: TOTAL_ROAR
+    loud: true
 - LOC_BOULDERS2:
     description:
       long: 'You are in a small chamber filled with large boulders.  The walls are\nvery warm, causing the air in the room to be almost stifling from the\nheat.  The only exit is a crawl heading west, through which is coming\na low rumbling.'
@@ -1064,6 +1072,7 @@ locations: !!omap
       short: 'You''re at bottom of reservoir.'
     conditions: {FLUID: true, DEEP: true}
     sound: TOTAL_ROAR
+    loud: true
 - LOC_RESNORTH:
     description:
       long: 'You are at the northern edge of the reservoir.  A northwest passage\nleads sharply up from here.'
@@ -1336,7 +1345,7 @@ arbitrary_messages:  !!omap
 - PIRATE_SPOTTED: 'There are faint rustling noises from the darkness behind you.  As you\nturn toward them, the beam of your lamp falls across a bearded pirate.\nHe is carrying a large chest.  "Shiver me timbers!" he cries, "I''ve\nbeen spotted!  I''d best hie meself off to the maze to hide me chest!"\nWith that, he vanishes into the gloom.'
 - GET_BATTERIES: 'Your lamp is getting dim.  You''d best go back for those batteries.'
 - REPLACE_BATTERIES: 'Your lamp is getting dim.  I''m taking the liberty of replacing the\nbatteries.'
-- MISSING_BATTERYIES: 'Your lamp is getting dim, and you''re out of spare batteries.  You''d\nbest start wrapping this up.'
+- MISSING_BATTERIES: 'Your lamp is getting dim, and you''re out of spare batteries.  You''d\nbest start wrapping this up.'
 - REMOVE_MESSAGE: 'You sift your fingers through the dust, but succeed only in\nobliterating the cryptic message.'
 - OGRE_QUERY: 'Do you need help dealing with the ogre?'
 - CLUE_QUERY: 'Hmmm, this looks like a clue, which means it''ll cost you 10 points to\nread it.  Should I go ahead and read it anyway?'
@@ -1348,6 +1357,7 @@ arbitrary_messages:  !!omap
 - BREAK_VASE: 'You have taken the vase and hurled it delicately to the ground.'
 - PROD_DWARF: 'You prod the nearest dwarf, who wakes up grumpily, takes one look at\nyou, curses, and grabs for his axe.'
 - THIS_ACCEPTABLE: 'Is this acceptable?'
+# This message is not currently used
 - ALREADY_OVER: 'This adventure is already over.  To start a new adventure, or to\nresume an earlier adventure, please run a fresh copy of the program.'
 - OGRE_FULL: 'The ogre doesn''t appear to be hungry.'
 - OGRE_DODGE: 'The ogre, who despite his bulk is quite agile, easily dodges your\nattack.  He seems almost amused by your puny effort.'
@@ -1417,7 +1427,8 @@ arbitrary_messages:  !!omap
 - TABLE_SPACE: 'Table space used:\n%d of %d words of messages   %d of %d travel options\n%d of %d vocabulary words    %d of %d locations\n%d of %d objects             %d of %d action verbs\n%d of %d "random" messages   %d of %d "class" messages\n%d of %d hints               %d of %d turn threshholds'
 - RESUME_ABANDON: 'To resume an earlier Adventure, you must abandon the current one.'
 - VERSION_SKEW: 'I''m sorry, but that Adventure was begun using Version%d.%d of the\nprogram, and this is Version%d.%d.  You must find the other version\nin order to resume that Adventure.'
-- DAVE_TAMPERING: 'A dark fog creeps in to surround you.  From somewhere in the fog you\nhear a stern voice.  "This Adventure has been tampered with!  You have\nbeen dabbling in magic, knowing not the havoc you might cause thereby.\nLeave at once, before you do irrevocable harm!"  The fog thickens,\nuntil at last you can see nothing at all.  Your vision then clears,\nand you find yourself back in The Real World.'
+# This message is not currently used
+- SAVE_TAMPERING: 'A dark fog creeps in to surround you.  From somewhere in the fog you\nhear a stern voice.  "This Adventure has been tampered with!  You have\nbeen dabbling in magic, knowing not the havoc you might cause thereby.\nLeave at once, before you do irrevocable harm!"  The fog thickens,\nuntil at last you can see nothing at all.  Your vision then clears,\nand you find yourself back in The Real World.'
 - GUESS_AGAIN: 'Guess again.'
 - MISSING_ONE: 'You''re missing only one other treasure.  Do you need help finding it?'
 - NO_LOCATE: 'Once you''ve found all the other treasures, it is no longer possible to\nlocate the one you''re now missing.'
@@ -1425,6 +1436,8 @@ arbitrary_messages:  !!omap
 - ADVENTURE_NEWS: 'Open Adventure is an author-approved open-source release of\nVersion 2.5 with, as yet, no gameplay changes.\nVersion 2.5 was essentially the same as Version II; the cave and the\nhazards therein are unchanged, and top score is still 430 points.\nThere are a few more hints, especially for some of the more obscure\npuzzles.  There are a few minor bugfixes and cosmetic changes.  You\ncan now save a game and resume it at once (formerly you had to wait a\nwhile first), but it now costs you a few points each time you save the\ngame.  Saved games are now stored in much smaller files than before.'
 - GO_UNNEEDED: 'You don''t have to say "go" every time; just specify a direction or, if\nit''s nearby, name the place to which you wish to move.'
 - CANNOT_CARRY7: !!null
+- MACHINE_SWINGOUT: 'As you strike the vending machine, it pivots backward along with a\nsection of wall, revealing a dark passage leading south.'
+- MACHINE_SWINGBACK: 'The vending machine swings back to block the passage.'
   
 classes: 
 - threshold: 0
@@ -1475,13 +1488,13 @@ object_descriptions: !!omap
 - OBJ_2:
     inventory: 'Brass lantern'
     longs:
-    - 'There is a shiny brass lamp nearby.'
-    - 'There is a lamp shining nearby.'
+    - [LAMP_DARK, 'There is a shiny brass lamp nearby.']
+    - [LAMP_BRIGHT, 'There is a lamp shining nearby.']
 - OBJ_3:
     inventory: '*grate'
     longs:
-    - 'The grate is locked.'
-    - 'The grate is open.'
+    - [GRATE_CLOSED, 'The grate is locked.']
+    - [GRATE_OPEN, 'The grate is open.']
 - OBJ_4:
     inventory: 'Wicker cage'
     longs:
@@ -1502,9 +1515,10 @@ object_descriptions: !!omap
 - OBJ_8:
     inventory: 'Little bird in cage'
     longs:
-    - 'A cheerful little bird is sitting here singing.'
-    - 'There is a little bird in the cage.'
-    - 'A cheerful little bird is sitting here singing.'
+    - [BIRD_UNCAGED, 'A cheerful little bird is sitting here singing.']
+    - [BIRD_CAGED, 'There is a little bird in the cage.']
+    - [BIRD_FOREST_UNCAGED, 'A cheerful little bird is sitting here singing.']
+    sounds:
     - 'The bird''s singing is quite melodious.'
     - '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.'
@@ -1525,6 +1539,7 @@ object_descriptions: !!omap
     longs:
     - 'A huge green fierce snake bars the way!'
     - '' # chased away
+    sounds:
     - 'The snake is hissing venomously.'
 - OBJ_12:
     inventory: '*fissure'
@@ -1536,23 +1551,27 @@ object_descriptions: !!omap
     inventory: '*stone tablet'
     longs:
     - 'A massive stone tablet imbedded in the wall reads:\n"Congratulations on bringing light into the dark-room!"'
+    texts:
     - '"Congratulations on bringing light into the dark-room!"'
 - OBJ_14:
     inventory: 'Giant clam  >GRUNT!<'
     longs:
     - 'There is an enormous clam here with its shell tightly closed.'
+    sounds:
     - 'The clam is as tight-mouthed as a, er, clam.'
 - OBJ_15:
     inventory: 'Giant oyster  >GROAN!<'
     longs:
     - 'There is an enormous oyster here with its shell tightly closed.'
     - 'Interesting.  There seems to be something written on the underside of\nthe oyster.'
+    sounds:
     - 'Even though it''s an oyster, the critter''s as tight-mouthed as a clam.'
     - 'It says the same thing it did before.  Hm, maybe it''s a pun?'
 - OBJ_16:
     inventory: '"Spelunker Today"'
     longs:
     - 'There are a few recent issues of "Spelunker Today" magazine here.'
+    texts:
     - 'I''m afraid the magazine is written in dwarvish.  But pencilled on one\ncover you see, "Please leave the magazines at the construction site."'
 - OBJ_17:
     inventory: !!null
@@ -1567,9 +1586,9 @@ object_descriptions: !!omap
 - OBJ_20:
     inventory: 'Small bottle'
     longs:
-    - 'There is a bottle of water here.'
-    - 'There is an empty bottle here.'
-    - 'There is a bottle of oil here.'
+    - [WATER_BOTTLE, 'There is a bottle of water here.']
+    - [EMPTY_BOTTLE, 'There is an empty bottle here.']
+    - [OIL_BOTTLE, 'There is a bottle of oil here.']
 - OBJ_21:
     inventory: 'Water in the bottle'
     longs: !!null
@@ -1588,6 +1607,7 @@ object_descriptions: !!omap
     - 'The plant spurts into furious growth for a few seconds.'
     - 'The plant grows explosively, almost filling the bottom of the pit.'
     - 'You''ve over-watered the plant!  It''s shriveling up!  And now . . .'
+    sounds:
     - 'The plant continues to ask plaintively for water.'
     - 'The plant continues to demand water.'
     - 'The plant now maintains a contented silence.'
@@ -1623,6 +1643,7 @@ object_descriptions: !!omap
     - 'The blood-specked body of a huge green dead dragon lies to one side.'
     - 'The body of a huge green dead dragon is lying off to one side.'
     - 'Congratulations!  You have just vanquished a dragon with your bare\nhands!  (Unbelievable, isn''t it?)'
+    sounds:
     - 'The dragon''s ominous hissing does not bode well for you.'
     - 'The dragon is, not surprisingly, silent.'
     - 'The dragon is, not surprisingly, silent.'
@@ -1637,6 +1658,7 @@ object_descriptions: !!omap
     - 'A burly troll stands by the bridge and insists you throw him a\ntreasure before you may cross.'
     - 'The troll steps out from beneath the bridge and blocks your way.'
     - '' # chased away
+    sounds:
     - 'The troll sounds quite adamant in his demand for a treasure.'
 - OBJ_34:
     inventory: '*phony troll'
@@ -1653,6 +1675,7 @@ object_descriptions: !!omap
     inventory: '*message in second maze'
     longs:
     - 'There is a message scrawled in the dust in a flowery script, reading:\n"This is not the maze where the pirate leaves his treasure chest."'
+    texts:
     - '"This is not the maze where the pirate leaves his treasure chest."'
 - OBJ_37:
     inventory: '*volcano and/or geyser'
@@ -1660,17 +1683,16 @@ object_descriptions: !!omap
 - OBJ_38:
     inventory: '*vending machine'
     longs:
-    - 'There is a massive and somewhat battered vending machine here.  The\ninstructions on it read: "Drop coins here to receive fresh batteries."'
+    - [VEND_BLOCKS, 'There is a massive and somewhat battered vending machine here.  The\ninstructions on it read: "Drop coins here to receive fresh batteries."']
+    - [VEND_UNBLOCKS, 'There is a massive vending machine here, swung back to reveal a\nsouthward passage.']
+    texts:
     - '"Drop coins here to receive fresh batteries."'
-    - 'As you strike the vending machine, it pivots backward along with a\nsection of wall, revealing a dark passage leading south.'
-    - 'There is a massive vending machine here, swung back to reveal a\nsouthward passage.'
     - '"Drop coins here to receive fresh batteries."'
-    - 'The vending machine swings back to block the passage.'
 - OBJ_39:
     inventory: 'Batteries'
     longs:
-    - 'There are fresh batteries here.'
-    - 'Some worn-out batteries have been discarded nearby.'
+    - [FRESH_BATTERIES, 'There are fresh batteries here.']
+    - [DEAD_BATTERIES, 'Some worn-out batteries have been discarded nearby.']
 - OBJ_40:
     inventory: '*carpet and/or moss and/or curtains'
     longs: !!null
@@ -1678,6 +1700,7 @@ object_descriptions: !!omap
     inventory: '*ogre'
     longs:
     - 'A formidable ogre bars the northern exit.'
+    sounds:
     - 'The ogre is apparently the strong, silent type.'
 - OBJ_42:
     inventory: '*urn'
@@ -1708,16 +1731,19 @@ object_descriptions: !!omap
     inventory: '*mud'
     longs:
     - ''
+    texts:
     - '"MAGIC WORD XYZZY"'
 - OBJ_48:
     inventory: '*note'
     longs:
     - ''
+    texts:
     - '"You won''t get it up the steps"'
 - OBJ_49:
     inventory: '*sign'
     longs:
     - ''
+    texts:
     - 'Cave under construction beyond this point.\n           Proceed at own risk.\n       [Witt Construction Company]'
     - '"Treasure Vault.  Keys in main office."'
 - OBJ_50:
@@ -1757,10 +1783,10 @@ object_descriptions: !!omap
 - OBJ_58:
     inventory: 'Ming vase'
     longs:
-    - 'There is a delicate, precious, ming vase here!'
-    - 'The vase is now resting, delicately, on a velvet pillow.'
-    - 'The floor is littered with worthless shards of pottery.'
-    - 'The ming vase drops with a delicate crash.'
+    - [VASE_WHOLE, 'There is a delicate, precious, ming vase here!']
+    - [VASE_RESTING, 'The vase is now resting, delicately, on a velvet pillow.']
+    - [VASE_BROKEN, 'The floor is littered with worthless shards of pottery.']
+    - [VASE_DROPS, 'The ming vase drops with a delicate crash.']
 - OBJ_59:
     inventory: 'Egg-sized emerald'
     longs: