home *** CD-ROM | disk | FTP | other *** search
/ Fatal Distractions! / fataldistractions.bin / chap01 / adventur / datab.h < prev    next >
Text File  |  1990-11-17  |  7KB  |  104 lines

  1. C  DESCRIPTION OF THE DATABASE FORMAT
  2. C
  3. C
  4. C  THE DATA FILE CONTAINS SEVERAL SECTIONS.  EACH BEGINS WITH A LINE CONTAINING
  5. C  A NUMBER IDENTIFYING THE SECTION, AND ENDS WITH A LINE CONTAINING "-1".
  6. C
  7. C  SECTION 1: LONG FORM DESCRIPTIONS.  EACH LINE CONTAINS A LOCATION NUMBER,
  8. C       A COMMA, AND A LINE OF TEXT.  THE SET OF (NECESSARILY ADJACENT) LINES
  9. C       WHOSE NUMBERS ARE X FORM THE LONG DESCRIPTION OF LOCATION X.
  10. C  SECTION 2: SHORT FORM DESCRIPTIONS.  SAME FORMAT AS LONG FORM.  NOT ALL
  11. C       PLACES HAVE SHORT DESCRIPTIONS.
  12. C  SECTION 3: TRAVEL TABLE.  EACH LINE CONTAINS A LOCATION NUMBER (X), A SECOND
  13. C       LOCATION NUMBER (Y), AND A LIST OF MOTION NUMBERS (SEE SECTION 4).
  14. C       EACH MOTION REPRESENTS A VERB WHICH WILL GO TO Y IF CURRENTLY AT X.
  15. C       Y, IN TURN, IS INTERPRETED AS FOLLOWS.  LET M=Y/1000, N=Y MOD 1000.
  16. C              IF N<=300       IT IS THE LOCATION TO GO TO.
  17. C               IF 300<N<=500   N=300 IS USED IN A COMPUTED GOTO TO
  18. C                                       A SECTION OF SPECIAL CODE.
  19. C               IF N>500        MESSAGE N-500 FROM SECTION 6 IS PRINTED,
  20. C                                       AND HE STAYS WHEREVER HE IS.
  21. C       MEANWHILE, M SPECIFIES THE CONDITIONS ON THE MOTION.
  22. C               IF M=0          IT'S UNCONDITIONAL.
  23. C               IF 0<M<100      IT IS DONE WITH M% PROBABILITY.
  24. C               IF M=100        UNCONDITIONAL, BUT FORBIDDEN TO DWARVES.
  25. C               IF 100<M<=200   HE MUST BE CARRYING OBJECT M-100.
  26. C               IF 200<M<=300   MUST BE CARRYING OR IN SAME ROOM AS M-200.
  27. C               IF 300<M<=400   PROP(M MOD 100) MUST *NOT* BE 0.
  28. C               IF 400<M<=500   PROP(M MOD 100) MUST *NOT* BE 1.
  29. C               IF 500<M<=600   PROP(M MOD 100) MUST *NOT* BE 2, ETC.
  30. C       IF THE CONDITION (IF ANY) IS NOT MET, THEN THE NEXT *DIFFERENT*
  31. C       "DESTINATION" VALUE IS USED (UNLESS IT FAILS TO MEET *ITS* CONDITIONS,
  32. C       IN WHICH CASE THE NEXT IS FOUND, ETC.).  TYPICALLY, THE NEXT DEST WILL
  33. C       BE FOR ONE OF THE SAME VERBS, SO THAT ITS ONLY USE IS AS THE ALTERNATE
  34. C       DESTINATION FOR THOSE VERBS.  FOR INSTANCE:
  35. C               15      110022  29      31      34     35     23     43
  36. C               15      14      29
  37. C       THIS SAYS THAT, FROM LOC 15, ANY OF THE VERBS 29, 31, ETC., WILL TAKE
  38. C       HIM TO 22 IF HE'S CARRYING OBJECT 10, AND OTHERWISE WILL GO TO 14.
  39. C               11      303008  49
  40. C               11      9       50
  41. C       THIS SAYS THAT, FROM 11, 49 TAKES HIM TO 8 UNLESS PROP(3)=0, IN WHICH
  42. C       CASE HE GOES TO 9.  VERB 50 TAKES HIM TO 9 REGARDLESS OF PROP(3).
  43. C  SECTION 4: VOCABULARY.  EACH LINE CONTAINS A NUMBER (N), A TAB, AND A
  44. C       FIVE-LETTER WORD.  CALL M=N/1000.  IF M=0, THEN THE WORD IS A MOTION
  45. C       VERB FOR USE IN TRAVELLING (SEE SECTION 3).  ELSE, IF M=1, THE WORD IS
  46. C       AN OBJECT.  ELSE, IF M=2, THE WORD IS AN ACTION VERB (SUCH AS "CARRY"
  47. C       OR "ATTACK").  ELSE, IF M=3, THE WORD IS A SPECIAL CASE VERB (SUCH AS
  48. C       "DIG") AND N MOD 1000 IS AN INDEX INTO SECTION 6.  OBJECTS FROM 50 TO
  49. C       (CURRENTLY, ANYWAY) 79 ARE CONSIDERED TREASURES (FOR PIRATE, CLOSEOUT).
  50. C  SECTION 5: OBJECT DESCRIPTIONS.  EACH LINE CONTAINS A NUMBER (N), A TAB,
  51. C       AND A MESSAGE.  IF N IS FROM 1 TO 100, THE MESSAGE IS THE "INVENTORY"
  52. C       MESSAGE FOR OBJECT N.  OTHERWISE, N SHOULD BE 000, 100, 200, ETC., AND
  53. C       THE MESSAGE SHOULD BE THE DESCRIPTION OF THE PRECEDING OBJECT WHEN ITS
  54. C       PROP VALUE IS N/100.  THE N/100 IS USED ONLY TO DISTINGUISH MULTIPLE
  55. C       MESSAGES FROM MULTI-LINE MESSAGES; THE PROP INFO ACTUALLY REQUIRES ALL
  56. C       MESSAGES FOR AN OBJECT TO BE PRESENT AND CONSECUTIVE.  PROPERTIES WHICH
  57. C       PRODUCE NO MESSAGE SHOULD BE GIVEN THE MESSAGE ">$<".
  58. C  SECTION 6: ARBITRARY MESSAGES.  SAME FORMAT AS SECTIONS 1, 2, AND 5, EXCEPT
  59. C       THE NUMBERS BEAR NO RELATION TO ANYTHING (EXCEPT FOR SPECIAL VERBS
  60. C       IN SECTION 4).
  61. C  SECTION 7: OBJECT LOCATIONS.  EACH LINE CONTAINS AN OBJECT NUMBER AND ITS
  62. C       INITIAL LOCATION (ZERO (OR OMITTED) IF NONE).  IF THE OBJECT IS
  63. C       IMMOVABLE, THE LOCATION IS FOLLOWED BY A "-1".  IF IT HAS TWO LOCATIONS
  64. C       (E.G., THE GRATE) THE FIRST LOCATION IS FOLLOWED WITH THE SECOND, AND
  65. C       THE OBJECT IS ASSUMED TO BE IMMOVABLE.
  66. C  SECTION 8: ACTION DEFAULTS.  EACH LINE CONTAINS AN "ACTION-VERB" NUMBER AND
  67. C       THE INDEX (IN SECTION 6) OF THE DEFAULT MESSAGE FOR THE VERB.
  68. C  SECTION 9: LIQUID ASSETS, ETC.  EACH LINE CONTAINS A NUMBER (N) AND UP TO 20
  69. C       LOCATION NUMBERS. BIT N (WHERE 0 IS THE UNITS BIT) IS SET IN COND(LOC)
  70. C       FOR EACH LOC GIVEN.  THE COND BITS CURRENTLY ASSIGNED ARE:
  71. C               0       LIGHT
  72. C               1       IF BIT 2 IS ON; ON FOR OIL, OFF FOR WATER
  73. C               2       LIQUID ASSET, SEE BIT 1
  74. C               3       PIRATE DOESN'T GO HERE UNLESS FOLLOWING PLAYER
  75. C       OTHER BITS ARE USED TO INDICATE AREAS OF INTEREST TO "HINT" ROUTINES:
  76. C               4       TRYING TO GET INTO CAVE
  77. C               5       TRYING TO CATCH BIRD
  78. C               6       TRYING TO DEAL WITH SNAKE
  79. C               7       LOST IN MAZE
  80. C               8       PONDERING DARK ROOM
  81. C               9       AT WITT'S END
  82. C       COND(LOC) IS SET TO 2, OVERRIDING ALL OTHER BITS, IF LOC HAS FORCED
  83. C       MOTION.
  84. C  SECTION 10: CLASS MESSAGES.  EACH LINE CONTAINS A NUMBER (N), A TAB, AND A
  85. C       MESSAGE DESCRIBING A CLASSIFICATION OF PLAYER.  THE SCORING SECTION
  86. C       SELECTS THE APPROPRIATE MESSAGE, WHERE EACH MESSAGE IS CONSIDERED TO
  87. C       APPLY TO PLAYERS WHOSE SCORES ARE HIGHER THAN THE PREVIOUS N BUT NOT
  88. C       HIGHER THAN THIS N.  NOTE THAT THESE SCORES PROBABLY CHANGE WITH EVERY
  89. C       MODIFICATION (AND PARTICULARLY EXPANSION) OF THE PROGRAM.
  90. C  SECTION 11: HINTS.  EACH LINE CONTAINS A HINT NUMBER (CORRESPONDING TO A
  91. C       COND BIT, SEE SECTION 9), THE NUMBER OF TURNS HE MUST BE AT THE RIGHT
  92. C       LOC(S) BEFORE TRIGGERING THE HINT, THE POINTS DEDUCTED FOR TAKING THE
  93. C       HINT, THE MESSAGE NUMBER (SECTION 6) OF THE QUESTION, AND THE MESSAGE
  94. C       NUMBER OF THE HINT.  THESE VALUES ARE STASHED IN THE "HINTS" ARRAY,
  95. C       HNTMAX IS SET TO THE MAX HINT NUMBER (<>= HNTSIZ).  NUMBERS 1-3 ARE
  96. C       UNUSABLE SINCE COND BITS ARE OTHERWISE ASSIGNED, SO 2 IS USED TO
  97. C       REMEMBER IF HE'S READ THE CLUE IN THE REPOSITORY, AND 3 IS USED TO
  98. C       REMEMBER WHETHER HE ASKED FOR INSTRUCTIONS (GETS MORE TURNS, BUT LOSES
  99. C       POINTS).
  100. C  SECTION 12: MAGIC MESSAGES.  IDENTICAL TO SECTION 6 EXCEPT PUT IN A SEPARATE
  101. C       SECTION FOR EASIER REFERENCE.  MAGIC MESSAGES ARE USED BY THE STARTUP,
  102. C       MAINTENANCE MODE, AND RELATED ROUTINES.
  103. C  SECTION 0: END OF DATABASE.
  104.