Test coverage - Almost all of score.c
[open-adventure.git] / adventure.yaml
index fca76765ebf57dd0afeb44d59f1614a86290fa2e..81cc864d26e9f1a9af6bc2e3e806a50d609640e0 100644 (file)
@@ -1,3 +1,53 @@
+# This YAML file gets processed into a collection of data structure and
+# variable initializers describing Colossal Cave.  It replaces an ad-hoc
+# text database shipped with Adventure versions up to 2.5.  The format
+# change enabled a lot of use of symbolic names where there were previously
+# inscrutable numeric literals.
+#
+# We define a bunch of YAML structures:
+#
+# locations: Each item contains a long and short description.  Some
+#    short descriptions are empty.  Order of these locations is significant;
+#    see the macros OUTSID and INDEEP.
+#
+# arbitrary_messages: These are arguments to RSPEAK(). Some spans of
+#    these messages need to be kept adjacent and ordered.  To see which,
+#    grep for RSPEAK calls containing expressions with arithmetic.
+#
+# classes: Each item contains a point threshold and a message
+#    describing a classification of player.  point thresholds must be
+#    in ascending order. The scoring code selects the appropriate
+#    message, where each message is considered to apply to players
+#    whose scores are higher than the previous N but not higher than
+#    this N.  Note that these scores probably change with every
+#    modification (and particularly expansion) of the program.
+#
+# turn_thresholds:  Each item contains a number and a message
+#    berating the player for taking so many turns.  The messages must
+#    be in the proper (ascending) order.  The message gets printed if
+#    the player exceeds N % 100000 turns, at which time N/100000
+#    points get deducted from his score.
+#
+# 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.
+#
+# obituaries: Death messages and reincarnation queries.  Order is
+#    significant, they're used in succession as the player racks up
+#    deaths.
+#
+# hints: Each item contains a hint number (add 10 to get cond bit),
+#    the number of turns he must be at the right loc(s) before
+#    triggering the hint, the points deducted for taking the hint, the
+#    message number (section 6) of the question, and the message
+#    number of the hint.  These values are stashed in the "hints"
+#    array.
+#
+# These correspond to sections 1, 2, 5, 6, 10, 11, and 14 in the old
+# adventure.text format.  Sections 3, 4, 7, 8, and 9 haven't moved yet.
+# Section 12 was obsolete.
+
 locations: !!omap
 - LOC_NOWHERE:
     description:
@@ -575,7 +625,7 @@ locations: !!omap
     description:
       long: 'You are in a large chamber with passages to the west and north.'
       short: !!null
-- LOC_SOTOREROOM:
+- LOC_STOREROOM:
     description:
       long: 'You are in the ogre''s storeroom.  The only exit is to the south.'
       short: !!null
@@ -1512,3 +1562,58 @@ obituaries:
     yes_response: 'Okay, now where did I put my orange smoke?....  >POOF!<\nEverything disappears in a dense cloud of orange smoke.'
   - query: 'Now you''ve really done it!  I''m out of orange smoke!  You don''t expect\nme to do a decent reincarnation without any orange smoke, do you?'
     yes_response: 'Okay, if you''re so smart, do it yourself!  I''m leaving!'
+
+# FIXME: Hint texts shouldn't be in arbitrary_messages, but inlined here
+hints:
+- number: 1
+  turns: 4
+  penalty: 2
+  question: ENTRY_QUERY
+  hint: HARD_GRATE
+- number: 2
+  turns: 5
+  penalty: 2
+  question: BIRD_QUERY
+  hint: SKITTISH_BIRD
+- number: 3
+  turns: 8
+  penalty: 2
+  question: SNAKE_QUERY
+  hint: SNAKE_HINT
+- number: 4
+  turns: 75
+  penalty: 4
+  question: MAZE_HELP
+  hint: DROP_THINGS
+- number: 5
+  turns: 25
+  penalty: 5
+  question: PLOVER_QUERY
+  hint: EXPLORE_HINT
+- number: 6
+  turns: 20
+  penalty: 3
+  question: HELP_LEAVING
+  hint: NOGO_WEST
+- number: 7
+  turns: 8
+  penalty: 2
+  question: WONDERING_QUERY
+  hint: ADVANCED_SECTION
+- number: 8
+  turns: 25
+  penalty: 2
+  question: FOREST_QUERY
+  hint: GO_EAST
+- number: 9
+  turns: 10
+  penalty: 4
+  question: OGRE_QUERY
+  hint: OGRE_CLUE
+- number: 10
+  turns: 1
+  penalty: 4
+  question: MISSING_ONE
+  hint: NO_LOCATE
+
+# end