home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume17 / dinkum3 / part01 < prev    next >
Encoding:
Internet Message Format  |  1993-03-20  |  54.3 KB

  1. Path: uunet!paladin.american.edu!howland.reston.ans.net!zaphod.mps.ohio-state.edu!uwm.edu!ogicse!news.tek.com!master!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v17i006:  dinkum3 - australian text adventure game, V2.12, Part01/07
  5. Message-ID: <4517@master.CNA.TEK.COM>
  6. Date: 9 Feb 93 20:01:07 GMT
  7. Article-I.D.: master.4517
  8. Sender: news@master.CNA.TEK.COM
  9. Lines: 1212
  10. Approved: billr@saab.CNA.TEK.COM
  11. Xref: uunet comp.sources.games:1685
  12.  
  13. Submitted-by: Gary Allen <gary@sun.mech.uq.oz.au>
  14. Posting-number: Volume 17, Issue 6
  15. Archive-name: dinkum3/Part01
  16. Supersedes: dinkum2: Volume 15, Issue 36-43
  17. Environment: Unix, DOS
  18.  
  19.     [This version fixes several bugs and includes other extensive
  20.      revisions.  -br]
  21.  
  22. #! /bin/sh
  23. # This is a shell archive.  Remove anything before this line, then unpack
  24. # it by saving it into a file and typing "sh file".  To overwrite existing
  25. # files, type "sh file -c".  You can also feed this as standard input via
  26. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  27. # will see the following message at the end:
  28. #        "End of archive 1 (of 7)."
  29. # Contents:  README MANIFEST dink_glb.h make.dos
  30. # Wrapped by billr@saab on Mon Feb  8 13:40:50 1993
  31. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  32. if test -f 'README' -a "${1}" != "-c" ; then 
  33.   echo shar: Will not clobber existing file \"'README'\"
  34. else
  35. echo shar: Extracting \"'README'\" \(4938 characters\)
  36. sed "s/^X//" >'README' <<'END_OF_FILE'
  37. X                      Comments on Dinkum, Version 2.12                
  38. X                              30 January 1993                            
  39. X
  40. XI'm releasing this version of Dinkum sooner than I should because of
  41. Xthe appearance of six bugs coupled with extensive revisions which I
  42. Xperformed on Dinkum during the Christmas holidays.  The bugs are:
  43. X
  44. X1) If the player was chased by a monster for a long distance in the game and
  45. Xthe player survived after killing the monster then for certain random initial
  46. Xconfigurations other monsters would have their memory locations changed. 
  47. XThese changes sometimes resulted in the pointers for the other monsters being
  48. Xpointed towards garbage causing an abnormal ending and core dump.  This bug
  49. Xis fixed but was very difficult to locate.  This bug effected ALL earlier
  50. Xpublic versions of Dinkum.
  51. X
  52. X2) If the player shot a movable object (non-monster) in Dinkum versions made
  53. Xafter 1.27 then this would lead to an abnormal ending and core dump.  Version
  54. X1.27 did not have this bug. This bug has been fixed with the logic supporting
  55. Xthe shooting of movable objects significantly improved.
  56. X
  57. X3) If the player shot off an ammunition clip, ejected it and then reloaded
  58. Xthe clip then all of the ammunition would be "magicly" restored.  This bug
  59. Xdid not occur if the clip still had some ammo left in it.  Goofy bugs of
  60. Xthis sort are easy to fix but hard to find.  Thanks to Byron Rakitzis for
  61. Xdiscovering this bug and bug #2.  
  62. X
  63. X4) If the user put Dinkum into its privileged mode and used some of
  64. Xthe privileged commands then a core dump could result for a special case.
  65. XThanks to Per-Anders Eriksson for discovering this bug.  The privileged
  66. Xmode is for maintenance and debugging use only and not recommended for
  67. Xpeople playing Dinkum for entertainment.  I'll explain in private e-mail
  68. Xthe use of this mode to anyone who has won Dinkum in ordinary user mode and
  69. Xis interested in hacking on the game.
  70. X
  71. X5) There was a bad Ccp definition (I defined DINKUM.C instead of DINKUM)
  72. Xwhich kept Dinkum from compiling in certain environments reducing
  73. Xportability.  Thanks to Darryl O'Neill for discovering this bug.
  74. X
  75. X6) There is a bug in the C compiler used in Ultrix.  This bug caused
  76. XDinkum not to compile because structure pointers were used explicitly
  77. Xin function parameters.  The fix was suggested by Christopher M. Conway.
  78. XThis fix simply involved converting all structured pointer declarations
  79. Xover to typedefs.
  80. X
  81. X                     --------- Revisions -----------
  82. X
  83. XAn important revision to Dinkum can be seen in the Makefile.  By
  84. Xde-commenting one line and deleting another, the user can have a prompt
  85. Xfor Dinkum command inputs.  This improvement was suggested by Chris Herborth.
  86. X
  87. XMore than one person has complained about Dinkum's time out feature.  The
  88. Xargument made was Dinkum is often played on a window running in background
  89. Xwith the user doing constructive work in foreground. Consequently it can
  90. Xbe many minutes between moves resulting in the game often timing out. This
  91. Xleads to an interesting design problem because I want winners of Dinkum to
  92. Xhave won on a uniform game (no advantages for people using special features
  93. Xlike script files, etc.).  My solution is to go back to my trusty "data
  94. Xrecorder".  If you start Dinkum with the "-s" switch then the game starts
  95. Xwith a data recorder appearing as an object in the game.  If you take the data
  96. Xrecorder and examine it then you'll find it now has an additional feature,
  97. Xviz. an orange button.  If you press the orange button then Dinkum's internal
  98. Xclock stops and no further play is possible.  The user is then presented
  99. Xwith a yes/no question.  When the user says "yes" then the game resumes
  100. Xwith the internal clock reset such that no time elapsed while the orange
  101. Xbutton was engaged.  The orange button is derived from a suggestion made
  102. Xby Christopher M. Conway.
  103. X
  104. X                     --------- A Short Sermon -----------
  105. X
  106. XI now have Dinkum revised into a form that is not overly embarrassing
  107. X(unlike before).  Something I've discovered is that all of the stories they
  108. Xtell about the virtues of structured programming are absolutely true.  Dinkum
  109. Xthough written in C, previously had a FORTRAN coding style with the resultant
  110. Xlogic being so convoluted that further maintenance and debugging was almost
  111. Ximpossible. In the process of getting Dinkum into a proper C form, I found
  112. Xmany low level bugs and brought about many improvements.  The lesson which I
  113. Xhave learned is if I'm programming in FORTRAN, BASIC, COBOL or any of the
  114. Xother old fashioned languages then I'm simply being stupid and punishing myself
  115. Xneedlessly.  Six years ago I would have come up with all sorts of facile
  116. Xarguments why FORTRAN should be maintained but I now know these arguments are
  117. Xspurious.  If you're still fighting with FORTRAN then I urge you to learn from
  118. Xmy experience and convert over to C.
  119. X
  120. X                            Gary A. Allen, Jr.                           
  121. END_OF_FILE
  122. if test 4938 -ne `wc -c <'README'`; then
  123.     echo shar: \"'README'\" unpacked with wrong size!
  124. fi
  125. # end of 'README'
  126. fi
  127. if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  128.   echo shar: Will not clobber existing file \"'MANIFEST'\"
  129. else
  130. echo shar: Extracting \"'MANIFEST'\" \(641 characters\)
  131. sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
  132. X   File Name        Archive #    Description
  133. X-----------------------------------------------------------
  134. X MANIFEST                   1    This shipping list
  135. X README                     1    
  136. X actor.c                    5    
  137. X describe.c                 6    
  138. X dink_glb.h                 1    
  139. X dink_sym.h                 2    
  140. X dinkum.c                   2    
  141. X longdsc.c                  7    
  142. X make.dos                   1    
  143. X make.unx                   2    
  144. X makefile                   2    
  145. X monster.c                  5    
  146. X objlook.c                  7    
  147. X opener.c                   4    
  148. X parse.c                    6    
  149. X pusher.c                   4    
  150. X taker.c                    3    
  151. END_OF_FILE
  152. if test 641 -ne `wc -c <'MANIFEST'`; then
  153.     echo shar: \"'MANIFEST'\" unpacked with wrong size!
  154. fi
  155. # end of 'MANIFEST'
  156. fi
  157. if test -f 'dink_glb.h' -a "${1}" != "-c" ; then 
  158.   echo shar: Will not clobber existing file \"'dink_glb.h'\"
  159. else
  160. echo shar: Extracting \"'dink_glb.h'\" \(44717 characters\)
  161. sed "s/^X//" >'dink_glb.h' <<'END_OF_FILE'
  162. X/***************************************************************/
  163. X/*                                                             */
  164. X/*             --- Global Variables Header File ---            */
  165. X/*                                                             */
  166. X/*        Software by Gary A. Allen, Jr.  16 January 1993      */
  167. X/*           (c) Copyright 1993 by Gary A. Allen, Jr.          */
  168. X/*                                                             */
  169. X/***************************************************************/
  170. X/* repeated global variable quantites */
  171. X/*  Do not move these into the body of the header file. */
  172. X#define Vocab_cnt        343
  173. X#define DM_tag            344    /* DM_tag    = Vocab_cnt + 1 */
  174. X
  175. X#define DM_room             249
  176. X
  177. X#define Enemy_cnt         15 
  178. X#define Objcnt            82
  179. X#define Read_objcnt        15
  180. X#define Quest_max        9
  181. X#define Verb_max         81 
  182. X#define    Adj_max         20 
  183. X#define Adv_max         30 
  184. X#define Obj_init_max         51 
  185. X
  186. X
  187. X#ifndef DINKUM
  188. Xextern struct object_struct *Rifle ;
  189. Xextern struct object_struct *Teapot ;
  190. Xextern struct object_struct *Can ;
  191. Xextern struct object_struct *Clip ;
  192. Xextern struct object_struct *Org_clip ;
  193. Xextern struct object_struct *Recorder ;
  194. Xextern struct object_struct *Cap ;
  195. Xextern struct object_struct *Dynamite ;
  196. Xextern struct object_struct *Letter ;
  197. Xextern struct object_struct *Clapper ;
  198. Xextern struct object_struct *Detector ;
  199. Xextern struct object_struct *Key ;
  200. Xextern struct object_struct *Umbrella ;
  201. Xextern struct object_struct *Matches ;
  202. Xextern struct object_struct *Pills ;
  203. Xextern struct object_struct *Cube ;
  204. Xextern struct object_struct *Torch ;
  205. Xextern struct object_struct *Mat ;
  206. Xextern struct object_struct *Map ;
  207. Xextern struct object_struct *Map_frag ;
  208. Xextern struct object_struct *Bottle ;
  209. Xextern struct object_struct *Circuit_breaker ;
  210. Xextern struct object_struct *Lift ;
  211. Xextern struct object_struct *Door ;
  212. Xextern struct object_struct *Safe ;
  213. Xextern struct object_struct *Lift_door ;
  214. Xextern struct object_struct *Picture ;
  215. Xextern struct object_struct *Tank ;
  216. Xextern struct object_struct *Gong ;
  217. Xextern struct object_struct *Transporter ;
  218. X#endif
  219. X
  220. X/***************************************************************/
  221. X
  222. X#ifdef DINKUM
  223. Xstruct object_struct *Rifle ;
  224. Xstruct object_struct *Teapot ;
  225. Xstruct object_struct *Can ;
  226. Xstruct object_struct *Clip ;
  227. Xstruct object_struct *Org_clip ;
  228. Xstruct object_struct *Recorder ;
  229. Xstruct object_struct *Cap ;
  230. Xstruct object_struct *Dynamite ;
  231. Xstruct object_struct *Letter ;
  232. Xstruct object_struct *Clapper ;
  233. Xstruct object_struct *Detector ;
  234. Xstruct object_struct *Key ;
  235. Xstruct object_struct *Umbrella ;
  236. Xstruct object_struct *Matches ;
  237. Xstruct object_struct *Pills ;
  238. Xstruct object_struct *Cube ;
  239. Xstruct object_struct *Torch ;
  240. Xstruct object_struct *Mat ;
  241. Xstruct object_struct *Map ;
  242. Xstruct object_struct *Map_frag ;
  243. Xstruct object_struct *Bottle ;
  244. Xstruct object_struct *Circuit_breaker ;
  245. Xstruct object_struct *Lift ;
  246. Xstruct object_struct *Door ;
  247. Xstruct object_struct *Safe ;
  248. Xstruct object_struct *Lift_door ;
  249. Xstruct object_struct *Picture ;
  250. Xstruct object_struct *Tank ;
  251. Xstruct object_struct *Gong ;
  252. Xstruct object_struct *Transporter ;
  253. X
  254. Xextern int room[DM_room][16] ;
  255. Xextern struct object_struct object[Objcnt] ;
  256. Xextern int tag[DM_tag] ;
  257. Xint gleep_count = 0 ; /* gleeps being carried */
  258. Xint verb, max_score = 1100 ;
  259. Xint sw_wizard = FALSE ;
  260. Xlong clock_explode ;
  261. Xint sw_warned, flag_clock, sw_clock = FALSE, i_poison = 0 ;
  262. X
  263. X/* gleep initialization matrix */
  264. Xint gleep_init[10][4] = {
  265. X97,    98,    101,    102,
  266. X98,    99,    102,    103,
  267. X99,    100,    103,    96,
  268. X100,    101,    96,    97,
  269. X101,    102,    97,    98,
  270. X102,    103,    98,    99,
  271. X103,    96,    99,    100,
  272. X134,    132,    136,    137,
  273. X69,    66,    90,    89,
  274. X74,    72,    68,    92 
  275. X};
  276. Xint gleep_spot[10] ; /* gleep reproduction room pointer array */
  277. X
  278. X/* monster matrix initialization matrix */
  279. X/*  --- NEVER have a monster initialized next to the        */
  280. X/*  Mutant Wombat.  This leads to an intractable bug        */
  281. X/*  which need to be solved for eventually but is currently */
  282. X/*  swept under the carpet.                                 */
  283. X
  284. Xint mon_init[Enemy_cnt][4] = {
  285. X/* Mutant Wombat */
  286. X139,    67,    86,    115,
  287. X/* Drop Bears    */
  288. X77,    75,    78,    79,
  289. X103,    97,    98,    71,
  290. X64,    60,    62,    93,
  291. X67,    81,    66,    75,
  292. X/* Hoop Snakes   */
  293. X93,    95,    94,    64,
  294. X75,    73,    76,    67,
  295. X71,    128,    67,    77,
  296. X52,    53,    51,    103,
  297. X115,    114,    113,    129,
  298. X131,    130,    129,    80,
  299. X119,    120,    118,    84,
  300. X109,    87,    83,    52,
  301. X/* Revolutionary Guards */
  302. X241,    241,    241,    241,
  303. X/* Chief Mullah */
  304. X242,    242,    242,    242
  305. X} ;
  306. X/* object matrix initialization matrix */
  307. X/* --- The orange ammo clip should not be set in a dead end, otherwise  */
  308. X/*     that version of the game is almost unwinnable due to the wombat. */
  309. Xint obj_init[Obj_init_max][5] = {
  310. XV_can,        1,    1,    1,    1,
  311. XV_butt,        165,    166,    161,    152,
  312. XV_bottle,    2,    2,     2,    2,
  313. XV_gold,        54,    53,    55,    56,
  314. XV_dynamite,    78,    91,    69,    117,
  315. XV_clip,        48,    52,    52,    48,
  316. XV_org_clip,    80,    68,    113,    99,
  317. XV_rifle,    48,    56,    48,    52,
  318. XV_cap,        183,    184,    183,    184,
  319. XV_matches,    69,    85,    78,    121,
  320. XV_ring,        87,    135,    127,    105,
  321. XV_ruby,        99,    106,    114,    74,
  322. XV_coin,        127,    127,    87,    87,
  323. XV_bill,        135,    87,    135,    127,
  324. XV_pills,    85,    83,    91,    78,
  325. XV_saphire,    91,    78,    85,    69,
  326. XV_emerald,    68,    74,    117,    66,
  327. XV_letter,    177,    177,    177,    177,
  328. XV_torch,    92,    114,    66,    53,
  329. XV_cube,        202,    202,    202,    202,
  330. XV_wrapper,    171,    216,    239,    101,
  331. XV_tire,        47,    47,    47,    47,
  332. XV_shell,    82,    107,    213,    175,
  333. XV_brick,    33,    33,    33,    33,
  334. XV_rope,        209,    179,    181,    155,
  335. XV_package,    156,    137,    95,    113,
  336. XV_belt,        21,    21,    21,    21,
  337. XV_filter,    142,    142,    142,    142,
  338. XV_string,    204,    88,    118,    167,
  339. XV_umbrella,    37,    37,    37,    37,
  340. XV_tackle,    9,    9,    9,    9,
  341. XV_bit,        105,    117,    90,    184,
  342. XV_jack,        81,    81,    81,    81,
  343. XV_pen,        177,    177,    177,    177,
  344. XV_pencil,    202,    202,    202,    202,
  345. XV_wire,        214,    154,    159,    151,
  346. XV_pipe,        206,    239,    166,    151,
  347. XV_opener,    63,    62,    61,    60,
  348. XV_cord,        80,    131,    119,    79,
  349. XV_photo,    206,    160,    155,    180,
  350. XV_chair,    177,    177,    177,    177,
  351. XV_bulb,        154,    162,    164,    181,
  352. XV_rag,        92,    89,    73,    132,
  353. XV_tube,        139,    121,    129,    132,
  354. XV_carpet,    41,    41,    41,    41,
  355. XV_branch,    28,    28,    28,    28,
  356. XV_cork,        130,    122,    115,    109,
  357. XV_trap,        146,    146,    146,    146,
  358. XV_lighter,    210,    213,    46,    79,
  359. XV_lace,        126,    136,    67,    72,
  360. XV_comb,        164,    157,    156,    172
  361. X} ;
  362. X
  363. X/************************************************/
  364. X/*           --- Monster Types ---        */
  365. X/*                                              */
  366. X/*   Monster Type                   */
  367. X/*      = 0 = N_ned = Ned Kelly            */
  368. X/*      = 1 = N_wombat = Mutant Wombat        */
  369. X/*      = (2 - 5) = Drop Bears (four total)    */
  370. X/*      = (6 - 13) = Hoop Snakes (eight total)    */
  371. X/*      = 14 = Revolutionary Guards             */
  372. X/*      = 15 = Chief Mullah                        */
  373. X/*                                              */
  374. X/************************************************/
  375. Xstruct monster_struct *monster_start ;
  376. Xstruct monster_struct *Ned ;
  377. Xstruct monster_struct *Guards ;
  378. Xstruct monster_struct *Wombat ;
  379. Xstruct monster_struct *Mullah ;
  380. X
  381. Xint score = 0 ;
  382. Xint monster_flag = F_no_monster ;
  383. Xint carry_count, carry_weight ;
  384. Xlong l_time, start_time ;
  385. X#endif
  386. X
  387. X/***************************************************************/
  388. X
  389. X#ifdef OBJLKR
  390. Xextern int tag[DM_tag] ;
  391. Xextern int sw_warned, score, max_score, sw_wizard ;
  392. Xextern struct monster_struct *Ned ;
  393. X
  394. X/* a switch used in the "kelly" subroutine */
  395. Xint sw_valuable = FALSE ;
  396. X
  397. X/* layout matrix for game */
  398. X/*   n = room number      */ 
  399. X
  400. X/*   The direction elements contain the adjoining room or a wall */
  401. X/*   if the element value is negative.                           */
  402. X/*     room[n][0] = north direction      */
  403. X/*     room[n][1] = south direction      */
  404. X/*     room[n][2] = east direction       */
  405. X/*     room[n][3] = west direction       */
  406. X/*     room[n][4] = up direction         */
  407. X/*     room[n][5] = down direction       */
  408. X/*     room[n][6] = north-east direction */
  409. X/*     room[n][7] = north-west direction */
  410. X/*     room[n][8] = south-east direction */
  411. X/*     room[n][9] = south-west direction */
  412. X
  413. X/*  room[n][10] points to the room type                      */
  414. X/*               = -1 == instantly lethal                    */
  415. X/*               =  0 == short description                   */
  416. X/*               =  1 == long description                    */
  417. X/*               =  2 == contains an action device           */
  418. X/*               =  3 == orignally had a long description    */
  419. X/*               =  5 == room goes into itself (looping)     */
  420. X/*  room[n][11] flag indicates number of objects in room.    */
  421. X/*  room[n][12] is a switch which if TRUE indicates there    */
  422. X/*              are unmovable objects present in the room.   */
  423. X/*  room[n][13] is the monster indicater, 0 = no monsters    */
  424. X/*  room[n][14] is the gleep count                           */
  425. X/*  room[n][15] points to the description text file          */
  426. X
  427. Xint room [DM_room][16] = {
  428. X  3,  2,  1, 15, -1, -1,  1, 15,  3,  2,  0,  0,  0,  0,  0,  0, 
  429. X  6,  2, 20,  0, -1, -1,  0,  3,  0,  2,  0,  0,  0,  0,  0,  1,
  430. X 28, 11, 29,148, -1, -1, 29, 11, 28,148,  0,  0,  0,  0,  0,  2, 
  431. X  4,  0,  6,  4, -1, -1,  2,  1,  4,  2,  0,  0,  0,  0,  0,  3, 
  432. X  5,  9,  4,  4, -1, -1,  5,  5,  9,  9,  5,  0,  0,  0,  0,  4,
  433. X -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  5,
  434. X  3, 14, 47,  3, -1, -1,  2,  3, 14,  3,  1,  0,  0,  0,  0,  6,
  435. X 14,  8, 14,  8, -1, -1, 14, 14,  8,  8,  0,  0,  0,  0,  0,  7,
  436. X -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  8,
  437. X  4,  1,  6,  4, -1, -1,  0,  2,  0,  1,  0,  0,  0,  0,  0,  9, 
  438. X 14,  6, 14,  3, -1, -1,  6, 14,  6, 14,  0,  0,  0,  0,  0, 10,
  439. X 28, 12, 28, 12, -1, -1, 12, 28,  3,  6,  1,  0,  0,  0,  0, 11,
  440. X 11, 13, 12, 13, -1, -1, 13, 12, 11, 13,  5,  0,  0,  0,  0, 12,
  441. X 13, 13, 13, 13, -1, -1, 13, 13, 13, 12,  5,  0,  0,  0,  0, 13,
  442. X  6,  7,  7, 10, -1, -1,  6, 10,  7,  7,  0,  0,  0,  0,  0, 14,
  443. X147,148,  0, 16, -1, -1,  0,147,  0,148,  0,  0,  0,  0,  0, 15,
  444. X 19, 19, 16, 17, -1, -1, 19, 19, 17, 17,  5,  0,  0,  0,  0, 16,
  445. X 16, 16, 16, 18, -1, -1, 16, 16, 18, 16,  0,  0,  0,  0,  0, 17,
  446. X -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 18,
  447. X  3,  2,  0, 16, -1, -1,  0, 16,  2, 16,  0,  0,  0,  0,  0, 19,
  448. X 21,142, 22,  1, -1, -1, 23,  2,141,  1,  0,  0,  0,  0,  0, 20,
  449. X 42, 20,145, 47, -1, -1,145,  1,145,  6,  0,  0,  0,  0,  0, 21,
  450. X 36, 27, -1, 20, -1, -1, -1, 20, -1, 20,  1,  0,  0,  0,  0, 22,
  451. X 25, 24, 25,145, -1, -1, 25,145, 25, 34,  4,  0,  0,  0,  0, 23,
  452. X 23, 26, 25, 33, -1, -1, 25, 33, 25, 32,  0,  0,  0,  0,  0, 24,
  453. X 25, 25, 25, 25, -1, -1,143, 23, 25, 26,  5,  0,  0,  0,  0, 25,
  454. X 24, 25, 25,141, -1, -1, 25, 31, 25,141,  4,  0,  0,  0,  0, 26,
  455. X 22, 30, -1, 20, -1, -1, -1, 20, -1, 20,  2,  0,  0,  0,  0, 27,
  456. X  0,  2, 29,148, -1, -1, 29, 11,  0,  2,  0,  0,  0,  0,  0, 28, 
  457. X142,243,141,  2, -1, -1,141,  2,141,  2,  1,  0,  0,  0,  0, 29,
  458. X 27,141, 31, 20, -1, -1, -1, 20,141,141,  0,  0,  0,  0,  0, 30,
  459. X 32,141, 24, 30, -1, -1, 24, -1, 26,141,  0,  0,  0,  0,  0, 31,
  460. X 33, 31, 24, -1, -1, -1, 24, -1, 24, -1,  0,  0,  0,  0,  0, 32,
  461. X 34, 32, 24, -1, -1, -1, 24, -1, 24, -1,  0,  0,  0,  0,  0, 33,
  462. X145, 33, 24, 35, -1, -1, 23,145, 24, -1,  0,  0,  0,  0,  0, 34,
  463. X145, 36, 34, 20, -1, -1,145,145, -1, 20,  0,  0,  0,  0,  0, 35,
  464. X 35, 22, -1, 20, -1, -1, 35, 20, -1, 20,  2,  0,  0,  0,  0, 36,
  465. X 38, 39, -1, 36, -1, -1, 38, 36, 39, 36,  0,  0,  0,  0,  0, 37,
  466. X -1, 37, -1, -1, -1, -1, -1, -1, -1, 37,  1,  0,  0,  0,  0, 38,
  467. X 37, -1, 41, -1, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0, 39,
  468. X -1, 41, -1, -1, -1, -1, -1, -1, -1, 41,  2,  0,  0,  0,  0, 40,
  469. X 40, -1, -1, 39, -1, -1, 40, -1, -1, -1,  4,  0,  0,  0,  0, 41,
  470. X246, 21,145,  6, -1, -1,145,  1,145,  6,  0,  0,  0,  0,  0, 42,
  471. X -1, -1, -1, 27, -1, -1, -1, 27, -1, -1,  1,  0,  0,  0,  0, 43,
  472. X -1, -1, 43, 48, -1, -1, -1, -1, 43, -1,  0,  0,  0,  0,  0, 44,
  473. X -1,204, 43,149, -1, -1, -1, -1, 43, -1,  0,  0,  0,  0,  0, 45,
  474. X239, -1, 43, -1, -1, -1, -1, -1, 43, -1,  0,  0,  0,  0,  0, 46,
  475. X  3, 20, 21,  6, -1, -1, 21,  3, 20,  6,  0,  0,  0,  0,  0, 47, 
  476. X 49, 50, 44, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48, /*48*/
  477. X 51, 48, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55, /*49*/
  478. X 48, 56, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55, /*50*/
  479. X -1, 49, 52, 53, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 51, /*51*/
  480. X -1, -1, 54, 51, -1, 88, -1, -1, -1, -1,  0,  0,  0,  0,  0, 59, /*52*/
  481. X -1, -1, 51, 55, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56, /*53*/
  482. X -1, -1, -1, 52, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 91, /*54*/
  483. X -1, -1, 53, -1, 57, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 62, /*54*/
  484. X 50, -1, -1, -1, -1, -1, -1, -1, 74, 72,  0,  0,  0,  0,  0, 64, /*56*/
  485. X -1, -1, -1, -1, -1, 55, -1, 58, -1, 59,  0,  0,  0,  0,  0, 76, /*57*/
  486. X -1, -1, -1, -1, -1, -1, -1, 60, 57, -1,  0,  0,  0,  0,  0, 57, /*58*/
  487. X -1, -1, -1, -1, -1, -1, 57, -1, -1, 61,  0,  0,  0,  0,  0, 58, /*59*/
  488. X -1, -1, -1, -1, -1, -1, -1, -1, 58, 62,  0,  0,  0,  0,  0, 84, /*60*/
  489. X -1, -1, -1, -1, -1, -1, 59, 63, -1, -1,  0,  0,  0,  0,  0, 87, /*61*/
  490. X -1, -1, -1, -1, -1, -1, 60, -1, -1, 64,  0,  0,  0,  0,  0, 58, /*62*/
  491. X -1, -1, -1, -1, -1, -1, -1, 64, 61, -1,  0,  0,  0,  0,  0, 57, /*63*/
  492. X -1, -1, -1, -1, -1, 65, 62, -1, 63, -1,  0,  0,  0,  0,  0, 77, /*64*/
  493. X -1, 66, -1, -1, 64, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 61, /*65*/
  494. X 65, 67, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55, /*66*/
  495. X 66, 69, 68, 70, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 78, /*67*/
  496. X -1, -1, 71, 67, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56, /*68*/
  497. X 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 92, /*69*/
  498. X121,128, 67, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48, /*70*/
  499. X -1, -1, -1, 68, -1, -1, 72, -1, 73, -1,  0,  0,  0,  0,  0, 66, /*71*/
  500. X -1, -1, -1, -1, -1, -1, 56, -1, -1, 71,  0,  0,  0,  0,  0, 58, /*72*/
  501. X -1, -1, -1, -1, -1, -1, -1, 71, 75, -1,  0,  0,  0,  0,  0, 57, /*73*/
  502. X -1, -1, -1, -1, -1, -1, -1, 56, 77, -1,  0,  0,  0,  0,  0, 57, /*74*/
  503. X -1, -1, -1, -1, -1, -1, 76, 73, -1, 80,  0,  0,  0,  0,  0, 52, /*75*/
  504. X -1, -1, -1, -1, -1, -1, 77, -1, -1, 75,  0,  0,  0,  0,  0, 58, /*76*/
  505. X -1, -1, -1, -1, -1, -1, 79, 74, 78, 76,  0,  0,  0,  0,  0, 79, /*77*/
  506. X -1, -1, -1, -1, -1, -1, -1, 77, -1, -1,  0,  0,  0,  0,  0, 90, /*78*/
  507. X -1, -1, -1, -1, -1, -1,108, -1, -1, 77,  0,  0,  0,  0,  0, 58, /*79*/
  508. X -1, -1, 81, 82, -1, -1, 75, -1, -1, -1,  0,  0,  0,  0,  0, 74, /*80*/
  509. X -1, -1, -1, 80, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 93, /*81*/
  510. X -1, -1, 80, 83, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56, /*82*/
  511. X -1, 84, 82, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 81, /*83*/
  512. X 83, -1, 85, 86, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 50, /*84*/
  513. X -1, -1, -1, 84, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90, /*85*/
  514. X 87, -1, 84, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 83, /*86*/
  515. X -1, 86, -1,109, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 94, /*87*/
  516. X -1, -1, -1, -1, 52, -1, 92, -1, -1, 89,  0,  0,  0,  0,  0, 96, /*88*/
  517. X -1, -1, -1, -1, -1, -1, 88, -1, -1, 90,  0,  0,  0,  0,  0, 58, /*89*/
  518. X -1, -1, -1, -1, -1, -1, 89, -1, -1, 91,  0,  0,  0,  0,  0, 58, /*90*/
  519. X -1, -1, -1, -1, -1, -1, 90, -1, -1, -1,  0,  0,  0,  0,  0, 90, /*91*/
  520. X -1, -1, -1, -1, -1, -1, 93, -1, -1, 88,  0,  0,  0,  0,  0, 58, /*92*/
  521. X -1, -1, -1, -1, -1, -1, -1, 94, 95, 92,  0,  0,  0,  0,  0, 95, /*93*/
  522. X -1, -1, -1, -1, 96, -1, -1, -1, 93, -1,  0,  0,  0,  0,  0, 60, /*94*/
  523. X -1, -1, -1, -1, -1, -1, -1, 93,104, -1,  0,  0,  0,  0,  0, 57, /*95*/
  524. X 97, -1,103, -1, -1, 94, -1, -1, -1, -1,  0,  0,  0,  0,  0, 97, /*96*/
  525. X 98, 96, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55, /*97*/
  526. X -1, 97, 99, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 81, /*98*/
  527. X -1, -1,100, 98, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56, /*99*/
  528. X -1,101, -1, 99, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 80,/*100*/
  529. X100,102, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*101*/
  530. X101, -1, -1,103, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 82,/*102*/
  531. X -1, -1,102, 96, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*103*/
  532. X -1, -1, -1, -1, -1, -1, -1, 95,105, -1,  0,  0,  0,  0,  0, 57,/*104*/
  533. X -1, -1, -1, -1, -1, -1, -1,104, -1,106,  0,  0,  0,  0,  0, 86,/*105*/
  534. X -1, -1, -1, -1, -1, -1,105, -1, -1,107,  0,  0,  0,  0,  0, 58,/*106*/
  535. X -1, -1, -1, -1, 79, -1,106, -1, -1, -1,  0,  0,  0,  0,  0, 89,/*107*/
  536. X -1, -1, -1, -1, -1,106, -1, -1, -1, 79,  0,  0,  0,  0,  0, 88,/*108*/
  537. X -1, -1, 87,110, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*109*/
  538. X -1, -1,109, -1, -1,140, -1, -1, -1, -1,  0,  0,  0,  0,  0, 99,/*110*/
  539. X -1, -1, -1,140,109, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 98,/*111*/
  540. X -1, -1,140, -1,113, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 62,/*112*/
  541. X114, -1, -1, -1, -1,112, -1, -1, -1, -1,  0,  0,  0,  0,  0,100,/*113*/
  542. X115,113, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*114*/
  543. X -1,114,118,116, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 51,/*115*/
  544. X -1,117,115, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 81,/*116*/
  545. X116, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0,101,/*117*/
  546. X -1, -1,119,115, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*118*/
  547. X -1,125,120,118, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 51,/*119*/
  548. X -1,122, -1,119, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 80,/*120*/
  549. X -1, 70, -1,122, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 80,/*121*/
  550. X120,123,121, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*122*/
  551. X122, -1, -1,124, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 82,/*123*/
  552. X -1, -1,123, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*124*/
  553. X119, -1, -1,126, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 82,/*125*/
  554. X -1,127,125, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 81,/*126*/
  555. X126, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*127*/
  556. X 70, -1, -1,129, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 82,/*128*/
  557. X130,136,128, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*129*/
  558. X -1,129, -1,131, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 80,/*130*/
  559. X134,132,130, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*131*/
  560. X131, -1, -1,133, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 82,/*132*/
  561. X -1, -1,132, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*133*/
  562. X -1,131, -1,135, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 80,/*134*/
  563. X -1, -1,134, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*135*/
  564. X129, -1, -1,137, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 82,/*136*/
  565. X -1, -1,136,138, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*137*/
  566. X139, -1,137, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 83,/*138*/
  567. X -1,138, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*139*/
  568. X -1, -1,111,112, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*140*/
  569. X 30, 26, 26,142, -1, -1, 24, 20, 26,142,  0,  0,  0,  0,  0,102,/*141*/
  570. X 20, 29,141,  2, -1, -1,141,  2,141,  2,  0,  0,  0,  0,  0,103,/*142*/
  571. X 25, 25, 25, 25, -1, -1, 25, 25,144, 25,  0,  0,  0,  0,  0,104,/*143*/
  572. X143,143,146,143, -1, -1,143,143,143,143,  1,  0,  0,  0,  0,105,/*144*/
  573. X 23, 35, 23, 21, -1, -1, 23, 21, 35, 34,  0,  0,  0,  0,  0,106,/*145*/
  574. X -1, -1, -1,144, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0,107,/*146*/
  575. X  3, 15,  3,  3, -1, -1,  3,  3, 15, 15,  1,  0,  0,  0,  0,108,/*147*/
  576. X 15,  2,  2, 15, -1, -1, 15, 15,  2,  2,  0,  0,  0,  0,  0,109,/*148*/
  577. X -1, -1, 45, -1, -1,150, -1, -1, -1, -1,  0,  0,  0,  0,  0,110,/*149*/
  578. X -1,151, -1, -1,149, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 61,/*150*/
  579. X150,152, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*151*/
  580. X151,153, -1,159, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*152*/
  581. X152,154, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*153*/
  582. X153, -1, -1,155, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 82,/*154*/
  583. X -1, -1,154,156, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*155*/
  584. X157, -1,155, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 83,/*156*/
  585. X158,156, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*157*/
  586. X -1,157,159,160, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 51,/*158*/
  587. X -1, -1,152,158, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,132,/*159*/
  588. X -1, -1,158,161, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*160*/
  589. X -1, -1,160,162, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*161*/
  590. X -1, -1,161,163, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*162*/
  591. X -1, -1,162,164, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*163*/
  592. X -1, -1,163,165, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*164*/
  593. X -1, -1,164, -1, -1,166, -1, -1, -1, -1,  0,  0,  0,  0,  0,110,/*165*/
  594. X -1, -1,167,178,165, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0,111,/*166*/
  595. X168, -1, -1,166, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 82,/*167*/
  596. X169,167, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*168*/
  597. X170,168, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*169*/
  598. X -1,169, -1, -1,171, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 61,/*170*/
  599. X -1, -1,172, -1, -1,170, -1, -1, -1, -1,  0,  0,  0,  0,  0,110,/*171*/
  600. X -1, -1,173,171, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*172*/
  601. X -1, -1,174,172, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*173*/
  602. X -1, -1,175,173, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*174*/
  603. X -1, -1,176,174, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*175*/
  604. X -1, -1,177,175, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*176*/
  605. X -1, -1, -1,176, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,112,/*177*/
  606. X -1, -1,166,179, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*178*/
  607. X -1, -1,178,180, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*179*/
  608. X -1,181,179, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 81,/*180*/
  609. X180,182, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*181*/
  610. X181,185,184,183, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 78,/*182*/
  611. X -1, -1,182, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*183*/
  612. X -1, -1, -1,182, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*184*/
  613. X182, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*185*/
  614. X185,187, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*186*/
  615. X186,189,190,188, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 78,/*187*/
  616. X -1, -1,187, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*188*/
  617. X187, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 90,/*189*/
  618. X -1, -1,191,187, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 56,/*190*/
  619. X192,198, -1,190, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,113,/*191*/
  620. X -1,191, -1, -1, -1, -1,193, -1, -1, -1,  1,  0,  0,  0,  0,114,/*192*/
  621. X -1, -1, -1, -1, -1, -1, -1, -1,194,192,  1,  0,  0,  0,  0,115,/*193*/
  622. X -1,195, -1, -1, -1, -1, -1,193, -1, -1,  1,  0,  0,  0,  0,116,/*194*/
  623. X194,196, -1, -1, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,117,/*195*/
  624. X195, -1, -1, -1,199, -1, -1, -1, -1,197,  1,  0,  0,  0,  0,118,/*196*/
  625. X -1, -1, -1, -1, -1, -1,196,198, -1, -1,  1,  0,  0,  0,  0,119,/*197*/
  626. X191, -1, -1, -1, -1, -1, -1, -1,197, -1,  1,  0,  0,  0,  0,120,/*198*/
  627. X200, -1, -1, -1, -1,196, -1, -1, -1, -1,  1,  0,  0,  0,  0,121,/*199*/
  628. X -1,199,201,202, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,122,/*200*/
  629. X -1, -1, -1,200, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,123,/*201*/
  630. X -1, -1,200,203, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,124,/*202*/
  631. X -1, -1,202, -1, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,125,/*203*/
  632. X 45,205, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 55,/*204*/
  633. X204, -1,206, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 83,/*205*/
  634. X -1, -1, -1,205, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,126,/*206*/
  635. X -1,208,227, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 81,/*207*/
  636. X207,209,226, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*208*/
  637. X208,210,225, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*209*/
  638. X209,211,224, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*210*/
  639. X210,217,223, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*211*/
  640. X217,213,222, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*212*/
  641. X212,214,221, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*213*/
  642. X213,215,220, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*214*/
  643. X214,216,219, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 48,/*215*/
  644. X215, -1,218, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 83,/*216*/
  645. X211,212, -1,239, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,128,/*217*/
  646. X -1, -1,237,216, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*218*/
  647. X -1, -1,236,215, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*219*/
  648. X -1, -1,235,214, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*220*/
  649. X -1, -1,234,213, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*221*/
  650. X -1, -1,233,212, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*222*/
  651. X -1, -1,232,211, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*223*/
  652. X -1, -1,231,210, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*224*/
  653. X -1, -1,230,209, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*225*/
  654. X -1, -1,229,208, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*226*/
  655. X -1, -1,228,207, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0, 56,/*227*/
  656. X -1,229, -1,227, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 80,/*228*/
  657. X228,230, -1,226, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*229*/
  658. X229,231, -1,225, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*230*/
  659. X230,232, -1,224, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*231*/
  660. X231,233, -1,223, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*232*/
  661. X232,234, -1,222, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*233*/
  662. X233,235, -1,221, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*234*/
  663. X234,236, -1,220, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*235*/
  664. X235,237, -1,219, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*236*/
  665. X236,238, -1,218, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 49,/*237*/
  666. X237, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,127,/*238*/
  667. X -1, 46,217, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0, 81,/*239*/
  668. X241, -1, -1, -1, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,129,/*240*/
  669. X -1,240,242, -1, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,130,/*241*/
  670. X -1, -1, -1,241, -1, -1, -1, -1, -1, -1,  1,  0,  0,  0,  0,131,/*242*/
  671. X 29,244,141,  2, -1, -1,141,  2,141,  2,  4,  0,  0,  0,  0,133,/*243*/
  672. X243,245,141,  2, -1, -1,141,  2,141,  2,  0,  0,  0,  0,  0,134,/*244*/
  673. X244, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,135,/*245*/
  674. X247, 42,145,  6, -1, -1,145,  1,145,  6,  4,  0,  0,  0,  0,136,/*246*/
  675. X248,246,145,  6, -1, -1,145,  1,145,  6,  0,  0,  0,  0,  0,134,/*247*/
  676. X -1,247, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,135 /*248*/
  677. X};
  678. X/*****************************************************************/
  679. X/*                                                               */
  680. X/*                   --- Object Matrix ---                       */
  681. X/*                                                               */
  682. X/*  Location  = room location if =>0, else =-1 is in possesion   */
  683. X/*              of player, = -2 means unmade, = -3 means it is   */
  684. X/*              destroyed, = -5 means the object is in the safe. */ 
  685. X/*  Value     = object's value                                   */
  686. X/*  Type      = external property of the object                  */
  687. X/*                  = 1  indicates special action on taking      */
  688. X/*                  = 2  alias                         */
  689. X/*                  = 3  unmovable object which has no actions   */
  690. X/*  ID        = object parse id name                             */
  691. X/*  Weight    = object's weight                                  */
  692. X/*  Status    = internal property of the object                  */
  693. X/*  Text      = Character string describing object               */
  694. X/*                                                               */
  695. X/*****************************************************************/
  696. X
  697. Xstruct object_struct object[Objcnt] = {
  698. X{ 0,        0,           0,      V_can,        10,    0,        
  699. X    "an empty can of Fourex beer"},
  700. X{ 0,        0,           0,      V_butt,        1,     0,
  701. X    "a cigarette butt"},
  702. X{ 0,        0,           0,      V_bottle,    20,     0,
  703. X    "an empty bottle of Black Swan Lager"},
  704. X{36,        0, Z_transform,      V_mat,         300,     0,
  705. X    "an old doormat with \"ACME Gold Mines Ltd.\" written on it"},
  706. X{B_unmade,  0,           0,      V_key,         5,     0,
  707. X    "a large brass key"},
  708. X{ 0,        0,             0,    V_umbrella,    100,     0,
  709. X    "a ripped and bent up umbrella"},
  710. X{ 0,        0,             0,    V_tackle,     50,     0,
  711. X    "a two metre length of fishing tackle without a hook"},
  712. X{ 0,        0,             0,    V_bit,         10,     0,
  713. X    "a broken drill bit"},
  714. X{38,        0, Z_transform,      V_map,        10,     0,
  715. X    "a very old but detailed map of the ACME Mine"},
  716. X{B_unmade,  0,           0,      V_map_frag,    10,     0,
  717. X    "a fragment of a map showing the ACME Mine"},
  718. X{B_in_safe, 0,           0,      V_paper,    10,     0,
  719. X    "a sheet of paper with some writing on it"},
  720. X{ 0,      200,           0,    V_gold,     500,     0,
  721. X    "a gold bar weighing ten kilograms"},
  722. X{ 0,        0,             0,    V_jack,        400,     0,
  723. X    "a hydraulic jack which is rusted solid"},
  724. X{ 0,        0,             0,    V_dynamite,    100,     0,
  725. X    "a large stick of dynamite"},
  726. X{ 0,        0,           0,    V_clip,     50,     150,
  727. X    "an M16 ammo clip designed to hold up to 200 rounds"},
  728. X{ 0,        0,             0,    V_pen,         5,     0,
  729. X    "a fountain pen which is dried up and useless"},
  730. X{ 0,        0,           0,    V_org_clip,    50,     5,
  731. X    "an orange M16 ammo clip which is glowing a faint pale blue"},
  732. X{ 0,        0,             0,    V_pencil,     5,     0,
  733. X    "a mechanical pencil without any leads"},
  734. X{ 0,        0,           0,    V_rifle,     300,     0,  /* don't modify */
  735. X    "an unloaded, fully automatic M16 infantry rifle"},
  736. X{ 0,        0,             0,    V_wire,     100,     0,
  737. X    "a piece of copper wire"},
  738. X{ 0,        0,             0,    V_pipe,        200,     0,
  739. X    "a short length of galvanized iron pipe"},
  740. X{ 0,        0,           0,    V_cap,        5,     0,
  741. X    "a blasting cap with 20 cm. of fuse attached"},
  742. X{ 0,        0,           0,      V_matches,    2,     0,
  743. X    "a box of \"Red Head\" matches"},
  744. X{ 0,      100,           0,      V_ring,     5,     0,
  745. X    "a diamond ring with a three carat flawless blue diamond"},
  746. X{ 0,        0,             0,    V_opener,    10,     0,
  747. X    "a can opener"},
  748. X{ 0,      100,           0,      V_ruby,     30,     0,
  749. X    "a bright red ruby the size of an egg"},
  750. X{B_unmade,200,           0,      V_teapot,    50,     0,
  751. X    "an antique sterling silver teapot with \"N.K.\" engraved on it"},
  752. X{ 0,      150,           0,      V_coin,     7,     0,
  753. X    "a silver Syracusian Dekadrachma coin"},
  754. X{ 0,        0,             0,    V_cord,        70,     0,
  755. X    "an electrical extension cord"},
  756. X{ 0,      100,           0,    V_bill,        5,     0,
  757. X    "a $100 dollar bill"},
  758. X{ 0,        0,             0,    V_photo,    5,     0,
  759. X    "an autographed photo of Sir Joh"},
  760. X{ 0,        0,           0,    V_chair,    500,     0,
  761. X    "an old folding chair"},
  762. X{ 0,        0,           0,    V_bulb,        10,     0,
  763. X    "a burned out light bulb"},
  764. X{ 0,        0,             0,      V_pills,    10,     0,
  765. X    "a packet containing atropine pills"},
  766. X{ 0,      150,           0,      V_saphire,    30,     0,
  767. X    "a high quality artificial saphire"},
  768. X{ 0,      100,           0,    V_emerald,    30,     0,
  769. X    "a huge uncut emerald"},
  770. X{ 0,        0,             0,    V_rag,          50,     0,
  771. X    "an oily rag"},
  772. X{ 0,        0,             0,    V_tube,        50,     0,
  773. X    "a burned out fluorescent tube"},
  774. X{ 0,        0,             0,    V_carpet,    400,     0,
  775. X    "a filthy worn out carpet"},
  776. X{ 0,        0,             0,    V_branch,    400,     0,
  777. X    "a branch from a gum tree"},
  778. X{ 0,        0,             0,      V_letter,    10,     0,
  779. X    "a thick airmail letter, marked \"Postage Due\""},
  780. X{ 0,        0,             0,    V_cork,     5,     0,
  781. X    "a cork from a wine bottle"},
  782. X{ 0,        0,             0,      V_torch,    100,     0,
  783. X    "a high intensity battery powered torch"},
  784. X{ 0,        0,             0,    V_trap,        5,     0,
  785. X    "an old cockroach trap"},
  786. X{ 0,        0,             0,    V_lighter,    5,     0,
  787. X    "an empty butane cigarette lighter"},
  788. X{ 0,        0,             0,      V_cube,     50,     0,
  789. X    "a small black cube with a blue push button on one side"}, 
  790. X{B_unmade,700,           0,      V_clapper,    100,     0,
  791. X    "an ancient and priceless gong clapper made of ivory and gold"},
  792. X{B_unmade,  0,           0,      V_detector,    100,     0,
  793. X    "a Semtex explosive detector with a push button switch"},
  794. X{ 0,        0,             0,    V_lace,        2,     0,
  795. X    "a broken shoe lace"},
  796. X{ 0,        0,             0,    V_comb,        5,     0,
  797. X    "a dirty old comb"},
  798. X{ 0,        0,             0,    V_wrapper,    3,     0,
  799. X    "a Cornetto ice cream cone wrapper"},
  800. X{ 0,        0,             0,    V_tire,        400,     0,
  801. X    "a bald automobile tyre"},
  802. X{ 0,        0,             0,    V_shell,    3,     0,
  803. X    "an empty broken egg shell"},
  804. X{ 0,        0,             0,    V_brick,    100,     0,
  805. X    "a broken piece of brick"},
  806. X{ 0,        0,             0,    V_rope,        100,     0,
  807. X    "a one metre length of rope"},
  808. X{ 0,        0,             0,    V_package,    5,     0,
  809. X    "an empty package of Stradbroke cigarettes"},
  810. X{ 0,        0,             0,    V_belt,        10,     0,
  811. X    "a broken automobile fan belt"},
  812. X{ 0,        0,             0,    V_filter,    50,     0,
  813. X    "a used automobile oil filter"},
  814. X{ 0,        0,             0,    V_string,    5,    0,
  815. X    "a short piece of string"},
  816. X{B_unmade,  0,           0,      V_recorder,    0,     S_inactive,
  817. X    "a data recorder having three coloured buttons"},
  818. X{ 39,       0, Z_unmovable,    V_poster,    0,    0,
  819. X    "Error"},
  820. X{ 41,       0, Z_unmovable,    V_poster,    0,    0,
  821. X    "Error"},
  822. X{ 39,       0, Z_unmovable,    V_cockroach,    0,    0,
  823. X    "Error"},
  824. X{ 41,       0, Z_unmovable,    V_cockroach,    0,    0,
  825. X    "Error"},
  826. X{243,       0, Z_unmovable,    V_kangaroo,    0,    0,
  827. X    "Error"},
  828. X{246,       0, Z_unmovable,    V_kangaroo,    0,    0,
  829. X    "Error"},
  830. X{ 26,       0, Z_unmovable,    V_spinifex,    0,    0,
  831. X    "Error"},
  832. X{R_gong,    0, Z_unmovable,    V_gong,     0,    S_fair_game,
  833. X    "Error"},
  834. X{ 23,       0, Z_unmovable,    V_bulldust,    0,    0,
  835. X    "Error"},
  836. X{159,       0, Z_unmovable,    V_message,    0,    0,
  837. X    "Error"},
  838. X{R_store_room,  0, Z_unmovable,    V_circuit,    0,    FALSE,
  839. X    "Error"},
  840. X{R_lift_inside, 0, Z_unmovable,    V_lift,        0,    L0,
  841. X    "Error"},
  842. X{R_office_entr, 0, Z_unmovable,    V_door,        0,    S_closed,
  843. X    "Error"},
  844. X{R_office_mang, 0, Z_unmovable,    V_safe,        0,    S_closed,
  845. X    "Error"},
  846. X{R_lift_entr,    0, Z_unmovable,    V_lift_door,    0,    S_closed,
  847. X    "Error"},
  848. X{R_office_mang, 0, Z_unmovable,    V_picture,    0,    S_closed,
  849. X    "Error"},
  850. X{R_gleep_tank,    0, Z_unmovable,    V_tank,        0,    0,
  851. X    "Error"},
  852. X{R_transporter,    0, Z_unmovable,    V_transporter,    0,    FALSE,
  853. X    "Error"},
  854. X{R_warning,     0, Z_unmovable,    V_warning,    0,    0,
  855. X    "Error"},
  856. X{R_office_mang, 0, Z_unmovable,    V_chart,    0,    0,
  857. X    "Error"},
  858. X{R_office_mang, 0, Z_unmovable,    V_desk,        0,    0,
  859. X    "Error"},
  860. X{R_foreman,    0, Z_unmovable,    V_desk,        0,    0,
  861. X    "Error"}
  862. X} ;     
  863. X
  864. X#endif
  865. X
  866. X/***************************************************************/
  867. X
  868. X#ifdef DSCRB
  869. Xint pill_count = 7 ;
  870. Xextern int room[DM_room][16] ;
  871. Xextern int sw_active ;
  872. Xint rifle_flag = F_safety ;
  873. Xextern int clip_flag ;
  874. Xextern struct object_struct object[Objcnt] ;
  875. Xextern struct monster_struct *Ned ;
  876. X
  877. X#endif
  878. X
  879. X/***************************************************************/
  880. X
  881. X#ifdef PUSHER
  882. X/* subroutines: new_score, pusher, switcher */
  883. Xextern int room[DM_room][16] ;
  884. Xextern int tag[DM_tag] ;
  885. Xextern struct object_struct object[Objcnt] ;
  886. Xextern int monster_flag, rifle_flag ;
  887. Xextern int verb, score;
  888. Xextern long l_time, start_time ;
  889. X
  890. XFILE *fp ;
  891. X#endif
  892. X
  893. X/***************************************************************/
  894. X
  895. X#ifdef LONG_DESCP
  896. Xextern int room[DM_room][16] ;
  897. Xextern struct object_struct object[Objcnt] ;
  898. Xextern int monster_flag ;
  899. X
  900. X#endif
  901. X
  902. X/***************************************************************/
  903. X
  904. X#ifdef ACTOR
  905. Xextern int room[DM_room][16], tag[DM_tag] ;
  906. Xextern int gleep_safe, verb ;
  907. Xextern struct object_struct object[Objcnt] ;
  908. Xextern int clip_flag, rifle_flag, monster_flag ;
  909. Xextern struct monster_struct *Ned ;
  910. Xextern struct monster_struct *Wombat ;
  911. Xextern struct monster_struct *monster_start ;
  912. X
  913. X#endif
  914. X
  915. X/***************************************************************/
  916. X
  917. X#ifdef MNSTR
  918. Xextern int room[DM_room][16] ;
  919. Xextern struct object_struct object[Objcnt] ;
  920. Xextern int monster_flag ;
  921. Xextern int carry_count, carry_weight ;
  922. Xextern struct monster_struct *Ned ;
  923. Xextern struct monster_struct *Wombat ;
  924. Xextern struct monster_struct *Guards ;
  925. Xextern struct monster_struct *Mullah ;
  926. Xextern struct monster_struct *monster_start ;
  927. X
  928. X#endif
  929. X
  930. X/***************************************************************/
  931. X
  932. X#ifdef OPNR
  933. Xint sw_active = FALSE ;
  934. Xextern int room[DM_room][16] ;
  935. Xextern struct object_struct object[Objcnt] ;
  936. Xextern int sent[20];
  937. Xextern int gleep_count, gleep_safe ;
  938. Xextern int tag[DM_tag] ;
  939. Xextern int sw_active ;
  940. Xextern int pill_count ;
  941. Xextern int gleep_spot[10] ;
  942. Xextern int score, clip_flag ;
  943. Xextern int carry_count, carry_weight ;
  944. Xextern long clock_explode ;
  945. Xextern int flag_clock, sw_clock, i_poison ;
  946. X
  947. Xstruct read_struct read_object[Read_objcnt] = {
  948. X    {V_map_frag,    TRUE }, 
  949. X    {V_can,        FALSE }, 
  950. X    {V_recorder,    FALSE }, 
  951. X    {V_pills,    FALSE }, 
  952. X    {V_letter,    TRUE },
  953. X    {V_paper,    TRUE }, 
  954. X    {V_cube,    FALSE }, 
  955. X    {V_clip,    FALSE }, 
  956. X    {V_org_clip,    FALSE }, 
  957. X    {V_rifle,    FALSE }, 
  958. X    {V_detector,    FALSE }, 
  959. X    {V_safe,    FALSE }, 
  960. X    {V_gong,    FALSE },
  961. X    {V_message,    TRUE },
  962. X    {V_warning,    TRUE }
  963. X} ; 
  964. X
  965. X#endif
  966. X  
  967. X/***************************************************************/
  968. X
  969. X#ifdef PARSE
  970. Xint sent[20], number_word ;
  971. Xextern int verb ;
  972. Xextern int sw_wizard ; 
  973. Xextern int room[DM_room][16] ;
  974. Xextern struct object_struct object[Objcnt] ;
  975. Xextern struct read_struct read_object[Read_objcnt] ;
  976. Xint tag[DM_tag] ;
  977. Xextern FILE *fp ;
  978. X
  979. X/* Game vocabulary */
  980. Xchar *vocab[Vocab_cnt] = {
  981. X"north","south","east","west","up",
  982. X"down","northeast","northwest","southeast","southwest",
  983. X"n","s","e","w","u",                            /* "u"          = 15 */
  984. X"d","ne","nw","se","sw",                        /* "sw"         = 20 */
  985. X"quit","unlock","lock","take","leave",          /* "leave"      = 25 */
  986. X"drop","can","bottle","mat","key",              /* "key"        = 30 */
  987. X"butt","look","door","open","get",              /* "get"        = 35 */
  988. X"throw","turn","on","off","push",               /* "push"       = 40 */
  989. X"button","enter","switch","zero","forty-nine",  /* "forty-nine" = 45 */
  990. X"sixty-seven","eighty-two","0","49","67",       /* "67"         = 50 */
  991. X"82","beer","lager","doormat","lift",           /* "lift"       = 55 */ 
  992. X"'on'","'off'","SVC","map","picture",           /* "picture"    = 60 */
  993. X"safe","dial","paper","put","close",            /* "close"      = 65 */
  994. X"read","gold","bar","dynamite","rifle",         /* "rifle"      = 70 */
  995. X"M16","m16","cap","matches","diamond",          /* "diamond"    = 75 */
  996. X"ring","ruby","silver","coin","bill",           /* "bill"       = 80 */
  997. X"money","teapot","clip","ammo","box",           /* "box"        = 85 */
  998. X"stick","pills","orange","glowing","saphire",   /* "saphire"    = 90 */
  999. X"emerald","score","inventory","examine","describe",
  1000. X"drink","fill","water","fourex","invent",    /* "invent"    = 100 */
  1001. X"view","press","exit","all","Fourex",        /* "Fourex"    = 105 */
  1002. X"everything","shoot","kill","ned","Ned",    /* "Ned"    = 110 */
  1003. X"kelly","Kelly","pick","grab","combination",    /* "combination"= 115 */
  1004. X"select","safety","SAFE","triple","III",    /* "III"    = 120 */
  1005. X"single","I","auto","AUTO","automatic",        /* "automatic"    = 125 */
  1006. X"set","insert","attach","plan","gun",           /* "gun"        = 130 */
  1007. X"magazine","hoop","snake","bear","wombat",    /* "wombat"     = 135 */
  1008. X"remove","eject","org_clip","shut","gleep",    /* "gleep"    = 140 */
  1009. X"gleeps","letter","envelope","torch","mail",    /* "mail"       = 145 */
  1010. X"tank","carefully","gently","softly","slow_drop",
  1011. X"light","ignite","fuse","slowly","match",    /* "match"    = 155 */
  1012. X"cube","blue","blue-button","gray","gray-button",
  1013. X"clapper","sound","bang","hit","strike",    /* "strike"    = 160 */
  1014. X"gong","detector","give","STATS","JSYS",
  1015. X"SU","yellow","yellow-button","poster","eat",
  1016. X"swallow","pill","atropine","packet","wrapper",
  1017. X"tyre","shell","brick","rope","package",
  1018. X"belt","filter","string","cabinet","calendar",
  1019. X"tackle","bit","jack","pen","pencil",
  1020. X"wire","pipe","panel","opener","cord",
  1021. X"photo","chair","bulb","rag","tube",        /* "tube"    = 200 */
  1022. X"carpet","branch","cork","trap","lighter",
  1023. X"lace","comb","umbrella","meadow","billabong",
  1024. X"river","road","forest","grass","stream",
  1025. X"desert","building","office","hideout","dust",
  1026. X"mine","tunnel","tree","spinifex","hexagon",
  1027. X"spacecaft","airlock","wing","hole","tray",
  1028. X"liquid","cockroach","go","scream","yell",
  1029. X"bring","help","dump","attack","check",
  1030. X"inspect","place","touch","pull","extinguish",
  1031. X"ask","talk","tell","find","move",        /* "move"    = 250 */
  1032. X"break","kick","smash","feed","taste",
  1033. X"smell","slam","desk","in","into",
  1034. X"under","out","from","by","with",
  1035. X"fling","what","where","are","am",        /* "am"        = 275 */
  1036. X"have","qUeStIoN","how","why","who",        /* "who"    = 280 */
  1037. X"when","leap","walk","run","jump",        /* "jump"       = 285 */
  1038. X"hop","stroll","saunter","swagger","swing",    /* "swing"        = 290 */
  1039. X"dig","swim","depart","info","back",        /* "back"    = 295 */
  1040. X"hold","fire","stand","painting","doors",    /* "doors"    = 300 */
  1041. X"treasure","trigger","load","unload","sand",    /* "sand"    = 305 */
  1042. X"cockroaches","kangaroo","climb","bulldust","kangaroos",
  1043. X"spinifexes","fuze","message","wall","recorder",
  1044. X"red","white","green","red-button","white-button",
  1045. X"green-button","grey","matchbox","map","circuit",   /* "map" is "map_frag" */
  1046. X"lift-door","transporter","warning","explosive","self",
  1047. X"myself","yourself","one","two","three",
  1048. X"four","five","toss","chart","charts","schedule",
  1049. X"schedules","orange-button"
  1050. X};
  1051. X
  1052. X/* Question Table */
  1053. Xint quest[Quest_max] = {
  1054. XV_what, V_where, V_are, V_am, V_have,
  1055. XV_how, V_why, V_who, V_when
  1056. X} ;
  1057. X
  1058. X/* Adjective Table */
  1059. Xstruct adjective_struct adjective[Adj_max] = {
  1060. X{ V_drop, V_bear,F_ignore,F_ignore},        /* drop bear */
  1061. X{ V_gold, V_bar,F_ignore,F_ignore},        /* gold bar */
  1062. X{ V_orange,V_clip,V_org_clip,F_replace},    /* orange clip */
  1063. X{ V_glowing, V_clip, V_org_clip,F_replace},    /* glowing clip */
  1064. X{ V_blue,V_switch,V_blue_button,F_replace},    /* blue switch */
  1065. X{ V_blue,V_button,V_blue_button,F_replace},    /* blue button */
  1066. X{ V_gray,V_switch,V_gray_button,F_replace},    /* gray switch */
  1067. X{ V_gray,V_button,V_gray_button,F_replace},    /* gray button */
  1068. X{ V_yellow,V_switch,V_yellow_button,F_replace},    /* yellow switch */
  1069. X{ V_yellow,V_button,V_yellow_button,F_replace},    /* yellow button */
  1070. X{ V_red,V_switch,V_red_button,F_replace},    /* red switch */
  1071. X{ V_red,V_button,V_red_button,F_replace},    /* red button */
  1072. X{ V_white,V_switch,V_white_button,F_replace},    /* white switch */
  1073. X{ V_white,V_button,V_white_button,F_replace},    /* white button */
  1074. X{ V_green,V_switch,V_green_button,F_replace},    /* green switch */
  1075. X{ V_green,V_button,V_green_button,F_replace},    /* green button */
  1076. X{ V_grey,V_switch,V_gray_button,F_replace},    /* grey switch */
  1077. X{ V_grey,V_button,V_gray_button,F_replace},    /* grey button */
  1078. X{ V_orange,V_switch,V_orange_button,F_replace},    /* orange switch */
  1079. X{ V_orange,V_button,V_orange_button,F_replace}    /* orange button */
  1080. X} ;
  1081. X
  1082. X/* Adverb Table */
  1083. Xstruct adverb_struct adverb[Adv_max] = { 
  1084. X{ V_down, V_put, V_drop},            /* put down */
  1085. X{ V_down, V_set, V_drop},            /* set down */
  1086. X{ V_carefully, V_drop, V_slow_drop},        /* drop carefully */
  1087. X{ V_gently, V_drop, V_slow_drop},        /* drop slowly */
  1088. X{ V_softly, V_drop, V_slow_drop},        /* drop softly */
  1089. X{ V_slowly, V_drop, V_slow_drop},        /* drop slowly */
  1090. X{ V_carefully, V_put, V_slow_drop},        /* put carefully */
  1091. X{ V_gently, V_put, V_slow_drop},        /* put slowly */
  1092. X{ V_softly, V_put, V_slow_drop},        /* put softly */
  1093. X{ V_slowly, V_put, V_slow_drop},        /* put slowly */
  1094. X{ V_in, V_go, V_enter},                /* go in */
  1095. X{ V_in, V_move, V_enter},            /* move in */
  1096. X{ V_in, V_leap, V_enter},            /* leap in */
  1097. X{ V_in, V_walk, V_enter},            /* walk in */
  1098. X{ V_in, V_run, V_enter},            /* run in */
  1099. X{ V_in, V_jump, V_enter},            /* jump in */
  1100. X{ V_in, V_hop, V_enter},            /* hop in */
  1101. X{ V_in, V_stroll, V_enter},            /* stroll in */
  1102. X{ V_in, V_saunter, V_enter},             /* saunter in */
  1103. X{ V_in, V_swagger, V_enter},            /* swagger in */
  1104. X{ V_out, V_go, V_exit},                /* go out */
  1105. X{ V_out, V_move, V_exit},            /* move out */
  1106. X{ V_out, V_leap, V_exit},            /* leap out */
  1107. X{ V_out, V_walk, V_exit},            /* walk out */
  1108. X{ V_out, V_run, V_exit},            /* run out */
  1109. X{ V_out, V_jump, V_exit},            /* jump out */
  1110. X{ V_out, V_hop, V_exit},            /* hop out */
  1111. X{ V_out, V_stroll, V_exit},            /* stroll out */
  1112. X{ V_out, V_saunter, V_exit},             /* saunter out */
  1113. X{ V_out, V_swagger, V_exit}            /* swagger out */
  1114. X} ;
  1115. X
  1116. X/* Verb Table */
  1117. Xint verb_table[Verb_max] = {
  1118. XV_quit,V_unlock,V_lock,V_take,V_leave,
  1119. XV_drop,V_look,V_open,V_get,V_throw,
  1120. XV_turn,V_push,V_enter,V_switch,V_lift,
  1121. XV_svc,V_dial,V_put,V_close,V_read,
  1122. XV_score,V_inventory,V_examine,V_describe,V_drink,
  1123. XV_fill,V_invent,V_view,V_press,V_exit,
  1124. XV_shoot,V_kill,V_pick,V_grab,V_combination,
  1125. XV_select,V_set,V_insert,V_attach,V_remove,
  1126. XV_eject,V_shut,V_light,V_ignite,V_sound,
  1127. XV_bang,V_hit,V_strike,V_give,V_stats,
  1128. XV_jsys,V_su,V_eat,V_swallow,V_fling,
  1129. XV_help,V_leap,V_walk,V_run,V_jump,
  1130. XV_hop,V_stroll,V_saunter,V_swagger,V_go,
  1131. XV_move,V_swing,V_dig,V_swim,V_depart,
  1132. XV_info,V_back,V_hold,V_fire,V_pull,
  1133. XV_stand,V_load,V_unload,V_climb,V_toss,
  1134. XV_inspect
  1135. X};
  1136. X#endif
  1137. X
  1138. X/***************************************************************/
  1139. X
  1140. X#ifdef TAKER
  1141. Xint clip_flag = F_no_clip ;
  1142. Xint gleep_safe = 0, gleep_drop = FALSE ;
  1143. Xextern char *vocab[Vocab_cnt] ;
  1144. Xextern int room[DM_room][16] ;
  1145. Xextern int rifle_flag, number_word ; 
  1146. Xextern struct object_struct object[Objcnt] ;
  1147. Xextern int carry_count, carry_weight ;
  1148. Xextern int gleep_count, verb, sent[20], tag[DM_tag] ;
  1149. Xextern int sw_valuable ;
  1150. X
  1151. X#endif
  1152. END_OF_FILE
  1153. if test 44717 -ne `wc -c <'dink_glb.h'`; then
  1154.     echo shar: \"'dink_glb.h'\" unpacked with wrong size!
  1155. fi
  1156. # end of 'dink_glb.h'
  1157. fi
  1158. if test -f 'make.dos' -a "${1}" != "-c" ; then 
  1159.   echo shar: Will not clobber existing file \"'make.dos'\"
  1160. else
  1161. echo shar: Extracting \"'make.dos'\" \(1093 characters\)
  1162. sed "s/^X//" >'make.dos' <<'END_OF_FILE'
  1163. XCFLAGS =  -c -w -mh -O
  1164. XHEAD = dink_sym.h dink_glb.h
  1165. X
  1166. X# The Ver. 2 Borland Tlink will malfunction if more Obj files are added.
  1167. X
  1168. Xdinkum.exe: dinkum.obj describe.obj longdsc.obj objlook.obj actor.obj \
  1169. Xmonster.obj opener.obj pusher.obj parse.obj taker.obj
  1170. X   tlink /x c:\tc\lib\c0h dinkum describe longdsc objlook actor monster \
  1171. Xpusher opener parse taker, dinkum, dinkum, c:\tc\lib\ch
  1172. X
  1173. Xdinkum.obj: dinkum.c $(HEAD)
  1174. X    tcc $(CFLAGS) dinkum.c
  1175. Xdescribe.obj: describe.c $(HEAD)
  1176. X    tcc $(CFLAGS) describe.c
  1177. Xlongdsc.obj: longdsc.c $(HEAD)
  1178. X    tcc $(CFLAGS) longdsc.c
  1179. Xobjlook.obj: objlook.c $(HEAD)
  1180. X    tcc $(CFLAGS) objlook.c
  1181. Xactor.obj: actor.c $(HEAD)
  1182. X    tcc $(CFLAGS) actor.c
  1183. Xpusher.obj: pusher.c $(HEAD)
  1184. X    tcc $(CFLAGS) pusher.c
  1185. Xmonster.obj: monster.c $(HEAD)
  1186. X    tcc $(CFLAGS) monster.c
  1187. Xopener.obj: opener.c $(HEAD)
  1188. X    tcc $(CFLAGS) opener.c
  1189. Xtaker.obj: taker.c $(HEAD)
  1190. X    tcc $(CFLAGS) taker.c
  1191. X
  1192. Xparse.obj: parse.c $(HEAD)
  1193. X# Replace with PROMPT if you want a prompt with every command entry.
  1194. X# This modification was suggested by Chris Herborth.  Thanks, Chris!
  1195. X#    tcc $(CFLAGS) -DPROMPT parse.c
  1196. X    tcc $(CFLAGS) parse.c
  1197. X
  1198. END_OF_FILE
  1199. if test 1093 -ne `wc -c <'make.dos'`; then
  1200.     echo shar: \"'make.dos'\" unpacked with wrong size!
  1201. fi
  1202. # end of 'make.dos'
  1203. fi
  1204. echo shar: End of archive 1 \(of 7\).
  1205. cp /dev/null ark1isdone
  1206. MISSING=""
  1207. for I in 1 2 3 4 5 6 7 ; do
  1208.     if test ! -f ark${I}isdone ; then
  1209.     MISSING="${MISSING} ${I}"
  1210.     fi
  1211. done
  1212. if test "${MISSING}" = "" ; then
  1213.     echo You have unpacked all 7 archives.
  1214.     rm -f ark[1-9]isdone
  1215. else
  1216.     echo You still need to unpack the following archives:
  1217.     echo "        " ${MISSING}
  1218. fi
  1219. ##  End of shell archive.
  1220. exit 0
  1221.