123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 |
- ; "GLOBAL OBJECTS"
- <OR <GASSIGNED? ROSE!-OBJECTS>
- <PROG ()
- <GOBJECT ["MIRRO" "STRUC"] "mirror" MIRROR-FUNCTION MIRRORBIT ,OVISON>
- <GOBJECT ["ROSE" "COMPA"] "compass rose" <> ROSEBIT ,OVISON>
- <GOBJECT ["CHANN"] "stone channel" <> CHANBIT ,OVISON>
- <GOBJECT ["WALL"] "wooden wall" WALL-FUNCTION WALLBIT ,OVISON>>>
- ; "ROOMS"
- <SETG MR-D #CEXIT {"FROBOZZ" "MRD" "" %<> MRGO}>
- <SETG MR-G #CEXIT {"FROBOZZ" "MRG" "" %<> MRGO}>
- <SETG MR-C #CEXIT {"FROBOZZ" "MRC" "" %<> MRGO}>
- <SETG MR-B #CEXIT {"FROBOZZ" "MRB" "" %<> MRGO}>
- <SETG MR-A #CEXIT {"FROBOZZ" "MRA" "" %<> MRGO}>
- <SETG MOUT #CEXIT {"FROBOZZ" "MRA" "" %<> MIROUT}>
- <SETG MIREX #CEXIT {"MIRROR-OPEN" "INMIR" "" %<> MIRIN}>
- #ROOM {"MRD"
- "" "Hallway" T
- #EXIT {"NORTH" "FDOOR" "NE" "FDOOR" "NW" "FDOOR"
- "SOUTH" %,MR-G "SE" %,MR-G "SW" %,MR-G}
- ()
- %<> 0 %,RLANDBIT %<+ ,ROSEBIT ,CHANBIT ,WALLBIT>}
- #ROOM {"MRG"
- "" "Hallway" T
- #EXIT {"NORTH" %,MR-D "SOUTH" %,MR-C}
- ()
- GUARDIANS}
- #ROOM {"MRC"
- "" "Hallway" T
- #EXIT {"NORTH" %,MR-G "NW" %,MR-G "NE" %,MR-G
- "ENTER" %,MIREX "SOUTH" %,MR-B "SW" %,MR-B "SE" %,MR-B}
- ()
- MRCF 0 %,RLANDBIT %<+ ,MIRRORBIT ,ROSEBIT ,CHANBIT ,WALLBIT>}
- #ROOM {"MRB"
- "" "Hallway" T
- #EXIT {"NORTH" %,MR-C "NW" %,MR-C "NE" %,MR-C
- "ENTER" %,MIREX "SOUTH" %,MR-A "SW" %,MR-A "SW" %,MR-A}
- ()
- MRBF 0 %,RLANDBIT %<+ ,MIRRORBIT ,ROSEBIT ,CHANBIT ,WALLBIT>}
- #ROOM {"MRA"
- "" "Hallway" T
- #EXIT {"NORTH" %,MR-B "NW" %,MR-B "NE" %,MR-B
- "ENTER" %,MIREX "SOUTH" "MREYE"}
- ()
- MRAF 0 %,RLANDBIT %<+ ,MIRRORBIT ,ROSEBIT ,CHANBIT ,WALLBIT>}
- #ROOM {"MRGE"
- "" "Narrow Room" T
- %,NULEXIT
- ()
- GUARDIANS 0 %,RLANDBIT %,MIRRORBIT}
- #ROOM {"MRCE"
- "" "Narrow Room" T
- %,NULEXIT
- ()
- GUARDIANS 0 %,RLANDBIT %,MIRRORBIT}
- #ROOM {"MRCE"
- "" "Narrow Room" T
- #EXIT {"ENTER" %,MIREX "NORTH" "MRG" "SOUTH" "MRB"}
- ()
- MRCEW 0 %,RLANDBIT %,MIRRORBIT}
- #ROOM {"MRCW"
- "" "Narrow Room" T
- #EXIT {"ENTER" %,MIREX "NORTH" "MRG" "SOUTH" "MRB"}
- ()
- MRCEW 0 %,RLANDBIT %,MIRRORBIT}
- #ROOM {"MRBE"
- "" "Narrow Room" T
- #EXIT {"ENTER" %,MIREX "NORTH" "MRC" "SOUTH" "MRA"}
- ()
- MRBEW 0 %,RLANDBIT %,MIRRORBIT}
- #ROOM {"MRBW"
- "" "Narrow Room" T
- #EXIT {"ENTER" %,MIREX "NORTH" "MRC" "SOUTH" "MRA"}
- ()
- MRBEW 0 %,RLANDBIT %,MIRRORBIT}
- #ROOM {"MRAE"
- "" "Narrow Room" T
- #EXIT {"ENTER" %,MIREX "NORTH" "MRB"}
- ()
- MRAEW 0 %,RLANDBIT %,MIRRORBIT}
- #ROOM {"MRAW"
- "" "Narrow Room" T
- #EXIT {"ENTER" %,MIREX "NORTH" "MRB"}
- ()
- MRAEW 0 %,RLANDBIT %,MIRRORBIT}
- #ROOM {"INMIR"
- "" "Inside Mirror" T
- #EXIT {"NORTH" %,MOUT "SOUTH" %,MOUT "EAST" %,MOUT "WEST" %,MOUT
- "NE" %,MOUT "NW" %,MOUT "SE" %,MOUT "SW" %,MOUT}
- (#FIND-OBJ {"YLWAL"} #FIND-OBJ {"WHWAL"}
- #FIND-OBJ {"RDWAL"} #FIND-OBJ {"BLWAL"}
- #FIND-OBJ {"OAKND"} #FIND-OBJ {"PINND"}
- #FIND-OBJ {"WDBAR"} #FIND-OBJ {"LPOLE"}
- #FIND-OBJ {"SPOLE"})
- MAGIC-MIRROR
- 0 %,RLANDBIT %<+ ,ROSEBIT ,CHANBIT ,WALLBIT>}
- <ADD-OBJECT
- <GOBJECT ["MASTE" "KEEPE" "DUNGE"] "dungeon master" MASTER-FUNCTION MASTERBIT
- ,OVISON ,VICBIT ,ACTORBIT>
- ["KEEPE"] ["DUNGE"]>
- <PUT <FIND-OBJ "MASTE">
- ,ODESC1
- "The dungeon master is quietly leaning on his staff here.">
- <PUT <FIND-OBJ "MASTE">
- ,ORAND
- <ADD-ACTOR
- <SETG MASTER <CHTYPE [<FIND-ROOM "BDOOR"> () 0 <> <FIND-OBJ "MASTE"> MASTER-ACTOR 3 T 0]
- ADV>>>>
- <ADD-OBJECT <AOBJECT "YLWAL" "yellow panel" MPANELS ,OVISON ,NDESCBIT>
- ["WALL" "PANEL"] ["YELLO"]>
- <ADD-OBJECT <AOBJECT "RDWAL" "red panel" MPANELS ,OVISON ,NDESCBIT>
- ["WALL" "PANEL"] ["RED"]>
- <ADD-OBJECT <AOBJECT "BLWAL" "black panel" MPANELS ,OVISON ,NDESCBIT>
- ["WALL" "PANEL"] ["BLACK"]>
- <ADD-OBJECT <AOBJECT "WHWAL" "white panel" MPANELS ,OVISON ,NDESCBIT>
- ["WALL" "PANEL"] ["WHITE"]>
- <ADD-OBJECT <AOBJECT "PINND" "pine wall" MENDS ,OVISON ,NDESCBIT ,DOORBIT>
- ["WALL" "PANEL" "DOOR"] ["PINE"]>
- <ADD-OBJECT <AOBJECT "OAKND" "oak wall" MENDS ,OVISON ,NDESCBIT>
- ["WALL" "PANEL"] ["OAK"]>
- <ADD-OBJECT <SOBJECT "WDBAR" "wooden bar" ,OVISON ,NDESCBIT>
- ["BAR"] ["WOODE"]>
- <ADD-OBJECT <SOBJECT "LPOLE" "long pole" ,OVISON ,NDESCBIT>
- ["POLE" "POST"] ["LONG" "CENTE"]>
- <ADD-OBJECT <AOBJECT "SPOLE" "short pole" SHORT-POLE ,OVISON ,NDESCBIT>
- ["POLE" "POST"] ["SHORT"]>
- <ADD-OBJECT <AOBJECT "DIAL" "sundial" DIAL ,OVISON ,NDESCBIT ,TURNBIT>
- ["SUNDI"] ["SUN"]>
- <ADD-OBJECT <AOBJECT "DBUTT" "large button" DIALBUTTON ,OVISON ,NDESCBIT>
- ["BUTTO"] ["LARGE"]>
- <ADD-OBJECT <SOBJECT "ONE" "number one" ,OVISON ,NDESCBIT>
- ["1"]>
- <ADD-OBJECT <SOBJECT "TWO" "number two" ,OVISON ,NDESCBIT>
- ["2"]>
- <ADD-OBJECT <SOBJECT "THREE" "number three" ,OVISON ,NDESCBIT>
- ["3"]>
- <ADD-OBJECT <SOBJECT "FOUR" "number four" ,OVISON ,NDESCBIT>
- ["4"]>
- <ADD-OBJECT <AOBJECT "FIVE" "number five" TAKE-FIVE ,OVISON ,NDESCBIT>
- ["5"]>
- <ADD-OBJECT <SOBJECT "SIX" "number six" ,OVISON ,NDESCBIT>
- ["6"]>
- <ADD-OBJECT <SOBJECT "SEVEN" "number seven" ,OVISON ,NDESCBIT>
- ["7"]>
- <ADD-OBJECT <SOBJECT "EIGHT" "number eight" ,OVISON ,NDESCBIT>
- ["8"]>
- #ROOM {"MRANT"
- "You are standing near one end of a long, dimly lit hall. At the
- south stone stairs ascend. To the north the corridor is illuminated
- by torches set high in the walls, out of reach. On one wall is a red
- button."
- "Stone Room" T
- #EXIT {"SOUTH" "TSTRS" "UP" "TSTRS" "NORTH" "MREYE"}
- (#FIND-OBJ {"RSWIT"})}
- <ADD-OBJECT <AOBJECT "RSWIT" "red switch" MRSWITCH ,OVISON ,NDESCBIT>
- ["SWITC" "BUTTO"] ["RED"]>
- #ROOM {"MREYE"
- ""
- "Small Room"
- T
- #EXIT {"NORTH" "MRA" "SOUTH" "MRANT"}
- ()
- MREYE-ROOM}
- <SETG CD #DOOR {"TOMB" "TOMB" "CRYPT" %<> %<>}>
- #ROOM {"TOMB"
- ""
- "Tomb of the Unknown Implementer"
- %<>
- #EXIT {"WEST" "LLD2" "NORTH" %,CD "ENTER" %,CD}
- (#FIND-OBJ {"TOMB"}
- #FIND-OBJ {"HEADS"}
- #FIND-OBJ {"COKES"}
- #FIND-OBJ {"LISTS"})
- TOMB-FUNCTION 0 %,RLANDBIT}
- #ROOM {"CRYPT"
- ""
- "Crypt"
- %<>
- #EXIT {"SOUTH" %,CD "LEAVE" %,CD}
- (#FIND-OBJ {"TOMB"})
- CRYPT-FUNCTION 0 %,RLANDBIT}
- <ADD-OBJECT
- #OBJECT {"TOMB"
- ""
- "crypt door"
- %<> CRYPT-OBJECT () %<> %<+ ,OVISON ,DOORBIT ,NDESCBIT>}
- ["CRYPT" "GRAVE" "TOMB" "DOOR"] ["CRYPT"]>
- #ROOM {"TSTRS"
- "You are standing at the top of a flight of stairs that lead down to
- a passage below. Dim light, as from torches, can be seen in the
- passage. Behind you the stairs lead into untouched rock."
- "Top of Stairs"
- T
- #EXIT {"NORTH" "MRANT"
- "DOWN" "MRANT"
- "SOUTH" #NEXIT "The wall is solid rock."}
- ()
- %<> 0}
- #ROOM {"ECORR"
- "You are in a corridor with polished marble walls. The corridor
- widens into larger areas as it turns west at its northern and
- southern ends."
- "East Corridor"
- T
- #EXIT {"NORTH" "NCORR" "SOUTH" "SCORR"}}
- #ROOM {"WCORR"
- "You are in a corridor with polished marble walls. The corridor
- widens into larger areas as it turns east at its northern and
- southern ends."
- "West Corridor"
- T
- #EXIT {"NORTH" "NCORR" "SOUTH" "SCORR"}}
- <SETG OD #DOOR {"ODOOR" "SCORR" "CELL" "" MAYBE-DOOR}> ; "south cell door"
- <SETG ODOOR!-FLAG <>> ;"t if door 'exists'"
- <SETG WD #DOOR {"WDOOR" "BDOOR" "FDOOR"}> ; "wooden door, entrance to cell area"
- <SETG CD #DOOR {"CDOOR" "NCORR" "CELL"}> ; "cell door"
- <SETG ND #DOOR {"NDOOR" "NCELL" "NIRVA"}> ; "winnage door"
- #ROOM {"SCORR"
- ""
- "South Corridor"
- T
- #EXIT {"WEST" "WCORR"
- "EAST" "ECORR"
- "NORTH" %,OD
- "SOUTH" "BDOOR"}
- (#FIND-OBJ {"ODOOR"})
- SCORR-ROOM}
- #ROOM {"BDOOR"
- "You are in a narrow north-south corridor. At the south end is a door
- and at the north end is an east-west corridor."
- "Narrow Corridor"
- T
- #EXIT {"NORTH" "SCORR" "SOUTH" %,WD}}
- #ROOM {"FDOOR"
- ""
- "Dungeon Entrance"
- T
- #EXIT {"NORTH" %,WD "ENTER" %,WD "SOUTH" "MRD"}
- (#FIND-OBJ {"WDOOR"}) FDOOR-FUNCTION}
- <ADD-OBJECT <AOBJECT "WDOOR" "wooden door" WOOD-DOOR ,OVISON ,NDESCBIT ,DOORBIT>
- ["DOOR"] ["WOODE"]>
- #ROOM {"NCORR"
- ""
- "North Corridor"
- T
- #EXIT {"EAST" "ECORR" "WEST" "WCORR" "NORTH" "PARAP"
- "SOUTH" %,CD "ENTER" %,CD}
- (#FIND-OBJ {"CDOOR"})
- NCORR-ROOM}
- #ROOM {"PARAP"
- ""
- "Parapet"
- T
- #EXIT {"SOUTH" "NCORR"
- "NORTH" #NEXIT "You would be burned to a crisp in no time."}
- (#FIND-OBJ {"DBUTT"} #FIND-OBJ {"DIAL"}
- #FIND-OBJ {"ONE"} #FIND-OBJ {"TWO"}
- #FIND-OBJ {"THREE"} #FIND-OBJ {"FOUR"}
- #FIND-OBJ {"FIVE"} #FIND-OBJ {"SIX"}
- #FIND-OBJ {"SEVEN"} #FIND-OBJ {"EIGHT"}) PARAPET}
- <SETG NUMOBJS
- [#FIND-OBJ {"ONE"} 1 #FIND-OBJ {"TWO"} 2
- #FIND-OBJ {"THREE"} 3 #FIND-OBJ {"FOUR"} 4
- #FIND-OBJ {"FIVE"} 5 #FIND-OBJ {"SIX"} 6
- #FIND-OBJ {"SEVEN"} 7 #FIND-OBJ {"EIGHT"} 8]>
- <ADD-OBJECT <AOBJECT "CDOOR" "cell door" CELL-DOOR ,OVISON ,NDESCBIT ,DOORBIT>
- ["DOOR"] ["CELL"]>
- <ADD-OBJECT <AOBJECT "ODOOR" "ornate door" ORNATE-DOOR ,OVISON ,NDESCBIT ,DOORBIT>
- ["DOOR"] ["ORNAT"]>
- #ROOM {"CELL"
- ""
- "Prison Cell"
- T
- #EXIT {"OUT" %,CD
- "NORTH" %,CD
- "SOUTH" %,OD}
- (#FIND-OBJ {"CDOOR"} #FIND-OBJ {"ODOOR"})
- CELL-ROOM 0 %,RLANDBIT %,MASTERBIT}
- <SETG FOUT #NEXIT "The door is securely fastened.">
- <ADD-OBJECT <AOBJECT "LDOOR" "locked door" LOCKED-DOOR ,OVISON ,NDESCBIT>
- ["DOOR"] ["LOCKE"]>
- <ADD-OBJECT <AOBJECT "MDOOR" "locked door" LOCKED-DOOR ,OVISON ,NDESCBIT>
- ["DOOR"] ["LOCKE"]>
- #ROOM {"PCELL"
- ""
- "Prison Cell"
- T
- #EXIT {"OUT" %,FOUT}
- (#FIND-OBJ {"LDOOR"})
- PCELL-ROOM}
- #ROOM {"NCELL"
- ""
- "Prison Cell"
- T
- #EXIT {"OUT" %,FOUT "NORTH" %,ND}
- (#FIND-OBJ {"NDOOR"} #FIND-OBJ {"MDOOR"})
- NCELL-ROOM}
- <SETG CELLS <IUVECTOR 8 '()>>
- <SADD-ACTION "ANSWE" ANSWER>
- <ADD-ACTION "FOLLOW" "Follow" [["FOLLO" FOLLOW]] [OBJ ["FOLLO" FOLLOW]]>
- <SADD-ACTION "STAY" STAY>
- <SETG MASTER-ACTIONS
- [,TAKE!-WORDS ,PUSH!-WORDS ,TURN!-WORDS ,FOLLO!-WORDS
- ,TURN-TO!-WORDS ,SPIN!-WORDS ,STAY!-WORDS ,KILL!-WORDS]>
|