mirror of
https://github.com/historicalsource/zork3
synced 2024-06-17 07:21:06 +03:00
Revision 17 (Original Source)
This commit is contained in:
commit
1dfe76cfc7
1945
actions.zap
Normal file
1945
actions.zap
Normal file
File diff suppressed because it is too large
Load diff
1935
actions.zil
Normal file
1935
actions.zil
Normal file
File diff suppressed because it is too large
Load diff
60
clock.zap
Normal file
60
clock.zap
Normal file
|
@ -0,0 +1,60 @@
|
|||
|
||||
|
||||
.FUNCT DEMON,RTN,TICK,CINT
|
||||
CALL INT,RTN,TRUE-VALUE >CINT
|
||||
PUT CINT,C-TICK,TICK
|
||||
RETURN CINT
|
||||
|
||||
|
||||
.FUNCT QUEUE,RTN,TICK,CINT
|
||||
CALL INT,RTN >CINT
|
||||
PUT CINT,C-TICK,TICK
|
||||
RETURN CINT
|
||||
|
||||
|
||||
.FUNCT INT,RTN,DEMON=0,E,C,INT
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
ADD C-TABLE,C-INTS >C
|
||||
?PRG1: EQUAL? C,E \?ELS5
|
||||
SUB C-INTS,C-INTLEN >C-INTS
|
||||
ZERO? DEMON /?ELS7
|
||||
SUB C-DEMONS,C-INTLEN >C-DEMONS
|
||||
?ELS7: ADD C-TABLE,C-INTS >INT
|
||||
PUT INT,C-RTN,RTN
|
||||
RETURN INT
|
||||
?ELS5: GET C,C-RTN
|
||||
EQUAL? STACK,RTN \?CND3
|
||||
RETURN C
|
||||
?CND3: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT CLOCKER,C,E,TICK,FLG=0
|
||||
ZERO? CLOCK-WAIT /?CND1
|
||||
SET 'CLOCK-WAIT,FALSE-VALUE
|
||||
RFALSE
|
||||
?CND1: ZERO? P-WON /?ELS9
|
||||
PUSH C-INTS
|
||||
JUMP ?CND5
|
||||
?ELS9: PUSH C-DEMONS
|
||||
?CND5: ADD C-TABLE,STACK >C
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
?PRG13: EQUAL? C,E \?ELS17
|
||||
RETURN FLG
|
||||
?ELS17: GET C,C-ENABLED?
|
||||
ZERO? STACK /?CND15
|
||||
GET C,C-TICK >TICK
|
||||
ZERO? TICK \?ELS22
|
||||
JUMP ?CND15
|
||||
?ELS22: SUB TICK,1
|
||||
PUT C,C-TICK,STACK
|
||||
GRTR? TICK,1 /?CND20
|
||||
GET C,C-RTN
|
||||
CALL STACK
|
||||
ZERO? STACK /?CND20
|
||||
SET 'FLG,TRUE-VALUE
|
||||
?CND20:
|
||||
?CND15: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG13
|
||||
|
||||
.ENDI
|
60
clock.zil
Normal file
60
clock.zil
Normal file
|
@ -0,0 +1,60 @@
|
|||
|
||||
<CONSTANT C-TABLELEN 180>
|
||||
|
||||
<GLOBAL C-TABLE <ITABLE NONE 180>>
|
||||
|
||||
<GLOBAL C-DEMONS 180>
|
||||
|
||||
<GLOBAL C-INTS 180>
|
||||
|
||||
<CONSTANT C-INTLEN 6>
|
||||
|
||||
<CONSTANT C-ENABLED? 0>
|
||||
|
||||
<CONSTANT C-TICK 1>
|
||||
|
||||
<CONSTANT C-RTN 2>
|
||||
|
||||
<ROUTINE DEMON (RTN TICK "AUX" CINT)
|
||||
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
|
||||
<PUT <SET CINT <INT .RTN T>> ,C-TICK .TICK>
|
||||
.CINT>
|
||||
|
||||
<ROUTINE QUEUE (RTN TICK "AUX" CINT)
|
||||
#DECL ((RTN) ATOM (TICK) FIX (CINT) <PRIMTYPE VECTOR>)
|
||||
<PUT <SET CINT <INT .RTN>> ,C-TICK .TICK>
|
||||
.CINT>
|
||||
|
||||
<ROUTINE INT (RTN "OPTIONAL" (DEMON <>) E C INT)
|
||||
#DECL ((RTN) ATOM (DEMON) <OR ATOM FALSE> (E C INT) <PRIMTYPE
|
||||
VECTOR>)
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<SET C <REST ,C-TABLE ,C-INTS>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E>
|
||||
<SETG C-INTS <- ,C-INTS ,C-INTLEN>>
|
||||
<AND .DEMON <SETG C-DEMONS <- ,C-DEMONS ,C-INTLEN>>>
|
||||
<SET INT <REST ,C-TABLE ,C-INTS>>
|
||||
<PUT .INT ,C-RTN .RTN>
|
||||
<RETURN .INT>)
|
||||
(<==? <GET .C ,C-RTN> .RTN> <RETURN .C>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
||||
|
||||
<GLOBAL CLOCK-WAIT <>>
|
||||
|
||||
<ROUTINE CLOCKER ("AUX" C E TICK (FLG <>))
|
||||
#DECL ((C E) <PRIMTYPE VECTOR> (TICK) FIX (FLG) <OR FALSE ATOM>)
|
||||
<COND (,CLOCK-WAIT <SETG CLOCK-WAIT <>> <RFALSE>)>
|
||||
<SET C <REST ,C-TABLE <COND (,P-WON ,C-INTS) (T ,C-DEMONS)>>>
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E> <RETURN .FLG>)
|
||||
(<NOT <0? <GET .C ,C-ENABLED?>>>
|
||||
<SET TICK <GET .C ,C-TICK>>
|
||||
<COND (<0? .TICK>)
|
||||
(T
|
||||
<PUT .C ,C-TICK <- .TICK 1>>
|
||||
<COND (<AND <NOT <G? .TICK 1>>
|
||||
<APPLY <GET .C ,C-RTN>>>
|
||||
<SET FLG T>)>)>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
58
demons.zap
Normal file
58
demons.zap
Normal file
|
@ -0,0 +1,58 @@
|
|||
|
||||
|
||||
.FUNCT I-SWORD,DEM,NG=0,P,T,L
|
||||
CALL INT,I-SWORD >DEM
|
||||
IN? SWORD,ADVENTURER \?ELS5
|
||||
EQUAL? HERE,CLIFF \?ELS8
|
||||
ZERO? MAN-GONE \?ELS8
|
||||
SET 'NG,1
|
||||
JUMP ?CND6
|
||||
?ELS8: EQUAL? HERE,CLIFF-LEDGE \?ELS12
|
||||
ZERO? MAN-FLAG /?ELS12
|
||||
SET 'NG,1
|
||||
JUMP ?CND6
|
||||
?ELS12: CALL INFESTED?,HERE
|
||||
ZERO? STACK /?ELS16
|
||||
SET 'NG,2
|
||||
JUMP ?CND6
|
||||
?ELS16: SET 'P,0
|
||||
?PRG19: NEXTP HERE,P >P
|
||||
ZERO? P \?ELS23
|
||||
JUMP ?CND6
|
||||
?ELS23: LESS? P,LOW-DIRECTION /?PRG19
|
||||
GETPT HERE,P >T
|
||||
PTSIZE T >L
|
||||
EQUAL? L,UEXIT,CEXIT,DEXIT \?PRG19
|
||||
GETB T,0
|
||||
CALL INFESTED?,STACK
|
||||
ZERO? STACK /?PRG19
|
||||
SET 'NG,1
|
||||
?CND6: EQUAL? NG,SWORD-STATE /FALSE
|
||||
EQUAL? NG,2 \?ELS36
|
||||
PRINTI "Your sword has begun to glow very brightly."
|
||||
CRLF
|
||||
JUMP ?CND32
|
||||
?ELS36: EQUAL? NG,1 \?ELS40
|
||||
PRINTI "Your sword is glowing with a faint blue glow."
|
||||
CRLF
|
||||
JUMP ?CND32
|
||||
?ELS40: ZERO? NG \?CND32
|
||||
PRINTI "Your sword is no longer glowing."
|
||||
CRLF
|
||||
?CND32: SET 'SWORD-STATE,NG
|
||||
RTRUE
|
||||
?ELS5: PUT DEM,0,0
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT INFESTED?,R,F
|
||||
FIRST? R >F /?KLU12
|
||||
?KLU12:
|
||||
?PRG1: ZERO? F /FALSE
|
||||
FSET? F,VILLAIN \?ELS7
|
||||
FSET? F,INVISIBLE /?ELS7
|
||||
RETURN F
|
||||
?ELS7: NEXT? F >F /?PRG1
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
41
demons.zil
Normal file
41
demons.zil
Normal file
|
@ -0,0 +1,41 @@
|
|||
|
||||
|
||||
"SWORD demon"
|
||||
|
||||
<ROUTINE I-SWORD ("AUX" (DEM <INT I-SWORD>) (NG 0) P T L)
|
||||
<COND (<IN? ,SWORD ,ADVENTURER>
|
||||
<COND (<AND <==? ,HERE ,CLIFF> <NOT ,MAN-GONE>> <SET NG 1>)
|
||||
(<AND <==? ,HERE ,CLIFF-LEDGE> ,MAN-FLAG> <SET NG 1>)
|
||||
(<INFESTED? ,HERE> <SET NG 2>)
|
||||
(ELSE
|
||||
<SET P 0>
|
||||
<REPEAT ()
|
||||
<COND (<0? <SET P <NEXTP ,HERE .P>>>
|
||||
<RETURN>)
|
||||
(<NOT <L? .P ,LOW-DIRECTION>>
|
||||
<SET T <GETPT ,HERE .P>>
|
||||
<SET L <PTSIZE .T>>
|
||||
<COND (<EQUAL? .L ,UEXIT ,CEXIT ,DEXIT>
|
||||
<COND (<INFESTED? <GETB .T 0>>
|
||||
<SET NG 1>
|
||||
<RETURN>)>)>)>>)>
|
||||
<COND (<==? .NG ,SWORD-STATE> <RFALSE>)
|
||||
(<==? .NG 2>
|
||||
<TELL "Your sword has begun to glow very brightly." CR>)
|
||||
(<1? .NG>
|
||||
<TELL "Your sword is glowing with a faint blue glow."
|
||||
CR>)
|
||||
(<0? .NG>
|
||||
<TELL "Your sword is no longer glowing." CR>)>
|
||||
<SETG SWORD-STATE .NG>
|
||||
<RTRUE>)
|
||||
(ELSE <DISABLE .DEM> <RFALSE>)>>
|
||||
|
||||
<GLOBAL SWORD-STATE 0>
|
||||
|
||||
<ROUTINE INFESTED? (R "AUX" (F <FIRST? .R>))
|
||||
<REPEAT ()
|
||||
<COND (<NOT .F> <RETURN <>>)
|
||||
(<AND <FSET? .F ,VILLAIN> <NOT <FSET? .F ,INVISIBLE>>>
|
||||
<RETURN .F>)
|
||||
(<NOT <SET F <NEXT? .F>>> <RETURN <>>)>>>
|
2
dungeon.zap
Normal file
2
dungeon.zap
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
.ENDI
|
999
dungeon.zil
Normal file
999
dungeon.zil
Normal file
|
@ -0,0 +1,999 @@
|
|||
"DUNGEON3 for
|
||||
ZORK III: The Dungeon Master
|
||||
The Great Underground Empire (Part 3)
|
||||
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
|
||||
"
|
||||
|
||||
<DIRECTIONS NORTH EAST WEST SOUTH NE NW SE SW UP DOWN IN OUT LAND CROSS>
|
||||
|
||||
"SUBTITLE GLOBAL OBJECTS"
|
||||
|
||||
<GLOBAL LOAD-MAX 100>
|
||||
<GLOBAL LOAD-ALLOWED 100>
|
||||
|
||||
<OBJECT GLOBAL-OBJECTS
|
||||
(FLAGS SEARCHBIT TRANSBIT RMUNGBIT INVISIBLE TOUCHBIT SURFACEBIT)>
|
||||
|
||||
<OBJECT LOCAL-GLOBALS
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM MGCKJK)
|
||||
(PSEUDO "FOOBAR" PATH-OBJECT)
|
||||
(VTYPE 1)
|
||||
(DESCFCN PATH-OBJECT)>
|
||||
|
||||
;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh"
|
||||
|
||||
<OBJECT ROOMS>
|
||||
|
||||
<OBJECT PSEUDO-OBJECT
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "pseudo")
|
||||
(ACTION PATH-OBJECT)>
|
||||
|
||||
<OBJECT IT ;"was IT"
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM IT THAT THIS HIM)
|
||||
(DESC "random object")
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT BLESSINGS
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM BLESSINGS GRACES)
|
||||
(DESC "blessings")
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT STAIRS
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM STAIRS STEPS STAIRCASE STAIR)
|
||||
(ADJECTIVE STONE MARBLE STEEP)
|
||||
(DESC "stairs")
|
||||
(FLAGS NDESCBIT CLIMBBIT)>
|
||||
|
||||
<OBJECT RUBBLE
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM ROCK ROCKS BOULDER RUBBLE)
|
||||
(DESC "rubble")
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT DEBRIS
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM DUST DEBRIS)
|
||||
(DESC "dust and debris")
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT CHASM
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM CHASM GORGE RAVINE)
|
||||
(ADJECTIVE ROCKY DEEP)
|
||||
(DESC "chasm")
|
||||
(ACTION CHASM-FCN)
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT PATHOBJ
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM EXIT PATH TRAIL)
|
||||
(ADJECTIVE FOREST NARROW LONG WINDING)
|
||||
(DESC "way")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION PATH-OBJECT)>
|
||||
|
||||
<OBJECT TUNNEL
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM PASSAGE CRAWLWAY)
|
||||
(ADJECTIVE DARK SMOKY)
|
||||
(DESC "tunnel")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION TUNNEL-OBJECT)>
|
||||
|
||||
<OBJECT GROUND ;"was GROUND"
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM GROUND EARTH SAND FLOOR)
|
||||
(DESC "ground")
|
||||
(ACTION GROUND-FCN)>
|
||||
|
||||
<OBJECT GRUE ;"was GRUE"
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM GRUE)
|
||||
(ADJECTIVE LURKING SINISTER HUNGRY SILENT)
|
||||
(DESC "lurking grue")
|
||||
(ACTION GRUE-FUNCTION)>
|
||||
|
||||
<OBJECT HANDS ;"was HANDS"
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM PAIR HANDS)
|
||||
(ADJECTIVE BARE)
|
||||
(DESC "pair of hands")
|
||||
(FLAGS NDESCBIT TOOLBIT)>
|
||||
|
||||
<OBJECT EAST-WALL ;"was EAST-WALL"
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM WALL)
|
||||
(ADJECTIVE EAST EASTERN)
|
||||
(DESC "eastern wall")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION RANDOM-WALL)>
|
||||
|
||||
<OBJECT SOUTH-WALL ;"was SOUTH-WALL"
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM WALL)
|
||||
(ADJECTIVE SOUTH SOUTHE) ;"only 6 chars count and southeast exists"
|
||||
(DESC "southern wall")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION RANDOM-WALL)>
|
||||
|
||||
<OBJECT WEST-WALL ;"was WEST-WALL"
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM WALL)
|
||||
(ADJECTIVE WEST WESTERN)
|
||||
(DESC "western wall")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION RANDOM-WALL)>
|
||||
|
||||
<OBJECT NORTH-WALL ;"was NORTH-WALL"
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM WALL)
|
||||
(ADJECTIVE NORTH NORTHE) ;"only six chars used..."
|
||||
(DESC "northern wall")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION RANDOM-WALL)>
|
||||
|
||||
<OBJECT GLOBAL-WATER ;"was GLOBAL-WATER"
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM WATER QUANTITY)
|
||||
(DESC "water")
|
||||
(FLAGS DRINKBIT)
|
||||
(ACTION WATER-FCN)>
|
||||
|
||||
<OBJECT ADVENTURER ;"was ADVENTURER"
|
||||
(IN CP-ANTE)
|
||||
(SYNONYM ADVENTURER)
|
||||
(DESC "cretin")
|
||||
(FLAGS VILLAIN NDESCBIT INVISIBLE )
|
||||
(STRENGTH 0)
|
||||
(ACTION 0)>
|
||||
|
||||
<OBJECT ME
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM ME MYSELF SELF CRETIN)
|
||||
(DESC "you")
|
||||
(FLAGS VILLAIN)
|
||||
(ACTION CRETIN)>
|
||||
|
||||
<OBJECT BROKEN-LAMP ;"was BLAMP"
|
||||
(SYNONYM LAMP LANTERN)
|
||||
(ADJECTIVE BROKEN BRASS)
|
||||
(DESC "broken brass lantern")
|
||||
(FLAGS TAKEBIT)
|
||||
(SIZE 15)>
|
||||
|
||||
<OBJECT LAMP ;"was LAMP"
|
||||
(IN CP-ANTE)
|
||||
(SYNONYM LAMP LANTERN)
|
||||
(ADJECTIVE BRASS)
|
||||
(DESC "lamp")
|
||||
(FLAGS TAKEBIT LIGHTBIT)
|
||||
(FDESC "Your old friend, the brass lantern, is at your feet.")
|
||||
(ACTION LANTERN)
|
||||
(SIZE 15)>
|
||||
|
||||
<OBJECT SWORD ;"was SWORD"
|
||||
(IN STONE)
|
||||
(SYNONYM SWORD ORCRIST GLAMDRING BLADE)
|
||||
(ADJECTIVE ELVISH OLD ANTIQUE)
|
||||
(DESC "sword")
|
||||
(FLAGS TAKEBIT WEAPONBIT TRYTAKEBIT)
|
||||
(ACTION SWORD-FCN)
|
||||
(SIZE 25)
|
||||
(VALUE 0)>
|
||||
|
||||
"CHINESE PUZZLE ROOMS/OBJECTS"
|
||||
|
||||
<ROOM CP-ANTE
|
||||
(IN ROOMS)
|
||||
(DESC "Royal Puzzle Entrance")
|
||||
(WEST TO CP-OUT)
|
||||
(NORTH TO MUSEUM-ENTRANCE)
|
||||
(UP TO MUSEUM-ENTRANCE)
|
||||
(DOWN PER CPENTER)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(ACTION CPANT-ROOM)
|
||||
(GLOBAL STAIRS)>
|
||||
|
||||
<ROOM CP-OUT
|
||||
(IN ROOMS)
|
||||
(DESC "Side Room")
|
||||
(NORTH TO CP-ANTE)
|
||||
(UP TO CP-ANTE)
|
||||
(EAST TO CP IF CP-FLAG ELSE "The steel door is closed.")
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(ACTION CPOUT-ROOM)
|
||||
(GLOBAL CPDOOR STAIRS)>
|
||||
|
||||
<ROOM CP
|
||||
(IN ROOMS)
|
||||
(DESC "Room in a Puzzle")
|
||||
(NORTH PER CPEXIT)
|
||||
(SOUTH PER CPEXIT)
|
||||
(EAST PER CPEXIT)
|
||||
(WEST PER CPEXIT)
|
||||
(NE PER CPEXIT)
|
||||
(NW PER CPEXIT)
|
||||
(SE PER CPEXIT)
|
||||
(UP PER CPEXIT)
|
||||
(SW PER CPEXIT)
|
||||
(ACTION CP-ROOM)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL CPLADDER CPDOOR CPEWL CPWWL CPNWL CPSWL)>
|
||||
|
||||
;"SUBTITLE CHINESE PUZZLE OBJECTS"
|
||||
|
||||
<OBJECT WARNING-NOTE
|
||||
(IN CP-ANTE)
|
||||
(DESC "warning note")
|
||||
(SYNONYM NOTE WARNING TEXT)
|
||||
(ADJECTIVE WARNING SMALL)
|
||||
(FDESC "Lying on the ground is a small note of some kind.")
|
||||
(FLAGS TAKEBIT READBIT BURNBIT)
|
||||
(SIZE 2)
|
||||
(TEXT
|
||||
"Warning:|
|
||||
The Royal Puzzle is quite dangerous and it is possible to become
|
||||
trapped within its confines. Please do not enter the puzzle after hours
|
||||
or when museum personnel are not present.|
|
||||
The Management|")>
|
||||
|
||||
<OBJECT CP-SLOT
|
||||
(SYNONYM CPSLT SLIT SLOT)
|
||||
(ADJECTIVE SMALL)
|
||||
(DESC "small slot")
|
||||
(FLAGS NDESCBIT OPENBIT)
|
||||
(ACTION CP-SLOT-FCN)
|
||||
(CAPACITY 4)>
|
||||
|
||||
<OBJECT CPDOOR
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM DOOR)
|
||||
(ADJECTIVE STEEL METAL)
|
||||
(DESC "steel door")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION CPDOOR-F)>
|
||||
|
||||
<OBJECT LORE-BOOK
|
||||
(SYNONYM BOOK LORE TEXT)
|
||||
(ADJECTIVE LORE OLD STRANGE)
|
||||
(DESC "very ancient book")
|
||||
(FLAGS TAKEBIT READBIT)
|
||||
(LDESC
|
||||
"There is an old book here.")
|
||||
(FDESC
|
||||
"Nestled inside the niche is an old and dusty book.")
|
||||
(TEXT
|
||||
"The book is written in a strong and elegant hand and is full of strange
|
||||
and wondrous pictures. The text is in a tongue unknown to you and is penned
|
||||
in many colours. Some of the words seem to change colour as you read them.
|
||||
The book itself is very old and the pages dry and brittle.")
|
||||
(SIZE 4)
|
||||
(ACTION LORE-BOOK-F)>
|
||||
|
||||
<GLOBAL CP-FLAG <>>
|
||||
|
||||
<OBJECT CPEWL ;"defined CPWALL"
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM WALL)
|
||||
(ADJECTIVE EAST EASTERN)
|
||||
(DESC "eastern wall")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION CPWALL-OBJECT)>
|
||||
|
||||
<OBJECT CPWWL ;"defined CPWALL"
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM WALL)
|
||||
(ADJECTIVE WEST WESTERN)
|
||||
(DESC "western wall")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION CPWALL-OBJECT)>
|
||||
|
||||
<OBJECT CPSWL ;"defined CPWALL"
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM WALL)
|
||||
(ADJECTIVE SOUTH)
|
||||
(DESC "southern wall")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION CPWALL-OBJECT)>
|
||||
|
||||
<OBJECT CPNWL ;"defined CPWALL"
|
||||
(IN LOCAL-GLOBALS)
|
||||
(SYNONYM WALL)
|
||||
(ADJECTIVE NORTH)
|
||||
(DESC "northern wall")
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION CPWALL-OBJECT)>
|
||||
|
||||
<OBJECT CPLADDER ;"defined CPLADDER"
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM LADDER)
|
||||
(DESC "ladder")
|
||||
(ACTION CPLADDER-OBJECT)>
|
||||
|
||||
;"Objects/rooms for old end-game"
|
||||
|
||||
<OBJECT INTNUM
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM INTNUM)
|
||||
(FLAGS TOOLBIT)
|
||||
(DESC "number")>
|
||||
|
||||
<OBJECT INTDIR
|
||||
(IN GLOBAL-OBJECTS)
|
||||
(SYNONYM INTDIR)
|
||||
(FLAGS TOOLBIT)
|
||||
(DESC "direction")>
|
||||
|
||||
<OBJECT GUARDIAN
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "Guardians of Zork")
|
||||
(SYNONYM STATUE GUARDIAN GUARD GUARDS)
|
||||
(FLAGS VILLAIN)
|
||||
(ACTION GUARDIANS)>
|
||||
|
||||
<OBJECT ROSE
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "compass rose")
|
||||
(SYNONYM ROSE)
|
||||
(ADJECTIVE COMPASS)
|
||||
(ACTION ROSE-F)>
|
||||
|
||||
<OBJECT MASTER
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "dungeon master")
|
||||
(SYNONYM MASTER)
|
||||
(ADJECTIVE DUNGEON)
|
||||
(FLAGS VICBIT)
|
||||
(ACTION MASTER-F)>
|
||||
|
||||
<OBJECT DUNGEON-MASTER
|
||||
(IN BEHIND-DOOR)
|
||||
(DESC "dungeon master")
|
||||
(LDESC
|
||||
"The dungeon master is quietly leaning on his staff here.")
|
||||
(SYNONYM MASTER DUNGEON)
|
||||
(ADJECTIVE DUNGEON)
|
||||
(FLAGS VILLAIN VICBIT)
|
||||
(ACTION DUNGEON-MASTER-F)>
|
||||
|
||||
<OBJECT MIRROR
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "mirror")
|
||||
(SYNONYM MIRROR STRUCTURE)
|
||||
(FLAGS VICBIT)
|
||||
(ACTION MIRROR-FUNCTION)>
|
||||
|
||||
<OBJECT PANEL
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "panel")
|
||||
(SYNONYM PANEL)
|
||||
(ACTION PANEL-FUNCTION)>
|
||||
|
||||
<OBJECT CHANNEL
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "stone channel")
|
||||
(SYNONYM CHANNEL HOLE)
|
||||
(ADJECTIVE STONE)>
|
||||
|
||||
<ROOM MRD
|
||||
(IN ROOMS)
|
||||
(DESC "Hallway")
|
||||
(LDESC " ")
|
||||
(NORTH TO FRONT-DOOR)
|
||||
(NE TO FRONT-DOOR)
|
||||
(NW TO FRONT-DOOR)
|
||||
(SOUTH PER MRGO)
|
||||
(SE PER MRGO)
|
||||
(SW PER MRGO)
|
||||
(ACTION MRDF)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL ROSE CHANNEL GUARDIAN WOODEN-WALL)>
|
||||
|
||||
<ROOM MRG
|
||||
(IN ROOMS)
|
||||
(DESC "Hallway")
|
||||
(LDESC " ")
|
||||
(NORTH PER MRGO)
|
||||
(NW PER MRGO)
|
||||
(NE PER MRGO)
|
||||
(ENTER PER MIRIN)
|
||||
(SOUTH PER MRGO)
|
||||
(SW PER MRGO)
|
||||
(SE PER MRGO)
|
||||
(ACTION GUARDIANS)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL GUARDIAN)>
|
||||
|
||||
<ROOM MRC
|
||||
(IN ROOMS)
|
||||
(DESC "Hallway")
|
||||
(LDESC " ")
|
||||
(NORTH PER MRGO)
|
||||
(NW PER MRGO)
|
||||
(NE PER MRGO)
|
||||
(ENTER PER MIRIN)
|
||||
(SOUTH PER MRGO)
|
||||
(SW PER MRGO)
|
||||
(SE PER MRGO)
|
||||
(ACTION MRCF)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL ROSE CHANNEL GUARDIAN WOODEN-WALL)>
|
||||
|
||||
<ROOM MRB
|
||||
(IN ROOMS)
|
||||
(DESC "Hallway")
|
||||
(LDESC " ")
|
||||
(NORTH PER MRGO)
|
||||
(NW PER MRGO)
|
||||
(NE PER MRGO)
|
||||
(ENTER PER MIRIN)
|
||||
(SOUTH PER MRGO)
|
||||
(SW PER MRGO)
|
||||
(SE PER MRGO)
|
||||
(ACTION MRBF)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL ROSE CHANNEL WOODEN-WALL)>
|
||||
|
||||
<ROOM MRA
|
||||
(IN ROOMS)
|
||||
(DESC "Hallway")
|
||||
(LDESC " ")
|
||||
(NORTH PER MRGO)
|
||||
(NW PER MRGO)
|
||||
(NE PER MRGO)
|
||||
(ENTER PER MIRIN)
|
||||
(SOUTH TO MREYE)
|
||||
(ACTION MRAF)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL ROSE CHANNEL WOODEN-WALL)>
|
||||
|
||||
<ROOM MRDE
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(WEST PER MIRIN)
|
||||
(NORTH TO FRONT-DOOR)
|
||||
(SOUTH TO MRG)
|
||||
(ACTION MRDEW)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM MRDW
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(WEST PER MIRIN)
|
||||
(NORTH TO FRONT-DOOR)
|
||||
(SOUTH TO MRG)
|
||||
(ACTION MRDEW)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM MRGE
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(WEST PER MIRIN)
|
||||
(NORTH TO MRD)
|
||||
(SOUTH TO MRC)
|
||||
(ACTION GUARDIANS)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM MRGW
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(EAST PER MIRIN)
|
||||
(NORTH TO MRD)
|
||||
(SOUTH TO MRC)
|
||||
(ACTION GUARDIANS)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM MRCE
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(WEST PER MIRIN)
|
||||
(NORTH TO MRG)
|
||||
(SOUTH TO MRB)
|
||||
(ACTION MRCEW)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM MRCW
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(EAST PER MIRIN)
|
||||
(NORTH TO MRG)
|
||||
(SOUTH TO MRB)
|
||||
(ACTION MRCEW)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM MRBE
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(WEST PER MIRIN)
|
||||
(NORTH TO MRC)
|
||||
(SOUTH TO MRA)
|
||||
(ACTION MRBEW)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM MRBW
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(EAST PER MIRIN)
|
||||
(NORTH TO MRC)
|
||||
(SOUTH TO MRA)
|
||||
(ACTION MRBEW)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM MRAE
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(WEST PER MIRIN)
|
||||
(NORTH TO MRB)
|
||||
(SOUTH TO MREYE)
|
||||
(ACTION MRAEW)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM MRAW
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Room")
|
||||
(LDESC " ")
|
||||
(ENTER PER MIRIN)
|
||||
(EAST PER MIRIN)
|
||||
(NORTH TO MRB)
|
||||
(SOUTH TO MREYE)
|
||||
(ACTION MRAEW)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MIRROR PANEL GUARDIAN)>
|
||||
|
||||
<ROOM IN-MIRROR
|
||||
(IN ROOMS)
|
||||
(DESC "Inside Mirror")
|
||||
(LDESC " ")
|
||||
(OUT PER MIROUT)
|
||||
(NORTH PER MIROUT)
|
||||
(SOUTH PER MIROUT)
|
||||
(NW PER MIROUT)
|
||||
(NE PER MIROUT)
|
||||
(SE PER MIROUT)
|
||||
(SW PER MIROUT)
|
||||
(WEST PER MIROUT)
|
||||
(EAST PER MIROUT)
|
||||
(ACTION MAGIC-MIRROR)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL ROSE CHANNEL GUARDIAN)>
|
||||
|
||||
<ROOM MR-ANTE
|
||||
(IN ROOMS)
|
||||
(DESC "Button Room")
|
||||
(LDESC
|
||||
"You are standing at the southern end of a long, dimly lit hall. To the
|
||||
south, stairs ascend into darkness. To the north the corridor is illuminated
|
||||
by torches set high in the walls, out of reach. On one wall is a red
|
||||
button.")
|
||||
(SOUTH TO MSTAIRS IF SECRET-DOOR IS OPEN)
|
||||
(UP TO MSTAIRS IF SECRET-DOOR IS OPEN)
|
||||
(NORTH TO MREYE)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL SECRET-DOOR STAIRS)
|
||||
(PSEUDO "TORCH" TORCH-PSEUDO "TORCHE" TORCH-PSEUDO)>
|
||||
|
||||
<ROOM MREYE
|
||||
(IN ROOMS)
|
||||
(DESC "Beam Room")
|
||||
(LDESC " ")
|
||||
(NORTH PER MRGO)
|
||||
(NW PER MRGO)
|
||||
(NE PER MRGO)
|
||||
(SOUTH TO MR-ANTE)
|
||||
(ACTION MREYE-ROOM)
|
||||
(FLAGS RLANDBIT ONBIT)>
|
||||
|
||||
<ROOM MSTAIRS
|
||||
(IN ROOMS)
|
||||
(DESC "Engravings Room")
|
||||
(NORTH TO MR-ANTE IF SECRET-DOOR IS OPEN ELSE "You can't go that way.")
|
||||
(DOWN TO MR-ANTE IF SECRET-DOOR IS OPEN ELSE "You can't go that way.")
|
||||
(SW TO DAMP-PASSAGE)
|
||||
(SE TO DEAD-END)
|
||||
(FLAGS RLANDBIT)
|
||||
(ACTION MSTAIRS-F)
|
||||
(GLOBAL SECRET-DOOR STAIRS)>
|
||||
|
||||
<ROOM DEAD-END
|
||||
(IN ROOMS)
|
||||
(DESC "Dead End")
|
||||
(LDESC
|
||||
"You have come to the end of two adjoining passages to the west and the
|
||||
northwest.")
|
||||
(WEST TO DAMP-PASSAGE)
|
||||
(NW TO MSTAIRS)
|
||||
(FLAGS RLANDBIT)>
|
||||
|
||||
<ROOM DAMP-PASSAGE
|
||||
(IN ROOMS)
|
||||
(DESC "Damp Passage")
|
||||
(LDESC
|
||||
"This is a particularly damp spot even by dungeon standards. You can see a
|
||||
crossroads to the west, and two nearly identical passages lead east and
|
||||
northeast. A stone channel, wide and deep, steeply descends into the room
|
||||
from the south. It is covered with moss and lichen, and is far too slippery
|
||||
to climb. The channel crosses the room, but the opening where it once
|
||||
continued north is now blocked by rubble.")
|
||||
(WEST TO JUNCTION)
|
||||
(EAST TO DEAD-END)
|
||||
(NE TO MSTAIRS)
|
||||
(NORTH "The channel opening is blocked by tons of debris.")
|
||||
(UP "The channel is too steep and the moss too slippery.")
|
||||
(SOUTH "The channel is too steep and the moss too slippery.")
|
||||
(FLAGS RLANDBIT)
|
||||
(GLOBAL MOSS RUBBLE WATER-CHANNEL)>
|
||||
|
||||
<ROOM EAST-CORRIDOR
|
||||
(IN ROOMS)
|
||||
(DESC "East Corridor")
|
||||
(LDESC
|
||||
"This is a hall with polished marble walls. It widens slightly as it turns
|
||||
west at its northern and southern ends.")
|
||||
(NORTH TO NORTH-CORRIDOR)
|
||||
(SOUTH TO SOUTH-CORRIDOR)
|
||||
(FLAGS RLANDBIT ONBIT)>
|
||||
|
||||
<ROOM WEST-CORRIDOR
|
||||
(IN ROOMS)
|
||||
(DESC "West Corridor")
|
||||
(LDESC
|
||||
"This is a hall with polished marble walls. It widens slightly as it turns
|
||||
east at its northern and southern ends.")
|
||||
(NORTH TO NORTH-CORRIDOR)
|
||||
(SOUTH TO SOUTH-CORRIDOR)
|
||||
(FLAGS RLANDBIT ONBIT)>
|
||||
|
||||
<ROOM SOUTH-CORRIDOR
|
||||
(IN ROOMS)
|
||||
(DESC "South Corridor")
|
||||
(LDESC " ")
|
||||
(EAST TO EAST-CORRIDOR)
|
||||
(WEST TO WEST-CORRIDOR)
|
||||
(NORTH PER BRONZE-DOOR-EXIT)
|
||||
(SOUTH TO BEHIND-DOOR)
|
||||
(ACTION SOUTH-CORRIDOR-F)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL BRONZE-DOOR)>
|
||||
|
||||
<ROOM BEHIND-DOOR
|
||||
(IN ROOMS)
|
||||
(DESC "Narrow Corridor")
|
||||
(LDESC " ")
|
||||
(NORTH TO SOUTH-CORRIDOR)
|
||||
(SOUTH TO FRONT-DOOR IF DUNGEON-DOOR IS OPEN)
|
||||
(ACTION BEHIND-DOOR-F)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL DUNGEON-DOOR)>
|
||||
|
||||
<ROOM FRONT-DOOR
|
||||
(IN ROOMS)
|
||||
(DESC "Dungeon Entrance")
|
||||
(LDESC " ")
|
||||
(NORTH TO BEHIND-DOOR IF DUNGEON-DOOR IS OPEN)
|
||||
(ENTER TO BEHIND-DOOR IF DUNGEON-DOOR IS OPEN)
|
||||
(SOUTH PER MRGO)
|
||||
(SE TO MRDE)
|
||||
(SW TO MRDW)
|
||||
(ACTION FRONT-DOOR-F)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MASTER DUNGEON-DOOR WOODEN-WALL)>
|
||||
|
||||
<OBJECT WOODEN-WALL
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "wooden wall")
|
||||
(SYNONYM WALL)
|
||||
(ADJECTIVE WOOD WOODEN)
|
||||
(ACTION WOODEN-WALL-F)>
|
||||
|
||||
<ROOM NORTH-CORRIDOR
|
||||
(IN ROOMS)
|
||||
(DESC "North Corridor")
|
||||
(LDESC " ")
|
||||
(EAST TO EAST-CORRIDOR)
|
||||
(WEST TO WEST-CORRIDOR)
|
||||
(NORTH TO PARAPET)
|
||||
(SOUTH TO CELL IF CELL-DOOR IS OPEN)
|
||||
(ENTER TO CELL IF CELL-DOOR IS OPEN)
|
||||
(ACTION NORTH-CORRIDOR-F)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MASTER CELL-DOOR PARAPET-OBJ FLAMING-PIT)>
|
||||
|
||||
<ROOM PARAPET
|
||||
(IN ROOMS)
|
||||
(DESC "Parapet")
|
||||
(LDESC " ")
|
||||
(SOUTH TO NORTH-CORRIDOR)
|
||||
(NORTH "You would be burned to a crisp in no time.")
|
||||
(ACTION PARAPET-F)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MASTER PARAPET-OBJ FLAMING-PIT)>
|
||||
|
||||
<ROOM CELL
|
||||
(IN ROOMS)
|
||||
(DESC "Prison Cell")
|
||||
(LDESC " ")
|
||||
(OUT TO NORTH-CORRIDOR IF CELL-DOOR IS OPEN)
|
||||
(NORTH TO NORTH-CORRIDOR IF CELL-DOOR IS OPEN)
|
||||
(ACTION CELL-ROOM)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL MASTER BRONZE-DOOR CELL-DOOR PARAPET-OBJ FLAMING-PIT)>
|
||||
|
||||
<ROOM PRISON-CELL
|
||||
(IN ROOMS)
|
||||
(DESC "Prison Cell")
|
||||
(LDESC
|
||||
"You are in a bare prison cell. Its wooden door is securely fastened, and
|
||||
you can see only flames and smoke through its small window.")
|
||||
(OUT "The door is securely fastened.")
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL LOCKED-DOOR MASTER FLAMING-PIT)>
|
||||
|
||||
<ROOM GOOD-CELL
|
||||
(IN ROOMS)
|
||||
(DESC "Prison Cell")
|
||||
(LDESC " ")
|
||||
(OUT TO NIRVANA IF BRONZE-DOOR IS OPEN)
|
||||
(SOUTH TO NIRVANA IF BRONZE-DOOR IS OPEN)
|
||||
(ACTION NCELL-ROOM)
|
||||
(FLAGS RLANDBIT ONBIT)
|
||||
(GLOBAL GOOD-LOCKED-DOOR MASTER BRONZE-DOOR FLAMING-PIT)>
|
||||
|
||||
<ROOM NIRVANA
|
||||
(IN ROOMS)
|
||||
(DESC "Treasury of Zork")
|
||||
(LDESC
|
||||
"This is a large room, richly appointed in a style that bespeaks exquisite
|
||||
taste. To judge from its contents, it is the ultimate storehouse of the
|
||||
wealth of the Great Underground Empire.|
|
||||
|
|
||||
There are chests here containing precious jewels, mountains of
|
||||
zorkmids, rare paintings, ancient statuary, and beguiling curios.|
|
||||
|
|
||||
On one wall is an annotated map of the Empire, showing the locations of
|
||||
various troves of treasure, and of several superior scenic views.|
|
||||
|
|
||||
On a desk at the far end of the room may be found stock certificates
|
||||
representing a controlling interest in FrobozzCo International, the
|
||||
multinational conglomerate and parent company of
|
||||
the Frobozz Magic Boat Co., etc.|
|
||||
")
|
||||
(ACTION NIRVANA-F)
|
||||
(FLAGS RLANDBIT ONBIT)>
|
||||
|
||||
\
|
||||
|
||||
<OBJECT RUNES
|
||||
(IN MSTAIRS)
|
||||
(DESC "runes")
|
||||
(SYNONYM ENGRAV TEXT WALL RUNES)
|
||||
(ADJECTIVE CARVED)
|
||||
(FLAGS NDESCBIT READBIT)
|
||||
(ACTION RUNES-F)>
|
||||
|
||||
<OBJECT T-BAR
|
||||
(IN IN-MIRROR)
|
||||
(DESC "T-bar")
|
||||
(SYNONYM T-BAR BAR)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION T-BAR-F)>
|
||||
|
||||
<OBJECT BLACK-PANEL
|
||||
(IN IN-MIRROR)
|
||||
(DESC "black panel")
|
||||
(SYNONYM WALL PANEL)
|
||||
(ADJECTIVE BLACK)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION MPANELS)>
|
||||
|
||||
<OBJECT BRONZE-DOOR
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "bronze door")
|
||||
(SYNONYM DOOR)
|
||||
(ADJECTIVE BRONZE)
|
||||
(FLAGS CONTBIT DOORBIT INVISIBLE)
|
||||
(ACTION BRONZE-DOOR-F)>
|
||||
|
||||
<OBJECT CELL-DOOR
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "cell door")
|
||||
(SYNONYM DOOR)
|
||||
(ADJECTIVE WOOD WOODEN CELL)
|
||||
(FLAGS CONTBIT DOORBIT)
|
||||
(ACTION CELL-DOOR-F)>
|
||||
|
||||
<OBJECT COMPASS-ARROW
|
||||
(IN IN-MIRROR)
|
||||
(DESC "compass arrow")
|
||||
(SYNONYM ARROW)
|
||||
(ADJECTIVE COMPASS)
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT DIAL-BUTTON
|
||||
(IN PARAPET)
|
||||
(DESC "large button")
|
||||
(SYNONYM BUTTON)
|
||||
(ADJECTIVE LARGE)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION DIALBUTTON)>
|
||||
|
||||
<OBJECT GOOD-LOCKED-DOOR
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "cell door")
|
||||
(SYNONYM DOOR)
|
||||
(ADJECTIVE LOCKED WOOD WOODEN CELL)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION LOCKED-DOOR-F)>
|
||||
|
||||
<OBJECT LOCKED-DOOR
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "cell door")
|
||||
(SYNONYM DOOR)
|
||||
(ADJECTIVE LOCKED WOOD WOODEN CELL)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION LOCKED-DOOR-F)>
|
||||
|
||||
<OBJECT LONG-POLE
|
||||
(IN IN-MIRROR)
|
||||
(DESC "long pole")
|
||||
(SYNONYM POLE)
|
||||
(ADJECTIVE LONG CENTER)
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT MAHOGANY-PANEL
|
||||
(IN IN-MIRROR)
|
||||
(DESC "mahogany panel")
|
||||
(SYNONYM WALL PANEL)
|
||||
(ADJECTIVE MAHOGANY)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION MENDS)>
|
||||
|
||||
<OBJECT FLAMING-PIT
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "flaming pit")
|
||||
(SYNONYM PIT ABYSS)
|
||||
(ADJECTIVE FIERY FLAMING)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION FLAMING-PIT-F)>
|
||||
|
||||
<OBJECT PARAPET-OBJ
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "parapet")
|
||||
(SYNONYM PARAPET)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION PARAPET-OBJ-F)>
|
||||
|
||||
<OBJECT PINE-PANEL
|
||||
(IN IN-MIRROR)
|
||||
(DESC "pine panel")
|
||||
(SYNONYM PANEL WALL)
|
||||
(ADJECTIVE PINE)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION MENDS)>
|
||||
|
||||
<OBJECT BEAM
|
||||
(IN MREYE)
|
||||
(DESC "red beam of light")
|
||||
(SYNONYM BEAM LIGHT)
|
||||
(ADJECTIVE RED)
|
||||
(FLAGS NDESCBIT OPENBIT CONTBIT)
|
||||
(CAPACITY 100)
|
||||
(ACTION BEAM-FUNCTION)>
|
||||
|
||||
<OBJECT RED-BUTTON
|
||||
(IN MR-ANTE)
|
||||
(DESC "red button")
|
||||
(SYNONYM BUTTON)
|
||||
(ADJECTIVE RED)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION MRSWITCH)>
|
||||
|
||||
<OBJECT RED-PANEL
|
||||
(IN IN-MIRROR)
|
||||
(DESC "red panel")
|
||||
(SYNONYM PANEL WALL)
|
||||
(ADJECTIVE RED)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION MPANELS)>
|
||||
|
||||
<OBJECT SHORT-POLE
|
||||
(IN IN-MIRROR)
|
||||
(DESC "short pole")
|
||||
(SYNONYM POLE POST HANDGRIP GRIP)
|
||||
(ADJECTIVE SHORT SMALL HAND)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION SHORT-POLE-F)>
|
||||
|
||||
<OBJECT SUNDIAL
|
||||
(IN PARAPET)
|
||||
(DESC "sundial")
|
||||
(SYNONYM DIAL INDICATOR ARROW SUNDIAL)
|
||||
(ADJECTIVE INDICATOR SUN)
|
||||
(FLAGS NDESCBIT TURNBIT)
|
||||
(ACTION DIAL)>
|
||||
|
||||
<OBJECT YELLOW-PANEL
|
||||
(IN IN-MIRROR)
|
||||
(DESC "yellow panel")
|
||||
(SYNONYM PANEL WALL)
|
||||
(ADJECTIVE YELLOW)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION MPANELS)>
|
||||
|
||||
<OBJECT WHITE-PANEL
|
||||
(IN IN-MIRROR)
|
||||
(DESC "white panel")
|
||||
(SYNONYM PANEL WALL)
|
||||
(ADJECTIVE WHITE)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION MPANELS)>
|
||||
|
||||
<OBJECT WOODEN-BAR
|
||||
(IN IN-MIRROR)
|
||||
(DESC "wooden bar")
|
||||
(SYNONYM BAR)
|
||||
(ADJECTIVE WOOD WOODEN)
|
||||
(FLAGS NDESCBIT)>
|
||||
|
||||
<OBJECT DUNGEON-DOOR
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "wooden door")
|
||||
(SYNONYM DOOR)
|
||||
(ADJECTIVE WOOD WOODEN)
|
||||
(FLAGS NDESCBIT DOORBIT CONTBIT)
|
||||
(ACTION DUNGEON-DOOR-F)>
|
||||
|
||||
<OBJECT SECRET-DOOR
|
||||
(IN LOCAL-GLOBALS)
|
||||
(DESC "secret door")
|
||||
(SYNONYM DOOR)
|
||||
(ADJECTIVE SECRET)
|
||||
(FLAGS DOORBIT CONTBIT INVISIBLE)
|
||||
(ACTION SECRET-DOOR-F)>
|
||||
|
||||
<OBJECT OLD-MAN
|
||||
(DESC "old man")
|
||||
(SYNONYM MAN)
|
||||
(ADJECTIVE OLD)
|
||||
(FLAGS VICBIT VILLAIN)
|
||||
(ACTION OLD-MAN-F)
|
||||
(DESCFCN OLD-MAN-F)>
|
||||
|
||||
<OBJECT CP-HOLE
|
||||
(IN CP-ANTE)
|
||||
(DESC "hole")
|
||||
(SYNONYM HOLE)
|
||||
(ADJECTIVE ROUND)
|
||||
(FLAGS NDESCBIT)
|
||||
(ACTION CP-HOLE-F)>
|
380
gmain.cmp
Normal file
380
gmain.cmp
Normal file
|
@ -0,0 +1,380 @@
|
|||
|
||||
;COMPARISON OF SS:<ZORK2>GMAIN.ZIL.28 AND SS:<ZORK3.R17>MAIN.ZIL.31
|
||||
;OPTIONS ARE /S /9
|
||||
|
||||
**** FILE SS:<ZORK2>GMAIN.ZIL.28, 1-1 (0)
|
||||
"Generic MAIN file for
|
||||
The ZORK Trilogy
|
||||
started on 7/28/83 by MARC"
|
||||
<GLOBAL PLAYER <>>
|
||||
<GLOBAL P-WON <>>
|
||||
<CONSTANT M-FATAL 2>
|
||||
|
||||
<CONSTANT M-HANDLED 1>
|
||||
|
||||
<CONSTANT M-NOT-HANDLED <>>
|
||||
|
||||
<CONSTANT M-OBJECT <>>
|
||||
<CONSTANT M-BEG 1>
|
||||
|
||||
<CONSTANT M-END 6>
|
||||
|
||||
<CONSTANT M-ENTER 2>
|
||||
|
||||
<CONSTANT M-LOOK 3>
|
||||
|
||||
<CONSTANT M-FLASH 4>
|
||||
<CONSTANT M-OBJDESC 5>
|
||||
<GLOBAL DEBUG <>>
|
||||
;"GO now lives in SPECIAL.ZIL"
|
||||
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
|
||||
**** FILE SS:<ZORK3.R17>MAIN.ZIL.31, 1-1 (0)
|
||||
"MAIN3 for
|
||||
Zork III: The Dungeon Master
|
||||
Copyright 1982 Infocom, Inc. All Rights Reserved.
|
||||
"
|
||||
<GLOBAL PLAYER <>>
|
||||
<GLOBAL P-WON <>>
|
||||
<CONSTANT M-FATAL 2>
|
||||
|
||||
<CONSTANT M-HANDLED 1>
|
||||
|
||||
<CONSTANT M-NOT-HANDLED <>>
|
||||
|
||||
<CONSTANT M-BEG 1>
|
||||
|
||||
<CONSTANT M-END <>>
|
||||
|
||||
<CONSTANT M-ENTER 2>
|
||||
|
||||
<CONSTANT M-LOOK 3>
|
||||
|
||||
<CONSTANT M-FLASH 4>
|
||||
<CONSTANT M-OBJDESC 5>
|
||||
<ROUTINE GO ()
|
||||
;"put interrupts on clock chain"
|
||||
<QUEUE I-LANTERN 200>
|
||||
;"clean up junk compiler can't do"
|
||||
<SETG CURRENT-LAMP ,LAMP>
|
||||
<PUT ,CPOBJS <* 8 21> 1>
|
||||
<PUT ,CPOBJS <+ <* 8 21> 1> ,LORE-BOOK>
|
||||
<PUT ,CPOBJS <* 8 32> 1>
|
||||
<PUT ,CPOBJS <+ <* 8 32> 1> ,CP-SLOT>
|
||||
;"set up and go"
|
||||
<SETG LIT T>
|
||||
<SETG WINNER ,ADVENTURER>
|
||||
<SETG PLAYER ,WINNER>
|
||||
<SETG MLOC ,MRB>
|
||||
<SETG HERE ,ZORK2-STAIR>
|
||||
<ENABLE <QUEUE I-CLEFT <+ 70 <RANDOM 70>>>>
|
||||
<ENABLE <QUEUE I-VIEW-CHANGE 4>>
|
||||
<SETG P-IT-LOC ,HERE>
|
||||
<SETG P-IT-OBJECT <>>
|
||||
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
|
||||
<TELL
|
||||
"As in a dream, you see yourself tumbling down a great, dark staircase.
|
||||
All about you are shadowy images of struggles against fierce opponents
|
||||
and diabolical traps. These give way to another round of images: of
|
||||
imposing stone figures, a cool, clear lake, and, now, of an old, yet
|
||||
oddly youthful man. He turns toward you slowly, his long, silver hair
|
||||
dancing about him in a fresh breeze. \"You have reached the final test,
|
||||
my friend! You are proved clever and powerful, but this is not yet
|
||||
enough! Seek me when you feel yourself worthy!\" The dream dissolves
|
||||
around you as his last words echo through the void...." CR>
|
||||
<CRLF>
|
||||
<V-VERSION>
|
||||
<CRLF>)>
|
||||
<MOVE ,WINNER ,HERE>
|
||||
<MOVE ,LAMP ,HERE>
|
||||
<V-LOOK>
|
||||
<MAIN-LOOP>
|
||||
<AGAIN>>
|
||||
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
|
||||
#DECL ((CNT OCNT ICNT NUM) FIX (V) <OR 'T FIX FALSE> (OBJ) <OR FALSE OBJECT>
|
||||
(OBJ1) OBJECT (TBL) TABLE (PTBL) <OR FALSE ATOM>)
|
||||
***************
|
||||
|
||||
**** FILE SS:<ZORK2>GMAIN.ZIL.28, 2-31 (1342)
|
||||
<TELL "It's not clear what you're referring to." CR>
|
||||
<SET V <>>)>)
|
||||
(T
|
||||
<SETG P-NOT-HERE 0>
|
||||
<SETG P-MULT <>>
|
||||
<COND (<G? .NUM 1> <SETG P-MULT T>)>
|
||||
<SET TMP <>>
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .NUM>
|
||||
<COND (<G? ,P-NOT-HERE 0>
|
||||
<TELL "The ">
|
||||
<COND (<NOT <EQUAL? ,P-NOT-HERE .NUM>>
|
||||
<TELL "other ">)>
|
||||
<TELL "object">
|
||||
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
|
||||
<TELL "s">)>
|
||||
<TELL " that you mentioned ">
|
||||
<COND (<NOT <EQUAL? ,P-NOT-HERE 1>>
|
||||
<TELL "are">)
|
||||
(T <TELL "is">)>
|
||||
<TELL "n't here." CR>)
|
||||
(<NOT .TMP>
|
||||
<TELL
|
||||
"There's nothing here to take." CR>)>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
|
||||
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
|
||||
<SETG PRSO <COND (.PTBL .OBJ1) (T .OBJ)>>
|
||||
<SETG PRSI <COND (.PTBL .OBJ) (T .OBJ1)>>
|
||||
<COND (<OR <G? .NUM 1>
|
||||
<EQUAL? <GET <GET ,P-ITBL ,P-NC1>
|
||||
0>
|
||||
,W?ALL>>
|
||||
<SET V <LOC ,WINNER>>
|
||||
<COND (<EQUAL? .OBJ1
|
||||
,NOT-HERE-OBJECT>
|
||||
<SETG P-NOT-HERE
|
||||
<+ ,P-NOT-HERE 1>>
|
||||
<AGAIN>)
|
||||
(<AND <VERB? TAKE>
|
||||
,PRSI
|
||||
<EQUAL? <GET <GET ,P-ITBL
|
||||
,P-NC1>
|
||||
0>
|
||||
,W?ALL>
|
||||
<NOT <IN? ,PRSO ,PRSI>>>
|
||||
<AGAIN>)
|
||||
(<AND <EQUAL? ,P-GETFLAGS
|
||||
,P-ALL>
|
||||
<VERB? TAKE>
|
||||
<OR <AND <NOT <EQUAL?
|
||||
<LOC .OBJ1>
|
||||
,WINNER
|
||||
.V>>
|
||||
<NOT <FSET?
|
||||
<LOC .OBJ1>
|
||||
,SURFACEBIT>>>
|
||||
<NOT <OR <FSET? .OBJ1
|
||||
,TAKEBIT>
|
||||
<FSET? .OBJ1
|
||||
,TRYTAKEBIT>>>>>
|
||||
<AGAIN>)
|
||||
(T
|
||||
<COND (<EQUAL? .OBJ1 ,IT>
|
||||
<PRINTD ,P-IT-OBJECT>)
|
||||
(T <PRINTD .OBJ1>)>
|
||||
<TELL ": ">)>)>
|
||||
<SET TMP T>
|
||||
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
|
||||
<COND (<==? .V ,M-FATAL> <RETURN>)>)>>)>
|
||||
<COND (<NOT <==? .V ,M-FATAL>>
|
||||
;<COND (<==? <LOC ,WINNER> ,PRSO>
|
||||
<SETG PRSO <>>)>
|
||||
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
|
||||
<COND (<VERB? AGAIN WALK SAVE RESTORE SCORE VERSION ;WAIT> T)
|
||||
(T
|
||||
<SETG L-PRSA ,PRSA>
|
||||
<SETG L-PRSO ,PRSO>
|
||||
<SETG L-PRSI ,PRSI>)>
|
||||
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
|
||||
(T
|
||||
<SETG P-CONT <>>)>
|
||||
<COND (,P-WON
|
||||
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION
|
||||
QUIT RESTART SCORE SCRIPT UNSCRIPT RESTORE> T)
|
||||
(T <SET V <CLOCKER>>)>)>>>
|
||||
|
||||
<GLOBAL L-PRSA <>>
|
||||
|
||||
<GLOBAL L-PRSO <>>
|
||||
|
||||
<GLOBAL L-PRSI <>>
|
||||
<GLOBAL P-MULT <>>
|
||||
<GLOBAL P-NOT-HERE 0>
|
||||
%<COND (<GASSIGNED? PREDGEN>
|
||||
'<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
|
||||
<COND (,DEBUG
|
||||
<TELL "[Perform: ">
|
||||
%<COND (<GASSIGNED? PREDGEN> '<TELL N .A>)
|
||||
(T '<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>)>
|
||||
<COND (<AND .O <NOT <==? .A ,V?WALK>>>
|
||||
<TELL "/" D .O>)>
|
||||
<COND (.I <TELL "/" D .I>)>
|
||||
<TELL "]" CR>)>
|
||||
**** FILE SS:<ZORK3.R17>MAIN.ZIL.31, 2-33 (2759)
|
||||
<TELL "There isn't anything to ">
|
||||
<SET TMP <GET ,P-ITBL ,P-VERBN>>
|
||||
<COND (,P-OFLAG
|
||||
<PRINTB <GET .TMP 0>>)
|
||||
(T
|
||||
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>)>
|
||||
<TELL "!" CR>
|
||||
<SET V <>>)>)
|
||||
(T
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .NUM> <RETURN>)
|
||||
(T
|
||||
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
|
||||
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
|
||||
<COND (<G? .NUM 1>
|
||||
<PRINTD .OBJ1>
|
||||
<TELL ": ">)>
|
||||
<SETG PRSO <COND (.PTBL .OBJ1) (T .OBJ)>>
|
||||
<SETG PRSI <COND (.PTBL .OBJ) (T .OBJ1)>>
|
||||
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
|
||||
<COND (<==? .V ,M-FATAL> <RETURN>)>)>>)>
|
||||
<COND (<VERB? AGAIN WALK SAVE RESTORE SCORE VERSION WAIT> T)
|
||||
(T
|
||||
<SETG L-PRSA ,PRSA>
|
||||
<SETG L-PRSO ,PRSO>
|
||||
<SETG L-PRSI ,PRSI>)>
|
||||
<SETG MOVES <+ ,MOVES 1>>
|
||||
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
|
||||
(T
|
||||
<SETG P-CONT <>>)>
|
||||
<COND (,P-WON
|
||||
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION> T)
|
||||
(T <SET V <CLOCKER>>)>)>>>
|
||||
|
||||
<GLOBAL L-PRSA <>>
|
||||
|
||||
<GLOBAL L-PRSO <>>
|
||||
|
||||
<GLOBAL L-PRSI <>>
|
||||
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
|
||||
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
|
||||
***************
|
||||
|
||||
**** FILE SS:<ZORK2>GMAIN.ZIL.28, 3-25 (4793)
|
||||
<COND (<AND ,PRSO <NOT <EQUAL? ,PRSI ,IT>> <NOT <VERB? WALK>>>
|
||||
<SETG P-IT-OBJECT ,PRSO>
|
||||
<SETG P-IT-LOC ,HERE>)>
|
||||
<SETG PRSI .I>
|
||||
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
|
||||
<SET V <NOT-HERE-OBJECT-F>>> .V)
|
||||
(T
|
||||
<SET O ,PRSO>
|
||||
<SET I ,PRSI>
|
||||
<COND
|
||||
(<SET V <APPLY <GETP ,WINNER ,P?ACTION>>> .V)
|
||||
(<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-BEG>> .V)
|
||||
(<SET V <APPLY <GET ,PREACTIONS .A>>> .V)
|
||||
(<AND .I <SET V <APPLY <GETP .I ,P?ACTION>>>> .V)
|
||||
(<AND .O
|
||||
<NOT <==? .A ,V?WALK>>
|
||||
<LOC .O>
|
||||
<SET V <APPLY <GETP <LOC .O> ,P?CONTFCN>>>>
|
||||
.V)
|
||||
(<AND .O
|
||||
<NOT <==? .A ,V?WALK>>
|
||||
<SET V <APPLY <GETP .O ,P?ACTION>>>>
|
||||
.V)
|
||||
(<SET V <APPLY <GET ,ACTIONS .A>>> .V)>)>
|
||||
<SETG PRSA .OA>
|
||||
<SETG PRSO .OO>
|
||||
<SETG PRSI .OI>
|
||||
.V>)
|
||||
(T
|
||||
|
||||
'<PROG ()
|
||||
<SETG DEBUG <>>
|
||||
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
|
||||
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
|
||||
<COND (,DEBUG
|
||||
<TELL "** PERFORM: PRSA = ">
|
||||
<PRINC <NTH ,ACTIONS <+ <* .A 2> 1>>>
|
||||
<COND (<AND .O <NOT <==? .A ,V?WALK>>>
|
||||
<TELL " | PRSO = " D .O>)>
|
||||
<COND (.I <TELL " | PRSI = " D .I>)>)>
|
||||
<SET OA ,PRSA>
|
||||
<SET OO ,PRSO>
|
||||
<SET OI ,PRSI>
|
||||
<COND (<AND <EQUAL? ,IT .I .O>
|
||||
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
|
||||
<TELL "I don't see what you are referring to." CR>
|
||||
<RFATAL>)>
|
||||
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
|
||||
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)>
|
||||
<SETG PRSA .A>
|
||||
<SETG PRSO .O>
|
||||
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
|
||||
<SETG P-IT-OBJECT ,PRSO>
|
||||
<SETG P-IT-LOC ,HERE>)>
|
||||
<SETG PRSI .I>
|
||||
<COND (<AND <EQUAL? ,NOT-HERE-OBJECT ,PRSO ,PRSI>
|
||||
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>> .V)
|
||||
(T
|
||||
<SET O ,PRSO>
|
||||
<SET I ,PRSI>
|
||||
<COND (<SET V <DD-APPLY "Actor" ,WINNER
|
||||
<GETP ,WINNER ,P?ACTION>>> .V)
|
||||
(<SET V <D-APPLY "Room (M-BEG)"
|
||||
<GETP <LOC ,WINNER> ,P?ACTION>
|
||||
,M-BEG>> .V)
|
||||
(<SET V <D-APPLY "Preaction"
|
||||
<GET ,PREACTIONS .A>>> .V)
|
||||
(<AND .I <SET V <D-APPLY "PRSI"
|
||||
<GETP .I ,P?ACTION>>>> .V)
|
||||
(<AND .O
|
||||
<NOT <==? .A ,V?WALK>>
|
||||
<LOC .O>
|
||||
<GETP <LOC .O> ,P?CONTFCN>
|
||||
<SET V <DD-APPLY "Container" <LOC .O>
|
||||
<GETP <LOC .O> ,P?CONTFCN>>>>
|
||||
.V)
|
||||
(<AND .O
|
||||
<NOT <==? .A ,V?WALK>>
|
||||
<SET V <D-APPLY "PRSO"
|
||||
<GETP .O ,P?ACTION>>>>
|
||||
.V)
|
||||
(<SET V <D-APPLY <>
|
||||
<GET ,ACTIONS .A>>> .V)>)>
|
||||
<SETG PRSA .OA>
|
||||
<SETG PRSO .OO>
|
||||
<SETG PRSI .OI>
|
||||
.V>
|
||||
<DEFINE D-APPLY (STR FCN "OPTIONAL" FOO "AUX" RES)
|
||||
<COND (<NOT .FCN> <>)
|
||||
(T
|
||||
<COND (,DEBUG
|
||||
<COND (<NOT .STR>
|
||||
<TELL CR " Default ->" CR>)
|
||||
(T <TELL CR " " .STR " -> ">)>)>
|
||||
<SET RES
|
||||
<COND (<ASSIGNED? FOO>
|
||||
<APPLY .FCN .FOO>)
|
||||
(T <APPLY .FCN>)>>
|
||||
<COND (<AND ,DEBUG .STR>
|
||||
<COND (<==? .RES 2>
|
||||
<TELL "Fatal" CR>)
|
||||
(<NOT .RES>
|
||||
<TELL "Not handled">)
|
||||
(T <TELL "Handled" CR>)>)>
|
||||
.RES)>>
|
||||
<ROUTINE DD-APPLY (STR OBJ FCN "OPTIONAL" (FOO <>))
|
||||
<COND (,DEBUG <TELL "[" D .OBJ "=]">)>
|
||||
<D-APPLY .STR .FCN .FOO>>
|
||||
>)>
|
||||
**** FILE SS:<ZORK3.R17>MAIN.ZIL.31, 3-15 (4360)
|
||||
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
|
||||
<SETG P-IT-OBJECT ,PRSO>
|
||||
<SETG P-IT-LOC ,HERE>)>
|
||||
<SETG PRSI .I>
|
||||
<COND (<SET V <APPLY <GETP ,WINNER ,P?ACTION>>> .V)
|
||||
(<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-BEG>> .V)
|
||||
(<SET V <APPLY <GET ,PREACTIONS .A>>> .V)
|
||||
(<AND .I <SET V <APPLY <GETP .I ,P?ACTION>>>> .V)
|
||||
(<AND .O
|
||||
<NOT <==? .A ,V?WALK>>
|
||||
<SET V <APPLY <GETP .O ,P?ACTION>>>>
|
||||
.V)
|
||||
(<SET V <APPLY <GET ,ACTIONS .A>>> .V)>
|
||||
<COND (<NOT <==? .V ,M-FATAL>>
|
||||
<COND (<==? <LOC ,WINNER> ,PRSO>
|
||||
<SETG PRSO <>>)>
|
||||
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
|
||||
<SETG PRSA .OA>
|
||||
<SETG PRSO .OO>
|
||||
<SETG PRSI .OI>
|
||||
.V>
|
||||
|
||||
***************
|
19
macros.zap
Normal file
19
macros.zap
Normal file
|
@ -0,0 +1,19 @@
|
|||
|
||||
|
||||
.FUNCT ZPROB,BASE
|
||||
ZERO? LUCKY /?ELS5
|
||||
RANDOM 100
|
||||
GRTR? BASE,STACK /TRUE
|
||||
RFALSE
|
||||
?ELS5: RANDOM 300
|
||||
GRTR? BASE,STACK /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT PICK-ONE,FROB
|
||||
GET FROB,0
|
||||
RANDOM STACK
|
||||
GET FROB,STACK
|
||||
RSTACK
|
||||
|
||||
.ENDI
|
94
macros.zil
Normal file
94
macros.zil
Normal file
|
@ -0,0 +1,94 @@
|
|||
<ZSTR-OFF>
|
||||
|
||||
<SETG C-ENABLED? 0>
|
||||
<SETG C-ENABLED 1>
|
||||
<SETG C-DISABLED 0>
|
||||
|
||||
<DEFMAC TELL ("ARGS" A)
|
||||
<FORM PROG ()
|
||||
!<MAPF ,LIST
|
||||
<FUNCTION ("AUX" E P O)
|
||||
<COND (<EMPTY? .A> <MAPSTOP>)
|
||||
(<SET E <NTH .A 1>>
|
||||
<SET A <REST .A>>)>
|
||||
<COND (<TYPE? .E ATOM>
|
||||
<COND (<OR <=? <SET P <SPNAME .E>>
|
||||
"CRLF">
|
||||
<=? .P "CR">>
|
||||
<MAPRET '<CRLF>>)
|
||||
(<EMPTY? .A>
|
||||
<ERROR INDICATOR-AT-END? .E>)
|
||||
(ELSE
|
||||
<SET O <NTH .A 1>>
|
||||
<SET A <REST .A>>
|
||||
<COND (<OR <=? <SET P <SPNAME .E>>
|
||||
"DESC">
|
||||
<=? .P "D">
|
||||
<=? .P "OBJ">
|
||||
<=? .P "O">>
|
||||
<MAPRET <FORM PRINTD .O>>)
|
||||
(<OR <=? .P "NUM">
|
||||
<=? .P "N">>
|
||||
<MAPRET <FORM PRINTN .O>>)
|
||||
(<OR <=? .P "CHAR">
|
||||
<=? .P "CHR">
|
||||
<=? .P "C">>
|
||||
<MAPRET <FORM PRINTC .O>>)
|
||||
(ELSE
|
||||
<MAPRET
|
||||
<FORM PRINT
|
||||
<FORM GETP .O .E>>>)>)>)
|
||||
(<TYPE? .E STRING>
|
||||
<MAPRET <FORM PRINTI .E>>)
|
||||
(<TYPE? .E FORM LVAL GVAL>
|
||||
<MAPRET <FORM PRINT .E>>)
|
||||
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
|
||||
|
||||
<DEFMAC VERB? ("TUPLE" ATMS "AUX" (O ()) (L ()))
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS>
|
||||
<RETURN!- <COND (<LENGTH? .O 1> <NTH .O 1>)
|
||||
(ELSE <FORM OR !.O>)>>)>
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS> <RETURN!->)>
|
||||
<SET ATM <NTH .ATMS 1>>
|
||||
<SET L
|
||||
(<FORM GVAL <PARSE <STRING "V?" <SPNAME .ATM>>>>
|
||||
!.L)>
|
||||
<SET ATMS <REST .ATMS>>
|
||||
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
|
||||
<SET O (<FORM EQUAL? ',PRSA !.L> !.O)>
|
||||
<SET L ()>>>
|
||||
|
||||
<DEFMAC RFATAL ()
|
||||
'<PROG () <PUSH 2> <RSTACK>>>
|
||||
|
||||
<DEFMAC PROB ('BASE? "OPTIONAL" 'LOSER?)
|
||||
<COND (<ASSIGNED? LOSER?> <FORM ZPROB .BASE?>)
|
||||
(ELSE <FORM G? .BASE? '<RANDOM 100>>)>>
|
||||
|
||||
<ROUTINE ZPROB
|
||||
(BASE)
|
||||
<COND (,LUCKY <G? .BASE <RANDOM 100>>)
|
||||
(ELSE <G? .BASE <RANDOM 300>>)>>
|
||||
|
||||
<ROUTINE PICK-ONE (FROB)
|
||||
<GET .FROB <RANDOM <GET .FROB 0>>>>
|
||||
|
||||
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
|
||||
|
||||
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
|
||||
|
||||
<DEFMAC FLAMING? ('OBJ)
|
||||
<FORM AND <FORM FSET? .OBJ ',FLAMEBIT>
|
||||
<FORM FSET? .OBJ ',ONBIT>>>
|
||||
|
||||
<DEFMAC OPENABLE? ('OBJ)
|
||||
<FORM OR <FORM FSET? .OBJ ',DOORBIT>
|
||||
<FORM FSET? .OBJ ',CONTBIT>>>
|
||||
|
||||
<DEFMAC ABS ('NUM)
|
||||
<FORM COND (<FORM L? .NUM 0> <FORM - 0 .NUM>)
|
||||
(T .NUM)>>
|
||||
|
||||
<ZSTR-ON>
|
204
main.zap
Normal file
204
main.zap
Normal file
|
@ -0,0 +1,204 @@
|
|||
|
||||
|
||||
.FUNCT GO
|
||||
START::
|
||||
|
||||
?FCN: CALL QUEUE,I-LANTERN,200
|
||||
SET 'CURRENT-LAMP,LAMP
|
||||
MUL 8,21
|
||||
PUT CPOBJS,STACK,1
|
||||
MUL 8,21
|
||||
ADD STACK,1
|
||||
PUT CPOBJS,STACK,LORE-BOOK
|
||||
MUL 8,32
|
||||
PUT CPOBJS,STACK,1
|
||||
MUL 8,32
|
||||
ADD STACK,1
|
||||
PUT CPOBJS,STACK,CP-SLOT
|
||||
SET 'LIT,TRUE-VALUE
|
||||
SET 'WINNER,ADVENTURER
|
||||
SET 'PLAYER,WINNER
|
||||
SET 'MLOC,MRB
|
||||
SET 'HERE,ZORK2-STAIR
|
||||
RANDOM 70
|
||||
ADD 70,STACK
|
||||
CALL QUEUE,I-CLEFT,STACK
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-VIEW-CHANGE,4
|
||||
PUT STACK,0,1
|
||||
SET 'P-IT-LOC,HERE
|
||||
SET 'P-IT-OBJECT,FALSE-VALUE
|
||||
FSET? HERE,TOUCHBIT /?CND1
|
||||
PRINTI "As in a dream, you see yourself tumbling down a great, dark staircase. All about you are shadowy images of struggles against fierce opponents and diabolical traps. These give way to another round of images: of imposing stone figures, a cool, clear lake, and, now, of an old, yet oddly youthful man. He turns toward you slowly, his long, silver hair dancing about him in a fresh breeze. ""You have reached the final test, my friend! You are proved clever and powerful, but this is not yet enough! Seek me when you feel yourself worthy!"" The dream dissolves around you as his last words echo through the void...."
|
||||
CRLF
|
||||
CRLF
|
||||
CALL V-VERSION
|
||||
CRLF
|
||||
?CND1: MOVE WINNER,HERE
|
||||
MOVE LAMP,HERE
|
||||
CALL V-LOOK
|
||||
CALL MAIN-LOOP
|
||||
JUMP ?FCN
|
||||
|
||||
|
||||
.FUNCT MAIN-LOOP,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,?TMP1
|
||||
?PRG1: SET 'CNT,0
|
||||
SET 'OBJ,FALSE-VALUE
|
||||
SET 'PTBL,TRUE-VALUE
|
||||
CALL PARSER >P-WON
|
||||
ZERO? P-WON /?ELS5
|
||||
GET P-PRSI,P-MATCHLEN >ICNT
|
||||
GET P-PRSO,P-MATCHLEN >OCNT
|
||||
ZERO? OCNT \?ELS10
|
||||
PUSH OCNT
|
||||
JUMP ?CND6
|
||||
?ELS10: GRTR? OCNT,1 \?ELS12
|
||||
SET 'TBL,P-PRSO
|
||||
ZERO? ICNT \?ELS15
|
||||
SET 'OBJ,FALSE-VALUE
|
||||
JUMP ?CND13
|
||||
?ELS15: GET P-PRSI,1 >OBJ
|
||||
?CND13: PUSH OCNT
|
||||
JUMP ?CND6
|
||||
?ELS12: GRTR? ICNT,1 \?ELS19
|
||||
SET 'PTBL,FALSE-VALUE
|
||||
SET 'TBL,P-PRSI
|
||||
GET P-PRSO,1 >OBJ
|
||||
PUSH ICNT
|
||||
JUMP ?CND6
|
||||
?ELS19: PUSH 1
|
||||
?CND6: SET 'NUM,STACK
|
||||
ZERO? OBJ \?CND22
|
||||
EQUAL? ICNT,1 \?CND22
|
||||
GET P-PRSI,1 >OBJ
|
||||
?CND22: EQUAL? PRSA,V?WALK \?ELS29
|
||||
CALL PERFORM,PRSA,PRSO >V
|
||||
JUMP ?CND27
|
||||
?ELS29: ZERO? NUM \?ELS31
|
||||
GETB P-SYNTAX,P-SBITS
|
||||
BAND STACK,P-SONUMS
|
||||
ZERO? STACK \?ELS34
|
||||
CALL PERFORM,PRSA >V
|
||||
SET 'PRSO,FALSE-VALUE
|
||||
JUMP ?CND27
|
||||
?ELS34: ZERO? LIT \?ELS36
|
||||
PRINTI "It's too dark to see."
|
||||
CRLF
|
||||
JUMP ?CND27
|
||||
?ELS36: PRINTI "There isn't anything to "
|
||||
GET P-ITBL,P-VERBN >TMP
|
||||
ZERO? P-OFLAG /?ELS45
|
||||
GET TMP,0
|
||||
PRINTB STACK
|
||||
JUMP ?CND43
|
||||
?ELS45: GETB TMP,2 >?TMP1
|
||||
GETB TMP,3
|
||||
CALL WORD-PRINT,?TMP1,STACK
|
||||
?CND43: PRINTI "!"
|
||||
CRLF
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND27
|
||||
?ELS31:
|
||||
?PRG53: IGRTR? 'CNT,NUM \?ELS57
|
||||
JUMP ?CND27
|
||||
?ELS57: ZERO? PTBL /?ELS62
|
||||
GET P-PRSO,CNT >OBJ1
|
||||
JUMP ?CND60
|
||||
?ELS62: GET P-PRSI,CNT >OBJ1
|
||||
?CND60: GRTR? NUM,1 \?CND66
|
||||
PRINTD OBJ1
|
||||
PRINTI ": "
|
||||
?CND66: ZERO? PTBL /?ELS75
|
||||
PUSH OBJ1
|
||||
JUMP ?CND71
|
||||
?ELS75: PUSH OBJ
|
||||
?CND71: SET 'PRSO,STACK
|
||||
ZERO? PTBL /?ELS83
|
||||
PUSH OBJ
|
||||
JUMP ?CND79
|
||||
?ELS83: PUSH OBJ1
|
||||
?CND79: SET 'PRSI,STACK
|
||||
CALL PERFORM,PRSA,PRSO,PRSI >V
|
||||
EQUAL? V,M-FATAL \?PRG53
|
||||
?CND27: EQUAL? PRSA,V?WAIT /?CND90
|
||||
EQUAL? PRSA,V?VERSION,V?SCORE,V?RESTORE /?CND90
|
||||
EQUAL? PRSA,V?SAVE,V?WALK,V?AGAIN \?ELS92
|
||||
JUMP ?CND90
|
||||
?ELS92: SET 'L-PRSA,PRSA
|
||||
SET 'L-PRSO,PRSO
|
||||
SET 'L-PRSI,PRSI
|
||||
?CND90: EQUAL? V,M-FATAL \?CND3
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
JUMP ?CND3
|
||||
?ELS5: SET 'P-CONT,FALSE-VALUE
|
||||
?CND3: ZERO? P-WON /?PRG1
|
||||
EQUAL? PRSA,V?RESTORE,V?UNSCRIPT,V?SCRIPT /?PRG1
|
||||
EQUAL? PRSA,V?SCORE,V?RESTART,V?QUIT /?PRG1
|
||||
EQUAL? PRSA,V?VERSION,V?SAVE,V?VERBOSE /?PRG1
|
||||
EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?TELL \?ELS108
|
||||
JUMP ?PRG1
|
||||
?ELS108: INC 'MOVES
|
||||
CALL CLOCKER >V
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
|
||||
SET 'OA,PRSA
|
||||
SET 'OO,PRSO
|
||||
SET 'OI,PRSI
|
||||
EQUAL? IT,I,O \?CND1
|
||||
EQUAL? P-IT-LOC,HERE /?CND1
|
||||
PRINTI "I don't see what you are referring to."
|
||||
CRLF
|
||||
RETURN 2
|
||||
?CND1: EQUAL? O,IT \?CND10
|
||||
SET 'O,P-IT-OBJECT
|
||||
?CND10: EQUAL? I,IT \?CND13
|
||||
SET 'I,P-IT-OBJECT
|
||||
?CND13: SET 'PRSA,A
|
||||
SET 'PRSO,O
|
||||
ZERO? PRSO /?CND16
|
||||
EQUAL? PRSA,V?WALK /?CND16
|
||||
SET 'P-IT-OBJECT,PRSO
|
||||
SET 'P-IT-LOC,HERE
|
||||
?CND16: SET 'PRSI,I
|
||||
GETP WINNER,P?ACTION
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS23
|
||||
JUMP ?CND21
|
||||
?ELS23: LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL STACK,M-BEG >V
|
||||
ZERO? V /?ELS25
|
||||
JUMP ?CND21
|
||||
?ELS25: GET PREACTIONS,A
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS27
|
||||
JUMP ?CND21
|
||||
?ELS27: ZERO? I /?ELS29
|
||||
GETP I,P?ACTION
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS29
|
||||
JUMP ?CND21
|
||||
?ELS29: ZERO? O /?ELS33
|
||||
EQUAL? A,V?WALK /?ELS33
|
||||
GETP O,P?ACTION
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS33
|
||||
JUMP ?CND21
|
||||
?ELS33: GET ACTIONS,A
|
||||
CALL STACK >V
|
||||
ZERO? V /?CND21
|
||||
?CND21: EQUAL? V,M-FATAL /?CND38
|
||||
LOC WINNER
|
||||
EQUAL? STACK,PRSO \?CND41
|
||||
SET 'PRSO,FALSE-VALUE
|
||||
?CND41: LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL STACK,M-END >V
|
||||
?CND38: SET 'PRSA,OA
|
||||
SET 'PRSO,OO
|
||||
SET 'PRSI,OI
|
||||
RETURN V
|
||||
|
||||
.ENDI
|
175
main.zil
Normal file
175
main.zil
Normal file
|
@ -0,0 +1,175 @@
|
|||
"MAIN3 for
|
||||
Zork III: The Dungeon Master
|
||||
Copyright 1982 Infocom, Inc. All Rights Reserved.
|
||||
"
|
||||
|
||||
<GLOBAL PLAYER <>>
|
||||
|
||||
<GLOBAL P-WON <>>
|
||||
|
||||
<CONSTANT M-FATAL 2>
|
||||
|
||||
<CONSTANT M-HANDLED 1>
|
||||
|
||||
<CONSTANT M-NOT-HANDLED <>>
|
||||
|
||||
<CONSTANT M-BEG 1>
|
||||
|
||||
<CONSTANT M-END <>>
|
||||
|
||||
<CONSTANT M-ENTER 2>
|
||||
|
||||
<CONSTANT M-LOOK 3>
|
||||
|
||||
<CONSTANT M-FLASH 4>
|
||||
|
||||
<CONSTANT M-OBJDESC 5>
|
||||
|
||||
<ROUTINE GO ()
|
||||
;"put interrupts on clock chain"
|
||||
<QUEUE I-LANTERN 200>
|
||||
;"clean up junk compiler can't do"
|
||||
<SETG CURRENT-LAMP ,LAMP>
|
||||
<PUT ,CPOBJS <* 8 21> 1>
|
||||
<PUT ,CPOBJS <+ <* 8 21> 1> ,LORE-BOOK>
|
||||
<PUT ,CPOBJS <* 8 32> 1>
|
||||
<PUT ,CPOBJS <+ <* 8 32> 1> ,CP-SLOT>
|
||||
;"set up and go"
|
||||
<SETG LIT T>
|
||||
<SETG WINNER ,ADVENTURER>
|
||||
<SETG PLAYER ,WINNER>
|
||||
<SETG MLOC ,MRB>
|
||||
<SETG HERE ,ZORK2-STAIR>
|
||||
<ENABLE <QUEUE I-CLEFT <+ 70 <RANDOM 70>>>>
|
||||
<ENABLE <QUEUE I-VIEW-CHANGE 4>>
|
||||
<SETG P-IT-LOC ,HERE>
|
||||
<SETG P-IT-OBJECT <>>
|
||||
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
|
||||
<TELL
|
||||
"As in a dream, you see yourself tumbling down a great, dark staircase.
|
||||
All about you are shadowy images of struggles against fierce opponents
|
||||
and diabolical traps. These give way to another round of images: of
|
||||
imposing stone figures, a cool, clear lake, and, now, of an old, yet
|
||||
oddly youthful man. He turns toward you slowly, his long, silver hair
|
||||
dancing about him in a fresh breeze. \"You have reached the final test,
|
||||
my friend! You are proved clever and powerful, but this is not yet
|
||||
enough! Seek me when you feel yourself worthy!\" The dream dissolves
|
||||
around you as his last words echo through the void...." CR>
|
||||
<CRLF>
|
||||
<V-VERSION>
|
||||
<CRLF>)>
|
||||
<MOVE ,WINNER ,HERE>
|
||||
<MOVE ,LAMP ,HERE>
|
||||
<V-LOOK>
|
||||
<MAIN-LOOP>
|
||||
<AGAIN>>
|
||||
|
||||
|
||||
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP)
|
||||
#DECL ((CNT OCNT ICNT NUM) FIX (V) <OR 'T FIX FALSE> (OBJ) <OR FALSE OBJECT>
|
||||
(OBJ1) OBJECT (TBL) TABLE (PTBL) <OR FALSE ATOM>)
|
||||
<REPEAT ()
|
||||
<SET CNT 0>
|
||||
<SET OBJ <>>
|
||||
<SET PTBL T>
|
||||
<COND (<SETG P-WON <PARSER>>
|
||||
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
|
||||
<SET NUM
|
||||
<COND (<0? <SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>> .OCNT)
|
||||
(<G? .OCNT 1>
|
||||
<SET TBL ,P-PRSO>
|
||||
<COND (<0? .ICNT> <SET OBJ <>>)
|
||||
(T <SET OBJ <GET ,P-PRSI 1>>)>
|
||||
.OCNT)
|
||||
(<G? .ICNT 1>
|
||||
<SET PTBL <>>
|
||||
<SET TBL ,P-PRSI>
|
||||
<SET OBJ <GET ,P-PRSO 1>>
|
||||
.ICNT)
|
||||
(T 1)>>
|
||||
<COND (<AND <NOT .OBJ> <1? .ICNT>> <SET OBJ <GET ,P-PRSI 1>>)>
|
||||
<COND (<==? ,PRSA ,V?WALK> <SET V <PERFORM ,PRSA ,PRSO>>)
|
||||
(<0? .NUM>
|
||||
<COND (<0? <BAND <GETB ,P-SYNTAX ,P-SBITS> ,P-SONUMS>>
|
||||
<SET V <PERFORM ,PRSA>>
|
||||
<SETG PRSO <>>)
|
||||
(<NOT ,LIT>
|
||||
<TELL "It's too dark to see." CR>)
|
||||
(T
|
||||
<TELL "There isn't anything to ">
|
||||
<SET TMP <GET ,P-ITBL ,P-VERBN>>
|
||||
<COND (,P-OFLAG
|
||||
<PRINTB <GET .TMP 0>>)
|
||||
(T
|
||||
<WORD-PRINT <GETB .TMP 2> <GETB .TMP 3>>)>
|
||||
<TELL "!" CR>
|
||||
<SET V <>>)>)
|
||||
(T
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .NUM> <RETURN>)
|
||||
(T
|
||||
<COND (.PTBL <SET OBJ1 <GET ,P-PRSO .CNT>>)
|
||||
(T <SET OBJ1 <GET ,P-PRSI .CNT>>)>
|
||||
<COND (<G? .NUM 1>
|
||||
<PRINTD .OBJ1>
|
||||
<TELL ": ">)>
|
||||
<SETG PRSO <COND (.PTBL .OBJ1) (T .OBJ)>>
|
||||
<SETG PRSI <COND (.PTBL .OBJ) (T .OBJ1)>>
|
||||
<SET V <PERFORM ,PRSA ,PRSO ,PRSI>>
|
||||
<COND (<==? .V ,M-FATAL> <RETURN>)>)>>)>
|
||||
<COND (<VERB? AGAIN WALK SAVE RESTORE SCORE VERSION WAIT> T)
|
||||
(T
|
||||
<SETG L-PRSA ,PRSA>
|
||||
<SETG L-PRSO ,PRSO>
|
||||
<SETG L-PRSI ,PRSI>)>
|
||||
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
|
||||
(T
|
||||
<SETG P-CONT <>>)>
|
||||
<COND (,P-WON
|
||||
<COND (<VERB? TELL BRIEF SUPER-BRIEF VERBOSE SAVE VERSION
|
||||
QUIT RESTART SCORE SCRIPT UNSCRIPT RESTORE> T)
|
||||
(T
|
||||
<SETG MOVES <+ ,MOVES 1>>
|
||||
<SET V <CLOCKER>>)>)>>>
|
||||
|
||||
<GLOBAL L-PRSA <>>
|
||||
|
||||
<GLOBAL L-PRSO <>>
|
||||
|
||||
<GLOBAL L-PRSI <>>
|
||||
|
||||
<ROUTINE PERFORM (A "OPTIONAL" (O <>) (I <>) "AUX" V OA OO OI)
|
||||
#DECL ((A) FIX (O) <OR FALSE OBJECT FIX> (I) <OR FALSE OBJECT> (V) ANY)
|
||||
<SET OA ,PRSA>
|
||||
<SET OO ,PRSO>
|
||||
<SET OI ,PRSI>
|
||||
<COND (<AND <EQUAL? ,IT .I .O>
|
||||
<NOT <EQUAL? ,P-IT-LOC ,HERE>>>
|
||||
<TELL "I don't see what you are referring to." CR>
|
||||
<RFATAL>)>
|
||||
<COND (<==? .O ,IT> <SET O ,P-IT-OBJECT>)>
|
||||
<COND (<==? .I ,IT> <SET I ,P-IT-OBJECT>)>
|
||||
<SETG PRSA .A>
|
||||
<SETG PRSO .O>
|
||||
<COND (<AND ,PRSO <NOT <VERB? WALK>>>
|
||||
<SETG P-IT-OBJECT ,PRSO>
|
||||
<SETG P-IT-LOC ,HERE>)>
|
||||
<SETG PRSI .I>
|
||||
<COND (<SET V <APPLY <GETP ,WINNER ,P?ACTION>>> .V)
|
||||
(<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-BEG>> .V)
|
||||
(<SET V <APPLY <GET ,PREACTIONS .A>>> .V)
|
||||
(<AND .I <SET V <APPLY <GETP .I ,P?ACTION>>>> .V)
|
||||
(<AND .O
|
||||
<NOT <==? .A ,V?WALK>>
|
||||
<SET V <APPLY <GETP .O ,P?ACTION>>>>
|
||||
.V)
|
||||
(<SET V <APPLY <GET ,ACTIONS .A>>> .V)>
|
||||
<COND (<NOT <==? .V ,M-FATAL>>
|
||||
<COND (<==? <LOC ,WINNER> ,PRSO>
|
||||
<SETG PRSO <>>)>
|
||||
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
|
||||
<SETG PRSA .OA>
|
||||
<SETG PRSO .OO>
|
||||
<SETG PRSI .OI>
|
||||
.V>
|
||||
|
1220
parser.zap
Normal file
1220
parser.zap
Normal file
File diff suppressed because it is too large
Load diff
1135
parser.zil
Normal file
1135
parser.zil
Normal file
File diff suppressed because it is too large
Load diff
1219
shadow.zap
Normal file
1219
shadow.zap
Normal file
File diff suppressed because it is too large
Load diff
2236
shadow.zil
Normal file
2236
shadow.zil
Normal file
File diff suppressed because it is too large
Load diff
2
syntax.zap
Normal file
2
syntax.zap
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
.ENDI
|
610
syntax.zil
Normal file
610
syntax.zil
Normal file
|
@ -0,0 +1,610 @@
|
|||
"SYNTAX2 for
|
||||
Zork: The Wizard of Frobozz
|
||||
The Great Underground Empire (Part 2)
|
||||
(c) Copyright 1981 Infocom, Inc. All Rights Reserved.
|
||||
"
|
||||
|
||||
"SUBTITLE VOCABULARY"
|
||||
|
||||
<BUZZ A AN THE IS AND OF THEN ALL ONE BUT EXCEPT \. \, \" YES NO Y FROTZ OZMOO
|
||||
HERE>
|
||||
|
||||
<SYNONYM WITH USING THROUGH>
|
||||
<SYNONYM ON ONTO>
|
||||
<SYNONYM IN INSIDE INTO>
|
||||
<SYNONYM UNDER BELOW BENEATH UNDERNEATH>
|
||||
|
||||
<SYNONYM NORTH N>
|
||||
<SYNONYM SOUTH S>
|
||||
<SYNONYM EAST E>
|
||||
<SYNONYM WEST W>
|
||||
<SYNONYM DOWN D>
|
||||
<SYNONYM UP U>
|
||||
<SYNONYM NW NORTHWEST>
|
||||
<SYNONYM NE NORTHE>
|
||||
<SYNONYM SW SOUTHWEST>
|
||||
<SYNONYM SE SOUTHE>
|
||||
|
||||
\
|
||||
|
||||
"ZORK game commands"
|
||||
|
||||
<SYNTAX BRIEF = V-BRIEF>
|
||||
|
||||
<SYNTAX SUPER = V-SUPER-BRIEF>
|
||||
<SYNONYM SUPER SUPERBRIEF>
|
||||
|
||||
<SYNTAX DIAGNOSE = V-DIAGNOSE>
|
||||
|
||||
<SYNTAX INVENTORY = V-INVENTORY>
|
||||
<SYNONYM INVENTORY I>
|
||||
|
||||
<SYNTAX QUIT = V-QUIT>
|
||||
<SYNONYM QUIT Q>
|
||||
|
||||
<SYNTAX RESTART = V-RESTART>
|
||||
|
||||
<SYNTAX RESTORE = V-RESTORE>
|
||||
|
||||
<SYNTAX SAVE = V-SAVE>
|
||||
|
||||
<SYNTAX SCORE = V-SCORE>
|
||||
|
||||
<SYNTAX $VERIFY = V-$VERIFY>
|
||||
|
||||
<SYNTAX VERSION = V-VERSION>
|
||||
|
||||
<SYNTAX VERBOSE = V-VERBOSE>
|
||||
|
||||
\
|
||||
|
||||
"SUBTITLE REAL VERBS"
|
||||
|
||||
<SYNTAX AGAIN = V-AGAIN>
|
||||
<SYNONYM AGAIN G>
|
||||
|
||||
<SYNTAX ANSWER = V-ANSWER>
|
||||
<SYNTAX ANSWER OBJECT = V-REPLY>
|
||||
<SYNONYM ANSWER REPLY>
|
||||
|
||||
<SYNTAX APPLY OBJECT TO OBJECT = V-PUT PRE-PUT>
|
||||
|
||||
<SYNTAX ATTACK
|
||||
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-ATTACK>
|
||||
<SYNONYM ATTACK FIGHT HURT INJURE HIT>
|
||||
|
||||
<SYNTAX BACK = V-BACK>
|
||||
|
||||
<SYNTAX BLAST = V-BLAST>
|
||||
|
||||
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
|
||||
= V-BOARD PRE-BOARD>
|
||||
|
||||
<SYNTAX BUG = V-BUG>
|
||||
|
||||
<SYNTAX BURN
|
||||
OBJECT (FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= V-BURN PRE-BURN>
|
||||
<SYNTAX BURN
|
||||
DOWN
|
||||
OBJECT (FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= V-BURN PRE-BURN>
|
||||
<SYNONYM BURN INCINERATE IGNITE>
|
||||
|
||||
<SYNTAX CHOMP = V-CHOMP>
|
||||
<SYNONYM CHOMP LOSE BARF>
|
||||
|
||||
<SYNTAX CLIMB UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
|
||||
<SYNTAX CLIMB DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
|
||||
<SYNTAX CLIMB OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-FOO>
|
||||
<SYNTAX CLIMB IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
|
||||
<SYNTAX CLIMB ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
|
||||
<SYNONYM CLIMB SIT>
|
||||
|
||||
<SYNTAX CLOSE
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-CLOSE>
|
||||
|
||||
<SYNTAX COUNT OBJECT = V-COUNT>
|
||||
<SYNONYM COUNT>
|
||||
|
||||
<SYNTAX CROSS OBJECT = V-CROSS>
|
||||
<SYNONYM CROSS FORD>
|
||||
|
||||
<SYNTAX CUT OBJECT WITH OBJECT (FIND WEAPONBIT) (CARRIED HELD) = V-CUT>
|
||||
<SYNONYM CUT SLICE PIERCE>
|
||||
|
||||
<SYNTAX CURSE = V-CURSES>
|
||||
<SYNTAX CURSE OBJECT (FIND VILLAIN) = V-CURSES>
|
||||
<SYNONYM CURSE DAMN>
|
||||
|
||||
<SYNTAX DEFLATE OBJECT = V-DEFLATE>
|
||||
|
||||
<SYNTAX DIG IN OBJECT = V-DIG PRE-DIG>
|
||||
<SYNTAX DIG
|
||||
OBJECT ;(FIND DIGBIT) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE)
|
||||
= V-DIG PRE-DIG ;*>
|
||||
<SYNTAX DIG
|
||||
IN
|
||||
OBJECT ;(FIND DIGBIT) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE)
|
||||
= V-DIG PRE-DIG>
|
||||
|
||||
<SYNTAX DISEMBARK OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
|
||||
= V-DISEMBARK>
|
||||
|
||||
<SYNTAX DRINK
|
||||
OBJECT (FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-DRINK>
|
||||
<SYNTAX DRINK FROM OBJECT (HELD CARRIED) = V-DRINK-FROM>
|
||||
<SYNONYM DRINK IMBIBE SWALLOW>
|
||||
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) = V-DROP ;*>
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) DOWN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT PRE-PUT>
|
||||
<SYNONYM DROP RELEASE>
|
||||
|
||||
<SYNTAX LEAN ON OBJECT (HELD HAVE) = V-LEAN-ON>
|
||||
|
||||
<SYNTAX EAT
|
||||
OBJECT (FIND FOODBIT) (HELD CARRIED ON-GROUND IN-ROOM MANY)
|
||||
= V-EAT>
|
||||
<SYNONYM EAT CONSUME TASTE>
|
||||
|
||||
<SYNTAX ENTER = V-ENTER>
|
||||
<SYNTAX ENTER OBJECT = V-THROUGH>
|
||||
<SYNTAX EXIT = V-EXIT>
|
||||
<SYNTAX EXIT OBJECT = V-EXIT>
|
||||
|
||||
<SYNTAX EXAMINE OBJECT = V-EXAMINE>
|
||||
<SYNTAX EXAMINE IN OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY)
|
||||
= V-LOOK-INSIDE>
|
||||
<SYNTAX EXAMINE ON OBJECT (HELD CARRIED IN-ROOM ON-GROUND MANY)
|
||||
= V-LOOK-INSIDE>
|
||||
<SYNONYM EXAMINE DESCRIBE WHAT WHATS>
|
||||
|
||||
<SYNTAX EXORCISE OBJECT = V-EXORCISE>
|
||||
<SYNTAX EXORCISE OUT OBJECT (FIND VILLAIN) = V-EXORCISE>
|
||||
<SYNTAX EXORCISE AWAY OBJECT (FIND VILLAIN) = V-EXORCISE>
|
||||
<SYNONYM EXORCISE BANISH CAST DRIVE BEGONE>
|
||||
|
||||
<SYNTAX EXTINGUISH
|
||||
OBJECT (FIND LIGHTBIT) (MANY HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
= V-LAMP-OFF>
|
||||
<SYNONYM EXTINGUISH DOUSE>
|
||||
|
||||
<SYNTAX FILL
|
||||
OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT
|
||||
= V-FILL>
|
||||
<SYNTAX FILL
|
||||
OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-FILL>
|
||||
|
||||
<SYNTAX FIND OBJECT
|
||||
= V-FIND>
|
||||
<SYNONYM FIND WHERE SEEK SEE>
|
||||
|
||||
<SYNTAX FOLLOW = V-FOLLOW>
|
||||
<SYNTAX FOLLOW OBJECT = V-FOLLOW>
|
||||
<SYNONYM FOLLOW PURSUE CHASE COME>
|
||||
|
||||
<SYNTAX GIVE
|
||||
OBJECT (MANY HELD HAVE ;CARRIED ;ON-GROUND ;IN-ROOM)
|
||||
TO
|
||||
OBJECT (FIND VICBIT) (ON-GROUND)
|
||||
= V-GIVE PRE-GIVE>
|
||||
<SYNTAX GIVE
|
||||
OBJECT (FIND VICBIT) (ON-GROUND)
|
||||
OBJECT (MANY HELD HAVE)
|
||||
= V-SGIVE PRE-SGIVE>
|
||||
<SYNONYM GIVE HAND DONATE OFFER FEED>
|
||||
|
||||
<SYNTAX HELLO = V-HELLO ;*>
|
||||
<SYNTAX HELLO OBJECT = V-HELLO>
|
||||
<SYNONYM HELLO HI>
|
||||
|
||||
<SYNTAX BLOW OUT OBJECT = V-LAMP-OFF>
|
||||
<SYNTAX BLOW UP
|
||||
OBJECT
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-INFLATE ;*>
|
||||
<SYNTAX BLOW UP OBJECT = V-BLAST>
|
||||
|
||||
<SYNTAX INFLAT
|
||||
OBJECT
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-INFLATE>
|
||||
|
||||
<SYNTAX JUMP = V-LEAP>
|
||||
<SYNTAX JUMP OVER OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP ACROSS OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP IN OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP FROM OBJECT = V-LEAP>
|
||||
<SYNTAX JUMP OFF OBJECT = V-LEAP>
|
||||
<SYNONYM JUMP LEAP DIVE>
|
||||
|
||||
<SYNTAX KICK OBJECT = V-KICK>
|
||||
<SYNONYM KICK BITE TAUNT>
|
||||
|
||||
<SYNTAX KILL
|
||||
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-KILL>
|
||||
<SYNONYM KILL MURDER SLAY DISPATCH STAB>
|
||||
|
||||
<SYNTAX KISS OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM) = V-KISS>
|
||||
|
||||
<SYNTAX KNOCK AT OBJECT = V-KNOCK ;*>
|
||||
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
|
||||
<SYNTAX KNOCK DOWN OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
|
||||
<SYNONYM KNOCK RAP>
|
||||
|
||||
<SYNTAX LAUNCH OBJECT (FIND VEHBIT) = V-LAUNCH>
|
||||
|
||||
<SYNTAX LEAVE = V-LEAVE>
|
||||
<SYNTAX LEAVE OBJECT = V-DROP>
|
||||
|
||||
<SYNTAX LIGHT
|
||||
OBJECT (FIND LIGHTBIT)
|
||||
(HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= V-LAMP-ON ;*>
|
||||
<SYNTAX LIGHT
|
||||
OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND FLAMEBIT) (HELD CARRIED HAVE)
|
||||
= V-BURN PRE-BURN>
|
||||
|
||||
<SYNTAX LISTEN TO OBJECT = V-LISTEN>
|
||||
<SYNTAX LISTEN FOR OBJECT = V-LISTEN>
|
||||
|
||||
<SYNTAX LOCK
|
||||
OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-LOCK>
|
||||
|
||||
<SYNTAX LOOK = V-LOOK>
|
||||
<SYNTAX LOOK AROUND OBJECT (FIND RMUNGBIT) = V-LOOK>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-EXAMINE>
|
||||
<SYNTAX LOOK WITH OBJECT = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK THROUGH OBJECT = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER>
|
||||
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND>
|
||||
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM MANY) WITH OBJECT = V-READ PRE-READ>
|
||||
<SYNTAX LOOK FOR OBJECT = V-FIND>
|
||||
<SYNONYM LOOK L STARE GAZE>
|
||||
|
||||
<SYNTAX SEARCH OBJECT = V-SEARCH>
|
||||
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
|
||||
<SYNTAX SEARCH FOR OBJECT = V-FIND>
|
||||
|
||||
<SYNTAX LOWER OBJECT = V-LOWER>
|
||||
|
||||
<SYNTAX MAKE OBJECT = V-MAKE>
|
||||
|
||||
<SYNTAX MELT
|
||||
OBJECT
|
||||
WITH
|
||||
OBJECT (FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-MELT>
|
||||
<SYNONYM MELT LIQUIFY>
|
||||
|
||||
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNTAX ROLL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
|
||||
<SYNTAX PLAY OBJECT = V-PLAY>
|
||||
|
||||
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE ; *>
|
||||
<SYNTAX PULL ON OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNONYM PULL TUG>
|
||||
|
||||
<SYNTAX MUMBLE = V-MUMBLE>
|
||||
<SYNONYM MUMBLE SIGH>
|
||||
|
||||
<SYNTAX DESTROY
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH
|
||||
OBJECT (HELD CARRIED TAKE)
|
||||
= V-MUNG PRE-MUNG>
|
||||
<SYNTAX DESTROY
|
||||
DOWN
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH
|
||||
OBJECT (HELD CARRIED TAKE)
|
||||
= V-MUNG PRE-MUNG>
|
||||
<SYNONYM DESTROY DAMAGE BREAK BLOCK SMASH>
|
||||
|
||||
<SYNTAX LUBRICATE OBJECT WITH OBJECT (HELD CARRIED) = V-OIL PRE-OIL>
|
||||
<SYNONYM LUBRICATE OIL GREASE>
|
||||
|
||||
<SYNTAX OPEN
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-OPEN ;*>
|
||||
<SYNTAX OPEN
|
||||
UP
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-OPEN ;*>
|
||||
<SYNTAX OPEN
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
|
||||
= V-OPEN>
|
||||
|
||||
<SYNTAX PICK OBJECT = V-PICK>
|
||||
<SYNTAX PICK OBJECT WITH OBJECT = V-PICK>
|
||||
|
||||
<SYNTAX PICK UP
|
||||
OBJECT (FIND TAKEBIT)
|
||||
(ON-GROUND MANY)
|
||||
= V-TAKE PRE-TAKE>
|
||||
|
||||
<SYNTAX PLUG OBJECT WITH OBJECT = V-PLUG>
|
||||
<SYNONYM PLUG GLUE PATCH REPAIR FIX>
|
||||
|
||||
<SYNTAX PLUGH = V-ADVENT>
|
||||
<SYNONYM PLUGH XYZZY>
|
||||
|
||||
<SYNTAX POKE
|
||||
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-MUNG PRE-MUNG>
|
||||
<SYNONYM POKE JAB BLIND>
|
||||
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) = V-DROP ;*>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-DROP>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) ON OBJECT = V-POUR-ON PRE-POUR-ON>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) FROM OBJECT = V-DROP>
|
||||
<SYNONYM POUR SPILL>
|
||||
|
||||
<SYNTAX PRAY = V-PRAY>
|
||||
|
||||
<SYNTAX PUMP UP OBJECT = V-PUMP>
|
||||
<SYNTAX PUMP UP OBJECT WITH OBJECT = V-PUMP>
|
||||
|
||||
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
|
||||
<SYNTAX PUSH ON OBJECT (IN-ROOM ON-GROUND MANY) = V-PUSH>
|
||||
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND) OBJECT = V-PUSH-TO>
|
||||
<SYNTAX PUSH OBJECT (IN-ROOM ON-GROUND) TO OBJECT = V-PUSH-TO>
|
||||
<SYNTAX PUSH OBJECT UNDER OBJECT = V-PUT-UNDER>
|
||||
<SYNONYM PUSH PRESS>
|
||||
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE) IN OBJECT = V-PUT PRE-PUT ;*>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE) ON OBJECT = V-PUT-ON PRE-PUT>
|
||||
<SYNTAX PUT DOWN OBJECT (HELD MANY) = V-DROP>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE) UNDER OBJECT = V-PUT-UNDER>
|
||||
<SYNTAX PUT ON OBJECT (IN-ROOM ON-GROUND CARRIED MANY) = V-WEAR>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE) BEHIND OBJECT = V-PUT-BEHIND>
|
||||
<SYNONYM PUT STUFF INSERT PLACE HIDE>
|
||||
|
||||
<SYNTAX RAISE OBJECT = V-RAISE ;*>
|
||||
<SYNTAX RAISE UP OBJECT = V-RAISE>
|
||||
<SYNONYM RAISE LIFT>
|
||||
|
||||
<SYNTAX RAPE OBJECT (FIND VICBIT) = V-RAPE>
|
||||
<SYNONYM RAPE MOLEST>
|
||||
|
||||
<SYNTAX READ
|
||||
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-READ PRE-READ ; *>
|
||||
<SYNTAX READ
|
||||
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT
|
||||
= V-READ PRE-READ>
|
||||
<SYNONYM READ SKIM>
|
||||
|
||||
<SYNTAX REPENT = V-REPENT>
|
||||
|
||||
<SYNTAX RUB OBJECT = V-RUB>
|
||||
<SYNTAX RUB OBJECT WITH OBJECT = V-RUB>
|
||||
<SYNONYM RUB TOUCH FEEL PAT PET>
|
||||
|
||||
<SYNTAX SCRIPT = V-SCRIPT>
|
||||
<SYNTAX UNSCRIPT = V-UNSCRIPT>
|
||||
|
||||
<SYNTAX SEND FOR OBJECT = V-SEND>
|
||||
|
||||
<SYNTAX SHAKE OBJECT = V-SHAKE>
|
||||
|
||||
<SYNTAX SLIDE OBJECT = V-PUSH>
|
||||
<SYNTAX SLIDE OBJECT UNDER OBJECT = V-PUT-UNDER>
|
||||
<SYNTAX SLIDE OBJECT (IN-ROOM ON-GROUND) OBJECT = V-PUSH-TO>
|
||||
<SYNTAX SLIDE OBJECT (IN-ROOM ON-GROUND) TO OBJECT = V-PUSH-TO>
|
||||
|
||||
<SYNTAX SKIP = V-SKIP>
|
||||
<SYNONYM SKIP HOP>
|
||||
|
||||
<SYNTAX SMELL OBJECT = V-SMELL>
|
||||
<SYNONYM SMELL SNIFF>
|
||||
|
||||
<SYNTAX SPIN OBJECT = V-SPIN>
|
||||
|
||||
<SYNTAX SPRAY OBJECT ON OBJECT = V-SPRAY>
|
||||
<SYNTAX SPRAY OBJECT WITH OBJECT = V-SSPRAY>
|
||||
|
||||
<SYNTAX SQUEEZE OBJECT = V-SQUEEZE>
|
||||
<SYNTAX SQUEEZE OBJECT ON OBJECT = V-PUT PRE-PUT>
|
||||
|
||||
<SYNTAX STAND = V-STAND>
|
||||
<SYNTAX STAND UP OBJECT (FIND RMUNGBIT) = V-STAND>
|
||||
|
||||
<SYNTAX STAY = V-STAY>
|
||||
|
||||
<SYNTAX STRIKE
|
||||
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= V-ATTACK>
|
||||
<SYNTAX STRIKE
|
||||
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
|
||||
= V-ATTACK ;*>
|
||||
<SYNTAX STRIKE OBJECT (ON-GROUND IN-ROOM HELD CARRIED) = V-LAMP-ON>
|
||||
|
||||
<SYNTAX SWIM = V-SWIM>
|
||||
<SYNTAX SWIM IN OBJECT = V-SWIM>
|
||||
<SYNONYM SWIM BATHE WADE>
|
||||
|
||||
<SYNTAX SWING
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-SWING>
|
||||
<SYNTAX SWING
|
||||
OBJECT (FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
AT
|
||||
OBJECT (FIND VILLAIN) (ON-GROUND IN-ROOM)
|
||||
= V-SWING>
|
||||
<SYNONYM SWING THRUST>
|
||||
|
||||
<SYNTAX TAKE
|
||||
OBJECT (FIND TAKEBIT)
|
||||
(ON-GROUND IN-ROOM MANY)
|
||||
= V-TAKE PRE-TAKE ;*>
|
||||
<SYNTAX TAKE IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-BOARD PRE-BOARD>
|
||||
<SYNTAX TAKE OUT OBJECT (FIND VEHBIT) (ON-GROUND) = V-DISEMBARK>
|
||||
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
|
||||
<SYNTAX TAKE UP OBJECT (FIND RMUNGBIT) = V-STAND>
|
||||
<SYNTAX TAKE
|
||||
OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
|
||||
OUT
|
||||
OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE
|
||||
OBJECT (FIND TAKEBIT) (CARRIED IN-ROOM MANY)
|
||||
OFF
|
||||
OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE
|
||||
OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
|
||||
FROM
|
||||
OBJECT
|
||||
= V-TAKE PRE-TAKE>
|
||||
<SYNONYM TAKE GRAB GET HOLD CARRY REMOVE>
|
||||
|
||||
<SYNTAX TELL OBJECT (FIND VICBIT) (IN-ROOM) = V-TELL>
|
||||
<SYNONYM TELL ASK>
|
||||
|
||||
<SYNTAX SAY TO OBJECT (FIND VICBIT) (IN-ROOM) = V-TELL>
|
||||
<SYNTAX SAY = V-SAY>
|
||||
<SYNONYM SAY TALK>
|
||||
|
||||
<SYNTAX INCANT = V-INCANT>
|
||||
<SYNONYM INCANT CHANT>
|
||||
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) OFF OBJECT = V-THROW-OFF>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) OVER OBJECT = V-THROW-OFF>
|
||||
<SYNTAX THROW
|
||||
OBJECT (HELD CARRIED HAVE)
|
||||
AT
|
||||
OBJECT (ON-GROUND IN-ROOM)
|
||||
= V-THROW ;*>
|
||||
<SYNTAX THROW
|
||||
OBJECT (HELD CARRIED HAVE)
|
||||
WITH
|
||||
OBJECT (ON-GROUND IN-ROOM)
|
||||
= V-THROW>
|
||||
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) IN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED HAVE) ON OBJECT = V-PUT PRE-PUT>
|
||||
<SYNONYM THROW HURL CHUCK TOSS>
|
||||
|
||||
<SYNTAX TIE OBJECT TO OBJECT = V-TIE PRE-TIE>
|
||||
<SYNTAX TIE UP
|
||||
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
|
||||
= V-TIE-UP>
|
||||
<SYNONYM TIE FASTEN SECURE ATTACH>
|
||||
|
||||
<SYNTAX TURN OBJECT (FIND TURNBIT) TO OBJECT = V-TURN PRE-TURN>
|
||||
<SYNTAX TURN OBJECT (FIND TURNBIT) FOR OBJECT = V-TURN PRE-TURN>
|
||||
<SYNTAX TURN OBJECT (FIND TURNBIT) = V-TURN PRE-TURN>
|
||||
<SYNTAX TURN
|
||||
OBJECT (FIND TURNBIT) ( HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (ON-GROUND IN-ROOM HELD CARRIED HAVE)
|
||||
= V-TURN PRE-TURN ;*>
|
||||
<SYNTAX TURN ON
|
||||
OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
= V-LAMP-ON>
|
||||
<SYNTAX TURN OFF
|
||||
OBJECT (FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE HAVE)
|
||||
= V-LAMP-OFF>
|
||||
<SYNONYM TURN FLIP SHUT SET>
|
||||
|
||||
<SYNTAX UNLOCK
|
||||
OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-UNLOCK>
|
||||
|
||||
<SYNTAX UNTIE
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-UNTIE ;*>
|
||||
<SYNTAX UNTIE
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
FROM
|
||||
OBJECT
|
||||
= V-UNTIE>
|
||||
<SYNONYM UNTIE FREE UNFASTEN UNATTACH UNHOOK>
|
||||
|
||||
<SYNTAX WAIT = V-WAIT>
|
||||
<SYNONYM WAIT Z>
|
||||
"<SYNTAX $WAIT OBJECT = V-$WAIT>"
|
||||
|
||||
<SYNTAX WAKE OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ALARM ;*>
|
||||
<SYNTAX WAKE UP OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ALARM>
|
||||
<SYNONYM WAKE AWAKE SURPRISE STARTLE>
|
||||
|
||||
<SYNTAX WALK OBJECT = V-WALK>
|
||||
<SYNTAX WALK IN OBJECT = V-THROUGH>
|
||||
<SYNTAX WALK ON OBJECT = V-THROUGH>
|
||||
<SYNTAX WALK OVER OBJECT = V-LEAP>
|
||||
<SYNTAX WALK WITH OBJECT = V-THROUGH>
|
||||
<SYNTAX WALK AROUND OBJECT = V-WALK-AROUND>
|
||||
<SYNTAX WALK UP OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-UP>
|
||||
<SYNTAX WALK DOWN OBJECT (FIND CLIMBBIT) (ON-GROUND IN-ROOM) = V-CLIMB-DOWN>
|
||||
<SYNTAX WALK TO OBJECT = V-WALK-TO>
|
||||
<SYNONYM WALK GO RUN PROCEED STEP>
|
||||
|
||||
<SYNTAX WAVE OBJECT (HELD CARRIED) = V-WAVE>
|
||||
<SYNTAX WAVE OBJECT (HELD CARRIED) AT OBJECT = V-WAVE>
|
||||
<SYNONYM WAVE BRANDISH>
|
||||
|
||||
<SYNTAX WEAR OBJECT = V-WEAR>
|
||||
|
||||
<SYNTAX WIN = V-WIN>
|
||||
<SYNONYM WIN WINNAGE>
|
||||
|
||||
<SYNTAX WIND OBJECT = V-WIND>
|
||||
<SYNTAX WIND UP OBJECT = V-WIND>
|
||||
|
||||
<SYNTAX YELL = V-YELL>
|
||||
<SYNONYM YELL SCREAM SHOUT>
|
||||
|
||||
<SYNTAX ZORK = V-ZORK>
|
||||
|
||||
;"Simple questions"
|
||||
|
||||
;"<SYNTAX WHAT ...> WHAT is a synonym of EXAMINE"
|
||||
|
||||
;"<SYNTAX WHERE ...> WHERE is a synonym of FIND"
|
||||
|
||||
<SYNTAX IS OBJECT IN OBJECT = V-IS-IN>
|
||||
<SYNTAX IS OBJECT ON OBJECT = V-IS-IN>
|
646
tm.zap
Normal file
646
tm.zap
Normal file
|
@ -0,0 +1,646 @@
|
|||
|
||||
|
||||
.FUNCT IRON-DOOR-F
|
||||
EQUAL? PRSA,V?THROUGH,V?UNLOCK,V?OPEN \FALSE
|
||||
LESS? YEAR,YEAR-PRESENT \?ELS10
|
||||
PRINTR "The iron door appears to be locked from the outside."
|
||||
?ELS10: PRINTR "The iron door is rusted shut and cannot be opened."
|
||||
|
||||
|
||||
.FUNCT I-CLEFT
|
||||
EQUAL? HERE,ZORK-IV,ROOM-8,TIMBER-ROOM /?THN4
|
||||
EQUAL? HERE,LOWER-SHAFT,LADDER-BOTTOM,LADDER-TOP \?ELS3
|
||||
?THN4: PRINTI "You feel a mild tremor from within the earth which passes quickly."
|
||||
CRLF
|
||||
JUMP ?CND1
|
||||
?ELS3: PRINTI "There is a great tremor from within the earth. The entire dungeon shakes violently and loose debris starts to fall from above you."
|
||||
CRLF
|
||||
?CND1: EQUAL? HERE,MUSEUM-ANTE \?ELS14
|
||||
PRINTI "To the east, to the right of the great iron door, a large cleft opens up, revealing an open area behind!"
|
||||
CRLF
|
||||
JUMP ?CND12
|
||||
?ELS14: EQUAL? HERE,AQ-VIEW \?ELS18
|
||||
PRINTI "One of the giant pillars supporting the aqueduct collapses in a pile of smoke and rubble!"
|
||||
CRLF
|
||||
JUMP ?CND12
|
||||
?ELS18: EQUAL? HERE,AQ-2,AQ-3 \?CND12
|
||||
PRINTI "The channel beneath your feet trembles. At once, the channel directly to the "
|
||||
EQUAL? HERE,AQ-2 \?ELS27
|
||||
PRINTI "north"
|
||||
JUMP ?CND25
|
||||
?ELS27: PRINTI "south"
|
||||
?CND25: PRINTI " of you collapses with its supporting pillar and falls into the chasm!"
|
||||
CRLF
|
||||
?CND12: SET 'CLEFT-FLAG,TRUE-VALUE
|
||||
FCLEAR CLEFT,INVISIBLE
|
||||
SET 'AQ-FLAG,FALSE-VALUE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CLEFT-F
|
||||
EQUAL? YEAR,YEAR-PRESENT /FALSE
|
||||
PRINTR "There is no cleft here."
|
||||
|
||||
|
||||
.FUNCT MUSEUM-ANTE-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
ZERO? CLEFT-FLAG /?ELS10
|
||||
PRINTR "This is the south end of a monumental hall, full of dust and debris from a recent earthquake. To the east is a great iron door, rusted shut. To its right, however, is a gaping cleft in the rock and behind, a cleared area."
|
||||
?ELS10: PRINTR "You are in the southern half of a monumental hall. To the east lies a tremendous iron door which appears to be rusted shut."
|
||||
|
||||
|
||||
.FUNCT DDESC,STR1,DOOR,STR2
|
||||
PRINT STR1
|
||||
FSET? DOOR,OPENBIT \?ELS5
|
||||
PRINTI "open"
|
||||
JUMP ?CND3
|
||||
?ELS5: PRINTI "closed"
|
||||
?CND3: PRINT STR2
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MUSEUM-ENTRANCE-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
FSET? CAGE,INVISIBLE \?ELS10
|
||||
PRINTR "This seems to be an entrance hall of some sort, judging by the grand iron door to the west, and the ornate stone and wooden doors which lead to the east and north, respectively. A few wide steps lead south."
|
||||
?ELS10: PRINTI "This is the entrance to the Royal Museum, the finest and grandest in the Great Underground Empire. To the south, down a few steps, is the entrance to the Royal Puzzle and to the east, through a stone door, is the Royal Jewel Collection. A wooden door to the north is "
|
||||
FSET? WOODEN-DOOR,OPENBIT \?ELS23
|
||||
PUSH STR?110
|
||||
JUMP ?CND19
|
||||
?ELS23: PUSH STR?111
|
||||
?CND19: PRINT STACK
|
||||
PRINTI " and leads to the Museum of Technology. "
|
||||
EQUAL? YEAR,YEAR-PRESENT \?ELS30
|
||||
PRINTR "To the west is a great iron door, rusted shut. To its left, however, is a cleft in the rock providing a western route away from the museum."
|
||||
?ELS30: LESS? YEAR,YEAR-PRESENT \?ELS34
|
||||
PRINTR "To the west is a great iron door, which is rusted shut."
|
||||
?ELS34: PRINTR "To the west is a great iron door, rusted shut. The cleft in the rock, present when you started, has filled in with rubble."
|
||||
|
||||
|
||||
.FUNCT TIME-MACHINE-F,RARG=0
|
||||
EQUAL? RARG,M-OBJDESC \?ELS5
|
||||
PRINTI "Directly in front of you is a large golden machine, which has a seat with a console in front. On the console is a single button and a dial connected to a three-digit display which reads "
|
||||
PRINTN TM-YEAR
|
||||
PRINTR ". The machine is suprisingly shiny and shows few signs of age."
|
||||
?ELS5: EQUAL? RARG,M-END \?ELS9
|
||||
EQUAL? PRSA,V?PUT \?ELS9
|
||||
EQUAL? PRSI,TIME-MACHINE \?ELS9
|
||||
PRINTR "You can't put anything on or inside the machine itself."
|
||||
?ELS9: EQUAL? RARG,M-BEG \?ELS15
|
||||
EQUAL? PRSA,V?MOVE \?ELS15
|
||||
PRINTR "You might be able to move the machine by pushing it."
|
||||
?ELS15: EQUAL? RARG,M-BEG \?ELS21
|
||||
EQUAL? PRSA,V?PUSH-TO \?ELS21
|
||||
EQUAL? PRSO,TIME-MACHINE \?ELS21
|
||||
PRINTR "That would be a good trick from inside it."
|
||||
?ELS21: EQUAL? RARG,M-END \?ELS27
|
||||
EQUAL? PRSO,TIME-MACHINE \?ELS27
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS34
|
||||
PRINTI "The machine consists of a seat and a console containing one small button and a dial connected to a display which reads "
|
||||
PRINTN TM-YEAR
|
||||
PRINTR "."
|
||||
?ELS34: EQUAL? PRSA,V?BOARD \?ELS38
|
||||
FIRST? TM-SEAT \?ELS38
|
||||
PRINTR "That will be somewhat uncomfortable!"
|
||||
?ELS38: EQUAL? PRSA,V?RAISE,V?TAKE \?ELS44
|
||||
PRINTR "The machine must weigh hundreds of pounds and cannot be carried."
|
||||
?ELS44: EQUAL? PRSA,V?PUSH \?ELS48
|
||||
PRINTR "You should specify in which direction to push the machine."
|
||||
?ELS48: EQUAL? PRSA,V?PUSH-TO \FALSE
|
||||
CALL DO-WALK,P-DIRECTION
|
||||
EQUAL? STACK,M-FATAL /TRUE
|
||||
PRINTI "With some effort, you push the machine into the room with you."
|
||||
CRLF
|
||||
EQUAL? HERE,CP-ANTE,MID-CP-ANTE \?ELS60
|
||||
PRINTI "However, the machine seems to have sustained some damage as a result of going over the stairs."
|
||||
CRLF
|
||||
SET 'MACHINE-DAMAGED,TRUE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS60: EQUAL? HERE,MUSEUM-ANTE \?CND58
|
||||
PRINTI "Pushing the machine through the cleft seems to have damaged it."
|
||||
CRLF
|
||||
SET 'MACHINE-DAMAGED,TRUE-VALUE
|
||||
?CND58: MOVE TIME-MACHINE,HERE
|
||||
RTRUE
|
||||
?ELS27: EQUAL? RARG,M-BEG \FALSE
|
||||
EQUAL? PRSA,V?WALK \?ELS70
|
||||
PRINTR "You're not going anywhere in this heap."
|
||||
?ELS70: EQUAL? PRSA,V?CLOSE,V?OPEN,V?PUSH /?THN77
|
||||
EQUAL? PRSA,V?MOVE,V?PUT,V?TAKE \FALSE
|
||||
?THN77: CALL HELD?,PRSO
|
||||
ZERO? STACK \FALSE
|
||||
IN? PRSO,TIME-MACHINE /FALSE
|
||||
PRINTR "You can't do that from inside the machine."
|
||||
|
||||
|
||||
.FUNCT TM-SEAT-F
|
||||
EQUAL? PRSA,V?BOARD,V?CLIMB-ON \?ELS5
|
||||
CALL PERFORM,V?BOARD,TIME-MACHINE
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?PUT-BEHIND,V?PUT-UNDER \?ELS7
|
||||
EQUAL? PRSI,TM-SEAT \?ELS7
|
||||
EQUAL? PRSO,RING \?ELS14
|
||||
PRINTI "The ring is concealed underneath the seat."
|
||||
CRLF
|
||||
SET 'RING-CONCEALED,TRUE-VALUE
|
||||
REMOVE RING
|
||||
RTRUE
|
||||
?ELS14: PRINTR "It's too big to hide under the seat."
|
||||
?ELS7: EQUAL? PRSA,V?RUB \?ELS22
|
||||
PRINTR "There's nothing odd about the feel of the seat."
|
||||
?ELS22: EQUAL? PRSA,V?MOVE,V?RAISE,V?LOOK-UNDER \FALSE
|
||||
ZERO? RING-CONCEALED /?ELS31
|
||||
PRINTI "You find the ring under the seat and put it on your finger."
|
||||
CRLF
|
||||
MOVE RING,WINNER
|
||||
SET 'RING-CONCEALED,FALSE-VALUE
|
||||
RTRUE
|
||||
?ELS31: PRINTR "You notice a small hollow area under the seat."
|
||||
|
||||
|
||||
.FUNCT TM-DIAL-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTI "The dial is set to "
|
||||
PRINTN TM-YEAR
|
||||
PRINTR "."
|
||||
?ELS5: EQUAL? PRSA,V?TURN \FALSE
|
||||
EQUAL? PRSI,INTNUM \?ELS14
|
||||
GRTR? P-NUMBER,999 \?ELS19
|
||||
PRINTR "You can't set it beyond 999."
|
||||
?ELS19: SET 'TM-YEAR,P-NUMBER
|
||||
PRINTI "The dial is set to "
|
||||
PRINTN TM-YEAR
|
||||
PRINTR "."
|
||||
?ELS14: ZERO? PRSI \?ELS27
|
||||
PRINTR "You have to say what to turn it to!"
|
||||
?ELS27: PRINTR "You can't do that!"
|
||||
|
||||
|
||||
.FUNCT TM-BUTTON-F
|
||||
EQUAL? PRSA,V?PUSH \FALSE
|
||||
EQUAL? TM-YEAR,YEAR-BUILT \?CND6
|
||||
ZERO? TM-POINT \?CND6
|
||||
INC 'SCORE
|
||||
SET 'TM-POINT,TRUE-VALUE
|
||||
?CND6: ZERO? MACHINE-DAMAGED \?THN16
|
||||
IN? WINNER,TIME-MACHINE /?ELS15
|
||||
?THN16: PRINTR "Nothing seems to have happened."
|
||||
?ELS15: LESS? TM-YEAR,YEAR-BUILT \?ELS21
|
||||
CALL REALLY-DEAD,STR?112
|
||||
RSTACK
|
||||
?ELS21: EQUAL? YEAR,TM-YEAR \?ELS23
|
||||
PRINTR "Nothing seems to have happened."
|
||||
?ELS23: LESS? TM-YEAR,YEAR-CLOSED \?ELS27
|
||||
PRINTI "You experience a brief period of disorientation. When your vision returns,"
|
||||
EQUAL? HERE,MUSEUM-ENTRANCE,MID-MUSEUM-ENTRANCE,OLD-MUSEUM-ENTRANCE \?ELS34
|
||||
EQUAL? TM-YEAR,YEAR-CAGED \?ELS39
|
||||
PRINTI " you are surrounded by a number of heavily armed guards, the dress and speech of which seem strange and unfamiliar. A commotion starts at a door to the east and a person with a flat head, wearing a gaudy crown and a purple robe, bursts into the room."
|
||||
CRLF
|
||||
CALL FLATHEAD-SENTENCE
|
||||
RSTACK
|
||||
?ELS39: CALL GUARDS-KILL
|
||||
RSTACK
|
||||
?ELS34: EQUAL? HERE,JEWEL-ROOM,MID-JEWEL-ROOM,OLD-JEWEL-ROOM \?ELS45
|
||||
EQUAL? TM-YEAR,YEAR-CAGED \?ELS50
|
||||
PRINTI " you find yourself in the middle of some kind of ceremony, with a strange flat-headed man wearing royal vestments about to break a bottle on the bars of an iron cage containing magnificent jewels. He appears somewhat pleased by your presence. "
|
||||
CALL FLATHEAD-SENTENCE
|
||||
RSTACK
|
||||
?ELS50: GRTR? TM-YEAR,YEAR-CAGED \?ELS54
|
||||
CALL GUARDS-KILL
|
||||
RSTACK
|
||||
?ELS54: PRINTI " your surroundings appear to have changed. From outside the door you hear the sounds of guards talking."
|
||||
CRLF
|
||||
CALL TGOTO,OLD-JEWEL-ROOM
|
||||
RSTACK
|
||||
?ELS45: EQUAL? HERE,TECH-MUSEUM,MID-TECH-MUSEUM,OLD-TECH-MUSEUM \FALSE
|
||||
EQUAL? TM-YEAR,YEAR-BUILT /?ELS65
|
||||
CALL GUARDS-KILL
|
||||
RSTACK
|
||||
?ELS65: PRINTI " your surroundings appear to have changed. From outside the door you hear the sounds of guards talking."
|
||||
CRLF
|
||||
CALL TGOTO,OLD-TECH-MUSEUM
|
||||
RSTACK
|
||||
?ELS27: CALL HAPPY-NEW-YEAR
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT HAPPY-NEW-YEAR
|
||||
PRINTI "You experience a brief period of disorientation. When your vision returns, your surroundings appear somewhat altered."
|
||||
CRLF
|
||||
EQUAL? HERE,OLD-JEWEL-ROOM,MID-JEWEL-ROOM,JEWEL-ROOM \?ELS7
|
||||
LESS? TM-YEAR,YEAR-PRESENT \?ELS12
|
||||
CALL TGOTO,MID-JEWEL-ROOM
|
||||
RSTACK
|
||||
?ELS12: CALL TGOTO,JEWEL-ROOM
|
||||
RSTACK
|
||||
?ELS7: EQUAL? HERE,OLD-TECH-MUSEUM,MID-TECH-MUSEUM,TECH-MUSEUM \?ELS16
|
||||
LESS? TM-YEAR,YEAR-PRESENT \?ELS21
|
||||
CALL TGOTO,MID-TECH-MUSEUM
|
||||
RSTACK
|
||||
?ELS21: CALL TGOTO,TECH-MUSEUM
|
||||
RSTACK
|
||||
?ELS16: LESS? TM-YEAR,YEAR-PRESENT \?ELS25
|
||||
CALL TGOTO,MID-MUSEUM-ENTRANCE
|
||||
RSTACK
|
||||
?ELS25: CALL TGOTO,MUSEUM-ENTRANCE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-SNAP
|
||||
EQUAL? YEAR,YEAR-PRESENT /FALSE
|
||||
SET 'TM-YEAR,YEAR-PRESENT
|
||||
PRINTI "You start to feel light-headed and, before you can even think, you become completely disoriented. When you regain your faculties, you realize that your surroundings have changed."
|
||||
CRLF
|
||||
CALL TGOTO,SNAP-LOC,TRUE-VALUE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MOVE-JEWELS
|
||||
ZERO? RING-STOLEN \TRUE
|
||||
EQUAL? TM-YEAR,YEAR-BUILT \?ELS7
|
||||
MOVE PEDESTAL,OLD-JEWEL-ROOM
|
||||
JUMP ?CND5
|
||||
?ELS7: LESS? TM-YEAR,YEAR-PRESENT \?ELS9
|
||||
MOVE PEDESTAL,MID-JEWEL-ROOM
|
||||
JUMP ?CND5
|
||||
?ELS9: MOVE PEDESTAL,JEWEL-ROOM
|
||||
?CND5: MOVE SCEPTRE,PEDESTAL
|
||||
FSET SCEPTRE,NDESCBIT
|
||||
MOVE JEWELLED-KNIFE,PEDESTAL
|
||||
FSET JEWELLED-KNIFE,NDESCBIT
|
||||
ZERO? RING-CONCEALED \FALSE
|
||||
MOVE RING,PEDESTAL
|
||||
FSET RING,NDESCBIT
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TGOTO,RM=0,SNAP=0
|
||||
INC 'MOVES
|
||||
CALL QUEUE,I-GUARDS-LEAVE,0
|
||||
SET 'INVIS,FALSE-VALUE
|
||||
GRTR? YEAR,YEAR-BUILT \?CND1
|
||||
SET 'GUARDS-PRESENT,TRUE-VALUE
|
||||
?CND1: EQUAL? YEAR,YEAR-PRESENT \?CND4
|
||||
SET 'SNAP-LOC,HERE
|
||||
CALL QUEUE,I-SNAP,40
|
||||
PUT STACK,0,1
|
||||
?CND4: EQUAL? TM-YEAR,YEAR-PRESENT \?ELS9
|
||||
SET 'CLEFT-FLAG,TRUE-VALUE
|
||||
JUMP ?CND7
|
||||
?ELS9: SET 'CLEFT-FLAG,FALSE-VALUE
|
||||
?CND7: FCLEAR JEWEL-DOOR,OPENBIT
|
||||
FCLEAR WOODEN-DOOR,OPENBIT
|
||||
FCLEAR IRON-DOOR,OPENBIT
|
||||
EQUAL? YEAR,YEAR-BUILT \?CND12
|
||||
ZERO? RING-CONCEALED /?ELS17
|
||||
IN? TIME-MACHINE,OLD-TECH-MUSEUM \?ELS17
|
||||
IN? SCEPTRE,PEDESTAL \?ELS17
|
||||
IN? JEWELLED-KNIFE,PEDESTAL \?ELS17
|
||||
SET 'RING-STOLEN,TRUE-VALUE
|
||||
FSET CAGE,INVISIBLE
|
||||
FSET PEDESTAL,INVISIBLE
|
||||
REMOVE SCEPTRE
|
||||
REMOVE JEWELLED-KNIFE
|
||||
JUMP ?CND12
|
||||
?ELS17: IN? TIME-MACHINE,OLD-TECH-MUSEUM \?THN22
|
||||
ZERO? RING-CONCEALED /?ELS21
|
||||
?THN22: SET 'CLUMSY-ROBBERY,TRUE-VALUE
|
||||
REMOVE TIME-MACHINE
|
||||
JUMP ?CND12
|
||||
?ELS21: IN? RING,PEDESTAL \?THN26
|
||||
IN? SCEPTRE,PEDESTAL \?THN26
|
||||
IN? JEWELLED-KNIFE,PEDESTAL /?CND12
|
||||
?THN26: SET 'MYSTERY,TRUE-VALUE
|
||||
?CND12: EQUAL? TM-YEAR,YEAR-BUILT \?CND28
|
||||
SET 'MYSTERY,FALSE-VALUE
|
||||
SET 'CLUMSY-ROBBERY,FALSE-VALUE
|
||||
?CND28: SET 'YEAR,TM-YEAR
|
||||
CALL MOVE-TM-OBJECTS
|
||||
CALL MOVE-JEWELS
|
||||
MOVE WINNER,HERE
|
||||
CALL GOTO,RM,FALSE-VALUE
|
||||
EQUAL? YEAR,YEAR-BUILT \?ELS33
|
||||
MOVE TIME-MACHINE,OLD-TECH-MUSEUM
|
||||
MOVE SPINNER,OLD-TECH-MUSEUM
|
||||
MOVE PRESSURIZER,OLD-TECH-MUSEUM
|
||||
MOVE TECH-PLAQUE,OLD-TECH-MUSEUM
|
||||
JUMP ?CND31
|
||||
?ELS33: LESS? YEAR,YEAR-PRESENT \?ELS35
|
||||
ZERO? CLUMSY-ROBBERY \?CND36
|
||||
MOVE TIME-MACHINE,MID-TECH-MUSEUM
|
||||
?CND36: MOVE SPINNER,MID-TECH-MUSEUM
|
||||
MOVE PRESSURIZER,MID-TECH-MUSEUM
|
||||
MOVE TECH-PLAQUE,MID-TECH-MUSEUM
|
||||
MOVE CAGE,MID-JEWEL-ROOM
|
||||
JUMP ?CND31
|
||||
?ELS35: MOVE TIME-MACHINE,TECH-MUSEUM
|
||||
MOVE SPINNER,TECH-MUSEUM
|
||||
MOVE PRESSURIZER,TECH-MUSEUM
|
||||
MOVE TECH-PLAQUE,TECH-MUSEUM
|
||||
MOVE CAGE,JEWEL-ROOM
|
||||
?CND31: ZERO? CLUMSY-ROBBERY \?THN44
|
||||
EQUAL? HERE,TECH-MUSEUM,MID-TECH-MUSEUM,OLD-TECH-MUSEUM /?ELS43
|
||||
?THN44: ZERO? SNAP \?CND41
|
||||
PRINTI "You notice that the golden machine has disappeared!"
|
||||
CRLF
|
||||
JUMP ?CND41
|
||||
?ELS43: MOVE WINNER,TIME-MACHINE
|
||||
?CND41: ZERO? CLUMSY-ROBBERY /TRUE
|
||||
REMOVE TIME-MACHINE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MOVE-TM-OBJECTS,F,MFLG=0,WFLG=0,N
|
||||
FIRST? TIME-MACHINE >F /?KLU53
|
||||
?KLU53: ZERO? F /?CND1
|
||||
?PRG5: EQUAL? F,TM-DIAL,TM-SEAT,TM-BUTTON /?CND7
|
||||
EQUAL? F,PLAYER \?ELS9
|
||||
JUMP ?CND7
|
||||
?ELS9: ZERO? MFLG \?CND7
|
||||
SET 'MFLG,TRUE-VALUE
|
||||
PRINTI "You notice that everything in the machine is gone"
|
||||
?CND7: NEXT? F >N /?KLU54
|
||||
?KLU54: EQUAL? F,TM-DIAL,TM-SEAT,TM-BUTTON /?CND16
|
||||
MOVE F,HERE
|
||||
?CND16: SET 'F,N
|
||||
ZERO? F \?PRG5
|
||||
?CND1: FIRST? WINNER >F /?KLU55
|
||||
?KLU55: ZERO? F /?CND22
|
||||
?PRG26: ZERO? WFLG \?CND28
|
||||
SET 'WFLG,TRUE-VALUE
|
||||
ZERO? MFLG /?ELS33
|
||||
PRINTI ": come to mention it, everything you were holding has vanished too"
|
||||
JUMP ?CND28
|
||||
?ELS33: PRINTI "You notice that everything you were holding is gone"
|
||||
?CND28: NEXT? F >N /?KLU56
|
||||
?KLU56: MOVE F,HERE
|
||||
SET 'F,N
|
||||
ZERO? F \?PRG26
|
||||
?CND22: ZERO? MFLG \?THN49
|
||||
ZERO? WFLG /FALSE
|
||||
?THN49: PRINTR "!"
|
||||
|
||||
|
||||
.FUNCT GUARDS-KILL
|
||||
CALL PICK-ONE,GUARD-KILLERS
|
||||
PRINT STACK
|
||||
CRLF
|
||||
CALL REALLY-DEAD,STR?9
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT FLATHEAD-SENTENCE
|
||||
CALL REALLY-DEAD,STR?116
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT REALLY-DEAD,STR
|
||||
PRINT STR
|
||||
CRLF
|
||||
PRINTI "
|
||||
|
||||
** You have died **
|
||||
|
||||
"
|
||||
QUIT
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT HEAR-FLATHEAD
|
||||
SET 'FLATHEAD-HEARD,TRUE-VALUE
|
||||
PRINTR "One particularly loud and grating voice can now be heard above the others outside the room. ""Very nice! Very nice! Not enough security, but very nice! Now, Lord Feepness, pay attention! I've been thinking and what we need is a dam, a tremendous dam to control the Frigid River, with thousands of gates. Yes! I can see it now. We shall call it ... Flood Control Dam #2. No, not quite right. Aha! It will be Flood Control Dam #3."" ""Pardon me, my Lord, but wouldn't that be just a tad excessive?"" ""Nonsense! Now, let me tell you my idea for hollowing out volcanoes..."" With that, the voices trail out into nothingness."
|
||||
|
||||
|
||||
.FUNCT OLD-TECH-MUSEUM-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
EQUAL? HERE,OLD-JEWEL-ROOM \?ELS5
|
||||
PRINTI "You are in a high-ceilinged chamber, in the center of which is a pedestal which "
|
||||
ZERO? RING-STOLEN \?ELS12
|
||||
PRINTI "is the intended home of the Crown Jewels of the Great Underground Empire: a jewelled knife, a golden ring, and the royal sceptre."
|
||||
IN? SCEPTRE,PEDESTAL \?THN18
|
||||
IN? RING,PEDESTAL \?THN18
|
||||
IN? JEWELLED-KNIFE,PEDESTAL /?CND10
|
||||
?THN18: PRINTI " Not all of the jewels are in place, however."
|
||||
JUMP ?CND10
|
||||
?ELS12: PRINTI "is bare."
|
||||
?CND10: PRINTI " The room is, by appearances, unfinished."
|
||||
CRLF
|
||||
ZERO? GUARDS-PRESENT /TRUE
|
||||
PRINTR "Through the door you can hear voices which, from their sound, belong to military or police personnel."
|
||||
?ELS5: EQUAL? RARG,M-LOOK \?ELS35
|
||||
EQUAL? HERE,OLD-TECH-MUSEUM \?ELS38
|
||||
PRINTI "You are in a large, unfinished room, probably intended to be a part of the Royal Museum."
|
||||
CRLF
|
||||
JUMP ?CND36
|
||||
?ELS38: PRINTI "This appears to be an unfinished entranceway to the Royal Museum. There are doors to the east and north, and a blind stairway to the south. A heavy iron door to the west is closed and locked."
|
||||
CRLF
|
||||
?CND36: ZERO? GUARDS-PRESENT /TRUE
|
||||
PRINTR "Through the door you can hear voices which, from their sound, belong to military or police personnel."
|
||||
?ELS35: EQUAL? RARG,M-END \?ELS52
|
||||
ZERO? FLATHEAD-HEARD \?ELS52
|
||||
ZERO? GUARDS-PRESENT /?ELS52
|
||||
RANDOM 100
|
||||
GRTR? 6,STACK \?ELS52
|
||||
CALL HEAR-FLATHEAD
|
||||
RSTACK
|
||||
?ELS52: EQUAL? RARG,M-ENTER \?ELS56
|
||||
ZERO? GUARDS-PRESENT /?ELS56
|
||||
RANDOM 12
|
||||
ADD 3,STACK
|
||||
CALL QUEUE,I-GUARDS-LEAVE,STACK
|
||||
PUT STACK,0,1
|
||||
RTRUE
|
||||
?ELS56: EQUAL? RARG,M-BEG \?ELS60
|
||||
EQUAL? PRSA,V?OPEN \?ELS60
|
||||
EQUAL? PRSO,WOODEN-DOOR,JEWEL-DOOR \?ELS60
|
||||
ZERO? GUARDS-PRESENT /?ELS60
|
||||
PRINTR "You open the door ever so slightly and see dozens of armed officials. You shut the door quickly and quietly, realizing that you would be killed in an instant if you left the room."
|
||||
?ELS60: EQUAL? RARG,M-BEG \FALSE
|
||||
ZERO? GUARDS-PRESENT /FALSE
|
||||
RANDOM 100
|
||||
GRTR? 3,STACK \FALSE
|
||||
CALL GUARD-CAUGHT
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT I-GUARDS-LEAVE
|
||||
SET 'GUARDS-PRESENT,FALSE-VALUE
|
||||
PRINTR "You hear, from outside the door, guards marching away, their voices fading. After a few moments, a booming crash signals the close of what must be a tremendous door. Then there is silence."
|
||||
|
||||
|
||||
.FUNCT GUARD-CAUGHT
|
||||
CALL REALLY-DEAD,STR?117
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT ROBOT-F
|
||||
EQUAL? PRSA,V?FOLLOW \?ELS5
|
||||
PRINTR "It moved very quickly and left the door closed."
|
||||
?ELS5: PRINTR "There is no robot here."
|
||||
|
||||
|
||||
.FUNCT JEWEL-ROOM-F,RARG
|
||||
EQUAL? RARG,M-END \?ELS5
|
||||
IN? TIME-MACHINE,HERE \?ELS5
|
||||
RANDOM 100
|
||||
GRTR? 4,STACK \?ELS5
|
||||
PRINTI "An odd robot-like device glides into the room, dusting the floor as it moves. Its head gyrates briefly as it scans the machine. ""Shame. Shame,"" it says, rather tinnily. ""Someone has been tampering with the machines again."" Six beady mechanical eyes focus on you as the robot picks up the gold machine. ""Hands off, adventurer!"" are its last words as it leaves the room, closing the door behind it."
|
||||
CRLF
|
||||
FCLEAR JEWEL-DOOR,OPENBIT
|
||||
FCLEAR WOODEN-DOOR,OPENBIT
|
||||
MOVE TIME-MACHINE,TECH-MUSEUM
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are in a high-ceilinged chamber"
|
||||
FSET? CAGE,INVISIBLE /?ELS18
|
||||
PRINTR " in the middle of which sits a tall, round steel cage, which is securely locked. In the middle of the cage is a pedestal on which sit the Crown Jewels of the Great Underground Empire: a sceptre, a jewelled knife, and a golden ring. A small bronze plaque, now tarnished, is on the cage."
|
||||
?ELS18: PRINTR " in the middle of which is a bare pedestal. The room is unfinished with no indication of its purpose. A small plaque is fastened to a wall."
|
||||
|
||||
|
||||
.FUNCT CROWN-JEWELS-F
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
CALL HELD?,PRSO
|
||||
ZERO? STACK \FALSE
|
||||
EQUAL? YEAR,YEAR-BUILT /?THN13
|
||||
FSET? CAGE,INVISIBLE \?ELS12
|
||||
?THN13: FCLEAR PRSO,NDESCBIT
|
||||
RFALSE
|
||||
?ELS12: PRINTR "The jewels are inside a locked cage."
|
||||
?ELS5: EQUAL? PRSA,V?PUT \?ELS20
|
||||
EQUAL? PRSI,PEDESTAL \?ELS20
|
||||
IN? PRSO,WINNER \?ELS20
|
||||
PRINTI "The "
|
||||
PRINTD PRSO
|
||||
PRINTI " is now resting on the pedestal."
|
||||
CRLF
|
||||
MOVE PRSO,PEDESTAL
|
||||
FSET PRSO,NDESCBIT
|
||||
RTRUE
|
||||
?ELS20: EQUAL? PRSA,V?PUT \FALSE
|
||||
CALL HELD?,PRSO
|
||||
ZERO? STACK \FALSE
|
||||
PRINTI "You don't have the "
|
||||
PRINTD PRSO
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT TECH-MUSEUM-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
FSET? CAGE,INVISIBLE \?ELS10
|
||||
CALL DDESC,STR?118,WOODEN-DOOR,STR?119
|
||||
RSTACK
|
||||
?ELS10: CALL DDESC,STR?120,WOODEN-DOOR,STR?119
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PLAQUE-F
|
||||
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
||||
ZERO? RING-STOLEN /?CND6
|
||||
PRINTR "The plaque explains that this room was to be the home of the Crown Jewels of the Great Underground Empire. However, following the unexplained disappearance of a priceless ring during the final stages of construction, Lord Flathead decided to place the remaining jewels in a safer location. Interestingly enough, he distrusted museum security enough to place his prized possesion, an incredibly gaudy crown, within a locked safe in a volcano specifically hollowed out for that purpose."
|
||||
?CND6: GET 0,8
|
||||
BOR STACK,2
|
||||
PUT 0,8,STACK
|
||||
PRINTI "
|
||||
Crown Jewels
|
||||
|
||||
Presented To The Royal Museum
|
||||
By His Gracious Lord
|
||||
|
||||
DIMWIT FLATHEAD
|
||||
|
||||
|
||||
Dedicated
|
||||
* 777 GUE *
|
||||
|
||||
"
|
||||
GET 0,8
|
||||
BAND STACK,-3
|
||||
PUT 0,8,STACK
|
||||
ZERO? CLUMSY-ROBBERY /?ELS16
|
||||
PRINTR "Underneath the plaque, in small lettering, is a description of a clumsy attempt to steal the jewels using a time travel device from the Technological Museum which the curators were surprised to discover was not a non-working model. After the attempt, the machine was removed from the exhibit."
|
||||
?ELS16: ZERO? MYSTERY /TRUE
|
||||
PRINTR "Underneath the plaque, in small lettering, is a description of a mysterious happening during the final stages of construction of the Museum, in which some of the crown jewels were found displaced from their proper positions. Fortunately, nothing was missing. The mystery was never solved and the museum was opened despite the objections of Lord Flathead that security was too lax."
|
||||
|
||||
|
||||
.FUNCT WOODEN-DOOR-F
|
||||
EQUAL? PRSA,V?LISTEN \?ELS5
|
||||
ZERO? GUARDS-PRESENT /?ELS5
|
||||
CALL PERFORM,V?LISTEN,VOICES
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?KNOCK \FALSE
|
||||
ZERO? GUARDS-PRESENT /FALSE
|
||||
PRINTR "You realize that calling attention to yourself would be fatal."
|
||||
|
||||
|
||||
.FUNCT JEWEL-DOOR-F
|
||||
EQUAL? PRSA,V?KNOCK \?ELS5
|
||||
ZERO? GUARDS-PRESENT /?ELS5
|
||||
CALL PERFORM,V?KNOCK,WOODEN-DOOR
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?UNLOCK,V?OPEN \FALSE
|
||||
FSET? JEWEL-DOOR,OPENBIT \?ELS14
|
||||
PRINTR "It is already open."
|
||||
?ELS14: EQUAL? YEAR,YEAR-BUILT \?ELS18
|
||||
EQUAL? HERE,OLD-MUSEUM-ENTRANCE \?ELS18
|
||||
PRINTR "The door is locked, probably by the guards on their way out."
|
||||
?ELS18: PRINTI "The door is now open."
|
||||
CRLF
|
||||
FSET JEWEL-DOOR,OPENBIT
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CAGE-F
|
||||
EQUAL? PRSA,V?OPEN \?ELS5
|
||||
PRINTR "The cage is locked."
|
||||
?ELS5: EQUAL? PRSA,V?CLOSE \FALSE
|
||||
PRINTR "The cage is already closed."
|
||||
|
||||
|
||||
.FUNCT VOICES-F
|
||||
ZERO? GUARDS-PRESENT /?ELS5
|
||||
EQUAL? YEAR,YEAR-BUILT \?ELS5
|
||||
PRINTI "The voices are muffled by the door which (fortunately for you) separates you. They seem to be in heated debate on the topic of "
|
||||
CALL PICK-ONE,BLATHER
|
||||
PRINT STACK
|
||||
PRINTR "."
|
||||
?ELS5: PRINTR "Are you hearing things now?"
|
||||
|
||||
|
||||
.FUNCT MUSEUM-PIECES,RARG=0
|
||||
EQUAL? RARG,M-OBJDESC \?ELS5
|
||||
EQUAL? DESC-OBJECT,SPINNER /TRUE
|
||||
PRINTI "A strange grey machine, shaped somewhat like a clothes dryer, is on one side of the room. On the other side of the hall is a powerful-looking black machine, a tight tangle of wires, pipes, and motors.
|
||||
A plaque is mounted near the door."
|
||||
LESS? YEAR,YEAR-CLOSED \?ELS15
|
||||
PRINTR " The grey machine, it turns out, is a Frobozz Magic Pressurizer, used in the coal mines of the Empire. The black machine is a Frobozz Magic Room Spinner. The golden machine is referred to as a Temporizer. All are non-working models donated by Frobozzco president John D. Flathead."
|
||||
?ELS15: PRINTR " The writing is faded, however, and cannot be made out clearly. The two machines seem to be in bad shape, rusting in many spots."
|
||||
?ELS5: EQUAL? PRSA,V?MOVE,V?TAKE \?ELS23
|
||||
PRINTR "It's massive and cannot even be moved."
|
||||
?ELS23: EQUAL? PRSA,V?PUSH-TO,V?PUSH \?ELS27
|
||||
PRINTR "It's too heavy to be pushed."
|
||||
?ELS27: EQUAL? PRSA,V?MUNG \?ELS31
|
||||
PRINTR "It seems quite indestructible."
|
||||
?ELS31: EQUAL? PRSA,V?PUT \FALSE
|
||||
EQUAL? PRSI,SPINNER,PRESSURIZER \FALSE
|
||||
PRINTR "There's no good place to put anything there."
|
||||
|
||||
|
||||
.FUNCT TECH-PLAQUE-F
|
||||
EQUAL? PRSA,V?TAKE \?ELS5
|
||||
PRINTR "It's bolted to the wall."
|
||||
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
||||
LESS? YEAR,YEAR-CLOSED \?ELS14
|
||||
PRINTR "The plaque merely identifies the machines and names their donor. They are non-working models of existing state-of-the-art machinery."
|
||||
?ELS14: PRINTR "The words cannot be made out."
|
||||
|
||||
|
||||
.FUNCT PEDESTAL-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
FIRST? PEDESTAL \FALSE
|
||||
PRINTR "The Royal Jewels are on the pedestal."
|
||||
?ELS5: EQUAL? PRSA,V?TAKE,V?PUT-ON,V?PUT \FALSE
|
||||
FSET? CAGE,INVISIBLE /FALSE
|
||||
PRINTR "You can't reach it through the cage."
|
||||
|
||||
.ENDI
|
22
zork3.errors
Normal file
22
zork3.errors
Normal file
|
@ -0,0 +1,22 @@
|
|||
Assembling ZORK3.XZAP.6
|
||||
|
||||
|
||||
Inserting ZORK3FREQ.XZAP.2 ( 622 bytes)
|
||||
Inserting ZORK3DAT.ZAP.1 (17815 bytes)
|
||||
Inserting DUNGEON.ZAP.1 ( 0 bytes)
|
||||
Inserting SYNTAX.ZAP.1 ( 0 bytes)
|
||||
Inserting MACROS.ZAP.1 ( 43 bytes)
|
||||
Inserting CLOCK.ZAP.1 ( 197 bytes)
|
||||
Inserting MAIN.ZAP.2 ( 1127 bytes)
|
||||
Inserting PARSER.ZAP.1 ( 4864 bytes)
|
||||
Inserting DEMONS.ZAP.1 ( 250 bytes)
|
||||
Inserting VERBS.ZAP.1 ( 9396 bytes)
|
||||
Inserting ACTIONS.ZAP.1 (16227 bytes)
|
||||
Inserting TM.ZAP.1 ( 7613 bytes)
|
||||
Inserting SHADOW.ZAP.1 (12014 bytes)
|
||||
Inserting ZORK3STR.ZAP.1 (12482 bytes)
|
||||
18501 bytes of preload.
|
||||
|
||||
82714 bytes (81K).
|
||||
222 objects.
|
||||
192 globals.
|
41
zork3.xzap
Normal file
41
zork3.xzap
Normal file
|
@ -0,0 +1,41 @@
|
|||
.INSERT "ZORK3FREQ"
|
||||
|
||||
.INSERT "ZORK3DAT" ; DATA IS IN THIS FILE
|
||||
|
||||
|
||||
.INSERT "DUNGEON"
|
||||
|
||||
|
||||
.INSERT "SYNTAX"
|
||||
|
||||
|
||||
.INSERT "MACROS"
|
||||
|
||||
|
||||
.INSERT "CLOCK"
|
||||
|
||||
|
||||
.INSERT "MAIN"
|
||||
|
||||
|
||||
.INSERT "PARSER"
|
||||
|
||||
|
||||
.INSERT "DEMONS"
|
||||
|
||||
|
||||
.INSERT "VERBS"
|
||||
|
||||
|
||||
.INSERT "ACTIONS"
|
||||
|
||||
|
||||
.INSERT "TM"
|
||||
|
||||
|
||||
.INSERT "SHADOW"
|
||||
|
||||
|
||||
.INSERT "ZORK3STR"
|
||||
|
||||
.END
|
40
zork3.zap
Normal file
40
zork3.zap
Normal file
|
@ -0,0 +1,40 @@
|
|||
|
||||
.INSERT "ZORK3DAT" ; DATA IS IN THIS FILE
|
||||
|
||||
|
||||
.INSERT "DUNGEON"
|
||||
|
||||
|
||||
.INSERT "SYNTAX"
|
||||
|
||||
|
||||
.INSERT "MACROS"
|
||||
|
||||
|
||||
.INSERT "CLOCK"
|
||||
|
||||
|
||||
.INSERT "MAIN"
|
||||
|
||||
|
||||
.INSERT "PARSER"
|
||||
|
||||
|
||||
.INSERT "DEMONS"
|
||||
|
||||
|
||||
.INSERT "VERBS"
|
||||
|
||||
|
||||
.INSERT "ACTIONS"
|
||||
|
||||
|
||||
.INSERT "TM"
|
||||
|
||||
|
||||
.INSERT "SHADOW"
|
||||
|
||||
|
||||
.INSERT "ZORK3STR"
|
||||
|
||||
.END
|
52
zork3.zil
Normal file
52
zork3.zil
Normal file
|
@ -0,0 +1,52 @@
|
|||
"ZORK3 for
|
||||
Zork III: The Dungeon Master
|
||||
The Great Underground Empire (Part 3)
|
||||
(c) Copyright 1982 Infocom, Inc. All Rights Reserved.
|
||||
"
|
||||
|
||||
<BLOAT 70000 0 0 2700 0 0 0 0 0 256>
|
||||
|
||||
;<SNAME "ZORK3">
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
||||
<GLOBAL BIGFIX 10000>
|
||||
|
||||
<OR <GASSIGNED? ZILCH>
|
||||
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
|
||||
|
||||
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
|
||||
<INSERT-FILE .STR .FLOAD?>>
|
||||
|
||||
<PRINC "Loader/ ZORK III: The Dungeon Master
|
||||
">
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<SETG ZSTR-ON <SETG ZSTR-OFF ,TIME>>
|
||||
<ID 0>)>
|
||||
|
||||
<IFILE "DUNGEON" T>
|
||||
|
||||
<PROPDEF SIZE 5>
|
||||
<PROPDEF CAPACITY 0>
|
||||
<PROPDEF VALUE 0>
|
||||
|
||||
<IFILE "SYNTAX" T>
|
||||
<ENDLOAD>
|
||||
<IFILE "MACROS" T>
|
||||
<IFILE "CLOCK" T>
|
||||
<IFILE "MAIN" T>
|
||||
<IFILE "PARSER" T>
|
||||
<IFILE "DEMONS" T>
|
||||
|
||||
<IFILE "VERBS" T>
|
||||
<IFILE "ACTIONS" T>
|
||||
<IFILE "TM" T>
|
||||
<IFILE "SHADOW" T>
|
||||
|
||||
<GC 0 T>
|
||||
|
||||
|
||||
|
||||
|
||||
|
11704
zork3dat.zap
Normal file
11704
zork3dat.zap
Normal file
File diff suppressed because it is too large
Load diff
200
zork3freq.xzap
Normal file
200
zork3freq.xzap
Normal file
|
@ -0,0 +1,200 @@
|
|||
.FSTR FSTR?1,"the " ;1950 975
|
||||
.FSTR FSTR?2,"The " ;1119 373
|
||||
.FSTR FSTR?3,"You " ;756 252
|
||||
.FSTR FSTR?4,"and " ;710 355
|
||||
.FSTR FSTR?5,", " ;629 629
|
||||
.FSTR FSTR?6,"you " ;484 242
|
||||
.FSTR FSTR?7,"is " ;436 436
|
||||
.FSTR FSTR?8,". " ;419 419
|
||||
.FSTR FSTR?9,"to " ;396 396
|
||||
.FSTR FSTR?10,"of " ;386 386
|
||||
.FSTR FSTR?11,"can't " ;375 75
|
||||
.FSTR FSTR?12,"your " ;351 117
|
||||
.FSTR FSTR?13,"are " ;308 154
|
||||
.FSTR FSTR?14,"from " ;273 91
|
||||
.FSTR FSTR?15,"which " ;272 68
|
||||
.FSTR FSTR?16,"that " ;255 85
|
||||
.FSTR FSTR?17,"There " ;245 49
|
||||
.FSTR FSTR?18,"with " ;228 76
|
||||
.FSTR FSTR?19,"have " ;222 74
|
||||
.FSTR FSTR?20,"in " ;218 218
|
||||
.FSTR FSTR?21,"door " ;189 63
|
||||
.FSTR FSTR?22,"into " ;174 58
|
||||
.FSTR FSTR?23,"stone " ;172 43
|
||||
.FSTR FSTR?24,"through " ;156 26
|
||||
.FSTR FSTR?25,"wooden " ;155 31
|
||||
.FSTR FSTR?26,"hooded " ;150 30
|
||||
.FSTR FSTR?27,"seems " ;140 35
|
||||
.FSTR FSTR?28,"already " ;132 22
|
||||
.FSTR FSTR?29,"Underground " ;132 12
|
||||
.FSTR FSTR?30,"This " ;128 32
|
||||
.FSTR FSTR?31,"channel " ;126 21
|
||||
.FSTR FSTR?32,"would " ;124 31
|
||||
.FSTR FSTR?33,"small " ;124 31
|
||||
.FSTR FSTR?34,"figure " ;120 24
|
||||
.FSTR FSTR?35,"cannot " ;120 24
|
||||
.FSTR FSTR?36,"appears " ;114 19
|
||||
.FSTR FSTR?37,"structure " ;112 14
|
||||
.FSTR FSTR?38,"his " ;110 55
|
||||
.FSTR FSTR?39,"large " ;108 27
|
||||
.FSTR FSTR?40,"wall " ;105 35
|
||||
.FSTR FSTR?41,"don't " ;105 21
|
||||
.FSTR FSTR?42,"south " ;104 26
|
||||
.FSTR FSTR?43,"be " ;102 102
|
||||
.FSTR FSTR?44,"not " ;102 51
|
||||
.FSTR FSTR?45,"but " ;102 51
|
||||
.FSTR FSTR?46,"He " ;102 51
|
||||
.FSTR FSTR?47,"nothing " ;102 17
|
||||
.FSTR FSTR?48,"dungeon " ;102 17
|
||||
.FSTR FSTR?49,"north " ;100 25
|
||||
.FSTR FSTR?50,"above " ;100 25
|
||||
.FSTR FSTR?51,"mirror " ;100 20
|
||||
.FSTR FSTR?52,"doesn't " ;98 14
|
||||
.FSTR FSTR?53,"corridor " ;98 14
|
||||
.FSTR FSTR?54,"here" ;96 48
|
||||
.FSTR FSTR?55,"very " ;96 32
|
||||
.FSTR FSTR?56,"around " ;95 19
|
||||
.FSTR FSTR?57,"has " ;94 47
|
||||
.FSTR FSTR?58,"west " ;93 31
|
||||
.FSTR FSTR?59,"It " ;92 46
|
||||
.FSTR FSTR?60,"yourself " ;91 13
|
||||
.FSTR FSTR?61,"can " ;90 45
|
||||
.FSTR FSTR?62,"south" ;90 30
|
||||
.FSTR FSTR?63,"I " ;88 88
|
||||
.FSTR FSTR?64,"room " ;87 29
|
||||
.FSTR FSTR?65,"see " ;86 43
|
||||
.FSTR FSTR?66,"for " ;86 43
|
||||
.FSTR FSTR?67,"out " ;84 42
|
||||
.FSTR FSTR?68,"this " ;84 28
|
||||
.FSTR FSTR?69,"passage " ;84 14
|
||||
.FSTR FSTR?70,"on " ;82 82
|
||||
.FSTR FSTR?71,"narrow " ;80 16
|
||||
.FSTR FSTR?72,"standing " ;77 11
|
||||
.FSTR FSTR?73,"anything " ;77 11
|
||||
.FSTR FSTR?74,"To " ;76 38
|
||||
.FSTR FSTR?75,"panel " ;76 19
|
||||
.FSTR FSTR?76,"great " ;76 19
|
||||
.FSTR FSTR?77,"some " ;75 25
|
||||
.FSTR FSTR?78,"east " ;75 25
|
||||
.FSTR FSTR?79,"been " ;75 25
|
||||
.FSTR FSTR?80,"ground " ;75 15
|
||||
.FSTR FSTR?81,"Royal " ;75 15
|
||||
.FSTR FSTR?82,"Empire" ;75 15
|
||||
.FSTR FSTR?83,"at " ;72 72
|
||||
.FSTR FSTR?84,"Your " ;72 18
|
||||
.FSTR FSTR?85,"something " ;72 9
|
||||
.FSTR FSTR?86,"you" ;70 70
|
||||
.FSTR FSTR?87,"A " ;70 70
|
||||
.FSTR FSTR?88,"isn't " ;70 14
|
||||
.FSTR FSTR?89,"before " ;70 14
|
||||
.FSTR FSTR?90,"southern " ;70 10
|
||||
.FSTR FSTR?91,"Room" ;69 23
|
||||
.FSTR FSTR?92,"it " ;66 66
|
||||
.FSTR FSTR?93,"north" ;66 22
|
||||
.FSTR FSTR?94,"here " ;66 22
|
||||
.FSTR FSTR?95,"back " ;66 22
|
||||
.FSTR FSTR?96,"strange " ;66 11
|
||||
|
||||
|
||||
;word frequency table of 96 most common words
|
||||
|
||||
WORDS:: .TABLE
|
||||
FSTR?1
|
||||
FSTR?2
|
||||
FSTR?3
|
||||
FSTR?4
|
||||
FSTR?5
|
||||
FSTR?6
|
||||
FSTR?7
|
||||
FSTR?8
|
||||
FSTR?9
|
||||
FSTR?10
|
||||
FSTR?11
|
||||
FSTR?12
|
||||
FSTR?13
|
||||
FSTR?14
|
||||
FSTR?15
|
||||
FSTR?16
|
||||
FSTR?17
|
||||
FSTR?18
|
||||
FSTR?19
|
||||
FSTR?20
|
||||
FSTR?21
|
||||
FSTR?22
|
||||
FSTR?23
|
||||
FSTR?24
|
||||
FSTR?25
|
||||
FSTR?26
|
||||
FSTR?27
|
||||
FSTR?28
|
||||
FSTR?29
|
||||
FSTR?30
|
||||
FSTR?31
|
||||
FSTR?32
|
||||
FSTR?33
|
||||
FSTR?34
|
||||
FSTR?35
|
||||
FSTR?36
|
||||
FSTR?37
|
||||
FSTR?38
|
||||
FSTR?39
|
||||
FSTR?40
|
||||
FSTR?41
|
||||
FSTR?42
|
||||
FSTR?43
|
||||
FSTR?44
|
||||
FSTR?45
|
||||
FSTR?46
|
||||
FSTR?47
|
||||
FSTR?48
|
||||
FSTR?49
|
||||
FSTR?50
|
||||
FSTR?51
|
||||
FSTR?52
|
||||
FSTR?53
|
||||
FSTR?54
|
||||
FSTR?55
|
||||
FSTR?56
|
||||
FSTR?57
|
||||
FSTR?58
|
||||
FSTR?59
|
||||
FSTR?60
|
||||
FSTR?61
|
||||
FSTR?62
|
||||
FSTR?63
|
||||
FSTR?64
|
||||
FSTR?65
|
||||
FSTR?66
|
||||
FSTR?67
|
||||
FSTR?68
|
||||
FSTR?69
|
||||
FSTR?70
|
||||
FSTR?71
|
||||
FSTR?72
|
||||
FSTR?73
|
||||
FSTR?74
|
||||
FSTR?75
|
||||
FSTR?76
|
||||
FSTR?77
|
||||
FSTR?78
|
||||
FSTR?79
|
||||
FSTR?80
|
||||
FSTR?81
|
||||
FSTR?82
|
||||
FSTR?83
|
||||
FSTR?84
|
||||
FSTR?85
|
||||
FSTR?86
|
||||
FSTR?87
|
||||
FSTR?88
|
||||
FSTR?89
|
||||
FSTR?90
|
||||
FSTR?91
|
||||
FSTR?92
|
||||
FSTR?93
|
||||
FSTR?94
|
||||
FSTR?95
|
||||
FSTR?96
|
||||
.ENDT
|
||||
|
||||
.ENDI
|
271
zork3str.zap
Normal file
271
zork3str.zap
Normal file
|
@ -0,0 +1,271 @@
|
|||
|
||||
|
||||
; STRINGS ARE DEFINED HERE
|
||||
|
||||
.GSTR STR?1,"Your old friend, the brass lantern, is at your feet."
|
||||
.GSTR STR?2,"The steel door is closed."
|
||||
.GSTR STR?3,"Lying on the ground is a small note of some kind."
|
||||
.GSTR STR?4,"Warning:
|
||||
The Royal Puzzle is quite dangerous and it is possible to become trapped within its confines. Please do not enter the puzzle after hours or when museum personnel are not present.
|
||||
The Management
|
||||
"
|
||||
.GSTR STR?5,"There is an old book here."
|
||||
.GSTR STR?6,"Nestled inside the niche is an old and dusty book."
|
||||
.GSTR STR?7,"The book is written in a strong and elegant hand and is full of strange and wondrous pictures. The text is in a tongue unknown to you and is penned in many colours. Some of the words seem to change colour as you read them. The book itself is very old and the pages dry and brittle."
|
||||
.GSTR STR?8,"The dungeon master is quietly leaning on his staff here."
|
||||
.GSTR STR?9," "
|
||||
.GSTR STR?10,"You are standing at the southern end of a long, dimly lit hall. To the south, stairs ascend into darkness. To the north the corridor is illuminated by torches set high in the walls, out of reach. On one wall is a red button."
|
||||
.GSTR STR?11,"You can't go that way."
|
||||
.GSTR STR?12,"You have come to the end of two adjoining passages to the west and the northwest."
|
||||
.GSTR STR?13,"This is a particularly damp spot even by dungeon standards. You can see a crossroads to the west, and two nearly identical passages lead east and northeast. A stone channel, wide and deep, steeply descends into the room from the south. It is covered with moss and lichen, and is far too slippery to climb. The channel crosses the room, but the opening where it once continued north is now blocked by rubble."
|
||||
.GSTR STR?14,"The channel opening is blocked by tons of debris."
|
||||
.GSTR STR?15,"The channel is too steep and the moss too slippery."
|
||||
.GSTR STR?16,"This is a hall with polished marble walls. It widens slightly as it turns west at its northern and southern ends."
|
||||
.GSTR STR?17,"This is a hall with polished marble walls. It widens slightly as it turns east at its northern and southern ends."
|
||||
.GSTR STR?18,"You would be burned to a crisp in no time."
|
||||
.GSTR STR?19,"You are in a bare prison cell. Its wooden door is securely fastened, and you can see only flames and smoke through its small window."
|
||||
.GSTR STR?20,"The door is securely fastened."
|
||||
.GSTR STR?21,"This is a large room, richly appointed in a style that bespeaks exquisite taste. To judge from its contents, it is the ultimate storehouse of the wealth of the Great Underground Empire.
|
||||
|
||||
There are chests here containing precious jewels, mountains of zorkmids, rare paintings, ancient statuary, and beguiling curios.
|
||||
|
||||
On one wall is an annotated map of the Empire, showing the locations of various troves of treasure, and of several superior scenic views.
|
||||
|
||||
On a desk at the far end of the room may be found stock certificates representing a controlling interest in FrobozzCo International, the multinational conglomerate and parent company of the Frobozz Magic Boat Co., etc.
|
||||
"
|
||||
.GSTR STR?22,"Oh, no! You have walked into a den of hungry grues and it's dinner time!"
|
||||
.GSTR STR?23,"Oh, no! You have walked into the slavering fangs of a lurking grue!"
|
||||
.GSTR STR?24," "
|
||||
.GSTR STR?25," "
|
||||
.GSTR STR?26," "
|
||||
.GSTR STR?27," "
|
||||
.GSTR STR?28," "
|
||||
.GSTR STR?29," a transcript of interaction with ZORK III.
|
||||
ZORK is a trademark of Infocom, Inc.
|
||||
Copyright (c) 1982 Infocom, Inc. All rights reserved.
|
||||
"
|
||||
.GSTR STR?30,"Oh, no! A dozen or more lurking grues attack at once and devour you! From the look of things, I would guess that you had interrupted a grue convention!"
|
||||
.GSTR STR?31,"Oh, no! A lurking grue slithered into the room and devoured you!"
|
||||
.GSTR STR?32,"Hello."
|
||||
.GSTR STR?33,"Good day."
|
||||
.GSTR STR?34,"Nice weather we've been having lately."
|
||||
.GSTR STR?35,"Goodbye."
|
||||
.GSTR STR?36,"Very good. Now you can go to the second grade."
|
||||
.GSTR STR?37,"Have you tried hopping around the dungeon, too?"
|
||||
.GSTR STR?38,"Are you enjoying yourself?"
|
||||
.GSTR STR?39,"Wheeeeeeeeee!!!!!"
|
||||
.GSTR STR?40,"Do you expect me to applaud?"
|
||||
.GSTR STR?41,"You should have looked before you leaped."
|
||||
.GSTR STR?42,"I'm afraid that leap was a bit much for your weak frame."
|
||||
.GSTR STR?43,"In the movies, your life would be passing in front of your eyes."
|
||||
.GSTR STR?44,"Geronimo....."
|
||||
.GSTR STR?45,"Unfortunately, you were holding it at the time."
|
||||
.GSTR STR?46,"kill"
|
||||
.GSTR STR?47,"attack"
|
||||
.GSTR STR?48,"Kicking the "
|
||||
.GSTR STR?49,"Waving the "
|
||||
.GSTR STR?50,"Playing in this way with the "
|
||||
.GSTR STR?51,"Fiddling with the "
|
||||
.GSTR STR?52,"Pushing the "
|
||||
.GSTR STR?53,"Trying to destroy the "
|
||||
.GSTR STR?54," doesn't seem to work."
|
||||
.GSTR STR?55," isn't notably helpful."
|
||||
.GSTR STR?56," doesn't work."
|
||||
.GSTR STR?57," has no effect."
|
||||
.GSTR STR?58,"A valiant attempt."
|
||||
.GSTR STR?59,"You can't be serious."
|
||||
.GSTR STR?60,"An interesting idea..."
|
||||
.GSTR STR?61,"What a concept!"
|
||||
.GSTR STR?62,"The lamp appears a bit dimmer."
|
||||
.GSTR STR?63,"The lamp is definitely dimmer now."
|
||||
.GSTR STR?64,"The lamp is nearly out."
|
||||
.GSTR STR?65,"If you insist.... Poof, you're dead!"
|
||||
.GSTR STR?66,"west"
|
||||
.GSTR STR?67,"east"
|
||||
.GSTR STR?68,"mirror."
|
||||
.GSTR STR?69,"wooden panel which once contained a mirror."
|
||||
.GSTR STR?70,"The mirror is mounted on a panel which has been opened outward."
|
||||
.GSTR STR?71,"The panel has been opened outward."
|
||||
.GSTR STR?72,", identical stone statues face each other from pedestals on opposite sides of the corridor. The statues represent Guardians of Zork, a military order of ancient lineage. They are portrayed as heavily armored warriors standing at ease, hands clasped around formidable bludgeons."
|
||||
.GSTR STR?73,"nor"
|
||||
.GSTR STR?74,"sou"
|
||||
.GSTR STR?75,"A large mirror fills the "
|
||||
.GSTR STR?76,"A large panel fills the "
|
||||
.GSTR STR?77,"The Guardians awake, and in perfect unison, utterly destroy you with their stone bludgeons. Satisfied, they resume their posts."
|
||||
.GSTR STR?78,"The mirror is mounted on a wooden panel which moves slightly inward as you push, and back out when you let go. The mirror feels fragile."
|
||||
.GSTR STR?79,"The mirror is unyielding, but seems rather fragile."
|
||||
.GSTR STR?80,"The wooden panel moves slightly inward as you push, and back out when you let go."
|
||||
.GSTR STR?81,"The panel is unyielding."
|
||||
.GSTR STR?82,"north"
|
||||
.GSTR STR?83,"northeast"
|
||||
.GSTR STR?84,"southeast"
|
||||
.GSTR STR?85,"south"
|
||||
.GSTR STR?86,"southwest"
|
||||
.GSTR STR?87,"northwest"
|
||||
.GSTR STR?88,"All at once, two immense stone bludgeons come through the top of the structure, crushing you."
|
||||
.GSTR STR?89,"The structure sways unsteadily "
|
||||
.GSTR STR?90,"The structure slides "
|
||||
.GSTR STR?91,"Suddenly the Guardians realize someone is trying to sneak by them in the structure. They awake and, in perfect unison, hammer the contents of the box (in other words you) to pulp. They then resume their posts, satisfied."
|
||||
.GSTR STR?92,"Suddenly, two identical stone hands holding tremendous bludgeons come through the top of the structure and hammer the contents of the box to pulp. That includes you."
|
||||
.GSTR STR?93,"The dungeon master is taken momentarily by surprise. He dodges your blow, and then, with a disappointed expression on his face, he raises his staff, and traces a complicated pattern in the air. As it completes you crumble into dust."
|
||||
.GSTR STR?94,"but I fear my waiting may be in vain. I must not give up hope!"
|
||||
.GSTR STR?95,"but you have far to go before you are ready."
|
||||
.GSTR STR?96,"and you seem to have made some progress, albeit slight."
|
||||
.GSTR STR?97,"and your journey is half complete. Be of good cheer!"
|
||||
.GSTR STR?98,"and you are coming nearer the end of your long quest!"
|
||||
.GSTR STR?99,"and it will not be long yet before you are ready!"
|
||||
.GSTR STR?100,"and you are nearly ready for the last test!"
|
||||
.GSTR STR?101,"Beyond the once-secret door are dark, forbidding stairs that lead down to a passage below. Dim light, as from torches, can be seen in the passage."
|
||||
.GSTR STR?102,"This is a very low and narrow passage leading east to west."
|
||||
.GSTR STR?103,"This is a chamber of breathtaking beauty. Mighty stalagmites form structured shapes of rock, encrusted with crystalline formations. Phosphorescent mosses, fed by a trickle of water from some unseen source above, make the crystals glow and sparkle with every color of the rainbow. There is an opening to the west, and a man-made passage heads south."
|
||||
.GSTR STR?104,"This is the north end of a large hall with a vaulted ceiling. A long, tiled hallway leads north through a tall arch. Although the origin or purpose of this room is unclear, there is a large rendering of the Royal Seal of Lord Dimwit Flathead carved on the wall."
|
||||
.GSTR STR?105,"The Seal is vintage Flathead, with signs of excess nearly everywhere. It consists of a curiously flat-headed figure wearing a gaudy crown, surrounded by the Crown Jewels of the Empire."
|
||||
.GSTR STR?106,"The great iron door is rusted shut."
|
||||
.GSTR STR?107,"The iron door is rusted shut."
|
||||
.GSTR STR?108,"The guards locked the iron door behind them."
|
||||
.GSTR STR?109,"The stairs end blindly to the south."
|
||||
.GSTR STR?110,"open"
|
||||
.GSTR STR?111,"closed"
|
||||
.GSTR STR?112,"You experience a brief period of disorientation. The area around you seems to be solidifying! Rock formations close in on you and before you can react you are engulfed in stone!"
|
||||
.GSTR STR?113," you are surrounded by heavily armed guards who seem awed by your presence. One, whose IQ could not possibly be above 15, aims a strange waffle-like instrument in your direction and all goes black."
|
||||
.GSTR STR?114," you are confronted with a goodly number of particularly stupid-looking people dressed in peculiar uniform and pointing waffle-like objects in your general direction. One twists his waffle and you slump to the ground, dead."
|
||||
.GSTR STR?115," you see before you a row of military people who, if appearances do not deceive, have the cumulative intelligence of a not yet ripe grapefruit. One of them aims a waffle-shaped implement in your direction and you become numb and then paralyzed and then dead."
|
||||
.GSTR STR?116,"He speaks very loudly, nearly deafening the poor civil servant whose duty it is to see that his wishes are carried out. ""Aha! A thief! Didn't I tell you that we needed more security! But, no! You all said my idea to build the museum under two miles of mountain and surrounded by five hundred feet of steel was impractical! Now, what to do with this ... intruder? I have it! We'll build a tremendous fortress on the highest mountain peak, with one narrow ladder stretching thousands of feet to the pinnacle. There he will stay for the rest of his life!"" His brow-beaten assistant hesitates. ""Don't you think, Your Lordship, that your plan is a bit, well, a bit much?"" Flathead gives it a second's thought. ""No, not really."" he says, and you are led away. A few years later, your prison is finished. You are taken there, and spend the rest of your life in misery."
|
||||
.GSTR STR?117,"A particularly vicious-looking guard enters the room and eyes you. He grinds his teeth in a most unpleasant way, pulls a waffle out of his garment, and vaporizes you with a flick of his finger."
|
||||
.GSTR STR?118,"This is an exhibit of Empire technology. A wooden door to the south is "
|
||||
.GSTR STR?119,"."
|
||||
.GSTR STR?120,"This is a large hall which hosted the technological exhibits of the Great Underground Empire. A door to the south is "
|
||||
.GSTR STR?121,"wage scales for guards"
|
||||
.GSTR STR?122,"the excessive nature of the Royal Government"
|
||||
.GSTR STR?123,"the soon to be constructed Royal Puzzle"
|
||||
.GSTR STR?124,"the proper way to execute trespassers"
|
||||
.GSTR STR?125,"torture as the preferred punishment for thieves"
|
||||
.GSTR STR?126,"the banishment of the Wizard of Frobozz"
|
||||
.GSTR STR?127,"You are in a dark and quite creepy crawlway with passages leaving to the north, east, south, and southwest."
|
||||
.GSTR STR?128,"You are at the eastern end of a dark, featureless landscape of shallow hills. Paths to the east and southeast re-enter the rock."
|
||||
.GSTR STR?129,"Towering walls of rock bar your way."
|
||||
.GSTR STR?130,"You are in a shadowy land of low, rolling hills stretching out to the west and south. The land is bordered to the north by a massive stone wall. Ancient and weathered, the wall has crumbled enough at one point to permit passage."
|
||||
.GSTR STR?131,"A stone wall blocks the way."
|
||||
.GSTR STR?132,"You are in a dark and shadowy land. All around you are gentle hills and eerie shadows. Far above, shrouded in mist, you can barely make out the ceiling of the enormous cavern that spans this entire land."
|
||||
.GSTR STR?133,"You are in an ominously dark land of rolling hills. The ground becomes softer to the south."
|
||||
.GSTR STR?134,"The ground becomes too soft to walk on in that direction."
|
||||
.GSTR STR?135,"You are at the southern end of a shadowy land. The ground here is quite soft, and the area is surrounded by quicksand on most sides. North of here is a terrain of shallow hills."
|
||||
.GSTR STR?136,"The quicksand prevents movement in that direction."
|
||||
.GSTR STR?137,"You are near the southern end of the land of shadow. The ground here is soft and spongy, and it becomes quicksand to the south. North and east of here are gentle, rolling hills. A gentle sea breeze wafts over a steeply sloping path to the west."
|
||||
.GSTR STR?138,"You are in a land of dark shadows and shallow hills, which stretch out in all directions. To the west, the land dips sharply."
|
||||
.GSTR STR?139,"You are standing atop a steep cliff, looking west over a vast ocean. Far below, the surf pounds at a sandy beach. To the south and east are rolling hills filled with eerie shadows. A path cut into the face of the cliff descends toward the beach. To the north is a tall stone wall, which ends at the cliff edge. It was obviously built long ago, and directly north is a spot where you could climb over the rubble of the decaying wall."
|
||||
.GSTR STR?140,"Between the rocks, wind, and waves, you wouldn't last a minute."
|
||||
.GSTR STR?141,"The quicksand prevents movement here."
|
||||
.GSTR STR?142,"stairs"
|
||||
.GSTR STR?143,"?"
|
||||
.GSTR STR?144," appears to be badly hurt and defenseless."
|
||||
.GSTR STR?145," is hurt, and its strength appears to be fading."
|
||||
.GSTR STR?146," has some wounds and is probably not capable of hindering your movement."
|
||||
.GSTR STR?147," has a light wound which hasn't affected its seemingly great strength."
|
||||
.GSTR STR?148," has a great deal of strength, perhaps matching your own."
|
||||
.GSTR STR?149,"A good parry! Your sword wounds the hooded figure!"
|
||||
.GSTR STR?150,"A quick stroke catches the hooded figure off guard! Blood trickles down the figure's arm!"
|
||||
.GSTR STR?151,"The hooded figure is hit with a quick slash!"
|
||||
.GSTR STR?152,"Your move was not quick enough and misses the mark."
|
||||
.GSTR STR?153,"A quick stroke, but the hooded figure is on guard."
|
||||
.GSTR STR?154,"A good stroke, but it's too slow."
|
||||
.GSTR STR?155,"A good slash, but it misses by a mile."
|
||||
.GSTR STR?156,"You charge, but the hooded figure jumps nimbly aside."
|
||||
.GSTR STR?157,"The hooded figure catches you off guard and wounds you!"
|
||||
.GSTR STR?158,"You are wounded by a lightning thrust!"
|
||||
.GSTR STR?159,"Your quick reflexes cannot stop the hooded figure's stroke! You are hit!"
|
||||
.GSTR STR?160,"In your wounded state, you cannot defend yourself against your still-quick opponent. Slowly and carefully, the figure starts to remove its hood as you fall to the ground, dead."
|
||||
.GSTR STR?161,"The hooded figure stabs nonchalantly with its sword and misses."
|
||||
.GSTR STR?162,"You dodge as the hooded figure comes in low."
|
||||
.GSTR STR?163,"The hooded figure tries to sneak past your guard, but you twist away."
|
||||
.GSTR STR?164,"The hooded figure thrusts, but you fight back and send it flying to the ground!"
|
||||
.GSTR STR?165,"You are dead."
|
||||
.GSTR STR?166,"You are very seriously wounded. One more wound would very likely do you in."
|
||||
.GSTR STR?167,"You are hurt quite badly. One major wound would probably kill you."
|
||||
.GSTR STR?168,"You have a few wounds, which do not seriously impair your strength."
|
||||
.GSTR STR?169,"You are wounded lightly. You have a good deal of strength in reserve."
|
||||
.GSTR STR?170,"You are in perfect health."
|
||||
.GSTR STR?171,"You are at the bottom of a seemingly endless stair, winding its way upward beyond your vision. An eerie light, coming from all around you, casts strange shadows on the walls. To the south is a dark and winding trail."
|
||||
.GSTR STR?172,"The stairs are endless."
|
||||
.GSTR STR?173,"You are at the junction of a north-south passage and an east-west passage. To the north, you can make out the bottom of a stairway. The ways to the east and south are relatively cramped, but a wider trail leads to the west."
|
||||
.GSTR STR?174,"You are west of the junction, where the rock-bound passage widens out into a large, flat area. Although the land here is barren, you can see vegetation to the west. South of here is a mighty wall of stone, ancient and crumbling. To the southwest the wall has decayed enough to form an opening, through which seeps a thin mist. A trail dips sharply into rocky terrain to the northwest."
|
||||
.GSTR STR?175,"A stone wall blocks your way."
|
||||
.GSTR STR?176,"You are at a sharp turn on a narrow and steeply sloping path, strewn with boulders of various sizes. The path climbs sharply toward a desolate plain to the southeast. Southwest of here the path winds down to the base of a cliff."
|
||||
.GSTR STR?177,"You are at the base of a steep cliff. Directly above you is a wide ledge and far above that some natural sunlight can be seen. To the northeast is a steeply climbing path and the ground becomes sandy toward the south."
|
||||
.GSTR STR?178,"You can't get up the rock face."
|
||||
.GSTR STR?179,"The drop would kill you."
|
||||
.GSTR STR?180,"There's no tree here suitable for climbing."
|
||||
.GSTR STR?181,"You attempt the climb but slide back down."
|
||||
.GSTR STR?182,"You are in a dank passage filled with a wispy fog. A spooky passageway leads north and a wider path heads off to the south. To the west, the path leaves the rock and enters an eerie, shadowy land."
|
||||
.GSTR STR?183,"You are in a wide cavern on the north shore of a small lake. Some polished stone steps lead to the southeast and a sheer rock face prevents any movement around the lake to the southwest. The cavern is dimly lit from above."
|
||||
.GSTR STR?184,"If you really want to enter the lake, you should say so."
|
||||
.GSTR STR?185,"The sheer rock face prevents movement along the lake shore."
|
||||
.GSTR STR?186,"This is a small balcony carved into a near-vertical cliff. To the east, stretching from north to south, stands a monumental aqueduct supported by mighty stone pillars, some of which are starting to crumble from age. You feel a sense of loss and sadness as you ponder this once-proud structure and the failure of the Empire which created this and other engineering marvels. Some stone steps lead up to the northwest."
|
||||
.GSTR STR?187,"The drop would be fatal."
|
||||
.GSTR STR?188,"You are floating on the surface of the lake. The water is ice cold and your ability to survive here for long is very questionable. A swim north puts you at your starting point. Conditions to the east are poor where the lake turns into swamp. The west and south shores are suitable for walking, however."
|
||||
.GSTR STR?189,"The swamp is impassable."
|
||||
.GSTR STR?190,"You are below the surface of the lake. It turns out that the lake is quite shallow and the bottom is only a few feet below you. Considering the frigid temperature of the water, you should probably not plan an extended stay. The lake bottom is sandy and a few hearty plants and algae live there."
|
||||
.GSTR STR?191,"You are already at the bottom of the lake."
|
||||
.GSTR STR?192,"You are on the western shore of the lake. The ground here is quite hard, but a few sickly reeds manage to grow near the water's edge. The only path leads into the rock to the south."
|
||||
.GSTR STR?193,"If you want to enter the lake, you should say so."
|
||||
.GSTR STR?194,"Mounted on one wall is a flaming torch, which fills the room with a flickering light."
|
||||
.GSTR STR?195,"A piece of bread is on the ground here."
|
||||
.GSTR STR?196,"It seems as if somebody has been here recently, as there is some fresh bread lying beneath one of the other trees."
|
||||
.GSTR STR?197,"The staff is instantly consumed in a ball of flame. You along with it."
|
||||
.GSTR STR?198,"A large chest, closed and locked, is lying among the boulders."
|
||||
.GSTR STR?199,"The man appears to be getting somewhat impatient."
|
||||
.GSTR STR?200,"Your friend at the cliff top has started pacing nervously around."
|
||||
.GSTR STR?201,"""Yoo hoo!"" calls the man at the brink of the cliff. ""Remember me?"""
|
||||
.GSTR STR?202,"The man on the cliff waves at you. ""It would just take a moment to tie that rope to the chest. I'd be much obliged, and there might even be something in it for you!"""
|
||||
.GSTR STR?203,"A few small stones fall near your feet. You look up and see your friend waving. ""I haven't got all day, fella. Be a pal and pass up the chest!"""
|
||||
.GSTR STR?204,"The man on the cliff clears his throat loudly. ""I don't mean to be rushing you, but I do have some pressing engagements...."""
|
||||
.GSTR STR?205,"Oh, no! A tremendous fish just swallowed you whole!"
|
||||
.GSTR STR?206,"Your strength gives out, and you drown in the frigid waters."
|
||||
.GSTR STR?207,"The roc snatches you in its jaws and has you for lunch."
|
||||
.GSTR STR?208,"I"
|
||||
.GSTR STR?209,"II"
|
||||
.GSTR STR?210,"III"
|
||||
.GSTR STR?211,"IV"
|
||||
.GSTR STR?212,"You see a passage cluttered with broken timbers. An extremely narrow opening can be seen at the end of the room."
|
||||
.GSTR STR?213,"You see a tiny room with rough walls. Chiseled crudely on one wall is the number ""8"". The only apparent exit seems to be a blur."
|
||||
.GSTR STR?214,"You see a wide room with two nearly identical passages leading east and northeast. A wide channel descends steeply into the room and seems to be blocked by rubble."
|
||||
.GSTR STR?215,"You see the interior of a huge temple rudely constructed of basalt blocks. Flickering torches cast a sallow illumination over an altar still wet with the blood of human sacrifice, its velvet covers stained and encrusted with gore."
|
||||
.GSTR STR?216,"Smokey the Bear puts out both the fire and you."
|
||||
.GSTR STR?217,"This is a very small room. In the corner is a rickety wooden ladder, leading downward. It might be safe to descend. There is also a staircase leading upward."
|
||||
.GSTR STR?218,"This is a rather wide room. On one side is the bottom of a narrow wooden ladder. To the west and the south are passages leaving the room."
|
||||
.GSTR STR?219,"You have come to a dead end in the mine.
|
||||
There is a small pile of coal here."
|
||||
.GSTR STR?220,"This is a long and narrow passage, which is cluttered with broken timbers. A wide passage comes from the east and turns at the west end of the room into a very narrow passageway. From the west comes a strong draft."
|
||||
.GSTR STR?221,"You cannot fit through this passage with that load."
|
||||
.GSTR STR?222,"This is a small chamber carved out of the rock at the end of a short crawl. On the wall is crudely chiseled the number ""8"". The only apparent exit, to the east, seems to be a blur and a loud, whirring sound resounds through the rock."
|
||||
.GSTR STR?223,"You are repelled from the exit by a fierce wind."
|
||||
.GSTR STR?224,"A spray can is in the corner. In large type is the legend ""Frobozz Magic Grue Repellent."""
|
||||
.GSTR STR?225,"!!! FROBOZZ MAGIC GRUE REPELLENT !!!
|
||||
|
||||
Instructions for use: Apply liberally to creature to be protected. Duration of effect is unpredictable. Use only in place of death!
|
||||
|
||||
(No warranty expressed or implied)"
|
||||
.GSTR STR?226,"The can explodes and you die a horribly smelly death."
|
||||
.GSTR STR?227,"Sacrificial Altar
|
||||
This is the interior of a huge temple of primitive construction. A few flickering torches cast a sallow illumination over the altar, which is still drenched with the blood of human sacrifice. Behind the altar is an enormous statue of a demon which seems to reach towards you with dripping fangs and razor-sharp talons. A low noise begins behind you, and you turn to see hundreds of hunched and hairy shapes. A guttural chant issues from their throats. Near you stands a figure draped in a robe of deepest black, brandishing a huge sword. The chant grows louder as the robed figure approaches the altar. The large figure spots you and approaches menacingly. He reaches into his cloak and pulls out a great, glowing dagger. He pulls you onto the altar, and with a murmur of approval from the throng, he slices you neatly across your abdomen."
|
||||
.GSTR STR?228,"You are on the south shore of the lake. Rock formations prevent movement to the west and thickening swamp to the east makes the going all but impossible. To the south, where the beach meets a rock formation, you can make out a dark passage sloping steeply upward into the rock."
|
||||
.GSTR STR?229,"The swamp is too thick."
|
||||
.GSTR STR?230,"If you want to go into the lake, you should say so."
|
||||
.GSTR STR?231,"You can't walk through a piece of metal."
|
||||
.GSTR STR?232,"The hole is too far above your head."
|
||||
.GSTR STR?233,"You are in a wide stone channel, part of the water supply system for the Great Underground Empire. The source of water was a waterfall to the south, which has long since dried up. Water flowed along the aqueduct to the north. This region is lit from above, although the source of light is not apparent."
|
||||
.GSTR STR?234,"You can't climb the dried-up waterfall."
|
||||
.GSTR STR?235,"The arch before you is broken."
|
||||
.GSTR STR?236,"It's a long way down...."
|
||||
.GSTR STR?237,"The arch to the south is broken."
|
||||
.GSTR STR?238,"You execute a perfect swan dive into the rocks below!"
|
||||
.GSTR STR?239,"The light from above seems to be focused in the center of the room, where a single key is lying in the dust."
|
||||
.GSTR STR?240,"The key is a long and heavy skeleton key."
|
||||
.GSTR STR?241,"The key is short and stubby, shaped like no lock you have ever seen."
|
||||
.GSTR STR?242,"The key is round and thin, more like a pencil than a key."
|
||||
.GSTR STR?243,"The key is shiny with many prongs."
|
||||
.GSTR STR?244,"The key is sharp as an awl, and rusted badly."
|
||||
.GSTR STR?245,"One of the stone figures (or maybe both, it's hard to tell) suddenly springs to life and crushes you with his stone bludgeon."
|
||||
.GSTR STR?246,"You enter the quicksand and slowly sink to a new low in adventuring."
|
||||
|
||||
.ENDI
|
Loading…
Reference in a new issue