mrr.56 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. ; "GLOBAL OBJECTS"
  2. <OR <GASSIGNED? ROSE!-OBJECTS>
  3. <PROG ()
  4. <GOBJECT ["MIRRO" "STRUC"] "mirror" MIRROR-FUNCTION MIRRORBIT ,OVISON>
  5. <GOBJECT ["ROSE" "COMPA"] "compass rose" <> ROSEBIT ,OVISON>
  6. <GOBJECT ["CHANN"] "stone channel" <> CHANBIT ,OVISON>
  7. <GOBJECT ["WALL"] "wooden wall" WALL-FUNCTION WALLBIT ,OVISON>>>
  8. ; "ROOMS"
  9. <SETG MR-D #CEXIT {"FROBOZZ" "MRD" "" %<> MRGO}>
  10. <SETG MR-G #CEXIT {"FROBOZZ" "MRG" "" %<> MRGO}>
  11. <SETG MR-C #CEXIT {"FROBOZZ" "MRC" "" %<> MRGO}>
  12. <SETG MR-B #CEXIT {"FROBOZZ" "MRB" "" %<> MRGO}>
  13. <SETG MR-A #CEXIT {"FROBOZZ" "MRA" "" %<> MRGO}>
  14. <SETG MOUT #CEXIT {"FROBOZZ" "MRA" "" %<> MIROUT}>
  15. <SETG MIREX #CEXIT {"MIRROR-OPEN" "INMIR" "" %<> MIRIN}>
  16. #ROOM {"MRD"
  17. "" "Hallway" T
  18. #EXIT {"NORTH" "FDOOR" "NE" "FDOOR" "NW" "FDOOR"
  19. "SOUTH" %,MR-G "SE" %,MR-G "SW" %,MR-G}
  20. ()
  21. %<> 0 %,RLANDBIT %<+ ,ROSEBIT ,CHANBIT ,WALLBIT>}
  22. #ROOM {"MRG"
  23. "" "Hallway" T
  24. #EXIT {"NORTH" %,MR-D "SOUTH" %,MR-C}
  25. ()
  26. GUARDIANS}
  27. #ROOM {"MRC"
  28. "" "Hallway" T
  29. #EXIT {"NORTH" %,MR-G "NW" %,MR-G "NE" %,MR-G
  30. "ENTER" %,MIREX "SOUTH" %,MR-B "SW" %,MR-B "SE" %,MR-B}
  31. ()
  32. MRCF 0 %,RLANDBIT %<+ ,MIRRORBIT ,ROSEBIT ,CHANBIT ,WALLBIT>}
  33. #ROOM {"MRB"
  34. "" "Hallway" T
  35. #EXIT {"NORTH" %,MR-C "NW" %,MR-C "NE" %,MR-C
  36. "ENTER" %,MIREX "SOUTH" %,MR-A "SW" %,MR-A "SW" %,MR-A}
  37. ()
  38. MRBF 0 %,RLANDBIT %<+ ,MIRRORBIT ,ROSEBIT ,CHANBIT ,WALLBIT>}
  39. #ROOM {"MRA"
  40. "" "Hallway" T
  41. #EXIT {"NORTH" %,MR-B "NW" %,MR-B "NE" %,MR-B
  42. "ENTER" %,MIREX "SOUTH" "MREYE"}
  43. ()
  44. MRAF 0 %,RLANDBIT %<+ ,MIRRORBIT ,ROSEBIT ,CHANBIT ,WALLBIT>}
  45. #ROOM {"MRGE"
  46. "" "Narrow Room" T
  47. %,NULEXIT
  48. ()
  49. GUARDIANS 0 %,RLANDBIT %,MIRRORBIT}
  50. #ROOM {"MRCE"
  51. "" "Narrow Room" T
  52. %,NULEXIT
  53. ()
  54. GUARDIANS 0 %,RLANDBIT %,MIRRORBIT}
  55. #ROOM {"MRCE"
  56. "" "Narrow Room" T
  57. #EXIT {"ENTER" %,MIREX "NORTH" "MRG" "SOUTH" "MRB"}
  58. ()
  59. MRCEW 0 %,RLANDBIT %,MIRRORBIT}
  60. #ROOM {"MRCW"
  61. "" "Narrow Room" T
  62. #EXIT {"ENTER" %,MIREX "NORTH" "MRG" "SOUTH" "MRB"}
  63. ()
  64. MRCEW 0 %,RLANDBIT %,MIRRORBIT}
  65. #ROOM {"MRBE"
  66. "" "Narrow Room" T
  67. #EXIT {"ENTER" %,MIREX "NORTH" "MRC" "SOUTH" "MRA"}
  68. ()
  69. MRBEW 0 %,RLANDBIT %,MIRRORBIT}
  70. #ROOM {"MRBW"
  71. "" "Narrow Room" T
  72. #EXIT {"ENTER" %,MIREX "NORTH" "MRC" "SOUTH" "MRA"}
  73. ()
  74. MRBEW 0 %,RLANDBIT %,MIRRORBIT}
  75. #ROOM {"MRAE"
  76. "" "Narrow Room" T
  77. #EXIT {"ENTER" %,MIREX "NORTH" "MRB"}
  78. ()
  79. MRAEW 0 %,RLANDBIT %,MIRRORBIT}
  80. #ROOM {"MRAW"
  81. "" "Narrow Room" T
  82. #EXIT {"ENTER" %,MIREX "NORTH" "MRB"}
  83. ()
  84. MRAEW 0 %,RLANDBIT %,MIRRORBIT}
  85. #ROOM {"INMIR"
  86. "" "Inside Mirror" T
  87. #EXIT {"NORTH" %,MOUT "SOUTH" %,MOUT "EAST" %,MOUT "WEST" %,MOUT
  88. "NE" %,MOUT "NW" %,MOUT "SE" %,MOUT "SW" %,MOUT}
  89. (#FIND-OBJ {"YLWAL"} #FIND-OBJ {"WHWAL"}
  90. #FIND-OBJ {"RDWAL"} #FIND-OBJ {"BLWAL"}
  91. #FIND-OBJ {"OAKND"} #FIND-OBJ {"PINND"}
  92. #FIND-OBJ {"WDBAR"} #FIND-OBJ {"LPOLE"}
  93. #FIND-OBJ {"SPOLE"})
  94. MAGIC-MIRROR
  95. 0 %,RLANDBIT %<+ ,ROSEBIT ,CHANBIT ,WALLBIT>}
  96. <ADD-OBJECT
  97. <GOBJECT ["MASTE" "KEEPE" "DUNGE"] "dungeon master" MASTER-FUNCTION MASTERBIT
  98. ,OVISON ,VICBIT ,ACTORBIT>
  99. ["KEEPE"] ["DUNGE"]>
  100. <PUT <FIND-OBJ "MASTE">
  101. ,ODESC1
  102. "The dungeon master is quietly leaning on his staff here.">
  103. <PUT <FIND-OBJ "MASTE">
  104. ,ORAND
  105. <ADD-ACTOR
  106. <SETG MASTER <CHTYPE [<FIND-ROOM "BDOOR"> () 0 <> <FIND-OBJ "MASTE"> MASTER-ACTOR 3 T 0]
  107. ADV>>>>
  108. <ADD-OBJECT <AOBJECT "YLWAL" "yellow panel" MPANELS ,OVISON ,NDESCBIT>
  109. ["WALL" "PANEL"] ["YELLO"]>
  110. <ADD-OBJECT <AOBJECT "RDWAL" "red panel" MPANELS ,OVISON ,NDESCBIT>
  111. ["WALL" "PANEL"] ["RED"]>
  112. <ADD-OBJECT <AOBJECT "BLWAL" "black panel" MPANELS ,OVISON ,NDESCBIT>
  113. ["WALL" "PANEL"] ["BLACK"]>
  114. <ADD-OBJECT <AOBJECT "WHWAL" "white panel" MPANELS ,OVISON ,NDESCBIT>
  115. ["WALL" "PANEL"] ["WHITE"]>
  116. <ADD-OBJECT <AOBJECT "PINND" "pine wall" MENDS ,OVISON ,NDESCBIT ,DOORBIT>
  117. ["WALL" "PANEL" "DOOR"] ["PINE"]>
  118. <ADD-OBJECT <AOBJECT "OAKND" "oak wall" MENDS ,OVISON ,NDESCBIT>
  119. ["WALL" "PANEL"] ["OAK"]>
  120. <ADD-OBJECT <SOBJECT "WDBAR" "wooden bar" ,OVISON ,NDESCBIT>
  121. ["BAR"] ["WOODE"]>
  122. <ADD-OBJECT <SOBJECT "LPOLE" "long pole" ,OVISON ,NDESCBIT>
  123. ["POLE" "POST"] ["LONG" "CENTE"]>
  124. <ADD-OBJECT <AOBJECT "SPOLE" "short pole" SHORT-POLE ,OVISON ,NDESCBIT>
  125. ["POLE" "POST"] ["SHORT"]>
  126. <ADD-OBJECT <AOBJECT "DIAL" "sundial" DIAL ,OVISON ,NDESCBIT ,TURNBIT>
  127. ["SUNDI"] ["SUN"]>
  128. <ADD-OBJECT <AOBJECT "DBUTT" "large button" DIALBUTTON ,OVISON ,NDESCBIT>
  129. ["BUTTO"] ["LARGE"]>
  130. <ADD-OBJECT <SOBJECT "ONE" "number one" ,OVISON ,NDESCBIT>
  131. ["1"]>
  132. <ADD-OBJECT <SOBJECT "TWO" "number two" ,OVISON ,NDESCBIT>
  133. ["2"]>
  134. <ADD-OBJECT <SOBJECT "THREE" "number three" ,OVISON ,NDESCBIT>
  135. ["3"]>
  136. <ADD-OBJECT <SOBJECT "FOUR" "number four" ,OVISON ,NDESCBIT>
  137. ["4"]>
  138. <ADD-OBJECT <AOBJECT "FIVE" "number five" TAKE-FIVE ,OVISON ,NDESCBIT>
  139. ["5"]>
  140. <ADD-OBJECT <SOBJECT "SIX" "number six" ,OVISON ,NDESCBIT>
  141. ["6"]>
  142. <ADD-OBJECT <SOBJECT "SEVEN" "number seven" ,OVISON ,NDESCBIT>
  143. ["7"]>
  144. <ADD-OBJECT <SOBJECT "EIGHT" "number eight" ,OVISON ,NDESCBIT>
  145. ["8"]>
  146. #ROOM {"MRANT"
  147. "You are standing near one end of a long, dimly lit hall. At the
  148. south stone stairs ascend. To the north the corridor is illuminated
  149. by torches set high in the walls, out of reach. On one wall is a red
  150. button."
  151. "Stone Room" T
  152. #EXIT {"SOUTH" "TSTRS" "UP" "TSTRS" "NORTH" "MREYE"}
  153. (#FIND-OBJ {"RSWIT"})}
  154. <ADD-OBJECT <AOBJECT "RSWIT" "red switch" MRSWITCH ,OVISON ,NDESCBIT>
  155. ["SWITC" "BUTTO"] ["RED"]>
  156. #ROOM {"MREYE"
  157. ""
  158. "Small Room"
  159. T
  160. #EXIT {"NORTH" "MRA" "SOUTH" "MRANT"}
  161. ()
  162. MREYE-ROOM}
  163. <SETG CD #DOOR {"TOMB" "TOMB" "CRYPT" %<> %<>}>
  164. #ROOM {"TOMB"
  165. ""
  166. "Tomb of the Unknown Implementer"
  167. %<>
  168. #EXIT {"WEST" "LLD2" "NORTH" %,CD "ENTER" %,CD}
  169. (#FIND-OBJ {"TOMB"}
  170. #FIND-OBJ {"HEADS"}
  171. #FIND-OBJ {"COKES"}
  172. #FIND-OBJ {"LISTS"})
  173. TOMB-FUNCTION 0 %,RLANDBIT}
  174. #ROOM {"CRYPT"
  175. ""
  176. "Crypt"
  177. %<>
  178. #EXIT {"SOUTH" %,CD "LEAVE" %,CD}
  179. (#FIND-OBJ {"TOMB"})
  180. CRYPT-FUNCTION 0 %,RLANDBIT}
  181. <ADD-OBJECT
  182. #OBJECT {"TOMB"
  183. ""
  184. "crypt door"
  185. %<> CRYPT-OBJECT () %<> %<+ ,OVISON ,DOORBIT ,NDESCBIT>}
  186. ["CRYPT" "GRAVE" "TOMB" "DOOR"] ["CRYPT"]>
  187. #ROOM {"TSTRS"
  188. "You are standing at the top of a flight of stairs that lead down to
  189. a passage below. Dim light, as from torches, can be seen in the
  190. passage. Behind you the stairs lead into untouched rock."
  191. "Top of Stairs"
  192. T
  193. #EXIT {"NORTH" "MRANT"
  194. "DOWN" "MRANT"
  195. "SOUTH" #NEXIT "The wall is solid rock."}
  196. ()
  197. %<> 0}
  198. #ROOM {"ECORR"
  199. "You are in a corridor with polished marble walls. The corridor
  200. widens into larger areas as it turns west at its northern and
  201. southern ends."
  202. "East Corridor"
  203. T
  204. #EXIT {"NORTH" "NCORR" "SOUTH" "SCORR"}}
  205. #ROOM {"WCORR"
  206. "You are in a corridor with polished marble walls. The corridor
  207. widens into larger areas as it turns east at its northern and
  208. southern ends."
  209. "West Corridor"
  210. T
  211. #EXIT {"NORTH" "NCORR" "SOUTH" "SCORR"}}
  212. <SETG OD #DOOR {"ODOOR" "SCORR" "CELL" "" MAYBE-DOOR}> ; "south cell door"
  213. <SETG ODOOR!-FLAG <>> ;"t if door 'exists'"
  214. <SETG WD #DOOR {"WDOOR" "BDOOR" "FDOOR"}> ; "wooden door, entrance to cell area"
  215. <SETG CD #DOOR {"CDOOR" "NCORR" "CELL"}> ; "cell door"
  216. <SETG ND #DOOR {"NDOOR" "NCELL" "NIRVA"}> ; "winnage door"
  217. #ROOM {"SCORR"
  218. ""
  219. "South Corridor"
  220. T
  221. #EXIT {"WEST" "WCORR"
  222. "EAST" "ECORR"
  223. "NORTH" %,OD
  224. "SOUTH" "BDOOR"}
  225. (#FIND-OBJ {"ODOOR"})
  226. SCORR-ROOM}
  227. #ROOM {"BDOOR"
  228. "You are in a narrow north-south corridor. At the south end is a door
  229. and at the north end is an east-west corridor."
  230. "Narrow Corridor"
  231. T
  232. #EXIT {"NORTH" "SCORR" "SOUTH" %,WD}}
  233. #ROOM {"FDOOR"
  234. ""
  235. "Dungeon Entrance"
  236. T
  237. #EXIT {"NORTH" %,WD "ENTER" %,WD "SOUTH" "MRD"}
  238. (#FIND-OBJ {"WDOOR"}) FDOOR-FUNCTION}
  239. <ADD-OBJECT <AOBJECT "WDOOR" "wooden door" WOOD-DOOR ,OVISON ,NDESCBIT ,DOORBIT>
  240. ["DOOR"] ["WOODE"]>
  241. #ROOM {"NCORR"
  242. ""
  243. "North Corridor"
  244. T
  245. #EXIT {"EAST" "ECORR" "WEST" "WCORR" "NORTH" "PARAP"
  246. "SOUTH" %,CD "ENTER" %,CD}
  247. (#FIND-OBJ {"CDOOR"})
  248. NCORR-ROOM}
  249. #ROOM {"PARAP"
  250. ""
  251. "Parapet"
  252. T
  253. #EXIT {"SOUTH" "NCORR"
  254. "NORTH" #NEXIT "You would be burned to a crisp in no time."}
  255. (#FIND-OBJ {"DBUTT"} #FIND-OBJ {"DIAL"}
  256. #FIND-OBJ {"ONE"} #FIND-OBJ {"TWO"}
  257. #FIND-OBJ {"THREE"} #FIND-OBJ {"FOUR"}
  258. #FIND-OBJ {"FIVE"} #FIND-OBJ {"SIX"}
  259. #FIND-OBJ {"SEVEN"} #FIND-OBJ {"EIGHT"}) PARAPET}
  260. <SETG NUMOBJS
  261. [#FIND-OBJ {"ONE"} 1 #FIND-OBJ {"TWO"} 2
  262. #FIND-OBJ {"THREE"} 3 #FIND-OBJ {"FOUR"} 4
  263. #FIND-OBJ {"FIVE"} 5 #FIND-OBJ {"SIX"} 6
  264. #FIND-OBJ {"SEVEN"} 7 #FIND-OBJ {"EIGHT"} 8]>
  265. <ADD-OBJECT <AOBJECT "CDOOR" "cell door" CELL-DOOR ,OVISON ,NDESCBIT ,DOORBIT>
  266. ["DOOR"] ["CELL"]>
  267. <ADD-OBJECT <AOBJECT "ODOOR" "ornate door" ORNATE-DOOR ,OVISON ,NDESCBIT ,DOORBIT>
  268. ["DOOR"] ["ORNAT"]>
  269. #ROOM {"CELL"
  270. ""
  271. "Prison Cell"
  272. T
  273. #EXIT {"OUT" %,CD
  274. "NORTH" %,CD
  275. "SOUTH" %,OD}
  276. (#FIND-OBJ {"CDOOR"} #FIND-OBJ {"ODOOR"})
  277. CELL-ROOM 0 %,RLANDBIT %,MASTERBIT}
  278. <SETG FOUT #NEXIT "The door is securely fastened.">
  279. <ADD-OBJECT <AOBJECT "LDOOR" "locked door" LOCKED-DOOR ,OVISON ,NDESCBIT>
  280. ["DOOR"] ["LOCKE"]>
  281. <ADD-OBJECT <AOBJECT "MDOOR" "locked door" LOCKED-DOOR ,OVISON ,NDESCBIT>
  282. ["DOOR"] ["LOCKE"]>
  283. #ROOM {"PCELL"
  284. ""
  285. "Prison Cell"
  286. T
  287. #EXIT {"OUT" %,FOUT}
  288. (#FIND-OBJ {"LDOOR"})
  289. PCELL-ROOM}
  290. #ROOM {"NCELL"
  291. ""
  292. "Prison Cell"
  293. T
  294. #EXIT {"OUT" %,FOUT "NORTH" %,ND}
  295. (#FIND-OBJ {"NDOOR"} #FIND-OBJ {"MDOOR"})
  296. NCELL-ROOM}
  297. <SETG CELLS <IUVECTOR 8 '()>>
  298. <SADD-ACTION "ANSWE" ANSWER>
  299. <ADD-ACTION "FOLLOW" "Follow" [["FOLLO" FOLLOW]] [OBJ ["FOLLO" FOLLOW]]>
  300. <SADD-ACTION "STAY" STAY>
  301. <SETG MASTER-ACTIONS
  302. [,TAKE!-WORDS ,PUSH!-WORDS ,TURN!-WORDS ,FOLLO!-WORDS
  303. ,TURN-TO!-WORDS ,SPIN!-WORDS ,STAY!-WORDS ,KILL!-WORDS]>
  304.