home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume17 / napoleon / part02 < prev    next >
Encoding:
Text File  |  1993-03-03  |  53.0 KB  |  993 lines

  1. Subject:  v17i039:  napoleon - text adventure game, Part02/04
  2. Newsgroups: comp.sources.games
  3. Approved: billr@saab.CNA.TEK.COM
  4.  
  5. Submitted-by: pc123@cus.cam.ac.uk (Pete Chown)
  6. Posting-number: Volume 17, Issue 39
  7. Archive-name: napoleon/Part02
  8. Environment: Unix, ASNI-C
  9.  
  10.  
  11. #! /bin/sh
  12. # This is a shell archive.  Remove anything before this line, then unpack
  13. # it by saving it into a file and typing "sh file".  To overwrite existing
  14. # files, type "sh file -c".  You can also feed this as standard input via
  15. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  16. # will see the following message at the end:
  17. #        "End of archive 2 (of 4)."
  18. # Contents:  Makefile objects.c quads.c
  19. # Wrapped by billr@saab on Thu Mar  4 09:46:52 1993
  20. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  21. if test -f 'Makefile' -a "${1}" != "-c" ; then 
  22.   echo shar: Will not clobber existing file \"'Makefile'\"
  23. else
  24. echo shar: Extracting \"'Makefile'\" \(1153 characters\)
  25. sed "s/^X//" >'Makefile' <<'END_OF_FILE'
  26. XCC=gcc
  27. XYACC=yacc -d
  28. XDEBUG=-g
  29. XWARNS=-Wall
  30. XOPTIMISATION=-O6
  31. XSYSTEM=-DUNIX -DHAS_UNISTD -DHAS_STDLIB
  32. XINCLUDES=-I.
  33. XREADLINELIB=readline/libreadline.a
  34. XCFLAGS=-c $(INCLUDES) $(OPTIMISATION) $(DEBUG) $(WARNS) $(SYSTEM)
  35. XOBJECTS=toplev.o line.o file.o describe.o objects.o lex.o parse.o custom.o noughts.o quads.o
  36. X
  37. X.y.c:
  38. X    $(YACC) $<
  39. X    mv -f y.tab.c $*.c
  40. X    mv -f y.tab.h $*.h
  41. X
  42. X.y.h:
  43. X    $(YACC) $<
  44. X    mv -f y.tab.c $*.c
  45. X    mv -f y.tab.h $*.h
  46. X
  47. Xall:    napoleon napoleon.0
  48. X
  49. Xclean:
  50. X    rm -f *.o *~ lang.c lang.h
  51. X
  52. Xbackup:
  53. X    make clean
  54. X    find readline -print >../foo
  55. X    echo napoleon/napoleon >>../foo
  56. X    (cd ..;tar -cvf napoleon.tar +exclude-from foo napoleon/* napoleon/docs/*;rm -f napoleon.tar.Z;compress napoleon.tar)
  57. X    rm -f ../foo
  58. X
  59. Xshar:
  60. X    (make clean;cd ..;rm -f napoleon.shar;foo=napoleon/*;echo $$foo>foo;shar napoleon `sed -e 's.napoleon/readline..' foo` >napoleon.shar;rm foo)
  61. X
  62. Xnapoleon:    $(OBJECTS) lang.o
  63. X    $(CC) -o napoleon $(OBJECTS) lang.o $(READLINELIB) -ltermcap
  64. X
  65. Xlang.o:    lang.c
  66. X    $(CC) -c $(INCLUDES) $(OPTIMISATION) $(DEBUG) $(SYSTEM) lang.c
  67. X
  68. X$(OBJECTS):    adv.h
  69. X
  70. Xlang.o:        adv.h
  71. X
  72. Xparse.o lex.o custom.o:    lang.h
  73. X
  74. Xnapoleon.0:    napoleon.nr
  75. X    nroff -mandoc napoleon.nr>napoleon.0
  76. END_OF_FILE
  77. if test 1153 -ne `wc -c <'Makefile'`; then
  78.     echo shar: \"'Makefile'\" unpacked with wrong size!
  79. fi
  80. # end of 'Makefile'
  81. fi
  82. if test -f 'objects.c' -a "${1}" != "-c" ; then 
  83.   echo shar: Will not clobber existing file \"'objects.c'\"
  84. else
  85. echo shar: Extracting \"'objects.c'\" \(47192 characters\)
  86. sed "s/^X//" >'objects.c' <<'END_OF_FILE'
  87. X/* Hey emacs, this file is in -*- Fundamental -*- mode */
  88. X
  89. X/* Copyright (C) 1992 Pete Chown.
  90. X
  91. X   Here is my latest adventure game, Napoleon (see the documentation
  92. X   if you don't know why it's called that).  Have fun... (don't cheat,
  93. X   even though you've got the source :-) ).
  94. X
  95. X   This game is free software; you can redistribute it and/or modify
  96. X   it under the terms of the GNU General Public License as published by
  97. X   the Free Software Foundation; either version 1, or (at your option)
  98. X   any later version.
  99. X
  100. X   The game is distributed in the hope that it will be useful, but
  101. X   WITHOUT ANY WARRANTY; without even the implied warranty of
  102. X   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  103. X   General Public License for more details.
  104. X
  105. X   The GNU General Public License is often shipped with GNU software, and
  106. X   is generally kept in a file called COPYING or LICENSE.  If you do not
  107. X   have a copy of the license, write to the Free Software Foundation,
  108. X   675 Mass Ave, Cambridge, MA 02139, USA. */
  109. X
  110. X#include "adv.h"
  111. X
  112. Xobject *objects;
  113. X
  114. X#define ROOM(this,n,s,w,e,u,d,nw,ne,sw,se,contents,luminous,long,short,cite) \
  115. X{0,0,contents,this + 1,this - 1,n,s,w,e,nw,ne,sw,se,u,d,long,short,cite,{1,0,0,luminous,1,1,0,1}},
  116. X
  117. X#define OBJECT(this,above,below,inside,next,parent,opaque,luminous,container,examine,longname,shortname) \
  118. X{above,below,inside,next,parent,0,0,0,0,0,0,0,0,0,0,examine,longname,shortname,{0,0,0,luminous,opaque,0,0,container}},
  119. X
  120. X#define VIRTUAL(this,above,below,inside,next,parent,container,examine,longname,shortname) \
  121. X{above,below,inside,next,parent,0,0,0,0,0,0,0,0,0,0,examine,longname,shortname,{0,0,0,0,0,1,0,container}},
  122. X
  123. X#define PERSON(this,carrying,next,parent,examine,longname,shortname) \
  124. X{0,0,carrying,next,parent,0,0,0,0,0,0,0,0,0,0,examine,longname,shortname,{0,0,1,0,0,1,0,1}},
  125. X
  126. Xobject intobjects [] = {
  127. X
  128. X/* 0 */        {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,"Root object: if you can see this th"
  129. X"e game has gone wrong","(root object)","*ROOT",{1,0,0,0,0,0,0,1}},
  130. X
  131. XROOM(1, 0,2,0,0,0,0,0,0,0,0, 100, 1, "This is the office, at the centre of t"
  132. X"he Napoleons' web.  A smart ebony desk sits in one corner, with the sort of "
  133. X"office chair behind it that you can twirl round and round on if you get bore"
  134. X"d.  Boring carpet tiles adorn the floor, the walls are painted hospital whit"
  135. X"e, as is the ceiling which is also equipped with a large fluorescent tube.  "
  136. X"There is an exit to the south.","The central office","office")
  137. X
  138. XROOM(2, 1,6,0,0,0,0,3,4,0,0, 0, 1, "You are in a small, rickety wooden room;"
  139. X" the walls are made of rough timber, and every footstep makes the boards cre"
  140. X"ak.  To the northwest and northeast, winding corridors lead off, with only t"
  141. X"he wooden boards suspending you above... who knows what?  To the north you c"
  142. X"an walk into the office, while to the south a doorway leads into absolute bl"
  143. X"ackness.","Wooden room 1","*")
  144. X
  145. XROOM(3, 0,0,55,0,0,0,0,5,0,2, 0, 1, "You are at a bend in a rickety wooden c"
  146. X"orridor; it is possible to walk along it to the southeast and northeast.  In"
  147. X" addition there is a hole in the western wall, but through it there is only "
  148. X"pitch darkness.  Every step makes the old, rough boards under your feet crea"
  149. X"k with the strain.","Wooden room 2","*")
  150. X
  151. XROOM(4, 0,0,0,20,0,0,5,0,2,0, 0, 1, "You are at a bend in a rickety wooden c"
  152. X"orridor; it is possible to walk along it to the southwest and northwest.  In"
  153. X" addition there is a hole in the eastern wall, but through it there is only "
  154. X"pitch darkness.  Every step makes the old, rough boards under your feet crea"
  155. X"k with the strain.","Wooden room 3","*")
  156. X
  157. XROOM(5, 56,0,0,0,0,0,0,0,3,4, 0, 1, "You have come to a small wooden chamber"
  158. X" to the north of the Napoleons' office.  Corridors lead southwest and southe"
  159. X"ast; there is also a small hole leading north.  It is completely dark throug"
  160. X"h the hole and you can see nothing.  Here the flooring seems more broken dow"
  161. X"n than ever, giving a real fear that it might collapse.","Wooden room 4","*")
  162. X
  163. XROOM(6, 0,7,0,0,0,0,0,0,0,0, 106, 1, "You are standing in an ornate formal g"
  164. X"arden at the front of a large country house.  To your north is the exit from"
  165. X" the estate, but the gate is closed.  To your south is a large arched doorwa"
  166. X"y leading into the house proper.  A gravel path connects the two.  In the ce"
  167. X"ntre of the path is a marble fountain, and the path is edged with strictly t"
  168. X"rimmed privet hedging.","Front Garden","garden")
  169. X
  170. XROOM(7, 6,0,0,8,0,0,0,0,9,0, 0, 1, "You are in the entrance hall of the coun"
  171. X"try house.  To your north is an exit into the front garden; to the southwest"
  172. X" is an exit into the estate's country park.  To the east is a door labelled "
  173. X"'Music Room'.  There are several other locked doors.  This room is 'rather s"
  174. X"izeable'; about half way up the wall a balcony runs to which there appears t"
  175. X"o be access from the upstairs.  The floor is polished wood and your feet see"
  176. X"m to make an awful noise in the ancient quiet.","Entrance Hall","*")
  177. X
  178. XROOM(8, 0,0,7,0,0,0,0,0,0,0, 108, 1, "This is the music practice room, hopef"
  179. X"ully well soundproofed.  A grand piano sits in one corner, with two piano st"
  180. X"ools next to it.  In the north wall, sunlight streams in through an old lead"
  181. X"ed window, illuminating the scene of generations of children's music lessons"
  182. X".  Here the floor is carpeted, perhaps to absorb some of the more abominable"
  183. X" noise!  This room is also equipped with its very own piano teacher, current"
  184. X"ly sitting on one of the stools.","Music Room","*")
  185. X
  186. XROOM(9, 0,14,10,0,0,0,0,7,0,0, 119, 1, "You are standing at the back of the "
  187. X"country house, looking up at its tall brick walls mellowed by a climbing ros"
  188. X"e.  To your south and east lie more fine formal gardens, but the way east is"
  189. X" blocked by a hedge.  To the south a path leads to an ornamental pool (with,"
  190. X" of course, nothing as untidy as a frog in it).  To your west lie the tennis"
  191. X" courts - and they certainly look strange ones!","Back Garden","garden")
  192. X
  193. XROOM(10, 0,11,13,9,0,0,0,0,12,0, 110, 1, "You are at the northeast corner of"
  194. X" the tennis courts.  There appears to be just one court, but there are two n"
  195. X"ets crossing it - one going north to south (and positioned just to your west"
  196. X") and one going west to east (and positioned just to your south).  You can l"
  197. X"eave the court to the east, or you can jump over the net to the south, west,"
  198. X" or southwest.","Tennis Court 1","*")
  199. X
  200. XROOM(11, 10,0,12,0,0,0,13,0,0,0, 111, 1, "You are at the southeast corner of"
  201. X" the tennis courts.  There appears to be just one court, but there are two n"
  202. X"ets crossing it - one going north to south (and positioned just to your west"
  203. X") and one going west to east (and positioned just to your north).  You can j"
  204. X"ump over the net to the north, west, or northwest.","Tennis Court 2","*")
  205. X
  206. XROOM(12, 13,0,0,11,0,0,0,10,0,0, 112, 1, "You are at the southwest corner of"
  207. X" the tennis courts.  There appears to be just one court, but there are two n"
  208. X"ets crossing it - one going north to south (and positioned just to your east"
  209. X") and one going west to east (and positioned just to your north).  You can j"
  210. X"ump over the net to the north, east, or northeast.","Tennis Court 3","*")
  211. X
  212. XROOM(13, 0,12,0,10,0,0,0,0,0,11, 113, 1, "You are at the northwest corner of"
  213. X" the tennis courts.  There appears to be just one court, but there are two n"
  214. X"ets crossing it - one going north to south (and positioned just to your east"
  215. X") and one going west to east (and positioned just to your south).  You can j"
  216. X"ump over the net to the south, east, or southeast.","Tennis Court 4","*")
  217. X
  218. XROOM(14, 9,0,0,0,0,15,0,0,0,0, 0, 1, "You are crouched at the side of an orn"
  219. X"amental pool, and no, it doesn't have a frog in it.  The pool is completely "
  220. X"surrounded by hedges, apart from to the north, where a narrow path leaves.  "
  221. X"This area of the garden has a strange, malevolent air about it, as though ev"
  222. X"en the privet is waiting for something evil to happen.","Pool Edge","pool")
  223. X
  224. XROOM(15, 0,0,0,0,14,0,0,0,0,16, 0, 0, "This damp and foul-smelling room belo"
  225. X"nged to the water sprite.  Bits of pondweed and rotting vegetation lie aroun"
  226. X"d.  There is always the suspicion of more unpleasant things, and you don't l"
  227. X"ook too closely.  You can go up through the empty pool, or you can go southe"
  228. X"ast to some sort of cellar.","Water Sprite's Room","*")
  229. X
  230. XROOM(16, 0,0,0,0,18,0,15,0,0,0, 114, 0, "You are in what looks as though it "
  231. X"used to be the wine cellar.  Decayed wooden racks still line the walls, but "
  232. X"there are no longer any bottles in evidence.  It looks as though this cellar"
  233. X" might not have been used for some time, going by the cobwebs and dust which"
  234. X" line every surface.  There is a rickety wooden ladder up, while to the nort"
  235. X"hwest lies the water sprite's room.","Wine Cellar","wine_cellar")
  236. X
  237. XROOM(17, 18,0,0,0,0,0,0,0,0,0, 115, 1, "This is an old walk-in storage cupbo"
  238. X"ard; dusty shelves and cupboards still line the walls.  Light streams in thr"
  239. X"ough a rusty cast iron window, adorned with more cobwebs.  You can only leav"
  240. X"e north, to the Grandmaster's room.","Store Cupboard","cupboard")
  241. X
  242. XROOM(18, 0,17,0,19,0,16,0,0,0,0, 104, 1, "You are in the noughts and crosses"
  243. X" grandmaster's room.  The grandmaster himself is sitting behind an old and d"
  244. X"istinctive oak table; in front of him is a small slate, with a noughts and c"
  245. X"rosses board drawn on it; beside him is a book entitled 'Noughts and Crosses"
  246. X": How to play a Psychological Game'.  Light shines into the room through a s"
  247. X"mall window high on one wall.  There is a ladder down into the cellar, or yo"
  248. X"u can go south or east.","Grandmaster's Room","*")
  249. X
  250. XROOM(19, 0,0,18,0,0,0,0,0,0,0, 116, 1, "This was the alchemists' workshop, n"
  251. X"ow it looks as though it has become a reasonably modern laboratory.  Neat ye"
  252. X"llow-painted cupboards hang on the south wall, while along the west and east"
  253. X" wall benches have been placed.  On the west bench a piece of funny looking "
  254. X"equipment has been placed.  An exit leads to the noughts and crosses room to"
  255. X" the west.","Laboratory","*")
  256. X
  257. XROOM(20, 0,0,21,0,0,0,0,0,0,0, 0, 1, "You are standing in the reception area"
  258. X" of a group of offices.  To the east, a door opens onto the road, but it app"
  259. X"ears to be locked at the moment.  To the west you can walk down a corridor l"
  260. X"eading further into the building.  This reception area seems slightly shabby"
  261. X", as though the people inhabiting the offices are not too prosperous.","Offi"
  262. X"ce Entrance","office_entrance")
  263. X
  264. XROOM(21, 22,23,24,20,0,0,0,0,0,0, 0, 1, "You are part way along a corridor l"
  265. X"it starkly from above by fluorescent tubes.  To the north and south are entr"
  266. X"ances to individual offices - signs indicate that the north office belongs t"
  267. X"o Rusgreve and the south office to Prendergast.  Both appear to be at home. "
  268. X" To the west the corridor opens out onto a balcony.","Corridor","corridor")
  269. X
  270. XROOM(22, 0,21,0,0,0,0,0,0,0,0, 131, 1, "This is Rusgreve's office, and tidy "
  271. X"efficiency is the rule.  Rusgreve sits behind an immaculate desk, his head b"
  272. X"ent over a document that he is working on.  From behind him, light streams i"
  273. X"n through an open window, giving a light airy look to the office.  The scene"
  274. X" is completed by an artistic looking pot plant in one corner.  The only exit"
  275. X" is back the way you came in.","Rusgreve's Office","office")
  276. X
  277. XROOM(23, 21,0,0,0,0,0,0,0,0,0, 134, 1, "This is Prendergast's office, and th"
  278. X"ere are bits of paper and electronic junk spread out all over the place.  Pr"
  279. X"endergast is bending over a piece of equipment with a large glass bulb stick"
  280. X"ing out of the top.  Every so often, it makes a loud pop, the bulb flashes, "
  281. X"and Prendergast jumps.  The scene is completed by a large and overflowing ti"
  282. X"dy bin, with the remains of last night's take-away meal in it, along with se"
  283. X"veral Twinkie bar wrappers.  The only exit is back the way you came in.","Pr"
  284. X"endergast's Office","office")
  285. X
  286. XROOM(24, 0,25,0,21,0,0,0,0,0,0, 0, 1, "You are standing at a marble railing,"
  287. X" looking out over a vast hall to which there seems to be no access.  To the "
  288. X"south and east, the balcony disappears, and becomes a corridor; the view out"
  289. X" over the hall is only possible at this particular point.  It is an astoundi"
  290. X"ng contrast here, to the office environment to the east; the offices seemed "
  291. X"modern, whereas this area seems more like something from classical times.",""
  292. X"Balcony","balcony")
  293. X
  294. XROOM(25, 24,0,0,26,0,0,0,0,0,0, 0, 1, "The corridor bends here, going north "
  295. X"to the balcony or east to some sort of storeroom.  It is much the same here "
  296. X"as it was to the north and east - you seem to be back to modern times.","Rou"
  297. X"nd the Bend","*")
  298. X
  299. XROOM(26, 0,0,25,0,0,0,0,0,0,0, 137, 1, "The butler's room has plenty of stor"
  300. X"age space - shelves and cupboards line all the walls, with all the refreshme"
  301. X"nts he is expected to provide for the people in the offices.  The butler him"
  302. X"self is sitting in an easy chair in one corner, dozing slightly.  You can on"
  303. X"ly go west.","Butler's Store","store")
  304. X
  305. XROOM(27, 28,28,29,29,0,0,28,29,29,29, 0, 1, "You are in a small clearing in "
  306. X"the enchanted wood, from which exits lead in all directions.","Dense Woodlan"
  307. X"d","tree")
  308. X
  309. XROOM(28, 27,27,29,27,0,0,27,29,29,27, 0, 1, "You are in a small clearing in "
  310. X"the enchanted wood, from which exits lead in all directions.","Dense Woodlan"
  311. X"d","tree")
  312. X
  313. XROOM(29, 28,28,28,27,0,0,27,31,27,30, 0, 1, "You are in a small clearing in "
  314. X"the enchanted wood, from which exits lead in all directions.","Dense Woodlan"
  315. X"d","tree")
  316. X
  317. XROOM(30, 29,36,27,28,0,0,27,29,28,27, 0, 1, "You are in a small clearing in "
  318. X"the enchanted wood, from which exits lead in all directions.","Dense Woodlan"
  319. X"d","tree")
  320. X
  321. XROOM(31, 27,29,27,30,0,0,28,29,99,28, 0, 1, "You are in a small clearing in "
  322. X"the enchanted wood, from which exits lead in all directions.","Dense Woodlan"
  323. X"d","tree")
  324. X
  325. XROOM(32, 28,99,27,27,0,0,29,28,30,31, 0, 1, "You are in a small clearing in "
  326. X"the enchanted wood, from which exits lead in all directions.","Dense Woodlan"
  327. X"d","tree")
  328. X
  329. XROOM(33, 99,29,32,30,0,0,32,28,31,27, 0, 1, "You are in a small clearing in "
  330. X"the enchanted wood, from which exits lead in all directions.","Dense Woodlan"
  331. X"d","tree")
  332. X
  333. XROOM(34, 28,32,27,99,0,0,30,29,31,33, 0, 1, "You are in a small clearing in "
  334. X"the enchanted wood, from which exits lead in all directions.","Dense Woodlan"
  335. X"d","tree")
  336. X
  337. XROOM(35, 30,34,28,33,0,0,29,31,99,32, 0, 1, "You are in a small clearing in "
  338. X"the enchanted wood, from which exits lead in all directions.","Dense Woodlan"
  339. X"d","tree")
  340. X
  341. XROOM(36, 30,0,0,0,37,0,0,0,0,0, 158, 1, "You are in a big clearing in the en"
  342. X"chanted wood.  Undergrowth prevents you leaving in any direction except to t"
  343. X"he north.  However, here, unlike elsewhere, there is a big tree at the edge "
  344. X"of the clearing which looks as though it could be climbed.","Clearing","clea"
  345. X"ring")
  346. X
  347. XROOM(37, 0,0,0,0,0,36,0,0,0,0, 141, 1, "You are jammed in a fork between two"
  348. X" branches, half way up a large tree.  Near to you you can see a bird's nest,"
  349. X" and further away the birds are perched in the branches twittering.  It is m"
  350. X"ost uncomfortable here, so make up your mind quickly what you want to do!",""
  351. X"Up a Gum Tree","tree")
  352. X
  353. XROOM(38, 35,39,0,0,0,0,0,0,0,0, 0, 1, "You are just out of the enchanted for"
  354. X"est - to your north you can see its huge expanse.  To your south is the fair"
  355. X"y castle, now towering immense above you.  Right near the top, you can make "
  356. X"out another small tower coming off the main one and seemingly suspended in m"
  357. X"id air.","Castle Front","*")
  358. X
  359. XROOM(39, 38,0,0,0,40,0,0,0,0,0, 0, 1, "You are standing at the base of a lon"
  360. X"g spiral staircase, made out of a fine, dark wood.  To the north sunlight st"
  361. X"reams in from the castle front, while in all other directions you can only s"
  362. X"ee the marble walls of the castle, with occasional leaded windows in it at v"
  363. X"arious heights.","Fairy Castle's Bottom","*")
  364. X
  365. XROOM(40, 0,0,0,0,41,39,0,0,0,0, 0, 1, "You are part way up a spiral staircas"
  366. X"e made of a fine dark wood.  There are no exits from the staircase at this l"
  367. X"evel: you will have to go up or down.","Staircase","stairs")
  368. X
  369. XROOM(41, 0,0,0,0,42,40,0,0,0,0, 0, 1, "You are part way up a spiral staircas"
  370. X"e made of a fine dark wood.  There are no exits from the staircase at this l"
  371. X"evel: you will have to go up or down.","Staircase","stairs")
  372. X
  373. XROOM(42, 0,0,0,0,43,41,0,0,0,0, 0, 1, "You are part way up a spiral staircas"
  374. X"e made of a fine dark wood.  There are no exits from the staircase at this l"
  375. X"evel: you will have to go up or down.","Staircase","stairs")
  376. X
  377. XROOM(43, 0,0,0,0,44,42,0,0,0,0, 0, 1, "You are part way up a spiral staircas"
  378. X"e made of a fine dark wood.  There are no exits from the staircase at this l"
  379. X"evel: you will have to go up or down.","Staircase","stairs")
  380. X
  381. XROOM(44, 0,45,0,0,0,43,0,0,0,0, 148, 1, "You are at the top of the staircase"
  382. X" leading up the fairy castle.  You are standing on a dusty landing, illumina"
  383. X"ted gently from a tiny window.  Looking out, you see that you are now far ab"
  384. X"ove the enchanted forest, and can see all the country for miles around.  You"
  385. X" can either go south, or back down the stairs.","Staircase","stairs")
  386. X
  387. XROOM(45, 44,46,0,0,0,0,0,0,0,0, 149, 1, "You are in a tiny anteroom with a p"
  388. X"olished (and dusty) wooden floor, and exits leading north and south.  Like t"
  389. X"he landing, it is lit from a small window.","Anteroom","anteroom")
  390. X
  391. XROOM(46, 45,47,0,0,0,0,0,0,0,0, 150, 1, "You are in a tiny anteroom with a p"
  392. X"olished (and dusty) wooden floor, and exits leading north and south.  Like t"
  393. X"he landing, it is lit from a small window.","Anteroom","anteroom")
  394. X
  395. XROOM(47, 46,0,0,0,0,0,0,0,0,0, 156, 1, "This is the Princess's room/prison. "
  396. X" The only exit is to the north, the way that you have just unlocked.  On the"
  397. X" south wall is another of the small windows that this tower seems to have qu"
  398. X"ite a line in.  The floor is at least carpeted in here, and it looks clean. "
  399. X" Apart from that it is furnished like any room would be if it was the only o"
  400. X"ne someone had.","Princess's Room","*")
  401. X
  402. XROOM(48, 0,0,0,51,0,0,0,0,0,0, 0, 1, "You are crouched by the bank of a fast"
  403. X" flowing river, looking out over the water.  Every so often, a big log of wo"
  404. X"od - about the size of a small tree trunk - floats past.  If you want to lea"
  405. X"ve this tranquil country scene, you can go east.","River Bank","river_bank")
  406. X
  407. XROOM(49, 50,0,0,0,0,0,0,0,0,0, 161, 1, "You are at the far side of the bridg"
  408. X"e.  You can't get any further due to the fact that this area is completely b"
  409. X"ricked in by walls that extend right down to the waterline.  The only point "
  410. X"in having the bridge must, therefore, be to allow access to a vending machin"
  411. X"e which is fixed to one of the walls.  It sells dictating machines (!)","Far"
  412. X" Side","*")
  413. X
  414. XROOM(50, 51,49,0,0,0,0,0,0,0,0, 0, 1, "You are standing on the top of a rath"
  415. X"er rickety bridge.  As you walk along it it creaks rather ominously, and you"
  416. X" wish to be gone!  If you look over the side, you can see a fast flowing riv"
  417. X"er below.  The bridge itself is made of brittle old concrete blocks, and you"
  418. X" can walk along it to either the north or south.","Bridge","bridge")
  419. X
  420. XROOM(51, 52,50,48,0,0,0,0,0,0,0, 130, 1, "You are standing on the bank of a "
  421. X"fast flowing river, near a dangerous-looking concrete bridge to the south.  "
  422. X"You can also walk along the bank to the west, but a wall prevents similar pr"
  423. X"ogress to the east.  To the north you can re-enter the buildings, and reach "
  424. X"the elephant's room.","Near Bridge","*")
  425. X
  426. XROOM(52, 53,51,0,0,0,0,0,54,0,0, 160, 1, "This is the place you had to come "
  427. X"to sooner or later.  The place where the elephants squash you underfoot.  Th"
  428. X"is is a courtyard very like the one to the northeast, where the lions hold s"
  429. X"way, but here there are exits to the north, northeast and south.","Elephants"
  430. X"' Trampling Room","*")
  431. X
  432. XROOM(53, 0,52,0,54,0,0,0,0,0,0, 128, 1, "The guard house is conveniently sit"
  433. X"uated between the lions and the elephants, allowing the guards easy access t"
  434. X"o both.  You get to the former if you go east, and the latter if you go sout"
  435. X"h.  It is a rough, brick building with grimy windows, and odd bits of fighti"
  436. X"ng kit left lying around.  In the centre is a big deal table, covered in bee"
  437. X"r stains.","Guardhouse","guardhouse")
  438. X
  439. XROOM(54, 55,0,53,0,0,0,0,0,52,0, 0, 1, "You have come to a vast courtyard, w"
  440. X"ith pillared walls that tower high above you.  There is sand underfoot, thou"
  441. X"gh, perhaps in view of its function as a place where Christians were thrown "
  442. X"to the lions, rather than a pleasant place for an afternoon stroll among the"
  443. X" fountains.  In fact, so many were that perhaps by now the lions are more re"
  444. X"ady for tummy tickles than for eating someone else... or perhaps not.  The e"
  445. X"xits from this delightful place are north, west and southwest.","Lions' Cour"
  446. X"t","*")
  447. X
  448. XROOM(55, 0,54,0,0,0,0,0,0,0,0, 126, 1, "You are in a huge hall, with walls s"
  449. X"tretching up nearly as far as you can see.  About half way up one wall a bal"
  450. X"cony runs; the other walls have most of their bulk made up of stained glass "
  451. X"windows.  All in all it makes up quite an impressive sight, and an appropria"
  452. X"te last one for the Christians who were thrown to the lions through the sout"
  453. X"h door.  Indeed so many were that it might be suspected that the lions were "
  454. X"now only ready for after dinner tummy tickles.  And it looks as though that'"
  455. X"s the only way for you to go...","Martyrs' Way","*")
  456. X
  457. XROOM(56, 0,0,0,27,0,0,0,0,0,0, 151, 1, "You are standing at the top of a hil"
  458. X"l; lower down it is covered in gorse.  To the east, someone has cleared a pa"
  459. X"th through.  This path seems to lead down into an extensive wood; even from "
  460. X"the top of this hill it is hard to make out the far side.  However it is pic"
  461. X"ked out by a tall structure that looks like a castle out of a fairy tale!",""
  462. X"Hill Top","hill")
  463. X
  464. XROOM(57, 0,0,0,0,0,0,0,0,0,0, 0, 0, "Spare Oom","Spare Oom","*")
  465. X
  466. XROOM(58, 0,0,0,0,0,0,0,0,0,0, 0, 0, "Spare Oom","Spare Oom","*")
  467. X
  468. XROOM(59, 0,0,0,0,0,0,0,0,0,0, 124, 1, "Programmer's Storage Room","Storage","*")
  469. X
  470. X{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},
  471. X{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},
  472. X{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},
  473. X{0},{0},{0},{0},{0},{0},{0},{0},{0},{0},
  474. X
  475. X/* 100 */        {0,0,0,101,1,0,0,0,0,0,0,0,0,0,0,"(the player)","(the player)","*"
  476. X"PLAYER",{0,1,1,0,1,1}},
  477. X
  478. XVIRTUAL(101, 102,0,0,103,100,1, "The desk is elegantly crafted in highly pol"
  479. X"ished ebony.","a desk","desk")
  480. X
  481. XOBJECT(102, 0,0,0,0,101, 0,0,0,"The scroll reads:\n\n    GNU GENERAL PUBLIC "
  482. X"LICENCE -- Version 1, February 1989\n\n Copyright (C) 1989 Free Software Fou"
  483. X"ndation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  Everyone is permitte"
  484. X"d to copy and distribute verbatim copies  of this licence document, but chan"
  485. X"ging it is not allowed.\n\n    Preamble\n\n  The licence agreements of most "
  486. X"software companies try to keep users at the mercy of those companies.  By co"
  487. X"ntrast, our General Public Licence is intended to guarantee your freedom to "
  488. X"share and change free software--to make sure the software is free for all it"
  489. X"s users.  The General Public Licence applies to the Free Software Foundation"
  490. X"'s software and to any other program whose authors commit to using it. You c"
  491. X"an use it for your programs, too.\n\n  When we speak of free software, we ar"
  492. X"e referring to freedom, not price.  Specifically, the General Public Licence"
  493. X" is designed to make sure that you have the freedom to give away or sell cop"
  494. X"ies of free software, that you receive source code or can get it if you want"
  495. X" it, that you can change the software or use pieces of it in new free progra"
  496. X"ms; and that you know you can do these things.\n\n  To protect your rights, "
  497. X"we need to make restrictions that forbid anyone to deny you these rights or "
  498. X"to ask you to surrender the rights. These restrictions translate to certain "
  499. X"responsibilities for you if you distribute copies of the software, or if you"
  500. X" modify it.\n\n  For example, if you distribute copies of"
  501. X" a such a program, whether gratis or for a fee, you must give the recipient"
  502. X"s all the rights that you have.  You must make sure that they, too, receive "
  503. X"or can get the source code.  And you must tell them their rights.\n\n  We pr"
  504. X"otect your rights with two steps: (1) copyright the software, and (2) offer "
  505. X"you this licence which gives you legal permission to copy, distribute and/or"
  506. X" modify the software.\n\n  Also, for each author's protection and ours, we w"
  507. X"ant to make certain that everyone understands that there is no warranty for "
  508. X"this free software.  If the software is modified by someone else and passed "
  509. X"on, we want its recipients to know that what they have is not the original, "
  510. X"so that any problems introduced by others will not reflect on the original a"
  511. X"uthors' reputations.\n\n  The precise terms and conditions for copying, dist"
  512. X"ribution and modification follow.\n\n     GNU GENERAL PUBLIC LICENCE -- TERM"
  513. X"S AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This Lic"
  514. X"ence Agreement applies to any program or other work which contains a notice "
  515. X"placed by the copyright holder saying it may be distributed under the terms "
  516. X"of this General Public Licence.  The \"Program\", below, refers to any such "
  517. X"program or work, and a \"work based on the Program\" means either the Progra"
  518. X"m or any work containing the Program or a portion of it, either verbatim or "
  519. X"with modifications.  Each licensee is addressed as \"you\".\n\n  1. You may "
  520. X"copy and distribute verbatim copies of the Program's source code as you rece"
  521. X"ive it, in any medium, provided that you conspicuously and appropriately pub"
  522. X"lish on each copy an appropriate copyright notice and disclaimer of warranty"
  523. X"; keep intact all the notices that refer to this General Public Licence and "
  524. X"to the absence of any warranty; and give any other recipients of the Program"
  525. X" a copy of this General Public Licence along with the Program. You may charg"
  526. X"e a fee for the physical act of transferring a copy.\n\n  2. You may modify "
  527. X"your copy or copies of the Program or any portion of it, and copy and distri"
  528. X"bute such modifications under the terms of Paragraph 1 above, provided that "
  529. X"you also do the following:\n\n    a) cause the modified files to carry promi"
  530. X"nent notices stating that you changed the files and the date of any change; "
  531. X"and\n\n    b) cause the whole of any work that you distribute or publish, th"
  532. X"at in whole or in part contains the Program or any part thereof, either with"
  533. X" or without modifications, to be licensed at no charge to all third parties "
  534. X"under the terms of this General Public Licence (except that you may choose t"
  535. X"o grant warranty protection to some or all third parties, at your option).\n"
  536. X"\n    c) If the modified program normally reads commands interactively when "
  537. X"run, you must cause it, when started running for such interactive use in the"
  538. X" simplest and most usual way, to print or display an announcement including "
  539. X"an appropriate copyright notice and a notice that there is no warranty (or e"
  540. X"lse, saying that you provide a warranty) and that users may redistribute the"
  541. X" program under these conditions, and telling the user how to view a copy of "
  542. X"this General Public Licence.\n\n    d) You m"
  543. X"ay charge a fee for the physical act of transferring a copy, and you may at"
  544. X" your option offer warranty protection in exchange for a fee.\n\nMere aggreg"
  545. X"ation of another independent work with the Program (or its derivative) on a "
  546. X"volume of a storage or distribution medium does not bring the other work und"
  547. X"er the scope of these terms.\n\n   3. You may copy and distribute the Progra"
  548. X"m (or a portion or derivative of it, under Paragraph 2) in object code or ex"
  549. X"ecutable form under the terms of Paragraphs 1 and 2 above provided that you "
  550. X"also do one of the following:\n\n    a) accompany it with the complete corre"
  551. X"sponding machine-readable source code, which must be distributed under the t"
  552. X"erms of Paragraphs 1 and 2 above; or,\n\n    b) accompany it with a written "
  553. X"offer, valid for at least three years, to give any third party free (except "
  554. X"for a nominal charge for the cost of distribution) a complete machine-readab"
  555. X"le copy of the corresponding source code, to be distributed under the terms "
  556. X"of Paragraphs 1 and 2 above; or,\n\n    c) accompany it with the information"
  557. X" you received as to where the corresponding source code may be obtained.  (T"
  558. X"his alternative is allowed only for noncommercial distribution and only if y"
  559. X"ou received the program in object code or executable form alone.)\n\nSource "
  560. X"code for a work means the preferred form of the work for making modification"
  561. X"s to it.  For an executable file, complete source code means all the source "
  562. X"code for all modules it contains; but, as a special exception, it need not i"
  563. X"nclude source code for modules which are standard libraries that accompany t"
  564. X"he operating system on which the executable file runs, or for standard heade"
  565. X"r files or definitions files that accompany that operating system.\n\n  4. Y"
  566. X"ou may not copy, modify, sublicense, distribute or transfer the Program exce"
  567. X"pt as expressly provided under this General Public Licence. Any attempt othe"
  568. X"rwise to copy, modify, sublicense, distribute or transfer the Program is voi"
  569. X"d, and will automatically terminate your rights to use the Program under thi"
  570. X"s Licence. However, parties who have received copies, or rights to use copie"
  571. X"s, from you under this General Public Licence will not have their licences t"
  572. X"erminated so long as such parties remain in full compliance.\n\n  5. By copy"
  573. X"ing, distributing or modifying the Program (or any work based on the Program"
  574. X") you indicate your acceptance of this licence to do so, and all its terms a"
  575. X"nd conditions.\n\n  6. Each time you redistribute the Program (or any work b"
  576. X"ased on the Program), the recipient automatically receives a licence from th"
  577. X"e original licensor to copy, distribute or modify the Program subject to the"
  578. X"se terms and conditions.  You may not impose any further restrictions on the"
  579. X" recipients' exercise of the rights granted herein.\n\n   7. The Free Softwa"
  580. X"re Foundation may publish revised and/or new versions of the General Public "
  581. X"Licence from time to time.  Such new versions will be similar in spirit to t"
  582. X"he present version, but may differ in detail to address new problems or conc"
  583. X"erns.\n\nEach version is given a distinguishing version number.  If the Prog"
  584. X"ram specifies a version number of the licenc"
  585. X"e which applies to it and \"any later version\", you have the option of fol"
  586. X"lowing the terms and conditions either of that version or of any later versi"
  587. X"on published by the Free Software Foundation.  If the Program does not speci"
  588. X"fy a version number of the licence, you may choose any version ever publishe"
  589. X"d by the Free Software Foundation.\n\n  8. If you wish to incorporate parts "
  590. X"of the Program into other free programs whose distribution conditions are di"
  591. X"fferent, write to the author to ask for permission.  For software which is c"
  592. X"opyrighted by the Free Software Foundation, write to the Free Software Found"
  593. X"ation; we sometimes make exceptions for this.  Our decision will be guided b"
  594. X"y the two goals of preserving the free status of all derivatives of our free"
  595. X" software and of promoting the sharing and reuse of software generally.\n\n "
  596. X"   NO WARRANTY\n\n  9. BECAUSE THE PROGRAM IS LICENCED FREE OF CHARGE, THERE"
  597. X" IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. "
  598. X" EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER "
  599. X"PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EITHER E"
  600. X"XPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES O"
  601. X"F MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS "
  602. X"TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGR"
  603. X"AM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR O"
  604. X"R CORRECTION.\n\n  10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGRE"
  605. X"ED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIF"
  606. X"Y AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR D"
  607. X"AMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES "
  608. X"ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LI"
  609. X"MITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED "
  610. X"BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHE"
  611. X"R PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSS"
  612. X"IBILITY OF SUCH DAMAGES.\n\n     END OF TERMS AND CONDITIONS\n\n Appendix: H"
  613. X"ow to Apply These Terms to Your New Programs\n\n  If you develop a new progr"
  614. X"am, and you want it to be of the greatest possible use to humanity, the best"
  615. X" way to achieve this is to make it free software which everyone can redistri"
  616. X"bute and change under these terms.\n\n  To do so, attach the following notic"
  617. X"es to the program.  It is safest to attach them to the start of each source "
  618. X"file to most effectively convey the exclusion of warranty; and each file sho"
  619. X"uld have at least the \"copyright\" line and a pointer to where the full not"
  620. X"ice is found.\n\n    <one line to give the program's name and a brief idea o"
  621. X"f what it does.>\n     Copyright (C) 19yy<name of author>\n\n    This progra"
  622. X"m is free software; you can redistribute it and/or modify it under the terms"
  623. X" of the GNU General Public Licence as published by the Free Software Foundat"
  624. X"ion; either version 1, or (at your option) any later version.\n\n    This pr"
  625. X"ogram is distributed in the hope that it will be useful, but WITHOUT ANY WAR"
  626. X"RANTY; without even the implied warranty of "
  627. X"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General P"
  628. X"ublic Licence for more details.\n\n    You should have received a copy of th"
  629. X"e GNU General Public Licence along with this program; if not, write to the F"
  630. X"ree Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\nAl"
  631. X"so add information on how to contact you by electronic and paper mail.\n\nIf"
  632. X" the program is interactive, make it output a short notice like this when it"
  633. X" starts in an interactive mode:\n\n    Gnomovision version 69, Copyright (C)"
  634. X" 19xx name of author\n     Gnomovision comes with ABSOLUTELY NO WARRANTY; fo"
  635. X"r details type `show w'.     This is free software, and you are welcome to r"
  636. X"edistribute it under certain conditions; type `show c' for details.\n\nThe h"
  637. X"ypothetical commands `show w' and `show c' should show the appropriate parts"
  638. X" of the General Public Licence.  Of course, the commands you use may be call"
  639. X"ed something other than `show w' and `show c'; they could even be mouse-clic"
  640. X"ks or menu items--whatever suits your program.\n\nYou should also get your e"
  641. X"mployer (if you work as a programmer) or your school, if any, to sign a \"co"
  642. X"pyright disclaimer\" for the program, if necessary.  Here a sample; alter th"
  643. X"e names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the"
  644. X" program `Gnomovision' (a program to direct compilers to make passes at asse"
  645. X"mblers) written by James Hacker.\n\n  <signature of Ty Coon>, 1 April 1989\n"
  646. X"Ty Coon, President of Vice\n\nThat's all there is to it!\n\n","a scroll","sc"
  647. X"roll")
  648. X
  649. XVIRTUAL(103, 0,0,0,0,101,0, "The chair is the kind often found in offices - "
  650. X"that tempts you to twirl it round and round.","a chair","chair")
  651. X
  652. XPERSON(104, 0,105,18,"The Noughts and Crosses Grandmaster is an old man, wit"
  653. X"h a glistening eye and a long white beard.  No, it isn't tucked into his bel"
  654. X"t.","the Grandmaster","grandmaster")
  655. X
  656. XVIRTUAL(105, 0,0,0,0, 104,0,"The book is an ancient leather bound volume, en"
  657. X"titled 'Noughts and Crosses: How to play a Psychological Game'.","the book","book")
  658. X
  659. XVIRTUAL(106, 0,0,0,107, 6,0,"The gate is nothing unusual in places such as t"
  660. X"his: it is about twice as tall as you, and made of wrought iron.","the gate","gate")
  661. X
  662. XVIRTUAL(107, 0,0,0,121, 106,1,"The fountain is made of marble, although it h"
  663. X"as got a little bit dulled by time.  There is no water flowing and it looks "
  664. X"as though none has for quite some time.","the fountain","fountain")
  665. X
  666. XVIRTUAL(108, 0,0,0,109, 8,1,"The piano is an ancient grand, and it looks as "
  667. X"though it has been well cared for.  Perhaps it would even play well...","the"
  668. X" piano","piano")
  669. X
  670. XVIRTUAL(109, 0,0,0,125, 108,0,"The stools are of the kind generally found wi"
  671. X"th pianos.  They look quite well used, but are not yet getting into disrepai"
  672. X"r.","the stools","stools")
  673. X
  674. XVIRTUAL(110, 0,0,0,0, 10,0,"The net is an unremarkable tennis net.  What is "
  675. X"remarkable is the way there are two of them, forming a cross.","the net","a_"
  676. X"net")
  677. X
  678. XVIRTUAL(111, 0,0,0,0, 11,0,"The net is an unremarkable tennis net.  What is "
  679. X"remarkable is the way there are two of them, forming a cross.","the net","b_"
  680. X"net")
  681. X
  682. XVIRTUAL(112, 0,0,0,123, 12,0,"The net is an unremarkable tennis net.  What i"
  683. X"s remarkable is the way there are two of them, forming a cross.","the net",""
  684. X"c_net")
  685. X
  686. XVIRTUAL(113, 0,0,0,0, 13,0,"The net is an unremarkable tennis net.  What is "
  687. X"remarkable is the way there are two of them, forming a cross.","the net","d_"
  688. X"net")
  689. X
  690. XVIRTUAL(114, 0,0,0,0, 16,0,"The racks are old and rotten.","the racks","racks")
  691. X
  692. XVIRTUAL(115, 0,0,0,0, 17,0,"The shelves are old and dusty, although they sti"
  693. X"ll appear sound.","the shelves","shelves")
  694. X
  695. XVIRTUAL(116, 0,0,0,117, 19,1,"The cupboards seem at home in a laboratory - t"
  696. X"hey are brightly painted and clean.","the cupboards","cupboards")
  697. X
  698. XVIRTUAL(117, 0,0,0,118, 116,0,"The benches are the standard laboratory issue"
  699. X".  They are tall enough to work at while standing, and do not overhang at al"
  700. X"l so that you can't put your knees under them if you sit down.","the benches"
  701. X"","benches")
  702. X
  703. XVIRTUAL(118, 0,0,0,120, 117,0,"The equipment is too complex for you to under"
  704. X"stand properly.  The most distinctive feature is the wires emerging and goin"
  705. X"g to a plate labelled 'DO NOT TOUCH'","the equipment","equipment")
  706. X
  707. XVIRTUAL(119, 0,0,0,0, 9,0,"The rose is an old fashioned, scented variety.",""
  708. X"a rose","rose")
  709. X
  710. XVIRTUAL(120, 0,0,0,0, 118,0,"The plate is labelled 'DO NOT TOUCH'.","the pla"
  711. X"te","plate")
  712. X
  713. XOBJECT(121 ,0,0,122,0, 107,0,0,1,"The school bag is made of black plastic, w"
  714. X"ith a zip on the top, and the word 'SPORT' written on the side.","a school b"
  715. X"ag","school_bag")
  716. X
  717. XOBJECT(122, 0,0,0,0, 121,1,1,0,"The battery torch is a long black cylinder w"
  718. X"ith buttons to switch it on and off.  The cylinder tapers towards one end; t"
  719. X"he torch is designed to be held at the narrow end, and the bulb is at the wi"
  720. X"de end.","a battery torch","battery_torch")
  721. X
  722. XOBJECT(123, 0,0,0,0, 112,0,0,0,"The card is about a third of A4 size, rather"
  723. X" muddy and with odd round holes punched in it.","a card","punch_card")
  724. X
  725. XOBJECT(124 ,0,0,0,145, 59,0,0,0,"The key is gleaming silver, obviously recen"
  726. X"tly polished.  It fits a cylinder lock, of the sort that you might have on y"
  727. X"our front door when you aren't dreaming.","a silver key","silver_key")
  728. X
  729. XPERSON(125, 0,0,109,"The piano teacher is a fearsome woman, waiting to entra"
  730. X"p people who come into 'her' room in the house, and land them with sixteen h"
  731. X"ours of piano practice a day.","the piano teacher","piano_teacher")
  732. X
  733. XVIRTUAL(126,0,0,0,127,55,0,"The balcony is made of thick, ornate marble.  Ei"
  734. X"ther it was made during classical times, or the people who had it built were"
  735. X" extremely rich!","a balcony","marble_balcony")
  736. X
  737. XVIRTUAL(127,0,0,0,0,126,0,"The stained glass windows are made in abstract de"
  738. X"signs, not the designs you would see in a Church.","stained glass windows",""
  739. X"stained_glass_windows")
  740. X
  741. XVIRTUAL(128,0,0,0,129,53,0,"The fighting kit is all useless - little scraps "
  742. X"of metal that were obviously once made into weapons, and old armour with the"
  743. X" leather straps long since rotted.","fighting kit","fighting_kit")
  744. X
  745. XVIRTUAL(129,0,0,0,0,128,1,"The table is not really very exciting!  It looks "
  746. X"much like any grotty old table would!","a table","deal_table")
  747. X
  748. XVIRTUAL(130,0,0,0,0,51,0,"The bridge is made of brick pillars supporting a p"
  749. X"athway made of paving stones.  It looks as though it needs preventive mainte"
  750. X"nance, in other words it may fall down at any moment!","a bridge","bridge")
  751. X
  752. XVIRTUAL(131,144,0,0,132,22,1,"Rusgreve's desk is nothing special - just a st"
  753. X"andard desk of the sort you might find in any office.","a desk","desk")
  754. X
  755. XVIRTUAL(132,0,0,0,133,131,0,"You can't see the document Rusgreve is working "
  756. X"on, because he won't let you.","a document","document")
  757. X
  758. XVIRTUAL(133,0,0,0,142,132,0,"The pot plant is a standard issue office plant,"
  759. X" type 2 (a), with leaves that either look plastic but aren't, or are plastic"
  760. X" but look real.","a pot plant","pot_plant")
  761. X
  762. XVIRTUAL(134,0,0,0,135,23,0,"There is paper here of all descriptions - from o"
  763. X"ld shopping lists to the designs for his... whatever it is he is working on."
  764. X"","paper","paper")
  765. X
  766. XVIRTUAL(135,0,0,0,136,134,0,"The electronic junk is also used for Q's room i"
  767. X"n making the James Bond films.","junk","junk")
  768. X
  769. XVIRTUAL(136,0,0,0,143,135,1,"Prendergast's tidy bin is overflowing with vast"
  770. X" quantities of material, but there is far more on the floor that could do to"
  771. X" be in it!","a tidy bin","tidy_bin")
  772. X
  773. XVIRTUAL(137,0,0,0,138,26,0,"What can I tell you about shelves that you don't"
  774. X" already know?","shelves","shelves")
  775. X
  776. XVIRTUAL(138,0,0,0,139,137,1,"The Butler's cupboards are pretty standard - pe"
  777. X"ople keep their things in them, and the Things keep their people outside the"
  778. X"m.","cupboards","cupboards")
  779. X
  780. XVIRTUAL(139,0,0,0,140,138,0,"The easy chair is used by the Butler when he is"
  781. X" able to find an odd few minutes to relax during a busy day.","an easy chair"
  782. X"","easy_chair")
  783. X
  784. XPERSON(140,159,0,139,"The butler is smartly dressed as befits his job, tall,"
  785. X" and you could imagine him carrying drinks on one of Gerald Ratner's trays.","the butler","butler")
  786. X
  787. XVIRTUAL(141,0,0,146,0,37,1,"The magpie's nest is built out of twigs, and has"
  788. X" a section for the eggs to go in, and a section for all the collected trinke"
  789. X"ts to go in.","a magpie's nest","nest")
  790. X
  791. XPERSON(142,0,0,133,"Rusgreve is smartly dressed, with a military bearing.  H"
  792. X"e would have had a small moustache if he had been around before Hitler gave "
  793. X"small moustaches a bad reputation.","Rusgreve","rusgreve")
  794. X
  795. XPERSON(143,0,0,136,"Prendergast is wearing a white lab coat, stained with oi"
  796. X"l.  He has a vacant expression on his face, as though he is thinking of othe"
  797. X"r things.","Prendergast","prendergast")
  798. X
  799. XOBJECT(144,0,0,0,0,131, 1,0,0,"The cup of coffee is hot and steaming.","a cu"
  800. X"p of coffee","cup_of_coffee")
  801. X
  802. XOBJECT(145,0,0,0,147,124, 1,0,0,"The 10p coin has a picture of Her Majesty o"
  803. X"n one side, and the rampant lion from the Royal crest on the other.  Above t"
  804. X"he lion it says 'NEW PENCE', as a reminder of when Britain gave up a milleni"
  805. X"um of sovereignty or rationalised its currency, depending on how you look at"
  806. X" it.","a 10p coin","10p_coin")
  807. X
  808. XOBJECT(146,0,0,0,0, 141,0,0,0,"The key is made of gold, rendered hard by som"
  809. X"e mysterious process.  It fits a cylinder lock, of the sort that you might h"
  810. X"ave on your front door when you aren't dreaming.","a gold key","gold_key")
  811. X
  812. XOBJECT(147 ,0,0,0,157, 145,0,0,0,"The key is made of cast bronze, obviously "
  813. X"recently polished.  It fits a cylinder lock, of the sort that you might have"
  814. X" on your front door when you aren't dreaming.","a bronze key","bronze_key")
  815. X
  816. XVIRTUAL(148, 0,0,0,0, 44,0,"The door is heavy, and made of a dark wood.  It "
  817. X"is locked with a cylinder lock, similar to that which you might have on your"
  818. X" front door if you weren't dreaming.  The lock is made of bronze.","a door","bronze_door")
  819. X
  820. XVIRTUAL(149, 0,0,0,0, 45,0,"The door is heavy, and made of a dark wood.  It "
  821. X"is locked with a cylinder lock, similar to that which you might have on your"
  822. X" front door if you weren't dreaming.  The lock is made of silver.","a door","silver_door")
  823. X
  824. XVIRTUAL(150, 0,0,0,0, 46,0,"The door is heavy, and made of a dark wood.  It "
  825. X"is locked with a cylinder lock, similar to that which you might have on your"
  826. X" front door if you weren't dreaming.  The lock is made of gold.","a door","g"
  827. X"old_door")
  828. X
  829. XOBJECT(151, 152,153,154,0,56,0,0,1,"The chest looks like the dead man's one "
  830. X"in Treasure Island.","a large wooden chest","large_wooden_chest")
  831. X
  832. XOBJECT(152, 0,0,0,0,151,0,0,0,"The paper star is about 10cm across, and is m"
  833. X"ade of green paper.","a big green paper star","big_paper_large_green_star")
  834. X
  835. XOBJECT(153, 0,0,0,0,151,0,0,1,"The paper bag is the sort you might buy your "
  836. X"groceries in.","a brown paper bag","brown_paper_bag")
  837. X
  838. XOBJECT(154, 0,0,155,0,151,0,0,1,"The small box is painted gloss black, and i"
  839. X"s about the size of a jewellry box.  It has a hinged lid, which is now bent "
  840. X"and will not close properly.","a small box","small_black_box")
  841. X
  842. XOBJECT(155, 0,0,0,0,154,0,0,0,"The medallion is a small gold disc, with an a"
  843. X"bstract design on each face.  Attached to the top is a purple ribbon.","a me"
  844. X"dallion","gold_golden_medallion")
  845. X
  846. XPERSON(156,0,0,47,"The princess doesn't like being examined.","a princess",""
  847. X"princess")
  848. X
  849. XOBJECT(157,0,0,0,163,147,1,0,0,"The dictating machine is small enough to fit"
  850. X" in your pocket.  It is ready loaded with a miniature tape and batteries, re"
  851. X"ady for you to dictate something to your secretary...","a dictating machine "
  852. X"(!)","dictating_machine")
  853. X
  854. XVIRTUAL(158,0,0,0,165,36,0,"The magpie is like all the magpies you have seen"
  855. X" before - a black and white bird.","a magpie","magpie")
  856. X
  857. XOBJECT(159,0,0,0,0,140,0,0,0,"The potion bottle is made of brown glass, with"
  858. X" a ground glass stopper.  On the side it is labelled 'ARE YOU A MAN OR A MOU"
  859. X"SE?  DRINK THIS AND SEE.'","a bottle of potion","bottle_of_potion")
  860. X
  861. XPERSON(160,0,0,52,"The elephant is very large, has a long trunk, big ears, g"
  862. X"rey skin...","an elephant","elephant")
  863. X
  864. XVIRTUAL(161,0,0,0,162,49,1,"The vending machine is a large metal box on the "
  865. X"wall, with a slot and a window.  Through the window you can see a big pile o"
  866. X"f dictating machines waiting to be sold.","a vending machine","vending_machi"
  867. X"ne")
  868. X
  869. XVIRTUAL(162,0,0,0,0,161,1,"The slot is about the right size for a 10p coin.","a slot","slot")
  870. X
  871. XPERSON(163,0,164,157,"The water sprite is a huge, semi-human form, rearing o"
  872. X"ver you and trying to drag you under the water of the pool.","a water sprite"
  873. X"","water_sprite")
  874. X
  875. XOBJECT(164,0,0,0,0,163,0,1,0,"The torch is really quite large; it looks rath"
  876. X"er like the Olympic torch, so despite being a funny thing to give as a sport"
  877. X"s prize it is sort of appropriate.  It is alight.","a burning torch","burnin"
  878. X"g_olympic_torch")
  879. X
  880. XVIRTUAL(165,0,0,0,0,158,0,"The tree is quite large, and with numerous low br"
  881. X"anches that you could use if you wanted to climb up.","a tree","climbable_tr"
  882. X"ee")
  883. X
  884. X/* Terminate */    {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(char *) 1 /* Rogue value */,"","",{0,0,0,0,0,0,0,0}}
  885. X
  886. X};
  887. END_OF_FILE
  888. if test 47192 -ne `wc -c <'objects.c'`; then
  889.     echo shar: \"'objects.c'\" unpacked with wrong size!
  890. fi
  891. # end of 'objects.c'
  892. fi
  893. if test -f 'quads.c' -a "${1}" != "-c" ; then 
  894.   echo shar: Will not clobber existing file \"'quads.c'\"
  895. else
  896. echo shar: Extracting \"'quads.c'\" \(2812 characters\)
  897. sed "s/^X//" >'quads.c' <<'END_OF_FILE'
  898. X/* Copyright (C) 1992 Pete Chown.
  899. X
  900. X   Here is my latest adventure game, Napoleon (see the documentation
  901. X   if you don't know why it's called that).  Have fun... (don't cheat,
  902. X   even though you've got the source :-) ).
  903. X
  904. X   This game is free software; you can redistribute it and/or modify
  905. X   it under the terms of the GNU General Public License as published by
  906. X   the Free Software Foundation; either version 1, or (at your option)
  907. X   any later version.
  908. X
  909. X   The game is distributed in the hope that it will be useful, but
  910. X   WITHOUT ANY WARRANTY; without even the implied warranty of
  911. X   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  912. X   General Public License for more details.
  913. X
  914. X   The GNU General Public License is often shipped with GNU software, and
  915. X   is generally kept in a file called COPYING or LICENSE.  If you do not
  916. X   have a copy of the license, write to the Free Software Foundation,
  917. X   675 Mass Ave, Cambridge, MA 02139, USA. */
  918. X
  919. X#include "adv.h"
  920. X
  921. Xstatic bool showcourt(char *court,char ball,char *expected)
  922. X{
  923. X  char input1 [2] = " ",input2 [2] = " ",*input;
  924. X
  925. X  format("Here is the current state of the court.  The Ps represent the othe"
  926. X"r players, the Y is you, and the arrow indicates the direction the ball is c"
  927. X"urrently moving in.\n\n"
  928. X"       |         \n"
  929. X"   %c   %c   %c   \n"
  930. X"       |         \n"
  931. X"---%c---+---%c---\n"
  932. X"       |         \n"
  933. X"   %c   %c   %c   \n"
  934. X"       |         \n\n",court [0],ball == '<' ? '<' : '|',court [1],ball == 'v' ? 'v' : '-',ball == '^' ? '^' : '-',court [2],ball == '>' ? '>' : '|',court [3]);
  935. X
  936. X  format("Enter 'h' if you want to hit the ball this turn, or 'r' if you wan"
  937. X"t to run somewhere.  Just press return if you don't want to do anything.\n");
  938. X  do {
  939. X    input = getline(">",LINE_NO_HISTORY);
  940. X    input1 [0] = input [0];
  941. X    input1 [1] = 0;
  942. X    *input1 = tolower(*input1);
  943. X  } while(strlen(input1) > 1 || (*input1 != 'r' && *input1 != 'h' && *input1 != 0));
  944. X  if(*input1 != 0) {
  945. X    format("\nEnter the direction you want%s to go, as n, s, e or w.\n",*input1 == 'r' ? "" : " it");
  946. X    do {
  947. X      input = getline(">",LINE_NO_HISTORY);
  948. X      input2 [0] = input [0];
  949. X      input2 [1] = 0;
  950. X      *input2 = tolower(*input2);
  951. X    } while(strlen(input2) > 1
  952. X        || (*input2 != 'n' && *input2 != 's' && *input2 != 'w' && *input2 != 'e'));
  953. X  }
  954. X  if(*expected == 0 && *input1 == 0) return TRUE;
  955. X  if(*input1 != *expected) return FALSE;
  956. X  if(*input2 != expected [1]) return FALSE;
  957. X  return TRUE;
  958. X}
  959. X
  960. Xextern bool quadruples(void)
  961. X{
  962. X  if(! showcourt("PPY ",'<',"")) return FALSE;
  963. X  if(! showcourt("P YP",'v',"he")) return FALSE;
  964. X  if(! showcourt(" PYP",'>',"rn")) return FALSE;
  965. X  if(! showcourt("YP P",'^',"")) return FALSE;
  966. X  if(! showcourt("YPP ",'<',"hs")) return FALSE;
  967. X  if(! showcourt("Y PP",'v',"re")) return FALSE;
  968. X  return TRUE;
  969. X}
  970. END_OF_FILE
  971. if test 2812 -ne `wc -c <'quads.c'`; then
  972.     echo shar: \"'quads.c'\" unpacked with wrong size!
  973. fi
  974. # end of 'quads.c'
  975. fi
  976. echo shar: End of archive 2 \(of 4\).
  977. cp /dev/null ark2isdone
  978. MISSING=""
  979. for I in 1 2 3 4 ; do
  980.     if test ! -f ark${I}isdone ; then
  981.     MISSING="${MISSING} ${I}"
  982.     fi
  983. done
  984. if test "${MISSING}" = "" ; then
  985.     echo You have unpacked all 4 archives.
  986.     rm -f ark[1-9]isdone
  987. else
  988.     echo You still need to unpack the following archives:
  989.     echo "        " ${MISSING}
  990. fi
  991. ##  End of shell archive.
  992. exit 0
  993.