Revision 23 (Original Source)
This commit is contained in:
commit
47fbe00ae6
|
@ -0,0 +1,916 @@
|
|||
|
||||
|
||||
.FUNCT FERRY-F
|
||||
EQUAL? PRSA,V?CLIMB-ON,V?THROUGH,V?BOARD \?ELS5
|
||||
IN? FERRY,FERRY-LANDING \?ELS10
|
||||
EQUAL? HERE,FERRY-LANDING \?ELS15
|
||||
CALL TELL-CANT-BOARD
|
||||
RSTACK
|
||||
?ELS15: CALL TELL-YOURE-NOT,STR?303
|
||||
RSTACK
|
||||
?ELS10: PRINTR "It's not at the landing. Be patient."
|
||||
?ELS5: EQUAL? PRSA,V?WALK-TO \?ELS23
|
||||
EQUAL? HERE,FERRY-LANDING /?ELS23
|
||||
CALL TELL-SHD-DIR
|
||||
RSTACK
|
||||
?ELS23: EQUAL? PRSA,V?LISTEN \FALSE
|
||||
PRINTR "You hear its engines."
|
||||
|
||||
|
||||
.FUNCT TELL-CANT-BOARD
|
||||
CALL TELL-DONT-HAVE,STR?304
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT GLOBAL-FERRY-F
|
||||
EQUAL? PRSA,V?FIND,V?TELL,V?ASK-ABOUT /FALSE
|
||||
CALL GLOBAL-NOT-HERE-PRINT,GLOBAL-FERRY
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MM-FORE-DECK-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
CALL TELL-FORE-END,SALVAGER
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TELL-FORE-END,OBJ
|
||||
PRINTI "You are at the fore end of the "
|
||||
CALL DPRINT,OBJ
|
||||
PRINTR ". You can see the ocean over the rail that runs around the deck. A ladder leads below deck, and the wheelhouse is aft of you. A chair is bolted to the deck."
|
||||
|
||||
|
||||
.FUNCT DECK-CHAIR-F,RARG=0
|
||||
EQUAL? RARG,M-OBJDESC \?ELS5
|
||||
IN? PETE,DECK-CHAIR \TRUE
|
||||
CALL TELL-IN-CHAIR,PETE
|
||||
RTRUE
|
||||
?ELS5: ZERO? RARG \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS15
|
||||
PRINTI "This weatherbeaten chair is used by a lookout while standing watch. It faces forward and is bolted to the deck. "
|
||||
IN? PETE,DECK-CHAIR \?CND18
|
||||
CALL TELL-IN-CHAIR,PETE
|
||||
?CND18: CRLF
|
||||
RTRUE
|
||||
?ELS15: EQUAL? PRSA,V?ASK-ABOUT \?ELS22
|
||||
PRINTR """It's the lookout's chair."""
|
||||
?ELS22: EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS26
|
||||
EQUAL? PRSI,DECK-CHAIR \?ELS26
|
||||
CALL IDROP
|
||||
ZERO? STACK /TRUE
|
||||
IN? PLAYER,DECK-CHAIR \?CND32
|
||||
LOC DECK-CHAIR
|
||||
MOVE PRSO,STACK
|
||||
?CND32: PRINTR "It slides off the chair and onto the deck."
|
||||
?ELS26: EQUAL? PRSA,V?BOARD \FALSE
|
||||
IN? PETE,DECK-CHAIR \FALSE
|
||||
CALL TELL-ALREADY,STR?305
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TELL-IN-CHAIR,OCC
|
||||
CALL START-SENTENCE,OCC
|
||||
PRINTR " is sitting in the chair."
|
||||
|
||||
|
||||
.FUNCT MM-PORT-DECK-F,RARG,DOCK?
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
MOVE BUNK,MM-CREW-QTRS
|
||||
MOVE UNDER-BUNK,MM-CREW-QTRS
|
||||
MOVE STOVE,MM-GALLEY
|
||||
MOVE DECK-CHAIR,MM-FORE-DECK
|
||||
MOVE REDS-BUNK,MM-CAPT-CABIN
|
||||
MOVE LOUNGE-CHAIR,MM-LOUNGE
|
||||
IN? PETE,MM-GALLEY \?CND6
|
||||
MOVE FOOD,STOVE
|
||||
FSET FOOD,NDESCBIT
|
||||
?CND6: ZERO? WATER-DELIVERED /FALSE
|
||||
EQUAL? SHIP-CHOSEN,SALVAGER \FALSE
|
||||
MOVE DRINKING-WATER,MM-GALLEY
|
||||
FSET DRINKING-WATER,NDESCBIT
|
||||
RFALSE
|
||||
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
||||
CALL TELL-FOO-SIDE,SALVAGER,STR?184,STR?183
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TELL-FOO-SIDE,OBJ,SIDE,HOUSE,DOCK?
|
||||
PRINTI "You are on the "
|
||||
PRINT SIDE
|
||||
PRINTI " side of the "
|
||||
CALL DPRINT,OBJ
|
||||
PRINTI ", a sturdy vessel designed for "
|
||||
EQUAL? OBJ,TRAWLER \?ELS5
|
||||
PRINTI "trawling"
|
||||
JUMP ?CND3
|
||||
?ELS5: PRINTI "deep-sea salvaging"
|
||||
?CND3: PRINTI ". To "
|
||||
PRINT HOUSE
|
||||
PRINTI " is a small wheelhouse, while "
|
||||
EQUAL? OBJ,TRAWLER \?ELS16
|
||||
SET 'DOCK?,TRAWLER-DOCKED
|
||||
JUMP ?CND14
|
||||
?ELS16: SET 'DOCK?,SALVAGER-DOCKED
|
||||
?CND14: ZERO? DOCK? /?ELS23
|
||||
PRINTI "to "
|
||||
PRINT SIDE
|
||||
PRINTR " is the gangway leading to the dock. The gentle rocking of the boat in port reminds you of time spent on the open sea."
|
||||
?ELS23: PRINTI "the ocean, with its blue-green waves crashing, lies off the "
|
||||
PRINT SIDE
|
||||
PRINTR " rail."
|
||||
|
||||
|
||||
.FUNCT TELL-AFT-DECK
|
||||
PRINTI "The smell of diesel fuel is strong but reassuring here on the aft deck. A ladder leads below deck, while forward you can see the entrance to the command center of the boat, the wheelhouse."
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT MM-AFT-DECK-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
CALL TELL-AFT-DECK
|
||||
PRINTR " A huge air compressor is bolted to the deck by the aft rail."
|
||||
?ELS5: EQUAL? RARG,M-BEG \?ELS9
|
||||
EQUAL? PRSA,V?WALK \FALSE
|
||||
IN? AIR-HOSE,DEEP-SUIT \FALSE
|
||||
IN? DEEP-SUIT,PLAYER \FALSE
|
||||
PRINTI "You don't want to drag the "
|
||||
CALL DPRINT,AIR-HOSE
|
||||
PRINTR " around the boat."
|
||||
?ELS9: EQUAL? RARG,M-FLASH \FALSE
|
||||
IN? WEASEL,MM-AFT-DECK \FALSE
|
||||
ZERO? AT-SEA /FALSE
|
||||
ZERO? WEASEL-APPREHENDED \FALSE
|
||||
CALL QUEUED?,I-PENDULUM
|
||||
ZERO? STACK \FALSE
|
||||
CALL QUEUE,I-PENDULUM,-1
|
||||
PUT STACK,0,1
|
||||
CALL TELL-WEASEL-TOSSES
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TELL-WEASEL-TOSSES
|
||||
FCLEAR LINE-HACK,INVISIBLE
|
||||
LOC WEASEL
|
||||
MOVE LINE-HACK,STACK
|
||||
PRINTI "The Weasel tosses a line over the side and says, "
|
||||
PRINT LINE-STR
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT LINE-HACK-F,HOLDER=0
|
||||
LOC LINE-HACK
|
||||
IN? WEASEL,STACK \?ELS3
|
||||
SET 'HOLDER,WEASEL
|
||||
JUMP ?CND1
|
||||
?ELS3: LOC LINE-HACK
|
||||
IN? JOHNNY,STACK \?CND1
|
||||
SET 'HOLDER,JOHNNY
|
||||
?CND1: EQUAL? PRSA,V?EXAMINE \?ELS10
|
||||
ZERO? HOLDER /?ELS15
|
||||
CALL START-SENTENCE,HOLDER
|
||||
PRINTI " is holding one end of a weighted "
|
||||
CALL DPRINT,LINE-HACK
|
||||
PRINTR "."
|
||||
?ELS15: PRINTI "One end of "
|
||||
CALL APRINT,LINE-HACK
|
||||
PRINTR " is here. Leave it alone."
|
||||
?ELS10: EQUAL? PRSA,V?ASK-ABOUT,V?FIND /FALSE
|
||||
ZERO? HOLDER /?ELS31
|
||||
CALL START-SENTENCE,HOLDER
|
||||
PRINTR " pulls it away. ""Don't mess with that!"""
|
||||
?ELS31: PRINTR "Leave it alone."
|
||||
|
||||
|
||||
.FUNCT MM-COMPRESSOR-F,TICK
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
||||
CALL TELL-NO-NO
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?PUT \?ELS7
|
||||
EQUAL? PRSI,MM-COMPRESSOR \?ELS7
|
||||
PRINTR "There's no place to put it."
|
||||
?ELS7: EQUAL? PRSA,V?EXAMINE \?ELS13
|
||||
PRINTI "The large, gasoline-powered air compressor is "
|
||||
FSET? MM-COMPRESSOR,ONBIT \?ELS18
|
||||
PRINTI "on"
|
||||
JUMP ?CND16
|
||||
?ELS18: PRINTI "off"
|
||||
?CND16: PRINTI ". You can quickly see it "
|
||||
CALL INT,I-MM-COMPRESSOR
|
||||
GET STACK,C-TICK >TICK
|
||||
ZERO? TICK \?ELS29
|
||||
PRINTI "is out of fuel"
|
||||
JUMP ?CND27
|
||||
?ELS29: EQUAL? TICK,80 \?ELS36
|
||||
PRINTI "has"
|
||||
JUMP ?CND34
|
||||
?ELS36: PRINTI "started with"
|
||||
?CND34: PRINTI " fuel for an hour and a half's operation"
|
||||
?CND27: PRINTI ". A retractable "
|
||||
CALL DPRINT,AIR-HOSE
|
||||
PRINTR " is built in."
|
||||
?ELS13: EQUAL? PRSA,V?LAMP-ON \?ELS48
|
||||
FSET? MM-COMPRESSOR,ONBIT \?ELS53
|
||||
CALL TELL-ALREADY,STR?56
|
||||
RSTACK
|
||||
?ELS53: CALL INT,I-MM-COMPRESSOR
|
||||
PUT STACK,0,1
|
||||
FSET MM-COMPRESSOR,ONBIT
|
||||
PRINTR "Okay. The compressor is on."
|
||||
?ELS48: EQUAL? PRSA,V?LAMP-OFF \?ELS59
|
||||
FSET? MM-COMPRESSOR,ONBIT \?ELS64
|
||||
CALL INT,I-MM-COMPRESSOR
|
||||
PUT STACK,0,0
|
||||
FCLEAR MM-COMPRESSOR,ONBIT
|
||||
CALL TELL-NOW,MM-COMPRESSOR,STR?264
|
||||
RSTACK
|
||||
?ELS64: CALL TELL-ALREADY,STR?264
|
||||
RSTACK
|
||||
?ELS59: EQUAL? PRSA,V?LISTEN \FALSE
|
||||
FSET? MM-COMPRESSOR,ONBIT \FALSE
|
||||
PRINTR "The compressor is making a steady loud noise."
|
||||
|
||||
|
||||
.FUNCT AIR-HOSE-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
IN? AIR-HOSE,DEEP-SUIT \?ELS10
|
||||
GETP HERE,P?LINE
|
||||
EQUAL? STACK,UNDERWATER-LINE-C \?ELS15
|
||||
PRINTI "This "
|
||||
CALL DPRINT,AIR-HOSE
|
||||
PRINTI " goes from the aft deck of the "
|
||||
CALL DPRINT,SALVAGER
|
||||
PRINTR " and ends at your diving suit. Without it, you would find breathing impossible."
|
||||
?ELS15: PRINTI "It connects the "
|
||||
CALL DPRINT,DEEP-SUIT
|
||||
PRINTI " and the "
|
||||
CALL DPRINT,MM-COMPRESSOR
|
||||
PRINTI " "
|
||||
EQUAL? HERE,MM-AFT-DECK \?ELS24
|
||||
PRINTI "here"
|
||||
JUMP ?CND22
|
||||
?ELS24: PRINTI "on the aft deck"
|
||||
?CND22: PRINTR "."
|
||||
?ELS10: PRINTI "It is designed to be connected to a "
|
||||
CALL DPRINT,DEEP-SUIT
|
||||
PRINTR " to provide air and is about 600 feet long."
|
||||
?ELS5: EQUAL? PRSA,V?TIE,V?PUT \?ELS38
|
||||
EQUAL? PRSI,DEEP-SUIT /?THN41
|
||||
EQUAL? PRSO,DEEP-SUIT \?ELS38
|
||||
?THN41: IN? AIR-HOSE,DEEP-SUIT \?ELS47
|
||||
CALL TELL-ALREADY,STR?308
|
||||
RSTACK
|
||||
?ELS47: MOVE AIR-HOSE,DEEP-SUIT
|
||||
CALL TELL-NOW,AIR-HOSE,CONNECT-STR
|
||||
RSTACK
|
||||
?ELS38: EQUAL? PRSA,V?TAKE \?ELS51
|
||||
IN? AIR-HOSE,DEEP-SUIT \?ELS56
|
||||
CALL TELL-ALREADY,CONNECT-STR
|
||||
RSTACK
|
||||
?ELS56: PRINTI "Why drag it around? Just connect it to the "
|
||||
CALL DPRINT,DEEP-SUIT
|
||||
PRINTR "."
|
||||
?ELS51: EQUAL? PRSA,V?TIE \?ELS62
|
||||
CALL TELL-YOU-CANT,STR?309
|
||||
RSTACK
|
||||
?ELS62: EQUAL? PRSA,V?UNTIE \?ELS64
|
||||
GETP HERE,P?LINE
|
||||
EQUAL? STACK,UNDERWATER-LINE-C \?ELS69
|
||||
CALL JIGS-UP,STR?310
|
||||
RSTACK
|
||||
?ELS69: MOVE AIR-HOSE,MM-COMPRESSOR
|
||||
PRINTR "The hose retracts back to the compressor."
|
||||
?ELS64: EQUAL? PRSA,V?MOVE \?ELS75
|
||||
PRINTR "That was fun."
|
||||
?ELS75: EQUAL? PRSA,V?CLIMB-FOO \FALSE
|
||||
CALL TELL-YOU-CANT,STR?311
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TELL-WHEELHOUSE,OBJ
|
||||
PRINTI " Through the glass windows you see the "
|
||||
ZERO? AT-SEA /?ELS7
|
||||
PRINTR "ocean churning all around you."
|
||||
?ELS7: CALL DPRINT,OBJ
|
||||
PRINTR " docked at the wharf, and the island stretching aft. Forward, you see the choppy waters of the bay."
|
||||
|
||||
|
||||
.FUNCT MM-WHEELHOUSE-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
PRINTI "You are in the wheelhouse with a passageway leading out onto the deck abaft. You can see the "
|
||||
CALL DPRINT,MM-COMPRESSOR
|
||||
PRINTI " sitting there, taking up most of the aft deck."
|
||||
CALL TELL-WHEELHOUSE,TRAWLER
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-BEG \FALSE
|
||||
EQUAL? OCEAN,PRSO,PRSI \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS19
|
||||
PRINTR "You see the ocean through the window."
|
||||
?ELS19: EQUAL? PRSA,V?ASK-ABOUT,V?FIND /FALSE
|
||||
CALL TELL-YOU-CANT,STR?313
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT COMPRESSOR-PSEUDO,PARG=0
|
||||
EQUAL? PARG,M-NAME \?ELS5
|
||||
PUTP PSEUDO-OBJECT,P?SDESC,STR?314
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
|
||||
CALL TELL-YOU-CANT,STR?315
|
||||
RSTACK
|
||||
?ELS7: CALL TELL-CANT-REACH,STR?316
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MM-LOCKER-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are in a relatively empty locker."
|
||||
PRINT SPARE-PARTS-STR
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT METAL-DETECTOR-F,TMP
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTI "The "
|
||||
CALL DPRINT,METAL-DETECTOR
|
||||
PRINTI "'s label is well-worn. It has a "
|
||||
CALL DPRINT,DETECTOR-SWITCH
|
||||
PRINTI " which is currently "
|
||||
ZERO? DETECTOR-ON /?ELS10
|
||||
PRINTI "on"
|
||||
JUMP ?CND8
|
||||
?ELS10: PRINTI "off"
|
||||
?CND8: PRINTI ", and a compartment on the side which is "
|
||||
FSET? DETECTOR-COMPARTMENT,OPENBIT \?ELS22
|
||||
PRINTI "open"
|
||||
FIRST? DETECTOR-COMPARTMENT >TMP \?CND20
|
||||
PRINTI " and contains "
|
||||
CALL APRINT,TMP
|
||||
JUMP ?CND20
|
||||
?ELS22: PRINTI "closed"
|
||||
?CND20: PRINTR "."
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS37
|
||||
SET 'DETECTOR-ON,TRUE-VALUE
|
||||
CALL TELL-SWITCH,STR?56
|
||||
RTRUE
|
||||
?ELS37: EQUAL? PRSA,V?LAMP-OFF \?ELS39
|
||||
SET 'DETECTOR-ON,FALSE-VALUE
|
||||
CALL TELL-SWITCH,STR?264
|
||||
RTRUE
|
||||
?ELS39: EQUAL? PRSA,V?LISTEN \?ELS41
|
||||
CALL DETECTOR-NOISE,TRUE-VALUE
|
||||
RTRUE
|
||||
?ELS41: EQUAL? PRSA,V?PUT \?ELS43
|
||||
EQUAL? PRSI,METAL-DETECTOR \?ELS43
|
||||
CALL PERFORM,V?PUT,PRSO,DETECTOR-COMPARTMENT
|
||||
RTRUE
|
||||
?ELS43: EQUAL? PRSA,V?EMPTY,V?CLOSE,V?OPEN \?ELS47
|
||||
CALL PERFORM,PRSA,DETECTOR-COMPARTMENT
|
||||
SET 'P-IT-OBJECT,METAL-DETECTOR
|
||||
RTRUE
|
||||
?ELS47: EQUAL? PRSA,V?LOOK-INSIDE \?ELS49
|
||||
CALL PERFORM,V?EXAMINE,DETECTOR-COMPARTMENT
|
||||
SET 'P-IT-OBJECT,METAL-DETECTOR
|
||||
RTRUE
|
||||
?ELS49: EQUAL? PRSA,V?SHAKE \FALSE
|
||||
FSET? DETECTOR-COMPARTMENT,OPENBIT \?ELS54
|
||||
FIRST? DETECTOR-COMPARTMENT \?ELS54
|
||||
MOVE DRY-CELL,HERE
|
||||
SET 'DETECTOR-POWERED,FALSE-VALUE
|
||||
PRINTI "The "
|
||||
CALL DPRINT,DRY-CELL
|
||||
PRINTR " falls out of the machine."
|
||||
?ELS54: PRINTR "Nothing happens."
|
||||
|
||||
|
||||
.FUNCT DETECTOR-LABEL-F
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
PRINTR "You tug at it, but it can't be pulled off."
|
||||
|
||||
|
||||
.FUNCT DETECTOR-SWITCH-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
ZERO? DETECTOR-ON /?ELS8
|
||||
CALL TELL-SWITCH,STR?56
|
||||
RTRUE
|
||||
?ELS8: CALL TELL-SWITCH,STR?264
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS13
|
||||
CALL PERFORM,V?LAMP-ON,METAL-DETECTOR
|
||||
SET 'P-IT-OBJECT,DETECTOR-SWITCH
|
||||
RTRUE
|
||||
?ELS13: EQUAL? PRSA,V?LAMP-OFF \?ELS15
|
||||
CALL PERFORM,V?LAMP-OFF,METAL-DETECTOR
|
||||
SET 'P-IT-OBJECT,DETECTOR-SWITCH
|
||||
RTRUE
|
||||
?ELS15: EQUAL? PRSA,V?THROW,V?MOVE,V?TURN \FALSE
|
||||
ZERO? DETECTOR-ON /?ELS20
|
||||
CALL PERFORM,V?LAMP-OFF,METAL-DETECTOR
|
||||
JUMP ?CND18
|
||||
?ELS20: CALL PERFORM,V?LAMP-ON,METAL-DETECTOR
|
||||
?CND18: SET 'P-IT-OBJECT,DETECTOR-SWITCH
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT DETECTOR-COMPARTMENT-F,RARG=0
|
||||
EQUAL? RARG,M-CONT \?ELS5
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
EQUAL? PRSO,DRY-CELL \FALSE
|
||||
CALL ITAKE
|
||||
ZERO? STACK /TRUE
|
||||
PRINTI "Taken."
|
||||
CRLF
|
||||
ZERO? DETECTOR-POWERED /TRUE
|
||||
SET 'DETECTOR-POWERED,FALSE-VALUE
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS23
|
||||
FSET? DETECTOR-COMPARTMENT,OPENBIT \?ELS26
|
||||
PRINTI "The compartment is on the side of the machine. Inside "
|
||||
FIRST? DETECTOR-COMPARTMENT \?ELS31
|
||||
PRINTI "is a connected"
|
||||
JUMP ?CND29
|
||||
?ELS31: PRINTI "are connections for a"
|
||||
?CND29: PRINTI " nine-volt "
|
||||
CALL DPRINT,DRY-CELL
|
||||
PRINTR "."
|
||||
?ELS26: CALL TELL-CLOSED,STR?319
|
||||
RTRUE
|
||||
?ELS23: EQUAL? PRSA,V?PUT \?ELS43
|
||||
EQUAL? PRSO,DETECTOR-COMPARTMENT /FALSE
|
||||
FSET? DETECTOR-COMPARTMENT,OPENBIT /?ELS50
|
||||
CALL TELL-CLOSED,STR?320
|
||||
RSTACK
|
||||
?ELS50: EQUAL? PRSO,DRY-CELL \?ELS52
|
||||
MOVE DRY-CELL,DETECTOR-COMPARTMENT
|
||||
FSET? DRY-CELL,RMUNGBIT /?CND53
|
||||
SET 'DETECTOR-POWERED,TRUE-VALUE
|
||||
?CND53: PRINTI "The "
|
||||
CALL DPRINT,DRY-CELL
|
||||
PRINTR " fits snugly inside."
|
||||
?ELS52: PRINTR "Unfortunately, it doesn't fit."
|
||||
?ELS43: EQUAL? PRSA,V?OPEN \?ELS63
|
||||
IN? DRY-CELL,DETECTOR-COMPARTMENT \?ELS63
|
||||
GETP HERE,P?LINE
|
||||
EQUAL? STACK,UNDERWATER-LINE-C \?ELS63
|
||||
CALL AIRTIGHT-ROOM?
|
||||
ZERO? STACK \?ELS63
|
||||
FSET DRY-CELL,RMUNGBIT
|
||||
SET 'DETECTOR-POWERED,FALSE-VALUE
|
||||
RFALSE
|
||||
?ELS63: EQUAL? PRSA,V?EMPTY \FALSE
|
||||
FSET? DETECTOR-COMPARTMENT,OPENBIT \FALSE
|
||||
SET 'DETECTOR-POWERED,FALSE-VALUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT DEEP-SUIT-F
|
||||
EQUAL? PRSA,V?CLOSE,V?OPEN \?ELS5
|
||||
CALL TELL-NO-NO
|
||||
RSTACK
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
|
||||
PRINTI "This "
|
||||
CALL DPRINT,DEEP-SUIT
|
||||
PRINTR " is bulky on land, but underwater it will protect you to 500 feet. It has a hood with ""viewport"" and a connection for a compressor hose."
|
||||
?ELS7: EQUAL? PRSA,V?PUT \?ELS11
|
||||
EQUAL? PRSI,DEEP-SUIT \?ELS11
|
||||
EQUAL? PRSO,AIR-HOSE /?ELS11
|
||||
CALL TELL-NO-NO
|
||||
RSTACK
|
||||
?ELS11: EQUAL? PRSA,V?WEAR \?ELS15
|
||||
FSET? WET-SUIT,WORNBIT \?ELS15
|
||||
CALL TELL-NO-FIT,STR?321
|
||||
RSTACK
|
||||
?ELS15: EQUAL? PRSA,V?DISEMBARK,V?THROW,V?DROP \FALSE
|
||||
GETP HERE,P?LINE
|
||||
EQUAL? STACK,UNDERWATER-LINE-C \FALSE
|
||||
CALL JIGS-UP,STR?322
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MM-CREW-QTRS-F,RARG,W
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
CALL TELL-CREW-QTRS
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-ENTER \FALSE
|
||||
CALL MOVE-SHARED-OBJECTS,MM-CREW-QTRS
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT BUNK-F,RARG=0,F
|
||||
ZERO? RARG \FALSE
|
||||
EQUAL? PRSA,V?SLEEP,V?BOARD \?ELS10
|
||||
FIRST? BUNK >F \?ELS16
|
||||
EQUAL? F,PLAYER \?THN13
|
||||
?ELS16: CALL WEARING-SOMETHING?
|
||||
ZERO? STACK /?ELS10
|
||||
?THN13: CALL TELL-NOT-COMFORTABLE
|
||||
RSTACK
|
||||
?ELS10: EQUAL? PRSA,V?HIDE-UNDER,V?PUT-UNDER \?ELS18
|
||||
EQUAL? PRSO,GLOBAL-SELF,ME \?ELS23
|
||||
PRINTR "You won't fit."
|
||||
?ELS23: GETP PRSO,P?SIZE
|
||||
LESS? STACK,5 \?ELS27
|
||||
FIRST? UNDER-BUNK \?ELS32
|
||||
CALL TELL-NO-FIT
|
||||
RSTACK
|
||||
?ELS32: MOVE PRSO,UNDER-BUNK
|
||||
FSET PRSO,NDESCBIT
|
||||
CALL TELL-NOW,PRSO,STR?323
|
||||
RSTACK
|
||||
?ELS27: CALL TELL-NO-FIT
|
||||
RSTACK
|
||||
?ELS18: EQUAL? PRSA,V?LOOK-UNDER \FALSE
|
||||
FIRST? UNDER-BUNK >F \?ELS43
|
||||
SET 'P-IT-OBJECT,F
|
||||
PRINTI "There is "
|
||||
CALL APRINT,F
|
||||
PRINTR " under the mattress."
|
||||
?ELS43: PRINTR "Nobody's hidden his life savings there."
|
||||
|
||||
|
||||
.FUNCT WEARING-SOMETHING?,F
|
||||
FIRST? PLAYER >F /?KLU12
|
||||
?KLU12:
|
||||
?PRG1: ZERO? F /FALSE
|
||||
FSET? F,WORNBIT \?ELS7
|
||||
EQUAL? F,WATCH \TRUE
|
||||
?ELS7: NEXT? F >F /?KLU13
|
||||
?KLU13: JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT UNDER-BUNK-F,RARG=0
|
||||
EQUAL? RARG,M-OBJDESC /TRUE
|
||||
EQUAL? RARG,M-CONT \FALSE
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
FCLEAR PRSO,NDESCBIT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT BUNKS-PSEUDO,PARG=0
|
||||
EQUAL? PARG,M-NAME \?ELS5
|
||||
PUTP PSEUDO-OBJECT,P?SDESC,STR?324
|
||||
RTRUE
|
||||
?ELS5: PRINTR "The only bunk you should worry about is your own."
|
||||
|
||||
|
||||
.FUNCT MM-GALLEY-F,RARG
|
||||
CALL GENERIC-GALLEY-F,RARG,MM-GALLEY
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT GENERIC-GALLEY-F,RARG,PLACE,?TMP1
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
PUTP GLOBAL-SURFACE,P?SDESC,STR?36
|
||||
CALL MOVE-SHARED-OBJECTS,PLACE
|
||||
RFALSE
|
||||
?ELS5: EQUAL? RARG,M-LOOK \?ELS7
|
||||
PRINTI "You are in the "
|
||||
EQUAL? PLACE,MM-GALLEY \?ELS12
|
||||
CALL DPRINT,SALVAGER
|
||||
JUMP ?CND10
|
||||
?ELS12: CALL DPRINT,TRAWLER
|
||||
?CND10: PRINTI "'s galley. A stove and a small table are the fixtures here."
|
||||
IN? FOOD,STOVE \?CND21
|
||||
CALL TELL-STEW-ON
|
||||
?CND21: ZERO? WATER-DELIVERED /?CND24
|
||||
GETP SHIP-CHOSEN,P?LINE >?TMP1
|
||||
GETP PLACE,P?LINE
|
||||
EQUAL? ?TMP1,STACK \?CND24
|
||||
PRINTI " Water is available."
|
||||
?CND24: PRINTR " A ladder leads up through the deck to the wheelhouse for feeding the captain in rough weather."
|
||||
?ELS7: EQUAL? RARG,M-BEG \FALSE
|
||||
CALL DOUBLE-DUTY-CHECK
|
||||
ZERO? STACK \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT DOUBLE-DUTY-CHECK
|
||||
EQUAL? PRSA,V?ASK-FOR \FALSE
|
||||
EQUAL? PRSO,PETE \FALSE
|
||||
EQUAL? PRSI,FOOD \?ELS12
|
||||
ZERO? SOUPS-ON /?ELS17
|
||||
PRINTI """Take some "
|
||||
CALL DPRINT,GLOBAL-SELF
|
||||
PRINTR "."""
|
||||
?ELS17: PRINTR """Wait 'til it's ready."""
|
||||
?ELS12: EQUAL? PRSI,DRINKING-WATER \FALSE
|
||||
PRINTI """Take it "
|
||||
CALL DPRINT,GLOBAL-SELF
|
||||
PRINTR "."""
|
||||
|
||||
|
||||
.FUNCT TELL-STEW-ON,LEAD?=1
|
||||
ZERO? LEAD? /?CND1
|
||||
PRINTI " "
|
||||
?CND1: PRINTI "A pot of stew is simmering on the stove."
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT STOVE-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTI "The small stove rests on gimbals that keep it relatively level."
|
||||
IN? FOOD,STOVE \?CND8
|
||||
CALL TELL-STEW-ON
|
||||
?CND8: CRLF
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS12
|
||||
IN? FOOD,STOVE \?ELS12
|
||||
CALL TELL-STEW-ON,FALSE-VALUE
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS12: EQUAL? PRSA,V?LAMP-OFF,V?LAMP-ON \FALSE
|
||||
PRINTR "That's Pete's job."
|
||||
|
||||
|
||||
.FUNCT MM-LOUNGE-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
PUTP GLOBAL-SURFACE,P?SDESC,STR?36
|
||||
CALL MOVE-SHARED-OBJECTS,MM-LOUNGE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT LOUNGE-CHAIR-F,RARG=0,F
|
||||
EQUAL? PRSO,CHAIR \FALSE
|
||||
EQUAL? PRSA,V?BOARD \FALSE
|
||||
FIRST? CHAIR >F \FALSE
|
||||
CALL TELL-NOT-COMFORTABLE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT REDS-BUNK-F
|
||||
EQUAL? PRSA,V?SIT,V?SLEEP,V?BOARD /?THN6
|
||||
EQUAL? PRSA,V?HIDE-UNDER,V?PUT-UNDER,V?SIT-ON /?THN6
|
||||
EQUAL? PRSA,V?PUT \?ELS5
|
||||
EQUAL? PRSI,REDS-BUNK \?ELS5
|
||||
?THN6: PRINTR "You know better than to disturb the captain's bunk!"
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
|
||||
PRINTR "It's shipshape."
|
||||
|
||||
|
||||
.FUNCT MM-ENGINE-ROOM-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are in a tiny cabin with barely enough room to breathe. By your feet lie the huge diesel engines of the "
|
||||
CALL DPRINT,SALVAGER
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT ENGINE-PSEUDO,PARG=0
|
||||
EQUAL? PARG,M-NAME \?ELS5
|
||||
PUTP PSEUDO-OBJECT,P?SDESC,STR?328
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
|
||||
PRINTR "The engines are extremely complex and delicate pieces of machinery."
|
||||
?ELS7: EQUAL? PRSA,V?PLUG,V?LAMP-OFF,V?LAMP-ON \?ELS11
|
||||
PRINTI "Leave the engines to "
|
||||
CALL DPRINT,WEASEL
|
||||
PRINTR " and he'll leave the diving to you."
|
||||
?ELS11: EQUAL? PRSA,V?ASK-ABOUT \?ELS15
|
||||
EQUAL? PRSO,WEASEL \?ELS15
|
||||
PRINTR """These are in pretty good shape."""
|
||||
?ELS15: EQUAL? PRSA,V?LISTEN \FALSE
|
||||
ZERO? AT-SEA /FALSE
|
||||
CALL TELL-YOU-CANT,STR?329
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NW-FORE-DECK-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
CALL TELL-FORE-END,TRAWLER
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NW-STARBOARD-DECK-F,RARG
|
||||
EQUAL? RARG,M-ENTER \?ELS5
|
||||
MOVE BUNK,NW-CREW-QTRS
|
||||
MOVE UNDER-BUNK,NW-CREW-QTRS
|
||||
MOVE STOVE,NW-GALLEY
|
||||
MOVE DECK-CHAIR,NW-FORE-DECK
|
||||
MOVE REDS-BUNK,NW-CAPT-CABIN
|
||||
MOVE LOUNGE-CHAIR,NW-LOUNGE
|
||||
IN? PETE,NW-GALLEY \?CND6
|
||||
MOVE FOOD,STOVE
|
||||
FSET FOOD,NDESCBIT
|
||||
?CND6: ZERO? WATER-DELIVERED /FALSE
|
||||
EQUAL? TRAWLER,SHIP-CHOSEN \FALSE
|
||||
MOVE DRINKING-WATER,NW-GALLEY
|
||||
FSET DRINKING-WATER,NDESCBIT
|
||||
RFALSE
|
||||
?ELS5: EQUAL? RARG,M-LOOK \FALSE
|
||||
CALL TELL-FOO-SIDE,TRAWLER,STR?183,STR?184
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT NW-AFT-DECK-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
CALL TELL-AFT-DECK
|
||||
CRLF
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-FLASH \FALSE
|
||||
IN? WEASEL,NW-AFT-DECK \FALSE
|
||||
ZERO? AT-SEA /FALSE
|
||||
ZERO? WEASEL-APPREHENDED \FALSE
|
||||
CALL QUEUED?,I-PENDULUM
|
||||
ZERO? STACK \FALSE
|
||||
CALL QUEUE,I-PENDULUM,-1
|
||||
PUT STACK,0,1
|
||||
CALL TELL-WEASEL-TOSSES
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NW-WHEELHOUSE-F,RARG
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
PRINTI "You are in the wheelhouse of the "
|
||||
CALL DPRINT,TRAWLER
|
||||
PRINTI ". The passageway leading out onto the deck lies abaft."
|
||||
CALL TELL-WHEELHOUSE,SALVAGER
|
||||
RTRUE
|
||||
?ELS5: EQUAL? RARG,M-BEG \FALSE
|
||||
EQUAL? OCEAN,PRSO,PRSI \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS19
|
||||
PRINTR "You see the ocean through the window."
|
||||
?ELS19: CALL TELL-YOU-CANT,STR?313
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NW-LOCKER-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are in a fairly empty storage locker. It must have been cleaned out after its last trawling expedition."
|
||||
PRINT SPARE-PARTS-STR
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TELL-SWITCH,STR
|
||||
PRINTI "The switch is now in the """
|
||||
PRINT STR
|
||||
PRINTR """ position."
|
||||
|
||||
|
||||
.FUNCT DRILL-F,RARG=0
|
||||
EQUAL? RARG,M-CONT \?ELS5
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
EQUAL? PRSO,BATTERY \FALSE
|
||||
CALL ITAKE
|
||||
ZERO? STACK /TRUE
|
||||
PRINTI "Taken."
|
||||
ZERO? DRILL-POWERED /?CND18
|
||||
SET 'DRILL-POWERED,FALSE-VALUE
|
||||
ZERO? DRILL-ON /?CND18
|
||||
CALL INT,I-DRILL
|
||||
PUT STACK,0,0
|
||||
PRINTI " The drill bit winds to a halt."
|
||||
?CND18: CRLF
|
||||
RTRUE
|
||||
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS29
|
||||
EQUAL? PRSO,DRILL \?ELS29
|
||||
ZERO? DRILL-ON /?ELS36
|
||||
CALL TELL-ALREADY,STR?56
|
||||
RSTACK
|
||||
?ELS36: ZERO? DRILL-POWERED /?ELS39
|
||||
SET 'DRILL-ON,TRUE-VALUE
|
||||
CALL INT,I-DRILL
|
||||
PUT STACK,0,1
|
||||
PRINTR "The drill bit begins to spin."
|
||||
?ELS39: SET 'DRILL-ON,TRUE-VALUE
|
||||
CALL TELL-SWITCH,STR?56
|
||||
RSTACK
|
||||
?ELS29: EQUAL? PRSA,V?LAMP-OFF \?ELS46
|
||||
EQUAL? PRSO,DRILL \?ELS46
|
||||
ZERO? DRILL-ON \?ELS53
|
||||
CALL TELL-ALREADY,STR?264
|
||||
RSTACK
|
||||
?ELS53: ZERO? DRILL-POWERED /?ELS55
|
||||
SET 'DRILL-ON,FALSE-VALUE
|
||||
CALL INT,I-DRILL
|
||||
PUT STACK,0,0
|
||||
PRINTR "The drill bit stops spinning."
|
||||
?ELS55: SET 'DRILL-ON,FALSE-VALUE
|
||||
CALL TELL-SWITCH,STR?264
|
||||
RSTACK
|
||||
?ELS46: EQUAL? PRSA,V?EXAMINE \?ELS62
|
||||
PRINTI "This waterproof wonder features a permanent bit"
|
||||
CALL QUEUED?,I-DRILL
|
||||
ZERO? STACK /?CND65
|
||||
PRINTI " which is turning"
|
||||
?CND65: PRINTI ", a panel which is "
|
||||
FSET? DRILL,OPENBIT \?ELS74
|
||||
PRINTI "open"
|
||||
ZERO? DRILL-POWERED /?ELS79
|
||||
PRINTI " with a C battery inside"
|
||||
JUMP ?CND72
|
||||
?ELS79: PRINTI ", revealing space for a C battery"
|
||||
JUMP ?CND72
|
||||
?ELS74: PRINTI "closed"
|
||||
?CND72: PRINTI ", and a switch which is in the """
|
||||
ZERO? DRILL-ON /?ELS95
|
||||
PRINTI "on"
|
||||
JUMP ?CND93
|
||||
?ELS95: PRINTI "off"
|
||||
?CND93: PRINTR """ position."
|
||||
?ELS62: EQUAL? PRSA,V?LOOK-INSIDE \?ELS106
|
||||
CALL PERFORM,V?EXAMINE,DRILL
|
||||
RTRUE
|
||||
?ELS106: EQUAL? PRSA,V?OPEN \?ELS108
|
||||
IN? BATTERY,DRILL \?ELS108
|
||||
GETP HERE,P?LINE
|
||||
EQUAL? STACK,UNDERWATER-LINE-C \?ELS108
|
||||
CALL AIRTIGHT-ROOM?
|
||||
ZERO? STACK \?ELS108
|
||||
FSET BATTERY,RMUNGBIT
|
||||
SET 'DRILL-POWERED,FALSE-VALUE
|
||||
RFALSE
|
||||
?ELS108: EQUAL? PRSI,DRILL \FALSE
|
||||
EQUAL? PRSA,V?PUT \?ELS117
|
||||
FSET? DRILL,OPENBIT /?ELS122
|
||||
SET 'P-IT-OBJECT,DRILL
|
||||
CALL TELL-CLOSED,STR?320
|
||||
RSTACK
|
||||
?ELS122: EQUAL? PRSO,BATTERY \?ELS124
|
||||
MOVE BATTERY,DRILL
|
||||
FSET? BATTERY,RMUNGBIT \?CND125
|
||||
CALL TELL-NOW,BATTERY,STR?332
|
||||
RTRUE
|
||||
?CND125: SET 'DRILL-POWERED,TRUE-VALUE
|
||||
ZERO? DRILL-ON /?ELS132
|
||||
CALL INT,I-DRILL
|
||||
PUT STACK,0,1
|
||||
PRINTR "The drill bit starts spinning."
|
||||
?ELS132: CALL TELL-NOW,BATTERY,STR?332
|
||||
RSTACK
|
||||
?ELS124: CALL TELL-NO-FIT
|
||||
RSTACK
|
||||
?ELS117: EQUAL? PRSA,V?TELL,V?ASK-ABOUT,V?TAKE /FALSE
|
||||
EQUAL? PRSA,V?PUT-ON,V?PUT-AGAINST /FALSE
|
||||
ZERO? DRILL-ON /?THN148
|
||||
ZERO? DRILL-POWERED \FALSE
|
||||
?THN148: EQUAL? PRSO,GLOBAL-TIME /FALSE
|
||||
SET 'P-IT-OBJECT,DRILL
|
||||
PRINTI "The "
|
||||
CALL DPRINT,DRILL
|
||||
PRINTR " isn't running!"
|
||||
|
||||
|
||||
.FUNCT GENERIC-HOLE-F
|
||||
EQUAL? PRSA,V?EXAMINE \?ELS5
|
||||
PRINTR "As holes go, it's very nice."
|
||||
?ELS5: EQUAL? PRSA,V?LOOK-INSIDE \?ELS9
|
||||
PRINTR "You see nothing new."
|
||||
?ELS9: EQUAL? PRSA,V?REACH-IN \FALSE
|
||||
PRINTR "It's not that big."
|
||||
|
||||
|
||||
.FUNCT ADD-HOLE,OBJ,I
|
||||
FSET? HOLE-1,INVISIBLE \?ELS3
|
||||
FCLEAR HOLE-1,INVISIBLE
|
||||
MOVE HOLE-1,OBJ
|
||||
JUMP ?CND1
|
||||
?ELS3: FSET? HOLE-2,INVISIBLE \?ELS5
|
||||
FCLEAR HOLE-2,INVISIBLE
|
||||
PUTP HOLE-1,P?SDESC,STR?335
|
||||
MOVE HOLE-2,OBJ
|
||||
JUMP ?CND1
|
||||
?ELS5: PRINTI "The drill should be dead now."
|
||||
CRLF
|
||||
?CND1: CALL INT,I-DRILL >I
|
||||
GET I,C-TICK
|
||||
SUB STACK,1
|
||||
PUT I,C-TICK,STACK
|
||||
GET I,C-TICK
|
||||
ZERO? STACK \TRUE
|
||||
CALL I-DRILL
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TELL-CREW-QTRS
|
||||
PRINTR "You are below deck in the crew's quarters. Narrow, uncomfortable bunks line the bulkheads, and you note the similarity between this area and a sardine can. Sleeping here is necessary but uninviting. A ladder leads up and out to the fore deck."
|
||||
|
||||
|
||||
.FUNCT NW-CREW-QTRS-F,RARG,W
|
||||
EQUAL? RARG,M-LOOK \?ELS5
|
||||
CALL TELL-CREW-QTRS
|
||||
RSTACK
|
||||
?ELS5: EQUAL? RARG,M-ENTER \FALSE
|
||||
CALL MOVE-SHARED-OBJECTS,NW-CREW-QTRS
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT NW-GALLEY-F,RARG
|
||||
CALL GENERIC-GALLEY-F,RARG,NW-GALLEY
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT NW-LOUNGE-F,RARG
|
||||
EQUAL? RARG,M-ENTER \FALSE
|
||||
PUTP GLOBAL-SURFACE,P?SDESC,STR?36
|
||||
CALL MOVE-SHARED-OBJECTS,NW-LOUNGE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT NW-ENGINE-ROOM-F,RARG
|
||||
EQUAL? RARG,M-LOOK \FALSE
|
||||
PRINTI "You are in a tiny, smelly space where it is difficult to breathe. By your feet lie the diesel engines of the "
|
||||
CALL DPRINT,TRAWLER
|
||||
PRINTR "."
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,98 @@
|
|||
|
||||
|
||||
.FUNCT QUEUE,RTN,TICK,CINT
|
||||
CALL INT,RTN >CINT
|
||||
PUT CINT,C-TICK,TICK
|
||||
RETURN CINT
|
||||
|
||||
|
||||
.FUNCT INT,RTN,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
|
||||
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 ENABLED?,RTN,C,E
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
ADD C-TABLE,C-INTS >C
|
||||
?PRG1: EQUAL? C,E /FALSE
|
||||
GET C,C-RTN
|
||||
EQUAL? STACK,RTN \?CND3
|
||||
GET C,C-ENABLED?
|
||||
ZERO? STACK \TRUE
|
||||
RFALSE
|
||||
?CND3: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT QUEUED?,RTN,C,E
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
ADD C-TABLE,C-INTS >C
|
||||
?PRG1: EQUAL? C,E /FALSE
|
||||
GET C,C-RTN
|
||||
EQUAL? STACK,RTN \?CND3
|
||||
GET C,C-ENABLED?
|
||||
ZERO? STACK /FALSE
|
||||
GET C,C-TICK
|
||||
ZERO? STACK \TRUE
|
||||
RFALSE
|
||||
?CND3: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT CLOCKER,C,E,TICK,FLG=0,VAL
|
||||
ZERO? CLOCK-WAIT /?CND1
|
||||
SET 'CLOCK-WAIT,FALSE-VALUE
|
||||
RFALSE
|
||||
?CND1: INC 'PRESENT-TIME
|
||||
GRTR? PRESENT-TIME,1439 \?CND5
|
||||
SUB PRESENT-TIME,1440 >PRESENT-TIME
|
||||
?CND5: ZERO? WATCH-WOUND /?CND8
|
||||
IGRTR? 'WATCH-MOVES,59 \?CND8
|
||||
SUB WATCH-MOVES,60 >WATCH-MOVES
|
||||
IGRTR? 'WATCH-SCORE,11 \?CND12
|
||||
SET 'WATCH-SCORE,0
|
||||
?CND12:
|
||||
?CND8: CALL WATCH-UPDATE
|
||||
ADD C-TABLE,C-INTS >C
|
||||
ADD C-TABLE,C-TABLELEN >E
|
||||
?PRG18: EQUAL? C,E \?ELS22
|
||||
RETURN FLG
|
||||
?ELS22: GET C,C-ENABLED?
|
||||
ZERO? STACK /?CND20
|
||||
GET C,C-TICK >TICK
|
||||
ZERO? TICK \?ELS27
|
||||
JUMP ?CND20
|
||||
?ELS27: SUB TICK,1
|
||||
PUT C,C-TICK,STACK
|
||||
GRTR? TICK,1 /?CND25
|
||||
GET C,C-RTN
|
||||
CALL STACK >VAL
|
||||
ZERO? VAL /?CND25
|
||||
ZERO? FLG /?THN38
|
||||
EQUAL? VAL,M-FATAL \?CND20
|
||||
?THN38: SET 'FLG,VAL
|
||||
?CND25:
|
||||
?CND20: ADD C,C-INTLEN >C
|
||||
JUMP ?PRG18
|
||||
|
||||
|
||||
.FUNCT WATCH-UPDATE
|
||||
IN? WATCH,PLAYER \?ELS5
|
||||
SET 'MOVES,WATCH-MOVES
|
||||
SET 'SCORE,WATCH-SCORE
|
||||
RETURN SCORE
|
||||
?ELS5: SET 'MOVES,99
|
||||
SET 'SCORE,111
|
||||
RETURN SCORE
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,108 @@
|
|||
"CLOCK for TOA #2
|
||||
Copyright (C) 1984 Infocom, Inc. All rights reserved."
|
||||
|
||||
<CONSTANT C-TABLELEN 246>
|
||||
|
||||
<GLOBAL C-TABLE <ITABLE NONE %<COND (<GASSIGNED? PREDGEN> 123) (T 246)>>>
|
||||
|
||||
;<GLOBAL C-DEMONS 300>
|
||||
|
||||
<GLOBAL C-INTS 246>
|
||||
|
||||
<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 "AUX" E C INT)
|
||||
#DECL ((RTN) ATOM (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>)
|
||||
(<EQUAL? <GET .C ,C-RTN> .RTN> <RETURN .C>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
||||
|
||||
<ROUTINE ENABLED? (RTN "AUX" C E)
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<SET C <REST ,C-TABLE ,C-INTS>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E> <RFALSE>)
|
||||
(<EQUAL? <GET .C ,C-RTN> .RTN>
|
||||
<COND (<0? <GET .C ,C-ENABLED?>> <RFALSE>)
|
||||
(T <RTRUE>)>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
||||
|
||||
<ROUTINE QUEUED? (RTN "AUX" C E)
|
||||
<SET E <REST ,C-TABLE ,C-TABLELEN>>
|
||||
<SET C <REST ,C-TABLE ,C-INTS>>
|
||||
<REPEAT ()
|
||||
<COND (<==? .C .E> <RFALSE>)
|
||||
(<EQUAL? <GET .C ,C-RTN> .RTN>
|
||||
<COND (<OR <0? <GET .C ,C-ENABLED?>>
|
||||
<0? <GET .C ,C-TICK>>>
|
||||
<RFALSE>)
|
||||
(T <RTRUE>)>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
||||
|
||||
<GLOBAL CLOCK-WAIT <>>
|
||||
|
||||
<ROUTINE CLOCKER ("AUX" C E TICK (FLG <>) VAL)
|
||||
#DECL ((C E) <PRIMTYPE VECTOR> (TICK) FIX ;(FLG) ;<OR FALSE ATOM>)
|
||||
<COND (,CLOCK-WAIT <SETG CLOCK-WAIT <>> <RFALSE>)>
|
||||
<SETG PRESENT-TIME <+ ,PRESENT-TIME 1>>
|
||||
<COND (<G? ,PRESENT-TIME 1439>
|
||||
<SETG PRESENT-TIME <- ,PRESENT-TIME 1440>>)>
|
||||
;<COND (<G? ,PRESENT-TIME 1019>
|
||||
<SETG BUSINESS-HOURS? <>>)
|
||||
(<G? ,PRESENT-TIME 539>
|
||||
<SETG BUSINESS-HOURS? T>)>
|
||||
<COND (,WATCH-WOUND
|
||||
<COND (<G? <SETG WATCH-MOVES <+ ,WATCH-MOVES 1>> 59>
|
||||
<SETG WATCH-MOVES <- ,WATCH-MOVES 60>>
|
||||
<COND (<G? <SETG WATCH-SCORE <+ ,WATCH-SCORE 1>> 11>
|
||||
<SETG WATCH-SCORE 0>)>)>)>
|
||||
<WATCH-UPDATE>
|
||||
<SET C <REST ,C-TABLE ,C-INTS ;<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>>
|
||||
<SET VAL <APPLY <GET .C ,C-RTN>>>>
|
||||
;<COND (,DEBUG
|
||||
<TELL "[Interrupt returning T.]" CR>)>
|
||||
<COND (<OR <NOT .FLG>
|
||||
<==? .VAL ,M-FATAL>>
|
||||
<SET FLG .VAL>)>)>)>)>
|
||||
<SET C <REST .C ,C-INTLEN>>>>
|
||||
|
||||
<ROUTINE WATCH-UPDATE ()
|
||||
<COND (<IN? ,WATCH ,PLAYER>
|
||||
<SETG MOVES ,WATCH-MOVES>
|
||||
<SETG SCORE ,WATCH-SCORE>)
|
||||
(T
|
||||
<SETG MOVES 99>
|
||||
<SETG SCORE 111>)>>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,528 @@
|
|||
|
||||
|
||||
.FUNCT DIR-PRINT,DIR,CNT=0,TBL,DRY=0
|
||||
ZERO? DIR \?ELS3
|
||||
PRINTI "out of view"
|
||||
RTRUE
|
||||
?ELS3: GETP HERE,P?LINE
|
||||
GRTR? STACK,BACK-ALLEY-LINE-C \?ELS7
|
||||
SET 'TBL,NAUTICAL-DIR-STRINGS
|
||||
JUMP ?CND1
|
||||
?ELS7: SET 'TBL,DIR-STRINGS
|
||||
SET 'DRY,TRUE-VALUE
|
||||
?CND1:
|
||||
?PRG10: GET TBL,CNT
|
||||
EQUAL? STACK,DIR \?CND12
|
||||
ZERO? DRY /?CND15
|
||||
EQUAL? DIR,P?UP,P?DOWN /?CND15
|
||||
PRINTI "the "
|
||||
?CND15: ADD CNT,1
|
||||
GET TBL,STACK
|
||||
PRINT STACK
|
||||
RTRUE
|
||||
?CND12: INC 'CNT
|
||||
JUMP ?PRG10
|
||||
|
||||
|
||||
.FUNCT FOLLOW-GOAL,PERSON,HERE,LINE,LN,RM,GT,GOAL,FLG,GOAL-FLAG=0,IGOAL=0,LOC,CNT=1,DIR
|
||||
LOC PERSON >HERE
|
||||
GETP PERSON,P?CHARACTER
|
||||
GET GOAL-TABLES,STACK >GT
|
||||
GET GT,GOAL-F
|
||||
EQUAL? HERE,STACK \?ELS3
|
||||
PUT GT,GOAL-S,FALSE-VALUE
|
||||
RETURN FALSE-VALUE
|
||||
?ELS3: GET GT,GOAL-ENABLE
|
||||
ZERO? STACK /FALSE
|
||||
?CND1: GETP HERE,P?STATION >LOC
|
||||
EQUAL? LOC,HERE /?CND6
|
||||
CALL MOVE-PERSON,PERSON,LOC
|
||||
RSTACK
|
||||
?CND6: GET GT,GOAL-I >IGOAL
|
||||
GET TRANSFER-TABLE,IGOAL >GOAL
|
||||
ZERO? GOAL \?CND9
|
||||
SET 'IGOAL,FALSE-VALUE
|
||||
GET GT,GOAL-S >GOAL
|
||||
?CND9: ZERO? GOAL /FALSE
|
||||
EQUAL? HERE,GOAL \?CND12
|
||||
ZERO? IGOAL /?ELS19
|
||||
ADD IGOAL,1
|
||||
GET TRANSFER-TABLE,STACK
|
||||
CALL MOVE-PERSON,PERSON,STACK >FLG
|
||||
GET GT,GOAL-F
|
||||
CALL ESTABLISH-GOAL,PERSON,STACK
|
||||
RETURN FLG
|
||||
?ELS19: GET GT,GOAL-F
|
||||
EQUAL? HERE,STACK /?ELS22
|
||||
PUT GT,GOAL-S,FALSE-VALUE
|
||||
GET GT,GOAL-F
|
||||
CALL MOVE-PERSON,PERSON,STACK >FLG
|
||||
RETURN FLG
|
||||
?ELS22: PUT GT,GOAL-S,FALSE-VALUE
|
||||
RETURN FALSE-VALUE
|
||||
?CND12: GETP GOAL,P?LINE
|
||||
CALL GET-LINE,STACK >LINE
|
||||
?PRG25: GET LINE,CNT >RM
|
||||
EQUAL? RM,HERE \?ELS29
|
||||
ZERO? GOAL-FLAG /?ELS32
|
||||
SUB CNT,3
|
||||
GET LINE,STACK >LOC
|
||||
JUMP ?CND30
|
||||
?ELS32: ADD CNT,3
|
||||
GET LINE,STACK >LOC
|
||||
?CND30: CALL MOVE-PERSON,PERSON,LOC
|
||||
RETURN STACK
|
||||
?ELS29: EQUAL? RM,GOAL \?CND27
|
||||
SET 'GOAL-FLAG,TRUE-VALUE
|
||||
?CND27: ADD CNT,3 >CNT
|
||||
JUMP ?PRG25
|
||||
|
||||
|
||||
.FUNCT COR-DIR,HERE,THERE,COR,RM,PAST=0,CNT=2,?TMP1
|
||||
GETP THERE,P?CORRIDOR >?TMP1
|
||||
GETP HERE,P?CORRIDOR
|
||||
BAND ?TMP1,STACK
|
||||
CALL GET-COR,STACK >COR
|
||||
?PRG1: GET COR,CNT >RM
|
||||
EQUAL? RM,HERE \?ELS5
|
||||
SET 'PAST,1
|
||||
JUMP ?REP2
|
||||
?ELS5: EQUAL? RM,THERE \?CND3
|
||||
JUMP ?REP2
|
||||
?CND3: INC 'CNT
|
||||
JUMP ?PRG1
|
||||
?REP2: GET COR,PAST
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT GET-LINE,LN
|
||||
ZERO? LN \?ELS5
|
||||
RETURN ROAD-WHARF-LINE
|
||||
?ELS5: EQUAL? LN,1 \?ELS7
|
||||
RETURN EAST-ROAD-LINE
|
||||
?ELS7: EQUAL? LN,2 \?ELS9
|
||||
RETURN BEDROOM-LINE
|
||||
?ELS9: EQUAL? LN,3 \?ELS11
|
||||
RETURN BACK-ALLEY-LINE
|
||||
?ELS11: EQUAL? LN,4 \?ELS13
|
||||
RETURN TRAWLER-LINE
|
||||
?ELS13: EQUAL? LN,5 \FALSE
|
||||
RETURN SALVAGER-LINE
|
||||
|
||||
|
||||
.FUNCT GET-COR,NUM
|
||||
EQUAL? NUM,1 \?ELS5
|
||||
RETURN COR-1
|
||||
?ELS5: EQUAL? NUM,2 \?ELS7
|
||||
RETURN COR-2
|
||||
?ELS7: EQUAL? NUM,4 \?ELS9
|
||||
RETURN COR-4
|
||||
?ELS9: EQUAL? NUM,8 \?ELS11
|
||||
RETURN COR-8
|
||||
?ELS11: EQUAL? NUM,16 \?ELS13
|
||||
RETURN COR-16
|
||||
?ELS13: EQUAL? NUM,32 \?ELS15
|
||||
RETURN COR-32
|
||||
?ELS15: EQUAL? NUM,64 \?ELS17
|
||||
RETURN COR-64
|
||||
?ELS17: EQUAL? NUM,128 \?ELS19
|
||||
RETURN COR-128
|
||||
?ELS19: EQUAL? NUM,256 \?ELS21
|
||||
RETURN COR-256
|
||||
?ELS21: RETURN COR-512
|
||||
|
||||
|
||||
.FUNCT CORRIDOR-LOOK,ITM=0,C,Z,COR,VAL,FOUND=0
|
||||
GETP HERE,P?CORRIDOR >C
|
||||
ZERO? C /FALSE
|
||||
?PRG6: SUB C,512 >Z
|
||||
LESS? Z,0 /?ELS10
|
||||
SET 'COR,COR-512
|
||||
JUMP ?CND8
|
||||
?ELS10: SUB C,256 >Z
|
||||
LESS? Z,0 /?ELS12
|
||||
SET 'COR,COR-256
|
||||
JUMP ?CND8
|
||||
?ELS12: SUB C,128 >Z
|
||||
LESS? Z,0 /?ELS14
|
||||
SET 'COR,COR-128
|
||||
JUMP ?CND8
|
||||
?ELS14: SUB C,64 >Z
|
||||
LESS? Z,0 /?ELS16
|
||||
SET 'COR,COR-64
|
||||
JUMP ?CND8
|
||||
?ELS16: SUB C,32 >Z
|
||||
LESS? Z,0 /?ELS18
|
||||
SET 'COR,COR-32
|
||||
JUMP ?CND8
|
||||
?ELS18: SUB C,16 >Z
|
||||
LESS? Z,0 /?ELS20
|
||||
SET 'COR,COR-16
|
||||
JUMP ?CND8
|
||||
?ELS20: SUB C,8 >Z
|
||||
LESS? Z,0 /?ELS22
|
||||
SET 'COR,COR-8
|
||||
JUMP ?CND8
|
||||
?ELS22: SUB C,4 >Z
|
||||
LESS? Z,0 /?ELS24
|
||||
SET 'COR,COR-4
|
||||
JUMP ?CND8
|
||||
?ELS24: SUB C,2 >Z
|
||||
LESS? Z,0 /?ELS26
|
||||
SET 'COR,COR-2
|
||||
JUMP ?CND8
|
||||
?ELS26: SUB C,1 >Z
|
||||
LESS? Z,0 /?REP7
|
||||
SET 'COR,COR-1
|
||||
?CND8: CALL CORRIDOR-CHECK,COR,ITM >VAL
|
||||
ZERO? FOUND \?CND31
|
||||
SET 'FOUND,VAL
|
||||
?CND31: SET 'C,Z
|
||||
JUMP ?PRG6
|
||||
?REP7: RETURN FOUND
|
||||
|
||||
|
||||
.FUNCT CORRIDOR-CHECK,COR,ITM,CNT=2,PAST=0,FOUND=0,RM,OBJ
|
||||
?PRG1: GET COR,CNT >RM
|
||||
ZERO? RM /FALSE
|
||||
EQUAL? RM,HERE \?ELS7
|
||||
SET 'PAST,1
|
||||
JUMP ?CND3
|
||||
?ELS7: FIRST? RM >OBJ \?CND3
|
||||
?PRG10: ZERO? ITM /?ELS14
|
||||
EQUAL? OBJ,ITM \?CND12
|
||||
GET COR,PAST >FOUND
|
||||
JUMP ?REP11
|
||||
?ELS14: GETP OBJ,P?CHARACTER
|
||||
ZERO? STACK /?CND12
|
||||
CALL IN-MOTION?,OBJ
|
||||
ZERO? STACK \?CND12
|
||||
EQUAL? OBJ,MCGINTY \?THN23
|
||||
CALL QUEUED?,I-MCGINTY-FOLLOWS
|
||||
ZERO? STACK /?THN23
|
||||
EQUAL? PRSA,V?FOLLOW,V?WALK /?CND12
|
||||
?THN23: CALL START-SENTENCE,OBJ
|
||||
PRINTI " is "
|
||||
PRINTI "off to "
|
||||
GET COR,PAST
|
||||
CALL DIR-PRINT,STACK
|
||||
PRINTI "."
|
||||
CRLF
|
||||
?CND12: NEXT? OBJ >OBJ /?KLU38
|
||||
?KLU38: ZERO? OBJ \?PRG10
|
||||
?REP11: ZERO? FOUND /?CND3
|
||||
RETURN FOUND
|
||||
?CND3: INC 'CNT
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT IN-MOTION?,PERSON,GT,?TMP1
|
||||
GETP PERSON,P?CHARACTER
|
||||
GET GOAL-TABLES,STACK >GT
|
||||
GET GT,GOAL-ENABLE
|
||||
ZERO? STACK \?THN8
|
||||
GET GT,ATTENTION
|
||||
EQUAL? STACK,1 \FALSE
|
||||
?THN8: GET GT,GOAL-S
|
||||
ZERO? STACK /FALSE
|
||||
LOC PERSON >?TMP1
|
||||
GET GT,GOAL-F
|
||||
EQUAL? ?TMP1,STACK /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT START-MOVEMENT
|
||||
CALL QUEUE,I-MCGINTY,1
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-JOHNNY,1
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-PETE,1
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-WEASEL,1
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-DELIVERY-BOY,1
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-FOLLOW,-1
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-ATTENTION,-1
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-DISGUSTING-WEASEL-KLUDGE,35
|
||||
PUT STACK,0,1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IMOVEMENT,PERSON,INT,TB,VAR,DIS,TIM,ID,RM,GT,?TMP1
|
||||
GETP PERSON,P?CHARACTER >ID
|
||||
GET MOVEMENT-GOALS,ID >TB
|
||||
GET GOAL-TABLES,ID >GT
|
||||
GET TB,MG-ROOM >RM
|
||||
EQUAL? 0,RM /?CND1
|
||||
GET GT,GOAL-QUEUED
|
||||
ZERO? STACK /?ELS6
|
||||
PUT GT,GOAL-QUEUED,RM
|
||||
JUMP ?CND1
|
||||
?ELS6: CALL ESTABLISH-GOAL,PERSON,RM
|
||||
?CND1: GET TB,MG-TIME >TIM
|
||||
EQUAL? 0,TIM /FALSE
|
||||
GET TB,MG-VARIATION >VAR
|
||||
MUL VAR,2
|
||||
RANDOM STACK >DIS
|
||||
SUB DIS,VAR
|
||||
ADD TIM,STACK
|
||||
CALL QUEUE,INT,STACK
|
||||
ADD TB,MG-LENGTH
|
||||
PUT MOVEMENT-GOALS,ID,STACK
|
||||
GET TB,MG-NEXT
|
||||
EQUAL? 0,STACK /FALSE
|
||||
GET TB,MG-NEXT >?TMP1
|
||||
SUB VAR,DIS
|
||||
ADD ?TMP1,STACK
|
||||
PUT TB,MG-NEXT,STACK
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT I-FOLLOW,FLG=0,CNT=0,GT,VAL
|
||||
?PRG1: IGRTR? 'CNT,CHARACTER-MAX \?ELS5
|
||||
RETURN FLG
|
||||
?ELS5: GET GOAL-TABLES,CNT >GT
|
||||
GET GT,GOAL-S
|
||||
ZERO? STACK /?PRG1
|
||||
GET GT,GOAL-ENABLE
|
||||
ZERO? STACK \?THN10
|
||||
GET GT,ATTENTION
|
||||
ZERO? STACK \?PRG1
|
||||
?THN10: PUT GT,GOAL-ENABLE,TRUE-VALUE
|
||||
GET CHARACTER-TABLE,CNT
|
||||
CALL FOLLOW-GOAL,STACK >VAL
|
||||
ZERO? VAL /?PRG1
|
||||
EQUAL? FLG,M-FATAL /?PRG1
|
||||
SET 'FLG,VAL
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT I-ATTENTION,FLG=0,CNT=0,ATT,GT
|
||||
?PRG1: IGRTR? 'CNT,CHARACTER-MAX \?ELS5
|
||||
RETURN FLG
|
||||
?ELS5: GET GOAL-TABLES,CNT >GT
|
||||
GET GT,ATTENTION
|
||||
SUB STACK,1 >ATT
|
||||
ZERO? ATT \?CND3
|
||||
PUT GT,GOAL-ENABLE,TRUE-VALUE
|
||||
?CND3: PUT GT,ATTENTION,ATT
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT GRAB-ATTENTION,PERSON,CHR,GT,ATT
|
||||
GETP PERSON,P?CHARACTER >CHR
|
||||
GET GOAL-TABLES,CHR >GT
|
||||
GET GT,GOAL-S
|
||||
ZERO? STACK /?CND1
|
||||
GET GT,ATTENTION-SPAN >ATT
|
||||
PUT GT,ATTENTION,ATT
|
||||
ZERO? ATT \?ELS6
|
||||
PUT GT,GOAL-ENABLE,TRUE-VALUE
|
||||
RFALSE
|
||||
?ELS6: GET GT,GOAL-ENABLE
|
||||
ZERO? STACK /?CND1
|
||||
PUT GT,GOAL-ENABLE,FALSE-VALUE
|
||||
?CND1: SET 'QCONTEXT,PERSON
|
||||
SET 'QCONTEXT-ROOM,HERE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT ESTABLISH-GOAL,PERSON,GOAL,PRIORITY=0,HERE,HL,GL,GT,?TMP1
|
||||
LOC PERSON >HERE
|
||||
GETP PERSON,P?CHARACTER
|
||||
GET GOAL-TABLES,STACK >GT
|
||||
ZERO? PRIORITY /?CND1
|
||||
PUT GT,GOAL-ENABLE,TRUE-VALUE
|
||||
PUT GT,GOAL-QUEUED,HERE
|
||||
?CND1: GETP HERE,P?LINE
|
||||
MUL STACK,12 >?TMP1
|
||||
GETP GOAL,P?LINE
|
||||
MUL STACK,2
|
||||
ADD ?TMP1,STACK
|
||||
PUT GT,GOAL-I,STACK
|
||||
GETP GOAL,P?STATION
|
||||
PUT GT,GOAL-S,STACK
|
||||
PUT GT,GOAL-F,GOAL
|
||||
LOC PERSON
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT GOAL-REACHED,PERSON,GT
|
||||
GETP PERSON,P?CHARACTER
|
||||
GET GOAL-TABLES,STACK >GT
|
||||
PUT GT,GOAL-S,FALSE-VALUE
|
||||
GET GT,GOAL-FUNCTION
|
||||
CALL STACK,G-REACHED
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MOVE-PERSON,PERSON,WHERE,DIR,GT,OL,COR,PCOR,CHR,PUSHCART,FLG=0,VAL=0,DF,CD
|
||||
GETP PERSON,P?CHARACTER >CHR
|
||||
GET GOAL-TABLES,CHR >GT
|
||||
LOC PERSON >OL
|
||||
CALL DIR-FROM,OL,WHERE >DIR
|
||||
SET 'PUSHCART,STR?187
|
||||
EQUAL? OL,HERE \?ELS3
|
||||
FSET? PERSON,INVISIBLE /?ELS3
|
||||
SET 'FLG,TRUE-VALUE
|
||||
CALL START-SENTENCE,PERSON
|
||||
EQUAL? DIR,P?OUT \?ELS8
|
||||
PRINTI " leaves the room"
|
||||
EQUAL? PERSON,DELIVERY-BOY \?CND11
|
||||
PRINT PUSHCART
|
||||
?CND11: PRINTI "."
|
||||
CRLF
|
||||
JUMP ?CND1
|
||||
?ELS8: EQUAL? DIR,P?IN \?ELS19
|
||||
PRINTI " goes into another room"
|
||||
PRINTI "."
|
||||
CRLF
|
||||
JUMP ?CND1
|
||||
?ELS19: PRINTI " heads "
|
||||
GETP HERE,P?LINE
|
||||
LESS? STACK,TRAWLER-LINE-C \?CND28
|
||||
EQUAL? DIR,P?UP,P?DOWN /?CND28
|
||||
PRINTI "off to "
|
||||
?CND28: CALL DIR-PRINT,DIR
|
||||
EQUAL? PERSON,DELIVERY-BOY \?CND35
|
||||
PRINT PUSHCART
|
||||
?CND35: PRINTI "."
|
||||
CRLF
|
||||
JUMP ?CND1
|
||||
?ELS3: EQUAL? WHERE,HERE \?ELS43
|
||||
FSET? PERSON,INVISIBLE /?ELS43
|
||||
SET 'FLG,M-FATAL
|
||||
GET GT,GOAL-F
|
||||
EQUAL? HERE,STACK /?CND1
|
||||
CALL START-SENTENCE,PERSON
|
||||
PRINTI " walks "
|
||||
EQUAL? PRSA,V?WALK \?ELS53
|
||||
EQUAL? WHERE,HERE \?ELS53
|
||||
EQUAL? OL,LAST-PLAYER-LOC \?ELS53
|
||||
PRINTI "along with"
|
||||
JUMP ?CND51
|
||||
?ELS53: PRINTI "past"
|
||||
?CND51: PRINTI " you"
|
||||
EQUAL? PERSON,DELIVERY-BOY \?CND64
|
||||
PRINT PUSHCART
|
||||
?CND64: PRINTI "."
|
||||
CRLF
|
||||
JUMP ?CND1
|
||||
?ELS43: GETP HERE,P?CORRIDOR >COR
|
||||
ZERO? COR /?CND1
|
||||
FSET? PERSON,INVISIBLE /?CND1
|
||||
GETP OL,P?CORRIDOR >PCOR
|
||||
ZERO? PCOR /?ELS77
|
||||
BAND COR,PCOR
|
||||
ZERO? STACK /?ELS77
|
||||
SET 'FLG,TRUE-VALUE
|
||||
GETP WHERE,P?CORRIDOR
|
||||
ZERO? STACK \?ELS82
|
||||
CALL START-SENTENCE,PERSON
|
||||
PRINTI ", off to "
|
||||
CALL COR-DIR,HERE,OL
|
||||
CALL DIR-PRINT,STACK
|
||||
PRINTI ","
|
||||
PRINTI " leaves your view"
|
||||
PRINTI " to "
|
||||
CALL DIR-FROM,OL,WHERE
|
||||
CALL DIR-PRINT,STACK
|
||||
EQUAL? PERSON,DELIVERY-BOY \?CND91
|
||||
PRINT PUSHCART
|
||||
?CND91: PRINTI "."
|
||||
CRLF
|
||||
JUMP ?CND75
|
||||
?ELS82: GETP WHERE,P?CORRIDOR
|
||||
BAND COR,STACK
|
||||
ZERO? STACK \?ELS99
|
||||
CALL START-SENTENCE,PERSON
|
||||
PRINTI ", off to "
|
||||
CALL COR-DIR,HERE,OL
|
||||
CALL DIR-PRINT,STACK
|
||||
PRINTI ", disappears from sight to "
|
||||
CALL DIR-FROM,OL,WHERE >PCOR
|
||||
CALL DIR-PRINT,PCOR
|
||||
EQUAL? PERSON,DELIVERY-BOY \?CND104
|
||||
PRINT PUSHCART
|
||||
?CND104: PRINTI "."
|
||||
CRLF
|
||||
JUMP ?CND75
|
||||
?ELS99: CALL START-SENTENCE,PERSON
|
||||
PRINTI " is to "
|
||||
CALL COR-DIR,HERE,WHERE >CD
|
||||
CALL DIR-PRINT,CD
|
||||
PRINTI ", heading "
|
||||
CALL DIR-FROM,OL,WHERE >DF
|
||||
EQUAL? CD,DF \?ELS119
|
||||
PRINTI "away from you"
|
||||
JUMP ?CND117
|
||||
?ELS119: PRINTI "toward "
|
||||
CALL DIR-PRINT,DF
|
||||
?CND117: EQUAL? PERSON,DELIVERY-BOY \?CND126
|
||||
PRINT PUSHCART
|
||||
?CND126: PRINTI "."
|
||||
CRLF
|
||||
JUMP ?CND75
|
||||
?ELS77: GETP WHERE,P?CORRIDOR >PCOR
|
||||
ZERO? PCOR /?CND1
|
||||
BAND COR,PCOR
|
||||
ZERO? STACK /?CND1
|
||||
SET 'FLG,TRUE-VALUE
|
||||
PRINTI "To "
|
||||
CALL COR-DIR,HERE,WHERE
|
||||
CALL DIR-PRINT,STACK
|
||||
PRINTI " "
|
||||
CALL THE?,PERSON
|
||||
CALL DPRINT,PERSON
|
||||
PRINTI " comes into view from "
|
||||
CALL DIR-FROM,WHERE,OL
|
||||
CALL DIR-PRINT,STACK
|
||||
EQUAL? PERSON,DELIVERY-BOY \?CND143
|
||||
PRINT PUSHCART
|
||||
?CND143: PRINTI "."
|
||||
CRLF
|
||||
?CND75:
|
||||
?CND1: MOVE PERSON,WHERE
|
||||
GET GT,GOAL-F
|
||||
EQUAL? STACK,WHERE \?ELS152
|
||||
CALL GOAL-REACHED,PERSON >VAL
|
||||
ZERO? VAL \?CND150
|
||||
EQUAL? HERE,WHERE \?CND150
|
||||
FSET? PERSON,INVISIBLE /?CND150
|
||||
SET 'FLG,M-FATAL
|
||||
CALL START-SENTENCE,PERSON
|
||||
PRINTI " stops here."
|
||||
CRLF
|
||||
JUMP ?CND150
|
||||
?ELS152: GET GT,GOAL-FUNCTION
|
||||
CALL STACK,G-ENROUTE
|
||||
?CND150: EQUAL? VAL,M-FATAL \?ELS166
|
||||
RETURN VAL
|
||||
?ELS166: RETURN FLG
|
||||
|
||||
|
||||
.FUNCT DIR-FROM,HERE,THERE,V=0,P=0,L,Z,O
|
||||
?PRG1: NEXTP HERE,P >P
|
||||
ZERO? P \?ELS5
|
||||
RETURN V
|
||||
?ELS5: EQUAL? P,P?IN,P?OUT \?ELS7
|
||||
JUMP ?PRG1
|
||||
?ELS7: LESS? P,LOW-DIRECTION /?PRG1
|
||||
GETPT HERE,P >Z
|
||||
PTSIZE Z >L
|
||||
EQUAL? L,DEXIT,UEXIT,CEXIT \?ELS12
|
||||
GETB Z,REXIT
|
||||
EQUAL? STACK,THERE \?ELS12
|
||||
EQUAL? P,P?UP,P?DOWN \?ELS17
|
||||
SET 'V,P
|
||||
JUMP ?PRG1
|
||||
?ELS17: RETURN P
|
||||
?ELS12: ZERO? V \?PRG1
|
||||
EQUAL? L,FEXIT \?PRG1
|
||||
SET 'V,P
|
||||
JUMP ?PRG1
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,746 @@
|
|||
"GOAL for
|
||||
TOA #2
|
||||
Copyright 1984 Infocom, Inc. All rights reserved.
|
||||
"
|
||||
|
||||
"This code is the local T system."
|
||||
|
||||
<GLOBAL DIR-STRINGS
|
||||
<PTABLE P?NORTH "north" P?SOUTH "south"
|
||||
P?EAST "east" P?WEST "west"
|
||||
P?NW "northwest" P?NE "northeast"
|
||||
P?SW "southwest" P?SE "southeast"
|
||||
P?DOWN "downstairs" P?UP "upstairs"
|
||||
P?IN "in" P?OUT "out">>
|
||||
|
||||
<GLOBAL NAUTICAL-DIR-STRINGS
|
||||
<PTABLE P?NORTH "forward" P?SOUTH "aft"
|
||||
P?EAST "starboard" P?WEST "port"
|
||||
P?NW "northwest" P?NE "northeast"
|
||||
P?SW "southwest" P?SE "southeast"
|
||||
P?DOWN "below" P?UP "above"
|
||||
P?IN "in" P?OUT "out">>
|
||||
|
||||
<ROUTINE DIR-PRINT (DIR "AUX" (CNT 0) TBL (DRY <>))
|
||||
#DECL ((DIR CNT) FIX)
|
||||
<COND (<NOT .DIR>
|
||||
<TELL "out of view">
|
||||
<RTRUE>)
|
||||
(<G? <GETP ,HERE ,P?LINE> ,BACK-ALLEY-LINE-C>
|
||||
<SET TBL ,NAUTICAL-DIR-STRINGS>)
|
||||
(T
|
||||
<SET TBL ,DIR-STRINGS>
|
||||
<SET DRY T>)>
|
||||
<REPEAT ()
|
||||
<COND (<==? <GET .TBL .CNT> .DIR>
|
||||
<COND (<AND .DRY
|
||||
<NOT <EQUAL? .DIR ,P?UP ,P?DOWN>>>
|
||||
<TELL "the ">)>
|
||||
<PRINT <GET .TBL <+ .CNT 1>>>
|
||||
<RTRUE>)>
|
||||
<SET CNT <+ .CNT 1>>>>
|
||||
|
||||
"Rapid Transit Line Definitions and Identifiers"
|
||||
|
||||
<CONSTANT ROAD-WHARF-LINE-C 0>
|
||||
<CONSTANT EAST-ROAD-LINE-C 1>
|
||||
<CONSTANT BEDROOM-LINE-C 2>
|
||||
<CONSTANT BACK-ALLEY-LINE-C 3>
|
||||
<CONSTANT TRAWLER-LINE-C 4>
|
||||
<CONSTANT SALVAGER-LINE-C 5>
|
||||
<CONSTANT UNDERWATER-LINE-C 6>
|
||||
|
||||
<GLOBAL ROAD-WHARF-LINE
|
||||
<PTABLE 0 WINDING-ROAD-1 P?SE
|
||||
P?NW WINDING-ROAD-2 P?NE
|
||||
P?SW WINDING-ROAD-3 P?NE
|
||||
P?SW WHARF-ROAD-1 P?EAST
|
||||
P?WEST WHARF-ROAD-2 P?EAST
|
||||
P?WEST WHARF-ROAD-3 P?NORTH
|
||||
P?SOUTH WHARF 0>>
|
||||
|
||||
<GLOBAL EAST-ROAD-LINE
|
||||
<PTABLE 0 WHARF-ROAD-4 P?EAST
|
||||
P?WEST WHARF-ROAD-5 P?SE
|
||||
P?NW OCEAN-ROAD-1 P?SOUTH
|
||||
P?NORTH OCEAN-ROAD-2 P?SOUTH
|
||||
P?NORTH OCEAN-ROAD-3 P?SW
|
||||
P?NE SHORE-ROAD-2 P?WEST
|
||||
P?EAST SHORE-ROAD-1 P?WEST
|
||||
P?EAST FERRY-LANDING 0>>
|
||||
|
||||
<GLOBAL BEDROOM-LINE
|
||||
<PTABLE 0 RED-BOAR-INN P?UP
|
||||
P?DOWN UPSTAIRS-HALLWAY P?SOUTH
|
||||
P?NORTH BEDROOM 0>>
|
||||
|
||||
<GLOBAL BACK-ALLEY-LINE
|
||||
<PTABLE 0 BACK-ALLEY-1 P?EAST
|
||||
P?WEST BACK-ALLEY-2 P?EAST
|
||||
P?WEST BACK-ALLEY-3 P?EAST
|
||||
P?WEST BACK-ALLEY-4 P?EAST
|
||||
P?WEST BACK-ALLEY-5 0>>
|
||||
|
||||
<GLOBAL TRAWLER-LINE
|
||||
<PTABLE 0 NW-PORT-DECK P?NE
|
||||
P?SW NW-FORE-DECK P?SE
|
||||
P?NW NW-STARBOARD-DECK P?SW
|
||||
P?NE NW-AFT-DECK P?DOWN
|
||||
P?UP NW-LOUNGE P?NORTH
|
||||
P?SOUTH NW-GALLEY P?NORTH
|
||||
P?SOUTH NW-CREW-QTRS 0>>
|
||||
|
||||
<GLOBAL SALVAGER-LINE
|
||||
<PTABLE 0 MM-STARBOARD-DECK P?NW
|
||||
P?SE MM-FORE-DECK P?SW
|
||||
P?NE MM-PORT-DECK P?SE
|
||||
P?NW MM-AFT-DECK P?DOWN
|
||||
P?UP MM-LOUNGE P?NORTH
|
||||
P?SOUTH MM-GALLEY P?NORTH
|
||||
P?SOUTH MM-CREW-QTRS 0>>
|
||||
|
||||
<GLOBAL TRANSFER-TABLE
|
||||
<PTABLE 0 0
|
||||
WHARF-ROAD-3 WHARF-ROAD-4
|
||||
WHARF-ROAD-1 RED-BOAR-INN
|
||||
WHARF-ROAD-3 WHARF-ROAD-4
|
||||
WHARF NW-STARBOARD-DECK
|
||||
WHARF MM-PORT-DECK
|
||||
|
||||
WHARF-ROAD-4 WHARF-ROAD-3
|
||||
0 0
|
||||
WHARF-ROAD-4 WHARF-ROAD-3
|
||||
OCEAN-ROAD-1 BACK-ALLEY-5
|
||||
WHARF-ROAD-4 WHARF-ROAD-3
|
||||
WHARF-ROAD-4 WHARF-ROAD-3
|
||||
|
||||
RED-BOAR-INN WHARF-ROAD-1
|
||||
RED-BOAR-INN WHARF-ROAD-1
|
||||
0 0
|
||||
RED-BOAR-INN WHARF-ROAD-1
|
||||
RED-BOAR-INN WHARF-ROAD-1
|
||||
RED-BOAR-INN WHARF-ROAD-1
|
||||
|
||||
BACK-ALLEY-5 OCEAN-ROAD-1
|
||||
BACK-ALLEY-5 OCEAN-ROAD-1
|
||||
BACK-ALLEY-5 OCEAN-ROAD-1
|
||||
0 0
|
||||
BACK-ALLEY-5 OCEAN-ROAD-1
|
||||
BACK-ALLEY-5 OCEAN-ROAD-1
|
||||
|
||||
NW-STARBOARD-DECK WHARF
|
||||
NW-STARBOARD-DECK WHARF
|
||||
NW-STARBOARD-DECK WHARF
|
||||
NW-STARBOARD-DECK WHARF
|
||||
0 0
|
||||
NW-STARBOARD-DECK WHARF
|
||||
|
||||
MM-PORT-DECK WHARF
|
||||
MM-PORT-DECK WHARF
|
||||
MM-PORT-DECK WHARF
|
||||
MM-PORT-DECK WHARF
|
||||
MM-PORT-DECK WHARF
|
||||
0 0>>
|
||||
|
||||
<GLOBAL COR-1
|
||||
<PTABLE P?NW P?SE
|
||||
WINDING-ROAD-1 WINDING-ROAD-2 0>>
|
||||
|
||||
<GLOBAL COR-2
|
||||
<PTABLE P?SW P?NE
|
||||
WINDING-ROAD-2 WINDING-ROAD-3 WHARF-ROAD-1 0>>
|
||||
|
||||
<GLOBAL COR-4
|
||||
<PTABLE P?WEST P?EAST
|
||||
WHARF-ROAD-1 WHARF-ROAD-2 WHARF-ROAD-3 WHARF-ROAD-4
|
||||
WHARF-ROAD-5 0>>
|
||||
|
||||
<GLOBAL COR-8
|
||||
<PTABLE P?NW P?SE
|
||||
WHARF-ROAD-5 OCEAN-ROAD-1 0>>
|
||||
|
||||
<GLOBAL COR-16
|
||||
<PTABLE P?NORTH P?SOUTH
|
||||
OCEAN-ROAD-1 OCEAN-ROAD-2 OCEAN-ROAD-3 0>>
|
||||
|
||||
<GLOBAL COR-32
|
||||
<PTABLE P?NW P?SE
|
||||
OCEAN-ROAD-3 POINT-LOOKOUT 0>>
|
||||
|
||||
<GLOBAL COR-64
|
||||
<PTABLE P?SW P?NE
|
||||
SHORE-ROAD-2 OCEAN-ROAD-3 0>>
|
||||
|
||||
<GLOBAL COR-128
|
||||
<PTABLE P?WEST P?EAST
|
||||
FERRY-LANDING SHORE-ROAD-1 SHORE-ROAD-2 0>>
|
||||
|
||||
<GLOBAL COR-256
|
||||
<PTABLE P?NORTH P?SOUTH
|
||||
WHARF WHARF-ROAD-3 VACANT-LOT BACK-ALLEY-3 0>>
|
||||
|
||||
<GLOBAL COR-512
|
||||
<PTABLE P?WEST P?EAST
|
||||
BACK-ALLEY-1 BACK-ALLEY-2 BACK-ALLEY-3 BACK-ALLEY-4
|
||||
BACK-ALLEY-5 0>>
|
||||
|
||||
;"up to 16 corridors (65536)"
|
||||
|
||||
"CODE"
|
||||
|
||||
<ROUTINE FOLLOW-GOAL (PERSON "AUX" (HERE <LOC .PERSON>) LINE LN RM GT GOAL FLG
|
||||
(GOAL-FLAG <>) (IGOAL <>) LOC (CNT 1) DIR)
|
||||
#DECL ((PERSON HERE LOC RM) OBJECT (LN CNT) FIX
|
||||
(GOAL-FLAG) <OR ATOM FALSE>)
|
||||
<SET GT <GET ,GOAL-TABLES <GETP .PERSON ,P?CHARACTER>>>
|
||||
<COND (<==? .HERE <GET .GT ,GOAL-F>>
|
||||
<PUT .GT ,GOAL-S <>>
|
||||
<RETURN <>>)
|
||||
(<NOT <GET .GT ,GOAL-ENABLE>> <RFALSE>)>
|
||||
<COND (<NOT <EQUAL? <SET LOC <GETP .HERE ,P?STATION>>
|
||||
.HERE>>
|
||||
<RETURN <MOVE-PERSON .PERSON .LOC>>)>
|
||||
;%<COND (<GASSIGNED? PREDGEN>
|
||||
'<>)
|
||||
(T
|
||||
'<COND (<NOT <EQUAL? <SET LOC ,<GETP .HERE ,P?STATION>>
|
||||
.HERE>>
|
||||
<RETURN <MOVE-PERSON .PERSON .LOC>>)>)>
|
||||
<COND (<==? <SET GOAL <GET ,TRANSFER-TABLE
|
||||
<SET IGOAL <GET .GT ,GOAL-I>>>> 0>
|
||||
<SET IGOAL <>>
|
||||
<SET GOAL <GET .GT ,GOAL-S>>)>
|
||||
<COND (<NOT .GOAL> <RFALSE>)
|
||||
(<==? .HERE .GOAL>
|
||||
<COND (.IGOAL
|
||||
<SET FLG <MOVE-PERSON .PERSON
|
||||
<GET ,TRANSFER-TABLE
|
||||
<+ .IGOAL 1>>>>
|
||||
<ESTABLISH-GOAL .PERSON <GET .GT ,GOAL-F>>
|
||||
<RETURN .FLG>)
|
||||
(<NOT <==? .HERE <GET .GT ,GOAL-F>>>
|
||||
<PUT .GT ,GOAL-S <>>
|
||||
<SET FLG <MOVE-PERSON .PERSON <GET .GT ,GOAL-F>>>
|
||||
<RETURN .FLG>)
|
||||
(T
|
||||
<PUT .GT ,GOAL-S <>>
|
||||
<RETURN <>>)>)>
|
||||
<SET LINE <GET-LINE <GETP .GOAL ,P?LINE>>>
|
||||
<REPEAT ()
|
||||
<COND (<==? <SET RM <GET .LINE .CNT>> .HERE>
|
||||
<COND (.GOAL-FLAG
|
||||
<SET LOC <GET .LINE <- .CNT 3>>>)
|
||||
(T
|
||||
<SET LOC <GET .LINE <+ .CNT 3>>>)>
|
||||
<RETURN <MOVE-PERSON .PERSON .LOC>>)
|
||||
(<==? .RM .GOAL>
|
||||
<SET GOAL-FLAG T>)>
|
||||
<SET CNT <+ .CNT 3>>>>
|
||||
|
||||
<ROUTINE COR-DIR (HERE THERE "AUX" COR RM (PAST 0) (CNT 2))
|
||||
<SET COR <GET-COR <BAND <GETP .THERE ,P?CORRIDOR>
|
||||
<GETP .HERE ,P?CORRIDOR>>>>
|
||||
<REPEAT ()
|
||||
<COND (<==? <SET RM <GET .COR .CNT>> .HERE>
|
||||
<SET PAST 1>
|
||||
<RETURN>)
|
||||
(<==? .RM .THERE>
|
||||
<RETURN>)>
|
||||
<SET CNT <+ .CNT 1>>>
|
||||
<GET .COR .PAST>>
|
||||
|
||||
<ROUTINE GET-LINE (LN)
|
||||
<COND (<==? .LN 0> ,ROAD-WHARF-LINE)
|
||||
(<==? .LN 1> ,EAST-ROAD-LINE)
|
||||
(<==? .LN 2> ,BEDROOM-LINE)
|
||||
(<==? .LN 3> ,BACK-ALLEY-LINE)
|
||||
(<==? .LN 4> ,TRAWLER-LINE)
|
||||
(<==? .LN 5> ,SALVAGER-LINE)>>
|
||||
|
||||
<ROUTINE GET-COR (NUM)
|
||||
#DECL ((NUM) FIX)
|
||||
<COND (<==? .NUM 1> ,COR-1)
|
||||
(<==? .NUM 2> ,COR-2)
|
||||
(<==? .NUM 4> ,COR-4)
|
||||
(<==? .NUM 8> ,COR-8)
|
||||
(<==? .NUM 16> ,COR-16)
|
||||
(<==? .NUM 32> ,COR-32)
|
||||
(<==? .NUM 64> ,COR-64)
|
||||
(<==? .NUM 128> ,COR-128)
|
||||
(<==? .NUM 256> ,COR-256)
|
||||
(T ,COR-512)>>
|
||||
|
||||
"Goal tables for the 4 characters (plus delivery boy), offset by a constant,
|
||||
which, for a given character, is the P?CHARACTER property of the object."
|
||||
|
||||
<GLOBAL GOAL-TABLES
|
||||
<TABLE <TABLE <> <> <> 1 <> I-FOLLOW 5 5>
|
||||
<TABLE <> <> <> 1 <> I-MCGINTY 5 5>
|
||||
<TABLE <> <> <> 1 <> I-JOHNNY 5 5>
|
||||
<TABLE <> <> <> 1 <> I-PETE 5 5>
|
||||
<TABLE <> <> <> 1 <> I-WEASEL 5 5>
|
||||
<TABLE <> <> <> 1 <> I-DELIVERY-BOY 0 0>>>
|
||||
|
||||
<CONSTANT CHARACTER-MAX 5>
|
||||
<CONSTANT MCGINTY-C 1>
|
||||
<CONSTANT JOHNNY-C 2>
|
||||
<CONSTANT PETE-C 3>
|
||||
<CONSTANT WEASEL-C 4>
|
||||
<CONSTANT DELIVERY-BOY-C 5>
|
||||
|
||||
"Offsets into GOAL-TABLEs"
|
||||
|
||||
<CONSTANT GOAL-F 0> ;"final goal"
|
||||
<CONSTANT GOAL-S 1> ;"station of final goal"
|
||||
<CONSTANT GOAL-I 2> ;"intermediate goal (transfer point)"
|
||||
<CONSTANT GOAL-ENABLE 3> ;"character can move; usually false only when he's
|
||||
interrupted enroute"
|
||||
<CONSTANT GOAL-QUEUED 4> ;"secondary goal to go to when current, higher-
|
||||
priority one has been reached"
|
||||
<CONSTANT GOAL-FUNCTION 5> ;"routine to apply on arrival"
|
||||
<CONSTANT ATTENTION-SPAN 6> ;"how long character will wait when interrupted"
|
||||
<CONSTANT ATTENTION 7> ;"used to count down from ATTENTION-SPAN to 0"
|
||||
|
||||
"Goal-function constants, similar to M-xxx in MAIN"
|
||||
|
||||
<CONSTANT G-REACHED 1>
|
||||
<CONSTANT G-ENROUTE 2>
|
||||
|
||||
"Routines to do looking down corridors"
|
||||
|
||||
<ROUTINE CORRIDOR-LOOK ("OPTIONAL" (ITM <>) "AUX" C Z COR VAL (FOUND <>))
|
||||
<COND (<SET C <GETP ,HERE ,P?CORRIDOR>>
|
||||
<REPEAT ()
|
||||
<COND ;(<NOT <L? <SET Z <- .C 1024>> 0>>
|
||||
<SET COR ,COR-1024>)
|
||||
(<NOT <L? <SET Z <- .C 512>> 0>>
|
||||
<SET COR ,COR-512>)
|
||||
(<NOT <L? <SET Z <- .C 256>> 0>>
|
||||
<SET COR ,COR-256>)
|
||||
(<NOT <L? <SET Z <- .C 128>> 0>>
|
||||
<SET COR ,COR-128>)
|
||||
(<NOT <L? <SET Z <- .C 64>> 0>>
|
||||
<SET COR ,COR-64>)
|
||||
(<NOT <L? <SET Z <- .C 32>> 0>>
|
||||
<SET COR ,COR-32>)
|
||||
(<NOT <L? <SET Z <- .C 16>> 0>>
|
||||
<SET COR ,COR-16>)
|
||||
(<NOT <L? <SET Z <- .C 8>> 0>>
|
||||
<SET COR ,COR-8>)
|
||||
(<NOT <L? <SET Z <- .C 4>> 0>>
|
||||
<SET COR ,COR-4>)
|
||||
(<NOT <L? <SET Z <- .C 2>> 0>>
|
||||
<SET COR ,COR-2>)
|
||||
(<NOT <L? <SET Z <- .C 1>> 0>>
|
||||
<SET COR ,COR-1>)
|
||||
(T <RETURN>)>
|
||||
<SET VAL <CORRIDOR-CHECK .COR .ITM>>
|
||||
<COND (<NOT .FOUND> <SET FOUND .VAL>)>
|
||||
<SET C .Z>>
|
||||
.FOUND)>>
|
||||
|
||||
<ROUTINE CORRIDOR-CHECK (COR ITM "AUX" (CNT 2) (PAST 0) (FOUND <>) RM OBJ)
|
||||
<REPEAT ()
|
||||
<COND (<==? <SET RM <GET .COR .CNT>> 0>
|
||||
<RFALSE>)
|
||||
(<==? .RM ,HERE> <SET PAST 1>)
|
||||
(<SET OBJ <FIRST? .RM>>
|
||||
<REPEAT ()
|
||||
<COND (.ITM
|
||||
<COND (<==? .OBJ .ITM>
|
||||
<SET FOUND <GET .COR .PAST>>
|
||||
<RETURN>)>)
|
||||
(<AND <GETP .OBJ ,P?CHARACTER>
|
||||
<NOT <IN-MOTION? .OBJ>>
|
||||
<OR <NOT <==? .OBJ ,MCGINTY>>
|
||||
<NOT <QUEUED?
|
||||
I-MCGINTY-FOLLOWS>>
|
||||
<NOT <VERB? WALK FOLLOW>>>>
|
||||
<START-SENTENCE .OBJ>
|
||||
<TELL " is ">
|
||||
;<COND (<IN-MOTION? .OBJ>
|
||||
<TELL "in motion ">)>
|
||||
<TELL "off to ">
|
||||
<DIR-PRINT <GET .COR .PAST>>
|
||||
<TELL ".">
|
||||
<CRLF>)>
|
||||
<SET OBJ <NEXT? .OBJ>>
|
||||
<COND (<NOT .OBJ> <RETURN>)>>
|
||||
<COND (.FOUND <RETURN .FOUND>)>)>
|
||||
<SET CNT <+ .CNT 1>>>>
|
||||
|
||||
<GLOBAL CHARACTER-TABLE <PTABLE PLAYER MCGINTY JOHNNY PETE WEASEL DELIVERY-BOY>>
|
||||
|
||||
"Goal tables for the 6 characters (including PLAYER), offset
|
||||
by the preceding constants, which, for a given character,
|
||||
is the P?CHARACTER property of the object."
|
||||
|
||||
"The ATTENTION-TABLE is now a thing of the past. ATTENTION
|
||||
in the GOAL-TABLES is used instead."
|
||||
|
||||
"Here's how the movement goals are done: For each player is
|
||||
a table which consists of triplets, a number of minutes until
|
||||
the next movement (an clock interrupt number), a number of
|
||||
minutes allowed variation (for a bit of randomness), and a
|
||||
room toward which to start. All movement is controlled by
|
||||
the GOAL-ENABLE flag in the GOAL-TABLE for a character."
|
||||
|
||||
"Time starts at 8AM. Characters are at that point in their
|
||||
starting positions, as reflected in PEOPLE."
|
||||
|
||||
<GLOBAL MOVEMENT-GOALS <TABLE
|
||||
;"PLAYER"
|
||||
<TABLE 0 0 0>
|
||||
;"MCGINTY"
|
||||
<TABLE 0
|
||||
58 2 SHANTY
|
||||
15 1 MCGINTY-HQ
|
||||
65 2 BANK
|
||||
16 5 OUTFITTERS-HQ
|
||||
30 3 MCGINTY-HQ
|
||||
75 5 SHANTY
|
||||
30 5 MCGINTY-HQ
|
||||
;69 ;2 ;MM-FORE-DECK
|
||||
0>
|
||||
;"JOHNNY"
|
||||
<TABLE 0
|
||||
61 2 WINDING-ROAD-1
|
||||
75 5 SHANTY
|
||||
0>
|
||||
;"PETE"
|
||||
<TABLE 0
|
||||
72 2 WINDING-ROAD-1
|
||||
81 5 SHANTY
|
||||
197 5 MM-GALLEY
|
||||
0>
|
||||
;"WEASEL"
|
||||
<TABLE 0
|
||||
8 5 UPSTAIRS-HALLWAY
|
||||
58 2 WINDING-ROAD-1
|
||||
78 5 UPSTAIRS-HALLWAY
|
||||
85 1 FERRY-LANDING
|
||||
0>
|
||||
;"DELIVERY-BOY"
|
||||
<TABLE 0
|
||||
345 1 MM-LOCKER
|
||||
0>>>
|
||||
|
||||
<GLOBAL WEASEL-RETIRES-TABLE
|
||||
<TABLE 0
|
||||
5 1 BACK-ALLEY-5
|
||||
45 5 BANK
|
||||
10 5 FERRY-LANDING
|
||||
0>>
|
||||
|
||||
<GLOBAL JOHNNY-CONTINUES-TABLE
|
||||
<TABLE 0
|
||||
5 1 OUTFITTERS-HQ
|
||||
60 5 POINT-LOOKOUT
|
||||
25 1 SHANTY
|
||||
0>>
|
||||
|
||||
<GLOBAL JOHNNY-COMPLETES-TABLE
|
||||
<TABLE 0
|
||||
200 5 MM-CAPT-CABIN
|
||||
0>>
|
||||
|
||||
<ROUTINE IN-MOTION? (PERSON "AUX" GT)
|
||||
<SET GT <GET ,GOAL-TABLES <GETP .PERSON ,P?CHARACTER>>>
|
||||
<COND (<AND <OR <GET .GT ,GOAL-ENABLE>
|
||||
<==? <GET .GT ,ATTENTION> 1>>
|
||||
<GET .GT ,GOAL-S>
|
||||
<NOT <==? <LOC .PERSON> <GET .GT ,GOAL-F>>>>
|
||||
<RTRUE>)
|
||||
(T <RFALSE>)>>
|
||||
|
||||
<ROUTINE START-MOVEMENT ()
|
||||
<ENABLE <QUEUE I-MCGINTY 1>>
|
||||
<ENABLE <QUEUE I-JOHNNY 1>>
|
||||
<ENABLE <QUEUE I-PETE 1>>
|
||||
<ENABLE <QUEUE I-WEASEL 1>>
|
||||
<ENABLE <QUEUE I-DELIVERY-BOY 1>>
|
||||
<ENABLE <QUEUE I-FOLLOW -1>>
|
||||
<ENABLE <QUEUE I-ATTENTION -1>>
|
||||
<ENABLE <QUEUE I-DISGUSTING-WEASEL-KLUDGE 35>>>
|
||||
|
||||
"This routine does the interrupt-driven goal establishment
|
||||
for the various characters, using the MOVEMENT-GOALS table."
|
||||
|
||||
<CONSTANT MG-ROOM 0>
|
||||
<CONSTANT MG-TIME 1>
|
||||
<CONSTANT MG-VARIATION 2>
|
||||
<CONSTANT MG-LENGTH <* 3 2>>
|
||||
<CONSTANT MG-NEXT 4>
|
||||
|
||||
<ROUTINE IMOVEMENT (PERSON INT "AUX" TB VAR DIS TIM ID RM GT)
|
||||
#DECL ((PERSON) OBJECT (TB) <PRIMTYPE VECTOR> (ID VAR DIS TIM) FIX)
|
||||
<SET TB <GET ,MOVEMENT-GOALS <SET ID <GETP .PERSON ,P?CHARACTER>>>>
|
||||
<SET GT <GET ,GOAL-TABLES .ID>>
|
||||
<COND (<NOT <==? 0 <SET RM <GET .TB ,MG-ROOM>>>>
|
||||
<COND (<GET .GT ,GOAL-QUEUED>
|
||||
<PUT .GT ,GOAL-QUEUED .RM>)
|
||||
(T
|
||||
<ESTABLISH-GOAL .PERSON .RM>)>)>
|
||||
<COND (<NOT <==? 0 <SET TIM <GET .TB ,MG-TIME>>>>
|
||||
<SET VAR <GET .TB ,MG-VARIATION>>
|
||||
<SET DIS <RANDOM <* .VAR 2>>>
|
||||
<QUEUE .INT <+ .TIM <- .DIS .VAR>>>
|
||||
<PUT ,MOVEMENT-GOALS .ID <REST .TB ,MG-LENGTH>>
|
||||
<COND (<NOT <==? 0 <GET .TB ,MG-NEXT>>>
|
||||
<PUT .TB
|
||||
,MG-NEXT
|
||||
<+ <GET .TB ,MG-NEXT> <- .VAR .DIS>>>)>)>
|
||||
<RFALSE>>
|
||||
|
||||
<ROUTINE I-FOLLOW ("AUX" (FLG <>) (CNT 0) GT VAL)
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> ,CHARACTER-MAX>
|
||||
<RETURN>)
|
||||
(<AND <GET <SET GT <GET ,GOAL-TABLES .CNT>> ,GOAL-S>
|
||||
<OR <GET .GT ,GOAL-ENABLE>
|
||||
<0? <GET .GT ,ATTENTION>>>>
|
||||
<PUT .GT ,GOAL-ENABLE T>
|
||||
<COND (<SET VAL
|
||||
<FOLLOW-GOAL <GET ,CHARACTER-TABLE .CNT>>>
|
||||
<COND (<NOT <==? .FLG ,M-FATAL>>
|
||||
<SET FLG .VAL>)>)>)>>
|
||||
.FLG>
|
||||
|
||||
<ROUTINE I-ATTENTION ("AUX" (FLG <>) (CNT 0) ATT GT)
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> ,CHARACTER-MAX> <RETURN>)
|
||||
(<0? <SET ATT <- <GET
|
||||
<SET GT <GET ,GOAL-TABLES .CNT>>
|
||||
,ATTENTION> 1>>>
|
||||
<PUT .GT ,GOAL-ENABLE T>)
|
||||
;(<==? <SET ATT <- <GET
|
||||
<SET GT <GET ,GOAL-TABLES .CNT>>
|
||||
,ATTENTION> 1>> 1>
|
||||
<COND (<AND <IN? <GET ,CHARACTER-TABLE .CNT> ,HERE>
|
||||
<NOT ,ASLEEP?>>
|
||||
<START-SENTENCE <GET ,CHARACTER-TABLE .CNT>>
|
||||
<TELL " is acting impatient." CR>
|
||||
<SET FLG T>)>)
|
||||
;(<==? .ATT 0>
|
||||
<PUT .GT ,GOAL-ENABLE T>)>
|
||||
<PUT .GT ,ATTENTION .ATT>>
|
||||
.FLG>
|
||||
|
||||
<ROUTINE GRAB-ATTENTION (PERSON "AUX" (CHR<GETP .PERSON ,P?CHARACTER>) GT ATT)
|
||||
#DECL ((PERSON) OBJECT (ATT) FIX)
|
||||
<SET GT <GET ,GOAL-TABLES .CHR>>
|
||||
<COND (<GET .GT ,GOAL-S>
|
||||
<PUT .GT ,ATTENTION <SET ATT <GET .GT ,ATTENTION-SPAN>>>
|
||||
<COND (<==? .ATT 0>
|
||||
<PUT .GT ,GOAL-ENABLE T>
|
||||
<RFALSE>)
|
||||
(<GET .GT ,GOAL-ENABLE>
|
||||
<PUT .GT ,GOAL-ENABLE <>>)>)>
|
||||
<SETG QCONTEXT .PERSON>
|
||||
<SETG QCONTEXT-ROOM ,HERE>
|
||||
<RTRUE>>
|
||||
|
||||
"Movement etc."
|
||||
|
||||
;<ROUTINE UNPRIORITIZE (PERSON "AUX" GT)
|
||||
<SET GT <GET ,GOAL-TABLES <GETP .PERSON ,P?CHARACTER>>>
|
||||
<COND (<GET .GT ,GOAL-QUEUED>
|
||||
<ESTABLISH-GOAL .PERSON <GET .GT ,GOAL-QUEUED>>
|
||||
<PUT .GT ,GOAL-QUEUED <>>)>>
|
||||
|
||||
<ROUTINE ESTABLISH-GOAL (PERSON GOAL "OPTIONAL" (PRIORITY <>)
|
||||
"AUX" (HERE <LOC .PERSON>) HL GL GT)
|
||||
#DECL ((PERSON GOAL HERE) OBJECT (HL GL) FIX
|
||||
(PRIORITY) <OR FALSE ATOM>)
|
||||
;<COND (<==? .HERE .GOAL>
|
||||
<RETURN .HERE>)>
|
||||
<SET GT <GET ,GOAL-TABLES <GETP .PERSON ,P?CHARACTER>>>
|
||||
<COND (.PRIORITY
|
||||
<PUT .GT ,GOAL-ENABLE T>
|
||||
<PUT .GT ,GOAL-QUEUED .HERE>)>
|
||||
<PUT .GT ,GOAL-I <+ <* <GETP .HERE ,P?LINE> 12>
|
||||
<* <GETP .GOAL ,P?LINE> 2>>>
|
||||
<PUT .GT
|
||||
,GOAL-S
|
||||
<GETP .GOAL ,P?STATION>
|
||||
;%<COND (<GASSIGNED? PREDGEN> '<>)
|
||||
(T ',<GETP .GOAL ,P?STATION>)>>
|
||||
<PUT .GT ,GOAL-F .GOAL>
|
||||
<LOC .PERSON>>
|
||||
|
||||
<ROUTINE GOAL-REACHED (PERSON "AUX" GT)
|
||||
#DECL ((PERSON) OBJECT)
|
||||
<PUT <SET GT <GET ,GOAL-TABLES <GETP .PERSON ,P?CHARACTER>>>
|
||||
,GOAL-S <>>
|
||||
<APPLY <GET .GT ,GOAL-FUNCTION>
|
||||
,G-REACHED>>
|
||||
|
||||
<ROUTINE MOVE-PERSON (PERSON WHERE "AUX" DIR GT OL COR PCOR CHR PUSHCART
|
||||
(FLG <>) ;DR (VAL <>) DF CD)
|
||||
#DECL ((PERSON WHERE) OBJECT)
|
||||
<SET GT <GET ,GOAL-TABLES <SET CHR <GETP .PERSON ,P?CHARACTER>>>>
|
||||
<SET OL <LOC .PERSON>>
|
||||
<SET DIR <DIR-FROM .OL .WHERE>>
|
||||
<SET PUSHCART ", pushing his cart">
|
||||
;<COND (<==? <PTSIZE <SET DR <GETPT .OL .DIR>>> ,DEXIT>
|
||||
<SET DR <GETB .DR ,DEXITOBJ>>
|
||||
<COND (<NOT <FSET? .DR ,OPENBIT>>
|
||||
<FSET .DR ,OPENBIT>
|
||||
;<COND (<NOT <FSET? .DR ,LOCKED>> <FSET .DR ,OPENBIT>)>)
|
||||
(T <SET DR <>>)>)
|
||||
(T <SET DR <>>)>
|
||||
<COND (<AND <==? .OL ,HERE>
|
||||
<NOT <FSET? .PERSON ,INVISIBLE>>>
|
||||
<SET FLG T>
|
||||
<START-SENTENCE .PERSON>
|
||||
<COND (<==? .DIR ,P?OUT>
|
||||
<TELL " leaves the room">
|
||||
<COND (<==? .PERSON ,DELIVERY-BOY> <TELL .PUSHCART>)>
|
||||
<TELL "." CR>)
|
||||
(<==? .DIR ,P?IN>
|
||||
;<COND (.DR
|
||||
<TELL " opens the " D .DR " and">)>
|
||||
<TELL " goes into another room">
|
||||
;<COND (<AND .DR
|
||||
<FSET? .DR ,LOCKED>>
|
||||
;<FCLEAR .DR ,OPENBIT>
|
||||
<TELL ", locking the door again">)>
|
||||
<TELL "." CR>)
|
||||
(T
|
||||
;<COND (.DR
|
||||
<TELL " opens the " D .DR " and">)>
|
||||
<TELL " heads ">
|
||||
<COND (<AND <L? <GETP ,HERE ,P?LINE> ,TRAWLER-LINE-C>
|
||||
<NOT <EQUAL? .DIR ,P?UP ,P?DOWN>>>
|
||||
<TELL "off to ">)>
|
||||
<DIR-PRINT .DIR>
|
||||
;<COND (<AND .DR
|
||||
<FSET? .DR ,LOCKED>>
|
||||
;<FCLEAR .DR ,OPENBIT>
|
||||
<TELL ", locking the door again">)>
|
||||
<COND (<==? .PERSON ,DELIVERY-BOY> <TELL .PUSHCART>)>
|
||||
<TELL "." CR>)>)
|
||||
(<AND <==? .WHERE ,HERE>
|
||||
<NOT <FSET? .PERSON ,INVISIBLE>>>
|
||||
<SET FLG ,M-FATAL>
|
||||
<COND (<NOT <==? ,HERE <GET .GT ,GOAL-F>>>
|
||||
<START-SENTENCE .PERSON>
|
||||
<TELL " walks ">
|
||||
<COND (<AND <VERB? WALK>
|
||||
<==? .WHERE ,HERE>
|
||||
<==? .OL ,LAST-PLAYER-LOC>>
|
||||
<TELL "along with">)
|
||||
(T <TELL "past">)>
|
||||
<TELL " you">
|
||||
<COND (<==? .PERSON ,DELIVERY-BOY> <TELL .PUSHCART>)>
|
||||
<TELL "." CR>)>)
|
||||
(<AND <SET COR <GETP ,HERE ,P?CORRIDOR>>
|
||||
<NOT <FSET? .PERSON ,INVISIBLE>>>
|
||||
<COND (<AND <SET PCOR <GETP .OL ,P?CORRIDOR>>
|
||||
<NOT <==? <BAND .COR .PCOR> 0>>>
|
||||
<SET FLG T>
|
||||
<COND (<NOT <GETP .WHERE ,P?CORRIDOR>>
|
||||
<START-SENTENCE .PERSON>
|
||||
<TELL ", off to ">
|
||||
<DIR-PRINT <COR-DIR ,HERE .OL>>
|
||||
<TELL ",">
|
||||
;<COND (.DR
|
||||
<TELL " opens a door and">)>
|
||||
<TELL " leaves your view">
|
||||
<TELL " to ">
|
||||
<DIR-PRINT <DIR-FROM .OL .WHERE>>
|
||||
;<COND (<AND .DR
|
||||
<FSET? .DR ,LOCKED>>
|
||||
;<FCLEAR .DR ,OPENBIT>
|
||||
<TELL ", locking the door again">)>
|
||||
<COND (<==? .PERSON ,DELIVERY-BOY>
|
||||
<TELL .PUSHCART>)>
|
||||
<TELL "." CR>)
|
||||
(<0? <BAND .COR <GETP .WHERE ,P?CORRIDOR>>>
|
||||
<START-SENTENCE .PERSON>
|
||||
<TELL ", off to ">
|
||||
<DIR-PRINT <COR-DIR ,HERE .OL>>
|
||||
<TELL ", disappears from sight to ">
|
||||
<DIR-PRINT <SET PCOR <DIR-FROM .OL .WHERE>>>
|
||||
<COND (<==? .PERSON ,DELIVERY-BOY>
|
||||
<TELL .PUSHCART>)>
|
||||
<TELL "." CR>)
|
||||
(T
|
||||
<START-SENTENCE .PERSON>
|
||||
<TELL " is to ">
|
||||
<DIR-PRINT <SET CD <COR-DIR ,HERE .WHERE>>>
|
||||
<TELL ", heading ">
|
||||
<COND (<==? .CD <SET DF <DIR-FROM .OL .WHERE>>>
|
||||
<TELL "away from you">)
|
||||
(T
|
||||
<TELL "toward ">
|
||||
<DIR-PRINT .DF>)>
|
||||
<COND (<==? .PERSON ,DELIVERY-BOY>
|
||||
<TELL .PUSHCART>)>
|
||||
<TELL "." CR>)>)
|
||||
(<AND <SET PCOR <GETP .WHERE ,P?CORRIDOR>>
|
||||
<NOT <==? <BAND .COR .PCOR> 0>>>
|
||||
<SET FLG T>
|
||||
<TELL "To ">
|
||||
<DIR-PRINT <COR-DIR ,HERE .WHERE>>
|
||||
<TELL " ">
|
||||
<THE? .PERSON>
|
||||
<TELL D .PERSON " comes into view from ">
|
||||
<DIR-PRINT <DIR-FROM .WHERE .OL>>
|
||||
<COND (<==? .PERSON ,DELIVERY-BOY> <TELL .PUSHCART>)>
|
||||
<TELL "." CR>)>)>
|
||||
;<WHERE-UPDATE .PERSON .FLG>
|
||||
<MOVE .PERSON .WHERE>
|
||||
<COND (<==? <GET .GT ,GOAL-F> .WHERE>
|
||||
<COND (<AND <NOT <SET VAL <GOAL-REACHED .PERSON>>>
|
||||
<==? ,HERE .WHERE>
|
||||
<NOT <FSET? .PERSON ,INVISIBLE>>>
|
||||
<SET FLG ,M-FATAL>
|
||||
<START-SENTENCE .PERSON>
|
||||
<TELL " stops here." CR>)>)
|
||||
(T <APPLY <GET .GT ,GOAL-FUNCTION> ,G-ENROUTE>)>
|
||||
;<COND (,DEBUG
|
||||
<TELL "[">
|
||||
<START-SENTENCE .PERSON>
|
||||
<TELL " just went into ">
|
||||
<THE? .WHERE>
|
||||
<TELL D .WHERE ".]" CR>)>
|
||||
<COND (<==? .VAL ,M-FATAL> .VAL)
|
||||
(T .FLG)>>
|
||||
|
||||
<ROUTINE DIR-FROM (HERE THERE "AUX" (V <>) (P 0) L Z O)
|
||||
#DECL ((HERE THERE O) OBJECT (P L) FIX)
|
||||
<REPEAT ()
|
||||
<COND (<0? <SET P <NEXTP .HERE .P>>>
|
||||
<RETURN .V>)
|
||||
(<EQUAL? .P ,P?IN ,P?OUT> T)
|
||||
(<NOT <L? .P ,LOW-DIRECTION>>
|
||||
<SET Z <GETPT .HERE .P>>
|
||||
<SET L <PTSIZE .Z>>
|
||||
<COND (<AND <EQUAL? .L ,DEXIT ,UEXIT ,CEXIT>
|
||||
<==? <GETB .Z ,REXIT> .THERE>>
|
||||
<COND (<EQUAL? .P ,P?UP ,P?DOWN>
|
||||
<SET V .P>)
|
||||
(T <RETURN .P>)>)
|
||||
(<AND <NOT .V>
|
||||
<EQUAL? .L ,FEXIT>>
|
||||
<SET V .P>)>)>>>
|
||||
|
||||
;<ROUTINE WHERE-UPDATE (PERSON "OPTIONAL" (FLG <>) "AUX" WT NC (CNT 0))
|
||||
<SET NC <GETP .PERSON ,P?CHARACTER>>
|
||||
<SET WT <GET ,WHERE-TABLES .NC>>
|
||||
<REPEAT ()
|
||||
<COND (<G? .CNT ,CHARACTER-MAX> <RETURN>)
|
||||
(<==? .CNT .NC>)
|
||||
(<OR <AND <0? .CNT> .FLG>
|
||||
<IN? <GET ,CHARACTER-TABLE .CNT> <LOC .PERSON>>>
|
||||
<PUT .WT .CNT ,PRESENT-TIME>
|
||||
<PUT <GET ,WHERE-TABLES .CNT> .NC ,PRESENT-TIME>)>
|
||||
<SET CNT <+ .CNT 1>>>>
|
||||
|
||||
;<GLOBAL WHERE-TABLES
|
||||
<TABLE <TABLE 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0>
|
||||
<TABLE 0 0 0 0 0>>>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,33 @@
|
|||
|
||||
|
||||
.FUNCT PICK-ONE,FROB
|
||||
GET FROB,0
|
||||
RANDOM STACK
|
||||
GET FROB,STACK
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT DPRINT,OBJ
|
||||
GETP OBJ,P?SDESC
|
||||
ZERO? STACK /?ELS5
|
||||
GETP OBJ,P?SDESC
|
||||
PRINT STACK
|
||||
RTRUE
|
||||
?ELS5: PRINTD OBJ
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT APRINT,OBJ
|
||||
FSET? OBJ,PERSON /?THN6
|
||||
EQUAL? OBJ,PETES-PATCH \?ELS5
|
||||
?THN6: CALL DPRINT,OBJ
|
||||
RSTACK
|
||||
?ELS5: FSET? OBJ,VOWELBIT \?ELS11
|
||||
PRINTI "an "
|
||||
CALL DPRINT,OBJ
|
||||
RSTACK
|
||||
?ELS11: PRINTI "a "
|
||||
CALL DPRINT,OBJ
|
||||
RSTACK
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,145 @@
|
|||
"MACROS for
|
||||
TOA #2
|
||||
(c) Copyright 1984 Infocom, Inc. All Rights Reserved.
|
||||
"
|
||||
|
||||
<COND (<NOT <GASSIGNED? ZSTR-ON>>
|
||||
<SETG ZSTR-ON <SETG ZSTR-OFF ,TIME>>)>
|
||||
|
||||
<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>>)
|
||||
(<=? .P "PRSO">
|
||||
<MAPRET '<PRSO-PRINT>>)
|
||||
(<=? .P "PRSI">
|
||||
<MAPRET '<PRSI-PRINT>>)
|
||||
;(<=? .P "THE-PRSO">
|
||||
<MAPRET '<THE-PRSO-PRINT>>)
|
||||
;(<=? .P "THE-PRSI">
|
||||
<MAPRET '<THE-PRSI-PRINT>>)
|
||||
(<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 DPRINT .O>>)
|
||||
(<OR <=? .P "A">
|
||||
<=? .P "AN">>
|
||||
<MAPRET <FORM APRINT .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 ZSTRING>
|
||||
<MAPRET <FORM PRINTI .E>>)
|
||||
(<TYPE? .E FORM LVAL GVAL>
|
||||
<MAPRET <FORM PRINT .E>>)
|
||||
(<TYPE? .E FIX>
|
||||
<MAPRET <FORM PRINTX .E>>)
|
||||
(ELSE <ERROR UNKNOWN-TYPE .E>)>>>>>
|
||||
|
||||
<DEFMAC VERB? ("ARGS" ATMS)
|
||||
<MULTIFROB PRSA .ATMS>>
|
||||
|
||||
<DEFMAC PRSO? ("ARGS" ATMS)
|
||||
<MULTIFROB PRSO .ATMS>>
|
||||
|
||||
<DEFMAC PRSI? ("ARGS" ATMS)
|
||||
<MULTIFROB PRSI .ATMS>>
|
||||
|
||||
<DEFMAC ROOM? ("ARGS" ATMS)
|
||||
<MULTIFROB HERE .ATMS>>
|
||||
|
||||
<ZSTR-OFF>
|
||||
|
||||
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM)
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS>
|
||||
<RETURN!- <COND (<LENGTH? .OO 1> <ERROR .X>)
|
||||
(<LENGTH? .OO 2> <NTH .OO 2>)
|
||||
(ELSE <CHTYPE .OO FORM>)>>)>
|
||||
<REPEAT ()
|
||||
<COND (<EMPTY? .ATMS> <RETURN!->)>
|
||||
<SET ATM <NTH .ATMS 1>>
|
||||
<SET L
|
||||
(<COND (<TYPE? .ATM ATOM>
|
||||
<FORM GVAL
|
||||
<COND (<==? .X PRSA>
|
||||
<PARSE
|
||||
<STRING "V?"
|
||||
<SPNAME .ATM>>>)
|
||||
(ELSE .ATM)>>)
|
||||
(ELSE .ATM)>
|
||||
!.L)>
|
||||
<SET ATMS <REST .ATMS>>
|
||||
<COND (<==? <LENGTH .L> 3> <RETURN!->)>>
|
||||
<SET O <REST <PUTREST .O (<FORM EQUAL? <FORM GVAL .X> !.L>)>>>
|
||||
<SET L ()>>>
|
||||
|
||||
<ZSTR-ON>
|
||||
|
||||
<DEFMAC RFATAL ()
|
||||
'<PROG () <PUSH 2> <RSTACK>>>
|
||||
|
||||
<DEFMAC PROB ('BASE?)
|
||||
<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 OPENABLE? ('OBJ)
|
||||
<FORM OR <FORM FSET? .OBJ ',DOORBIT>
|
||||
<FORM FSET? .OBJ ',CONTBIT>>>
|
||||
|
||||
;<ROUTINE ABS (NUM)
|
||||
<COND (<G? .NUM 0>
|
||||
<RETURN .NUM>)
|
||||
(ELSE
|
||||
<RETURN <- 0 .NUM>>)>>
|
||||
|
||||
<ROUTINE DPRINT (OBJ)
|
||||
<COND (<GETP .OBJ ,P?SDESC>
|
||||
<TELL <GETP .OBJ ,P?SDESC>>)
|
||||
(T <PRINTD .OBJ>)>>
|
||||
|
||||
<ROUTINE APRINT (OBJ)
|
||||
<COND (<OR <FSET? .OBJ ,PERSON>
|
||||
<==? .OBJ ,PETES-PATCH>>
|
||||
<TELL D .OBJ>)
|
||||
(<FSET? .OBJ ,VOWELBIT> <TELL "an " D .OBJ>)
|
||||
(T <TELL "a " D .OBJ>)>>
|
||||
|
|
@ -0,0 +1,481 @@
|
|||
|
||||
|
||||
.FUNCT GO
|
||||
START::
|
||||
|
||||
?FCN: CALL QUEUE,I-UNWOUND,20
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-BUSINESS-HOURS,60
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-FERRY-APPROACHING,117
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-FERRY,120
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-HUNGER,15
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-THIRST,25
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-TIRED,929
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-LIVER,10
|
||||
PUT STACK,0,1
|
||||
CALL QUEUE,I-DRILL,5
|
||||
CALL QUEUE,I-MM-COMPRESSOR,80
|
||||
CALL QUEUE,I-PLOT-NEVER-STARTS,60
|
||||
PUT STACK,0,1
|
||||
SET 'LIT,TRUE-VALUE
|
||||
SET 'SCORE,8
|
||||
SET 'WINNER,ADVENTURER
|
||||
SET 'PLAYER,WINNER
|
||||
SET 'SAMPLE-TREASURE,GLOBAL-OBJECTS
|
||||
CALL PUT-IN-TABLE,ENVELOPE,MCGINTY-HQ,GLOBAL-SURFACE
|
||||
SET 'HERE,BEDROOM
|
||||
SET 'P-IT-OBJECT,FALSE-VALUE
|
||||
FSET? HERE,TOUCHBIT /?CND1
|
||||
CALL START-MOVEMENT
|
||||
CALL TELL-START-STR
|
||||
CRLF
|
||||
CALL V-VERSION
|
||||
CRLF
|
||||
?CND1: MOVE WINNER,BED
|
||||
CALL V-LOOK
|
||||
CALL MAIN-LOOP
|
||||
JUMP ?FCN
|
||||
|
||||
|
||||
.FUNCT MAIN-VERB-PRINT,TMP,?TMP1
|
||||
GET P-ITBL,P-VERBN >TMP
|
||||
ZERO? P-OFLAG /?ELS5
|
||||
GET TMP,0
|
||||
PRINTB STACK
|
||||
RTRUE
|
||||
?ELS5: GETB TMP,2 >?TMP1
|
||||
GETB TMP,3
|
||||
CALL WORD-PRINT,?TMP1,STACK
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT MAIN-LOOP,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,PLACE
|
||||
?PRG1: SET 'CNT,0
|
||||
SET 'OBJ,FALSE-VALUE
|
||||
SET 'PTBL,TRUE-VALUE
|
||||
SET 'WAITED?,FALSE-VALUE
|
||||
SET 'P-WALK-DIR,FALSE-VALUE
|
||||
EQUAL? HERE,QCONTEXT-ROOM /?CND3
|
||||
SET 'QCONTEXT,FALSE-VALUE
|
||||
?CND3: CALL PARSER >P-WON
|
||||
ZERO? P-WON /?ELS8
|
||||
LOC PLAYER >LAST-PLAYER-LOC
|
||||
GET P-PRSI,P-MATCHLEN >ICNT
|
||||
GET P-PRSO,P-MATCHLEN >OCNT
|
||||
ZERO? P-IT-OBJECT /?CND9
|
||||
CALL ACCESSIBLE?,P-IT-OBJECT
|
||||
ZERO? STACK /?CND9
|
||||
SET 'TMP,FALSE-VALUE
|
||||
?PRG14: IGRTR? 'CNT,ICNT \?ELS18
|
||||
JUMP ?REP15
|
||||
?ELS18: GET P-PRSI,CNT
|
||||
EQUAL? STACK,IT \?PRG14
|
||||
PUT P-PRSI,CNT,P-IT-OBJECT
|
||||
SET 'TMP,TRUE-VALUE
|
||||
?REP15: ZERO? TMP \?CND24
|
||||
SET 'CNT,0
|
||||
?PRG27: IGRTR? 'CNT,OCNT \?ELS31
|
||||
JUMP ?CND24
|
||||
?ELS31: GET P-PRSO,CNT
|
||||
EQUAL? STACK,IT \?PRG27
|
||||
PUT P-PRSO,CNT,P-IT-OBJECT
|
||||
?CND24: SET 'CNT,0
|
||||
?CND9: ZERO? OCNT \?ELS41
|
||||
PUSH OCNT
|
||||
JUMP ?CND37
|
||||
?ELS41: GRTR? OCNT,1 \?ELS43
|
||||
SET 'TBL,P-PRSO
|
||||
ZERO? ICNT \?ELS46
|
||||
SET 'OBJ,FALSE-VALUE
|
||||
JUMP ?CND44
|
||||
?ELS46: GET P-PRSI,1 >OBJ
|
||||
?CND44: PUSH OCNT
|
||||
JUMP ?CND37
|
||||
?ELS43: GRTR? ICNT,1 \?ELS50
|
||||
SET 'PTBL,FALSE-VALUE
|
||||
SET 'TBL,P-PRSI
|
||||
GET P-PRSO,1 >OBJ
|
||||
PUSH ICNT
|
||||
JUMP ?CND37
|
||||
?ELS50: PUSH 1
|
||||
?CND37: SET 'NUM,STACK
|
||||
ZERO? OBJ \?CND53
|
||||
EQUAL? ICNT,1 \?CND53
|
||||
GET P-PRSI,1 >OBJ
|
||||
?CND53: EQUAL? PRSA,V?WALK \?ELS60
|
||||
ZERO? P-WALK-DIR /?ELS60
|
||||
CALL PERFORM,PRSA,PRSO >V
|
||||
JUMP ?CND58
|
||||
?ELS60: ZERO? NUM \?ELS64
|
||||
GETB P-SYNTAX,P-SBITS
|
||||
BAND STACK,P-SONUMS
|
||||
ZERO? STACK \?ELS67
|
||||
CALL PERFORM,PRSA >V
|
||||
SET 'PRSO,FALSE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS67: ZERO? LIT \?ELS69
|
||||
CALL TELL-TOO-DARK
|
||||
JUMP ?CND58
|
||||
?ELS69: ZERO? OBJ /?ELS74
|
||||
EQUAL? OBJ,NOT-HERE-OBJECT \?ELS78
|
||||
CALL GLOBAL-NOT-HERE-PRINT,OBJ
|
||||
JUMP ?CND58
|
||||
?ELS78: LOC WINNER >PLACE
|
||||
FSET? PLACE,VEHBIT \?ELS80
|
||||
LOC OBJ
|
||||
EQUAL? PLACE,STACK /?CND58
|
||||
PRINTI "You should get "
|
||||
FSET? PLACE,SURFACEBIT \?ELS88
|
||||
PRINTI "off"
|
||||
JUMP ?CND86
|
||||
?ELS88: PRINTI "out"
|
||||
?CND86: PRINTI " of "
|
||||
CALL THE?,PLACE
|
||||
CALL DPRINT,PLACE
|
||||
PRINTI " first."
|
||||
CRLF
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS80: EQUAL? PRSA,V?GIVE \?ELS100
|
||||
CALL TELL-NOTHING,STR?48
|
||||
CALL MAIN-VERB-PRINT
|
||||
PRINTI "."
|
||||
CRLF
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS100: FSET? OBJ,CONTBIT \?ELS104
|
||||
FSET? OBJ,OPENBIT /?ELS104
|
||||
PRINTI "Better open the "
|
||||
CALL DPRINT,OBJ
|
||||
PRINTI " first."
|
||||
CRLF
|
||||
SET 'P-IT-OBJECT,OBJ
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS104: FSET? OBJ,CONTBIT /?ELS110
|
||||
CALL TELL-NOTHING,STR?49,TRUE-VALUE
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS110: PRINTI "It's not in that."
|
||||
CRLF
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS74: EQUAL? PRSA,V?$CALL \?ELS116
|
||||
CALL V-CALL-LOSE
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS116: ZERO? P-NONE /?ELS118
|
||||
PRINTI "I can't find any here!"
|
||||
CRLF
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS118: PRINTI "There isn't anything to "
|
||||
CALL MAIN-VERB-PRINT
|
||||
PRINTI " here!"
|
||||
CRLF
|
||||
SET 'V,FALSE-VALUE
|
||||
JUMP ?CND58
|
||||
?ELS64: SET 'P-NOT-HERE,0
|
||||
SET 'P-MULT,FALSE-VALUE
|
||||
GRTR? NUM,1 \?CND130
|
||||
SET 'P-MULT,TRUE-VALUE
|
||||
?CND130: SET 'TMP,FALSE-VALUE
|
||||
?PRG133: IGRTR? 'CNT,NUM \?ELS137
|
||||
GRTR? P-NOT-HERE,0 \?ELS140
|
||||
PRINTI "The "
|
||||
EQUAL? P-NOT-HERE,NUM /?CND143
|
||||
PRINTI "other "
|
||||
?CND143: PRINTI "object"
|
||||
EQUAL? P-NOT-HERE,1 /?CND150
|
||||
PRINTI "s"
|
||||
?CND150: PRINTI " that you mentioned "
|
||||
EQUAL? P-NOT-HERE,1 /?ELS159
|
||||
PRINTI "are"
|
||||
JUMP ?CND157
|
||||
?ELS159: PRINTI "is"
|
||||
?CND157: PRINTI "n't here."
|
||||
CRLF
|
||||
JUMP ?REP134
|
||||
?ELS140: ZERO? TMP \?REP134
|
||||
PRINTI "I don't know what you're referring to."
|
||||
CRLF
|
||||
JUMP ?REP134
|
||||
?ELS137: ZERO? PTBL /?ELS176
|
||||
GET P-PRSO,CNT >OBJ1
|
||||
JUMP ?CND174
|
||||
?ELS176: GET P-PRSI,CNT >OBJ1
|
||||
?CND174: ZERO? PTBL /?ELS184
|
||||
PUSH OBJ1
|
||||
JUMP ?CND180
|
||||
?ELS184: PUSH OBJ
|
||||
?CND180: SET 'PRSO,STACK
|
||||
ZERO? PTBL /?ELS192
|
||||
PUSH OBJ
|
||||
JUMP ?CND188
|
||||
?ELS192: PUSH OBJ1
|
||||
?CND188: SET 'PRSI,STACK
|
||||
GRTR? NUM,1 \?CND196
|
||||
EQUAL? OBJ1,NOT-HERE-OBJECT \?ELS201
|
||||
INC 'P-NOT-HERE
|
||||
JUMP ?PRG133
|
||||
?ELS201: EQUAL? PRSA,V?TAKE \?ELS203
|
||||
ZERO? PRSI /?ELS203
|
||||
GET P-ITBL,P-NC1
|
||||
GET STACK,0
|
||||
EQUAL? STACK,W?ALL \?ELS203
|
||||
IN? PRSO,PRSI /?ELS203
|
||||
JUMP ?PRG133
|
||||
?ELS203: EQUAL? P-GETFLAGS,P-ALL \?ELS207
|
||||
EQUAL? PRSA,V?TAKE \?ELS207
|
||||
LOC OBJ1
|
||||
EQUAL? STACK,WINNER,HERE /?ELS213
|
||||
LOC OBJ1
|
||||
FSET? STACK,TRANSBIT \?PRG133
|
||||
?ELS213: FSET? OBJ1,TAKEBIT /?ELS207
|
||||
FSET? OBJ1,TRYTAKEBIT /?ELS207
|
||||
JUMP ?PRG133
|
||||
?ELS207: EQUAL? P-GETFLAGS,P-ALL \?ELS217
|
||||
EQUAL? PRSA,V?DROP \?ELS217
|
||||
IN? OBJ1,WINNER /?ELS217
|
||||
IN? P-IT-OBJECT,WINNER /?ELS217
|
||||
JUMP ?PRG133
|
||||
?ELS217: EQUAL? OBJ1,IT \?ELS224
|
||||
CALL DPRINT,P-IT-OBJECT
|
||||
JUMP ?CND222
|
||||
?ELS224: CALL DPRINT,OBJ1
|
||||
?CND222: PRINTI ": "
|
||||
?CND196: ZERO? PTBL /?ELS233
|
||||
PUSH OBJ1
|
||||
JUMP ?CND229
|
||||
?ELS233: PUSH OBJ
|
||||
?CND229: CALL QCONTEXT-CHECK,STACK >V
|
||||
SET 'TMP,TRUE-VALUE
|
||||
CALL PERFORM,PRSA,PRSO,PRSI >V
|
||||
EQUAL? V,M-FATAL \?PRG133
|
||||
JUMP ?CND58
|
||||
?REP134:
|
||||
?CND58: EQUAL? V,M-FATAL /?CND240
|
||||
LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL STACK,M-END >V
|
||||
?CND240: EQUAL? PRSA,V?FOLLOW,V?WALK,V?AGAIN /?CND243
|
||||
EQUAL? PRSA,V?WAIT /?CND243
|
||||
CALL GAME-COMMAND?
|
||||
ZERO? STACK /?ELS245
|
||||
JUMP ?CND243
|
||||
?ELS245: SET 'L-PRSA,PRSA
|
||||
SET 'L-PRSO,PRSO
|
||||
SET 'L-PRSI,PRSI
|
||||
SET 'L-WALK-DIR,P-WALK-DIR
|
||||
SET 'L-WINNER,WINNER
|
||||
?CND243: EQUAL? V,M-FATAL \?CND6
|
||||
SET 'P-CONT,FALSE-VALUE
|
||||
JUMP ?CND6
|
||||
?ELS8: SET 'P-CONT,FALSE-VALUE
|
||||
?CND6: ZERO? P-WON /?CND255
|
||||
CALL GAME-COMMAND?
|
||||
ZERO? STACK /?ELS261
|
||||
JUMP ?CND255
|
||||
?ELS261: EQUAL? PRSA,V?TELL \?ELS263
|
||||
ZERO? PRSI \?ELS263
|
||||
JUMP ?CND255
|
||||
?ELS263: ZERO? CLOCK-WAIT \?THN268
|
||||
ZERO? I-WAIT-DURATION \?ELS267
|
||||
?THN268: CALL CLOCKER >V
|
||||
CALL DETECTOR-NOISE >V
|
||||
JUMP ?CND255
|
||||
?ELS267: CALL V-WAIT,I-WAIT-DURATION,FALSE-VALUE >I-WAIT-FLAG
|
||||
ZERO? I-WAIT-FLAG /?ELS274
|
||||
CALL I-WAIT-RTN
|
||||
SET 'I-WAIT-FLAG,FALSE-VALUE
|
||||
JUMP ?CND272
|
||||
?ELS274: SET 'I-WAIT-DURATION,0
|
||||
CALL CLOCKER >V
|
||||
?CND272: CALL DETECTOR-NOISE >V
|
||||
?CND255: SET 'PRSA,FALSE-VALUE
|
||||
SET 'PRSO,FALSE-VALUE
|
||||
SET 'PRSI,FALSE-VALUE
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT GAME-COMMAND?
|
||||
EQUAL? PRSA,V?VERBOSE,V?SUPER-BRIEF,V?BRIEF /TRUE
|
||||
EQUAL? PRSA,V?RESTART,V?RESTORE,V?SAVE /TRUE
|
||||
EQUAL? PRSA,V?UNSCRIPT,V?SCRIPT,V?QUIT /TRUE
|
||||
EQUAL? PRSA,V?SCORE,V?VERSION,V?$VERIFY /TRUE
|
||||
EQUAL? PRSA,V?TIME /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT QCONTEXT-CHECK,PRSO,OTHER,WHO=0,N=0
|
||||
EQUAL? PRSA,V?LONGITUDE,V?LATITUDE,V?HELP /?THN6
|
||||
EQUAL? PRSA,V?GIVE,V?TELL,V?SHOW \FALSE
|
||||
EQUAL? PRSO,PLAYER \FALSE
|
||||
?THN6: FIRST? HERE >OTHER /?KLU33
|
||||
?KLU33:
|
||||
?PRG10: ZERO? OTHER \?ELS14
|
||||
JUMP ?REP11
|
||||
?ELS14: FSET? OTHER,PERSON \?CND12
|
||||
EQUAL? OTHER,PLAYER /?CND12
|
||||
INC 'N
|
||||
SET 'WHO,OTHER
|
||||
?CND12: NEXT? OTHER >OTHER /?KLU34
|
||||
?KLU34: JUMP ?PRG10
|
||||
?REP11: EQUAL? 1,N \?CND19
|
||||
ZERO? QCONTEXT \?CND19
|
||||
CALL SAID-TO,WHO
|
||||
?CND19: ZERO? QCONTEXT /FALSE
|
||||
IN? QCONTEXT,HERE \FALSE
|
||||
EQUAL? QCONTEXT-ROOM,HERE \FALSE
|
||||
EQUAL? WINNER,PLAYER \FALSE
|
||||
SET 'WINNER,QCONTEXT
|
||||
PRINTI "(said to "
|
||||
CALL DPRINT,QCONTEXT
|
||||
PRINTR ")"
|
||||
|
||||
|
||||
.FUNCT SAID-TO,WHO
|
||||
SET 'WINNER,WHO
|
||||
SET 'QCONTEXT,WHO
|
||||
SET 'QCONTEXT-ROOM,HERE
|
||||
RETURN QCONTEXT-ROOM
|
||||
|
||||
|
||||
.FUNCT PERFORM,A,O=0,I=0,V,OA,OO,OI
|
||||
SET 'OA,PRSA
|
||||
SET 'OO,PRSO
|
||||
SET 'OI,PRSI
|
||||
EQUAL? A,V?WALK /?CND1
|
||||
EQUAL? IT,I,O \?CND1
|
||||
PRINTI "I don't see what you are referring to."
|
||||
CRLF
|
||||
RETURN 2
|
||||
?CND1: SET 'PRSA,A
|
||||
SET 'PRSO,O
|
||||
ZERO? PRSO /?CND10
|
||||
EQUAL? PRSI,IT /?CND10
|
||||
EQUAL? PRSA,V?WALK /?CND10
|
||||
SET 'P-IT-OBJECT,PRSO
|
||||
?CND10: SET 'PRSI,I
|
||||
EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?ELS17
|
||||
EQUAL? PRSA,V?WALK /?ELS17
|
||||
CALL NOT-HERE-OBJECT-F >V
|
||||
ZERO? V /?ELS17
|
||||
SET 'P-WON,FALSE-VALUE
|
||||
JUMP ?CND15
|
||||
?ELS17: SET 'O,PRSO
|
||||
SET 'I,PRSI
|
||||
GETP WINNER,P?ACTION
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS24
|
||||
JUMP ?CND15
|
||||
?ELS24: LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL STACK,M-BEG >V
|
||||
ZERO? V /?ELS26
|
||||
JUMP ?CND15
|
||||
?ELS26: GET PREACTIONS,A
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS28
|
||||
JUMP ?CND15
|
||||
?ELS28: SET 'I,PRSI
|
||||
ZERO? I /?ELS30
|
||||
ZERO? I /?ELS30
|
||||
GETP I,P?ACTION
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS30
|
||||
JUMP ?CND15
|
||||
?ELS30: ZERO? O /?ELS34
|
||||
EQUAL? A,V?WALK /?ELS34
|
||||
LOC O
|
||||
ZERO? STACK /?ELS34
|
||||
LOC O
|
||||
GETP STACK,P?CONTFCN
|
||||
CALL STACK,M-CONT >V
|
||||
ZERO? V /?ELS34
|
||||
JUMP ?CND15
|
||||
?ELS34: ZERO? O /?ELS38
|
||||
EQUAL? A,V?WALK /?ELS38
|
||||
GETP O,P?ACTION
|
||||
CALL STACK >V
|
||||
ZERO? V /?ELS38
|
||||
JUMP ?CND15
|
||||
?ELS38: GET ACTIONS,A
|
||||
CALL STACK >V
|
||||
ZERO? V /?CND15
|
||||
?CND15: EQUAL? V,M-FATAL /?CND43
|
||||
LOC WINNER
|
||||
EQUAL? STACK,PRSO \?CND46
|
||||
SET 'PRSO,FALSE-VALUE
|
||||
?CND46: LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL STACK,M-END >V
|
||||
?CND43: SET 'PRSA,OA
|
||||
SET 'PRSO,OO
|
||||
SET 'PRSI,OI
|
||||
RETURN V
|
||||
|
||||
|
||||
.FUNCT TELL-START-STR
|
||||
PRINTR "Nights on Hardscrabble Island are lonely and cold when the lighthouse barely pierces the gloom. You sit on your bed, thinking of better times and far-off places. A knock on your door stirs you, and Hevlin, a shipmate you haven't seen for years, staggers in.
|
||||
|
||||
""I'm in trouble,"" he says. ""I had a few too many at The Shanty. I was looking for Red, but he wasn't around, and I started talking about ... here,"" he says, handing you a slim volume that you recognize as a shipwreck book written years ago by the Historical Society.
|
||||
|
||||
You smile. Every diver on the island has looked for those wrecks, without even an old boot to show for it. You open the door, hoping the drunken fool will leave. ""I know what you're thinkin',"" Hevlin scowls, ""but look!"" He points to the familiar map, and you see new locations marked for two of the wrecks.
|
||||
|
||||
""Keep it for me,"" he says. ""Just for tonight. It'll be safe here with you. Don't let -- "" He stops and broods for a moment. ""I've got to go find Red!"" And with that, Hevlin leaves.
|
||||
|
||||
You put the book in your dresser and think about following Hevlin. Then you hear a scuffle outside. You look through your window and see two men struggling. One falls to the ground in a heap. The other man bends down beside him, then turns as if startled and runs away. Another man then approaches the wounded figure. He kneels beside him for a long moment, then takes off after the other man.
|
||||
|
||||
It isn't long before the police arrive to tell you that Hevlin's been murdered. You don't mention the book, and hours later, as you lie awake in your bed, you wonder if the book could really be what it seems."
|
||||
|
||||
|
||||
.FUNCT ACCESSIBLE?,OBJ,L
|
||||
LOC OBJ >L
|
||||
FSET? OBJ,INVISIBLE /FALSE
|
||||
EQUAL? OBJ,PSEUDO-OBJECT \?ELS7
|
||||
GETP PSEUDO-OBJECT,P?DESCFCN
|
||||
EQUAL? STACK,HERE \FALSE
|
||||
RTRUE
|
||||
?ELS7: ZERO? L /FALSE
|
||||
EQUAL? L,GLOBAL-OBJECTS /TRUE
|
||||
EQUAL? L,LOCAL-GLOBALS \?ELS20
|
||||
CALL GLOBAL-IN?,OBJ,HERE
|
||||
ZERO? STACK \TRUE
|
||||
?ELS20: CALL META-LOC,OBJ
|
||||
EQUAL? STACK,HERE \FALSE
|
||||
EQUAL? L,WINNER,HERE /TRUE
|
||||
FSET? L,OPENBIT /?THN31
|
||||
FSET? L,PERSON \FALSE
|
||||
?THN31: CALL ACCESSIBLE?,L
|
||||
ZERO? STACK /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT VISIBLE?,OBJ,L
|
||||
LOC OBJ >L
|
||||
CALL ACCESSIBLE?,OBJ
|
||||
ZERO? STACK \TRUE
|
||||
CALL SEE-INSIDE?,L
|
||||
ZERO? STACK /FALSE
|
||||
CALL VISIBLE?,L
|
||||
ZERO? STACK /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT META-LOC,OBJ
|
||||
?PRG1: ZERO? OBJ /FALSE
|
||||
EQUAL? OBJ,GLOBAL-OBJECTS,LOCAL-GLOBALS \?CND3
|
||||
RETURN OBJ
|
||||
?CND3: IN? OBJ,ROOMS \?ELS10
|
||||
RETURN OBJ
|
||||
?ELS10: LOC OBJ >OBJ
|
||||
JUMP ?PRG1
|
||||
|
||||
.ENDI
|
|
@ -0,0 +1,581 @@
|
|||
"MAIN for
|
||||
TOA #2
|
||||
Copyright (c) 1984 Infocom, Inc. All Rights Reserved.
|
||||
"
|
||||
|
||||
<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>
|
||||
|
||||
<CONSTANT M-CONT 7>
|
||||
|
||||
<CONSTANT M-NAME 8>
|
||||
|
||||
<ROUTINE GO ()
|
||||
;"put interrupts on clock chain"
|
||||
<ENABLE <QUEUE I-UNWOUND 20>>
|
||||
<ENABLE <QUEUE I-BUSINESS-HOURS 60>>
|
||||
<ENABLE <QUEUE I-FERRY-APPROACHING 117>>
|
||||
<ENABLE <QUEUE I-FERRY 120>>
|
||||
<ENABLE <QUEUE I-HUNGER 15>>
|
||||
<ENABLE <QUEUE I-THIRST 25>>
|
||||
<ENABLE <QUEUE I-TIRED 929>>
|
||||
<ENABLE <QUEUE I-LIVER 10>>
|
||||
<QUEUE I-DRILL 5>
|
||||
<QUEUE I-MM-COMPRESSOR 80>
|
||||
<ENABLE <QUEUE I-PLOT-NEVER-STARTS 60>>
|
||||
;"set up and go"
|
||||
%<COND (<NOT <GASSIGNED? PREDGEN>>
|
||||
'(;<SETG XTELLCHAN <OPEN "READB" ,XTELLFILE>>
|
||||
<SETG LIT T>))
|
||||
('<SETG LIT T>)>
|
||||
<SETG SCORE 8>
|
||||
<SETG WINNER ,ADVENTURER>
|
||||
<SETG PLAYER ,WINNER>
|
||||
<SETG SAMPLE-TREASURE ,GLOBAL-OBJECTS>
|
||||
<PUT-IN-TABLE ,ENVELOPE ,MCGINTY-HQ ,GLOBAL-SURFACE>
|
||||
<SETG HERE ,BEDROOM>
|
||||
;<SETG P-IT-LOC ,HERE>
|
||||
<SETG P-IT-OBJECT <>>
|
||||
<COND (<NOT <FSET? ,HERE ,TOUCHBIT>>
|
||||
<START-MOVEMENT>
|
||||
<TELL-START-STR>
|
||||
<CRLF>
|
||||
<V-VERSION>
|
||||
<CRLF>)>
|
||||
<MOVE ,WINNER ,BED>
|
||||
<V-LOOK>
|
||||
;<USL>
|
||||
<MAIN-LOOP>
|
||||
<AGAIN>>
|
||||
|
||||
|
||||
<ROUTINE MAIN-VERB-PRINT ("AUX" TMP)
|
||||
<SET TMP <GET ,P-ITBL ,P-VERBN>>
|
||||
<COND (,P-OFLAG
|
||||
<PRINTB <GET .TMP 0>>)
|
||||
(T
|
||||
<WORD-PRINT <GETB .TMP 2>
|
||||
<GETB .TMP 3>>)>>
|
||||
|
||||
<ROUTINE MAIN-LOOP ("AUX" ICNT OCNT NUM CNT OBJ TBL V PTBL OBJ1 TMP PLACE)
|
||||
#DECL ((CNT OCNT ICNT NUM) FIX (OBJ) <OR FALSE OBJECT>
|
||||
(OBJ1) OBJECT (TBL) TABLE (PTBL) <OR FALSE ATOM>)
|
||||
<REPEAT ()
|
||||
<SET CNT 0>
|
||||
<SET OBJ <>>
|
||||
<SET PTBL T>
|
||||
<SETG WAITED? <>>
|
||||
<SETG P-WALK-DIR <>>
|
||||
;<SETG GROGGIED <>>
|
||||
<COND (<NOT <==? ,HERE ,QCONTEXT-ROOM>>
|
||||
<SETG QCONTEXT <>>)>
|
||||
<COND (<SETG P-WON <PARSER>>
|
||||
<SETG LAST-PLAYER-LOC <LOC ,PLAYER>>
|
||||
<SET ICNT <GET ,P-PRSI ,P-MATCHLEN>>
|
||||
<SET OCNT <GET ,P-PRSO ,P-MATCHLEN>>
|
||||
<COND (<AND ,P-IT-OBJECT <ACCESSIBLE? ,P-IT-OBJECT>>
|
||||
<SET TMP <>>
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .ICNT>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<EQUAL? <GET ,P-PRSI .CNT> ,IT>
|
||||
<PUT ,P-PRSI .CNT ,P-IT-OBJECT>
|
||||
<SET TMP T>
|
||||
<RETURN>)>)>>
|
||||
<COND (<NOT .TMP>
|
||||
<SET CNT 0>
|
||||
<REPEAT ()
|
||||
<COND (<G? <SET CNT <+ .CNT 1>> .OCNT>
|
||||
<RETURN>)
|
||||
(T
|
||||
<COND (<EQUAL? <GET ,P-PRSO .CNT> ,IT>
|
||||
<PUT ,P-PRSO .CNT ,P-IT-OBJECT>
|
||||
<RETURN>)>)>>)>
|
||||
<SET CNT 0>)>
|
||||
<SET NUM
|
||||
<COND (<0? .OCNT> .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 (<AND <==? ,PRSA ,V?WALK> ,P-WALK-DIR>
|
||||
<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-TOO-DARK>)
|
||||
(T
|
||||
;"** M" <COND (.OBJ
|
||||
<COND (<==? .OBJ ,NOT-HERE-OBJECT>
|
||||
<GLOBAL-NOT-HERE-PRINT .OBJ>)
|
||||
(<FSET?
|
||||
<SET PLACE <LOC ,WINNER>>
|
||||
,VEHBIT>
|
||||
<COND (<NOT <EQUAL? .PLACE
|
||||
;<LOC ,WINNER>
|
||||
<LOC .OBJ>>>
|
||||
<TELL "You should get ">
|
||||
<COND (<FSET? .PLACE ,SURFACEBIT>
|
||||
<TELL "off">)
|
||||
(T <TELL "out">)>
|
||||
<TELL " of ">
|
||||
<THE? .PLACE>
|
||||
<TELL D .PLACE " first." CR>
|
||||
<SET V <>>)>)
|
||||
(<VERB? GIVE>
|
||||
<TELL-NOTHING "to ">
|
||||
<MAIN-VERB-PRINT>
|
||||
<TELL "." CR>
|
||||
<SET V <>>)
|
||||
(<AND <FSET? .OBJ ,CONTBIT>
|
||||
<NOT <FSET? .OBJ ,OPENBIT>>>
|
||||
<TELL "Better open the " D .OBJ
|
||||
" first." CR>
|
||||
<SETG P-IT-OBJECT .OBJ>
|
||||
<SET V <>>)
|
||||
(<NOT <FSET? .OBJ ,CONTBIT>>
|
||||
<TELL-NOTHING "in that" T>
|
||||
<SET V <>>)
|
||||
(T
|
||||
<TELL "It's not in that." CR>
|
||||
<SET V <>>)>)
|
||||
(<VERB? $CALL>
|
||||
<V-CALL-LOSE>
|
||||
<SET V <>>)
|
||||
(,P-NONE
|
||||
<TELL "I can't find any here!" CR>
|
||||
<SET V <>>)
|
||||
(T
|
||||
<TELL "There isn't anything to ">
|
||||
<MAIN-VERB-PRINT>
|
||||
<TELL " here!" 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
|
||||
"I don't know what you're referring to." 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 (<EQUAL? ,HERE ,P-IT-LOC>
|
||||
<COND (<EQUAL? ,PRSO ,IT>
|
||||
<SETG PRSO ,P-IT-OBJECT>
|
||||
<COND (.PTBL
|
||||
<SET OBJ1 ,PRSO>
|
||||
<PUT ,P-PRSO
|
||||
.CNT ,PRSO>)
|
||||
(T
|
||||
<SET OBJ ,PRSO>
|
||||
<PUT ,P-PRSO 1 ,PRSO>)>)
|
||||
(<EQUAL? ,PRSI ,IT>
|
||||
<SETG PRSI ,P-IT-OBJECT>
|
||||
<COND (.PTBL
|
||||
<SET OBJ ,PRSI>
|
||||
<PUT ,P-PRSI 1 ,PRSI>)
|
||||
(T
|
||||
<SET OBJ1 ,PRSI>
|
||||
<PUT ,P-PRSI
|
||||
.CNT ,PRSI>)>)>)>
|
||||
<COND ;(<VERB? COMPARE> T)
|
||||
(<G? .NUM 1>
|
||||
<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
|
||||
,HERE>>
|
||||
<NOT <FSET?
|
||||
<LOC .OBJ1>
|
||||
,TRANSBIT>>>
|
||||
<NOT <OR <FSET?
|
||||
.OBJ1
|
||||
,TAKEBIT>
|
||||
<FSET?
|
||||
.OBJ1
|
||||
,TRYTAKEBIT>>>>>
|
||||
<AGAIN>)
|
||||
(<AND <EQUAL? ,P-GETFLAGS
|
||||
,P-ALL>
|
||||
<VERB? DROP>
|
||||
<NOT <IN? .OBJ1 ,WINNER>>
|
||||
<NOT <IN? ,P-IT-OBJECT
|
||||
,WINNER>>>
|
||||
<AGAIN>)
|
||||
(T
|
||||
<COND (<EQUAL? .OBJ1 ,IT>
|
||||
<DPRINT ,P-IT-OBJECT>)
|
||||
(T <DPRINT .OBJ1>)>
|
||||
<TELL ": ">)>)>
|
||||
<SET V <QCONTEXT-CHECK <COND (.PTBL .OBJ1)
|
||||
(T .OBJ)>>>
|
||||
<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 <>>)>
|
||||
;"Removing this code should fix the problem that AGAIN
|
||||
loses when in a vehicle and it is the PRSO."
|
||||
<SET V <APPLY <GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
|
||||
<COND (<OR <VERB? AGAIN WALK FOLLOW>
|
||||
<VERB? WAIT>
|
||||
<GAME-COMMAND?>>
|
||||
T)
|
||||
(T
|
||||
<SETG L-PRSA ,PRSA>
|
||||
<SETG L-PRSO ,PRSO>
|
||||
<SETG L-PRSI ,PRSI>
|
||||
<SETG L-WALK-DIR ,P-WALK-DIR>
|
||||
<SETG L-WINNER ,WINNER>)>
|
||||
<COND (<==? .V ,M-FATAL> <SETG P-CONT <>>)>)
|
||||
(T
|
||||
<SETG P-CONT <>>)>
|
||||
<COND (,P-WON
|
||||
<COND (<GAME-COMMAND?>
|
||||
T)
|
||||
(<AND <VERB? TELL>
|
||||
<NOT ,PRSI>>
|
||||
T)
|
||||
(<OR ,CLOCK-WAIT <0? ,I-WAIT-DURATION>>
|
||||
<SET V <CLOCKER>>
|
||||
<SET V <DETECTOR-NOISE>>)
|
||||
(T
|
||||
<SETG I-WAIT-FLAG <V-WAIT ,I-WAIT-DURATION <>>>
|
||||
<COND (,I-WAIT-FLAG
|
||||
<APPLY ,I-WAIT-RTN>
|
||||
<SETG I-WAIT-FLAG <>>)
|
||||
(T <SETG I-WAIT-DURATION 0> <SET V <CLOCKER>>)>
|
||||
<SET V <DETECTOR-NOISE>>)>)>
|
||||
<SETG PRSA <>>
|
||||
<SETG PRSO <>>
|
||||
<SETG PRSI <>>>>
|
||||
|
||||
<ROUTINE GAME-COMMAND? ()
|
||||
<COND (<VERB? BRIEF SUPER-BRIEF VERBOSE SAVE RESTORE RESTART
|
||||
QUIT SCRIPT UNSCRIPT $VERIFY VERSION SCORE TIME>
|
||||
<RTRUE>)>>
|
||||
|
||||
<ROUTINE QCONTEXT-CHECK (PRSO "AUX" OTHER (WHO <>) (N 0))
|
||||
<COND (<OR <VERB? HELP LATITUDE LONGITUDE>
|
||||
<AND <VERB? SHOW TELL GIVE> <==? .PRSO ,PLAYER>>> ;"? more?"
|
||||
<SET OTHER <FIRST? ,HERE>>
|
||||
<REPEAT ()
|
||||
<COND (<NOT .OTHER> <RETURN>)
|
||||
(<AND <FSET? .OTHER ,PERSON>
|
||||
<NOT <==? .OTHER ,PLAYER>>>
|
||||
<SET N <+ 1 .N>>
|
||||
<SET WHO .OTHER>)>
|
||||
<SET OTHER <NEXT? .OTHER>>>
|
||||
<COND (<AND <==? 1 .N> <NOT ,QCONTEXT>>
|
||||
<SAID-TO .WHO>)>
|
||||
<COND (<AND ,QCONTEXT
|
||||
<IN? ,QCONTEXT ,HERE>
|
||||
<==? ,QCONTEXT-ROOM ,HERE>
|
||||
<==? ,WINNER ,PLAYER>> ;"? more?"
|
||||
<SETG WINNER ,QCONTEXT>
|
||||
<TELL "(said to " D ,QCONTEXT ")" CR>)>)>>
|
||||
|
||||
<ROUTINE SAID-TO (WHO)
|
||||
<SETG WINNER .WHO>
|
||||
<SETG QCONTEXT .WHO>
|
||||
<SETG QCONTEXT-ROOM ,HERE>>
|
||||
|
||||
<GLOBAL P-MULT <>>
|
||||
|
||||
<GLOBAL P-NOT-HERE 0>
|
||||
|
||||
<GLOBAL L-PRSA <>>
|
||||
|
||||
<GLOBAL L-PRSO <>>
|
||||
|
||||
<GLOBAL L-PRSI <>>
|
||||
|
||||
<GLOBAL L-WINNER <>>
|
||||
|
||||
<GLOBAL LAST-PLAYER-LOC <>>
|
||||
|
||||
;"PERFORM without 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)
|
||||
<SET OA ,PRSA>
|
||||
<SET OO ,PRSO>
|
||||
<SET OI ,PRSI>
|
||||
<COND (<AND <NOT <==? .A ,V?WALK>>
|
||||
<EQUAL? ,IT .I .O>>
|
||||
;<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 <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>
|
||||
<NOT <VERB? WALK>>
|
||||
<SET V <NOT-HERE-OBJECT-F>>>
|
||||
<SETG P-WON <>>
|
||||
.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 <SET I ,PRSI> .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> ,M-CONT>>>
|
||||
.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>
|
||||
|
||||
;"PERFORM with 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 = ">
|
||||
%<COND (<GASSIGNED? PREDGEN> '<TELL N .A>)
|
||||
(T '<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 <NOT <==? .A ,V?WALK>>
|
||||
<EQUAL? ,IT .I .O>>
|
||||
;<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 <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>
|
||||
<NOT <VERB? WALK>>
|
||||
<SET V <D-APPLY "Not Here" ,NOT-HERE-OBJECT-F>>>
|
||||
<SETG P-WON <>>
|
||||
.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 <SET I ,PRSI> .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)>)>
|
||||
<COND (<NOT <==? .V ,M-FATAL>>
|
||||
<COND (<==? <LOC ,WINNER> ,PRSO>
|
||||
<SETG PRSO <>>)>
|
||||
<SET V <D-APPLY "Room (M-END)"
|
||||
<GETP <LOC ,WINNER> ,P?ACTION> ,M-END>>)>
|
||||
<SETG PRSA .OA>
|
||||
<SETG PRSO .OO>
|
||||
<SETG PRSI .OI>
|
||||
.V>
|
||||
|
||||
;"Next 2 routines for use with DEBUG"
|
||||
;<ROUTINE DD-APPLY (STR OBJ FCN "OPTIONAL" (FOO <>))
|
||||
<COND (,DEBUG <TELL "[" D .OBJ "=]">)>
|
||||
<D-APPLY .STR .FCN .FOO>>
|
||||
|
||||
;<ROUTINE D-APPLY (STR FCN "OPTIONAL" (FOO <>) "AUX" RES)
|
||||
<COND (<NOT .FCN> <>)
|
||||
(T
|
||||
<COND (,DEBUG
|
||||
<COND (<NOT .STR>
|
||||
<TELL "[Action:]" CR>)
|
||||
(T <TELL "[" .STR ": ">)>)>
|
||||
<COND (<==? .STR "Container">
|
||||
<SET FOO ,M-CONT>)>
|
||||
<SET RES
|
||||
<COND (.FOO <APPLY .FCN .FOO>)
|
||||
(T <APPLY .FCN>)>>
|
||||
<COND (<AND ,DEBUG .STR>
|
||||
<COND (<==? .RES ,M-FATAL>
|
||||
<TELL "Fatal]" CR>)
|
||||
(<NOT .RES>
|
||||
<TELL "Not handled]" CR>)
|
||||
(T <TELL "Handled]" CR>)>)>
|
||||
.RES)>>
|
||||
|
||||
<ROUTINE TELL-START-STR () ;"submitted by a committee"
|
||||
<TELL
|
||||
"Nights on Hardscrabble Island are lonely and cold when the lighthouse
|
||||
barely pierces the gloom. You sit on your bed, thinking of better times
|
||||
and far-off places. A knock on your door stirs you, and Hevlin, a shipmate
|
||||
you haven't seen for years, staggers in.|
|
||||
|
|
||||
\"I'm in trouble,\" he says. \"I had a few too many at The Shanty.
|
||||
I was looking for Red, but he wasn't around, and I started talking about ...
|
||||
here,\" he says, handing you a slim volume that you recognize
|
||||
as a shipwreck book written years ago by the Historical Society.|
|
||||
|
|
||||
You smile. Every diver on the island has looked for those wrecks,
|
||||
without even an old boot to show for it. You open the door, hoping the
|
||||
drunken fool will leave. \"I know what you're thinkin',\" Hevlin scowls,
|
||||
\"but look!\" He points to the familiar map, and you see new locations
|
||||
marked for two of the wrecks.|
|
||||
|
|
||||
\"Keep it for me,\" he says. \"Just for tonight. It'll be safe here with
|
||||
you. Don't let -- \" He stops and broods for a moment. \"I've got to go
|
||||
find Red!\" And with that, Hevlin leaves.|
|
||||
|
|
||||
You put the book in your dresser and think about following Hevlin. Then you
|
||||
hear a scuffle outside. You look through your window and see two men
|
||||
struggling. One falls to the ground in a heap. The other man bends
|
||||
down beside him, then turns as if startled and runs away. Another man then
|
||||
approaches the wounded figure. He kneels beside him for a long moment,
|
||||
then takes off after the other man.|
|
||||
|
|
||||
It isn't long before the police arrive to tell you that Hevlin's been
|
||||
murdered. You don't mention the book, and hours later, as you lie awake
|
||||
in your bed, you wonder if the book could really be what it seems." CR>>
|
||||
|
||||
<ROUTINE ACCESSIBLE? (OBJ "AUX" (L <LOC .OBJ>)) ;"can player TOUCH object?"
|
||||
;"revised 5/2/84 by SEM and SWG"
|
||||
<COND (<FSET? .OBJ ,INVISIBLE> <RFALSE>)
|
||||
(<EQUAL? .OBJ ,PSEUDO-OBJECT>
|
||||
<COND (<EQUAL? <GETP ,PSEUDO-OBJECT ,P?DESCFCN> ,HERE>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<RFALSE>)>)
|
||||
(<NOT .L> <RFALSE>)
|
||||
(<EQUAL? .L ,GLOBAL-OBJECTS> <RTRUE>)
|
||||
(<AND <EQUAL? .L ,LOCAL-GLOBALS>
|
||||
<GLOBAL-IN? .OBJ ,HERE>>
|
||||
<RTRUE>)
|
||||
(<NOT <EQUAL? <META-LOC .OBJ> ,HERE>> <RFALSE>)
|
||||
(<EQUAL? .L ,WINNER ,HERE> <RTRUE>)
|
||||
(<AND <OR <FSET? .L ,OPENBIT>
|
||||
<FSET? .L ,PERSON>>
|
||||
<ACCESSIBLE? .L>>
|
||||
<RTRUE>)
|
||||
(T <RFALSE>)>>
|
||||
|
||||
<ROUTINE VISIBLE? (OBJ "AUX" (L <LOC .OBJ>)) ;"can player SEE object"
|
||||
;"revised 5/2/84 by SEM and SWG"
|
||||
<COND (<ACCESSIBLE? .OBJ>
|
||||
<RTRUE>)
|
||||
(<AND <SEE-INSIDE? .L>
|
||||
<VISIBLE? .L>>
|
||||
<RTRUE>)
|
||||
(T
|
||||
<RFALSE>)>>
|
||||
|
||||
<ROUTINE META-LOC (OBJ)
|
||||
<REPEAT ()
|
||||
<COND (<NOT .OBJ> <RFALSE>)
|
||||
(<EQUAL? .OBJ ,GLOBAL-OBJECTS ,LOCAL-GLOBALS>
|
||||
<RETURN .OBJ>)>
|
||||
<COND (<IN? .OBJ ,ROOMS>
|
||||
<RETURN .OBJ>)
|
||||
(ELSE
|
||||
<SET OBJ <LOC .OBJ>>)>>>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,2 @@
|
|||
|
||||
.ENDI
|
|
@ -0,0 +1,821 @@
|
|||
"SYNTAX for
|
||||
TOA #2
|
||||
(c) Copyright 1984 Infocom, Inc. All Rights Reserved.
|
||||
"
|
||||
|
||||
"SUBTITLE VOCABULARY"
|
||||
|
||||
<BUZZ A AN THE IS AND SOME OF THEN ALL ONE BUT EXCEPT \. \, \"
|
||||
WHY HOW WHEN DID ARE HERE MY CLOSELY ;CAREFULLY QUIETLY
|
||||
SLOWLY QUICKLY BRIEFLY PLEASE MINUTE>
|
||||
|
||||
;<SYNONYM WITH USING THROUGH>
|
||||
<SYNONYM THROUGH THRU>
|
||||
<SYNONYM ON ONTO>
|
||||
<SYNONYM IN INSIDE INTO>
|
||||
<SYNONYM UNDER BELOW BENEATH UNDERNEATH>
|
||||
|
||||
<SYNONYM NORTH N FORE FORWARD F>
|
||||
<SYNONYM SOUTH S AFT ABAFT>
|
||||
<SYNONYM EAST E STARBO SB>
|
||||
<SYNONYM WEST W PORT P>
|
||||
<SYNONYM DOWN D DOWNSTAIRS>
|
||||
<SYNONYM UP U UPSTAIRS>
|
||||
<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 $DEBUG = V-$DEBUG>
|
||||
;<SYNTAX $FUBLIO = V-$W1>
|
||||
;<SYNTAX $WRECK = V-$W2>
|
||||
;<SYNTAX $DC = V-DEPTH-CHECK>
|
||||
;<SYNTAX $DIVETIME = V-$DIVETIME>
|
||||
|
||||
<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>
|
||||
<SYNONYM SCORE RATING PROGRESS>
|
||||
|
||||
<SYNTAX $VERIFY = V-$VERIFY>
|
||||
|
||||
<SYNTAX VERSION = V-VERSION>
|
||||
|
||||
<SYNTAX VERBOSE = V-VERBOSE>
|
||||
|
||||
\
|
||||
|
||||
"SUBTITLE REAL VERBS"
|
||||
|
||||
<SYNTAX AGAIN = V-AGAIN>
|
||||
<SYNONYM AGAIN G>
|
||||
|
||||
<SYNTAX AIM OBJECT ;(FIND WEAPONBIT) AT OBJECT = V-AIM>
|
||||
<SYNONYM AIM POINT>
|
||||
|
||||
;<SYNTAX ANSWER = V-ANSWER>
|
||||
;<SYNTAX ANSWER OBJECT = V-REPLY>
|
||||
;<SYNONYM ANSWER REPLY>
|
||||
|
||||
<SYNTAX APPLY OBJECT TO OBJECT = V-PUT PRE-PUT>
|
||||
|
||||
<SYNTAX ASK OBJECT (FIND PERSON) = V-TELL PRE-TELL>
|
||||
<SYNTAX ASK ABOUT OBJECT (HELD CARRIED ;HAVE)
|
||||
= V-ASK-CONTEXT-ABOUT PRE-ASK-CONTEXT-ABOUT>
|
||||
<SYNTAX ASK FOR OBJECT (HELD CARRIED ;HAVE)
|
||||
= V-ASK-CONTEXT-FOR PRE-ASK-CONTEXT-FOR>
|
||||
<SYNTAX ASK OBJECT (FIND PERSON)
|
||||
ABOUT OBJECT (HELD CARRIED ;HAVE) = V-ASK-ABOUT>
|
||||
<SYNTAX ASK OBJECT (FIND PERSON)
|
||||
FOR OBJECT (HELD CARRIED ;HAVE) = V-ASK-FOR>
|
||||
<SYNONYM ASK QUESTION INQUIRE>
|
||||
|
||||
<SYNTAX ATTACK
|
||||
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT ;(FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-ATTACK>
|
||||
<SYNONYM ATTACK FIGHT HURT INJURE>
|
||||
|
||||
<SYNTAX BACK = V-BACK>
|
||||
|
||||
;<SYNTAX BLAST = V-BLAST>
|
||||
|
||||
<SYNTAX BOARD OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
|
||||
= V-BOARD PRE-BOARD>
|
||||
|
||||
<SYNTAX BRACE OBJECT WITH OBJECT = V-BRACE PRE-BRACE>
|
||||
<SYNONYM BRACE SUPPORT>
|
||||
|
||||
<SYNTAX BREATHE = V-BREATHE>
|
||||
<SYNTAX BREATHE OBJECT = V-BREATHE>
|
||||
|
||||
;<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 BUY OBJECT (IN-ROOM ON-GROUND) (MANY)= V-BUY PRE-BUY>
|
||||
<SYNTAX BUY OBJECT (IN-ROOM ON-GROUND) (MANY)
|
||||
FROM OBJECT (FIND VICBIT) (ON-GROUND) = V-BUY PRE-BUY>
|
||||
<SYNONYM BUY PURCHASE ORDER>
|
||||
|
||||
<SYNTAX $CALL OBJECT = V-$CALL PRE-$CALL>
|
||||
<SYNTAX CALL OBJECT = V-CALL>
|
||||
<SYNTAX CALL TO OBJECT = V-CALL>
|
||||
|
||||
<SYNTAX CHECK OBJECT = V-EXAMINE PRE-EXAMINE>
|
||||
<SYNTAX CHECK FOR OBJECT = V-FIND>
|
||||
|
||||
<SYNTAX CHOMP = V-CHOMP>
|
||||
<SYNONYM CHOMP LOSE BARF>
|
||||
|
||||
<SYNTAX CLEAN OBJECT = V-CLEAN>
|
||||
<SYNONYM CLEAN SCRUB POLISH>
|
||||
|
||||
<SYNTAX CLIMB UP OBJECT (FIND RMUNGBIT) (ON-GROUND IN-ROOM) = V-CLIMB-FOO>
|
||||
<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>
|
||||
<SYNTAX CLIMB THROUGH OBJECT (ON-GROUND IN-ROOM) = V-THROUGH>
|
||||
<SYNTAX CLIMB OUT OBJECT (ON-GROUND IN-ROOM) = V-THROUGH>
|
||||
<SYNONYM CLIMB>
|
||||
|
||||
<SYNTAX SIT ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-SIT-ON>
|
||||
<SYNTAX SIT DOWN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-SIT>
|
||||
<SYNTAX SIT IN OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-SIT-ON>
|
||||
<SYNTAX SIT WITH OBJECT = V-SIT-WITH>
|
||||
|
||||
<SYNTAX CLOSE
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-CLOSE>
|
||||
<SYNONYM CLOSE SHUT>
|
||||
|
||||
;<SYNTAX COMPARE OBJECT TO OBJECT = V-COMPARE PRE-COMPARE>
|
||||
;<SYNTAX COMPARE OBJECT WITH OBJECT = V-COMPARE PRE-COMPARE>
|
||||
;<SYNTAX COMPARE OBJECT (HELD CARRIED MANY) = V-FOO-COMPARE>
|
||||
|
||||
<SYNTAX COUNT OBJECT = V-COUNT>
|
||||
|
||||
<SYNTAX CROSS OBJECT = V-CROSS>
|
||||
<SYNONYM CROSS FORD>
|
||||
|
||||
<SYNTAX CUT OBJECT WITH OBJECT ;(FIND WEAPONBIT) (CARRIED HELD) = V-CUT>
|
||||
<SYNONYM CUT SLICE PIERCE SCRAPE>
|
||||
|
||||
<SYNTAX CURSE = V-CURSES>
|
||||
<SYNTAX CURSE OBJECT (FIND VICBIT) = V-CURSES>
|
||||
<SYNONYM CURSE SWEAR CUSS DAMN FUCK SHIT HELL>
|
||||
|
||||
<SYNTAX DEFLATE OBJECT = V-DEFLATE>
|
||||
|
||||
<SYNTAX DEPOSIT OBJECT = V-DEPOSIT>
|
||||
<SYNTAX DEPOSIT OBJECT (ON-GROUND HELD MANY) IN OBJECT = V-DEPOSIT>
|
||||
<SYNTAX DEPOSIT OBJECT (ON-GROUND HELD MANY) ON OBJECT = V-PUT-ON PRE-PUT>
|
||||
|
||||
<SYNTAX DIG
|
||||
OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE)
|
||||
= V-DIG PRE-DIG ;*>
|
||||
<SYNTAX DIG
|
||||
IN
|
||||
OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (HELD CARRIED HAVE)
|
||||
= V-DIG PRE-DIG>
|
||||
<SYNTAX DIG OBJECT IN OBJECT = V-HOLE-DIG>
|
||||
;<SYNTAX DIG WITH OBJECT = V-DIG-WITH>
|
||||
|
||||
;<SYNTAX DIP OBJECT (FIND BURNBIT) (HELD CARRIED HAVE)
|
||||
IN OBJECT (ON-GROUND HAVE) = V-DIP-IN>
|
||||
;<SYNONYM DIP IMMERSE SUBMERGE DUNK>
|
||||
|
||||
<SYNTAX DISEMBARK = V-EXIT>
|
||||
<SYNTAX DISEMBARK OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM)
|
||||
= V-DISEMBARK>
|
||||
|
||||
<SYNTAX DIVE = V-DIVE>
|
||||
<SYNTAX DIVE IN OBJECT = V-DIVE>
|
||||
|
||||
<SYNTAX DRILL OBJECT WITH OBJECT (FIND TOOLBIT) = V-DRILL PRE-DRILL>
|
||||
<SYNTAX DRILL OBJECT IN OBJECT = V-DRILL-IN PRE-DRILL-IN>
|
||||
|
||||
<SYNTAX DRINK
|
||||
OBJECT (FIND DRINKBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-DRINK PRE-DRINK>
|
||||
;<SYNTAX DRINK FROM OBJECT (HELD CARRIED) = V-DRINK-FROM>
|
||||
;<SYNTAX DRINK OBJECT (FIND DRINKBIT)
|
||||
IN OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND) = V-DRINK-FROM>
|
||||
;<SYNTAX DRINK OBJECT (FIND DRINKBIT)
|
||||
FROM OBJECT (FIND CONTBIT) (HELD CARRIED ON-GROUND) = V-DRINK-FROM>
|
||||
<SYNONYM DRINK IMBIBE SWALLOW SIP GUZZLE>
|
||||
|
||||
<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)
|
||||
= V-EAT PRE-EAT>
|
||||
<SYNONYM EAT CONSUME BITE CHEW MUNCH NIBBLE>
|
||||
|
||||
<SYNTAX TASTE OBJECT (HELD CARRIED ON-GROUND IN-ROOM ;MANY) = V-TASTE>
|
||||
|
||||
<SYNTAX EMPTY OBJECT (HELD CARRIED ON-GROUND IN-ROOM) = V-EMPTY>
|
||||
|
||||
<SYNTAX ENTER = V-ENTER>
|
||||
<SYNTAX ENTER OBJECT = V-THROUGH>
|
||||
<SYNTAX EXIT = V-EXIT>
|
||||
<SYNTAX EXIT OBJECT = V-DISEMBARK>
|
||||
|
||||
<SYNTAX EXAMINE OBJECT (HELD CARRIED ON-GROUND IN-ROOM ;MANY) = V-EXAMINE
|
||||
PRE-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>
|
||||
|
||||
;<SYNTAX EXORCISE OBJECT = V-EXORCISE>
|
||||
;<SYNTAX EXORCISE OUT OBJECT (FIND VICBIT) = V-EXORCISE>
|
||||
;<SYNTAX EXORCISE AWAY OBJECT (FIND VICBIT) = V-EXORCISE>
|
||||
;<SYNONYM EXORCISE BANISH CAST DRIVE BEGONE>
|
||||
|
||||
<SYNTAX EXTINGUISH
|
||||
OBJECT
|
||||
;(FIND FLAMEBIT) (MANY HELD CARRIED ON-GROUND IN-ROOM ;TAKE HAVE)
|
||||
= V-LAMP-OFF>
|
||||
<SYNONYM EXTINGUISH DOUSE>
|
||||
|
||||
<SYNTAX FILL OBJECT (HELD CARRIED ON-GROUND TAKE HAVE) WITH OBJECT = V-FILL>
|
||||
;<SYNTAX FILL IN OBJECT (ON-GROUND IN-ROOM) = V-FILL-IN>
|
||||
<SYNTAX FILL OBJECT (HELD CARRIED ON-GROUND TAKE HAVE) = V-FILL>
|
||||
;<SYNTAX FILL OUT OBJECT = V-FILL-OUT>
|
||||
|
||||
<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 ;CARRIED)
|
||||
= V-SGIVE PRE-SGIVE>
|
||||
<SYNONYM GIVE HAND DONATE OFFER FEED PAY>
|
||||
|
||||
<SYNTAX GOODBYE = V-GOODBYE>
|
||||
<SYNTAX GOODBYE OBJECT = V-GOODBYE>
|
||||
<SYNONYM GOODBYE BYE>
|
||||
|
||||
<SYNTAX HELLO = V-HELLO ;*>
|
||||
<SYNTAX HELLO OBJECT = V-HELLO>
|
||||
<SYNONYM HELLO HI>
|
||||
|
||||
<SYNTAX HELP = V-HELP>
|
||||
<SYNTAX HELP OBJECT = V-HELP>
|
||||
|
||||
<SYNTAX HIDE UNDER OBJECT = V-HIDE>
|
||||
<SYNTAX HIDE IN OBJECT = V-HIDE>
|
||||
<SYNTAX HIDE BEHIND OBJECT = V-HIDE>
|
||||
<SYNTAX HIDE OBJECT (HELD HAVE) UNDER OBJECT = V-HIDE-UNDER>
|
||||
<SYNTAX HIDE OBJECT (HELD HAVE) IN OBJECT = V-HIDE>
|
||||
<SYNTAX HIDE OBJECT (HELD HAVE) BEHIND OBJECT = V-HIDE>
|
||||
|
||||
<SYNTAX BLOW OUT OBJECT (HELD CARRIED ON-GROUND HAVE) = V-LAMP-OFF>
|
||||
<SYNTAX BLOW UP
|
||||
OBJECT
|
||||
WITH
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
= V-INFLATE ;*>
|
||||
;<SYNTAX BLOW UP OBJECT = V-BLAST>
|
||||
|
||||
<SYNTAX INFLAT
|
||||
OBJECT
|
||||
WITH
|
||||
OBJECT (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-DISEMBARK>
|
||||
<SYNTAX JUMP OFF OBJECT = V-DISEMBARK>
|
||||
;<SYNTAX JUMP OBJECT = V-JUMP-ROPE>
|
||||
<SYNONYM JUMP LEAP>
|
||||
|
||||
<SYNTAX KICK OBJECT = V-KICK>
|
||||
<SYNONYM KICK>
|
||||
|
||||
<SYNTAX KILL
|
||||
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT ;(FIND WEAPONBIT) (HELD CARRIED HAVE)
|
||||
= V-KILL>
|
||||
<SYNONYM KILL MURDER SLAY DISPATCH STAB>
|
||||
|
||||
<SYNTAX KISS OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-KISS>
|
||||
|
||||
<SYNTAX KNOCK AT OBJECT = V-KNOCK ;*>
|
||||
<SYNTAX KNOCK ON OBJECT = V-KNOCK>
|
||||
<SYNTAX KNOCK OVER OBJECT = V-PUSH>
|
||||
<SYNTAX KNOCK DOWN OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM) = V-ATTACK>
|
||||
<SYNONYM KNOCK RAP>
|
||||
|
||||
<SYNTAX LATITUDE OBJECT = V-LATITUDE ;PRE-LATITUDE>
|
||||
<SYNTAX LONGITUDE OBJECT = V-LONGITUDE ;PRE-LATITUDE>
|
||||
|
||||
<SYNTAX LAUNCH OBJECT (FIND VEHBIT) = V-LAUNCH>
|
||||
|
||||
<SYNTAX LEAVE = V-LEAVE>
|
||||
<SYNTAX LEAVE OBJECT = V-DROP>
|
||||
|
||||
<SYNTAX LIGHT
|
||||
OBJECT ;(FIND LIGHTBIT) ;(FIND BURNBIT)
|
||||
(CARRIED ON-GROUND IN-ROOM)
|
||||
= V-LAMP-ON ;*>
|
||||
<SYNTAX LIGHT
|
||||
OBJECT ;(FIND LIGHTBIT) ;(FIND BURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT ;(FIND FLAMEBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-BURN PRE-BURN>
|
||||
<SYNONYM LIGHT START>
|
||||
|
||||
<SYNTAX LISTEN TO OBJECT = V-LISTEN>
|
||||
<SYNTAX LISTEN FOR OBJECT = V-LISTEN>
|
||||
|
||||
<SYNTAX LOCK
|
||||
OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (FIND TOOLBIT) (TAKE HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-LOCK>
|
||||
|
||||
<SYNTAX LOOK = V-LOOK>
|
||||
<SYNTAX LOOK AROUND OBJECT (FIND RMUNGBIT) = V-LOOK>
|
||||
;<SYNTAX LOOK UP OBJECT (FIND RMUNGBIT) = V-LOOK-UP>
|
||||
;<SYNTAX LOOK UP OBJECT = V-LOOK-UP>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM ;MANY) = V-EXAMINE
|
||||
PRE-EXAMINE>
|
||||
<SYNTAX LOOK WITH OBJECT = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK THROUGH OBJECT = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK OUT OBJECT = V-LOOK-INSIDE>
|
||||
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER>
|
||||
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND>
|
||||
;<SYNTAX LOOK DOWN OBJECT = V-LOOK-DOWN>
|
||||
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM ;MANY) = V-LOOK-INSIDE
|
||||
PRE-LOOK-IN>
|
||||
<SYNTAX LOOK ON OBJECT (HELD CARRIED ON-GROUND IN-ROOM ;MANY) = V-LOOK-INSIDE
|
||||
PRE-LOOK-ON>
|
||||
<SYNTAX LOOK AT OBJECT (HELD CARRIED ON-GROUND IN-ROOM ;MANY) WITH OBJECT =
|
||||
V-READ PRE-READ>
|
||||
<SYNTAX LOOK FOR OBJECT = V-FIND>
|
||||
<SYNTAX LOOK OBJECT = V-CHASTISE>
|
||||
<SYNONYM LOOK L STARE GAZE PEER>
|
||||
|
||||
<SYNTAX SEARCH OBJECT = V-SEARCH>
|
||||
<SYNTAX SEARCH IN OBJECT = V-SEARCH>
|
||||
<SYNTAX SEARCH FOR OBJECT = V-FIND>
|
||||
|
||||
<SYNTAX LOWER OBJECT = V-LOWER>
|
||||
<SYNTAX LOWER OBJECT DOWN OBJECT = V-PUT PRE-PUT>
|
||||
|
||||
<SYNTAX MAKE OBJECT = V-MAKE>
|
||||
|
||||
<SYNTAX MAYBE = V-MAYBE>
|
||||
<SYNONYM MAYBE DUNNO>
|
||||
|
||||
<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 MOVE OBJECT (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO ;PRE-PUSH-TO>
|
||||
<SYNTAX MOVE OBJECT (ON-GROUND IN-ROOM) WITH OBJECT = V-MOVE PRE-MOVE>
|
||||
<SYNTAX ROLL UP OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
|
||||
<SYNTAX PLAY OBJECT = V-PLAY>
|
||||
|
||||
;<SYNTAX PRICE OBJECT = V-PRICE>
|
||||
;<SYNTAX PRICE OF OBJECT = V-PRICE>
|
||||
|
||||
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
<SYNTAX PULL ON OBJECT (ON-GROUND IN-ROOM) = V-MOVE PRE-MOVE>
|
||||
;<SYNTAX PULL UP OBJECT (ON-GROUND IN-ROOM) = V-PULL-UP PRE-PULL-UP>
|
||||
;<SYNTAX PULL OBJECT THROUGH OBJECT (ON-GROUND IN-ROOM) = V-PULL-UP PRE-PULL-UP>
|
||||
<SYNTAX PULL OBJECT (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO ;PRE-PUSH-TO>
|
||||
<SYNONYM PULL TUG YANK>
|
||||
|
||||
<SYNTAX MUMBLE = V-MUMBLE>
|
||||
<SYNONYM MUMBLE SIGH>
|
||||
|
||||
<SYNTAX DESTROY
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH
|
||||
OBJECT (HELD CARRIED HAVE)
|
||||
= V-MUNG PRE-MUNG>
|
||||
<SYNTAX DESTROY IN OBJECT = V-CHIP PRE-CHIP>
|
||||
<SYNTAX DESTROY IN OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (HELD CARRIED HAVE) = V-MUNG PRE-MUNG>
|
||||
<SYNTAX DESTROY
|
||||
DOWN
|
||||
OBJECT (ON-GROUND IN-ROOM HELD CARRIED)
|
||||
WITH
|
||||
OBJECT (HELD CARRIED HAVE)
|
||||
= V-MUNG PRE-MUNG>
|
||||
<SYNONYM DESTROY DAMAGE BREAK SMASH CHOP CHIP HIT>
|
||||
|
||||
<SYNTAX LUBRICATE OBJECT WITH OBJECT (HELD CARRIED) = V-OIL ;PRE-OIL>
|
||||
<SYNONYM LUBRICATE GREASE>
|
||||
|
||||
<SYNTAX NO = V-NO>
|
||||
<SYNONYM NO NEGATIVE NOPE UH-UH>
|
||||
|
||||
<SYNTAX OPEN
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-OPEN PRE-OPEN>
|
||||
<SYNTAX OPEN
|
||||
UP
|
||||
OBJECT (FIND DOORBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-OPEN PRE-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 PRE-OPEN>
|
||||
|
||||
<SYNTAX PICK OBJECT = V-PICK>
|
||||
<SYNTAX PICK OBJECT WITH OBJECT (HELD CARRIED HAVE) = V-PICK>
|
||||
|
||||
<SYNTAX PICK UP
|
||||
OBJECT (FIND TAKEBIT)
|
||||
(ON-GROUND MANY)
|
||||
= V-TAKE PRE-TAKE>
|
||||
|
||||
<SYNTAX PLUG OBJECT WITH OBJECT (HELD CARRIED HAVE) = V-PLUG>
|
||||
<SYNONYM PLUG GLUE PATCH REPAIR FIX>
|
||||
|
||||
;<SYNTAX PLUGH = V-ADVENTURE>
|
||||
;<SYNONYM PLUGH XYZZY>
|
||||
|
||||
<SYNTAX POKE
|
||||
OBJECT (FIND VICBIT) (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-POUR ;*>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) IN OBJECT = V-POUR-IN>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) ON OBJECT = V-POUR-ON ;PRE-POUR-ON>
|
||||
<SYNTAX POUR OBJECT (HELD CARRIED) FROM OBJECT = V-POUR>
|
||||
<SYNONYM POUR SPILL>
|
||||
|
||||
<SYNTAX PRAY = V-PRAY>
|
||||
<SYNTAX PRAY FOR OBJECT = 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 (ON-GROUND IN-ROOM) OFF OBJECT = V-PUSH-OFF>
|
||||
<SYNTAX PUSH OBJECT (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO>
|
||||
<SYNTAX PUSH OBJECT (ON-GROUND IN-ROOM) TO OBJECT = V-PUSH-TO ;PRE-PUSH-TO>
|
||||
<SYNTAX PUSH OBJECT (HELD CARRIED HAVE) UNDER OBJECT = V-PUSH-UNDER>
|
||||
<SYNTAX PUSH OBJECT (HELD CARRIED HAVE) THROUGH OBJECT = V-PUSH-THROUGH>
|
||||
<SYNTAX PUSH UP OBJECT = V-MOVE PRE-MOVE>
|
||||
<SYNONYM PUSH PRESS SHOVE>
|
||||
|
||||
<SYNTAX PUT OBJECT (ON-GROUND HELD MANY)
|
||||
IN OBJECT = V-PUT PRE-PUT ;*>
|
||||
<SYNTAX PUT OBJECT (ON-GROUND HELD MANY)
|
||||
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-HIDE>
|
||||
<SYNTAX PUT OBJECT (HELD HAVE) AGAINST OBJECT = V-PUT-AGAINST>
|
||||
<SYNTAX PUT OBJECT (HELD HAVE) BY OBJECT = V-PUT-AGAINST>
|
||||
<SYNTAX PUT OBJECT (HELD HAVE) AT OBJECT = V-PUT-AGAINST>
|
||||
<SYNTAX PUT OBJECT (HELD HAVE) ACROSS OBJECT = V-PUT-ACROSS>
|
||||
<SYNTAX PUT OBJECT (HELD HAVE) OVER OBJECT = V-PUT-ACROSS>
|
||||
<SYNTAX PUT OBJECT (HELD HAVE) BETWEEN OBJECT = V-PUT-ON PRE-PUT>
|
||||
<SYNONYM PUT STUFF INSERT PLACE WEDGE>
|
||||
|
||||
<SYNTAX RAISE OBJECT = V-MOVE PRE-MOVE>
|
||||
<SYNTAX RAISE UP OBJECT = V-MOVE PRE-MOVE>
|
||||
<SYNTAX RAISE OBJECT WITH OBJECT = V-MOVE PRE-MOVE>
|
||||
<SYNONYM RAISE LIFT>
|
||||
|
||||
<SYNTAX RAPE OBJECT (FIND VICBIT) = V-RAPE>
|
||||
<SYNONYM RAPE MOLEST>
|
||||
|
||||
<SYNTAX REACH IN OBJECT (FIND OPENBIT) = V-REACH-IN PRE-REACH-IN>
|
||||
|
||||
<SYNTAX READ
|
||||
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
= V-READ PRE-READ ; *>
|
||||
<SYNTAX READ IN OBJECT (HELD CARRIED HAVE) = V-READ-INSIDE>
|
||||
<SYNTAX READ
|
||||
OBJECT (FIND READBIT) (HELD CARRIED ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (HELD CARRIED HAVE)
|
||||
= V-READ PRE-READ>
|
||||
<SYNONYM READ SKIM>
|
||||
|
||||
<SYNTAX RENT OBJECT (IN-ROOM ON-GROUND MANY) = V-RENT>
|
||||
<SYNTAX RENT OBJECT (IN-ROOM ON-GROUND MANY)
|
||||
FROM OBJECT (FIND VICBIT) (ON-GROUND) = V-RENT>
|
||||
<SYNONYM RENT LEASE>
|
||||
|
||||
;<SYNTAX REPENT = V-REPENT>
|
||||
|
||||
<SYNTAX ROB OBJECT = V-ROB>
|
||||
|
||||
<SYNTAX ROLL OBJECT (ON-GROUND IN-ROOM) = V-MOVE>
|
||||
<SYNTAX ROLL OBJECT (ON-GROUND IN-ROOM) OBJECT = V-PUSH-TO ;PRE-PUSH-TO>
|
||||
<SYNTAX ROLL OBJECT (ON-GROUND IN-ROOM) TO OBJECT = V-PUSH-TO ;PRE-PUSH-TO>
|
||||
|
||||
<SYNTAX RUB OBJECT = V-RUB>
|
||||
<SYNTAX RUB OBJECT WITH OBJECT = V-RUB>
|
||||
<SYNTAX RUB OBJECT TO OBJECT = V-PUT-AGAINST> ;"touch magnet to mine"
|
||||
<SYNONYM RUB TOUCH FEEL PAT PET>
|
||||
|
||||
<SYNTAX SCRIPT = V-SCRIPT>
|
||||
<SYNTAX UNSCRIPT = V-UNSCRIPT>
|
||||
|
||||
<SYNTAX SEND OBJECT = V-SEND>
|
||||
<SYNTAX SEND FOR OBJECT = V-SEND>
|
||||
|
||||
<SYNTAX SHAKE OBJECT = V-SHAKE>
|
||||
|
||||
<SYNTAX SHOW OBJECT TO OBJECT (FIND PERSON) = V-SHOW>
|
||||
<SYNTAX SHOW OBJECT (FIND PERSON) OBJECT = V-SSHOW PRE-SSHOW>
|
||||
<SYNONYM SHOW FLASH>
|
||||
|
||||
<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 PRE-SMELL>
|
||||
<SYNONYM SMELL SNIFF>
|
||||
|
||||
<SYNTAX SMOKE OBJECT = V-SMOKE>
|
||||
|
||||
<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 STAND ON OBJECT (FIND VEHBIT) = V-CLIMB-ON>
|
||||
;<SYNTAX STAND UNDER OBJECT = V-STAND-UNDER>
|
||||
|
||||
<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 (CARRIED ON-GROUND IN-ROOM) = V-LAMP-ON>
|
||||
|
||||
<SYNTAX SWIM = V-SWIM>
|
||||
<SYNTAX SWIM OBJECT = 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 VICBIT) (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 OFF OBJECT (FIND VEHBIT) (ON-GROUND) = V-DISEMBARK>
|
||||
<SYNTAX TAKE ON OBJECT (FIND VEHBIT) (ON-GROUND IN-ROOM) = V-CLIMB-ON>
|
||||
;<SYNTAX TAKE UNDER OBJECT = V-STAND-UNDER>
|
||||
<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>
|
||||
;<SYNTAX TAKE
|
||||
OBJECT (FIND TAKEBIT) (IN-ROOM CARRIED MANY)
|
||||
OF
|
||||
OBJECT
|
||||
= V-TAKE PRE-TAKE> ;"Take a sip of water"
|
||||
;<SYNTAX TAKE OBJECT (FIND TAKEBIT)
|
||||
WITH OBJECT (FIND TOOLBIT) = V-TAKE PRE-TAKE>
|
||||
<SYNONYM TAKE GRAB GET HOLD CARRY REMOVE>
|
||||
|
||||
<SYNTAX TELL OBJECT (FIND VICBIT) (IN-ROOM) = V-TELL PRE-TELL>
|
||||
<SYNTAX TELL OBJECT (FIND VICBIT) (IN-ROOM) ABOUT OBJECT = V-TELL PRE-TELL>
|
||||
|
||||
<SYNTAX SAY TO OBJECT (FIND VICBIT) (IN-ROOM) = V-TELL PRE-TELL>
|
||||
<SYNTAX SAY WITH OBJECT (FIND VICBIT) (IN-ROOM) = V-TELL PRE-TELL>
|
||||
<SYNTAX SAY = V-SAY>
|
||||
<SYNONYM SAY TALK SPEAK CHAT>
|
||||
|
||||
<SYNTAX SLEEP = V-SLEEP>
|
||||
<SYNTAX SLEEP IN OBJECT = V-SLEEP>
|
||||
<SYNTAX SLEEP ON OBJECT = V-SLEEP>
|
||||
<SYNTAX SLEEP DOWN ON OBJECT = V-SLEEP> ;"lie down"
|
||||
<SYNTAX SLEEP DOWN OBJECT (FIND RMUNGBIT) = V-SLEEP>
|
||||
<SYNONYM SLEEP LIE REST NAP>
|
||||
|
||||
;<SYNTAX INCANT = V-INCANT>
|
||||
;<SYNONYM INCANT CHANT>
|
||||
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) = V-THROW PRE-THROW>
|
||||
;<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) OBJECT = V-THROW-DOWN>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) DOWN OBJECT = V-THROW PRE-THROW>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) AT OBJECT = V-THROW PRE-THROW>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) OFF OBJECT = V-THROW-OFF>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) OVER OBJECT = V-THROW-OFF>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE)
|
||||
WITH OBJECT (ON-GROUND IN-ROOM)
|
||||
= V-THROW PRE-THROW>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) IN OBJECT = V-THROW PRE-THROW>
|
||||
<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) ON OBJECT = V-THROW PRE-THROW>
|
||||
;<SYNTAX THROW OBJECT (HELD CARRIED TAKE HAVE) TO OBJECT = V-THROW-DOWN>
|
||||
<SYNONYM THROW HURL CHUCK TOSS CAST>
|
||||
|
||||
<SYNTAX TIE OBJECT (ON-GROUND CARRIED)
|
||||
TO OBJECT = V-TIE PRE-TIE>
|
||||
<SYNTAX TIE OBJECT (ON-GROUND CARRIED)
|
||||
AROUND OBJECT = V-TIE PRE-TIE>
|
||||
<SYNTAX TIE UP
|
||||
OBJECT (FIND VICBIT) (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (ON-GROUND IN-ROOM CARRIED)
|
||||
= V-TIE-UP>
|
||||
<SYNONYM TIE FASTEN SECURE ATTACH CONNECT>
|
||||
|
||||
"<SYNTAX $TIME = V-$TIME>"
|
||||
<SYNTAX TIME = V-TIME>
|
||||
<SYNONYM TIME T>
|
||||
|
||||
<SYNTAX TURN OVER OBJECT = V-TURN-OVER>
|
||||
<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)
|
||||
= V-LAMP-ON>
|
||||
<SYNTAX TURN OFF
|
||||
OBJECT ;(FIND LIGHTBIT) (HELD CARRIED ON-GROUND IN-ROOM TAKE)
|
||||
= V-LAMP-OFF>
|
||||
<SYNONYM TURN FLIP SET>
|
||||
|
||||
<SYNTAX UNFOLD OBJECT = V-UNFOLD>
|
||||
<SYNTAX FOLD OBJECT = V-FOLD>
|
||||
<SYNTAX FOLD UP OBJECT = V-FOLD>
|
||||
|
||||
<SYNTAX UNLOCK OBJECT (ON-GROUND IN-ROOM) = V-UNLOCK PRE-UNLOCK>
|
||||
<SYNTAX UNLOCK
|
||||
OBJECT (ON-GROUND IN-ROOM)
|
||||
WITH
|
||||
OBJECT (HELD CARRIED ON-GROUND IN-ROOM HAVE)
|
||||
= 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 DETACH UNHOOK DISCONNECT>
|
||||
|
||||
<SYNTAX WAIT = V-WAIT>
|
||||
<SYNTAX WAIT OBJECT = V-WAIT-FOR>
|
||||
;<SYNTAX WAIT UNTIL OBJECT = V-WAIT-UNTIL>
|
||||
<SYNTAX WAIT FOR OBJECT = V-WAIT-FOR>
|
||||
<SYNONYM WAIT Z>
|
||||
|
||||
<SYNTAX WAKE OBJECT (ON-GROUND IN-ROOM) = V-ALARM ;*>
|
||||
<SYNTAX WAKE UP OBJECT (FIND RMUNGBIT) (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-STEP>
|
||||
<SYNTAX WALK OVER OBJECT = V-LEAP>
|
||||
<SYNTAX WALK THROUGH 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 AT OBJECT = V-WAVE-AT>
|
||||
<SYNTAX WAVE TO OBJECT = V-WAVE-AT>
|
||||
<SYNTAX WAVE OBJECT (HELD CARRIED) = V-WAVE>
|
||||
<SYNTAX WAVE OBJECT (HELD CARRIED) AT OBJECT = V-WAVE>
|
||||
<SYNONYM WAVE BRANDISH>
|
||||
|
||||
<SYNTAX WEAR OBJECT (FIND WEARBIT) = V-WEAR>
|
||||
|
||||
<SYNTAX WEIGH OBJECT = V-WEIGH>
|
||||
|
||||
;<SYNTAX WET OBJECT (ON-GROUND IN-ROOM HELD CARRIED HAVE)
|
||||
WITH OBJECT = V-WET>
|
||||
|
||||
<SYNTAX WIN = V-WIN>
|
||||
<SYNONYM WIN WINNAGE>
|
||||
|
||||
<SYNTAX WIND OBJECT = V-WIND>
|
||||
<SYNTAX WIND UP OBJECT = V-WIND>
|
||||
|
||||
<SYNTAX WITHDRAW = V-LEAVE>
|
||||
<SYNTAX WITHDRAW OBJECT = V-WITHDRAW>
|
||||
|
||||
<SYNTAX YELL = V-YELL>
|
||||
<SYNTAX YELL AT OBJECT = V-YELL>
|
||||
<SYNONYM YELL SCREAM SHOUT>
|
||||
|
||||
<SYNTAX YES = V-YES>
|
||||
<SYNONYM YES Y AFFIRMATIVE YUP UH-HUH YEAH OK OKAY SURE>
|
||||
|
||||
;<SYNTAX ZORK = V-ZORK>
|
||||
|
||||
;"Simple questions"
|
||||
|
||||
<SYNTAX WHAT = V-WHAT>
|
||||
<SYNTAX WHAT OBJECT = V-WHAT>
|
||||
<SYNTAX WHAT OBJECT OBJECT = V-WHAT PRE-WHAT>
|
||||
<SYNONYM WHAT WHAT\'S WHATS WHO WHOS WHO\'S>
|
||||
|
||||
;"<SYNTAX WHERE ...> WHERE is a synonym of FIND"
|
||||
|
||||
;<SYNTAX IS OBJECT IN OBJECT = V-IS-IN>
|
||||
;<SYNTAX IS OBJECT ON OBJECT = V-IS-IN>
|
||||
|
||||
"<SYNTAX $FO = V-$FORCE>
|
||||
<SYNTAX $FO OBJECT = V-$FORCE>"
|
|
@ -0,0 +1,49 @@
|
|||
.TIME
|
||||
|
||||
.INSERT "TOAFREQ"
|
||||
|
||||
.INSERT "TOADAT" ; DATA IS IN THIS FILE
|
||||
|
||||
|
||||
.INSERT "MACROS"
|
||||
|
||||
|
||||
.INSERT "GLOBALS"
|
||||
|
||||
|
||||
.INSERT "SYNTAX"
|
||||
|
||||
|
||||
.INSERT "CLOCK"
|
||||
|
||||
|
||||
.INSERT "MAIN"
|
||||
|
||||
|
||||
.INSERT "PARSER"
|
||||
|
||||
|
||||
.INSERT "VERBS"
|
||||
|
||||
|
||||
.INSERT "GOAL"
|
||||
|
||||
|
||||
.INSERT "ISLAND"
|
||||
|
||||
|
||||
.INSERT "BOAT"
|
||||
|
||||
|
||||
.INSERT "WRECKS"
|
||||
|
||||
|
||||
.INSERT "PEOPLE"
|
||||
|
||||
|
||||
.INSERT "EVENTS"
|
||||
|
||||
|
||||
.INSERT "TOASTR"
|
||||
|
||||
.END
|
|
@ -0,0 +1,46 @@
|
|||
|
||||
.INSERT "TOADAT" ; DATA IS IN THIS FILE
|
||||
|
||||
|
||||
.INSERT "MACROS"
|
||||
|
||||
|
||||
.INSERT "GLOBALS"
|
||||
|
||||
|
||||
.INSERT "SYNTAX"
|
||||
|
||||
|
||||
.INSERT "CLOCK"
|
||||
|
||||
|
||||
.INSERT "MAIN"
|
||||
|
||||
|
||||
.INSERT "PARSER"
|
||||
|
||||
|
||||
.INSERT "VERBS"
|
||||
|
||||
|
||||
.INSERT "GOAL"
|
||||
|
||||
|
||||
.INSERT "ISLAND"
|
||||
|
||||
|
||||
.INSERT "BOAT"
|
||||
|
||||
|
||||
.INSERT "WRECKS"
|
||||
|
||||
|
||||
.INSERT "PEOPLE"
|
||||
|
||||
|
||||
.INSERT "EVENTS"
|
||||
|
||||
|
||||
.INSERT "TOASTR"
|
||||
|
||||
.END
|
|
@ -0,0 +1,67 @@
|
|||
"
|
||||
TOA #2
|
||||
(c) Copyright 1984 Infocom, Inc. All Rights Reserved.
|
||||
"
|
||||
|
||||
<GC-MON <>>
|
||||
;<COND (<GASSIGNED? ZILCH> <GC 0 T>)
|
||||
(T <GC 0 T 5>)>
|
||||
<GC 0 T 5>
|
||||
|
||||
<BLOAT 90000 0 0 3500 0 0 0 0 0 512>
|
||||
|
||||
;<SETG SHORT-STRINGS 2>
|
||||
|
||||
<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 "CUTTHROATS: Frobozz Magic Adventure Fiction
|
||||
">
|
||||
|
||||
<COND (<GASSIGNED? PREDGEN>
|
||||
<ID 0>)>
|
||||
|
||||
<IFILE "MACROS" T>
|
||||
|
||||
<IFILE "GLOBALS" T>
|
||||
<PROPDEF SIZE 5>
|
||||
<PROPDEF CAPACITY 0>
|
||||
;<PROPDEF VALUE 0>
|
||||
|
||||
<IFILE "SYNTAX" T>
|
||||
<ENDLOAD>
|
||||
|
||||
<IFILE "CLOCK" T>
|
||||
<IFILE "MAIN" T>
|
||||
<IFILE "PARSER" T>
|
||||
<IFILE "VERBS" T>
|
||||
|
||||
|
||||
|
||||
;"Jerry: Add your files here, as with GOAL"
|
||||
|
||||
<IFILE "GOAL" T>
|
||||
<IFILE "ISLAND" T>
|
||||
<IFILE "BOAT" T>
|
||||
<IFILE "WRECKS" T>
|
||||
<IFILE "PEOPLE" T>
|
||||
<IFILE "EVENTS" T>
|
||||
;<COND (<NOT <GASSIGNED? PREDGEN>>
|
||||
<CLOSE!- ,XTELLCHAN>)>
|
||||
<PRINC "
|
||||
Formerly SCUM: Interlogic Adventure Fiction
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Get ready!">
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,200 @@
|
|||
.FSTR FSTR?1,"the " ;1546 773
|
||||
.FSTR FSTR?2,"The " ;804 268
|
||||
.FSTR FSTR?3,"You " ;669 223
|
||||
.FSTR FSTR?4,", " ;533 533
|
||||
.FSTR FSTR?5,"you " ;526 263
|
||||
.FSTR FSTR?6,"and " ;486 243
|
||||
.FSTR FSTR?7,". " ;414 414
|
||||
.FSTR FSTR?8,"to " ;411 411
|
||||
.FSTR FSTR?9,"your " ;390 130
|
||||
.FSTR FSTR?10,"Johnny " ;372 62
|
||||
.FSTR FSTR?11,"It's " ;360 72
|
||||
.FSTR FSTR?12,"that " ;318 106
|
||||
.FSTR FSTR?13,"is " ;287 287
|
||||
.FSTR FSTR?14,"with " ;264 88
|
||||
.FSTR FSTR?15,"don't " ;255 51
|
||||
.FSTR FSTR?16,"of " ;243 243
|
||||
.FSTR FSTR?17,"This " ;224 56
|
||||
.FSTR FSTR?18,"are " ;212 106
|
||||
.FSTR FSTR?19,"have " ;201 67
|
||||
.FSTR FSTR?20,"through " ;186 31
|
||||
.FSTR FSTR?21,"can't " ;185 37
|
||||
.FSTR FSTR?22,"There's " ;184 23
|
||||
.FSTR FSTR?23,"you're " ;174 29
|
||||
.FSTR FSTR?24,"There " ;165 33
|
||||
.FSTR FSTR?25,"for " ;156 78
|
||||
.FSTR FSTR?26,"Weasel " ;156 26
|
||||
.FSTR FSTR?27,"which " ;148 37
|
||||
.FSTR FSTR?28,"in " ;147 147
|
||||
.FSTR FSTR?29,"this " ;144 48
|
||||
.FSTR FSTR?30,"You're " ;140 20
|
||||
.FSTR FSTR?31,"That's " ;140 20
|
||||
.FSTR FSTR?32,"looks " ;136 34
|
||||
.FSTR FSTR?33,"about " ;132 33
|
||||
.FSTR FSTR?34,"from " ;126 42
|
||||
.FSTR FSTR?35,"salesman " ;119 17
|
||||
.FSTR FSTR?36,"I " ;117 117
|
||||
.FSTR FSTR?37,"already " ;114 19
|
||||
.FSTR FSTR?38,"but " ;112 56
|
||||
.FSTR FSTR?39,"here" ;108 54
|
||||
.FSTR FSTR?40,"It " ;108 54
|
||||
.FSTR FSTR?41,"what " ;108 36
|
||||
.FSTR FSTR?42,"find " ;108 36
|
||||
.FSTR FSTR?43,"it " ;107 107
|
||||
.FSTR FSTR?44,"back " ;105 35
|
||||
.FSTR FSTR?45,"doesn't " ;105 15
|
||||
.FSTR FSTR?46,"out " ;100 50
|
||||
.FSTR FSTR?47,"that" ;98 49
|
||||
.FSTR FSTR?48,"McGinty " ;98 14
|
||||
.FSTR FSTR?49,"his " ;96 48
|
||||
.FSTR FSTR?50,"something " ;96 12
|
||||
.FSTR FSTR?51,"on " ;94 94
|
||||
.FSTR FSTR?52,"at " ;94 94
|
||||
.FSTR FSTR?53,"not " ;94 47
|
||||
.FSTR FSTR?54,"says" ;90 45
|
||||
.FSTR FSTR?55,"can " ;88 44
|
||||
.FSTR FSTR?56,"like " ;87 29
|
||||
.FSTR FSTR?57,"see " ;86 43
|
||||
.FSTR FSTR?58,"you" ;85 85
|
||||
.FSTR FSTR?59,"starts " ;85 17
|
||||
.FSTR FSTR?60,"then " ;84 28
|
||||
.FSTR FSTR?61,"would " ;84 21
|
||||
.FSTR FSTR?62,"nothing " ;84 14
|
||||
.FSTR FSTR?63,"anything " ;84 12
|
||||
.FSTR FSTR?64,"compressor " ;81 9
|
||||
.FSTR FSTR?65,"off " ;80 40
|
||||
.FSTR FSTR?66,"Pete " ;80 20
|
||||
.FSTR FSTR?67,"I'm " ;80 20
|
||||
.FSTR FSTR?68,"ladder " ;80 16
|
||||
.FSTR FSTR?69,"isn't " ;80 16
|
||||
.FSTR FSTR?70,"Wharf " ;80 16
|
||||
.FSTR FSTR?71,"He's " ;80 16
|
||||
.FSTR FSTR?72,"Outfitters " ;80 8
|
||||
.FSTR FSTR?73,"door " ;78 26
|
||||
.FSTR FSTR?74,"McGinty" ;78 13
|
||||
.FSTR FSTR?75,"has " ;76 38
|
||||
.FSTR FSTR?76,"He " ;76 38
|
||||
.FSTR FSTR?77,"water " ;76 19
|
||||
.FSTR FSTR?78,"Your " ;76 19
|
||||
.FSTR FSTR?79,"than " ;72 24
|
||||
.FSTR FSTR?80,"Road" ;72 24
|
||||
.FSTR FSTR?81,"hands " ;72 18
|
||||
.FSTR FSTR?82,"passbook" ;72 12
|
||||
.FSTR FSTR?83,"forward " ;72 12
|
||||
.FSTR FSTR?84,"Unfortunately" ;72 6
|
||||
.FSTR FSTR?85,"teller " ;70 14
|
||||
.FSTR FSTR?86,"better " ;70 14
|
||||
.FSTR FSTR?87,"around " ;70 14
|
||||
.FSTR FSTR?88,"I'll " ;70 14
|
||||
.FSTR FSTR?89,"into " ;69 23
|
||||
.FSTR FSTR?90,"down " ;69 23
|
||||
.FSTR FSTR?91,"turns " ;68 17
|
||||
.FSTR FSTR?92,"think " ;68 17
|
||||
.FSTR FSTR?93,"leads " ;68 17
|
||||
.FSTR FSTR?94,"That " ;68 17
|
||||
.FSTR FSTR?95,"get " ;66 33
|
||||
.FSTR FSTR?96,"more " ;66 22
|
||||
|
||||
|
||||
;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
|
|
@ -0,0 +1,471 @@
|
|||
|
||||
|
||||
; STRINGS ARE DEFINED HERE
|
||||
|
||||
.GSTR STR?1,"number"
|
||||
.GSTR STR?2,"that much"
|
||||
.GSTR STR?3,"bunch of clothes"
|
||||
.GSTR STR?4,"Air being what it is, you can't see it."
|
||||
.GSTR STR?5,"hole"
|
||||
.GSTR STR?6,"make anything out on the other side."
|
||||
.GSTR STR?7,"door, which has lettering stencilled on it,"
|
||||
.GSTR STR?8,"get there from here."
|
||||
.GSTR STR?9,"do it alone."
|
||||
.GSTR STR?10,"do"
|
||||
.GSTR STR?11,"from here"
|
||||
.GSTR STR?12,"make your way through the growth."
|
||||
.GSTR STR?13,"all week"
|
||||
.GSTR STR?14,"get through the rocks."
|
||||
.GSTR STR?15,"You keep your money in it."
|
||||
.GSTR STR?16,"there"
|
||||
.GSTR STR?17,"s"
|
||||
.GSTR STR?18,"It's faded to a drab off-white."
|
||||
.GSTR STR?19,"It's drab and worn."
|
||||
.GSTR STR?20,"counter"
|
||||
.GSTR STR?21,"it"
|
||||
.GSTR STR?22,"You pass out and never find that you've been mugged, rolled and killed."
|
||||
.GSTR STR?23,"quite sure which direction is which..."
|
||||
.GSTR STR?24,"room"
|
||||
.GSTR STR?25,"open"
|
||||
.GSTR STR?26,"closed"
|
||||
.GSTR STR?27,"unlocked"
|
||||
.GSTR STR?28,"unlock it with that!"
|
||||
.GSTR STR?29,"The currents pull you in several conflicting directions, and you end up much the worse for it."
|
||||
.GSTR STR?30,"make your way to the shoreline."
|
||||
.GSTR STR?31,"It's the top of a ladder that leads down."
|
||||
.GSTR STR?32,"It's the bottom of a ladder that leads up."
|
||||
.GSTR STR?33,"The sturdy metal railing encircles the deck."
|
||||
.GSTR STR?34,"p.m."
|
||||
.GSTR STR?35,"a.m."
|
||||
.GSTR STR?36,"table"
|
||||
.GSTR STR?37,"lock"
|
||||
.GSTR STR?38,"locked"
|
||||
.GSTR STR?39,"wheel"
|
||||
.GSTR STR?40,"bolts"
|
||||
.GSTR STR?41,"see any"
|
||||
.GSTR STR?42,"the rope"
|
||||
.GSTR STR?43,"reach "
|
||||
.GSTR STR?44,"go that way."
|
||||
.GSTR STR?45,"do that."
|
||||
.GSTR STR?46,"afford it."
|
||||
.GSTR STR?47,"fit through the hole carrying the tank."
|
||||
.GSTR STR?48,"to "
|
||||
.GSTR STR?49,"in that"
|
||||
.GSTR STR?50,"amount of money"
|
||||
.GSTR STR?51,"a verb"
|
||||
.GSTR STR?52,"enough nouns"
|
||||
.GSTR STR?53,"afford to."
|
||||
.GSTR STR?54,"use multiple "
|
||||
.GSTR STR?55,"the right key"
|
||||
.GSTR STR?56,"on"
|
||||
.GSTR STR?57,"in"
|
||||
.GSTR STR?58,"see "
|
||||
.GSTR STR?59,"The water is too dark for you to see anything. After a moment, however, you feel something start to munch on you. Something large."
|
||||
.GSTR STR?60," "
|
||||
.GSTR STR?61," "
|
||||
.GSTR STR?62," "
|
||||
.GSTR STR?63," "
|
||||
.GSTR STR?64," "
|
||||
.GSTR STR?65,"going anywhere."
|
||||
.GSTR STR?66,"have it."
|
||||
.GSTR STR?67,"that"
|
||||
.GSTR STR?68,"open the "
|
||||
.GSTR STR?69,"give "
|
||||
.GSTR STR?70,"carrying "
|
||||
.GSTR STR?71,"talking to anyone!"
|
||||
.GSTR STR?72,"close that."
|
||||
.GSTR STR?73," a transcript of interaction with CUTTHROATS.
|
||||
CUTTHROATS is a trademark of Infocom, Inc.
|
||||
Copyright (c) 1984, Infocom, Inc. All rights reserved.
|
||||
"
|
||||
.GSTR STR?74,"move "
|
||||
.GSTR STR?75,"turn that on."
|
||||
.GSTR STR?76,"turn that off."
|
||||
.GSTR STR?77,"in that!"
|
||||
.GSTR STR?78,"get at your money."
|
||||
.GSTR STR?79,"had to buy"
|
||||
.GSTR STR?80,"need to rent"
|
||||
.GSTR STR?81,"bought it!"
|
||||
.GSTR STR?82,"rent that."
|
||||
.GSTR STR?83,"get "
|
||||
.GSTR STR?84,"You suddenly bump into something in the darkness. You find that this something has long, sharp teeth that feel uncomfortable when they enter your body."
|
||||
.GSTR STR?85,"Moses!"
|
||||
.GSTR STR?86,"pour that."
|
||||
.GSTR STR?87,"holding the drill."
|
||||
.GSTR STR?88,"drill that!"
|
||||
.GSTR STR?89,"drink that."
|
||||
.GSTR STR?90,"This was not a very safe place to try jumping."
|
||||
.GSTR STR?91,"Hello."
|
||||
.GSTR STR?92,"Good day."
|
||||
.GSTR STR?93,"Nice weather we've been having lately."
|
||||
.GSTR STR?94,"Goodbye."
|
||||
.GSTR STR?95,"Very good. Now you can go to the second grade."
|
||||
.GSTR STR?96,"I hope you enjoyed that as much as I did."
|
||||
.GSTR STR?97,"Are you enjoying yourself?"
|
||||
.GSTR STR?98,"Wheeeeeeeeee!!!!!"
|
||||
.GSTR STR?99,"Do you expect me to applaud?"
|
||||
.GSTR STR?100,"but "
|
||||
.GSTR STR?101,"behind "
|
||||
.GSTR STR?102,"on "
|
||||
.GSTR STR?103,"special to be "
|
||||
.GSTR STR?104,"on the "
|
||||
.GSTR STR?105,"turn things to a specific direction."
|
||||
.GSTR STR?106,"inflate"
|
||||
.GSTR STR?107,"pick that."
|
||||
.GSTR STR?108,"cut"
|
||||
.GSTR STR?109,"kill"
|
||||
.GSTR STR?110,"here to "
|
||||
.GSTR STR?111,"The squid, angered and wounded, starts wrapping tentacles around you. As you attempt another foray, you find that the squid's strength is too much for you."
|
||||
.GSTR STR?112,"attack"
|
||||
.GSTR STR?113,"Benny Goodman"
|
||||
.GSTR STR?114,"Kicking"
|
||||
.GSTR STR?115,"Waving"
|
||||
.GSTR STR?116,"Playing in this way with"
|
||||
.GSTR STR?117,"Fiddling with"
|
||||
.GSTR STR?118,"Pushing"
|
||||
.GSTR STR?119,"on the floor"
|
||||
.GSTR STR?120,"push things to that."
|
||||
.GSTR STR?121,"Trying to destroy"
|
||||
.GSTR STR?122," doesn't seem to work."
|
||||
.GSTR STR?123," isn't notably helpful."
|
||||
.GSTR STR?124," doesn't work."
|
||||
.GSTR STR?125," has no effect."
|
||||
.GSTR STR?126,"latitude"
|
||||
.GSTR STR?127,"longitude"
|
||||
.GSTR STR?128,"told me that."""
|
||||
.GSTR STR?129,"empty that!"
|
||||
.GSTR STR?130,"empty it when it's closed!"
|
||||
.GSTR STR?131,"empty"
|
||||
.GSTR STR?132,"in the "
|
||||
.GSTR STR?133,"take it; thus, you can't shake it!"
|
||||
.GSTR STR?134,"dig it, man."
|
||||
.GSTR STR?135,"smell anything beyond your mask."
|
||||
.GSTR STR?136,"You find that diving here is a bad idea without the proper equipment."
|
||||
.GSTR STR?137,"You find that the lack of oxygen you quickly encounter is fatally frustrating."
|
||||
.GSTR STR?138,"You find the water here too shallow for diving."
|
||||
.GSTR STR?139,"tie it to yourself."
|
||||
.GSTR STR?140,"climb onto "
|
||||
.GSTR STR?141,"climb "
|
||||
.GSTR STR?142," that you kill yourself, just as he would have done!"
|
||||
.GSTR STR?143,"cross that!"
|
||||
.GSTR STR?144,"talk to "
|
||||
.GSTR STR?145,"spin that!"
|
||||
.GSTR STR?146,"Not a chance."
|
||||
.GSTR STR?147,"No way. At least not in this reality."
|
||||
.GSTR STR?148,"Did you say that just to impress me?"
|
||||
.GSTR STR?149,"An interesting concept, but beyond this reality."
|
||||
.GSTR STR?150,"I'll give you the benefit of the doubt and just ignore that."
|
||||
.GSTR STR?151,"A fishy idea..."
|
||||
.GSTR STR?152,"What a concept!"
|
||||
.GSTR STR?153,"Not a prayer."
|
||||
.GSTR STR?154,"wear "
|
||||
.GSTR STR?155,"wearing that!"
|
||||
.GSTR STR?156,"make a withdrawal here!"
|
||||
.GSTR STR?157,"make a deposit here!"
|
||||
.GSTR STR?158,"throw anything off that!"
|
||||
.GSTR STR?159," knocks you out. About all you feel after that is a cold knife drawing warm blood from your throat."
|
||||
.GSTR STR?160,"of interest there"
|
||||
.GSTR STR?161,"pick it up"
|
||||
.GSTR STR?162,"to read there"
|
||||
.GSTR STR?163,"into that"
|
||||
.GSTR STR?164,"tell without your watch."
|
||||
.GSTR STR?165,"You fall asleep and run out of air."
|
||||
.GSTR STR?166,"tired."
|
||||
.GSTR STR?167,"positive"
|
||||
.GSTR STR?168,"ambivalent"
|
||||
.GSTR STR?169,"negative"
|
||||
.GSTR STR?170,"north"
|
||||
.GSTR STR?171,"south"
|
||||
.GSTR STR?172,"east"
|
||||
.GSTR STR?173,"west"
|
||||
.GSTR STR?174,"northwest"
|
||||
.GSTR STR?175,"northeast"
|
||||
.GSTR STR?176,"southwest"
|
||||
.GSTR STR?177,"southeast"
|
||||
.GSTR STR?178,"downstairs"
|
||||
.GSTR STR?179,"upstairs"
|
||||
.GSTR STR?180,"out"
|
||||
.GSTR STR?181,"forward"
|
||||
.GSTR STR?182,"aft"
|
||||
.GSTR STR?183,"starboard"
|
||||
.GSTR STR?184,"port"
|
||||
.GSTR STR?185,"below"
|
||||
.GSTR STR?186,"above"
|
||||
.GSTR STR?187,", pushing his cart"
|
||||
.GSTR STR?188,"The road ends at the lighthouse to the north, and heads back to the southeast. You can see and hear the ocean pound the shoreline."
|
||||
.GSTR STR?189,"The lighthouse door is locked."
|
||||
.GSTR STR?190,"lighthouse door"
|
||||
.GSTR STR?191,"The road branches to the northeast and northwest with the lighthouse off to the northwest. To the south is an impenetrable swamp."
|
||||
.GSTR STR?192,"There's no way to get footing on the swamp."
|
||||
.GSTR STR?193,"swamp"
|
||||
.GSTR STR?194,"A winding road starts up here to the southwest. You can see the top of the lighthouse off to the northwest. The Wharf Road lies to the northeast."
|
||||
.GSTR STR?195,"This is the end of the Wharf Road, an east/west, two-lane road that's the island's main street. Off to the east, small businesses line the south side of the street. A winding road starts to the southwest, heading toward the lighthouse. The Red Boar Inn is to the south."
|
||||
.GSTR STR?196,"You are on the Wharf Road, with the McGinty Salvage office to the south. The ocean lies to the north, its brine smell strong and refreshing."
|
||||
.GSTR STR?197,"to from inside"
|
||||
.GSTR STR?198,"You are on the Wharf Road where the wharf starts up to the north. The former site of Outfitters International's warehouse fronts the south side of the road."
|
||||
.GSTR STR?199,"The east/west Wharf Road continues, with Outfitters International, a store which supplies ocean-going vessels, to the south."
|
||||
.GSTR STR?200,"Outfitters is closed."
|
||||
.GSTR STR?201,"You're on the east end of Wharf Road. The Ocean Road starts here and parallels the island's east edge, heading to the southeast. The Shanty is to the south."
|
||||
.GSTR STR?202,"You are at the north end of the Ocean Road, a narrow north/south road on the east edge of the island. The Wharf Road starts to the northwest, and a back alley starts off to the southwest."
|
||||
.GSTR STR?203,"The rocks are too sharp and dangerous."
|
||||
.GSTR STR?204,"You are halfway along the Ocean Road, with the start of an alley off to the northwest. An empty field lies to your west, and the dangerous ocean shore lies off to your east."
|
||||
.GSTR STR?205,"You can't get through the weeds."
|
||||
.GSTR STR?206,"This is the south end of the Ocean Road. To the southeast is a small path leading up to about 100 feet above sea level. The Ocean Road heads north, and the Shore Road starts to the southwest."
|
||||
.GSTR STR?207,"You are at the west end of the east/west Shore Road, with the ferry landing to the west. To the north is an impenetrable field, while the south is bordered by the ocean. You can see the mainland in the distance."
|
||||
.GSTR STR?208,"The bank is closed."
|
||||
.GSTR STR?209,"You're at the west end of an east/west alley. The back entrance to the Red Boar Inn is to the north, and an overgrown field is to the south."
|
||||
.GSTR STR?210,"The door is locked."
|
||||
.GSTR STR?211,"back door"
|
||||
.GSTR STR?212,"You are in a narrow alley. To the north is the back door of McGinty Salvage, as well as a small window. An overgrown field lies to the south."
|
||||
.GSTR STR?213,"""No, you don't!"" cries McGinty as he pulls out a gun and shoots you."
|
||||
.GSTR STR?214,"open it from this side."
|
||||
.GSTR STR?215,"window"
|
||||
.GSTR STR?216,"door"
|
||||
.GSTR STR?217,"You are in an east/west alley. To the north is a vacant lot, and an overgrown field lies to the south."
|
||||
.GSTR STR?218,"You are in an alley behind Outfitters International. An abandoned field lies to the south."
|
||||
.GSTR STR?219,"You're at the east end of an east/west alley. The back door of The Shanty is to the north, and an overgrown field is to the south. Narrow paths to the northeast and southeast lead to the Ocean Road."
|
||||
.GSTR STR?220,"This is the lobby of the Red Boar Inn, a place with the charm of a two-dollar flophouse. The Wharf Road is outside, to the north, and a stairway leads up to the rooms to the south."
|
||||
.GSTR STR?221,"desk clerk"
|
||||
.GSTR STR?222,"A desk clerk sits behind the counter."
|
||||
.GSTR STR?223,"mail"
|
||||
.GSTR STR?224,"message"
|
||||
.GSTR STR?225,"You are at the top of the stairs in the Red Boar. Your room is to the south, and other rooms line the hall. The lighting in the hallway is dim and drab like the wallpaper and carpeting."
|
||||
.GSTR STR?226,"The people in those rooms aren't interesting."
|
||||
.GSTR STR?227,"You're in your room in the Red Boar Inn. It's sparsely furnished, but comfortable enough. To the north is the door, and there's a closet without a door to the west."
|
||||
.GSTR STR?228,"The Weasel is rummaging through your stuff. He notices you, and before you have a chance to react, he smiles then cuts your throat."
|
||||
.GSTR STR?229,"A comfortable bed sits along the wall."
|
||||
.GSTR STR?230,"In a corner of the room is a lopsided wooden dresser."
|
||||
.GSTR STR?231,"April 23"
|
||||
.GSTR STR?232,"It's your room key."
|
||||
.GSTR STR?233,"On the floor is a note that must have been slipped under the door while you slept."
|
||||
.GSTR STR?234,"The note is hastily scrawled:
|
||||
|
||||
""If you're interested in a big deal, be at The Shanty at 8:30 this morning.
|
||||
-Johnny"""
|
||||
.GSTR STR?235,"This book is included in your Cutthroats package."
|
||||
.GSTR STR?236,"get it over the other equipment you're wearing."
|
||||
.GSTR STR?237,"fit that over the "
|
||||
.GSTR STR?238,"As you remove the mask, you find you can't breathe."
|
||||
.GSTR STR?239,"filled"
|
||||
.GSTR STR?240,"Not a very good idea..."
|
||||
.GSTR STR?241,"As the tank falls away, it pulls the airhose with it, making you regret your lack of gills."
|
||||
.GSTR STR?242,"You are in the McGinty Salvage office, a concern whose main business is salvaging wrecks. The place is a mess, and the floor is littered with chewed-on cigar stubs. To the north lies the Wharf Road. You can't help feeling uncomfortable here."
|
||||
.GSTR STR?243,"desk"
|
||||
.GSTR STR?244,"As McGinty sees someone climbing through the window, he pulls out a gun and fires. His aim is better than your luck."
|
||||
.GSTR STR?245,"chair"
|
||||
.GSTR STR?246,"The business envelope has the McGinty Salvage return address, and ""Weasel's Merchant Seaman's card - collateral for deal"" scribbled in McGinty's hand."
|
||||
.GSTR STR?247,"An envelope with some writing on it sits on the desk."
|
||||
.GSTR STR?248,"You are standing on the former site of the Outfitters International warehouse, which burned down a few months back. To the north is the Wharf Road and an alley is to the south."
|
||||
.GSTR STR?249,"There's a wall in the way."
|
||||
.GSTR STR?250,"This is Outfitters International, a store that specializes in marine supplies. There is a long, high counter separating the supplies and the front area. To the north is the Wharf Road."
|
||||
.GSTR STR?251,"salesman"
|
||||
.GSTR STR?252,"A salesman stands behind the counter."
|
||||
.GSTR STR?253,"afford that."
|
||||
.GSTR STR?254,"merchandise"
|
||||
.GSTR STR?255," items"
|
||||
.GSTR STR?256,"This price list is included in your Cutthroats package."
|
||||
.GSTR STR?257,"""Ajax 9-volt dry cell."""
|
||||
.GSTR STR?258,"""Ajax C cell."""
|
||||
.GSTR STR?259,"The tube has ""Frobizz waterproof putty"" printed on the side."
|
||||
.GSTR STR?260,"tube"
|
||||
.GSTR STR?261,"reverse entropy."
|
||||
.GSTR STR?262,"This heavy, semi-portable air compressor can fill scuba tanks."
|
||||
.GSTR STR?263,"off."
|
||||
.GSTR STR?264,"off"
|
||||
.GSTR STR?265,"touching "
|
||||
.GSTR STR?266,"As the spikes jump toward the magnet, one of them pierces your chest!"
|
||||
.GSTR STR?267," The canister begins to emit noxious fumes. Before you can do anything about it, you lose consciousness."
|
||||
.GSTR STR?268,"These are charts for the Hardscrabble Island area."
|
||||
.GSTR STR?269,"This is The Shanty, a tavern which serves the locals. A wooden bar travels the length of the place, and behind it is a mirror so dirty, it offers no reflection. Round tables occupy the floor. The smell of cooking food permeates the place."
|
||||
.GSTR STR?270,"Johnny looks around and says, ""This is no place to continue. If McGinty finds out about this, we're sunk. We better meet at the lighthouse at 9:30. Glad you're aboard."""
|
||||
.GSTR STR?271,"water"
|
||||
.GSTR STR?272,"bartender"
|
||||
.GSTR STR?273,"A bartender behind the bar polishes glasses with a worn towel."
|
||||
.GSTR STR?274,"A parrot with an eyepatch hobbles up and down the bar."
|
||||
.GSTR STR?275,"It sports an eyepatch and wooden leg and has been here since the bartender bought it from a sailor. It's considered insane by the local patrons."
|
||||
.GSTR STR?276,"but claw prints there"
|
||||
.GSTR STR?277,"""As my Pappy said, 'When you travel the highways of life, you do not always get to stop and look at a roadmap.'"""
|
||||
.GSTR STR?278,"""I must admit that in my wide travels across this ball of wax, I have seen many human specimens, though none quite like you."""
|
||||
.GSTR STR?279,"""After due consideration, I find myself in an embarrassing position. I would gladly accept a hard biscuit today, if you would accept payment Tuesday."""
|
||||
.GSTR STR?280,"""Read any good books lately? I found 'Tropical Birds and their Native Habitats' quite engrossing."""
|
||||
.GSTR STR?281,"""Compared to salted biscuits, I like myself best."""
|
||||
.GSTR STR?282,"""Hello Sailor."""
|
||||
.GSTR STR?283,"furniture"
|
||||
.GSTR STR?284,"it to clean it"
|
||||
.GSTR STR?285,"have a drink."
|
||||
.GSTR STR?286,"stick with grog."
|
||||
.GSTR STR?287,"You are in Mariners' Trust, the Island's bank. In it are a table and a teller's window. You can see the safe beyond, and it looks pretty empty."
|
||||
.GSTR STR?288,"teller"
|
||||
.GSTR STR?289,"A teller sits behind the window."
|
||||
.GSTR STR?290,"withdraw that!"
|
||||
.GSTR STR?291,"September 19"
|
||||
.GSTR STR?292,"deposit more than you have."
|
||||
.GSTR STR?293,"You are at Point Lookout, a small, high cliff that affords a spectacular view of the sea. The cliff bottom is dangerous, so the only safe path is the northwest footpath back to the Ocean Road."
|
||||
.GSTR STR?294,"If you really want to jump, say so, but do so at your own risk."
|
||||
.GSTR STR?295,"Your pleasant leap is interrupted as you find yourself impaled on the jagged rocks."
|
||||
.GSTR STR?296,"your money"
|
||||
.GSTR STR?297,"Johnny looks disappointed. ""We need at least $500 from you. I hate to do this, but you might tell McGinty..."" Suddenly you feel a shove in the back and see the pointy rocks below rush up to meet your descent."
|
||||
.GSTR STR?298,"give him more than you've got."
|
||||
.GSTR STR?299,"cliff"
|
||||
.GSTR STR?300,"The ferry to the mainland arrives here every two hours during the day. People are milling about. The Shore Road starts off to the east."
|
||||
.GSTR STR?301,"It would help if a ship were berthed. If you want to take a dip in the ocean, you'll have to say so."
|
||||
.GSTR STR?302,"The ferry for the mainland bobs up and down, its engines running."
|
||||
.GSTR STR?303,"at the landing."
|
||||
.GSTR STR?304,"a ferry token"
|
||||
.GSTR STR?305,"occupied"
|
||||
.GSTR STR?306,"The starboard side of the Mary Margaret has the wheelhouse to port. The deck is well-worn after many years of use, but still solid. The ocean is off to the other side of the rail."
|
||||
.GSTR STR?307,"You're out to sea now."
|
||||
.GSTR STR?308,"connected"
|
||||
.GSTR STR?309,"connect the airhose to that!"
|
||||
.GSTR STR?310,"Oops! So much for instantly growing gills."
|
||||
.GSTR STR?311,"climb that!"
|
||||
.GSTR STR?312,"connected to the deep-sea diving suit"
|
||||
.GSTR STR?313,"from here."
|
||||
.GSTR STR?314,"large air compressor"
|
||||
.GSTR STR?315,"make out too many details from here."
|
||||
.GSTR STR?316,"it from here"
|
||||
.GSTR STR?317," There are spare parts for the engine and other equipment scattered about."
|
||||
.GSTR STR?318,"The label is worn, so all you can make out is a large ""ACME"" at the top."
|
||||
.GSTR STR?319,"small panel on the side of the machine"
|
||||
.GSTR STR?320,"panel"
|
||||
.GSTR STR?321,"over the wet suit"
|
||||
.GSTR STR?322,"You take the suit off and quickly realize you're not a dolphin. You realize this too late, though."
|
||||
.GSTR STR?323,"hidden under the mattress"
|
||||
.GSTR STR?324,"bunks"
|
||||
.GSTR STR?325,"You are in a small, cramped cabin decorated with a table and a few chairs. To the aft is the captain's cabin, while the galley lies forward. A ladder leading down goes into the engine room."
|
||||
.GSTR STR?326,"You are in the captain's cabin. There is a large and comfortable-looking bunk here. The forward doorway leads to the crew's lounge."
|
||||
.GSTR STR?327,"This large, comfortable-looking bunk is the captain's."
|
||||
.GSTR STR?328,"diesel engine"
|
||||
.GSTR STR?329,"avoid it."
|
||||
.GSTR STR?330,"There's a bulkhead there."
|
||||
.GSTR STR?331,"You are on the port side of the Night Wind. The wheelhouse is to starboard. The teak deck is very well-kept. The ocean lies off to port."
|
||||
.GSTR STR?332,"in the drill"
|
||||
.GSTR STR?333,"hole you drilled"
|
||||
.GSTR STR?334,"second hole you drilled"
|
||||
.GSTR STR?335,"first hole you drilled"
|
||||
.GSTR STR?336,"You are in the crew's lounge, a cramped cabin with little more than a table and a few chairs. To aft is the captain's cabin, while the galley lies forward. A ladder leads into the engine room."
|
||||
.GSTR STR?337,"You are in the captain's cabin. A large and comfortable-looking bunk is one of the many comforts in the cabin. The forward doorway leads to the crew's lounge."
|
||||
.GSTR STR?338,"the line. Worry about it when you've found the treasure"
|
||||
.GSTR STR?339,"do that underwater."
|
||||
.GSTR STR?340,"You suddenly find yourself inhaling water! The airhose trailing behind must have torn, and there's no time to do anything about it!"
|
||||
.GSTR STR?341,"As you descend further, Merv Griffin swims by, offering you Pittsburgh Penguin tickets. You realize too late that this is a hallucination, since Merv doesn't even like the Penguins. At this depth, narcosis takes over, and all that's left is to say bye to Merv..."
|
||||
.GSTR STR?342,"a shipwreck"
|
||||
.GSTR STR?343,"the ocean floor"
|
||||
.GSTR STR?344,"The large, ugly, toothy shark is headed toward you!"
|
||||
.GSTR STR?345,"You are on the ocean floor. Sediment and seaweed wave slowly with the current."
|
||||
.GSTR STR?346,"You are at the bow of an old, rotting wreck where a ladder leads down through a large square hole in the deck. When the ship sank, the top of one of the masts broke off and fell into the hole. What's left of the deck continues aft."
|
||||
.GSTR STR?347,"You are at the bow of a steel ship that has been here for quite a while. The deck continues aft, and there is a passage leading down at your feet."
|
||||
.GSTR STR?348,"This is the bow of a very empty-looking wreck. The deck continues aft."
|
||||
.GSTR STR?349,"You are now aft of midships on the topmost deck. The deck continues fore and aft."
|
||||
.GSTR STR?350,"You are on the narrowing aft deck of the ship, which continues forward. A hole at the base of one mast leads down."
|
||||
.GSTR STR?351,"You are on the aft deck of the ship. Passengers could have gathered here to sun themselves and sip drinks. Those times are long gone. The only way to proceed is forward."
|
||||
.GSTR STR?352,"You are at the stern of this wreck. The deck continues forward."
|
||||
.GSTR STR?353,"Your airhose catches and tears on the way down."
|
||||
.GSTR STR?354,"the mast"
|
||||
.GSTR STR?355,"upper hole"
|
||||
.GSTR STR?356,"lower hole"
|
||||
.GSTR STR?357,"This cabin was apparently used for storage, although what's left can only be described as debris. There is an exit abaft, a doorway outlined with barnacle-encrusted timbers. There is a hole above your head through which a broken-off mast descends."
|
||||
.GSTR STR?358,"This cabin seems to have been sleeping quarters. It must have been used by the crew, as it is spartanly furnished. The only ways out of this room are up and down."
|
||||
.GSTR STR?359,"bug"
|
||||
.GSTR STR?360,"cut it with that."
|
||||
.GSTR STR?361,"the top knot"
|
||||
.GSTR STR?362,"This area is full of barnacle-encrusted iron bars, probably pikes used by the sailors for fending off boarding parties. There is a plaque on one wall. Exits are fore and aft."
|
||||
.GSTR STR?363,"Water rushes into the room, making you realize the value of your equipment."
|
||||
.GSTR STR?364,"This heavy iron bar was probably used as a pike."
|
||||
.GSTR STR?365,"plaque"
|
||||
.GSTR STR?366,"fallen partition"
|
||||
.GSTR STR?367,"As you return to a watery environment, you realize the value of leaving your equipment on."
|
||||
.GSTR STR?368,"This was a galley or a pantry, though only the shape and size of the cabin suggest that. There are exits fore and aft."
|
||||
.GSTR STR?369,"This former dining room has some tables upturned and scattered about, a door forward, a hole through the floor, and a narrow opening abaft."
|
||||
.GSTR STR?370,"Amidst a stack of rotted wood is a cask that is still in one piece."
|
||||
.GSTR STR?371,"climb the rope with that load."
|
||||
.GSTR STR?372,"stack of rotted wood"
|
||||
.GSTR STR?373,"bunch of overturned tables"
|
||||
.GSTR STR?374,"As you begin to move, you suddenly find yourself breathing water! Your airhose tore on some of the sharper debris."
|
||||
.GSTR STR?375,"The settling of debris has left a very narrow passage through this cabin. You can go forward or aft."
|
||||
.GSTR STR?376," wedged under the bunks."
|
||||
.GSTR STR?377,"debris"
|
||||
.GSTR STR?378,"You are in a bunk-lined cabin. The forward bulkhead has an open doorway in it, and a ladder leads down through the deck. The rotting interior of the hull lies aft."
|
||||
.GSTR STR?379,"This might have been the purser's cabin. It can be exited forward through a narrow opening."
|
||||
.GSTR STR?380,"Except for two broken rungs at the bottom, this ladder looks as if it's in good shape."
|
||||
.GSTR STR?381,"the combination"
|
||||
.GSTR STR?382,"You can go aft from this cabin, a small and claustrophobic area little more than a widened passageway, or through a jagged hole in the port bulkhead."
|
||||
.GSTR STR?383,"This cabin is the third-class passengers' quarters. There couldn't have been many frills here since the remains are spartan. The cabin can be exited aft and up."
|
||||
.GSTR STR?384,"get off the chest"
|
||||
.GSTR STR?385,"As the chest starts to rise, you fall off it rather awkwardly and disconnect your airhose."
|
||||
.GSTR STR?386,"This jagged hole is the result of centuries of wear on the hull."
|
||||
.GSTR STR?387," to take with you"
|
||||
.GSTR STR?388,"As you move away from the hole, your airhose gets caught on the edge of the hole in the wreck! As it tears, you find that breathing water is beyond your talents."
|
||||
.GSTR STR?389,", dragging the chest up with it."
|
||||
.GSTR STR?390,"."
|
||||
.GSTR STR?391,"This room, which may have been a lounge, can be exited fore or aft."
|
||||
.GSTR STR?392,"This was once the supplies locker, with exits forward and up, and a door with a sign on it in the aft bulkhead."
|
||||
.GSTR STR?393,"barnacle"
|
||||
.GSTR STR?394,"Although this sword is old and worn, it is still moderately sharp."
|
||||
.GSTR STR?395,"You're in one of the large holds of the ship, impressive in size. There are rooms fore and aft, and a hole in the port bulkhead."
|
||||
.GSTR STR?396,"This had to have been a mine locker. There is a door forward and a passage above your head."
|
||||
.GSTR STR?397,"BOOOOOOOOOOMMMMMMMMMM!"
|
||||
.GSTR STR?398,"This is another cabin used to house the ship's crew. There are exits forward and aft."
|
||||
.GSTR STR?399,"There is a giant squid sleeping here."
|
||||
.GSTR STR?400,"This cabin has suffered the ravages of the sea. Above your head at one end of the cabin a ladder leads up. The bottom two rungs of the ladder are broken, but the rest of it seems to be pretty sturdy. A doorway, outlined by rotting timbers, leads forward."
|
||||
.GSTR STR?401,"high enough to get past the two broken rungs"
|
||||
.GSTR STR?402,"He is wiry, hyper, and devoid of ethics. A fat cigar seems to be his only companion, since he's the type of man who would sell his own mother if given the opportunity."
|
||||
.GSTR STR?403," He"
|
||||
.GSTR STR?404,"The Weasel turns and yells, ""Traitor!"" Next thing you know, you've been stabbed."
|
||||
.GSTR STR?405,"""Thanks for the info, pal, but I better make sure you don't use it."" He pulls out his gun and shoots."
|
||||
.GSTR STR?406,"McGinty walks in the front door, spots something in the shadows, pulls out a gun, and fires. Unfortunately, you are what he noticed."
|
||||
.GSTR STR?407,"A moment later, McGinty sticks his head out, asks why you were in his place, and shoots you."
|
||||
.GSTR STR?408,"McGinty"
|
||||
.GSTR STR?409,"A Supremo it's not."
|
||||
.GSTR STR?410,"lit"
|
||||
.GSTR STR?411,"Red got his name from flame-red hair which sprouts from his head and face, and peeks out from under his flannel shirt. He takes no guff, but he is fair and has a sense of justice."
|
||||
.GSTR STR?412,"grins"
|
||||
.GSTR STR?413,"showed me this"
|
||||
.GSTR STR?414,"""Tie the line to the treasure when you've got it, then pull on it and we'll pull the treasure up."""
|
||||
.GSTR STR?415,"Pete wears an eyepatch and got his name on a far-east voyage as the cook. The food ran out, and he did what he could to supply the crew with fresh meat. Needless to say, he was left at the nearest port."
|
||||
.GSTR STR?416,"The Weasel is a small, greasy man with shifty eyes. He loves his sharp little knife more than life itself, and would sell out anybody for a price. Even himself."
|
||||
.GSTR STR?417,"The Weasel, quite panic-stricken, doesn't stop to thank you before he pulls a small knife from his ankle and kills you."
|
||||
.GSTR STR?418,"The Weasel glares at you and says, ""I don't take this from no one!"" He pulls out his knife, touches its too-sharp point with a finger, then introduces it to your chest."
|
||||
.GSTR STR?419,"his card"
|
||||
.GSTR STR?420,"the envelope"
|
||||
.GSTR STR?421,"You can't help notice that your dresser has been opened and the contents messed up."
|
||||
.GSTR STR?422,"""That's one of McGinty's envelopes! Traitor!"" Before you can respond, the Weasel's knife has violated the sanctity of your body."
|
||||
.GSTR STR?423,"The card says:
|
||||
""Frank Webster
|
||||
Seaman First Class
|
||||
No. 2626868"""
|
||||
.GSTR STR?424,"set to "
|
||||
.GSTR STR?425,"A desk clerk is sitting behind the counter."
|
||||
.GSTR STR?426,"reach behind the "
|
||||
.GSTR STR?427,"bought it."""
|
||||
.GSTR STR?428,"glass of water"
|
||||
.GSTR STR?429,"talk to someone who's not here."
|
||||
.GSTR STR?430,"boards"
|
||||
.GSTR STR?431,"disembarks"
|
||||
.GSTR STR?432,"It is dated 1680 and stamped with a portrait of King Peter II of Portugal."
|
||||
.GSTR STR?433,"It bears the Hollywood Cruise Lines markings."
|
||||
.GSTR STR?434,"Pete spots McGinty, who is near enough to overhear! While Johnny chases McGinty, Pete accuses you of bringing McGinty along. Before you respond, the Weasel plunges his knife into your heart."
|
||||
.GSTR STR?435,"Johnny glares at McGinty. ""Trying to cash in on my work again, huh? You probably killed Hevlin, too!"" And with that, he pushes McGinty off the cliff.
|
||||
|
||||
""I can't leave witnesses,"" he mumbles. Before you can react, you're on your way down to join what's left of McGinty."
|
||||
.GSTR STR?436,"Johnny sees McGinty on the road. ""You brought McGinty, you traitor! You probably killed Hevlin, too!"" A moment later, you're falling down to the rocks."
|
||||
.GSTR STR?437,"Johnny stares at you in disgust. ""A drunk diving for us? You'll probably tell McGinty, too. I'll make sure you don't."" He pushes you off the cliff. Although you feel no pain, your landing is fatal."
|
||||
.GSTR STR?438,"Johnny looks disgusted. ""No money? You probably told McGinty already. Traitor!"" He pushes you off the cliff, and you scream as the pointy rocks rush up to meet you."
|
||||
.GSTR STR?439,"Johnny looks disgusted. ""I can't wait all day..."" You feel a shove and then find yourself on your way down to the rocks below."
|
||||
.GSTR STR?440,"shakes his head"
|
||||
.GSTR STR?441,"hands something to McGinty"
|
||||
.GSTR STR?442,"""You brought McGinty!"" Next thing you know, your throat's been slit."
|
||||
.GSTR STR?443,"""What kind of joke is this, giving me the coordinates of the island?"""
|
||||
.GSTR STR?444,"sits down for his watch"
|
||||
.GSTR STR?445,"You are awakened by what feels like your ship running aground. You are put back to a permanent sleep by the Weasel's knife."
|
||||
.GSTR STR?446,"Your boat is lost in a sudden squall while you sleep."
|
||||
.GSTR STR?447,"find something to drink soon!"
|
||||
.GSTR STR?448,"The giant squid stirs and sees what disturbed it. When the huge eyes spot you, it moves toward you and hugs you with its tentacles. You squirm in an attempt to get away, but more arms surround you and one disconnects your airhose."
|
||||
.GSTR STR?449," swims up to you and starts nibbling."
|
||||
.GSTR STR?450,"The row of fallen bunks pinches your airhose. A few moments later, it is impossible to breathe."
|
||||
.GSTR STR?451,"You find yourself gasping for air, but there's none to breathe!"
|
||||
.GSTR STR?452,"You've used all your air."
|
||||
.GSTR STR?453,"There's not enough air to breathe!"
|
||||
.GSTR STR?454,"You suddenly find Red's hands around your throat as he makes a comment about hating cowards and Hevlin being wrong."
|
||||
|
||||
.ENDI
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue