mirror of
https://github.com/historicalsource/abyss
synced 2024-06-17 07:20:45 +03:00
Final Revision
This commit is contained in:
commit
2ac9da82cb
21
README
Normal file
21
README
Normal file
|
@ -0,0 +1,21 @@
|
|||
A few notes on the walk-thru version of The Abyss.
|
||||
|
||||
The game currently supports only the correct instructions to
|
||||
make it through to the end. Doing something other than what is
|
||||
required may result in unexpected results (and may void the
|
||||
warranty).
|
||||
|
||||
Two 'cheat' verbs are required to get through the game. When you
|
||||
oxygen in the breathing mix gets low, or when the nitrogen level
|
||||
is high, after solving the stopper puzzle, you must use the $AIR
|
||||
command to restore to breathing mix to nominal values. Also,
|
||||
when you trap Coffey in the compression chamber, you must use
|
||||
the $NITROGEN command to get him to say the wiring code
|
||||
mnemonic.
|
||||
|
||||
When the crane crashes, you have enough time to do all the
|
||||
things yourself, and in fact cannot ask anyone else to do
|
||||
something for you.
|
||||
|
||||
The helium descrambler puzzle is not yet implemented.
|
||||
|
11
abyss-mac
Normal file
11
abyss-mac
Normal file
|
@ -0,0 +1,11 @@
|
|||
File 1: 6 pictures.
|
||||
ID Pixels RLE Huff Name
|
||||
1 960 51 25 GAUGE.LBM
|
||||
2 960 42 20 GAUGE.LBM
|
||||
3 960 51 25 GAUGE.LBM
|
||||
4 960 36 16 GAUGE.LBM
|
||||
5 12 4 3 GAUGE.LBM
|
||||
6 12 4 3 GAUGE.LBM
|
||||
|
||||
|
||||
Segment Size
|
0
abyss-mac.g
Normal file
0
abyss-mac.g
Normal file
6
abyss-pix.zil
Normal file
6
abyss-pix.zil
Normal file
|
@ -0,0 +1,6 @@
|
|||
<SETG GAUGE.LBM 1>
|
||||
<SETG GAUGE.LBM 2>
|
||||
<SETG GAUGE.LBM 3>
|
||||
<SETG GAUGE.LBM 4>
|
||||
<SETG GAUGE.LBM 5>
|
||||
<SETG GAUGE.LBM 6>
|
2
abyss.chart
Normal file
2
abyss.chart
Normal file
|
@ -0,0 +1,2 @@
|
|||
-date- -rel- -size- -pre- -obj- -glo- -voc-
|
||||
3/20 1 109416 25134 203 123 626
|
39
abyss.errors
Normal file
39
abyss.errors
Normal file
|
@ -0,0 +1,39 @@
|
|||
Release: 1
|
||||
0 Inserting abyss.zap.
|
||||
64 Inserting abyssfreq.xzap.
|
||||
720 Inserting abyssdat.zap.
|
||||
25134 Inserting abysspur.zap.
|
||||
26198 Inserting pstack.zap.
|
||||
26234 Inserting pmem.zap.
|
||||
26377 Inserting parser.zap.
|
||||
36010 Inserting find.zap.
|
||||
38166 Inserting reds.zap.
|
||||
44860 Inserting breds.zap.
|
||||
47154 Inserting top.zap.
|
||||
48929 Inserting prare.zap.
|
||||
53280 Inserting misc.zap.
|
||||
56372 Inserting gas-mix.zap.
|
||||
59524 Inserting verbs.zap.
|
||||
67067 Inserting be.zap.
|
||||
68282 Inserting sub-bay.zap.
|
||||
81752 Inserting command.zap.
|
||||
84030 Inserting montana.zap.
|
||||
90442 Inserting return1.zap.
|
||||
91141 Inserting return2.zap.
|
||||
91443 Inserting ocean.zap.
|
||||
92347 Inserting crane.zap.
|
||||
99062 Inserting global.zap.
|
||||
99563 Inserting util.zap.
|
||||
104295 Inserting stopper.zap.
|
||||
105650 Inserting alien.zap.
|
||||
106830 Inserting endgame.zap.
|
||||
107356 Inserting abyssstr.zap.
|
||||
|
||||
Lexical buffer space allocated: 608152
|
||||
Max lexical space allocated at any one time: 48012
|
||||
Object buffer space allocated: 112000
|
||||
Source bytes read: 531619
|
||||
Object bytes written: 109416
|
||||
Preload: 25134; 203 objects; 123 globals; 626 words.
|
||||
Used 1:58
|
||||
Elapsed time 2:23
|
2
abyss.lowcore
Normal file
2
abyss.lowcore
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
2
|
BIN
abyss.mac.1
Normal file
BIN
abyss.mac.1
Normal file
Binary file not shown.
8
abyss.mpf
Normal file
8
abyss.mpf
Normal file
|
@ -0,0 +1,8 @@
|
|||
abyss -c -h -t
|
||||
.file 1 *
|
||||
1 gauge.lbm -x 016 008 135 015 -0 ;"Oxygen gauge"
|
||||
2 gauge.lbm -x 016 024 135 031 -0 ;"CO2 gauge"
|
||||
3 gauge.lbm -x 016 040 135 047 -0 ;"Nitrogen gauge"
|
||||
4 gauge.lbm -x 016 056 135 063 -0 ;"Helium gauge"
|
||||
5 gauge.lbm -x 044 073 045 078 -0 ;"Needle (dark)"
|
||||
6 gauge.lbm -x 058 073 059 078 -0 ;"Needle (light)"
|
946
abyss.record
Normal file
946
abyss.record
Normal file
|
@ -0,0 +1,946 @@
|
|||
ZILCH of 3/2/89 12:41
|
||||
|
||||
Combined ZIL Compiler Ver 2.0 (MIM)
|
||||
-----------------------------------
|
||||
|
||||
Incremental compilation disabled, because top-level ZIL file changed.
|
||||
|
||||
Input file: /USR/DEVELOPMENT/ABYSS/ABYSS.ZIL
|
||||
[Object numbers assigned rooms first]
|
||||
|
||||
[Zaps always go to current directory]
|
||||
|
||||
[YZIP instructions]
|
||||
|
||||
Loading /USR/DEVELOPMENT/ABYSS/DEFS.ZIL and compiling it.
|
||||
XFLOAD /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PARSER.REST.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/CONSTANTS.ZIL and compiling it.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PSTACK.ZIL and compiling it.
|
||||
|
||||
Start segment 0
|
||||
Compiling routine: PEEK-PSTACK
|
||||
End segment 0
|
||||
Abstracting PSTACK to /USR/DEVELOPMENT/ABYSS/PSTACK.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PMEM.ZIL and compiling it.
|
||||
|
||||
Start segment 0
|
||||
Compiling routine: PMEM?
|
||||
Compiling routine: PMEM-RESET
|
||||
Compiling routine: DO-PMEM-ALLOC
|
||||
End segment 0
|
||||
Abstracting PMEM to /USR/DEVELOPMENT/ABYSS/PMEM.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PDEFS.ZIL and compiling it.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/DEFS2.ZIL and compiling it.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PARSER.ZIL and compiling it.
|
||||
|
||||
Start segment 0
|
||||
Compiling routine: INIT-STATUS-LINE
|
||||
Compiling routine: UPDATE-STATUS-LINE
|
||||
Compiling routine: RT-PRINT-MENU
|
||||
Compiling routine: RT-PRINT-MENU-ENTRY
|
||||
Compiling routine: RT-HLIGHT-MENU
|
||||
Compiling routine: RT-GET-PREPS
|
||||
Compiling routine: RT-GET-OBJS
|
||||
Compiling routine: RT-DO-OBJECTS
|
||||
Compiling routine: RT-GET-MEM
|
||||
Compiling routine: RT-FREE-MEM
|
||||
Compiling routine: RT-STOP-READ
|
||||
Compiling routine: MOUSE-INPUT?
|
||||
Compiling routine: READ-INPUT
|
||||
Compiling routine: SPECIAL-CONTRACTION?
|
||||
Compiling routine: EXPAND-BE-CONTRACTIONS
|
||||
Compiling routine: TELL-THE
|
||||
Compiling routine: TELL-CTHE
|
||||
Compiling routine: NAKED-DIR?
|
||||
Compiling routine: PARSER
|
||||
Compiling routine: GAME-VERB?
|
||||
Compiling routine: RED-SD
|
||||
Compiling routine: P-P
|
||||
Compiling routine: PARSE-IT
|
||||
Compiling routine: PARSE-SENTENCE
|
||||
Compiling routine: GET-TERMINAL-ACTION
|
||||
Compiling routine: GET-NONTERMINAL-ACTION
|
||||
Compiling routine: BE-PATIENT
|
||||
Compiling routine: MAIN-LOOP
|
||||
Compiling routine: MAIN-LOOP-1
|
||||
Compiling routine: QCONTEXT-CHECK
|
||||
Compiling routine: LIT?
|
||||
Compiling routine: IGNORE-FIRST-WORD
|
||||
Compiling routine: FIX-QUOTATIONS
|
||||
Compiling routine: MAIN-LOOP-IT
|
||||
Compiling routine: P-NO-MEM-ROUTINE
|
||||
Compiling routine: BEG-PARDON
|
||||
Compiling routine: UNKNOWN-WORD
|
||||
Compiling routine: WORD-PRINT
|
||||
Compiling routine: PRINT-VOCAB-WORD
|
||||
Compiling routine: DO-OOPS
|
||||
Compiling routine: DO-AGAIN
|
||||
Compiling routine: NP-SAVE
|
||||
Compiling routine: PARSER-ERROR
|
||||
Compiling routine: BUZZER-WORD?
|
||||
Compiling routine: NUMBER?
|
||||
Compiling routine: CHANGE-LEXV
|
||||
Compiling routine: TELL-GWIM-MSG
|
||||
Compiling routine: DO-IT-AGAIN
|
||||
End segment 0
|
||||
Abstracting PARSER to /USR/DEVELOPMENT/ABYSS/PARSER.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/FIND.ZIL and compiling it.
|
||||
|
||||
Start segment 0
|
||||
Compiling routine: FIND-DESCENDANTS
|
||||
Compiling routine: EXCLUDED?
|
||||
Compiling routine: INVALID-OBJECT?
|
||||
Compiling routine: MATCH-OBJECT
|
||||
Compiling routine: TEST-OBJECT
|
||||
Compiling routine: ADD-OBJECT
|
||||
Compiling routine: NOT-IN-FIND-RES?
|
||||
Compiling routine: EVERYWHERE-VERB?
|
||||
Compiling routine: MULTIPLE-EXCEPTION?
|
||||
Compiling routine: CHECK-ADJS-THERE?
|
||||
Compiling routine: CHECK-ADJS
|
||||
Compiling routine: SEARCH-IN-LG?
|
||||
Compiling routine: EXCLUDE-HERE-OBJECT?
|
||||
Compiling routine: FIND-OBJECTS
|
||||
Compiling routine: TEST-THINGS
|
||||
End segment 0
|
||||
Abstracting FIND to /USR/DEVELOPMENT/ABYSS/FIND.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/REDS.ZIL and compiling it.
|
||||
|
||||
Start segment 0
|
||||
Compiling routine: NOT-HERE-VERB?
|
||||
Compiling routine: RED-FCN
|
||||
Compiling routine: RED-PART
|
||||
Compiling routine: GET-SYNTAX
|
||||
Compiling routine: RED-SV
|
||||
Compiling routine: ROOT-VERB
|
||||
Compiling routine: RED-SVN
|
||||
Compiling routine: RED-SVNP
|
||||
Compiling routine: RED-SVNPN
|
||||
Compiling routine: RED-SVPNN
|
||||
Compiling routine: RED-SVPNPN
|
||||
Compiling routine: RED-SVD
|
||||
Compiling routine: RED-SP
|
||||
Compiling routine: IREDUCE-EXCEPTION
|
||||
Compiling routine: REDUCE-EXCEPT-IT
|
||||
Compiling routine: REDUCE-EXCEPTION
|
||||
Compiling routine: REDUCE-LOCATION
|
||||
Compiling routine: DETERMINE-OBJ
|
||||
Compiling routine: CHECK-DIR-ADJS
|
||||
Compiling routine: NUMERIC-ADJ?
|
||||
Compiling routine: DETERMINE-NP
|
||||
Compiling routine: DET-NP-NOT-HERE?
|
||||
Compiling routine: DET-NP-OWNEE?
|
||||
Compiling routine: FIND-OWNERS
|
||||
Compiling routine: READY-TO-DISAMBIGUATE?
|
||||
Compiling routine: DETERMINE-NP-XFER
|
||||
Compiling routine: DO-ORPHAN-TEST
|
||||
Compiling routine: RED-O-ADJ
|
||||
Compiling routine: RED-O-PP
|
||||
Compiling routine: INSERT-NP
|
||||
Compiling routine: TEST-SR
|
||||
Compiling routine: RED-O-NP
|
||||
Compiling routine: RED-PERS
|
||||
Compiling routine: HACK-TELL
|
||||
Compiling routine: HACK-TELL-1
|
||||
Compiling routine: RED-VP
|
||||
Compiling routine: RED-NP
|
||||
Compiling routine: RED-OF
|
||||
Compiling routine: RED-QT
|
||||
Compiling routine: GET-QUANTITY-WORD
|
||||
Compiling routine: GET-QUANTITY
|
||||
Compiling routine: RED-QN
|
||||
Compiling routine: RED-NPP
|
||||
Compiling routine: RED-PP
|
||||
Compiling routine: RED-POSS
|
||||
Compiling routine: RED-ADJ
|
||||
Compiling routine: RED-QUOTE
|
||||
End segment 0
|
||||
Abstracting REDS to /USR/DEVELOPMENT/ABYSS/REDS.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/BREDS.ZIL and compiling it.
|
||||
|
||||
Start segment 0
|
||||
Compiling routine: RED-BE-FORM
|
||||
Compiling routine: EXCH-4-5-Q
|
||||
Compiling routine: RED-SBNN
|
||||
Compiling routine: RED-SNBN
|
||||
Compiling routine: DETERMINE-SUBJ
|
||||
Compiling routine: RED-SBNA
|
||||
Compiling routine: RED-SNBA
|
||||
Compiling routine: RED-SBNP
|
||||
Compiling routine: RED-SNBP
|
||||
Compiling routine: RED-SNBAP
|
||||
Compiling routine: P-PP-OBJ
|
||||
Compiling routine: P-PP-PREP
|
||||
Compiling routine: RED-SQBN
|
||||
Compiling routine: RED-BE
|
||||
Compiling routine: RED-NOT
|
||||
Compiling routine: RED-CANDO
|
||||
Compiling routine: INSERT-WHAT
|
||||
End segment 0
|
||||
Abstracting BREDS to /USR/DEVELOPMENT/ABYSS/BREDS.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/GRAM.ZIL and compiling it.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/TOP.ZIL and compiling it.
|
||||
|
||||
Start segment 0
|
||||
Compiling routine: MORE-SPECIFIC
|
||||
Compiling routine: V-PDEBUG
|
||||
Compiling routine: VERB-ALL-TEST
|
||||
Compiling routine: FIX-HIM-HER-IT
|
||||
Compiling routine: TELL-PRONOUN
|
||||
Compiling routine: NO-M-WINNER-VERB?
|
||||
Compiling routine: FIND-A-WINNER
|
||||
Compiling routine: TELL-SAID-TO
|
||||
Compiling routine: QCONTEXT-GOOD?
|
||||
Compiling routine: META-LOC
|
||||
Compiling routine: CANT-UNDO
|
||||
Compiling routine: SEE-VERB?
|
||||
Compiling routine: PERFORM
|
||||
Compiling routine: TELL-TOO-DARK
|
||||
Compiling routine: ITAKE-CHECK
|
||||
Compiling routine: TELL-D-LOC
|
||||
Compiling routine: D-APPLY
|
||||
Compiling routine: CAPITAL-NOUN?
|
||||
Compiling routine: NOT-HERE
|
||||
Compiling routine: SPEAKING-VERB?
|
||||
Compiling routine: GET-OWNER
|
||||
Compiling routine: GET-NP
|
||||
Compiling routine: NOUN-USED?
|
||||
Compiling routine: ADJ-USED?
|
||||
End segment 0
|
||||
Abstracting TOP to /USR/DEVELOPMENT/ABYSS/TOP.
|
||||
Loading /USR/DEVELOPMENT/INTERLOGIC/ZILLIB/PARSER/PRARE.ZIL and compiling it.
|
||||
|
||||
Start segment 0
|
||||
Compiling routine: TOO-MANY-NEW
|
||||
Compiling routine: NAKED-OOPS
|
||||
Compiling routine: CANT-OOPS
|
||||
Compiling routine: CANT-AGAIN
|
||||
Compiling routine: CANT-USE-MULTIPLE
|
||||
Compiling routine: MAKE-ROOM-FOR-TOKENS
|
||||
Compiling routine: REPLACE-ONE-TOKEN
|
||||
Compiling routine: V-$REFRESH
|
||||
Compiling routine: PRINT-INTQUOTE
|
||||
Compiling routine: PRINT-LEXV
|
||||
Compiling routine: COPY-INPUT
|
||||
End segment 0
|
||||
Start segment 0
|
||||
Compiling routine: BUFFER-PRINT
|
||||
Compiling routine: CAPITALIZE
|
||||
Compiling routine: PRINT-PARSER-FAILURE
|
||||
Compiling routine: NAKED-ADJECTIVE?
|
||||
Compiling routine: CHANGE-AND-TO-THEN?
|
||||
Compiling routine: DONT-UNDERSTAND
|
||||
Compiling routine: MISSING
|
||||
Compiling routine: CANT-FIND-OBJECT
|
||||
Compiling routine: NP-CANT-SEE
|
||||
Compiling routine: WINNER-SAYS-WHICH?
|
||||
Compiling routine: WHICH-LIST?
|
||||
Compiling routine: WHICH-PRINT
|
||||
Compiling routine: NP-PRINT
|
||||
Compiling routine: ADJS-PRINT
|
||||
Compiling routine: TOO-MANY-NOUNS
|
||||
Compiling routine: INBUF-ADD
|
||||
Compiling routine: INBUF-PRINT
|
||||
Compiling routine: YES?
|
||||
Compiling routine: SETUP-ORPHAN
|
||||
Compiling routine: SETUP-ORPHAN-NP
|
||||
Compiling routine: INSERT-ADJS
|
||||
Compiling routine: INSERT-ADJS-WD
|
||||
End segment 0
|
||||
Abstracting PRARE to /USR/DEVELOPMENT/ABYSS/PRARE.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/MACROS.ZIL and compiling it.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/MISC.ZIL and compiling it.
|
||||
Compiling routine: VISIBLE?
|
||||
Compiling routine: CLOSED?
|
||||
Compiling routine: ACCESSIBLE?
|
||||
Compiling routine: RT-PRINT-DESC
|
||||
Compiling routine: RT-PRINT-ARTICLE
|
||||
Compiling routine: RT-PRINT-OBJ
|
||||
Compiling routine: RT-PRINT-VERB
|
||||
Compiling routine: THIS-IS-IT
|
||||
Compiling routine: RT-IN-ON-MSG
|
||||
Compiling routine: RT-OUT-OFF-MSG
|
||||
Compiling routine: RT-OPEN-MSG
|
||||
Compiling routine: TOUCH-VERB?
|
||||
Compiling routine: CLOCKER
|
||||
Compiling routine: RT-QUEUE
|
||||
Compiling routine: RT-DEQUEUE
|
||||
Compiling routine: RT-IS-QUEUED?
|
||||
Compiling routine: C-PIXELS
|
||||
Compiling routine: L-PIXELS
|
||||
Compiling routine: PIXELS-C
|
||||
Compiling routine: PIXELS-L
|
||||
Compiling routine: CCURSET
|
||||
Compiling routine: CCURGET
|
||||
Compiling routine: CSPLIT
|
||||
Compiling routine: CWINPOS
|
||||
Compiling routine: CWINSIZE
|
||||
Compiling routine: CSCROLL
|
||||
Compiling routine: RT-SCRIPT-INBUF
|
||||
Compiling routine: GO
|
||||
Abstracting MISC to /USR/DEVELOPMENT/ABYSS/MISC.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/GAS-MIX.ZIL and compiling it.
|
||||
|
||||
Compiling routine: V-$SCRUB
|
||||
Compiling routine: V-$AIR
|
||||
Compiling routine: RT-NUM-DIGITS
|
||||
Compiling routine: RT-PRINT-FLOAT
|
||||
Compiling routine: RT-NITROGEN-MSG
|
||||
Compiling routine: RT-OXYGEN-MSG
|
||||
Compiling routine: RT-CO2-MSG
|
||||
Compiling routine: RT-I-GAS-MIX
|
||||
Compiling routine: V-$HEAT
|
||||
Compiling routine: RT-TH-THERMOMETER
|
||||
Compiling routine: RT-TEMP-MSG
|
||||
Compiling routine: RT-I-DEEPCORE-TEMP
|
||||
Compiling routine: RT-I-TEMP
|
||||
Abstracting GAS-MIX to /USR/DEVELOPMENT/ABYSS/GAS-MIX.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/SYNTAX.ZIL and compiling it.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/VERBS.ZIL and compiling it.
|
||||
Compiling routine: V-DESC-LEVEL
|
||||
Compiling routine: V-SCRIPT
|
||||
Compiling routine: V-VERIFY
|
||||
Compiling routine: V-COMMAND
|
||||
Compiling routine: V-RECORD
|
||||
Compiling routine: V-UNRECORD
|
||||
Compiling routine: V-INVENTORY
|
||||
Compiling routine: V-QUIT
|
||||
Compiling routine: RT-FAILED-MSG
|
||||
Compiling routine: V-RESTART
|
||||
Compiling routine: V-SAVE
|
||||
Compiling routine: V-RESTORE
|
||||
Compiling routine: RT-PRINT-CONTENTS
|
||||
Compiling routine: RT-DESCRIBE-OBJECTS
|
||||
Compiling routine: RT-DESCRIBE-ROOM
|
||||
Compiling routine: NOT-HOLDING?
|
||||
Compiling routine: HELD?
|
||||
Compiling routine: TOO-DARK
|
||||
Compiling routine: V-ASK-ABOUT
|
||||
Compiling routine: V-ATTACH
|
||||
Compiling routine: V-CLOSE
|
||||
Compiling routine: V-CUT
|
||||
Compiling routine: IDROP
|
||||
Compiling routine: V-DROP
|
||||
Compiling routine: PRE-EMPTY
|
||||
Compiling routine: V-EMPTY
|
||||
Compiling routine: RT-EMPTY-MSG
|
||||
Compiling routine: V-EMPTY-FROM
|
||||
Compiling routine: V-ENTER
|
||||
Compiling routine: V-EXIT
|
||||
Compiling routine: RT-NOT-IN-ROOM-MSG
|
||||
Compiling routine: RT-DO-WALK
|
||||
Compiling routine: V-EXAMINE
|
||||
Compiling routine: RT-NOTHING-SPECIAL-MSG
|
||||
Compiling routine: V-EXTINGUISH
|
||||
Compiling routine: V-FOLLOW
|
||||
Compiling routine: V-GIVE
|
||||
Compiling routine: V-GIVE-SWP
|
||||
Compiling routine: V-HIT
|
||||
Compiling routine: V-INFLATE
|
||||
Compiling routine: V-LIFT
|
||||
Compiling routine: V-LISTEN
|
||||
Compiling routine: V-LOCK
|
||||
Compiling routine: V-LOOK
|
||||
Compiling routine: V-LOOK-BEHIND
|
||||
Compiling routine: V-LOOK-UNDER
|
||||
Compiling routine: V-LOOK-IN
|
||||
Compiling routine: TELL-CANT-FIND
|
||||
Compiling routine: V-LOOK-ON
|
||||
Compiling routine: V-MOVE
|
||||
Compiling routine: V-NO
|
||||
Compiling routine: RT-MATCH-KEY
|
||||
Compiling routine: RT-OTHER-SIDE
|
||||
Compiling routine: RT-LOCK-MSG
|
||||
Compiling routine: RT-OPEN-DOOR-MSG
|
||||
Compiling routine: V-OPEN
|
||||
Compiling routine: V-PLUG-IN
|
||||
Compiling routine: V-PULL
|
||||
Compiling routine: V-PUSH
|
||||
Compiling routine: PRE-PUT
|
||||
Compiling routine: V-PUT
|
||||
Compiling routine: TELL-FIND-NONE
|
||||
Compiling routine: PRE-PUT-IN
|
||||
Compiling routine: V-PUT-IN
|
||||
Compiling routine: RT-PUT-ON-OR-IN
|
||||
Compiling routine: RT-TOTAL-SIZE
|
||||
Compiling routine: RT-OBJ-TOO-LARGE?
|
||||
Compiling routine: RT-ROOM-IN-MSG?
|
||||
Compiling routine: RT-CHECK-MOVE-MSG?
|
||||
Compiling routine: V-REACH-BEHIND
|
||||
Compiling routine: V-REACH-IN
|
||||
Compiling routine: V-REACH-UNDER
|
||||
Compiling routine: V-READ
|
||||
Compiling routine: V-SHOW
|
||||
Compiling routine: V-SHOW-SWP
|
||||
Compiling routine: V-SIT
|
||||
Compiling routine: ITAKE
|
||||
Compiling routine: RT-DO-TAKE
|
||||
Compiling routine: PRE-TAKE
|
||||
Compiling routine: PRE-TAKE-WITH
|
||||
Compiling routine: V-TAKE
|
||||
Compiling routine: V-TAKE-WITH
|
||||
Compiling routine: V-TALK-TO
|
||||
Compiling routine: V-TELL
|
||||
Compiling routine: WONT-HELP-TO-TALK-TO
|
||||
Compiling routine: V-TELL-ABOUT
|
||||
Compiling routine: V-THANK
|
||||
Compiling routine: V-TIE-TO
|
||||
Compiling routine: V-TURN
|
||||
Compiling routine: V-TURN-OFF
|
||||
Compiling routine: V-TURN-ON
|
||||
Compiling routine: V-TURN-TO
|
||||
Compiling routine: V-UNDO
|
||||
Compiling routine: V-UNLOCK
|
||||
Compiling routine: V-UNWEAR
|
||||
Compiling routine: V-WAIT
|
||||
Compiling routine: RT-FIND-DIR
|
||||
Compiling routine: RT-FIND-ROOM
|
||||
Compiling routine: RT-SET-PUPPY
|
||||
Compiling routine: RT-CLEAR-PUPPY
|
||||
Compiling routine: V-WALK
|
||||
Compiling routine: WALK-THRU-DOOR?
|
||||
Compiling routine: RT-GOTO
|
||||
Compiling routine: RT-ENTER-ROOM
|
||||
Compiling routine: RT-ROOM-NAME-MSG
|
||||
Compiling routine: V-WALK-AROUND
|
||||
Compiling routine: V-WALK-TO
|
||||
Compiling routine: RT-WALK-WITHIN-ROOM-MSG
|
||||
Compiling routine: V-WEAR
|
||||
Compiling routine: V-WELD
|
||||
Compiling routine: V-YES
|
||||
Abstracting VERBS to /USR/DEVELOPMENT/ABYSS/VERBS.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/BE.ZIL and compiling it.
|
||||
Compiling routine: V-STATEMENT
|
||||
Compiling routine: V-BE
|
||||
Compiling routine: TELL-Q-WORD
|
||||
Compiling routine: RIGHT-PREP?
|
||||
Compiling routine: IS-QUIET?
|
||||
Compiling routine: IS-OUTSIDE?
|
||||
Compiling routine: IS-OPEN?
|
||||
Compiling routine: IS-CLOSED?
|
||||
Compiling routine: IS-LOCKED?
|
||||
Compiling routine: IS-UNLOCKED?
|
||||
Compiling routine: IS-DEAD?
|
||||
Compiling routine: IS-ALIVE?
|
||||
Compiling routine: IS-HERE?
|
||||
Compiling routine: PRSO-IS
|
||||
Compiling routine: IS-PRSO-ADJ?
|
||||
Compiling routine: YES-BUT?
|
||||
Compiling routine: V-CAN?
|
||||
Compiling routine: V-MAY?
|
||||
Compiling routine: V-DO?
|
||||
Compiling routine: V-COULD?
|
||||
Compiling routine: V-WOULD?
|
||||
Compiling routine: V-SHOULD?
|
||||
Compiling routine: V-MIGHT?
|
||||
Compiling routine: V-WILL?
|
||||
Compiling routine: V-MUST?
|
||||
Compiling routine: V-BE?
|
||||
Compiling routine: V-WHO
|
||||
Compiling routine: V-WHAT
|
||||
Compiling routine: V-WHEN
|
||||
Compiling routine: V-WHERE
|
||||
Compiling routine: V-WHY
|
||||
Compiling routine: V-HOW
|
||||
Abstracting BE to /USR/DEVELOPMENT/ABYSS/BE.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/SUB-BAY.ZIL and compiling it.
|
||||
|
||||
Compiling routine: RT-RM-SUB-BAY
|
||||
Compiling routine: RT-TH-MOON-POOL
|
||||
Compiling routine: RT-TH-FIRE
|
||||
Compiling routine: RT-I-FIRE-1
|
||||
Compiling routine: RT-I-FIRE-2
|
||||
Compiling routine: RT-TH-WATER-HOSE
|
||||
Compiling routine: RT-TH-NOZZLE
|
||||
Compiling routine: RT-TH-OXYGEN-CYLINDER
|
||||
Compiling routine: RT-CH-COFFEY
|
||||
Compiling routine: RT-CH-ONE-NIGHT
|
||||
Compiling routine: RT-TH-DRY-SUIT
|
||||
Compiling routine: RT-TH-FACEPLATE
|
||||
Compiling routine: RT-TH-HELMET
|
||||
Compiling routine: RT-TH-HOOK-1
|
||||
Compiling routine: RT-TH-LIFT-BAG
|
||||
** Warning: Undefined variable assumed LOCAL L
|
||||
Compiling routine: RT-TH-CO2-CANNISTER
|
||||
Compiling routine: RT-TH-RED-BUTTON
|
||||
Compiling routine: RT-RM-COMPRESSION-CHAMBER
|
||||
Compiling routine: RT-LG-CHAMBER-HATCH
|
||||
Compiling routine: RT-I-LEAVE-1
|
||||
Compiling routine: RT-I-LEAVE-2
|
||||
Compiling routine: RT-I-LEAVE-3
|
||||
Compiling routine: RT-I-LEAVE-4
|
||||
Compiling routine: RT-I-RETURN-1
|
||||
Compiling routine: RT-I-RETURN-2
|
||||
Compiling routine: RT-I-RETURN-3
|
||||
Compiling routine: RT-I-RETURN-4
|
||||
Compiling routine: RT-I-UFO-MESSAGE
|
||||
Compiling routine: RT-RM-CAB-THREE
|
||||
Compiling routine: RT-OUT-CAB
|
||||
Compiling routine: RT-I-CAB-FIXED
|
||||
Compiling routine: RT-TH-CAB-HOOKAH
|
||||
Compiling routine: RT-RM-GAS-MIX-ROOM
|
||||
Compiling routine: RT-RM-CORRIDOR
|
||||
Compiling routine: RT-TH-PANEL
|
||||
Compiling routine: RT-RM-LADDER-A2
|
||||
Compiling routine: RT-RM-LOUNGE
|
||||
Compiling routine: RT-RM-INFIRMARY
|
||||
Compiling routine: RT-RM-MESS-HALL
|
||||
Compiling routine: RT-RM-GALLEY
|
||||
Compiling routine: RT-RM-PANTRY
|
||||
Compiling routine: RT-TH-HOOK-2
|
||||
Compiling routine: RT-TH-GAME-BAG
|
||||
Compiling routine: RT-RM-WALDORF
|
||||
Compiling routine: RT-RM-PERSONAL-STORAGE-1
|
||||
Compiling routine: RT-RM-ZOOTOWN
|
||||
Compiling routine: RT-RM-LADDER-C2
|
||||
Compiling routine: RT-TH-S-BILGE-BUTT
|
||||
Compiling routine: RT-RM-LADDER-A1
|
||||
Compiling routine: RT-RM-LAUNDRY
|
||||
Compiling routine: RT-RM-PT-LIFE-SUPPORT
|
||||
Compiling routine: RT-RM-COMPRESSOR-ROOM
|
||||
Compiling routine: RT-TH-COMPRESSOR
|
||||
Compiling routine: RT-RM-LADDER-D1
|
||||
Compiling routine: RT-RM-TOOL-PUSHER-OFFICE
|
||||
Compiling routine: RT-RM-DRILL-ROOM
|
||||
Compiling routine: RT-RM-LADDER-B1
|
||||
Compiling routine: RT-RM-SB-BATTERY-ROOM
|
||||
Compiling routine: RT-RM-SB-HEAD
|
||||
Compiling routine: RT-RM-SB-LIFE-SUPPORT
|
||||
Compiling routine: RT-RM-PUMP-ROOM
|
||||
Compiling routine: RT-RM-FRESH-WATER-STORAGE
|
||||
Compiling routine: RT-RM-LADDER-C1
|
||||
Compiling routine: RT-RM-LADDER-A3
|
||||
Compiling routine: RT-RM-PT-HEAD
|
||||
Compiling routine: RT-RM-MOTEL-QUICK
|
||||
Compiling routine: RT-RM-PERSONAL-STORAGE-2
|
||||
Compiling routine: RT-RM-SWAMP
|
||||
Compiling routine: RT-RM-LADDER-D3
|
||||
Compiling routine: RT-RM-LADDER-B3
|
||||
Compiling routine: RT-RM-SB-OBS-DECK
|
||||
Compiling routine: RT-RM-COMPUTER-CENTER
|
||||
Compiling routine: RT-RM-ELECTRONICS-SHOP
|
||||
Compiling routine: RT-TH-ELEC-SHOP-DRAWER
|
||||
Compiling routine: RT-RM-LAB
|
||||
Compiling routine: RT-RM-TAPE-LIBRARY
|
||||
Compiling routine: RT-RM-LADDER-C3
|
||||
Abstracting SUB-BAY to /USR/DEVELOPMENT/ABYSS/SUB-BAY.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/COMMAND.ZIL and compiling it.
|
||||
|
||||
Compiling routine: RT-RM-COMMAND-MODULE
|
||||
Compiling routine: RT-TH-MONITORS
|
||||
Compiling routine: RT-TH-COMMAND-CHAIR
|
||||
Compiling routine: RT-COMMAND-MENU
|
||||
Compiling routine: RT-EMERGENCY-MENU
|
||||
** Warning: Undefined variable assumed LOCAL C
|
||||
** Warning: Undefined variable assumed LOCAL L
|
||||
Compiling routine: RT-ROV-MENU
|
||||
Compiling routine: RT-AIR-MENU
|
||||
Compiling routine: RT-GAS-LEVEL-MSG
|
||||
Compiling routine: RT-POWER-MENU
|
||||
Compiling routine: RT-LIGHT-MENU
|
||||
Compiling routine: RT-SUPPORT-MENU
|
||||
** Warning: Undefined variable assumed LOCAL C
|
||||
** Warning: Undefined variable assumed LOCAL L
|
||||
Compiling routine: RT-PUMP-MENU
|
||||
** Warning: Undefined variable assumed LOCAL C
|
||||
** Warning: Undefined variable assumed LOCAL L
|
||||
Compiling routine: RT-TH-DESCRAMBLER-CONTROL-BOX
|
||||
Abstracting COMMAND to /USR/DEVELOPMENT/ABYSS/COMMAND.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/MONTANA.ZIL and compiling it.
|
||||
|
||||
Compiling routine: RT-RM-MIDSHIP-HATCH
|
||||
Compiling routine: RT-LG-MIDSHIP-HATCH
|
||||
Compiling routine: RT-TO-TRENCH-BOTTOM
|
||||
Compiling routine: RT-RM-MISSILE-HATCH
|
||||
Compiling routine: RT-TH-MISSILE
|
||||
Compiling routine: RT-TH-MISSILE-TIMER
|
||||
Compiling routine: RT-TH-MISSILE-PANEL
|
||||
Compiling routine: RT-TH-WIRES
|
||||
Compiling routine: RT-TH-WIRE
|
||||
Compiling routine: RT-CORRECT-WIRE?
|
||||
Compiling routine: RT-TH-WIRE-CUTTERS
|
||||
Compiling routine: RT-I-INTO-TRENCH-1
|
||||
Compiling routine: RT-I-INTO-TRENCH-2
|
||||
Compiling routine: RT-I-OUT-OF-AIR-1
|
||||
Compiling routine: RT-I-OUT-OF-AIR-2
|
||||
Compiling routine: RT-RM-BOW
|
||||
Compiling routine: RT-RM-TORPEDO-ROOM
|
||||
Compiling routine: RT-RM-ENGINE-ROOM
|
||||
Compiling routine: RT-RM-MISSILE-ROOM
|
||||
Compiling routine: RT-TH-MISSILE-ACCESS-KEY
|
||||
Compiling routine: RT-RM-ATTACK-CENTER
|
||||
Compiling routine: RT-RM-SONAR-ROOM
|
||||
Compiling routine: RT-RM-COMM-ROOM
|
||||
Compiling routine: RT-THRU-BUCKLED-DOOR
|
||||
Compiling routine: RT-LG-BUCKLED-DOOR
|
||||
Compiling routine: RT-RM-SUB-CORRIDOR
|
||||
Compiling routine: RT-RM-CAPTAINS-ROOM
|
||||
Compiling routine: RT-TH-PHOTOGRAPH
|
||||
Compiling routine: RT-TH-SAFE
|
||||
Compiling routine: RT-TH-PLASTIC-CARD
|
||||
Compiling routine: RT-TH-PLASTIQUE
|
||||
Compiling routine: RT-TH-DETONATOR
|
||||
Compiling routine: RT-I-DETONATOR
|
||||
Abstracting MONTANA to /USR/DEVELOPMENT/ABYSS/MONTANA.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/RETURN1.ZIL and compiling it.
|
||||
|
||||
Compiling routine: RT-TH-CATFISH-LOCKER
|
||||
Compiling routine: RT-TH-STEEL-BOX
|
||||
Compiling routine: RT-TH-CLUE-PAPER
|
||||
Compiling routine: RT-TH-STEEL-KEY
|
||||
Compiling routine: RT-TH-DRYER
|
||||
Compiling routine: RT-TH-PASSPORT
|
||||
Compiling routine: RT-TH-DISCHARGE
|
||||
Abstracting RETURN1 to /USR/DEVELOPMENT/ABYSS/RETURN1.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/RETURN2.ZIL and compiling it.
|
||||
|
||||
Compiling routine: RT-TH-GUN
|
||||
Compiling routine: RT-TH-FBS-SUIT
|
||||
Compiling routine: RT-TH-DIVE-LOCKER
|
||||
Compiling routine: RT-TH-ELECTRONIC-LOCK
|
||||
Compiling routine: RT-TH-DEVICE
|
||||
Compiling routine: V-$NITROGEN
|
||||
Abstracting RETURN2 to /USR/DEVELOPMENT/ABYSS/RETURN2.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/OCEAN.ZIL and compiling it.
|
||||
Compiling routine: RT-RM-UNDER-MOONPOOL
|
||||
Compiling routine: RT-RM-OCEAN-NORTH
|
||||
Compiling routine: RT-RM-OCEAN-SOUTH
|
||||
Compiling routine: RT-RM-OCEAN-WEST
|
||||
Compiling routine: RT-SWIM-TO-FROM-TRENCH
|
||||
Compiling routine: RT-RM-TROUGH-LIP
|
||||
Abstracting OCEAN to /USR/DEVELOPMENT/ABYSS/OCEAN.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/CRANE.ZIL and compiling it.
|
||||
Compiling routine: RT-I-CRANE-1
|
||||
Compiling routine: RT-I-CRANE-2
|
||||
Compiling routine: RT-I-CRANE-3
|
||||
Compiling routine: RT-I-CRANE-4
|
||||
Compiling routine: RT-I-CRANE-5
|
||||
Compiling routine: RT-I-HIPPY-RETURN
|
||||
Compiling routine: RT-I-KLAXON
|
||||
Compiling routine: RT-I-BATTERY-LEAK
|
||||
Compiling routine: RT-RM-PT-BATTERY-ROOM
|
||||
Compiling routine: RT-TH-POWERCEL
|
||||
Compiling routine: RT-TH-POOL-OF-WATER
|
||||
Compiling routine: RT-RM-PT-OBS-DECK
|
||||
Compiling routine: RT-TH-CRACK
|
||||
Compiling routine: RT-WELD-CRACK
|
||||
** Note: Atomic argument to routine assumed constant - RT-I-BATTERY-LEAK
|
||||
|
||||
Compiling routine: RT-TH-ARC-WELDER
|
||||
Compiling routine: RT-TH-WELDING-ROD
|
||||
Compiling routine: RT-TH-RED-CABLE
|
||||
Compiling routine: RT-TH-BLACK-CABLE
|
||||
Compiling routine: RT-TH-WELDER-SWITCH
|
||||
Compiling routine: RT-TH-WELDER-CORD
|
||||
Compiling routine: RT-RM-LADDER-D2
|
||||
Compiling routine: RT-TH-PT-BILGE-BUTTON
|
||||
Compiling routine: RT-TH-SB-BILGE-BUTTON
|
||||
Compiling routine: RT-I-CATFISH-TRAPPED
|
||||
Compiling routine: RT-RM-DIVE-GEAR-STORAGE
|
||||
Compiling routine: RT-TH-BUD-GEAR-LOCKER
|
||||
Compiling routine: RT-TH-BIG-LOCKER
|
||||
Compiling routine: RT-GN-LOCKER
|
||||
Compiling routine: RT-LG-DGS-DOOR
|
||||
Compiling routine: RT-RM-RECREATION-ROOM
|
||||
Compiling routine: RT-TH-BARBELL
|
||||
Compiling routine: RT-TH-WEIGHTS
|
||||
Compiling routine: RT-TH-LIFT-BENCH
|
||||
Compiling routine: RT-TH-TREADMILL
|
||||
Compiling routine: RT-TH-CYCLE
|
||||
Compiling routine: RT-RM-LADDER-B2
|
||||
Compiling routine: RT-TH-HYDRAULIC-HOSE
|
||||
Compiling routine: RT-TH-HYDRAULIC-FLUID
|
||||
Compiling routine: RT-LG-FLOOD-DOOR
|
||||
Compiling routine: RT-TH-KNIFE
|
||||
Abstracting CRANE to /USR/DEVELOPMENT/ABYSS/CRANE.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/GLOBAL.ZIL and compiling it.
|
||||
Compiling routine: RT-GLOBAL-HERE
|
||||
Compiling routine: RT-YOU
|
||||
Compiling routine: RT-TH-HUMAN-BODY
|
||||
Compiling routine: RT-GN-BODY
|
||||
Compiling routine: RT-TH-PLAYER-BODY
|
||||
Compiling routine: RT-TH-GROUND
|
||||
Compiling routine: RT-TH-SKY
|
||||
Compiling routine: RT-LG-DEEPCORE
|
||||
Compiling routine: RT-LG-TROUGH
|
||||
Compiling routine: RT-LG-MONTANA
|
||||
Abstracting GLOBAL to /USR/DEVELOPMENT/ABYSS/GLOBAL.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/UTIL.ZIL and compiling it.
|
||||
Compiling routine: V-$STEAL
|
||||
Compiling routine: V-$GOTO
|
||||
Compiling routine: V-VERSION
|
||||
Compiling routine: V-COLOR
|
||||
Compiling routine: RT-DO-COLOR
|
||||
Compiling routine: RT-PICK-COLOR
|
||||
Compiling routine: MAC-II?
|
||||
Compiling routine: Y?
|
||||
Compiling routine: RT-CHECK-ADJ
|
||||
Compiling routine: RT-UPDATE-ADJ
|
||||
Compiling routine: RT-SCORE-MSG
|
||||
Compiling routine: RT-SCORE-OBJ
|
||||
Compiling routine: V-SCORE
|
||||
Compiling routine: V-DIAGNOSE
|
||||
** Warning: Undefined variable assumed LOCAL M
|
||||
Compiling routine: RT-WORD-NUMBERS
|
||||
Compiling routine: RT-END-OF-GAME
|
||||
Compiling routine: RT-COMMA-MSG
|
||||
Compiling routine: FIND-FLAG-LG
|
||||
Compiling routine: FIND-FLAG
|
||||
Compiling routine: RT-ALREADY-MSG
|
||||
Compiling routine: RT-META-IN?
|
||||
Compiling routine: NO-NEED
|
||||
Compiling routine: RT-YOU-CANT-MSG
|
||||
Compiling routine: HAR-HAR
|
||||
Compiling routine: RT-IMPOSSIBLE-MSG
|
||||
Compiling routine: WONT-HELP
|
||||
Compiling routine: PICK-ONE
|
||||
Compiling routine: GLOBAL-IN?
|
||||
Compiling routine: RT-FIRST-YOU-MSG
|
||||
Compiling routine: RT-SEE-INSIDE?
|
||||
Compiling routine: RT-SEE-ANYTHING-IN?
|
||||
Compiling routine: RT-MOVE-ALL
|
||||
Compiling routine: RT-MOVE-ALL-BUT-WORN
|
||||
Compiling routine: RT-MOVE-ALL-WORN
|
||||
Compiling routine: RT-NOT-LIKELY-MSG
|
||||
Compiling routine: RT-NO-POINT-MSG
|
||||
Compiling routine: RT-PICK-NEXT
|
||||
Compiling routine: RT-NO-RESPONSE-MSG
|
||||
Compiling routine: RT-FOOLISH-TO-TALK?
|
||||
Compiling routine: RT-WASTE-OF-TIME-MSG
|
||||
Compiling routine: V-$P
|
||||
Compiling routine: RT-CENTER-PIC
|
||||
Compiling routine: V-$D
|
||||
Compiling routine: V-$SHOW
|
||||
Compiling routine: V-$W
|
||||
Abstracting UTIL to /USR/DEVELOPMENT/ABYSS/UTIL.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/STOPPER.ZIL and compiling it.
|
||||
|
||||
Compiling routine: RT-RM-TRI-MIX-STORAGE
|
||||
Compiling routine: RT-TH-NITROGEN-TANK
|
||||
Compiling routine: RT-TH-NIT-VALVE
|
||||
Compiling routine: RT-TH-NIT-STOPPER
|
||||
Compiling routine: RT-GET-STOPPER
|
||||
Compiling routine: RT-I-NITROGEN-LEAK
|
||||
Compiling routine: RT-TH-NIT-BASE
|
||||
Compiling routine: RT-TH-OXYGEN-TANK
|
||||
Compiling routine: RT-TH-OXY-VALVE
|
||||
Compiling routine: RT-TH-OXY-STOPPER
|
||||
Compiling routine: RT-TH-OXY-BASE
|
||||
Compiling routine: RT-TH-HELIUM-TANK
|
||||
Compiling routine: RT-TH-HEL-VALVE
|
||||
Compiling routine: RT-TH-HEL-STOPPER
|
||||
Compiling routine: RT-TH-HEL-BASE
|
||||
Compiling routine: RT-GN-TANK
|
||||
Compiling routine: RT-GN-VALVE
|
||||
Compiling routine: RT-GN-STOPPER
|
||||
Compiling routine: RT-RM-TOOL-ROOM
|
||||
Compiling routine: RT-TH-BIN
|
||||
Compiling routine: RT-TH-MAGNET
|
||||
Abstracting STOPPER to /USR/DEVELOPMENT/ABYSS/STOPPER.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/ALIEN.ZIL and compiling it.
|
||||
Compiling routine: RT-RM-TRENCH-BOTTOM
|
||||
Compiling routine: RT-TH-PURPLE-BUTTON
|
||||
Compiling routine: RT-RM-ALIEN-CHAMBER
|
||||
Compiling routine: RT-TH-FUSCHIA-BUTTON
|
||||
Abstracting ALIEN to /USR/DEVELOPMENT/ABYSS/ALIEN.
|
||||
Loading /USR/DEVELOPMENT/ABYSS/ENDGAME.ZIL and compiling it.
|
||||
|
||||
Compiling routine: RT-TH-WINDOW-BENCH
|
||||
Compiling routine: RT-TH-RED-LEVER
|
||||
Abstracting ENDGAME to /USR/DEVELOPMENT/ABYSS/ENDGAME.
|
||||
** Warning: Undefined Routine: DIR-VERB-PRSI?
|
||||
** Warning: Undefined Routine: COLLECTIVE-VERB?
|
||||
** Warning: Never defined - W?SWIM
|
||||
** Warning: Never defined - FL-TRY-TAKE
|
||||
** Warning: Never defined - FL-TRANSPARENT
|
||||
** Warning: Never defined - FL-TOUCHED
|
||||
** Warning: Never defined - FL-TAKEABLE
|
||||
** Warning: Never defined - FL-SURFACE
|
||||
** Warning: Never defined - FL-SEARCH
|
||||
** Warning: Never defined - FL-ROOMS
|
||||
** Warning: Never defined - FL-PLURAL
|
||||
** Warning: Never defined - FL-PERSON
|
||||
** Warning: Never defined - FL-OPEN
|
||||
** Warning: Never defined - FL-LIGHTED
|
||||
** Warning: Never defined - FL-NO-ARTICLE
|
||||
** Warning: Never defined - FL-INVISIBLE
|
||||
** Warning: Never defined - FL-FEMALE
|
||||
** Warning: Never defined - FL-CONTAINER
|
||||
|
||||
Warnings: 26
|
||||
** Note: OBJECT has no properties: INTQUOTE
|
||||
** Note: OBJECT has no properties: ROOMS
|
||||
Vocabulary: 626
|
||||
|
||||
Verbs: 102
|
||||
|
||||
Real globals: 121
|
||||
|
||||
CLOCK-WAIT GL-MOVES P-HER-OBJECT
|
||||
CLOCKER-RUNNING GL-N-LOOP P-HIM-OBJECT
|
||||
CURRENT-REDUCTION GL-NEW-TIME P-IT-OBJECT
|
||||
DEMO-VERSION? GL-NITROGEN-LEAK? P-LEN
|
||||
ERROR-PRIORITY GL-NITROGEN-MSG P-MULT
|
||||
ERROR-STRING GL-NITROGEN-QTY P-NOT-HERE
|
||||
GL-B-COLOR GL-NOUN-TBL P-NUMBER
|
||||
GL-BATTERY-LEAK GL-OXYGEN-MSG P-OFLAG
|
||||
GL-CAB-DOCKED? GL-OXYGEN-QTY P-OLEN
|
||||
GL-CATFISH-SPY-MSG? GL-PLAYER-TEMP P-ONE-NOUN
|
||||
GL-CLK-RUN GL-PREP-TBL P-PRSA-WORD
|
||||
GL-CO2-MSG GL-PUPPY P-PRSI
|
||||
GL-CO2-QTY GL-Q-MAX P-PRSO
|
||||
GL-COFFEY-SHOOT GL-Q-TBL P-RESPONDED
|
||||
GL-COLOR-NOTE GL-RETURN1-DONE? P-RUNNING
|
||||
GL-CORRIDOR-BLOCKED? GL-RETURN2-DONE? P-THEM-OBJECT
|
||||
GL-CRANE-DOWN? GL-SAFE-NUM P-WALK-DIR
|
||||
GL-CRANE-FALLING? GL-SCORE P-WON
|
||||
GL-DEEPCORE-TEMP GL-SCR-WID P-WORD-NUMBER
|
||||
GL-DETONATOR-TIME GL-SCRUBBERS-ON P-WORDS-AGAIN
|
||||
GL-DOOR-DIR GL-SL-HERE PARSE-SENTENCE-ACTIVATION
|
||||
|
||||
GL-F-COLOR GL-SPACE-WIDTH PARSER-RESULT
|
||||
GL-FALLING-INTO-TRENCH? GL-TEMP-MSG PMEM-STORE-POINTER
|
||||
GL-FONT-X GL-VERB-TBL PMEM-STORE-WARN
|
||||
GL-FONT-Y GL-WATER-LEVEL PMEM-STORE-WORDS
|
||||
GL-FREE-PTR GL-WATER-PUMP-ON PMEM-WORDS-USED
|
||||
GL-HEATERS-ON GL-WIRE-SEQUENCE PRSA
|
||||
GL-HELIUM-QTY GL-WIRES-CUT PRSI
|
||||
GL-INPUT-PREP1 HERE PRSI-NP
|
||||
GL-INPUT-PREP2 IDEBUG PRSO
|
||||
GL-INPUT-STATE LAST-PSEUDO-LOC PRSO-NP
|
||||
GL-INPUT-TIMEOUT LIT PRSQ
|
||||
GL-INPUT-VERB NOW-PRSI PRSS
|
||||
GL-INPUT-WINNER OBJ-SWAP QCONTEXT
|
||||
GL-ITEM-NUM OHERE SEARCH-FLAGS
|
||||
GL-KLAXON-ON OPRSO SPLITS
|
||||
GL-LIFT-OBJ OTLEXV TLEXV
|
||||
GL-LOC-TRAIL P-CAN-UNDO VERBOSITY
|
||||
GL-MENU-NUM P-CONT WINNER
|
||||
GL-MOUSE-X P-DBUG
|
||||
GL-MOUSE-Y P-DIRECTION
|
||||
|
||||
Objects: 203
|
||||
|
||||
CH-ALIEN ROOMS
|
||||
CH-CATFISH TH-ALIEN-SHIP
|
||||
CH-COFFEY TH-ARC-WELDER
|
||||
CH-HIPPY TH-BARBELL
|
||||
CH-LINDSEY TH-BIG-LOCKER
|
||||
CH-ONE-NIGHT TH-BIN
|
||||
CH-PLAYER TH-BLACK-CABLE
|
||||
CH-SEALS TH-BLUE-WIRE
|
||||
GENERIC-OBJECTS TH-BUD-GEAR-LOCKER
|
||||
GLOBAL-HERE TH-CAB-HOOKAH
|
||||
GLOBAL-OBJECTS TH-CATFISH-LOCKER
|
||||
HER TH-CLUE-PAPER
|
||||
HIM TH-CO2-CANNISTER
|
||||
INTADJ TH-COMMAND-CHAIR
|
||||
INTDIR TH-COMPRESSOR
|
||||
INTNUM TH-CRACK
|
||||
INTPP TH-CYCLE
|
||||
INTQUOTE TH-DESCRAMBLER-CONTROL-BOX
|
||||
IT TH-DETONATOR
|
||||
LG-BUCKLED-DOOR TH-DEVICE
|
||||
LG-CHAMBER-DOOR TH-DISCHARGE
|
||||
LG-CHAMBER-HATCH TH-DIVE-LOCKER
|
||||
LG-DEEPCORE TH-DRY-SUIT
|
||||
LG-DGS-DOOR TH-DRYER
|
||||
LG-FLOOD-DOOR TH-ELEC-SHOP-DRAWER
|
||||
LG-MIDSHIP-HATCH TH-ELECTRONIC-LOCK
|
||||
LG-MONTANA TH-FACEPLATE
|
||||
LG-OUTLET TH-FBS-SUIT
|
||||
LG-TROUGH TH-FIRE
|
||||
LG-WALL TH-FLATBED
|
||||
LOCAL-GLOBALS TH-FUSCHIA-BUTTON
|
||||
NOT-HERE-OBJECT TH-GAME-BAG
|
||||
PSEUDO-OBJECT TH-GREEN-WIRE
|
||||
RM-ALIEN-CHAMBER TH-GROUND
|
||||
RM-ATTACK-CENTER TH-GUN
|
||||
RM-BOW TH-HANDS
|
||||
RM-CAB-THREE TH-HEAD
|
||||
RM-CAPTAINS-ROOM TH-HEL-STOPPER
|
||||
RM-COMM-ROOM TH-HEL-VALVE
|
||||
RM-COMMAND-MODULE TH-HELIUM-TANK
|
||||
RM-COMPRESSION-CHAMBER TH-HELMET
|
||||
RM-COMPRESSOR-ROOM TH-HOOK-1
|
||||
RM-COMPUTER-CENTER TH-HOOK-2
|
||||
RM-CORRIDOR TH-HUMAN-BODY
|
||||
RM-DIVE-GEAR-STORAGE TH-HYDRAULIC-FLUID
|
||||
RM-DRILL-ROOM TH-HYDRAULIC-HOSE
|
||||
RM-ELECTRONICS-SHOP TH-KNIFE
|
||||
RM-ENGINE-ROOM TH-LIFT-BAG
|
||||
RM-FRESH-WATER-STORAGE TH-LIFT-BENCH
|
||||
RM-GALLEY TH-MAGNET
|
||||
RM-GAS-MIX-ROOM TH-MISSILE
|
||||
RM-INFIRMARY TH-MISSILE-ACCESS-KEY
|
||||
RM-LAB TH-MISSILE-PANEL
|
||||
RM-LADDER-A1 TH-MISSILE-TIMER
|
||||
RM-LADDER-A2 TH-MONITORS
|
||||
RM-LADDER-A3 TH-MOON-POOL
|
||||
RM-LADDER-B1 TH-NIT-STOPPER
|
||||
RM-LADDER-B2 TH-NIT-VALVE
|
||||
RM-LADDER-B3 TH-NITROGEN-TANK
|
||||
RM-LADDER-C1 TH-NOZZLE
|
||||
RM-LADDER-C2 TH-ORANGE-WIRE
|
||||
RM-LADDER-C3 TH-OXY-STOPPER
|
||||
RM-LADDER-D1 TH-OXY-VALVE
|
||||
RM-LADDER-D2 TH-OXYGEN-CYLINDER
|
||||
RM-LADDER-D3 TH-OXYGEN-TANK
|
||||
RM-LAUNDRY TH-PANEL
|
||||
RM-LOUNGE TH-PASSPORT
|
||||
RM-MESS-HALL TH-PHOTOGRAPH
|
||||
RM-MIDSHIP-HATCH TH-PLASTIC-CARD
|
||||
RM-MISSILE-HATCH TH-PLASTIQUE
|
||||
RM-MISSILE-ROOM TH-PLAYER-BODY
|
||||
RM-MOTEL-QUICK TH-POOL-OF-WATER
|
||||
RM-OCEAN-NORTH TH-POWERCEL
|
||||
RM-OCEAN-SOUTH TH-PT-BILGE-BUTTON
|
||||
RM-OCEAN-WEST TH-PURPLE-BUTTON
|
||||
RM-PANTRY TH-RED-BUTTON
|
||||
RM-PERSONAL-STORAGE-1 TH-RED-CABLE
|
||||
RM-PERSONAL-STORAGE-2 TH-RED-LEVER
|
||||
RM-PT-BATTERY-ROOM TH-RED-WIRE
|
||||
RM-PT-HEAD TH-S-BILGE-BUTT
|
||||
RM-PT-LIFE-SUPPORT TH-SAFE
|
||||
RM-PT-OBS-DECK TH-SB-BILGE-BUTTON
|
||||
RM-PUMP-ROOM TH-SKY
|
||||
RM-RECREATION-ROOM TH-STEEL-BOX
|
||||
RM-SB-BATTERY-ROOM TH-STEEL-KEY
|
||||
RM-SB-HEAD TH-THERMOMETER
|
||||
RM-SB-LIFE-SUPPORT TH-TIME
|
||||
RM-SB-OBS-DECK TH-TREADMILL
|
||||
RM-SONAR-ROOM TH-UFO
|
||||
RM-SUB-BAY TH-WATER-HOSE
|
||||
RM-SUB-CORRIDOR TH-WEIGHTS
|
||||
RM-SWAMP TH-WELDER-CORD
|
||||
RM-TAPE-LIBRARY TH-WELDER-SWITCH
|
||||
RM-TOOL-PUSHER-OFFICE TH-WELDING-ROD
|
||||
RM-TOOL-ROOM TH-WHITE-WIRE
|
||||
RM-TORPEDO-ROOM TH-WINDOW-BENCH
|
||||
RM-TRENCH-BOTTOM TH-WIRE-CUTTERS
|
||||
RM-TRI-MIX-STORAGE TH-WIRES
|
||||
RM-TROUGH-LIP TH-YELLOW-WIRE
|
||||
RM-UNDER-MOONPOOL THEM
|
||||
RM-WALDORF YOU
|
||||
RM-ZOOTOWN
|
||||
|
||||
Properties: 25
|
||||
|
||||
P?ACTION P?CONTFCN P?GLOBAL P?OWNER P?STARBOARD
|
||||
P?ADJACENT P?DOWN P?IN P?PORT P?SYNONYM
|
||||
P?ADJECTIVE P?EAST P?MENU P?SCORE P?THINGS
|
||||
P?AFT P?FORE P?NORTH P?SIZE P?UP
|
||||
P?CAPACITY P?GENERIC P?OUT P?SOUTH P?WEST
|
||||
|
||||
Flags: 48
|
||||
|
||||
FL-ALIVE FL-CONTAINER FL-KNIFE FL-PERSON FL-TRANSPARENT
|
||||
FL-ASLEEP FL-DOOR FL-LAMP FL-PLURAL FL-TRY-TAKE
|
||||
FL-AUTO-ENTER FL-FEMALE FL-LIGHTED FL-READABLE FL-VEHICLE
|
||||
FL-AUTO-OPEN FL-HAS-DESCFCN FL-LOCKED FL-ROOMS FL-VOWEL
|
||||
FL-BODY-PART FL-HAS-LDESC FL-NO-ALL FL-SEARCH FL-WATER
|
||||
FL-BROKEN FL-HAS-SDESC FL-NO-ARTICLE FL-SEEN FL-WEAPON
|
||||
FL-BURNABLE FL-INDOORS FL-NO-DESC FL-SURFACE FL-WORN
|
||||
FL-BY-HAND FL-INSIDE FL-ON FL-TAKEABLE FL-YOUR
|
||||
FL-CLOTHING FL-INVISIBLE FL-OPEN FL-TOOL
|
||||
FL-COLLECTIVE FL-KEY FL-OPENABLE FL-TOUCHED
|
2797
abyss.seginfo
Normal file
2797
abyss.seginfo
Normal file
File diff suppressed because it is too large
Load diff
BIN
abyss.syms
Normal file
BIN
abyss.syms
Normal file
Binary file not shown.
66
abyss.zap
Normal file
66
abyss.zap
Normal file
|
@ -0,0 +1,66 @@
|
|||
.NEW 6
|
||||
; Low core locations
|
||||
%ZVERSION:: .BYTE 6
|
||||
.BYTE FLAGS
|
||||
%ZORKID:: ZORKID
|
||||
%ENDLOD:: ENDLOD
|
||||
%START:: GO
|
||||
%VOCAB:: VOCAB
|
||||
%OBJECT:: OBJECT
|
||||
%GLOBAL:: GLOBAL
|
||||
%PURBOT:: IMPURE
|
||||
%FLAGS:: .WORD 112
|
||||
%SERIAL:: .WORD 0
|
||||
%SERI1:: .WORD 0
|
||||
%SERI2:: .WORD 0
|
||||
%FWORDS:: WORDS
|
||||
%PLENTH:: .WORD 0
|
||||
%PCHKSM:: .WORD 0
|
||||
%INTWRD:: .WORD 0
|
||||
%SCRWRD:: .WORD 0
|
||||
%HWRD:: .WORD 0
|
||||
%VWRD:: .WORD 0
|
||||
%FWRD:: .WORD 0
|
||||
%FOFF:: FOFF
|
||||
%SOFF:: SOFF
|
||||
%CLRWRD:: .WORD 0
|
||||
%TCHAR:: TCHARS
|
||||
%TWID:: .WORD 0
|
||||
%CRFUNC:: .WORD 0
|
||||
%CHRSET:: .WORD 0
|
||||
%EXTAB:: LOWCORE-TABLE
|
||||
.WORD 0
|
||||
.WORD 0
|
||||
.WORD 0
|
||||
.WORD 0
|
||||
.INSERT "ABYSSFREQ" ;Frequent word table
|
||||
.INSERT "ABYSSDAT" ; Data file
|
||||
.INSERT "ABYSSPUR"
|
||||
.INSERT "PSTACK"
|
||||
.INSERT "PMEM"
|
||||
.INSERT "PARSER"
|
||||
.INSERT "FIND"
|
||||
.INSERT "REDS"
|
||||
.INSERT "BREDS"
|
||||
.INSERT "TOP"
|
||||
.INSERT "PRARE"
|
||||
.INSERT "MISC"
|
||||
.INSERT "GAS-MIX"
|
||||
.INSERT "VERBS"
|
||||
.INSERT "BE"
|
||||
.INSERT "SUB-BAY"
|
||||
.INSERT "COMMAND"
|
||||
.INSERT "MONTANA"
|
||||
.INSERT "RETURN1"
|
||||
.INSERT "RETURN2"
|
||||
.INSERT "OCEAN"
|
||||
.INSERT "CRANE"
|
||||
.INSERT "GLOBAL"
|
||||
.INSERT "UTIL"
|
||||
.INSERT "STOPPER"
|
||||
.INSERT "ALIEN"
|
||||
.INSERT "ENDGAME"
|
||||
|
||||
.INSERT "ABYSSSTR"
|
||||
|
||||
.END
|
83
abyss.zil
Normal file
83
abyss.zil
Normal file
|
@ -0,0 +1,83 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : ABYSS.ZIL"
|
||||
; "auth : $Author: RAB $"
|
||||
; "date : $Date: 16 Mar 1989 17:36:40 $"
|
||||
; "rev : $Revision: 1.9 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Compile/Load file"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
<SETG ZDEBUGGING? T>
|
||||
<DEFINE DEBUG-CODE ('X "OPTIONAL" ('Y T))
|
||||
<COND
|
||||
(,ZDEBUGGING?
|
||||
.X
|
||||
)
|
||||
(ELSE
|
||||
.Y
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<SETG NEW-PARSER? T>
|
||||
<FREQUENT-WORDS?>
|
||||
<LONG-WORDS?>
|
||||
<ZIP-OPTIONS UNDO COLOR MOUSE>
|
||||
<ORDER-OBJECTS? ROOMS-FIRST>
|
||||
<NEVER-ZAP-TO-SOURCE-DIRECTORY?>
|
||||
|
||||
<VERSION YZIP>
|
||||
|
||||
<IFFLAG
|
||||
(IN-ZILCH
|
||||
<PRINC "Compiling">
|
||||
)
|
||||
(T
|
||||
<PRINC "Loading">
|
||||
)
|
||||
>
|
||||
|
||||
<PRINC ": Abyss by Challenge, Inc.
|
||||
">
|
||||
|
||||
ON!-INITIAL "for DEBUGR"
|
||||
OFF!-INITIAL
|
||||
ENABLE!-INITIAL
|
||||
DISABLE!-INITIAL
|
||||
|
||||
<SET REDEFINE T>
|
||||
|
||||
<COMPILATION-FLAG P-BE-VERB T>
|
||||
|
||||
;<SETG L-SEARCH-PATH (["~PARSER" ""] !,L-SEARCH-PATH)>
|
||||
|
||||
<INSERT-FILE "DEFS">
|
||||
|
||||
<XFLOAD ;"~PARSER/" "PARSER.REST">
|
||||
|
||||
<INSERT-FILE "MACROS">
|
||||
<INSERT-FILE "MISC">
|
||||
<INSERT-FILE "GAS-MIX">
|
||||
<INSERT-FILE "SYNTAX">
|
||||
<INSERT-FILE "VERBS">
|
||||
<IF-P-BE-VERB!- <INSERT-FILE "BE">>
|
||||
<INSERT-FILE "SUB-BAY">
|
||||
<INSERT-FILE "COMMAND">
|
||||
<INSERT-FILE "MONTANA">
|
||||
<INSERT-FILE "RETURN1">
|
||||
<INSERT-FILE "RETURN2">
|
||||
<INSERT-FILE "OCEAN">
|
||||
<INSERT-FILE "CRANE">
|
||||
<INSERT-FILE "GLOBAL">
|
||||
<INSERT-FILE "UTIL">
|
||||
<INSERT-FILE "STOPPER">
|
||||
<INSERT-FILE "ALIEN">
|
||||
<INSERT-FILE "ENDGAME">
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
13790
abyssdat.zap
Normal file
13790
abyssdat.zap
Normal file
File diff suppressed because it is too large
Load diff
198
abyssfreq.xzap
Normal file
198
abyssfreq.xzap
Normal file
|
@ -0,0 +1,198 @@
|
|||
.FSTR FSTR?1,"the " ;1636 819 819
|
||||
.FSTR FSTR?2,"You " ;615 206 206
|
||||
.FSTR FSTR?3,"and " ;502 252 252
|
||||
.FSTR FSTR?4,". " ;448 449 449
|
||||
.FSTR FSTR?5,", " ;390 391 391
|
||||
.FSTR FSTR?6,"you " ;384 193 193
|
||||
.FSTR FSTR?7,"The " ;352 177 177
|
||||
.FSTR FSTR?8,"ladderwell " ;325 26 26
|
||||
.FSTR FSTR?9,"that " ;294 99 99
|
||||
.FSTR FSTR?10,"to " ;290 291 291
|
||||
.FSTR FSTR?11,"starboard " ;279 32 32
|
||||
.FSTR FSTR?12,"your " ;228 77 77
|
||||
.FSTR FSTR?13,"Deepcore" ;224 33 45
|
||||
.FSTR FSTR?14,"are " ;224 113 113
|
||||
.FSTR FSTR?15,"hatch " ;220 45 45
|
||||
.FSTR FSTR?16,"of " ;214 215 215
|
||||
.FSTR FSTR?17,"is " ;210 211 211
|
||||
.FSTR FSTR?18,"into " ;207 70 70
|
||||
.FSTR FSTR?19,"bulkhead" ;204 35 35
|
||||
.FSTR FSTR?20,"can't " ;170 35 35
|
||||
.FSTR FSTR?21,"room" ;160 81 81
|
||||
.FSTR FSTR?22,"with " ;156 53 53
|
||||
.FSTR FSTR?23,"RED" ;148 38 38
|
||||
.FSTR FSTR?24,"enter" ;147 50 50
|
||||
.FSTR FSTR?25,"in " ;140 141 141
|
||||
.FSTR FSTR?26,"through " ;138 24 24
|
||||
.FSTR FSTR?27,"Suddenly" ;133 20 20
|
||||
.FSTR FSTR?28,"compression " ;130 14 14
|
||||
.FSTR FSTR?29,"from " ;129 44 44
|
||||
.FSTR FSTR?30,"currently " ;128 17 17
|
||||
.FSTR FSTR?31,"Coffey " ;126 22 22
|
||||
.FSTR FSTR?32,"Catfish " ;119 18 18
|
||||
.FSTR FSTR?33,"cylinder" ;114 20 20
|
||||
.FSTR FSTR?34,"Montana" ;108 19 19
|
||||
.FSTR FSTR?35,"forward " ;108 19 19
|
||||
.FSTR FSTR?36,"has " ;106 54 54
|
||||
.FSTR FSTR?37,"floor" ;105 36 36
|
||||
.FSTR FSTR?38,"water " ;104 27 27
|
||||
.FSTR FSTR?39,"chamber" ;100 21 21
|
||||
.FSTR FSTR?40,"handling" ;96 17 17
|
||||
.FSTR FSTR?41,"default " ;96 17 17
|
||||
.FSTR FSTR?42,"Your " ;96 25 25
|
||||
.FSTR FSTR?43,"have " ;93 32 32
|
||||
.FSTR FSTR?44,"disappear" ;91 14 14
|
||||
.FSTR FSTR?45,"out " ;86 44 44
|
||||
.FSTR FSTR?46,"Lindsey " ;84 13 13
|
||||
.FSTR FSTR?47,"level " ;84 22 22
|
||||
.FSTR FSTR?48,"button" ;84 22 22
|
||||
.FSTR FSTR?49,"only " ;84 29 29
|
||||
.FSTR FSTR?50,"over " ;81 28 28
|
||||
.FSTR FSTR?51,"surface" ;80 17 17
|
||||
.FSTR FSTR?52,"look" ;80 41 41
|
||||
.FSTR FSTR?53,"MoonPool" ;80 11 11
|
||||
.FSTR FSTR?54,"open" ;78 40 40
|
||||
.FSTR FSTR?55,"but " ;76 39 39
|
||||
.FSTR FSTR?56,"There " ;76 20 20
|
||||
.FSTR FSTR?57,"locker " ;75 16 16
|
||||
.FSTR FSTR?58,"around " ;75 16 16
|
||||
.FSTR FSTR?59,"don't " ;75 16 16
|
||||
.FSTR FSTR?60,"begin" ;72 25 25
|
||||
.FSTR FSTR?61,"here" ;72 37 37
|
||||
.FSTR FSTR?62,"back " ;72 25 25
|
||||
.FSTR FSTR?63,"battery " ;72 13 13
|
||||
.FSTR FSTR?64,"hear " ;69 24 24
|
||||
.FSTR FSTR?65,"wall " ;66 23 23
|
||||
.FSTR FSTR?66,"close" ;66 23 23
|
||||
.FSTR FSTR?67,"control" ;65 14 14
|
||||
.FSTR FSTR?68,"fore " ;64 17 17
|
||||
.FSTR FSTR?69,"lead" ;64 33 33
|
||||
.FSTR FSTR?70,"submersible" ;63 8 8
|
||||
.FSTR FSTR?71,"door " ;63 22 22
|
||||
.FSTR FSTR?72,"for " ;62 32 32
|
||||
.FSTR FSTR?73,"see" ;62 63 63
|
||||
.FSTR FSTR?74,"still " ;60 16 16
|
||||
.FSTR FSTR?75,"yourself" ;60 11 11
|
||||
.FSTR FSTR?76,"then " ;60 21 21
|
||||
.FSTR FSTR?77,"storage" ;60 13 13
|
||||
.FSTR FSTR?78,"start" ;60 21 21
|
||||
.FSTR FSTR?79,"missile " ;60 11 11
|
||||
.FSTR FSTR?80,"corridor" ;60 11 11
|
||||
.FSTR FSTR?81,"which " ;60 16 16
|
||||
.FSTR FSTR?82,"aft " ;58 30 30
|
||||
.FSTR FSTR?83,"port " ;57 20 20
|
||||
.FSTR FSTR?84,"feel " ;57 20 20
|
||||
.FSTR FSTR?85,"down " ;57 20 20
|
||||
.FSTR FSTR?86,"it " ;57 58 58
|
||||
.FSTR FSTR?87,"nitrogen " ;56 9 9
|
||||
.FSTR FSTR?88,"compressor" ;56 8 8
|
||||
.FSTR FSTR?89,"Deepcore's " ;55 12 12
|
||||
.FSTR FSTR?90,"stopper" ;55 12 12
|
||||
.FSTR FSTR?91,"nothing" ;55 12 12
|
||||
.FSTR FSTR?92,"Th" ;55 56 253
|
||||
.FSTR FSTR?93,"Hippy " ;55 12 12
|
||||
.FSTR FSTR?94,"I " ;55 56 56
|
||||
.FSTR FSTR?95,"ceiling" ;55 12 12
|
||||
.FSTR FSTR?96,"observation" ;54 7 7
|
||||
|
||||
|
||||
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
|
888
abysspur.zap
Normal file
888
abysspur.zap
Normal file
|
@ -0,0 +1,888 @@
|
|||
|
||||
|
||||
; PURE TABLES ARE DEFINED HERE
|
||||
|
||||
PURTBL::
|
||||
|
||||
|
||||
; LONG WORD TABLE
|
||||
|
||||
LONG-WORD-TABLE:: .TABLE
|
||||
38
|
||||
W?THERMOMETER
|
||||
STR?183
|
||||
W?SUPERBRIEF
|
||||
STR?184
|
||||
W?STATIONARY
|
||||
STR?185
|
||||
W?RECREATION
|
||||
STR?186
|
||||
W?PHOTOGRAPH
|
||||
STR?187
|
||||
W?OBSERVATION
|
||||
STR?188
|
||||
W?LADDERWELL
|
||||
STR?189
|
||||
W?LABORATORY
|
||||
STR?190
|
||||
W?EXTINGUISH
|
||||
STR?191
|
||||
W?END.OF.INPUT
|
||||
STR?192
|
||||
W?ELECTRONIC
|
||||
STR?193
|
||||
W?ELECTRICAL
|
||||
STR?194
|
||||
W?DOWNSTAIRS
|
||||
STR?195
|
||||
W?DESCRAMBLER
|
||||
STR?196
|
||||
W?COMPRESSOR
|
||||
STR?197
|
||||
W?COMPRESSION
|
||||
STR?198
|
||||
W?COMMUNICATIONS
|
||||
STR?199
|
||||
W?COCKSUCKER
|
||||
STR?200
|
||||
W?ARC-WELDER
|
||||
STR?201
|
||||
|
||||
.ENDT
|
||||
PT?105::
|
||||
NP-QUANT-TBL:: .TABLE
|
||||
NP-QUANT-ALL
|
||||
W?ALL
|
||||
NP-QUANT-BOTH
|
||||
W?BOTH
|
||||
NP-QUANT-A
|
||||
W?ONE
|
||||
NP-QUANT-A
|
||||
W?EITHER
|
||||
NP-QUANT-A
|
||||
W?ANY
|
||||
.ENDT
|
||||
|
||||
PT?107::
|
||||
K-PICTURE-TBL:: .TABLE
|
||||
.BYTE 64
|
||||
.BYTE 4
|
||||
.BYTE 7
|
||||
.BYTE 10
|
||||
.BYTE 11
|
||||
.BYTE 12
|
||||
.BYTE 13
|
||||
.BYTE 14
|
||||
.BYTE 15
|
||||
.BYTE 16
|
||||
.BYTE 18
|
||||
.BYTE 20
|
||||
.BYTE 21
|
||||
.BYTE 22
|
||||
.BYTE 23
|
||||
.BYTE 24
|
||||
.BYTE 26
|
||||
.BYTE 27
|
||||
.BYTE 28
|
||||
.BYTE 29
|
||||
.BYTE 30
|
||||
.BYTE 31
|
||||
.BYTE 32
|
||||
.BYTE 33
|
||||
.BYTE 34
|
||||
.BYTE 36
|
||||
.BYTE 37
|
||||
.BYTE 38
|
||||
.BYTE 39
|
||||
.BYTE 40
|
||||
.BYTE 42
|
||||
.BYTE 43
|
||||
.BYTE 44
|
||||
.BYTE 46
|
||||
.BYTE 47
|
||||
.BYTE 48
|
||||
.BYTE 49
|
||||
.BYTE 50
|
||||
.BYTE 52
|
||||
.BYTE 55
|
||||
.BYTE 56
|
||||
.BYTE 58
|
||||
.BYTE 60
|
||||
.BYTE 61
|
||||
.BYTE 62
|
||||
.BYTE 63
|
||||
.BYTE 65
|
||||
.BYTE 66
|
||||
.BYTE 67
|
||||
.BYTE 69
|
||||
.BYTE 70
|
||||
.BYTE 71
|
||||
.BYTE 72
|
||||
.BYTE 73
|
||||
.BYTE 74
|
||||
.BYTE 75
|
||||
.BYTE 76
|
||||
.BYTE 77
|
||||
.BYTE 78
|
||||
.BYTE 81
|
||||
.BYTE 86
|
||||
.BYTE 89
|
||||
.BYTE 101
|
||||
.BYTE 102
|
||||
.BYTE 157
|
||||
.ENDT
|
||||
|
||||
PT?207:: .TABLE
|
||||
1
|
||||
W?FORE
|
||||
.ENDT
|
||||
|
||||
PT?307:: .TABLE
|
||||
1
|
||||
W?AFT
|
||||
.ENDT
|
||||
|
||||
PT?407:: .TABLE
|
||||
1
|
||||
W?PORT
|
||||
.ENDT
|
||||
|
||||
PT?507:: .TABLE
|
||||
1
|
||||
W?STARBOARD
|
||||
.ENDT
|
||||
|
||||
PT?607:: .TABLE
|
||||
1
|
||||
W?NORTH
|
||||
.ENDT
|
||||
|
||||
PT?707:: .TABLE
|
||||
1
|
||||
W?SOUTH
|
||||
.ENDT
|
||||
|
||||
PT?807:: .TABLE
|
||||
1
|
||||
W?EAST
|
||||
.ENDT
|
||||
|
||||
PT?907:: .TABLE
|
||||
1
|
||||
W?WEST
|
||||
.ENDT
|
||||
|
||||
PT?1007:: .TABLE
|
||||
1
|
||||
W?UP
|
||||
.ENDT
|
||||
|
||||
PT?1107:: .TABLE
|
||||
1
|
||||
W?DOWN
|
||||
.ENDT
|
||||
|
||||
PT?1207:: .TABLE
|
||||
1
|
||||
W?IN
|
||||
.ENDT
|
||||
|
||||
PT?1307:: .TABLE
|
||||
1
|
||||
W?OUT
|
||||
.ENDT
|
||||
|
||||
PT?1407::
|
||||
PT?6707:: .TABLE
|
||||
1
|
||||
W?TAKE
|
||||
.ENDT
|
||||
|
||||
PT?1507::
|
||||
PT?3007:: .TABLE
|
||||
1
|
||||
W?DROP
|
||||
.ENDT
|
||||
|
||||
PT?1607::
|
||||
PT?5307:: .TABLE
|
||||
1
|
||||
W?PUT
|
||||
.ENDT
|
||||
|
||||
PT?1707::
|
||||
PT?5107:: .TABLE
|
||||
1
|
||||
W?OPEN
|
||||
.ENDT
|
||||
|
||||
PT?1807::
|
||||
PT?2907:: .TABLE
|
||||
1
|
||||
W?CLOSE
|
||||
.ENDT
|
||||
|
||||
PT?1907::
|
||||
PT?3307:: .TABLE
|
||||
1
|
||||
W?EXAMINE
|
||||
.ENDT
|
||||
|
||||
PT?2007::
|
||||
PT?4607:: .TABLE
|
||||
1
|
||||
W?LOOK
|
||||
.ENDT
|
||||
|
||||
PT?2107::
|
||||
PT?4107:: .TABLE
|
||||
1
|
||||
W?INVENTORY
|
||||
.ENDT
|
||||
|
||||
PT?2207:: .TABLE
|
||||
1
|
||||
W?QUIT
|
||||
.ENDT
|
||||
|
||||
PT?2307:: .TABLE
|
||||
1
|
||||
W?RESTORE
|
||||
.ENDT
|
||||
|
||||
PT?2407:: .TABLE
|
||||
1
|
||||
W?RESTART
|
||||
.ENDT
|
||||
|
||||
PT?2507:: .TABLE
|
||||
1
|
||||
W?SAVE
|
||||
.ENDT
|
||||
|
||||
PT?2607:: .TABLE
|
||||
1
|
||||
W?UNDO
|
||||
.ENDT
|
||||
|
||||
PT?2707:: .TABLE
|
||||
1
|
||||
W?ASK
|
||||
.ENDT
|
||||
|
||||
PT?2807:: .TABLE
|
||||
1
|
||||
W?ATTACH
|
||||
.ENDT
|
||||
|
||||
PT?3107:: .TABLE
|
||||
1
|
||||
W?EMPTY
|
||||
.ENDT
|
||||
|
||||
PT?3207:: .TABLE
|
||||
1
|
||||
W?ENTER
|
||||
.ENDT
|
||||
|
||||
PT?3407:: .TABLE
|
||||
1
|
||||
W?EXIT
|
||||
.ENDT
|
||||
|
||||
PT?3507:: .TABLE
|
||||
1
|
||||
W?FOLLOW
|
||||
.ENDT
|
||||
|
||||
PT?3607:: .TABLE
|
||||
1
|
||||
W?GET
|
||||
.ENDT
|
||||
|
||||
PT?3707:: .TABLE
|
||||
2
|
||||
W?GET
|
||||
W?IN
|
||||
.ENDT
|
||||
|
||||
PT?3807:: .TABLE
|
||||
2
|
||||
W?GET
|
||||
W?OFF
|
||||
.ENDT
|
||||
|
||||
PT?3907:: .TABLE
|
||||
3
|
||||
W?GET
|
||||
W?OUT
|
||||
W?OF
|
||||
.ENDT
|
||||
|
||||
PT?4007:: .TABLE
|
||||
1
|
||||
W?HOLD
|
||||
.ENDT
|
||||
|
||||
PT?4207:: .TABLE
|
||||
2
|
||||
W?JUMP
|
||||
W?IN
|
||||
.ENDT
|
||||
|
||||
PT?4307:: .TABLE
|
||||
3
|
||||
W?JUMP
|
||||
W?OUT
|
||||
W?OF
|
||||
.ENDT
|
||||
|
||||
PT?4407:: .TABLE
|
||||
1
|
||||
W?LISTEN
|
||||
.ENDT
|
||||
|
||||
PT?4507:: .TABLE
|
||||
2
|
||||
W?LISTEN
|
||||
W?TO
|
||||
.ENDT
|
||||
|
||||
PT?4707:: .TABLE
|
||||
2
|
||||
W?LOOK
|
||||
W?AT
|
||||
.ENDT
|
||||
|
||||
PT?4807:: .TABLE
|
||||
2
|
||||
W?LOOK
|
||||
W?IN
|
||||
.ENDT
|
||||
|
||||
PT?4907:: .TABLE
|
||||
2
|
||||
W?LOOK
|
||||
W?ON
|
||||
.ENDT
|
||||
|
||||
PT?5007:: .TABLE
|
||||
2
|
||||
W?LOOK
|
||||
W?OVER
|
||||
.ENDT
|
||||
|
||||
PT?5207:: .TABLE
|
||||
2
|
||||
W?OPEN
|
||||
W?UP
|
||||
.ENDT
|
||||
|
||||
PT?5407:: .TABLE
|
||||
2
|
||||
W?PUT
|
||||
W?AWAY
|
||||
.ENDT
|
||||
|
||||
PT?5507:: .TABLE
|
||||
2
|
||||
W?PUT
|
||||
W?DOWN
|
||||
.ENDT
|
||||
|
||||
PT?5607:: .TABLE
|
||||
2
|
||||
W?PUT
|
||||
W?ON
|
||||
.ENDT
|
||||
|
||||
PT?5707:: .TABLE
|
||||
1
|
||||
W?REMOVE
|
||||
.ENDT
|
||||
|
||||
PT?5807:: .TABLE
|
||||
1
|
||||
W?SET
|
||||
.ENDT
|
||||
|
||||
PT?5907:: .TABLE
|
||||
2
|
||||
W?SIT
|
||||
W?AT
|
||||
.ENDT
|
||||
|
||||
PT?6007:: .TABLE
|
||||
2
|
||||
W?SIT
|
||||
W?DOWN
|
||||
.ENDT
|
||||
|
||||
PT?6107:: .TABLE
|
||||
2
|
||||
W?SIT
|
||||
W?IN
|
||||
.ENDT
|
||||
|
||||
PT?6207:: .TABLE
|
||||
2
|
||||
W?SIT
|
||||
W?ON
|
||||
.ENDT
|
||||
|
||||
PT?6307:: .TABLE
|
||||
1
|
||||
W?SWIM
|
||||
.ENDT
|
||||
|
||||
PT?6407:: .TABLE
|
||||
2
|
||||
W?SWIM
|
||||
W?TO
|
||||
.ENDT
|
||||
|
||||
PT?6507:: .TABLE
|
||||
2
|
||||
W?SWITCH
|
||||
W?OFF
|
||||
.ENDT
|
||||
|
||||
PT?6607:: .TABLE
|
||||
2
|
||||
W?SWITCH
|
||||
W?ON
|
||||
.ENDT
|
||||
|
||||
PT?6807:: .TABLE
|
||||
2
|
||||
W?TAKE
|
||||
W?OFF
|
||||
.ENDT
|
||||
|
||||
PT?6907:: .TABLE
|
||||
2
|
||||
W?TAKE
|
||||
W?OUT
|
||||
.ENDT
|
||||
|
||||
PT?7007:: .TABLE
|
||||
2
|
||||
W?TAKE
|
||||
W?UP
|
||||
.ENDT
|
||||
|
||||
PT?7107:: .TABLE
|
||||
1
|
||||
W?TELL
|
||||
.ENDT
|
||||
|
||||
PT?7207:: .TABLE
|
||||
1
|
||||
W?THANK
|
||||
.ENDT
|
||||
|
||||
PT?7307:: .TABLE
|
||||
1
|
||||
W?THROW
|
||||
.ENDT
|
||||
|
||||
PT?7407:: .TABLE
|
||||
2
|
||||
W?THROW
|
||||
W?AWAY
|
||||
.ENDT
|
||||
|
||||
PT?7507:: .TABLE
|
||||
1
|
||||
W?TURN
|
||||
.ENDT
|
||||
|
||||
PT?7607:: .TABLE
|
||||
2
|
||||
W?TURN
|
||||
W?OFF
|
||||
.ENDT
|
||||
|
||||
PT?7707:: .TABLE
|
||||
2
|
||||
W?TURN
|
||||
W?ON
|
||||
.ENDT
|
||||
|
||||
PT?7807:: .TABLE
|
||||
1
|
||||
W?WAIT
|
||||
.ENDT
|
||||
|
||||
PT?7907:: .TABLE
|
||||
2
|
||||
W?WAIT
|
||||
W?FOR
|
||||
.ENDT
|
||||
|
||||
PT?8007:: .TABLE
|
||||
1
|
||||
W?WALK
|
||||
.ENDT
|
||||
|
||||
PT?8107:: .TABLE
|
||||
2
|
||||
W?WALK
|
||||
W?TO
|
||||
.ENDT
|
||||
|
||||
PT?8207:: .TABLE
|
||||
1
|
||||
W?WEAR
|
||||
.ENDT
|
||||
|
||||
PT?8307::
|
||||
K-DEFAULT-VERB-TBL::
|
||||
T?GL-VERB-TBL:: .TABLE
|
||||
84
|
||||
PT?207
|
||||
PT?307
|
||||
PT?407
|
||||
PT?507
|
||||
PT?607
|
||||
PT?707
|
||||
PT?807
|
||||
PT?907
|
||||
PT?1007
|
||||
PT?1107
|
||||
PT?1207
|
||||
PT?1307
|
||||
0
|
||||
PT?1407
|
||||
PT?1507
|
||||
PT?1607
|
||||
PT?1707
|
||||
PT?1807
|
||||
PT?1907
|
||||
PT?2007
|
||||
PT?2107
|
||||
0
|
||||
PT?2207
|
||||
PT?2307
|
||||
PT?2407
|
||||
PT?2507
|
||||
PT?2607
|
||||
0
|
||||
PT?2707
|
||||
PT?2807
|
||||
PT?2907
|
||||
PT?3007
|
||||
PT?3107
|
||||
PT?3207
|
||||
PT?3307
|
||||
PT?3407
|
||||
PT?3507
|
||||
PT?3607
|
||||
PT?3707
|
||||
PT?3807
|
||||
PT?3907
|
||||
PT?4007
|
||||
PT?4107
|
||||
PT?4207
|
||||
PT?4307
|
||||
PT?4407
|
||||
PT?4507
|
||||
PT?4607
|
||||
PT?4707
|
||||
PT?4807
|
||||
PT?4907
|
||||
PT?5007
|
||||
PT?5107
|
||||
PT?5207
|
||||
PT?5307
|
||||
PT?5407
|
||||
PT?5507
|
||||
PT?5607
|
||||
PT?5707
|
||||
PT?5807
|
||||
PT?5907
|
||||
PT?6007
|
||||
PT?6107
|
||||
PT?6207
|
||||
PT?6307
|
||||
PT?6407
|
||||
PT?6507
|
||||
PT?6607
|
||||
PT?6707
|
||||
PT?6807
|
||||
PT?6907
|
||||
PT?7007
|
||||
PT?7107
|
||||
PT?7207
|
||||
PT?7307
|
||||
PT?7407
|
||||
PT?7507
|
||||
PT?7607
|
||||
PT?7707
|
||||
PT?7807
|
||||
PT?7907
|
||||
PT?8007
|
||||
PT?8107
|
||||
PT?8207
|
||||
.ENDT
|
||||
|
||||
PT?8407::
|
||||
P-QB-WORDS-1:: .TABLE
|
||||
20
|
||||
W?ARE
|
||||
W?CAN
|
||||
W?COULD
|
||||
W?DO
|
||||
W?DOES
|
||||
W?DID
|
||||
W?HE
|
||||
W?I
|
||||
W?IS
|
||||
W?IT
|
||||
W?SHE
|
||||
W?SHOULD
|
||||
W?THAT
|
||||
W?THEY
|
||||
W?WAS
|
||||
W?WE
|
||||
W?WERE
|
||||
W?WILL
|
||||
W?WOULD
|
||||
W?YOU
|
||||
.ENDT
|
||||
|
||||
PT?8507::
|
||||
P-QB-WORDS-2:: .TABLE
|
||||
20
|
||||
W?NOT
|
||||
W?NOT
|
||||
W?NOT
|
||||
W?NOT
|
||||
W?NOT
|
||||
W?NOT
|
||||
W?IS
|
||||
W?AM
|
||||
W?NOT
|
||||
W?IS
|
||||
W?IS
|
||||
W?NOT
|
||||
W?IS
|
||||
W?ARE
|
||||
W?NOT
|
||||
W?ARE
|
||||
W?NOT
|
||||
W?NOT
|
||||
W?NOT
|
||||
W?ARE
|
||||
.ENDT
|
||||
|
||||
PT?8607::
|
||||
P-QA-WORDS1:: .TABLE
|
||||
20
|
||||
W?AREN
|
||||
W?CAN
|
||||
W?COULDN
|
||||
W?DON
|
||||
W?DOESN
|
||||
W?DIDN
|
||||
W?HE
|
||||
W?I
|
||||
W?ISN
|
||||
W?IT
|
||||
W?SHE
|
||||
W?SHOULDN
|
||||
W?THAT
|
||||
W?THEY
|
||||
W?WASN
|
||||
W?WE
|
||||
W?WEREN
|
||||
W?WON
|
||||
W?WOULDN
|
||||
W?YOU
|
||||
.ENDT
|
||||
|
||||
PT?8707::
|
||||
P-QA-WORDS2:: .TABLE
|
||||
20
|
||||
W?T
|
||||
W?T
|
||||
W?T
|
||||
W?T
|
||||
W?T
|
||||
W?T
|
||||
W?S
|
||||
W?M
|
||||
W?T
|
||||
W?S
|
||||
W?S
|
||||
W?T
|
||||
W?S
|
||||
W?RE
|
||||
W?T
|
||||
W?RE
|
||||
W?T
|
||||
W?T
|
||||
W?T
|
||||
W?RE
|
||||
.ENDT
|
||||
|
||||
PT?8807::
|
||||
P-N-WORDS:: .TABLE
|
||||
23
|
||||
W?ZERO
|
||||
W?TEN
|
||||
W?ELEVEN
|
||||
W?TWELVE
|
||||
W?THIRTEEN
|
||||
W?FOURTEEN
|
||||
W?FIFTEEN
|
||||
W?SIXTEEN
|
||||
W?SEVENTEEN
|
||||
W?EIGHTEEN
|
||||
W?NINETEEN
|
||||
W?TWENTY
|
||||
W?THIRTY
|
||||
W?FORTY
|
||||
W?FIFTY
|
||||
W?SIXTY
|
||||
W?SEVENTY
|
||||
W?EIGHTY
|
||||
W?NINETY
|
||||
W?HUNDRED
|
||||
W?THOUSAND
|
||||
W?MILLION
|
||||
W?BILLION
|
||||
.ENDT
|
||||
|
||||
PT?8907::
|
||||
P-C-WORDS:: .TABLE
|
||||
23
|
||||
W?ASS
|
||||
W?ASSHOLE
|
||||
W?BASTARD
|
||||
W?BITCH
|
||||
W?COCK
|
||||
W?COCKSUCKER
|
||||
W?CRAP
|
||||
W?CUNT
|
||||
W?CUSS
|
||||
W?DAMN
|
||||
W?DAMNED
|
||||
W?FUCK
|
||||
W?FUCKED
|
||||
W?FUCKER
|
||||
W?FUCKING
|
||||
W?GODDAMN
|
||||
W?GODDAMNED
|
||||
W?HELL
|
||||
W?PISS
|
||||
W?SCREW
|
||||
W?SHIT
|
||||
W?SHITHEAD
|
||||
W?SUCKS
|
||||
.ENDT
|
||||
|
||||
PT?112::
|
||||
OWNERS:: .TABLE
|
||||
3
|
||||
CH-PLAYER
|
||||
CH-COFFEY
|
||||
CH-LINDSEY
|
||||
.ENDT
|
||||
|
||||
PT?212::
|
||||
NO-M-WINNER-VERB-TABLE:: .TABLE
|
||||
1
|
||||
V?TELL-ABOUT
|
||||
.ENDT
|
||||
|
||||
PT?312::
|
||||
PT?127:: .TABLE
|
||||
.BYTE 1
|
||||
0
|
||||
.ENDT
|
||||
|
||||
PT?119::
|
||||
QACTIONS:: .TABLE
|
||||
3
|
||||
V-BE
|
||||
V-BE?
|
||||
0
|
||||
.ENDT
|
||||
|
||||
PT?120:: .TABLE
|
||||
.BYTE RM-GAS-MIX-ROOM
|
||||
.BYTE 1
|
||||
.ENDT
|
||||
|
||||
PT?220:: .TABLE
|
||||
.BYTE RM-COMPRESSION-CHAMBER
|
||||
.BYTE 1
|
||||
.ENDT
|
||||
|
||||
PT?227::
|
||||
K-BODY-OWNER-TBL:: .TABLE
|
||||
2
|
||||
CH-COFFEY
|
||||
CH-LINDSEY
|
||||
.ENDT
|
||||
|
||||
PT?128::
|
||||
K-MACHINE-NAME-TBL:: .TABLE
|
||||
10
|
||||
STR?139
|
||||
STR?140
|
||||
STR?141
|
||||
STR?142
|
||||
STR?143
|
||||
STR?144
|
||||
STR?145
|
||||
STR?146
|
||||
STR?147
|
||||
STR?148
|
||||
.ENDT
|
||||
|
||||
PT?228::
|
||||
K-COLOR-TABLE:: .TABLE
|
||||
STR?152
|
||||
STR?153
|
||||
STR?154
|
||||
STR?155
|
||||
STR?156
|
||||
STR?157
|
||||
STR?158
|
||||
STR?159
|
||||
STR?160
|
||||
STR?161
|
||||
.ENDT
|
||||
|
||||
PT?328:: .TABLE
|
||||
4
|
||||
STR?162
|
||||
STR?163
|
||||
STR?164
|
||||
STR?165
|
||||
.ENDT
|
||||
|
||||
PT?428:: .TABLE
|
||||
6
|
||||
STR?166
|
||||
STR?167
|
||||
STR?168
|
||||
STR?169
|
||||
STR?170
|
||||
STR?171
|
||||
.ENDT
|
||||
|
||||
PT?528:: .TABLE
|
||||
6
|
||||
STR?172
|
||||
STR?173
|
||||
STR?174
|
||||
STR?175
|
||||
STR?176
|
||||
STR?177
|
||||
.ENDT
|
||||
|
||||
PURTND::
|
||||
.ENDI
|
233
abyssstr.zap
Normal file
233
abyssstr.zap
Normal file
|
@ -0,0 +1,233 @@
|
|||
|
||||
|
||||
; STRINGS ARE DEFINED HERE
|
||||
|
||||
STRBEG::
|
||||
|
||||
.SEGMENT "0"
|
||||
|
||||
.GSTR STR?1,"M-END"
|
||||
.GSTR STR?2,"What charming language!"
|
||||
.GSTR STR?3,"Computers aren't impressed by naughty words!"
|
||||
.GSTR STR?4,"You ought to be ashamed of yourself!"
|
||||
.GSTR STR?5,"Hey, save that talk for the locker room!"
|
||||
.GSTR STR?6,"Step outside and say that!"
|
||||
.GSTR STR?7,"And so's your old man!"
|
||||
.GSTR STR?8,"No inside"
|
||||
P-NO-INSIDE=STR?8
|
||||
.GSTR STR?9,"No surface"
|
||||
P-NO-SURFACE=STR?9
|
||||
.GSTR STR?10,"Nothing"
|
||||
P-NOTHING=STR?10
|
||||
.GSTR STR?11,"RED-SP"
|
||||
.GSTR STR?12,"RED-SV"
|
||||
.GSTR STR?13,"RED-SVPNN"
|
||||
.GSTR STR?14,"RED-SVNPN"
|
||||
.GSTR STR?15,"RED-SVPNPN"
|
||||
.GSTR STR?16,"RED-SVNP"
|
||||
.GSTR STR?17,"RED-SVN"
|
||||
.GSTR STR?18,"RED-SD"
|
||||
.GSTR STR?19,"RED-SVD"
|
||||
.GSTR STR?20,"RED-VP"
|
||||
.GSTR STR?21,"RED-CANDO"
|
||||
.GSTR STR?22,"RED-PART"
|
||||
.GSTR STR?23,"RED-FCN"
|
||||
.GSTR STR?24,"RED-NPP"
|
||||
.GSTR STR?25,"RED-QUOTE"
|
||||
.GSTR STR?26,"RED-OF"
|
||||
.GSTR STR?27,"RED-QT"
|
||||
.GSTR STR?28,"RED-QN"
|
||||
.GSTR STR?29,"RED-NP"
|
||||
.GSTR STR?30,"RED-PP"
|
||||
.GSTR STR?31,"RED-ADJ"
|
||||
.GSTR STR?32,"RED-POSS"
|
||||
.GSTR STR?33,"RED-BE-FORM"
|
||||
.GSTR STR?34,"RED-SNBN"
|
||||
.GSTR STR?35,"RED-SNBA"
|
||||
.GSTR STR?36,"RED-SNBP"
|
||||
.GSTR STR?37,"RED-SNBAP"
|
||||
.GSTR STR?38,"RED-SQBN"
|
||||
.GSTR STR?39,"RED-SBNN"
|
||||
.GSTR STR?40,"RED-SBNA"
|
||||
.GSTR STR?41,"RED-SBNP"
|
||||
.GSTR STR?42,"RED-BE"
|
||||
.GSTR STR?43,"RED-NOT"
|
||||
.GSTR STR?44,"RED-PERS"
|
||||
.GSTR STR?45,"DO-ORPHAN-TEST"
|
||||
.GSTR STR?46,"RED-O-NP"
|
||||
.GSTR STR?47,"RED-O-ADJ"
|
||||
.GSTR STR?48,"RED-O-PP"
|
||||
.GSTR STR?49,"Winner"
|
||||
.GSTR STR?50,"Subject"
|
||||
.GSTR STR?51,"Preaction"
|
||||
.GSTR STR?52,"M-BEG"
|
||||
.GSTR STR?53,"Container"
|
||||
.GSTR STR?54,"PRSI"
|
||||
.GSTR STR?55,"PRSO"
|
||||
.GSTR STR?56,"are"
|
||||
.GSTR STR?57,"word"
|
||||
.GSTR STR?58,"letter"
|
||||
.GSTR STR?59,"verb"
|
||||
.GSTR STR?60,"me"
|
||||
.GSTR STR?61,"have"
|
||||
.GSTR STR?62,"try"
|
||||
.GSTR STR?63,"empty"
|
||||
.GSTR STR?64,"fly"
|
||||
.GSTR STR?65,"dry"
|
||||
.GSTR STR?66,"do"
|
||||
.GSTR STR?67,"kiss"
|
||||
.GSTR STR?68,"push"
|
||||
.GSTR STR?69,"miss"
|
||||
.GSTR STR?70,"pass"
|
||||
.GSTR STR?71,"toss"
|
||||
.GSTR STR?72,"touch"
|
||||
.GSTR STR?73,"Time passes...
|
||||
"
|
||||
K-TIME-PASSES-MSG=STR?73
|
||||
.GSTR STR?74,"Restart"
|
||||
.GSTR STR?75,"Save"
|
||||
.GSTR STR?76,"Restore"
|
||||
.GSTR STR?77,"see"
|
||||
.GSTR STR?78,"close"
|
||||
.GSTR STR?79,"closed"
|
||||
.GSTR STR?80,"take off"
|
||||
.GSTR STR?81,"drop"
|
||||
.GSTR STR?82,"land"
|
||||
.GSTR STR?83,"get"
|
||||
.GSTR STR?84,"[You didn't say w"
|
||||
YOU-DIDNT-SAY-W=STR?84
|
||||
.GSTR STR?85,"hear"
|
||||
.GSTR STR?86,"locked"
|
||||
.GSTR STR?87,"lock"
|
||||
.GSTR STR?88,"look inside"
|
||||
.GSTR STR?89,"look outside"
|
||||
.GSTR STR?90,"put"
|
||||
.GSTR STR?91,"give"
|
||||
.GSTR STR?92,"swing"
|
||||
.GSTR STR?93,"open"
|
||||
.GSTR STR?94,"step"
|
||||
.GSTR STR?95,"in it"
|
||||
.GSTR STR?96,"an opening in"
|
||||
.GSTR STR?97,"There's not enough room.
|
||||
"
|
||||
NOT-ENOUGH-ROOM=STR?97
|
||||
.GSTR STR?98,"seem"
|
||||
.GSTR STR?99,"Sitting on"
|
||||
.GSTR STR?100,"take"
|
||||
.GSTR STR?101,"reach"
|
||||
.GSTR STR?102,"look"
|
||||
.GSTR STR?103,"shrug"
|
||||
.GSTR STR?104,"is"
|
||||
.GSTR STR?105,"unlocked"
|
||||
.GSTR STR?106,"go"
|
||||
.GSTR STR?107,"follow"
|
||||
.GSTR STR?108,"Which direction do you want to go in?"
|
||||
K-WHICH-DIR-MSG=STR?108
|
||||
.GSTR STR?109,"move around within"
|
||||
.GSTR STR?110,"put on"
|
||||
.GSTR STR?111,"has"
|
||||
.GSTR STR?112,"can"
|
||||
.GSTR STR?113,"may"
|
||||
.GSTR STR?114,"could"
|
||||
.GSTR STR?115,"would"
|
||||
.GSTR STR?116,"should"
|
||||
.GSTR STR?117,"will"
|
||||
.GSTR STR?118,"might"
|
||||
.GSTR STR?119,"must"
|
||||
.GSTR STR?120,"chamber"
|
||||
.GSTR STR?121,"hatch"
|
||||
.GSTR STR?122,"""I swear it's all true, Bud. I saw...something. It was right in front of us and then it dived into the trench, pulling us along after it. Then we hit the side of the trench and I blacked out for a second. When I came to, Flatbed was spinning out of control into the trench. None of the controls worked. I did the only thing I could do. I bailed out. But I didn't kill those men..."" her voice trails off, ""...there was nothing I could do...""
|
||||
"
|
||||
K-UFO-MSG=STR?122
|
||||
.GSTR STR?123,"door"
|
||||
.GSTR STR?124,"life support"
|
||||
.GSTR STR?125,"control box"
|
||||
.GSTR STR?126,"cut"
|
||||
.GSTR STR?127,"armed"
|
||||
.GSTR STR?128,"disarmed"
|
||||
.GSTR STR?129,"battery room"
|
||||
.GSTR STR?130,"on"
|
||||
.GSTR STR?131,"off"
|
||||
.GSTR STR?132,"plugged in"
|
||||
.GSTR STR?133,"gear storage"
|
||||
.GSTR STR?134,"rec room"
|
||||
.GSTR STR?135,"hose"
|
||||
.GSTR STR?136,"fluid"
|
||||
.GSTR STR?137,"[You don't need to refer to "
|
||||
K-NO-REFER-MSG=STR?137
|
||||
.GSTR STR?138,"appear"
|
||||
.GSTR STR?139,"Debugging"
|
||||
.GSTR STR?140,"Apple IIe"
|
||||
.GSTR STR?141,"Macintosh"
|
||||
.GSTR STR?142,"Amiga"
|
||||
.GSTR STR?143,"Atari ST"
|
||||
.GSTR STR?144,"IBM"
|
||||
.GSTR STR?145,"Commodore 128"
|
||||
.GSTR STR?146,"Commodore 64"
|
||||
.GSTR STR?147,"Apple IIc"
|
||||
.GSTR STR?148,"Apple IIgs"
|
||||
.GSTR STR?149,"text"
|
||||
.GSTR STR?150,"background"
|
||||
.GSTR STR?151,"Please press a number from 1 to "
|
||||
K-TYPE-NUMBER-MSG=STR?151
|
||||
.GSTR STR?152,"no change"
|
||||
.GSTR STR?153,"the standard color"
|
||||
.GSTR STR?154,"black"
|
||||
.GSTR STR?155,"red"
|
||||
.GSTR STR?156,"green"
|
||||
.GSTR STR?157,"yellow"
|
||||
.GSTR STR?158,"blue"
|
||||
.GSTR STR?159,"magenta"
|
||||
.GSTR STR?160,"cyan"
|
||||
.GSTR STR?161,"white"
|
||||
.GSTR STR?162,"isn't likely"
|
||||
.GSTR STR?163,"seems doubtful"
|
||||
.GSTR STR?164,"seems unlikely"
|
||||
.GSTR STR?165,"doesn't seem likely"
|
||||
.GSTR STR?166,"not do anything useful"
|
||||
.GSTR STR?167,"accomplish nothing"
|
||||
.GSTR STR?168,"have no desirable effect"
|
||||
.GSTR STR?169,"not be very productive"
|
||||
.GSTR STR?170,"serve no purpose"
|
||||
.GSTR STR?171,"be pointless"
|
||||
.GSTR STR?172,"unusual"
|
||||
.GSTR STR?173,"special"
|
||||
.GSTR STR?174,"interesting"
|
||||
.GSTR STR?175,"important"
|
||||
.GSTR STR?176,"of interest"
|
||||
.GSTR STR?177,"out of the ordinary"
|
||||
.GSTR STR?178,"It's too dark to see."
|
||||
K-TOO-DARK-MSG=STR?178
|
||||
.GSTR STR?179,"[Talking to yourself is a bad sign.]"
|
||||
K-TALK-TO-SELF-MSG=STR?179
|
||||
.GSTR STR?180,"[How do you intend to do that?]"
|
||||
K-HOW-INTEND-MSG=STR?180
|
||||
.GSTR STR?181," You hear a loud hissing coming from somewhere in the room.
|
||||
"
|
||||
K-HISS-MSG=STR?181
|
||||
.GSTR STR?182," It is a huge cylinder that looks like a giant capsule. It is supported by four legs that are welded to a steel base to provide stability. The base is raised up off the floor by about an inch.
|
||||
On the front of the tank is a k-valve that looks a little like a beer tap."
|
||||
K-GAS-TANK-MSG=STR?182
|
||||
.GSTR STR?183,"thermometer"
|
||||
.GSTR STR?184,"superbrief"
|
||||
.GSTR STR?185,"stationary"
|
||||
.GSTR STR?186,"recreation"
|
||||
.GSTR STR?187,"photograph"
|
||||
.GSTR STR?188,"observation"
|
||||
.GSTR STR?189,"ladderwell"
|
||||
.GSTR STR?190,"laboratory"
|
||||
.GSTR STR?191,"extinguish"
|
||||
.GSTR STR?192,"end.of.input"
|
||||
.GSTR STR?193,"electronic"
|
||||
.GSTR STR?194,"electrical"
|
||||
.GSTR STR?195,"downstairs"
|
||||
.GSTR STR?196,"descrambler"
|
||||
.GSTR STR?197,"compressor"
|
||||
.GSTR STR?198,"compression"
|
||||
.GSTR STR?199,"communications"
|
||||
.GSTR STR?200,"cocksucker"
|
||||
.GSTR STR?201,"arc-welder"
|
||||
.ENDSEG
|
||||
|
||||
|
||||
.ENDI
|
20
alien.zabstr
Normal file
20
alien.zabstr
Normal file
|
@ -0,0 +1,20 @@
|
|||
|
||||
<ROOM RM-TRENCH-BOTTOM (LOC ROOMS) (DESC "bottom of trench") (FLAGS FL-WATER
|
||||
FL-LIGHTED) (SYNONYM TRENCH BOTTOM) (ADJECTIVE FOOT TRENCH) (IN TO
|
||||
RM-ALIEN-CHAMBER) (UP TO RM-MIDSHIP-HATCH) (ACTION RT-RM-TRENCH-BOTTOM)>
|
||||
<DEFINE-ROUTINE RT-RM-TRENCH-BOTTOM>
|
||||
<OBJECT TH-PURPLE-BUTTON (LOC TH-ALIEN-SHIP) (DESC "purple button") (FLAGS
|
||||
FL-NO-DESC) (SYNONYM BUTTON) (ADJECTIVE PURPLE) (ACTION RT-TH-PURPLE-BUTTON)>
|
||||
<DEFINE-ROUTINE RT-TH-PURPLE-BUTTON>
|
||||
<OBJECT TH-ALIEN-SHIP (LOC RM-TRENCH-BOTTOM) (DESC "alien ship") (FLAGS
|
||||
FL-SEARCH FL-SURFACE) (SYNONYM SHIP) (ADJECTIVE ALIEN)>
|
||||
<ROOM RM-ALIEN-CHAMBER (LOC ROOMS) (DESC "alien chamber") (FLAGS FL-WATER
|
||||
FL-INSIDE FL-LIGHTED) (SYNONYM CHAMBER) (ADJECTIVE ALIEN) (ACTION
|
||||
RT-RM-ALIEN-CHAMBER)>
|
||||
<DEFINE-ROUTINE RT-RM-ALIEN-CHAMBER>
|
||||
<OBJECT TH-FUSCHIA-BUTTON (LOC RM-ALIEN-CHAMBER) (DESC "fuschia button") (FLAGS
|
||||
FL-NO-DESC) (SYNONYM BUTTON) (ADJECTIVE FUSCHIA) (ACTION RT-TH-FUSCHIA-BUTTON)>
|
||||
|
||||
<DEFINE-ROUTINE RT-TH-FUSCHIA-BUTTON>
|
||||
<OBJECT CH-ALIEN (LOC RM-ALIEN-CHAMBER) (DESC "alien") (FLAGS FL-ALIVE FL-OPEN
|
||||
FL-PERSON FL-SEARCH) (SYNONYM ALIEN)>
|
52
alien.zap
Normal file
52
alien.zap
Normal file
|
@ -0,0 +1,52 @@
|
|||
|
||||
|
||||
.FUNCT RT-RM-TRENCH-BOTTOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "arrive at"
|
||||
?CND4: PRINTI " the bottom of the trench. You are next to a huge alien ship that will be much more vividly described in later versions of this game. Once we hook up the graphics, on the side of the ship you will see a picture of a panel with a series of dots on it. For now, let's just say there's a purple button that you have to push in order to get inside the ship.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-PURPLE-BUTTON:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTR " Pretty normal-looking button, considering it's purple."
|
||||
?CCL5: EQUAL? PRSA,V?PUSH \FALSE
|
||||
MOVE CH-PLAYER,RM-ALIEN-CHAMBER
|
||||
PRINTR " The door swings open and you enter the Alien ship. You walk down a long, luminescent corridor and eventually come to a large room. Lindsey is sitting in the middle of the floor, her tear-stained face looking up at some large TV screens on the wall. You walk toward her. She silently stretches out her hand to take yours, and then motions you to look at the screens. You do so and quickly realize why she's been crying.
|
||||
Up on the screen you see pictures of incredible destruction. Major cities all over the world are being inundated by water. In some places, the flooding is complete. In others it has just begun. But all over the planet, water is rising up to wipe out humanity in the flood that Noah was promised would never come.
|
||||
One of the Alien creatures materializes at your side and explains why they are doing what they are doing. He bears a strong resemblance to Don Rubin. ""Soon there will be a puzzle here,"" he says. ""Otherwise, Bob will write it when he gets back from vacation. Until that time, simply push the fuschia button over there on the wall. Doing so will save the world and return you to Deepcore. Not a bad deal, if you ask me."""
|
||||
|
||||
|
||||
.FUNCT RT-RM-ALIEN-CHAMBER:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "arrive at"
|
||||
?CND4: PRINTI " the alien chamber. There is a fuschia button on the wall.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-FUSCHIA-BUTTON:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTR " Pretty normal-looking button, considering it's fuschia."
|
||||
?CCL5: EQUAL? PRSA,V?PUSH \FALSE
|
||||
MOVE CH-PLAYER,RM-SUB-BAY
|
||||
MOVE CH-LINDSEY,RM-SUB-BAY
|
||||
FSET CH-ALIEN,FL-BROKEN
|
||||
PRINTR " A flash of lighting. A clap of thunder. And suddenly you and Lindsey are back in the Sub-bay."
|
||||
|
||||
.ENDI
|
187
alien.zil
Normal file
187
alien.zil
Normal file
|
@ -0,0 +1,187 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : ALIEN.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 18 Mar 1989 14:02:54 $"
|
||||
; "rev : $Revision: 1.2 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Crane crash"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-TRENCH-BOTTOM"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<ROOM RM-TRENCH-BOTTOM
|
||||
(LOC ROOMS)
|
||||
(DESC "bottom of trench")
|
||||
(FLAGS FL-WATER FL-LIGHTED)
|
||||
(SYNONYM TRENCH BOTTOM)
|
||||
(ADJECTIVE FOOT TRENCH)
|
||||
(IN TO RM-ALIEN-CHAMBER)
|
||||
(UP TO RM-MIDSHIP-HATCH)
|
||||
(ACTION RT-RM-TRENCH-BOTTOM)
|
||||
>
|
||||
|
||||
<ROUTINE RT-RM-TRENCH-BOTTOM ("OPTIONAL" (CONTEXT <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL " You ">
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "are in">
|
||||
)
|
||||
(T
|
||||
<TELL "arrive at">
|
||||
)
|
||||
>
|
||||
<TELL
|
||||
" the bottom of the trench. You are next to a huge alien ship that will be
|
||||
much more vividly described in later versions of this game. Once we hook up
|
||||
the graphics, on the side of the ship you will see a picture of a panel with
|
||||
a series of dots on it. For now, let's just say there's a purple button that
|
||||
you have to push in order to get inside the ship.|"
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-PURPLE-BUTTON"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-PURPLE-BUTTON
|
||||
(LOC TH-ALIEN-SHIP)
|
||||
(DESC "purple button")
|
||||
(FLAGS FL-NO-DESC)
|
||||
(SYNONYM BUTTON)
|
||||
(ADJECTIVE PURPLE)
|
||||
(ACTION RT-TH-PURPLE-BUTTON)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-PURPLE-BUTTON ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL " Pretty normal-looking button, considering it's purple." CR>
|
||||
)
|
||||
(<VERB? PUSH>
|
||||
<MOVE ,CH-PLAYER ,RM-ALIEN-CHAMBER>
|
||||
<TELL
|
||||
" The door swings open and you enter the Alien ship. You walk down a long,
|
||||
luminescent corridor and eventually come to a large room. Lindsey is sitting
|
||||
in the middle of the floor, her tear-stained face looking up at some large TV
|
||||
screens on the wall. You walk toward her. She silently stretches out her hand
|
||||
to take yours, and then motions you to look at the screens. You do so and
|
||||
quickly realize why she's been crying.|
|
||||
Up on the screen you see pictures of incredible destruction. Major cities
|
||||
all over the world are being inundated by water. In some places, the flooding
|
||||
is complete. In others it has just begun. But all over the planet, water is
|
||||
rising up to wipe out humanity in the flood that Noah was promised would
|
||||
never come.|
|
||||
One of the Alien creatures materializes at your side and explains why they
|
||||
are doing what they are doing. He bears a strong resemblance to Don Rubin.
|
||||
\"Soon there will be a puzzle here,\" he says. \"Otherwise, Bob will write it
|
||||
when he gets back from vacation. Until that time, simply push the fuschia
|
||||
button over there on the wall. Doing so will save the world and return you to
|
||||
Deepcore. Not a bad deal, if you ask me.\"" CR
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-ALIEN-SHIP
|
||||
(LOC RM-TRENCH-BOTTOM)
|
||||
(DESC "alien ship")
|
||||
(FLAGS FL-SEARCH FL-SURFACE)
|
||||
(SYNONYM SHIP)
|
||||
(ADJECTIVE ALIEN)
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-ALIEN-CHAMBER"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<ROOM RM-ALIEN-CHAMBER
|
||||
(LOC ROOMS)
|
||||
(DESC "alien chamber")
|
||||
(FLAGS FL-WATER FL-INSIDE FL-LIGHTED)
|
||||
(SYNONYM CHAMBER)
|
||||
(ADJECTIVE ALIEN)
|
||||
(ACTION RT-RM-ALIEN-CHAMBER)
|
||||
>
|
||||
|
||||
<ROUTINE RT-RM-ALIEN-CHAMBER ("OPTIONAL" (CONTEXT <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL " You ">
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "are in">
|
||||
)
|
||||
(T
|
||||
<TELL "arrive at">
|
||||
)
|
||||
>
|
||||
<TELL " the alien chamber. There is a fuschia button on the wall.|">
|
||||
<RFALSE>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-FUSCHIA-BUTTON"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-FUSCHIA-BUTTON
|
||||
(LOC RM-ALIEN-CHAMBER)
|
||||
(DESC "fuschia button")
|
||||
(FLAGS FL-NO-DESC)
|
||||
(SYNONYM BUTTON)
|
||||
(ADJECTIVE FUSCHIA)
|
||||
(ACTION RT-TH-FUSCHIA-BUTTON)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-FUSCHIA-BUTTON ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL " Pretty normal-looking button, considering it's fuschia." CR>
|
||||
)
|
||||
(<VERB? PUSH>
|
||||
<MOVE ,CH-PLAYER ,RM-SUB-BAY>
|
||||
<MOVE ,CH-LINDSEY ,RM-SUB-BAY>
|
||||
<FSET ,CH-ALIEN ,FL-BROKEN>
|
||||
<TELL
|
||||
" A flash of lighting. A clap of thunder. And suddenly you and Lindsey are
|
||||
back in the Sub-bay." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT CH-ALIEN
|
||||
(LOC RM-ALIEN-CHAMBER)
|
||||
(DESC "alien")
|
||||
(FLAGS FL-ALIVE FL-OPEN FL-PERSON FL-SEARCH)
|
||||
(SYNONYM ALIEN)
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
64
be.zabstr
Normal file
64
be.zabstr
Normal file
|
@ -0,0 +1,64 @@
|
|||
<FLAGS-AND-DEFAULTS (("IN-ZILCH" T)) ()>
|
||||
|
||||
<CONSTANT QACTIONS <PLTABLE V-BE V-BE? 0>>
|
||||
<SYNTAX BE OBJECT (EVERYWHERE) = V-BE>
|
||||
<SYNTAX BE OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-BE>
|
||||
<SYNTAX BE? OBJECT (EVERYWHERE) = V-BE?>
|
||||
<SYNTAX BE? OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-BE?>
|
||||
<SYNTAX WHO OBJECT (EVERYWHERE) = V-WHO>
|
||||
<SYNTAX WHO OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHO>
|
||||
<SYNTAX WHAT OBJECT (EVERYWHERE) = V-WHAT>
|
||||
<SYNTAX WHAT OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHAT>
|
||||
<SYNTAX WHERE OBJECT (EVERYWHERE) = V-WHERE>
|
||||
<SYNTAX WHERE OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHERE>
|
||||
<SYNTAX WHEN OBJECT (EVERYWHERE) = V-WHEN>
|
||||
<SYNTAX WHEN OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHEN>
|
||||
<SYNTAX WHY OBJECT (EVERYWHERE) = V-WHY>
|
||||
<SYNTAX WHY OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHY>
|
||||
<SYNTAX HOW OBJECT (EVERYWHERE) = V-HOW>
|
||||
<SYNTAX HOW OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-HOW>
|
||||
<SYNTAX CAN OBJECT (EVERYWHERE) = V-CAN?>
|
||||
<SYNTAX MAY OBJECT (EVERYWHERE) = V-MAY?>
|
||||
<SYNTAX DO OBJECT (EVERYWHERE) = V-DO?>
|
||||
<SYNTAX COULD OBJECT (EVERYWHERE) = V-COULD?>
|
||||
<SYNTAX WOULD OBJECT (EVERYWHERE) = V-WOULD?>
|
||||
<SYNTAX SHOULD OBJECT (EVERYWHERE) = V-SHOULD?>
|
||||
<SYNTAX MIGHT OBJECT (EVERYWHERE) = V-MIGHT?>
|
||||
<SYNTAX WILL OBJECT (EVERYWHERE) = V-WILL?>
|
||||
<SYNTAX MUST OBJECT (EVERYWHERE) = V-MUST?>
|
||||
<DEFINE-ROUTINE V-STATEMENT>
|
||||
<DEFINE-ROUTINE V-BE>
|
||||
<DEFINE-ROUTINE TELL-Q-WORD>
|
||||
<DEFINE-ROUTINE RIGHT-PREP?>
|
||||
<CONSTANT ADJ-TABLE <LTABLE <VOC "OUTSIDE" ADJ> IS-OUTSIDE? <VOC "OPEN" ADJ>
|
||||
IS-OPEN? <VOC "CLOSED" ADJ> IS-CLOSED? <VOC "LOCKED" ADJ> IS-LOCKED? <VOC
|
||||
"UNLOCKED" ADJ> IS-UNLOCKED? <VOC "DEAD" ADJ> IS-DEAD? <VOC "ALIVE" ADJ>
|
||||
IS-ALIVE? <VOC "QUIET" ADJ> IS-QUIET? <VOC "HERE" ADJ> IS-HERE?>>
|
||||
<DEFINE-ROUTINE IS-QUIET?>
|
||||
<DEFINE-ROUTINE IS-OUTSIDE?>
|
||||
<DEFINE-ROUTINE IS-OPEN?>
|
||||
<DEFINE-ROUTINE IS-CLOSED?>
|
||||
<DEFINE-ROUTINE IS-LOCKED?>
|
||||
<DEFINE-ROUTINE IS-UNLOCKED?>
|
||||
<DEFINE-ROUTINE IS-DEAD?>
|
||||
<DEFINE-ROUTINE IS-ALIVE?>
|
||||
<DEFINE-ROUTINE IS-HERE?>
|
||||
<DEFINE-ROUTINE PRSO-IS>
|
||||
<DEFINE-ROUTINE IS-PRSO-ADJ?>
|
||||
<DEFINE-ROUTINE YES-BUT?>
|
||||
<DEFINE-ROUTINE V-CAN?>
|
||||
<DEFINE-ROUTINE V-MAY?>
|
||||
<DEFINE-ROUTINE V-DO?>
|
||||
<DEFINE-ROUTINE V-COULD?>
|
||||
<DEFINE-ROUTINE V-WOULD?>
|
||||
<DEFINE-ROUTINE V-SHOULD?>
|
||||
<DEFINE-ROUTINE V-MIGHT?>
|
||||
<DEFINE-ROUTINE V-WILL?>
|
||||
<DEFINE-ROUTINE V-MUST?>
|
||||
<DEFINE-ROUTINE V-BE?>
|
||||
<DEFINE-ROUTINE V-WHO>
|
||||
<DEFINE-ROUTINE V-WHAT>
|
||||
<DEFINE-ROUTINE V-WHEN>
|
||||
<DEFINE-ROUTINE V-WHERE>
|
||||
<DEFINE-ROUTINE V-WHY>
|
||||
<DEFINE-ROUTINE V-HOW>
|
374
be.zap
Normal file
374
be.zap
Normal file
|
@ -0,0 +1,374 @@
|
|||
|
||||
|
||||
.FUNCT V-STATEMENT:ANY:0:0
|
||||
CALL1 V-DO?
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-BE:ANY:0:0,TMP,NOT?,ADJ?,LOC?,OBJ,PREP
|
||||
GET PARSE-RESULT,16
|
||||
BAND PARSE-NOT,STACK >NOT?
|
||||
GET PARSE-RESULT,11 >ADJ?
|
||||
GET PARSE-RESULT,9 >LOC?
|
||||
EQUAL? PRSA,V?HOW /?CTR2
|
||||
EQUAL? PRSA,V?WHEN,V?WHY,V?WHERE /?CTR2
|
||||
EQUAL? PRSA,V?WHAT,V?WHO,V?BE? \?CCL3
|
||||
?CTR2: EQUAL? PRSI,INTADJ \?CCL9
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56
|
||||
CALL2 IS-PRSO-ADJ?,ADJ?
|
||||
ZERO? STACK \?CND10
|
||||
PRINTI "n't"
|
||||
?CND10: PRINTC 32
|
||||
PRINTB ADJ?
|
||||
PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL9: EQUAL? PRSI,INTPP \?CCL13
|
||||
CALL1 P-PP-PREP >PREP
|
||||
ZERO? PREP /?CCL16
|
||||
CALL1 P-PP-OBJ >OBJ
|
||||
ZERO? OBJ /?CCL16
|
||||
EQUAL? PRSA,V?BE? \?CCL21
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56
|
||||
CALL RIGHT-PREP?,PREP,PRSO,OBJ
|
||||
ZERO? STACK \?CND22
|
||||
PRINTI "n't"
|
||||
?CND22: PRINTC 32
|
||||
PRINTB PREP
|
||||
ICALL RT-PRINT-OBJ,OBJ,K-ART-THE
|
||||
PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL21: PRINTI "You want to know "
|
||||
ICALL1 TELL-Q-WORD
|
||||
ICALL2 PRSO-IS,NOT?
|
||||
PRINTC 32
|
||||
PRINTB PREP
|
||||
ICALL RT-PRINT-OBJ,OBJ,K-ART-THE
|
||||
PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL16: PRINTI "You want to know "
|
||||
ICALL1 TELL-Q-WORD
|
||||
ICALL2 PRSO-IS,NOT?
|
||||
PRINTC 32
|
||||
GET LOC?,1
|
||||
PRINTB STACK
|
||||
PRINTC 32
|
||||
GET LOC?,2
|
||||
ICALL2 NP-PRINT,STACK
|
||||
PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL13: ZERO? PRSI \?CCL25
|
||||
EQUAL? PRSA,V?WHERE \?CCL25
|
||||
LOC PRSO >LOC?
|
||||
IN? PRSO,HERE \?CCL30
|
||||
ICALL PRSO-IS,FALSE-VALUE,TRUE-VALUE
|
||||
PRINTR " here."
|
||||
?CCL30: EQUAL? LOC?,GLOBAL-OBJECTS \?CCL32
|
||||
PRINTI "No doubt"
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE
|
||||
ICALL RT-PRINT-VERB,PRSO,STR?56
|
||||
PRINTR " around here somewhere."
|
||||
?CCL32: EQUAL? LOC?,LOCAL-GLOBALS \?CCL34
|
||||
CALL GLOBAL-IN?,PRSO,HERE
|
||||
ZERO? STACK /?CCL34
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56
|
||||
PRINTR " nearby."
|
||||
?CCL34: FSET? LOC?,FL-PERSON \?CCL38
|
||||
ICALL RT-PRINT-OBJ,LOC?,K-ART-THE,TRUE-VALUE,STR?111
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE
|
||||
PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL38: CALL2 META-LOC,PRSO
|
||||
EQUAL? STACK,HERE \?CCL40
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56
|
||||
ICALL2 RT-IN-ON-MSG,LOC?
|
||||
ICALL RT-PRINT-OBJ,LOC?,K-ART-THE
|
||||
PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL40: IN? LOC?,ROOMS \?CCL42
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE
|
||||
PRINTI " is probably "
|
||||
FSET? PRSO,TOUCHBIT \?CCL45
|
||||
PRINTI "still in"
|
||||
ICALL RT-PRINT-OBJ,LOC?,K-ART-THE
|
||||
PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL45: PRINTR "lying around somewhere."
|
||||
?CCL42: PRINTI "That's an excellent question. Just where"
|
||||
ICALL RT-PRINT-VERB,PRSO,STR?56
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE
|
||||
PRINTC 63
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL25: PRINTI "You want to know "
|
||||
ICALL1 TELL-Q-WORD
|
||||
ICALL2 PRSO-IS,NOT?
|
||||
ZERO? PRSI /?CND46
|
||||
ICALL RT-PRINT-OBJ,PRSI,K-ART-A
|
||||
?CND46: PRINTC 63
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL3: EQUAL? PRSI,INTADJ \?CCL50
|
||||
CALL2 IS-PRSO-ADJ?,ADJ?
|
||||
ZERO? STACK /?CCL53
|
||||
ZERO? NOT? /?CCL56
|
||||
PRINTI "Wrong,"
|
||||
JUMP ?CND54
|
||||
?CCL56: PRINTI "Right,"
|
||||
?CND54: ICALL2 PRSO-IS,FALSE-VALUE
|
||||
JUMP ?CND51
|
||||
?CCL53: ZERO? NOT? /?CCL59
|
||||
PRINTI "Right,"
|
||||
JUMP ?CND57
|
||||
?CCL59: PRINTI "Wrong,"
|
||||
?CND57: ICALL2 PRSO-IS,TRUE-VALUE
|
||||
?CND51: PRINTC 32
|
||||
PRINTB ADJ?
|
||||
PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL50: EQUAL? PRSI,INTPP \?CCL61
|
||||
PRINTI "So, you say"
|
||||
ICALL2 PRSO-IS,NOT?
|
||||
CALL1 P-PP-PREP >PREP
|
||||
ZERO? PREP /?CCL64
|
||||
CALL1 P-PP-OBJ >OBJ
|
||||
ZERO? OBJ /?CCL64
|
||||
PRINTB PREP
|
||||
ICALL RT-PRINT-OBJ,OBJ,K-ART-THE
|
||||
JUMP ?CND62
|
||||
?CCL64: GET LOC?,1
|
||||
PRINTB STACK
|
||||
GET LOC?,2
|
||||
CALL2 NP-PRINT,STACK
|
||||
ICALL RT-PRINT-OBJ,STACK,K-ART-THE
|
||||
?CND62: PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL61: PRINTI "So you think"
|
||||
ICALL2 PRSO-IS,NOT?
|
||||
ZERO? PRSI /?CND67
|
||||
ICALL RT-PRINT-OBJ,PRSI,K-ART-A
|
||||
?CND67: PRINTC 63
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TELL-Q-WORD:ANY:0:0
|
||||
EQUAL? PRSA,V?BE? \?CCL3
|
||||
PRINTI "if"
|
||||
RTRUE
|
||||
?CCL3: EQUAL? PRSA,V?WHY \?CCL5
|
||||
PRINTI "why"
|
||||
RTRUE
|
||||
?CCL5: EQUAL? PRSA,V?WHO \?CCL7
|
||||
PRINTI "who"
|
||||
RTRUE
|
||||
?CCL7: EQUAL? PRSA,V?WHAT \?CCL9
|
||||
PRINTI "what"
|
||||
RTRUE
|
||||
?CCL9: EQUAL? PRSA,V?WHERE \?CCL11
|
||||
PRINTI "where"
|
||||
RTRUE
|
||||
?CCL11: EQUAL? PRSA,V?WHEN \?CCL13
|
||||
PRINTI "when"
|
||||
RTRUE
|
||||
?CCL13: EQUAL? PRSA,V?HOW \?CCL15
|
||||
PRINTI "how"
|
||||
RTRUE
|
||||
?CCL15: PRINTB P-PRSA-WORD
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RIGHT-PREP?:ANY:3:3,PREP,OBJ,CONT
|
||||
IN? OBJ,CONT \FALSE
|
||||
EQUAL? PREP,W?IN,W?INSIDE \?CCL5
|
||||
CALL2 RT-SEE-INSIDE?,CONT
|
||||
ZERO? STACK /FALSE
|
||||
RTRUE
|
||||
?CCL5: EQUAL? PREP,W?ON \FALSE
|
||||
FSET? CONT,FL-SURFACE /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT IS-QUIET?:ANY:1:1,OBJ
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IS-OUTSIDE?:ANY:1:1,OBJ
|
||||
FSET? HERE,FL-INDOORS /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IS-OPEN?:ANY:1:1,OBJ
|
||||
FSET? OBJ,FL-OPENABLE \FALSE
|
||||
FSET? OBJ,FL-OPEN /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT IS-CLOSED?:ANY:1:1,OBJ
|
||||
FSET? OBJ,FL-OPENABLE \FALSE
|
||||
FSET? OBJ,FL-OPEN /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IS-LOCKED?:ANY:1:1,OBJ
|
||||
FSET? OBJ,FL-OPENABLE \FALSE
|
||||
FSET? OBJ,FL-LOCKED /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT IS-UNLOCKED?:ANY:1:1,OBJ
|
||||
FSET? OBJ,FL-OPENABLE \FALSE
|
||||
FSET? OBJ,FL-LOCKED /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IS-DEAD?:ANY:1:1,OBJ
|
||||
FSET? OBJ,FL-PERSON \FALSE
|
||||
FSET? OBJ,FL-ALIVE /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IS-ALIVE?:ANY:1:1,OBJ
|
||||
FSET? OBJ,FL-PERSON \FALSE
|
||||
FSET? OBJ,FL-ALIVE /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT IS-HERE?:ANY:1:1,OBJ,L
|
||||
LOC OBJ >L
|
||||
?PRG1: ZERO? L /FALSE
|
||||
EQUAL? L,GLOBAL-OBJECTS,LOCAL-GLOBALS,ROOMS /FALSE
|
||||
EQUAL? L,HERE /TRUE
|
||||
LOC L >L
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT PRSO-IS:ANY:1:2,NOT?,CAP?
|
||||
ZERO? CAP? /?CCL3
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE
|
||||
JUMP ?CND1
|
||||
?CCL3: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE
|
||||
?CND1: ICALL RT-PRINT-VERB,PRSO,STR?56
|
||||
ZERO? NOT? /FALSE
|
||||
PRINTI "n't"
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT IS-PRSO-ADJ?:ANY:1:1,ADJ,TMP
|
||||
GETPT PRSO,P?ADJECTIVE >TMP
|
||||
ZERO? TMP /?CCL3
|
||||
PTSIZE TMP
|
||||
DIV STACK,2
|
||||
INTBL? ADJ,TMP,STACK /TRUE
|
||||
?CCL3: GET ADJ-TABLE,0
|
||||
INTBL? ADJ,ADJ-TABLE,STACK >TMP \FALSE
|
||||
GET TMP,1
|
||||
CALL STACK,PRSO
|
||||
ZERO? STACK \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT YES-BUT?:ANY:2:2,STR1,STR2
|
||||
GET PARSE-RESULT,10
|
||||
ZERO? STACK \FALSE
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE
|
||||
PRINTC 32
|
||||
PRINT STR1
|
||||
PRINTI ", but "
|
||||
PRINT STR2
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-HE
|
||||
PRINTC 63
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT V-CAN?:ANY:0:0
|
||||
CALL YES-BUT?,STR?112,STR?113
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-MAY?:ANY:0:0
|
||||
CALL YES-BUT?,STR?113,STR?112
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-DO?:ANY:0:0
|
||||
GET PARSE-RESULT,10
|
||||
ZERO? STACK \FALSE
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?66
|
||||
PRINTR ", but why?"
|
||||
|
||||
|
||||
.FUNCT V-COULD?:ANY:0:0
|
||||
CALL YES-BUT?,STR?114,STR?115
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-WOULD?:ANY:0:0
|
||||
CALL YES-BUT?,STR?115,STR?114
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-SHOULD?:ANY:0:0
|
||||
CALL YES-BUT?,STR?116,STR?117
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-MIGHT?:ANY:0:0
|
||||
CALL YES-BUT?,STR?118,STR?117
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-WILL?:ANY:0:0
|
||||
CALL YES-BUT?,STR?117,STR?116
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-MUST?:ANY:0:0
|
||||
CALL YES-BUT?,STR?119,STR?112
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-BE?:ANY:0:0
|
||||
CALL1 V-BE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-WHO:ANY:0:0
|
||||
CALL1 V-BE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-WHAT:ANY:0:0
|
||||
CALL1 V-BE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-WHEN:ANY:0:0
|
||||
CALL1 V-BE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-WHERE:ANY:0:0
|
||||
CALL1 V-BE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-WHY:ANY:0:0
|
||||
CALL1 V-BE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT V-HOW:ANY:0:0
|
||||
CALL1 V-BE
|
||||
RSTACK
|
||||
|
||||
.ENDI
|
550
be.zil
Normal file
550
be.zil
Normal file
|
@ -0,0 +1,550 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : BE.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 09 Dec 1988 23:24:34 $"
|
||||
; "rev : $Revision: 1.0 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Be verbs and syntaxes"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
; "PERFORM uses two additional GLOBALs, 'q-verb' and subject, each of which
|
||||
can be false. Examples:
|
||||
'IS THE POPE CATHOLIC'
|
||||
becomes
|
||||
<SETG PRSQ T>
|
||||
<PERFORM ,V?BE ,POPE ,INTADJ ;T>
|
||||
|
||||
'DOES THE GOVERNMENT TAKE MONEY FROM ME'
|
||||
becomes
|
||||
<SETG PRSQ ,V?DO>
|
||||
<SETG PRSS ,GOVERNMENT>
|
||||
<PERFORM ,V?TAKE ,MONEY ,ME>
|
||||
|
||||
'WHY DOES THE GOVERNMENT TAKE MONEY FROM ME'
|
||||
becomes
|
||||
<SETG PRSQ ,V?WHY>
|
||||
<SETG PRSS ,GOVERNMENT>
|
||||
<PERFORM ,V?TAKE ,MONEY ,ME>
|
||||
|
||||
When PERFORM notices the presence of a q-verb, it calls action routines
|
||||
in this order:
|
||||
WINNER
|
||||
SUBJECT
|
||||
; M-BEG
|
||||
Q-PREACTION (from the QACTIONS table)
|
||||
; OBJECT #2
|
||||
; OBJECT #1
|
||||
Q-ACTION (from the QACTIONS table) or V-STATEMENT
|
||||
|
||||
PERFORM also handles statements, for example:
|
||||
'MY NAME IS ARTHUR DENT'
|
||||
becomes
|
||||
<PERFORM ,V?IS ,NAME ,ARTHUR>"
|
||||
|
||||
<CONSTANT QACTIONS
|
||||
<PLTABLE
|
||||
V-BE V-BE? 0
|
||||
; "V-DISEMBARK V-DISEMBARK? 0
|
||||
V-DROP V-DROP? PRE-DROP?
|
||||
V-TAKE V-TAKE? PRE-TAKE?"
|
||||
>
|
||||
>
|
||||
|
||||
<SYNTAX BE OBJECT (EVERYWHERE) = V-BE>
|
||||
<SYNTAX BE OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-BE>
|
||||
|
||||
<SYNTAX BE? OBJECT (EVERYWHERE) = V-BE?>
|
||||
<SYNTAX BE? OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-BE?>
|
||||
<SYNTAX WHO OBJECT (EVERYWHERE) = V-WHO>
|
||||
<SYNTAX WHO OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHO>
|
||||
<SYNTAX WHAT OBJECT (EVERYWHERE) = V-WHAT>
|
||||
<SYNTAX WHAT OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHAT>
|
||||
<SYNTAX WHERE OBJECT (EVERYWHERE) = V-WHERE>
|
||||
<SYNTAX WHERE OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHERE>
|
||||
<SYNTAX WHEN OBJECT (EVERYWHERE) = V-WHEN>
|
||||
<SYNTAX WHEN OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHEN>
|
||||
<SYNTAX WHY OBJECT (EVERYWHERE) = V-WHY>
|
||||
<SYNTAX WHY OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-WHY>
|
||||
<SYNTAX HOW OBJECT (EVERYWHERE) = V-HOW>
|
||||
<SYNTAX HOW OBJECT (EVERYWHERE) OBJECT (EVERYWHERE) = V-HOW>
|
||||
|
||||
<SYNTAX CAN OBJECT (EVERYWHERE) = V-CAN?>
|
||||
<SYNTAX MAY OBJECT (EVERYWHERE) = V-MAY?>
|
||||
<SYNTAX DO OBJECT (EVERYWHERE) = V-DO?>
|
||||
<SYNTAX COULD OBJECT (EVERYWHERE) = V-COULD?>
|
||||
<SYNTAX WOULD OBJECT (EVERYWHERE) = V-WOULD?>
|
||||
<SYNTAX SHOULD OBJECT (EVERYWHERE) = V-SHOULD?>
|
||||
<SYNTAX MIGHT OBJECT (EVERYWHERE) = V-MIGHT?>
|
||||
<SYNTAX WILL OBJECT (EVERYWHERE) = V-WILL?>
|
||||
<SYNTAX MUST OBJECT (EVERYWHERE) = V-MUST?>
|
||||
|
||||
<ROUTINE V-STATEMENT ()
|
||||
<V-DO?>
|
||||
>
|
||||
|
||||
<ROUTINE V-BE ("AUX" TMP NOT? ADJ? LOC? OBJ PREP)
|
||||
<SET NOT? <ANDB ,PARSE-NOT <PARSE-FLAGS ,PARSE-RESULT>>>
|
||||
<SET ADJ? <PARSE-ADJ ,PARSE-RESULT>>
|
||||
<SET LOC? <PARSE-LOC ,PARSE-RESULT>>
|
||||
<COND
|
||||
(<VERB? BE? WHO WHAT WHERE WHY WHEN HOW>
|
||||
<COND
|
||||
(<EQUAL? ,PRSI ,INTADJ>
|
||||
<TELL The+verb ,PRSO "are">
|
||||
<COND
|
||||
(<NOT <IS-PRSO-ADJ? .ADJ?>>
|
||||
<TELL "n't">
|
||||
)
|
||||
>
|
||||
<TELL !\ >
|
||||
<PRINTB .ADJ?>
|
||||
<TELL !\. CR>
|
||||
)
|
||||
(<EQUAL? ,PRSI ,INTPP>
|
||||
<COND
|
||||
(<AND <SET PREP <P-PP-PREP>>
|
||||
<SET OBJ <P-PP-OBJ>>
|
||||
>
|
||||
<COND
|
||||
(<VERB? BE?>
|
||||
<TELL The+verb ,PRSO "are">
|
||||
<COND
|
||||
(<NOT <RIGHT-PREP? .PREP ,PRSO .OBJ>>
|
||||
<TELL "n't">
|
||||
)
|
||||
>
|
||||
<TELL !\ >
|
||||
<PRINTB .PREP>
|
||||
<TELL the .OBJ !\. CR>
|
||||
)
|
||||
(T
|
||||
<TELL "You want to know ">
|
||||
<TELL-Q-WORD>
|
||||
<PRSO-IS .NOT?>
|
||||
<TELL !\ >
|
||||
<PRINTB .PREP>
|
||||
<TELL the .OBJ !\. CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<TELL "You want to know ">
|
||||
<TELL-Q-WORD>
|
||||
<PRSO-IS .NOT?>
|
||||
<TELL !\ >
|
||||
<PRINTB <PP-PREP .LOC?>>
|
||||
<TELL !\ >
|
||||
<NP-PRINT <PP-NOUN .LOC?>>
|
||||
<TELL !\. CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<AND <NOT ,PRSI>
|
||||
<VERB? WHERE>
|
||||
>
|
||||
<SET LOC? <LOC ,PRSO>>
|
||||
<COND
|
||||
(<IN? ,PRSO ,HERE>
|
||||
<PRSO-IS <> T>
|
||||
<TELL " here." CR>
|
||||
)
|
||||
(<EQUAL? .LOC? ,GLOBAL-OBJECTS>
|
||||
<TELL "No doubt" the ,PRSO verb ,PRSO "are" " around here somewhere." CR>
|
||||
)
|
||||
(<AND <EQUAL? .LOC? ,LOCAL-GLOBALS>
|
||||
<GLOBAL-IN? ,PRSO ,HERE>
|
||||
>
|
||||
<TELL The+verb ,PRSO "are" " nearby." CR>
|
||||
)
|
||||
(<FSET? .LOC? ,FL-PERSON>
|
||||
<TELL The+verb .LOC? "has" the ,PRSO !\. CR>
|
||||
)
|
||||
(<EQUAL? <META-LOC ,PRSO> ,HERE>
|
||||
<TELL The+verb ,PRSO "are" in .LOC? the .LOC? !\. CR>
|
||||
)
|
||||
(<IN? .LOC? ,ROOMS>
|
||||
<TELL The ,PRSO " is probably ">
|
||||
<COND
|
||||
(<FSET? ,PRSO ,TOUCHBIT>
|
||||
<TELL "still in" the .LOC? !\. CR>
|
||||
)
|
||||
(T
|
||||
<TELL "lying around somewhere." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<TELL "That's an excellent question. Just where" verb ,PRSO "are" the ,PRSO !\? CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<TELL "You want to know ">
|
||||
<TELL-Q-WORD>
|
||||
<PRSO-IS .NOT?>
|
||||
<COND
|
||||
(,PRSI
|
||||
<TELL a ,PRSI>
|
||||
)
|
||||
>
|
||||
<TELL !\? CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<COND
|
||||
(<EQUAL? ,PRSI ,INTADJ>
|
||||
<COND
|
||||
(<IS-PRSO-ADJ? .ADJ?>
|
||||
<COND
|
||||
(.NOT?
|
||||
<TELL "Wrong,">
|
||||
)
|
||||
(T
|
||||
<TELL "Right,">
|
||||
)
|
||||
>
|
||||
<PRSO-IS <>>
|
||||
)
|
||||
(T
|
||||
<COND
|
||||
(.NOT?
|
||||
<TELL "Right,">
|
||||
)
|
||||
(T
|
||||
<TELL "Wrong,">
|
||||
)
|
||||
>
|
||||
<PRSO-IS T>
|
||||
)
|
||||
>
|
||||
<TELL !\ >
|
||||
<PRINTB .ADJ?>
|
||||
<TELL !\. CR>
|
||||
)
|
||||
(<EQUAL? ,PRSI ,INTPP>
|
||||
<TELL "So, you say">
|
||||
<PRSO-IS .NOT?>
|
||||
<COND
|
||||
(<AND <SET PREP <P-PP-PREP>>
|
||||
<SET OBJ <P-PP-OBJ>>
|
||||
>
|
||||
<PRINTB .PREP>
|
||||
<TELL the .OBJ>
|
||||
)
|
||||
(T
|
||||
<PRINTB <PP-PREP .LOC?>>
|
||||
<TELL the <NP-PRINT <PP-NOUN .LOC?>>>
|
||||
)
|
||||
>
|
||||
<TELL !\. CR>
|
||||
)
|
||||
(T
|
||||
<TELL "So you think">
|
||||
<PRSO-IS .NOT?>
|
||||
<COND
|
||||
(,PRSI
|
||||
<TELL a ,PRSI>
|
||||
)
|
||||
>
|
||||
<TELL !\? CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;<ROUTINE P-NEGATIVE? ()
|
||||
<ANDB ,PARSE-NOT <PARSE-FLAGS ,PARSE-RESULT>>
|
||||
>
|
||||
|
||||
<ROUTINE TELL-Q-WORD ()
|
||||
<COND
|
||||
(<VERB? BE?>
|
||||
<TELL "if">
|
||||
)
|
||||
(<VERB? WHY>
|
||||
<TELL "why">
|
||||
)
|
||||
(<VERB? WHO>
|
||||
<TELL "who">
|
||||
)
|
||||
(<VERB? WHAT>
|
||||
<TELL "what">
|
||||
)
|
||||
(<VERB? WHERE>
|
||||
<TELL "where">
|
||||
)
|
||||
(<VERB? WHEN>
|
||||
<TELL "when">
|
||||
)
|
||||
(<VERB? HOW>
|
||||
<TELL "how">
|
||||
)
|
||||
(T
|
||||
<PRINTB ,P-PRSA-WORD>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RIGHT-PREP? (PREP OBJ CONT)
|
||||
<COND
|
||||
(<NOT <IN? .OBJ .CONT>>
|
||||
<RFALSE>
|
||||
)
|
||||
(<EQUAL? .PREP ,W?IN ,W?INSIDE>
|
||||
<COND
|
||||
(<RT-SEE-INSIDE? .CONT>
|
||||
<RTRUE>
|
||||
)
|
||||
(T
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<AND <EQUAL? .PREP ,W?ON>
|
||||
<FSET? .CONT ,FL-SURFACE>
|
||||
>
|
||||
<RTRUE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<CONSTANT ADJ-TABLE
|
||||
<LTABLE
|
||||
<VOC "OUTSIDE" ADJ>
|
||||
IS-OUTSIDE?
|
||||
; <VOC "INSIDE" ADJ>
|
||||
; IS-INSIDE?
|
||||
<VOC "OPEN" ADJ>
|
||||
IS-OPEN?
|
||||
<VOC "CLOSED" ADJ>
|
||||
IS-CLOSED?
|
||||
<VOC "LOCKED" ADJ>
|
||||
IS-LOCKED?
|
||||
<VOC "UNLOCKED" ADJ>
|
||||
IS-UNLOCKED?
|
||||
<VOC "DEAD" ADJ>
|
||||
IS-DEAD?
|
||||
<VOC "ALIVE" ADJ>
|
||||
IS-ALIVE?
|
||||
<VOC "QUIET" ADJ>
|
||||
IS-QUIET?
|
||||
<VOC "HERE" ADJ>
|
||||
IS-HERE?
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE IS-QUIET? (OBJ)
|
||||
<RTRUE>
|
||||
>
|
||||
|
||||
<ROUTINE IS-OUTSIDE? (OBJ)
|
||||
<NOT <FSET? ,HERE ,FL-INDOORS>>
|
||||
>
|
||||
|
||||
;<ROUTINE IS-INSIDE? (OBJ)
|
||||
<FSET? ,HERE ,FL-INDOORS>
|
||||
>
|
||||
|
||||
<ROUTINE IS-OPEN? (OBJ)
|
||||
<AND
|
||||
<FSET? .OBJ ,FL-OPENABLE>
|
||||
<FSET? .OBJ ,FL-OPEN>
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE IS-CLOSED? (OBJ)
|
||||
<AND
|
||||
<FSET? .OBJ ,FL-OPENABLE>
|
||||
<NOT <FSET? .OBJ ,FL-OPEN>>
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE IS-LOCKED? (OBJ)
|
||||
<AND
|
||||
<FSET? .OBJ ,FL-OPENABLE>
|
||||
<FSET? .OBJ ,FL-LOCKED>
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE IS-UNLOCKED? (OBJ)
|
||||
<AND
|
||||
<FSET? .OBJ ,FL-OPENABLE>
|
||||
<NOT <FSET? .OBJ ,FL-LOCKED>>
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE IS-DEAD? (OBJ)
|
||||
<AND
|
||||
<FSET? .OBJ ,FL-PERSON>
|
||||
<NOT <FSET? .OBJ ,FL-ALIVE>>
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE IS-ALIVE? (OBJ)
|
||||
<AND
|
||||
<FSET? .OBJ ,FL-PERSON>
|
||||
<FSET? .OBJ ,FL-ALIVE>
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE IS-HERE? (OBJ "AUX" L)
|
||||
<SET L <LOC .OBJ>>
|
||||
<REPEAT ()
|
||||
<COND
|
||||
(<OR <ZERO? .L>
|
||||
<EQUAL? .L ,GLOBAL-OBJECTS ,LOCAL-GLOBALS ,ROOMS>
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(<EQUAL? .L ,HERE>
|
||||
<RTRUE>
|
||||
)
|
||||
(T
|
||||
<SET L <LOC .L>>
|
||||
)
|
||||
>
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE PRSO-IS (NOT? "OPT" (CAP? <>))
|
||||
<COND
|
||||
(.CAP?
|
||||
<TELL The ,PRSO>
|
||||
)
|
||||
(T
|
||||
<TELL the ,PRSO>
|
||||
)
|
||||
>
|
||||
<TELL verb ,PRSO "are">
|
||||
<COND
|
||||
(.NOT?
|
||||
<TELL "n't">
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE IS-PRSO-ADJ? (ADJ "AUX" TMP)
|
||||
<COND
|
||||
(<AND <SET TMP <GETPT ,PRSO ,P?ADJECTIVE>>
|
||||
<INTBL? .ADJ .TMP </ <PTSIZE .TMP> 2>>
|
||||
>
|
||||
<RTRUE>
|
||||
)
|
||||
(<AND <SET TMP <INTBL? .ADJ ,ADJ-TABLE <GET ,ADJ-TABLE 0>>>
|
||||
<APPLY <GET .TMP 1> ,PRSO>
|
||||
>
|
||||
<RTRUE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;<ROUTINE PP? (P N "AUX" (TMP <PARSE-LOC ,PARSE-RESULT>))
|
||||
<COND
|
||||
(<NOT .TMP>
|
||||
<RFALSE>
|
||||
)
|
||||
(<NOT <AND
|
||||
.P
|
||||
<EQUAL? .P <P-PP-PREP>>
|
||||
>
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(<NOT <AND
|
||||
.N
|
||||
<EQUAL? .N <P-PP-OBJ>>
|
||||
>
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(T
|
||||
<RTRUE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE YES-BUT? (STR1 STR2)
|
||||
<COND
|
||||
(<NOT <PARSE-QW ,PARSE-RESULT>>
|
||||
<TELL The ,PRSO !\ .STR1 ", but " .STR2 he ,PRSO !\? CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE V-CAN? ()
|
||||
<YES-BUT? "can" "may">
|
||||
>
|
||||
|
||||
<ROUTINE V-MAY? ()
|
||||
<YES-BUT? "may" "can">
|
||||
>
|
||||
|
||||
<ROUTINE V-DO? ()
|
||||
<COND
|
||||
(<NOT <PARSE-QW ,PARSE-RESULT>>
|
||||
<TELL The+verb ,PRSO "do" ", but why?" CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE V-COULD? ()
|
||||
<YES-BUT? "could" "would">
|
||||
>
|
||||
|
||||
<ROUTINE V-WOULD? ()
|
||||
<YES-BUT? "would" "could">
|
||||
>
|
||||
|
||||
<ROUTINE V-SHOULD? ()
|
||||
<YES-BUT? "should" "will">
|
||||
>
|
||||
|
||||
<ROUTINE V-MIGHT? ()
|
||||
<YES-BUT? "might" "will">
|
||||
>
|
||||
|
||||
<ROUTINE V-WILL? ()
|
||||
<YES-BUT? "will" "should">
|
||||
>
|
||||
|
||||
<ROUTINE V-MUST? ()
|
||||
<YES-BUT? "must" "can">
|
||||
>
|
||||
|
||||
<ROUTINE V-BE? ()
|
||||
<V-BE>
|
||||
>
|
||||
|
||||
<ROUTINE V-WHO ()
|
||||
<V-BE>
|
||||
>
|
||||
|
||||
<ROUTINE V-WHAT ()
|
||||
<V-BE>
|
||||
>
|
||||
|
||||
<ROUTINE V-WHEN ()
|
||||
<V-BE>
|
||||
>
|
||||
|
||||
<ROUTINE V-WHERE ()
|
||||
<V-BE>
|
||||
>
|
||||
|
||||
<ROUTINE V-WHY ()
|
||||
<V-BE>
|
||||
>
|
||||
|
||||
<ROUTINE V-HOW ()
|
||||
<V-BE>
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
58
breds.zabstr
Normal file
58
breds.zabstr
Normal file
|
@ -0,0 +1,58 @@
|
|||
<FLAGS-AND-DEFAULTS (("ONE-BYTE-PARTS-OF-SPEECH" %<>)("IN-ZILCH" T)(
|
||||
"WORD-FLAGS-IN-TABLE" T)) ()>
|
||||
|
||||
<ZZPACKAGE "REDS">
|
||||
<ENTRY RED-BE-FORM RED-BE RED-NOT RED-SNBN RED-SNBA RED-SNBP RED-SNBAP
|
||||
RED-CANDO>
|
||||
<INCLUDE "BASEDEFS" "FIND" "PBITDEFS" "PDEFS">
|
||||
<USE "NEWSTRUC" "PARSER" "PMEM" "PSTACK">
|
||||
<FILE-FLAGS MDL-ZIL?>
|
||||
<BEGIN-SEGMENT 0>
|
||||
<NEW-ADD-WORD "AM" TOBE <> <ORB ,FIRST-PERSON ,PRESENT-TENSE>>
|
||||
<NEW-ADD-WORD "ARE" TOBE <> <ORB ,FIRST-PERSON ,SECOND-PERSON ,THIRD-PERSON ,
|
||||
PRESENT-TENSE ,PLURAL-FLAG>>
|
||||
<NEW-ADD-WORD "IS" TOBE <> <ORB ,THIRD-PERSON ,PRESENT-TENSE>>
|
||||
<NEW-ADD-WORD "WAS" TOBE <> <ORB ,FIRST-PERSON ,THIRD-PERSON ,PAST-TENSE>>
|
||||
<NEW-ADD-WORD "WERE" TOBE <> <ORB ,FIRST-PERSON ,SECOND-PERSON ,THIRD-PERSON ,
|
||||
PAST-TENSE ,PLURAL-FLAG>>
|
||||
<NEW-ADD-WORD "WILL" TOBE <> ,FUTURE-TENSE>
|
||||
<NEW-ADD-WORD "SHALL" TOBE <> ,FUTURE-TENSE>
|
||||
<ADD-WORD "HOW" QWORD>
|
||||
<ADD-WORD "WHAT" QWORD>
|
||||
<ADD-WORD "WHEN" QWORD>
|
||||
<ADD-WORD "WHERE" QWORD>
|
||||
<ADD-WORD "WHO" QWORD>
|
||||
<ADD-WORD "WHY" QWORD>
|
||||
<DEFINE-ROUTINE RED-BE-FORM>
|
||||
<DEFINE-ROUTINE EXCH-4-5-Q>
|
||||
<DEFINE-ROUTINE RED-SBNN>
|
||||
<DEFINE-ROUTINE RED-SNBN>
|
||||
<DEFINE-ROUTINE DETERMINE-SUBJ>
|
||||
<DEFINE-ROUTINE RED-SBNA>
|
||||
<DEFINE-ROUTINE RED-SNBA>
|
||||
<OBJECT INTADJ (LOC GLOBAL-OBJECTS) (DESC "adjective") (SYNONYM L.G)>
|
||||
<DEFINE-ROUTINE RED-SBNP>
|
||||
<DEFINE-ROUTINE RED-SNBP>
|
||||
<DEFINE-ROUTINE RED-SNBAP>
|
||||
<DEFINE-ROUTINE P-PP-OBJ>
|
||||
<DEFINE-ROUTINE P-PP-PREP>
|
||||
<OBJECT INTPP (LOC GLOBAL-OBJECTS) (DESC "prep phrase") (SYNONYM L.G)>
|
||||
<DEFINE-ROUTINE RED-SQBN>
|
||||
<DEFINE-ROUTINE RED-BE>
|
||||
<DEFINE-ROUTINE RED-NOT>
|
||||
<NEW-ADD-WORD "CAN" CANDO <>>
|
||||
<NEW-ADD-WORD "COULD" CANDO <>>
|
||||
<NEW-ADD-WORD "DO" CANDO <>>
|
||||
<NEW-ADD-WORD "DOES" CANDO <VOC "DO"> <ORB ,THIRD-PERSON>>
|
||||
<NEW-ADD-WORD "DID" CANDO <VOC "DO"> ,PAST-TENSE>
|
||||
<NEW-ADD-WORD "MAY" CANDO <>>
|
||||
<NEW-ADD-WORD "MIGHT" CANDO <>>
|
||||
<NEW-ADD-WORD "WILL" CANDO <>>
|
||||
<NEW-ADD-WORD "SHALL" CANDO <VOC "WILL"> ,FUTURE-TENSE>
|
||||
<NEW-ADD-WORD "WOULD" CANDO <>>
|
||||
<NEW-ADD-WORD "SHOULD" CANDO <>>
|
||||
<NEW-ADD-WORD "MUST" CANDO <>>
|
||||
<DEFINE-ROUTINE RED-CANDO>
|
||||
<DEFINE-ROUTINE INSERT-WHAT>
|
||||
<END-SEGMENT>
|
||||
<ENDPACKAGE>
|
572
breds.zap
Normal file
572
breds.zap
Normal file
|
@ -0,0 +1,572 @@
|
|||
|
||||
.SEGMENT "0"
|
||||
|
||||
|
||||
.FUNCT RED-BE-FORM:ANY:0:2,N,TYP
|
||||
PUT PARSE-RESULT,2,TLEXV
|
||||
POP DATA-STACK
|
||||
PUT PARSE-RESULT,1,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT EXCH-4-5-Q:ANY:3:3,RED,N,TYP,X1,X2,X3,X4,X5
|
||||
POP DATA-STACK >X1
|
||||
POP DATA-STACK >X2
|
||||
POP DATA-STACK >X3
|
||||
POP DATA-STACK >X4
|
||||
POP DATA-STACK >X5
|
||||
EQUAL? N,6 \?CCL3
|
||||
DEC 'N
|
||||
POP DATA-STACK
|
||||
PUT PARSE-RESULT,10,STACK
|
||||
JUMP ?CND1
|
||||
?CCL3: PUT PARSE-RESULT,10,0
|
||||
?CND1: CALL2 PMEM?,X3
|
||||
ZERO? STACK /?CCL6
|
||||
XPUSH X3,DATA-STACK /?CND4
|
||||
JUMP ?CND4
|
||||
?CCL6: XPUSH X4,DATA-STACK /?CND4
|
||||
?CND4: XPUSH X5,DATA-STACK /?BOGUS9
|
||||
?BOGUS9: CALL2 PMEM?,X3
|
||||
ZERO? STACK /?CCL12
|
||||
XPUSH X4,DATA-STACK /?CND10
|
||||
JUMP ?CND10
|
||||
?CCL12: XPUSH X3,DATA-STACK /?CND10
|
||||
?CND10: XPUSH X2,DATA-STACK /?BOGUS15
|
||||
?BOGUS15: XPUSH X1,DATA-STACK /?BOGUS16
|
||||
?BOGUS16: GET PARSE-RESULT,16
|
||||
BOR PARSE-QUESTION,STACK
|
||||
PUT PARSE-RESULT,16,STACK
|
||||
CALL RED,N,TYP
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RED-SBNN:ANY:0:2,N,TYP
|
||||
CALL EXCH-4-5-Q,RED-SNBN,N,TYP
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RED-SNBN:ANY:0:2,N,TYP,OK,NPP,OBJ,VERB,X,?TMP1
|
||||
GET PARSE-RESULT,1 >VERB
|
||||
POP DATA-STACK >NPP
|
||||
ADD WORD-FLAG-TABLE,2 >?TMP1
|
||||
GET WORD-FLAG-TABLE,0
|
||||
INTBL? VERB,?TMP1,STACK,132 >X \?CCL6
|
||||
GET X,1
|
||||
JUMP ?CND4
|
||||
?CCL6: PUSH FALSE-VALUE
|
||||
?CND4: BTST STACK,1024 \?CCL3
|
||||
POP DATA-STACK
|
||||
EQUAL? TRUE-VALUE,STACK /?CND1
|
||||
SET 'OK,TRUE-VALUE
|
||||
JUMP ?CND1
|
||||
?CCL3: POP DATA-STACK
|
||||
EQUAL? TRUE-VALUE,STACK \?CND1
|
||||
SET 'OK,TRUE-VALUE
|
||||
?CND1: ZERO? OK /FALSE
|
||||
CALL2 DETERMINE-SUBJ,VERB
|
||||
ZERO? STACK /FALSE
|
||||
CALL DETERMINE-OBJ,NPP,2 >OBJ
|
||||
ZERO? OBJ \?CCL19
|
||||
CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,NPP
|
||||
RSTACK
|
||||
?CCL19: GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD26
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN24
|
||||
?PRD26: GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN24: BTST STACK,32768 /?CCL21
|
||||
GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD29
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN27
|
||||
?PRD29: GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN27: BAND STACK,256
|
||||
BAND STACK,32767
|
||||
ZERO? STACK \FALSE
|
||||
?CCL21: PUT PARSE-RESULT,6,OBJ
|
||||
RETURN PARSE-RESULT
|
||||
|
||||
|
||||
.FUNCT DETERMINE-SUBJ:ANY:1:3,VERB,SHORT,N1,DATA,TMP,OBJ1,?TMP1
|
||||
ZERO? SHORT \?CND1
|
||||
POP DATA-STACK
|
||||
EQUAL? TRUE-VALUE,STACK /?CND1
|
||||
GET PARSE-RESULT,16
|
||||
BOR PARSE-NOT,STACK
|
||||
PUT PARSE-RESULT,16,STACK
|
||||
?CND1: POP DATA-STACK
|
||||
ZERO? SHORT /?CCL7
|
||||
POP DATA-STACK >TMP
|
||||
PUT PARSE-RESULT,10,TMP
|
||||
JUMP ?CND5
|
||||
?CCL7: GET PARSE-RESULT,10 >TMP
|
||||
?CND5: EQUAL? TMP,0,1 /?CCL9
|
||||
GET TMP,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD16
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN14
|
||||
?PRD16: GET TMP,3
|
||||
GET STACK,4
|
||||
?PEN14: BTST STACK,32768 /?CCL9
|
||||
GET TMP,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD19
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN17
|
||||
?PRD19: GET TMP,3
|
||||
GET STACK,4
|
||||
?PEN17: BAND STACK,256
|
||||
BAND STACK,32767
|
||||
ZERO? STACK \?CND8
|
||||
?CCL9: GET PARSE-RESULT,16
|
||||
BTST STACK,2 \?CCL22
|
||||
SET 'TMP,W?BE?
|
||||
JUMP ?CND8
|
||||
?CCL22: SET 'TMP,W?BE
|
||||
?CND8: GET TMP,3 >DATA
|
||||
ZERO? SHORT /?CCL28
|
||||
GET DATA,2 >TMP
|
||||
JUMP ?CND26
|
||||
?CCL28: GET DATA,3 >TMP
|
||||
?CND26: ZERO? TMP \?CCL25
|
||||
CALL PARSER-ERROR,0,PARSER-ERROR-TMNOUN
|
||||
RSTACK
|
||||
?CCL25: CALL GET-SYNTAX,TMP,1,1 >TMP
|
||||
ZERO? TMP \?CCL30
|
||||
CALL PARSER-ERROR,0,PARSER-ERROR-NOUND
|
||||
RSTACK
|
||||
?CCL30: ZERO? N1 /?PRD35
|
||||
PUSH N1
|
||||
JUMP ?PEN33
|
||||
?PRD35: POP DATA-STACK >N1
|
||||
PUSH N1
|
||||
?PEN33: CALL DETERMINE-OBJ,STACK,1 >OBJ1
|
||||
ZERO? OBJ1 \?CCL32
|
||||
CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,N1
|
||||
RSTACK
|
||||
?CCL32: PUT PARSE-RESULT,5,OBJ1
|
||||
GET TMP,0
|
||||
PUT PARSE-RESULT,4,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RED-SBNA:ANY:0:2,N,TYP
|
||||
CALL EXCH-4-5-Q,RED-SNBA,N,TYP
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RED-SNBA:ANY:0:2,N,TYP,OK,ADJ,VERB,X,?TMP1
|
||||
GET PARSE-RESULT,1 >VERB
|
||||
POP DATA-STACK >ADJ
|
||||
ADD WORD-FLAG-TABLE,2 >?TMP1
|
||||
GET WORD-FLAG-TABLE,0
|
||||
INTBL? VERB,?TMP1,STACK,132 >X \?CCL6
|
||||
GET X,1
|
||||
JUMP ?CND4
|
||||
?CCL6: PUSH FALSE-VALUE
|
||||
?CND4: BTST STACK,1024 \?CCL3
|
||||
POP DATA-STACK
|
||||
EQUAL? TRUE-VALUE,STACK /?CND1
|
||||
SET 'OK,TRUE-VALUE
|
||||
JUMP ?CND1
|
||||
?CCL3: POP DATA-STACK
|
||||
EQUAL? TRUE-VALUE,STACK \?CND1
|
||||
SET 'OK,TRUE-VALUE
|
||||
?CND1: ZERO? OK /FALSE
|
||||
CALL2 DETERMINE-SUBJ,VERB
|
||||
ZERO? STACK /FALSE
|
||||
GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD24
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN22
|
||||
?PRD24: GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN22: BTST STACK,32768 /?CCL19
|
||||
GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD27
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN25
|
||||
?PRD27: GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN25: BAND STACK,256
|
||||
BAND STACK,32767
|
||||
ZERO? STACK \FALSE
|
||||
?CCL19: CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >X
|
||||
PUT X,1,1
|
||||
PUT X,3,INTADJ
|
||||
PUT PARSE-RESULT,6,X
|
||||
PUT PARSE-RESULT,11,ADJ
|
||||
RETURN PARSE-RESULT
|
||||
|
||||
|
||||
.FUNCT RED-SBNP:ANY:0:2,N,TYP
|
||||
CALL EXCH-4-5-Q,RED-SNBP,N,TYP
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RED-SNBP:ANY:0:2,N,TYP,OK,PP,VERB,X,?TMP1
|
||||
GET PARSE-RESULT,1 >VERB
|
||||
POP DATA-STACK >PP
|
||||
ADD WORD-FLAG-TABLE,2 >?TMP1
|
||||
GET WORD-FLAG-TABLE,0
|
||||
INTBL? VERB,?TMP1,STACK,132 >X \?CCL6
|
||||
GET X,1
|
||||
JUMP ?CND4
|
||||
?CCL6: PUSH FALSE-VALUE
|
||||
?CND4: BTST STACK,1024 \?CCL3
|
||||
POP DATA-STACK
|
||||
EQUAL? TRUE-VALUE,STACK /?CND1
|
||||
SET 'OK,TRUE-VALUE
|
||||
JUMP ?CND1
|
||||
?CCL3: POP DATA-STACK
|
||||
EQUAL? TRUE-VALUE,STACK \?CND1
|
||||
SET 'OK,TRUE-VALUE
|
||||
?CND1: ZERO? OK /FALSE
|
||||
CALL2 DETERMINE-SUBJ,VERB
|
||||
ZERO? STACK /FALSE
|
||||
GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD25
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN23
|
||||
?PRD25: GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN23: BTST STACK,32768 /?CCL20
|
||||
GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD28
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN26
|
||||
?PRD28: GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN26: BAND STACK,256
|
||||
BAND STACK,32767
|
||||
ZERO? STACK \FALSE
|
||||
?CCL20: CALL DO-PMEM-ALLOC,4,NOUN-PHRASE-MIN-LENGTH >X
|
||||
PUT X,1,1
|
||||
PUT X,3,INTPP
|
||||
PUT PARSE-RESULT,6,X
|
||||
GET PARSE-RESULT,3
|
||||
CALL REDUCE-LOCATION,PP,STACK,2 >OK
|
||||
ZERO? OK /?CCL31
|
||||
PUT PARSE-RESULT,9,OK
|
||||
RETURN PARSE-RESULT
|
||||
?CCL31: PUT PARSE-RESULT,9,PP
|
||||
RETURN PARSE-RESULT
|
||||
|
||||
|
||||
.FUNCT RED-SNBAP:ANY:0:2,N,TYP,OK,ADJ,PP,VERB,X,?TMP1
|
||||
GET PARSE-RESULT,1 >VERB
|
||||
POP DATA-STACK >PP
|
||||
POP DATA-STACK >ADJ
|
||||
ADD WORD-FLAG-TABLE,2 >?TMP1
|
||||
GET WORD-FLAG-TABLE,0
|
||||
INTBL? VERB,?TMP1,STACK,132 >X \?CCL6
|
||||
GET X,1
|
||||
JUMP ?CND4
|
||||
?CCL6: PUSH FALSE-VALUE
|
||||
?CND4: BTST STACK,1024 \?CCL3
|
||||
POP DATA-STACK
|
||||
EQUAL? TRUE-VALUE,STACK /?CND1
|
||||
SET 'OK,TRUE-VALUE
|
||||
JUMP ?CND1
|
||||
?CCL3: POP DATA-STACK
|
||||
EQUAL? TRUE-VALUE,STACK \?CND1
|
||||
SET 'OK,TRUE-VALUE
|
||||
?CND1: ZERO? OK /FALSE
|
||||
CALL2 DETERMINE-SUBJ,VERB
|
||||
ZERO? STACK /FALSE
|
||||
GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD25
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN23
|
||||
?PRD25: GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN23: BTST STACK,32768 /?CCL20
|
||||
GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD28
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN26
|
||||
?PRD28: GET PARSE-RESULT,5
|
||||
GET STACK,4
|
||||
GET STACK,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN26: BAND STACK,256
|
||||
BAND STACK,32767
|
||||
ZERO? STACK \FALSE
|
||||
?CCL20: CALL DO-PMEM-ALLOC,4,4 >X
|
||||
PUT X,1,1
|
||||
PUT X,3,INTPP
|
||||
SET 'OK,X
|
||||
PUT PARSE-RESULT,6,OK
|
||||
GET PARSE-RESULT,3
|
||||
CALL REDUCE-LOCATION,PP,STACK,2 >OK
|
||||
ZERO? OK /?CCL31
|
||||
PUT PARSE-RESULT,9,OK
|
||||
JUMP ?CND29
|
||||
?CCL31: GET PP,2
|
||||
CALL2 DETERMINE-OBJ,STACK >OK
|
||||
ZERO? OK /?CND32
|
||||
PUT PP,2,OK
|
||||
PUTB PP,1,PMEM-TYPE-LOCATION
|
||||
?CND32: PUT PARSE-RESULT,9,PP
|
||||
?CND29: PUT PARSE-RESULT,11,ADJ
|
||||
RETURN PARSE-RESULT
|
||||
|
||||
|
||||
.FUNCT P-PP-OBJ:ANY:0:0,TMP
|
||||
GET PARSE-RESULT,9 >TMP
|
||||
ZERO? TMP /FALSE
|
||||
GETB TMP,1
|
||||
EQUAL? STACK,6 \FALSE
|
||||
GET TMP,2 >TMP
|
||||
ZERO? TMP /FALSE
|
||||
GET TMP,3
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT P-PP-PREP:ANY:0:0,TMP
|
||||
GET PARSE-RESULT,9 >TMP
|
||||
ZERO? TMP /FALSE
|
||||
GET TMP,1
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RED-SQBN:ANY:0:2,N,TYP,?TMP1
|
||||
GET PARSE-RESULT,1 >?TMP1
|
||||
POP DATA-STACK
|
||||
CALL DETERMINE-SUBJ,?TMP1,TRUE-VALUE,STACK
|
||||
ZERO? STACK /FALSE
|
||||
RETURN PARSE-RESULT
|
||||
|
||||
|
||||
.FUNCT RED-BE:ANY:0:2,N,TYP,E
|
||||
EQUAL? N,1 \TRUE
|
||||
POP DATA-STACK >E
|
||||
EQUAL? W?BE,E \FALSE
|
||||
RETURN E
|
||||
|
||||
|
||||
.FUNCT RED-NOT:ANY:0:2,N,TYP,E
|
||||
EQUAL? N,1 \TRUE
|
||||
POP DATA-STACK >E
|
||||
EQUAL? W?NOT,E \FALSE
|
||||
RETURN E
|
||||
|
||||
|
||||
.FUNCT RED-CANDO:ANY:0:2,N,TYP,TMP,OBJ,SUBJ,WD,END,?TMP1
|
||||
ZERO? N /TRUE
|
||||
EQUAL? N,1 \?CCL5
|
||||
POP DATA-STACK >SUBJ
|
||||
GET SUBJ,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD13
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN11
|
||||
?PRD13: GET SUBJ,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN11: BTST STACK,32768 /?CCL8
|
||||
GET SUBJ,2
|
||||
GET STACK,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD16
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN14
|
||||
?PRD16: GET SUBJ,2
|
||||
GET STACK,3
|
||||
GET STACK,4
|
||||
?PEN14: BAND STACK,256
|
||||
BAND STACK,32767
|
||||
ZERO? STACK \FALSE
|
||||
?CCL8: CALL2 DETERMINE-OBJ,SUBJ >OBJ
|
||||
ZERO? OBJ \?CCL19
|
||||
CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,SUBJ
|
||||
RSTACK
|
||||
?CCL19: GET OBJ,1
|
||||
EQUAL? STACK,1 \FALSE
|
||||
GET OBJ,3
|
||||
FSET? STACK,PERSONBIT \FALSE
|
||||
PUT PARSE-RESULT,13,OBJ
|
||||
RTRUE
|
||||
?CCL5: POP DATA-STACK >SUBJ
|
||||
CALL2 PMEM?,SUBJ
|
||||
ZERO? STACK /?CCL26
|
||||
POP DATA-STACK
|
||||
GET PARSE-RESULT,16
|
||||
BOR PARSE-NOT,STACK
|
||||
PUT PARSE-RESULT,16,STACK
|
||||
JUMP ?CND24
|
||||
?CCL26: EQUAL? TRUE-VALUE,SUBJ /?CND27
|
||||
GET PARSE-RESULT,16
|
||||
BOR PARSE-NOT,STACK
|
||||
PUT PARSE-RESULT,16,STACK
|
||||
?CND27: POP DATA-STACK >SUBJ
|
||||
EQUAL? N,3 \?CND24
|
||||
PUT PARSE-RESULT,14,SUBJ
|
||||
?CND24: POP DATA-STACK >TMP
|
||||
EQUAL? N,3 \?CCL33
|
||||
SET 'SUBJ,TMP
|
||||
GET PARSE-RESULT,14 >TMP
|
||||
JUMP ?CND31
|
||||
?CCL33: GET PARSE-RESULT,16
|
||||
BOR PARSE-QUESTION,STACK
|
||||
PUT PARSE-RESULT,16,STACK
|
||||
PUT PARSE-RESULT,14,TMP
|
||||
?CND31: GET TMP,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD42
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN40
|
||||
?PRD42: GET TMP,3
|
||||
GET STACK,4
|
||||
?PEN40: BTST STACK,32768 /?PRD37
|
||||
GET TMP,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD45
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN43
|
||||
?PRD45: GET TMP,3
|
||||
GET STACK,4
|
||||
?PEN43: BAND STACK,1
|
||||
BAND STACK,32767
|
||||
ZERO? STACK \?CND34
|
||||
?PRD37: GET TMP,3 >OBJ
|
||||
ZERO? OBJ /?CND34
|
||||
SET 'TMP,OBJ
|
||||
?CND34: GET TMP,3
|
||||
GET STACK,2 >TMP
|
||||
ZERO? TMP \?CCL48
|
||||
CALL PARSER-ERROR,0,PARSER-ERROR-TMNOUN
|
||||
RSTACK
|
||||
?CCL48: CALL GET-SYNTAX,TMP,1,1 >TMP
|
||||
ZERO? TMP \?CCL50
|
||||
CALL PARSER-ERROR,0,PARSER-ERROR-NOUND
|
||||
RSTACK
|
||||
?CCL50: CALL DETERMINE-OBJ,SUBJ,1 >OBJ
|
||||
ZERO? OBJ \?CCL52
|
||||
CALL PARSER-ERROR,0,PARSER-ERROR-NOOBJ,SUBJ
|
||||
RSTACK
|
||||
?CCL52: PUT PARSE-RESULT,13,OBJ
|
||||
PUT PARSE-RESULT,15,TMP
|
||||
EQUAL? N,3 /TRUE
|
||||
POP DATA-STACK >TMP
|
||||
EQUAL? TRUE-VALUE,TMP \?CCL57
|
||||
PUSH 0
|
||||
JUMP ?CND55
|
||||
?CCL57: PUSH TMP
|
||||
?CND55: PUT PARSE-RESULT,10,STACK
|
||||
EQUAL? TMP,W?WHAT,W?WHO \TRUE
|
||||
INTBL? W?PERIOD,TLEXV,P-LEN,132 >SUBJ /?BOGUS60
|
||||
?BOGUS60: ZERO? SUBJ \?CND61
|
||||
INTBL? W?THEN,TLEXV,P-LEN,132 >SUBJ /?CND61
|
||||
?CND61: ZERO? SUBJ \?CND64
|
||||
INTBL? W??,TLEXV,P-LEN,132 >SUBJ /?CND64
|
||||
?CND64: ZERO? SUBJ \?CND67
|
||||
SUB P-LEN,1
|
||||
MUL STACK,4
|
||||
ADD TLEXV,STACK >SUBJ
|
||||
?CND67: SET 'END,4
|
||||
?PRG69: GET SUBJ,0 >WD
|
||||
EQUAL? TMP,WD /TRUE
|
||||
GET WD,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD80
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN78
|
||||
?PRD80: GET WD,3
|
||||
GET STACK,4
|
||||
?PEN78: BTST STACK,32768 /?CCL75
|
||||
GET WD,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD83
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN81
|
||||
?PRD83: GET WD,3
|
||||
GET STACK,4
|
||||
?PEN81: BAND STACK,1
|
||||
BAND STACK,32767
|
||||
ZERO? STACK /?CCL75
|
||||
ADD SUBJ,4
|
||||
ICALL INSERT-WHAT,TMP,STACK
|
||||
RTRUE
|
||||
?CCL75: GET WD,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD90
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN88
|
||||
?PRD90: GET WD,3
|
||||
GET STACK,4
|
||||
?PEN88: BTST STACK,32768 /?CCL85
|
||||
GET WD,4 >?TMP1
|
||||
ZERO? ?TMP1 /?PRD93
|
||||
PUSH ?TMP1
|
||||
JUMP ?PEN91
|
||||
?PRD93: GET WD,3
|
||||
GET STACK,4
|
||||
?PEN91: BAND STACK,2048
|
||||
BAND STACK,32767
|
||||
ZERO? STACK /?CCL85
|
||||
ADD SUBJ,END
|
||||
ICALL INSERT-WHAT,TMP,STACK
|
||||
RTRUE
|
||||
?CCL85: SUB SUBJ,4 >SUBJ
|
||||
GRTR? TLEXV,SUBJ \?PRG69
|
||||
SET 'END,0
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT INSERT-WHAT:ANY:2:2,TMP,SUBJ
|
||||
SUB SUBJ,4
|
||||
GET STACK,0
|
||||
EQUAL? TMP,STACK /FALSE
|
||||
SUB SUBJ,P-LEXV
|
||||
DIV STACK,2
|
||||
ICALL INSERT-ADJS-WD,STACK,TMP
|
||||
INC 'P-OLEN
|
||||
CALL2 COPY-INPUT,1
|
||||
RSTACK
|
||||
|
||||
.ENDSEG
|
||||
|
||||
.ENDI
|
25
command.zabstr
Normal file
25
command.zabstr
Normal file
|
@ -0,0 +1,25 @@
|
|||
|
||||
<ROOM RM-COMMAND-MODULE (LOC ROOMS) (DESC "command module") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM MODULE) (ADJECTIVE COMMAND) (AFT TO RM-CORRIDOR) (GLOBAL
|
||||
LG-WALL RM-CORRIDOR) (ACTION RT-RM-COMMAND-MODULE)>
|
||||
<DEFINE-ROUTINE RT-RM-COMMAND-MODULE>
|
||||
<OBJECT TH-MONITORS (LOC RM-COMMAND-MODULE) (DESC "monitors") (FLAGS FL-NO-DESC
|
||||
) (SYNONYM MONITOR MONITORS) (ACTION RT-TH-MONITORS)>
|
||||
<DEFINE-ROUTINE RT-TH-MONITORS>
|
||||
<OBJECT TH-COMMAND-CHAIR (LOC RM-COMMAND-MODULE) (DESC "chair") (FLAGS
|
||||
FL-NO-DESC) (SYNONYM CHAIR) (ADJECTIVE COMMAND) (ACTION RT-TH-COMMAND-CHAIR)>
|
||||
<DEFINE-ROUTINE RT-TH-COMMAND-CHAIR>
|
||||
<DEFINE-ROUTINE RT-COMMAND-MENU>
|
||||
<DEFINE-ROUTINE RT-EMERGENCY-MENU>
|
||||
<DEFINE-ROUTINE RT-ROV-MENU>
|
||||
<DEFINE-ROUTINE RT-AIR-MENU>
|
||||
<DEFINE-ROUTINE RT-GAS-LEVEL-MSG>
|
||||
<DEFINE-ROUTINE RT-POWER-MENU>
|
||||
<DEFINE-ROUTINE RT-LIGHT-MENU>
|
||||
<DEFINE-ROUTINE RT-SUPPORT-MENU>
|
||||
<GLOBAL GL-WATER-PUMP-ON <> <> BYTE>
|
||||
<DEFINE-ROUTINE RT-PUMP-MENU>
|
||||
<OBJECT TH-DESCRAMBLER-CONTROL-BOX (LOC TH-BIN) (DESC "descrambler control box"
|
||||
) (MENU "control box") (SYNONYM DESCRAMBLER BOX) (ADJECTIVE CONTROL DESCRAMBLER
|
||||
) (ACTION RT-TH-DESCRAMBLER-CONTROL-BOX)>
|
||||
<DEFINE-ROUTINE RT-TH-DESCRAMBLER-CONTROL-BOX>
|
510
command.zap
Normal file
510
command.zap
Normal file
|
@ -0,0 +1,510 @@
|
|||
|
||||
|
||||
.FUNCT RT-RM-COMMAND-MODULE:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTC TAB
|
||||
PRINTI "You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: ICALL RT-PRINT-OBJ,RM-COMMAND-MODULE,K-ART-THE
|
||||
PRINTI ", a long narrow cabin like the inside of a Winnebago packed with instrumentation. At the far end, a chair sits in front of a bank of monitors. The only exit is in the aft wall."
|
||||
CRLF
|
||||
RFALSE
|
||||
?CCL3: EQUAL? CONTEXT,M-BEG \?CCL8
|
||||
EQUAL? PRSA,V?SIT \FALSE
|
||||
EQUAL? PRSO,ROOMS \FALSE
|
||||
CALL1 RT-COMMAND-MENU
|
||||
RSTACK
|
||||
?CCL8: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-MONITORS:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTC TAB
|
||||
PRINTR "The monitors glow with data gathered from all over Deepcore."
|
||||
?CCL5: EQUAL? PRSA,V?SIT \FALSE
|
||||
CALL1 RT-COMMAND-MENU
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-TH-COMMAND-CHAIR:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTC TAB
|
||||
PRINTR "The chair is right in front of the main control panel."
|
||||
?CCL5: EQUAL? PRSA,V?ENTER,V?SIT \FALSE
|
||||
CALL1 RT-COMMAND-MENU
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-COMMAND-MENU:ANY:0:0,C,L,ON?,X1,Y1,X2,Y2,?TMP2,?TMP1
|
||||
SET 'X1,1
|
||||
CALL2 L-PIXELS,4 >Y1
|
||||
CALL2 C-PIXELS,16 >X2
|
||||
CALL2 L-PIXELS,12 >Y2
|
||||
MOUSE-LIMIT -1
|
||||
CLEAR -1
|
||||
GET 0,18 >?TMP1
|
||||
MUL 6,GL-FONT-Y
|
||||
SUB ?TMP1,STACK
|
||||
ADD 1,STACK
|
||||
WINPOS 0,STACK,1
|
||||
MUL 6,GL-FONT-Y >?TMP1
|
||||
GET 0,17
|
||||
WINSIZE 0,?TMP1,STACK
|
||||
ADD GL-FONT-Y,1
|
||||
WINPOS 2,STACK,1
|
||||
GET 0,18 >?TMP2
|
||||
MUL 7,GL-FONT-Y
|
||||
SUB ?TMP2,STACK >?TMP1
|
||||
GET 0,17
|
||||
WINSIZE 2,?TMP1,STACK
|
||||
WINPOS 7,1,1
|
||||
GET 0,18 >?TMP1
|
||||
GET 0,17
|
||||
WINSIZE 7,?TMP1,STACK
|
||||
SET 'GL-SL-HERE,FALSE-VALUE
|
||||
?PRG1: CLEAR 2
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
SCREEN 2
|
||||
CURSET 1,1
|
||||
PRINTI "Main menu"
|
||||
ICALL CCURSET,4,1
|
||||
PRINTI "Emergency"
|
||||
ICALL CCURSET,4,15
|
||||
PRINTC 69
|
||||
ICALL CCURSET,5,1
|
||||
PRINTI "ROV"
|
||||
ICALL CCURSET,5,15
|
||||
PRINTC 82
|
||||
ICALL CCURSET,6,1
|
||||
PRINTI "Air"
|
||||
ICALL CCURSET,6,15
|
||||
PRINTC 65
|
||||
ICALL CCURSET,7,1
|
||||
PRINTI "Power"
|
||||
ICALL CCURSET,7,15
|
||||
PRINTC 80
|
||||
ICALL CCURSET,8,1
|
||||
PRINTI "Lights"
|
||||
ICALL CCURSET,8,15
|
||||
PRINTC 76
|
||||
ICALL CCURSET,9,1
|
||||
PRINTI "Life Support"
|
||||
ICALL CCURSET,9,15
|
||||
PRINTC 83
|
||||
ICALL CCURSET,10,1
|
||||
PRINTI "Pump"
|
||||
ICALL CCURSET,10,15
|
||||
PRINTC 77
|
||||
ICALL CCURSET,11,1
|
||||
PRINTI "Exit"
|
||||
ICALL CCURSET,11,15
|
||||
PRINTC 88
|
||||
?PRG3: SCREEN 0
|
||||
SET 'GL-INPUT-TIMEOUT,FALSE-VALUE
|
||||
INPUT 1,3,RT-STOP-READ >C
|
||||
ZERO? GL-INPUT-TIMEOUT \?CCL7
|
||||
EQUAL? C,K-CLICK1,K-CLICK2 \?CCL10
|
||||
CALL MOUSE-INPUT?,2,X1,Y1,X2,Y2
|
||||
ZERO? STACK /?CCL13
|
||||
CALL2 PIXELS-L,GL-MOUSE-Y >L
|
||||
EQUAL? L,1 \?CCL16
|
||||
SET 'C,101
|
||||
JUMP ?REP4
|
||||
?CCL16: EQUAL? L,2 \?CCL18
|
||||
SET 'C,114
|
||||
JUMP ?REP4
|
||||
?CCL18: EQUAL? L,3 \?CCL20
|
||||
SET 'C,97
|
||||
JUMP ?REP4
|
||||
?CCL20: EQUAL? L,4 \?CCL22
|
||||
SET 'C,112
|
||||
JUMP ?REP4
|
||||
?CCL22: EQUAL? L,5 \?CCL24
|
||||
SET 'C,108
|
||||
JUMP ?REP4
|
||||
?CCL24: EQUAL? L,6 \?CCL26
|
||||
SET 'C,115
|
||||
JUMP ?REP4
|
||||
?CCL26: EQUAL? L,7 \?CCL28
|
||||
SET 'C,109
|
||||
JUMP ?REP4
|
||||
?CCL28: SET 'C,120
|
||||
JUMP ?REP4
|
||||
?CCL13: SOUND S-BEEP
|
||||
JUMP ?PRG3
|
||||
?CCL10: LESS? C,65 /?CND29
|
||||
GRTR? C,90 /?CND29
|
||||
ADD C,32 >C
|
||||
?CND29: EQUAL? C,101,114,97 /?REP4
|
||||
EQUAL? C,112,108,115 /?REP4
|
||||
EQUAL? C,109,120 /?REP4
|
||||
SOUND S-BEEP
|
||||
JUMP ?PRG3
|
||||
?CCL7: SCREEN 2
|
||||
ICALL CCURSET,4,1
|
||||
ZERO? ON? /?PRT41
|
||||
SET 'ON?,0
|
||||
JUMP ?PRE43
|
||||
?PRT41: SET 'ON?,1
|
||||
?PRE43: ZERO? ON? /?CND39
|
||||
HLIGHT K-H-INV
|
||||
?CND39: PRINTI "Emergency"
|
||||
HLIGHT K-H-NRM
|
||||
JUMP ?PRG3
|
||||
?REP4: EQUAL? C,101 \?CCL46
|
||||
ICALL1 RT-EMERGENCY-MENU
|
||||
JUMP ?PRG1
|
||||
?CCL46: EQUAL? C,114 \?CCL48
|
||||
ICALL1 RT-ROV-MENU
|
||||
JUMP ?PRG1
|
||||
?CCL48: EQUAL? C,97 \?CCL50
|
||||
ICALL1 RT-AIR-MENU
|
||||
JUMP ?PRG1
|
||||
?CCL50: EQUAL? C,112 \?CCL52
|
||||
ICALL1 RT-POWER-MENU
|
||||
JUMP ?PRG1
|
||||
?CCL52: EQUAL? C,108 \?CCL54
|
||||
ICALL1 RT-LIGHT-MENU
|
||||
JUMP ?PRG1
|
||||
?CCL54: EQUAL? C,115 \?CCL56
|
||||
ICALL1 RT-SUPPORT-MENU
|
||||
JUMP ?PRG1
|
||||
?CCL56: EQUAL? C,109 \?CCL58
|
||||
ICALL1 RT-PUMP-MENU
|
||||
JUMP ?PRG1
|
||||
?CCL58: EQUAL? C,120 \?PRG1
|
||||
CLEAR -1
|
||||
ICALL1 INIT-STATUS-LINE
|
||||
SCREEN 0
|
||||
PRINTC TAB
|
||||
PRINTR "You get up from the command chair."
|
||||
|
||||
|
||||
.FUNCT RT-EMERGENCY-MENU:ANY:0:0,X1,Y1,X2,Y2,C,L
|
||||
SET 'X1,1
|
||||
CALL2 L-PIXELS,4 >Y1
|
||||
CALL2 C-PIXELS,25 >X2
|
||||
CALL2 L-PIXELS,6 >Y2
|
||||
CLEAR 2
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
SCREEN 2
|
||||
CURSET 1,1
|
||||
PRINTI "Emergency menu"
|
||||
ICALL CCURSET,4,1
|
||||
HLIGHT K-H-INV
|
||||
ZERO? GL-KLAXON-ON /?CCL3
|
||||
PRINTI "ON "
|
||||
JUMP ?CND1
|
||||
?CCL3: PRINTI "OFF"
|
||||
?CND1: HLIGHT K-H-NRM
|
||||
ICALL CCURSET,4,4
|
||||
PRINTI "Emergency klaxons"
|
||||
ICALL CCURSET,4,24
|
||||
PRINTC 75
|
||||
HLIGHT K-H-NRM
|
||||
ICALL CCURSET,5,4
|
||||
PRINTI "Exit"
|
||||
ICALL CCURSET,5,24
|
||||
PRINTC 88
|
||||
?PRG4: SCREEN 0
|
||||
INPUT 1 >C
|
||||
EQUAL? C,K-CLICK1,K-CLICK2 \?CCL8
|
||||
CALL MOUSE-INPUT?,2,X1,Y1,X2,Y2
|
||||
ZERO? STACK /?CND6
|
||||
CALL2 PIXELS-L,GL-MOUSE-Y >L
|
||||
EQUAL? L,1 \?CCL13
|
||||
SET 'C,107
|
||||
JUMP ?CND6
|
||||
?CCL13: SET 'C,120
|
||||
JUMP ?CND6
|
||||
?CCL8: LESS? C,65 /?CND6
|
||||
GRTR? C,90 /?CND6
|
||||
ADD C,32 >C
|
||||
?CND6: EQUAL? C,107 \?CCL19
|
||||
SCREEN 2
|
||||
ICALL CCURSET,4,1
|
||||
HLIGHT K-H-INV
|
||||
ZERO? GL-KLAXON-ON /?PRT23
|
||||
SET 'GL-KLAXON-ON,0
|
||||
JUMP ?PRE25
|
||||
?PRT23: SET 'GL-KLAXON-ON,1
|
||||
?PRE25: ZERO? GL-KLAXON-ON /?CCL22
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-KLAXON,STACK
|
||||
PRINTI "ON "
|
||||
JUMP ?CND20
|
||||
?CCL22: ICALL2 RT-DEQUEUE,RT-I-KLAXON
|
||||
PRINTI "OFF"
|
||||
?CND20: HLIGHT K-H-NRM
|
||||
JUMP ?PRG4
|
||||
?CCL19: EQUAL? C,120 /TRUE
|
||||
SOUND S-BEEP
|
||||
JUMP ?PRG4
|
||||
|
||||
|
||||
.FUNCT RT-ROV-MENU:ANY:0:0
|
||||
CLEAR 2
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
SCREEN 2
|
||||
CURSET 1,1
|
||||
PRINTI "R.O.V. menu"
|
||||
SCREEN 0
|
||||
INPUT 1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-AIR-MENU:ANY:0:0
|
||||
CLEAR 2
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
SCREEN 2
|
||||
CURSET 1,1
|
||||
PRINTI "Breathing Mix menu"
|
||||
ICALL CCURSET,4,1
|
||||
PRINTI "Oxygen: "
|
||||
ICALL RT-PRINT-FLOAT,GL-OXYGEN-QTY,K-OXYGEN-FACTOR
|
||||
PRINTI "% - "
|
||||
ICALL RT-GAS-LEVEL-MSG,GL-OXYGEN-QTY,K-OXY-LOW-1,K-OXY-HIGH-1,K-OXY-NOM
|
||||
PRINTI "
|
||||
Carbon dioxide: "
|
||||
ICALL RT-PRINT-FLOAT,GL-CO2-QTY,K-CO2-FACTOR
|
||||
PRINTI "% - "
|
||||
ICALL RT-GAS-LEVEL-MSG,GL-CO2-QTY,-1,K-CO2-HIGH-1,K-CO2-NOM
|
||||
PRINTI "
|
||||
Nitrogen: "
|
||||
ICALL RT-PRINT-FLOAT,GL-NITROGEN-QTY,K-NITROGEN-FACTOR
|
||||
PRINTI "% - "
|
||||
ICALL RT-GAS-LEVEL-MSG,GL-NITROGEN-QTY,K-NIT-LOW-1,K-NIT-HIGH-1,K-NIT-NOM
|
||||
PRINTI "
|
||||
Helium: "
|
||||
ICALL RT-PRINT-FLOAT,GL-HELIUM-QTY,K-HELIUM-FACTOR
|
||||
PRINTI "%
|
||||
"
|
||||
SCREEN 0
|
||||
INPUT 1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-GAS-LEVEL-MSG:ANY:4:4,QTY,LOW,HIGH,NOM
|
||||
GRTR? QTY,LOW /?CCL3
|
||||
PRINTI "low"
|
||||
RTRUE
|
||||
?CCL3: LESS? QTY,HIGH /?CCL5
|
||||
PRINTI "high"
|
||||
RTRUE
|
||||
?CCL5: EQUAL? QTY,NOM \?CCL7
|
||||
PRINTI "nominal"
|
||||
RTRUE
|
||||
?CCL7: LESS? QTY,NOM \?CCL9
|
||||
PRINTI "less than nominal"
|
||||
RTRUE
|
||||
?CCL9: PRINTI "more than nominal"
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-POWER-MENU:ANY:0:0
|
||||
CLEAR 2
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
SCREEN 2
|
||||
CURSET 1,1
|
||||
PRINTI "Power menu"
|
||||
SCREEN 0
|
||||
INPUT 1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-LIGHT-MENU:ANY:0:0
|
||||
CLEAR 2
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
SCREEN 2
|
||||
CURSET 1,1
|
||||
PRINTI "Lighting menu"
|
||||
SCREEN 0
|
||||
INPUT 1
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-SUPPORT-MENU:ANY:0:0,X1,Y1,X2,Y2,C,L
|
||||
SET 'X1,1
|
||||
CALL2 L-PIXELS,4 >Y1
|
||||
CALL2 C-PIXELS,28 >X2
|
||||
CALL2 L-PIXELS,9 >Y2
|
||||
CLEAR 2
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
SCREEN 2
|
||||
CURSET 1,1
|
||||
PRINTI "Life support menu"
|
||||
ICALL CCURSET,4,1
|
||||
HLIGHT K-H-INV
|
||||
ZERO? GL-SCRUBBERS-ON /?CCL3
|
||||
PRINTI "ON "
|
||||
JUMP ?CND1
|
||||
?CCL3: PRINTI "OFF"
|
||||
?CND1: HLIGHT K-H-NRM
|
||||
ICALL CCURSET,4,4
|
||||
PRINTI "CO2 scrubbers"
|
||||
ICALL CCURSET,4,27
|
||||
PRINTC 83
|
||||
ICALL CCURSET,5,1
|
||||
HLIGHT K-H-INV
|
||||
ZERO? GL-HEATERS-ON /?CCL6
|
||||
PRINTI "ON "
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "OFF"
|
||||
?CND4: HLIGHT K-H-NRM
|
||||
ICALL CCURSET,5,4
|
||||
PRINTI "Heaters"
|
||||
ICALL CCURSET,5,27
|
||||
PRINTC 72
|
||||
ICALL CCURSET,6,1
|
||||
HLIGHT K-H-INV
|
||||
PRINTI "ON "
|
||||
HLIGHT K-H-NRM
|
||||
ICALL CCURSET,6,4
|
||||
PRINTI "Helium de-scramblers"
|
||||
ICALL CCURSET,6,27
|
||||
PRINTC 68
|
||||
ICALL CCURSET,7,1
|
||||
HLIGHT K-H-INV
|
||||
PRINTI "ON "
|
||||
HLIGHT K-H-NRM
|
||||
ICALL CCURSET,7,4
|
||||
PRINTI "De-humidifiers"
|
||||
ICALL CCURSET,7,27
|
||||
PRINTC 77
|
||||
HLIGHT K-H-NRM
|
||||
ICALL CCURSET,8,4
|
||||
PRINTI "Exit"
|
||||
ICALL CCURSET,8,27
|
||||
PRINTC 88
|
||||
ICALL CCURSET,4,50
|
||||
PRINTI "Interior temp:"
|
||||
ICALL CCURSET,5,50
|
||||
ICALL RT-PRINT-FLOAT,GL-DEEPCORE-TEMP,K-TEMP-FACTOR
|
||||
PRINTI " deg. F"
|
||||
?PRG7: SCREEN 0
|
||||
INPUT 1 >C
|
||||
EQUAL? C,K-CLICK1,K-CLICK2 \?CCL11
|
||||
CALL MOUSE-INPUT?,2,X1,Y1,X2,Y2
|
||||
ZERO? STACK /?CND9
|
||||
CALL2 PIXELS-L,GL-MOUSE-Y >L
|
||||
EQUAL? L,1 \?CCL16
|
||||
SET 'C,115
|
||||
JUMP ?CND9
|
||||
?CCL16: EQUAL? L,2 \?CCL18
|
||||
SET 'C,104
|
||||
JUMP ?CND9
|
||||
?CCL18: EQUAL? L,3 \?CCL20
|
||||
SET 'C,100
|
||||
JUMP ?CND9
|
||||
?CCL20: EQUAL? L,4 \?CCL22
|
||||
SET 'C,109
|
||||
JUMP ?CND9
|
||||
?CCL22: SET 'C,120
|
||||
JUMP ?CND9
|
||||
?CCL11: LESS? C,65 /?CND9
|
||||
GRTR? C,90 /?CND9
|
||||
ADD C,32 >C
|
||||
?CND9: EQUAL? C,115 \?CCL28
|
||||
ZERO? GL-SCRUBBERS-ON /?PRT29
|
||||
SET 'GL-SCRUBBERS-ON,0
|
||||
JUMP ?PRE31
|
||||
?PRT29: SET 'GL-SCRUBBERS-ON,1
|
||||
?PRE31: SCREEN 2
|
||||
ICALL CCURSET,4,1
|
||||
HLIGHT K-H-INV
|
||||
ZERO? GL-SCRUBBERS-ON /?CCL34
|
||||
PRINTI "ON "
|
||||
JUMP ?CND32
|
||||
?CCL34: PRINTI "OFF"
|
||||
?CND32: HLIGHT K-H-NRM
|
||||
JUMP ?PRG7
|
||||
?CCL28: EQUAL? C,104 \?CCL36
|
||||
ZERO? GL-HEATERS-ON /?PRT37
|
||||
SET 'GL-HEATERS-ON,0
|
||||
JUMP ?PRE39
|
||||
?PRT37: SET 'GL-HEATERS-ON,1
|
||||
?PRE39: SCREEN 2
|
||||
ICALL CCURSET,5,1
|
||||
HLIGHT K-H-INV
|
||||
ZERO? GL-HEATERS-ON /?CCL42
|
||||
PRINTI "ON "
|
||||
JUMP ?CND40
|
||||
?CCL42: PRINTI "OFF"
|
||||
?CND40: HLIGHT K-H-NRM
|
||||
JUMP ?PRG7
|
||||
?CCL36: EQUAL? C,100 /?PRG7
|
||||
EQUAL? C,109 /?PRG7
|
||||
EQUAL? C,120 /TRUE
|
||||
SOUND S-BEEP
|
||||
JUMP ?PRG7
|
||||
|
||||
|
||||
.FUNCT RT-PUMP-MENU:ANY:0:0,X1,Y1,X2,Y2,C,L
|
||||
SET 'X1,1
|
||||
CALL2 L-PIXELS,4 >Y1
|
||||
CALL2 C-PIXELS,24 >X2
|
||||
CALL2 L-PIXELS,6 >Y2
|
||||
CLEAR 2
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
SCREEN 2
|
||||
CURSET 1,1
|
||||
PRINTI "Pump and compressor menu"
|
||||
ICALL CCURSET,4,1
|
||||
HLIGHT K-H-INV
|
||||
ZERO? GL-WATER-PUMP-ON /?CCL3
|
||||
PRINTI "ON "
|
||||
JUMP ?CND1
|
||||
?CCL3: PRINTI "OFF"
|
||||
?CND1: HLIGHT K-H-NRM
|
||||
ICALL CCURSET,4,4
|
||||
PRINTI "Fresh water pumps"
|
||||
ICALL CCURSET,4,23
|
||||
PRINTC 80
|
||||
HLIGHT K-H-NRM
|
||||
ICALL CCURSET,5,4
|
||||
PRINTI "Exit"
|
||||
ICALL CCURSET,5,23
|
||||
PRINTC 88
|
||||
?PRG4: SCREEN 0
|
||||
INPUT 1 >C
|
||||
EQUAL? C,K-CLICK1,K-CLICK2 \?CCL8
|
||||
CALL MOUSE-INPUT?,2,X1,Y1,X2,Y2
|
||||
ZERO? STACK /?CND6
|
||||
CALL2 PIXELS-L,GL-MOUSE-Y >L
|
||||
EQUAL? L,1 \?CCL13
|
||||
SET 'C,112
|
||||
JUMP ?CND6
|
||||
?CCL13: SET 'C,120
|
||||
JUMP ?CND6
|
||||
?CCL8: LESS? C,65 /?CND6
|
||||
GRTR? C,90 /?CND6
|
||||
ADD C,32 >C
|
||||
?CND6: EQUAL? C,112 \?CCL19
|
||||
SCREEN 2
|
||||
ICALL CCURSET,4,1
|
||||
HLIGHT K-H-INV
|
||||
ZERO? GL-WATER-PUMP-ON /?PRT23
|
||||
SET 'GL-WATER-PUMP-ON,0
|
||||
JUMP ?PRE25
|
||||
?PRT23: SET 'GL-WATER-PUMP-ON,1
|
||||
?PRE25: ZERO? GL-WATER-PUMP-ON /?CCL22
|
||||
PRINTI "ON "
|
||||
JUMP ?CND20
|
||||
?CCL22: PRINTI "OFF"
|
||||
?CND20: HLIGHT K-H-NRM
|
||||
JUMP ?PRG4
|
||||
?CCL19: EQUAL? C,120 /TRUE
|
||||
SOUND S-BEEP
|
||||
JUMP ?PRG4
|
||||
|
||||
|
||||
.FUNCT RT-TH-DESCRAMBLER-CONTROL-BOX:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
775
command.zil
Normal file
775
command.zil
Normal file
|
@ -0,0 +1,775 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : COMMAND.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 20 Mar 1989 8:43:42 $"
|
||||
; "rev : $Revision: 1.9 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Miscellaneous"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-COMMAND-MODULE"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<ROOM RM-COMMAND-MODULE
|
||||
(LOC ROOMS)
|
||||
(DESC "command module")
|
||||
(FLAGS FL-INDOORS FL-LIGHTED)
|
||||
(SYNONYM MODULE)
|
||||
(ADJECTIVE COMMAND)
|
||||
(AFT TO RM-CORRIDOR)
|
||||
(GLOBAL LG-WALL RM-CORRIDOR)
|
||||
(ACTION RT-RM-COMMAND-MODULE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-RM-COMMAND-MODULE ("OPTIONAL" (CONTEXT <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL TAB "You ">
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "are in">
|
||||
)
|
||||
(T
|
||||
<TELL "enter">
|
||||
)
|
||||
>
|
||||
<TELL
|
||||
the ,RM-COMMAND-MODULE ", a long narrow cabin like the inside of a Winnebago
|
||||
packed with instrumentation. At the far end, a chair sits in front of a bank
|
||||
of monitors. The only exit is in the aft wall." CR
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(<MC-CONTEXT? ,M-BEG>
|
||||
<COND
|
||||
(<AND <VERB? SIT>
|
||||
<MC-PRSO? ,ROOMS>
|
||||
>
|
||||
<RT-COMMAND-MENU>
|
||||
)
|
||||
>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-MONITORS"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-MONITORS
|
||||
(LOC RM-COMMAND-MODULE)
|
||||
(DESC "monitors")
|
||||
(FLAGS FL-NO-DESC)
|
||||
(SYNONYM MONITOR MONITORS)
|
||||
(ACTION RT-TH-MONITORS)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-MONITORS ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL
|
||||
TAB "The monitors glow with data gathered from all over Deepcore." CR
|
||||
>
|
||||
)
|
||||
(<VERB? SIT>
|
||||
<RT-COMMAND-MENU>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-COMMAND-CHAIR"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-COMMAND-CHAIR
|
||||
(LOC RM-COMMAND-MODULE)
|
||||
(DESC "chair")
|
||||
(FLAGS FL-NO-DESC)
|
||||
(SYNONYM CHAIR)
|
||||
(ADJECTIVE COMMAND)
|
||||
(ACTION RT-TH-COMMAND-CHAIR)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-COMMAND-CHAIR ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL
|
||||
TAB "The chair is right in front of the main control panel." CR
|
||||
>
|
||||
)
|
||||
(<VERB? SIT ENTER>
|
||||
<RT-COMMAND-MENU>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-COMMAND-MENU ("AUX" C L (ON? <>) X1 Y1 X2 Y2)
|
||||
<SET X1 1>
|
||||
<SET Y1 <L-PIXELS 4>>
|
||||
<SET X2 <C-PIXELS 16>>
|
||||
<SET Y2 <L-PIXELS 12>>
|
||||
|
||||
<MOUSE-LIMIT -1>
|
||||
|
||||
<CLEAR -1>
|
||||
|
||||
; "Text window"
|
||||
<WINPOS 0 <+ 1 <- <LOWCORE VWRD> <* 6 ,GL-FONT-Y>>> 1>
|
||||
<WINSIZE 0 <* 6 ,GL-FONT-Y> <LOWCORE HWRD>>
|
||||
|
||||
; "Status line -- Already defined."
|
||||
; <WINPOS 1 1 1>
|
||||
; <WINSIZE 1 ,GL-FONT-Y <LOWCORE HWRD>>
|
||||
|
||||
; "Menu window"
|
||||
<WINPOS 2 <+ ,GL-FONT-Y 1> 1>
|
||||
<WINSIZE 2 <- <LOWCORE VWRD> <* 7 ,GL-FONT-Y>> <LOWCORE HWRD>>
|
||||
|
||||
<WINPOS 7 1 1>
|
||||
<WINSIZE 7 <LOWCORE VWRD> <LOWCORE HWRD>>
|
||||
|
||||
<SETG GL-SL-HERE <>>
|
||||
|
||||
<REPEAT ()
|
||||
<CLEAR 2>
|
||||
<UPDATE-STATUS-LINE>
|
||||
<SCREEN 2>
|
||||
<CURSET 1 1>
|
||||
<TELL "Main menu">
|
||||
|
||||
<CCURSET 4 1>
|
||||
<TELL "Emergency">
|
||||
<CCURSET 4 15>
|
||||
<TELL "E">
|
||||
<CCURSET 5 1>
|
||||
<TELL "ROV">
|
||||
<CCURSET 5 15>
|
||||
<TELL "R">
|
||||
<CCURSET 6 1>
|
||||
<TELL "Air">
|
||||
<CCURSET 6 15>
|
||||
<TELL "A">
|
||||
<CCURSET 7 1>
|
||||
<TELL "Power">
|
||||
<CCURSET 7 15>
|
||||
<TELL "P">
|
||||
<CCURSET 8 1>
|
||||
<TELL "Lights">
|
||||
<CCURSET 8 15>
|
||||
<TELL "L">
|
||||
<CCURSET 9 1>
|
||||
<TELL "Life Support">
|
||||
<CCURSET 9 15>
|
||||
<TELL "S">
|
||||
<CCURSET 10 1>
|
||||
<TELL "Pump">
|
||||
<CCURSET 10 15>
|
||||
<TELL "M">
|
||||
<CCURSET 11 1>
|
||||
<TELL "Exit">
|
||||
<CCURSET 11 15>
|
||||
<TELL "X">
|
||||
|
||||
<REPEAT ()
|
||||
<SCREEN 0>
|
||||
<SETG GL-INPUT-TIMEOUT <>>
|
||||
<SET C <INPUT 1 3 ,RT-STOP-READ>>
|
||||
<COND
|
||||
(<NOT ,GL-INPUT-TIMEOUT>
|
||||
<COND
|
||||
(<EQUAL? .C ,K-CLICK1 ,K-CLICK2>
|
||||
<COND
|
||||
(<MOUSE-INPUT? 2 .X1 .Y1 .X2 .Y2>
|
||||
<SET L <PIXELS-L ,GL-MOUSE-Y>>
|
||||
<COND
|
||||
(<EQUAL? .L 1>
|
||||
<SET C !\e>
|
||||
)
|
||||
(<EQUAL? .L 2>
|
||||
<SET C !\r>
|
||||
)
|
||||
(<EQUAL? .L 3>
|
||||
<SET C !\a>
|
||||
)
|
||||
(<EQUAL? .L 4>
|
||||
<SET C !\p>
|
||||
)
|
||||
(<EQUAL? .L 5>
|
||||
<SET C !\l>
|
||||
)
|
||||
(<EQUAL? .L 6>
|
||||
<SET C !\s>
|
||||
)
|
||||
(<EQUAL? .L 7>
|
||||
<SET C !\m>
|
||||
)
|
||||
(T
|
||||
<SET C !\x>
|
||||
)
|
||||
>
|
||||
<RETURN>
|
||||
)
|
||||
(T
|
||||
<SOUND ,S-BEEP>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<COND
|
||||
(<AND <G=? .C !\A>
|
||||
<L=? .C !\Z>
|
||||
>
|
||||
<SET C <+ .C 32>> ; "Change to lower case"
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<EQUAL? .C !\e !\r !\a !\p !\l !\s !\m !\x>
|
||||
<RETURN>
|
||||
)
|
||||
(T
|
||||
<SOUND ,S-BEEP>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<SCREEN 2>
|
||||
<CCURSET 4 1>
|
||||
<COND
|
||||
(<SET ON? <NOT .ON?>>
|
||||
<HLIGHT ,K-H-INV>
|
||||
)
|
||||
>
|
||||
<TELL "Emergency">
|
||||
<HLIGHT ,K-H-NRM>
|
||||
)
|
||||
>
|
||||
>
|
||||
<COND
|
||||
(<EQUAL? .C !\e>
|
||||
<RT-EMERGENCY-MENU>
|
||||
)
|
||||
(<EQUAL? .C !\r>
|
||||
<RT-ROV-MENU>
|
||||
)
|
||||
(<EQUAL? .C !\a>
|
||||
<RT-AIR-MENU>
|
||||
)
|
||||
(<EQUAL? .C !\p>
|
||||
<RT-POWER-MENU>
|
||||
)
|
||||
(<EQUAL? .C !\l>
|
||||
<RT-LIGHT-MENU>
|
||||
)
|
||||
(<EQUAL? .C !\s>
|
||||
<RT-SUPPORT-MENU>
|
||||
)
|
||||
(<EQUAL? .C !\m>
|
||||
<RT-PUMP-MENU>
|
||||
)
|
||||
(<EQUAL? .C !\x>
|
||||
<RETURN>
|
||||
)
|
||||
>
|
||||
>
|
||||
<CLEAR -1>
|
||||
<INIT-STATUS-LINE>
|
||||
<SCREEN 0>
|
||||
<TELL TAB "You get up from the command chair." CR>
|
||||
>
|
||||
|
||||
<ROUTINE RT-EMERGENCY-MENU ("AUX" X1 Y1 X2 Y2)
|
||||
<SET X1 1>
|
||||
<SET Y1 <L-PIXELS 4>>
|
||||
<SET X2 <C-PIXELS 25>>
|
||||
<SET Y2 <L-PIXELS 6>>
|
||||
|
||||
<CLEAR 2>
|
||||
<UPDATE-STATUS-LINE>
|
||||
<SCREEN 2>
|
||||
<CURSET 1 1>
|
||||
<TELL "Emergency menu">
|
||||
|
||||
<CCURSET 4 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<COND
|
||||
(,GL-KLAXON-ON
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
<HLIGHT ,K-H-NRM>
|
||||
<CCURSET 4 4>
|
||||
<TELL "Emergency klaxons">
|
||||
<CCURSET 4 24>
|
||||
<TELL "K">
|
||||
|
||||
<HLIGHT ,K-H-NRM>
|
||||
<CCURSET 5 4>
|
||||
<TELL "Exit">
|
||||
<CCURSET 5 24>
|
||||
<TELL "X">
|
||||
|
||||
<REPEAT ()
|
||||
<SCREEN 0>
|
||||
<SET C <INPUT 1>>
|
||||
<COND
|
||||
(<EQUAL? .C ,K-CLICK1 ,K-CLICK2>
|
||||
<COND
|
||||
(<MOUSE-INPUT? 2 .X1 .Y1 .X2 .Y2>
|
||||
<SET L <PIXELS-L ,GL-MOUSE-Y>>
|
||||
<COND
|
||||
(<EQUAL? .L 1>
|
||||
<SET C !\k>
|
||||
)
|
||||
(T
|
||||
<SET C !\x>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<AND <G=? .C !\A>
|
||||
<L=? .C !\Z>
|
||||
>
|
||||
<SET C <+ .C 32>> ; "Change to lower case"
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<EQUAL? .C !\k>
|
||||
<SCREEN 2>
|
||||
<CCURSET 4 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<COND
|
||||
(<SETG GL-KLAXON-ON <NOT ,GL-KLAXON-ON>>
|
||||
<RT-QUEUE ,RT-I-KLAXON <+ ,GL-MOVES 1>>
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<RT-DEQUEUE ,RT-I-KLAXON>
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
<HLIGHT ,K-H-NRM>
|
||||
)
|
||||
(<EQUAL? .C !\x>
|
||||
<RETURN>
|
||||
)
|
||||
(T
|
||||
<SOUND ,S-BEEP>
|
||||
)
|
||||
>
|
||||
>
|
||||
<RTRUE>
|
||||
>
|
||||
|
||||
<ROUTINE RT-ROV-MENU ()
|
||||
<CLEAR 2>
|
||||
<UPDATE-STATUS-LINE>
|
||||
<SCREEN 2>
|
||||
<CURSET 1 1>
|
||||
<TELL "R.O.V. menu">
|
||||
<SCREEN 0>
|
||||
<INPUT 1>
|
||||
<RTRUE>
|
||||
>
|
||||
|
||||
<ROUTINE RT-AIR-MENU ()
|
||||
<CLEAR 2>
|
||||
<UPDATE-STATUS-LINE>
|
||||
<SCREEN 2>
|
||||
<CURSET 1 1>
|
||||
<TELL "Breathing Mix menu">
|
||||
|
||||
<CCURSET 4 1>
|
||||
<TELL "Oxygen: ">
|
||||
<RT-PRINT-FLOAT ,GL-OXYGEN-QTY ,K-OXYGEN-FACTOR>
|
||||
<TELL "% - ">
|
||||
<RT-GAS-LEVEL-MSG ,GL-OXYGEN-QTY ,K-OXY-LOW-1 ,K-OXY-HIGH-1 ,K-OXY-NOM>
|
||||
<TELL "|Carbon dioxide: ">
|
||||
<RT-PRINT-FLOAT ,GL-CO2-QTY ,K-CO2-FACTOR>
|
||||
<TELL "% - ">
|
||||
<RT-GAS-LEVEL-MSG ,GL-CO2-QTY -1 ,K-CO2-HIGH-1 ,K-CO2-NOM>
|
||||
<TELL "|Nitrogen: ">
|
||||
<RT-PRINT-FLOAT ,GL-NITROGEN-QTY ,K-NITROGEN-FACTOR>
|
||||
<TELL "% - ">
|
||||
<RT-GAS-LEVEL-MSG ,GL-NITROGEN-QTY ,K-NIT-LOW-1 ,K-NIT-HIGH-1 ,K-NIT-NOM>
|
||||
<TELL "|Helium: ">
|
||||
<RT-PRINT-FLOAT ,GL-HELIUM-QTY ,K-HELIUM-FACTOR>
|
||||
<TELL "%|">
|
||||
|
||||
<SCREEN 0>
|
||||
<INPUT 1>
|
||||
<RTRUE>
|
||||
>
|
||||
|
||||
<ROUTINE RT-GAS-LEVEL-MSG (QTY LOW HIGH NOM)
|
||||
<COND
|
||||
(<L=? .QTY .LOW>
|
||||
<TELL "low">
|
||||
)
|
||||
(<G=? .QTY .HIGH>
|
||||
<TELL "high">
|
||||
)
|
||||
(<EQUAL? .QTY .NOM>
|
||||
<TELL "nominal">
|
||||
)
|
||||
(<L? .QTY .NOM>
|
||||
<TELL "less than nominal">
|
||||
)
|
||||
(T
|
||||
<TELL "more than nominal">
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-POWER-MENU ()
|
||||
<CLEAR 2>
|
||||
<UPDATE-STATUS-LINE>
|
||||
<SCREEN 2>
|
||||
<CURSET 1 1>
|
||||
<TELL "Power menu">
|
||||
<SCREEN 0>
|
||||
<INPUT 1>
|
||||
<RTRUE>
|
||||
>
|
||||
|
||||
<ROUTINE RT-LIGHT-MENU ()
|
||||
<CLEAR 2>
|
||||
<UPDATE-STATUS-LINE>
|
||||
<SCREEN 2>
|
||||
<CURSET 1 1>
|
||||
<TELL "Lighting menu">
|
||||
<SCREEN 0>
|
||||
<INPUT 1>
|
||||
<RTRUE>
|
||||
>
|
||||
|
||||
<ROUTINE RT-SUPPORT-MENU ("AUX" X1 Y1 X2 Y2)
|
||||
<SET X1 1>
|
||||
<SET Y1 <L-PIXELS 4>>
|
||||
<SET X2 <C-PIXELS 28>>
|
||||
<SET Y2 <L-PIXELS 9>>
|
||||
|
||||
<CLEAR 2>
|
||||
<UPDATE-STATUS-LINE>
|
||||
<SCREEN 2>
|
||||
<CURSET 1 1>
|
||||
<TELL "Life support menu">
|
||||
|
||||
<CCURSET 4 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<COND
|
||||
(,GL-SCRUBBERS-ON
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
<HLIGHT ,K-H-NRM>
|
||||
<CCURSET 4 4>
|
||||
<TELL "CO2 scrubbers">
|
||||
<CCURSET 4 27>
|
||||
<TELL "S">
|
||||
|
||||
<CCURSET 5 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<COND
|
||||
(,GL-HEATERS-ON
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
<HLIGHT ,K-H-NRM>
|
||||
<CCURSET 5 4>
|
||||
<TELL "Heaters">
|
||||
<CCURSET 5 27>
|
||||
<TELL "H">
|
||||
|
||||
<CCURSET 6 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<TELL "ON ">
|
||||
<HLIGHT ,K-H-NRM>
|
||||
<CCURSET 6 4>
|
||||
<TELL "Helium de-scramblers">
|
||||
<CCURSET 6 27>
|
||||
<TELL "D">
|
||||
|
||||
<CCURSET 7 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<TELL "ON ">
|
||||
<HLIGHT ,K-H-NRM>
|
||||
<CCURSET 7 4>
|
||||
<TELL "De-humidifiers">
|
||||
<CCURSET 7 27>
|
||||
<TELL "M">
|
||||
|
||||
<HLIGHT ,K-H-NRM>
|
||||
<CCURSET 8 4>
|
||||
<TELL "Exit">
|
||||
<CCURSET 8 27>
|
||||
<TELL "X">
|
||||
|
||||
<CCURSET 4 50>
|
||||
<TELL "Interior temp:">
|
||||
<CCURSET 5 50>
|
||||
<RT-PRINT-FLOAT ,GL-DEEPCORE-TEMP ,K-TEMP-FACTOR>
|
||||
<TELL " deg. F">
|
||||
|
||||
<REPEAT ()
|
||||
<SCREEN 0>
|
||||
<SET C <INPUT 1>>
|
||||
<COND
|
||||
(<EQUAL? .C ,K-CLICK1 ,K-CLICK2>
|
||||
<COND
|
||||
(<MOUSE-INPUT? 2 .X1 .Y1 .X2 .Y2>
|
||||
<SET L <PIXELS-L ,GL-MOUSE-Y>>
|
||||
<COND
|
||||
(<EQUAL? .L 1>
|
||||
<SET C !\s>
|
||||
)
|
||||
(<EQUAL? .L 2>
|
||||
<SET C !\h>
|
||||
)
|
||||
(<EQUAL? .L 3>
|
||||
<SET C !\d>
|
||||
)
|
||||
(<EQUAL? .L 4>
|
||||
<SET C !\m>
|
||||
)
|
||||
(T
|
||||
<SET C !\x>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<AND <G=? .C !\A>
|
||||
<L=? .C !\Z>
|
||||
>
|
||||
<SET C <+ .C 32>> ; "Change to lower case"
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<EQUAL? .C !\s>
|
||||
<SETG GL-SCRUBBERS-ON <NOT ,GL-SCRUBBERS-ON>>
|
||||
<SCREEN 2>
|
||||
<CCURSET 4 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<COND
|
||||
(,GL-SCRUBBERS-ON
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
<HLIGHT ,K-H-NRM>
|
||||
)
|
||||
(<EQUAL? .C !\h>
|
||||
<SETG GL-HEATERS-ON <NOT ,GL-HEATERS-ON>>
|
||||
<SCREEN 2>
|
||||
<CCURSET 5 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<COND
|
||||
(,GL-HEATERS-ON
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
<HLIGHT ,K-H-NRM>
|
||||
)
|
||||
(<EQUAL? .C !\d>)
|
||||
(<EQUAL? .C !\m>)
|
||||
(<EQUAL? .C !\x>
|
||||
<RETURN>
|
||||
)
|
||||
(T
|
||||
<SOUND ,S-BEEP>
|
||||
)
|
||||
>
|
||||
>
|
||||
<RTRUE>
|
||||
>
|
||||
|
||||
;<GLOBAL GL-PT-BILGE-ON <> <> BYTE>
|
||||
;<GLOBAL GL-SB-BILGE-ON <> <> BYTE>
|
||||
<GLOBAL GL-WATER-PUMP-ON <> <> BYTE>
|
||||
|
||||
<ROUTINE RT-PUMP-MENU ("AUX" X1 Y1 X2 Y2)
|
||||
<SET X1 1>
|
||||
<SET Y1 <L-PIXELS 4>>
|
||||
<SET X2 <C-PIXELS 24>>
|
||||
<SET Y2 <L-PIXELS 6>>
|
||||
|
||||
<CLEAR 2>
|
||||
<UPDATE-STATUS-LINE>
|
||||
<SCREEN 2>
|
||||
<CURSET 1 1>
|
||||
<TELL "Pump and compressor menu">
|
||||
|
||||
<CCURSET 4 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<COND
|
||||
(,GL-WATER-PUMP-ON
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
<HLIGHT ,K-H-NRM>
|
||||
<CCURSET 4 4>
|
||||
<TELL "Fresh water pumps">
|
||||
<CCURSET 4 23>
|
||||
<TELL "P">
|
||||
|
||||
; <CCURSET 4 1>
|
||||
; <HLIGHT ,K-H-INV>
|
||||
; <COND
|
||||
(,GL-PT-BILGE-ON
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
; <HLIGHT ,K-H-NRM>
|
||||
; <CCURSET 4 4>
|
||||
; <TELL "Port bilge pumps">
|
||||
; <CCURSET 4 27>
|
||||
; <TELL "P">
|
||||
|
||||
; <CCURSET 5 1>
|
||||
; <HLIGHT ,K-H-INV>
|
||||
; <COND
|
||||
(,GL-SB-BILGE-ON
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
; <HLIGHT ,K-H-NRM>
|
||||
; <CCURSET 5 4>
|
||||
; <TELL "Starboard bilge pumps">
|
||||
; <CCURSET 5 27>
|
||||
; <TELL "S">
|
||||
|
||||
<HLIGHT ,K-H-NRM>
|
||||
<CCURSET 5 4>
|
||||
<TELL "Exit">
|
||||
<CCURSET 5 23>
|
||||
<TELL "X">
|
||||
|
||||
<REPEAT ()
|
||||
<SCREEN 0>
|
||||
<SET C <INPUT 1>>
|
||||
<COND
|
||||
(<EQUAL? .C ,K-CLICK1 ,K-CLICK2>
|
||||
<COND
|
||||
(<MOUSE-INPUT? 2 .X1 .Y1 .X2 .Y2>
|
||||
<SET L <PIXELS-L ,GL-MOUSE-Y>>
|
||||
<COND
|
||||
(<EQUAL? .L 1>
|
||||
<SET C !\p>
|
||||
)
|
||||
; (<EQUAL? .L 2>
|
||||
<SET C !\s>
|
||||
)
|
||||
(T
|
||||
<SET C !\x>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<AND <G=? .C !\A>
|
||||
<L=? .C !\Z>
|
||||
>
|
||||
<SET C <+ .C 32>> ; "Change to lower case"
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<EQUAL? .C !\p>
|
||||
<SCREEN 2>
|
||||
<CCURSET 4 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<COND
|
||||
(<SETG GL-WATER-PUMP-ON <NOT ,GL-WATER-PUMP-ON>>
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
<HLIGHT ,K-H-NRM>
|
||||
)
|
||||
; (<EQUAL? .C !\s>
|
||||
<SCREEN 2>
|
||||
<CCURSET 5 1>
|
||||
<HLIGHT ,K-H-INV>
|
||||
<COND
|
||||
(<SETG GL-SB-BILGE-ON <NOT ,GL-SB-BILGE-ON>>
|
||||
<TELL "ON ">
|
||||
)
|
||||
(T
|
||||
<TELL "OFF">
|
||||
)
|
||||
>
|
||||
<HLIGHT ,K-H-NRM>
|
||||
)
|
||||
(<EQUAL? .C !\x>
|
||||
<RETURN>
|
||||
)
|
||||
(T
|
||||
<SOUND ,S-BEEP>
|
||||
)
|
||||
>
|
||||
>
|
||||
<RTRUE>
|
||||
>
|
||||
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-DESCRAMBLER-CONTROL-BOX"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-DESCRAMBLER-CONTROL-BOX
|
||||
(LOC TH-BIN)
|
||||
(DESC "descrambler control box")
|
||||
(MENU "control box")
|
||||
(SYNONYM DESCRAMBLER BOX)
|
||||
(ADJECTIVE CONTROL DESCRAMBLER)
|
||||
(ACTION RT-TH-DESCRAMBLER-CONTROL-BOX)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-DESCRAMBLER-CONTROL-BOX ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
125
crane.zabstr
Normal file
125
crane.zabstr
Normal file
|
@ -0,0 +1,125 @@
|
|||
|
||||
<GLOBAL GL-CRANE-FALLING? <> <> BYTE>
|
||||
<GLOBAL GL-CRANE-DOWN? <> <> BYTE>
|
||||
<DEFINE-ROUTINE RT-I-CRANE-1>
|
||||
<DEFINE-ROUTINE RT-I-CRANE-2>
|
||||
<DEFINE-ROUTINE RT-I-CRANE-3>
|
||||
<DEFINE-ROUTINE RT-I-CRANE-4>
|
||||
<DEFINE-ROUTINE RT-I-CRANE-5>
|
||||
<DEFINE-ROUTINE RT-I-HIPPY-RETURN>
|
||||
<GLOBAL GL-KLAXON-ON <> <> BYTE>
|
||||
<DEFINE-ROUTINE RT-I-KLAXON>
|
||||
<GLOBAL GL-BATTERY-LEAK <> <> BYTE>
|
||||
<GLOBAL GL-WATER-LEVEL 0 <> BYTE>
|
||||
<DEFINE-ROUTINE RT-I-BATTERY-LEAK>
|
||||
<ROOM RM-PT-BATTERY-ROOM (LOC ROOMS) (DESC "port battery room") (MENU
|
||||
"battery room") (FLAGS FL-INDOORS FL-LIGHTED) (SYNONYM ROOM) (ADJECTIVE PORT
|
||||
BATTERY) (AFT TO RM-LADDER-A1) (GLOBAL LG-WALL RM-LADDER-A1) (ACTION
|
||||
RT-RM-PT-BATTERY-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-PT-BATTERY-ROOM>
|
||||
<OBJECT TH-POWERCEL (LOC RM-PT-BATTERY-ROOM) (DESC "fuel cell") (SYNONYM
|
||||
POWERCEL CELL) (ADJECTIVE FUEL POWER) (ACTION RT-TH-POWERCEL)>
|
||||
<DEFINE-ROUTINE RT-TH-POWERCEL>
|
||||
<OBJECT TH-POOL-OF-WATER (DESC "pool") (SYNONYM POOL WATER) (ADJECTIVE WATER) (
|
||||
ACTION RT-TH-POOL-OF-WATER)>
|
||||
<DEFINE-ROUTINE RT-TH-POOL-OF-WATER>
|
||||
<ROOM RM-PT-OBS-DECK (LOC ROOMS) (DESC "port observation deck") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED) (SYNONYM DECK) (ADJECTIVE PORT OBSERVATION) (AFT TO
|
||||
RM-LADDER-A3) (GLOBAL LG-WALL RM-LADDER-A3) (ACTION RT-RM-PT-OBS-DECK)>
|
||||
<DEFINE-ROUTINE RT-RM-PT-OBS-DECK>
|
||||
<OBJECT TH-CRACK (DESC "crack") (SYNONYM CRACK) (ACTION RT-TH-CRACK)>
|
||||
<DEFINE-ROUTINE RT-TH-CRACK>
|
||||
<DEFINE-ROUTINE RT-WELD-CRACK>
|
||||
<OBJECT TH-ARC-WELDER (DESC "arc welder") (FLAGS FL-SEARCH FL-SURFACE
|
||||
FL-TAKEABLE) (SYNONYM WELDER ARC-WELDER) (ADJECTIVE ARC) (ACTION
|
||||
RT-TH-ARC-WELDER)>
|
||||
<DEFINE-ROUTINE RT-TH-ARC-WELDER>
|
||||
<OBJECT TH-WELDING-ROD (DESC "welding rod") (FLAGS FL-TAKEABLE) (SYNONYM ROD) (
|
||||
ADJECTIVE ARC WELDING) (ACTION RT-TH-WELDING-ROD)>
|
||||
<DEFINE-ROUTINE RT-TH-WELDING-ROD>
|
||||
<OBJECT TH-RED-CABLE (LOC TH-ARC-WELDER) (DESC "red cable") (FLAGS FL-CONTAINER
|
||||
FL-NO-DESC FL-OPEN FL-SEARCH) (SYNONYM CABLE CLAMP) (ADJECTIVE RED RUBBER) (
|
||||
ACTION RT-TH-RED-CABLE)>
|
||||
<DEFINE-ROUTINE RT-TH-RED-CABLE>
|
||||
<OBJECT TH-BLACK-CABLE (LOC TH-ARC-WELDER) (DESC "black cable") (FLAGS
|
||||
FL-NO-DESC) (SYNONYM CABLE CUP ELECTRODE) (ADJECTIVE BLACK RUBBER SUCTION) (
|
||||
OWNER 0) (ACTION RT-TH-BLACK-CABLE)>
|
||||
<DEFINE-ROUTINE RT-TH-BLACK-CABLE>
|
||||
<OBJECT TH-WELDER-SWITCH (LOC TH-ARC-WELDER) (DESC "power switch") (FLAGS
|
||||
FL-NO-DESC) (SYNONYM SWITCH PLUG) (ADJECTIVE POWER) (ACTION RT-TH-WELDER-SWITCH
|
||||
)>
|
||||
<DEFINE-ROUTINE RT-TH-WELDER-SWITCH>
|
||||
<OBJECT TH-WELDER-CORD (LOC TH-ARC-WELDER) (DESC "power cord") (FLAGS
|
||||
FL-NO-DESC) (SYNONYM CORD) (ADJECTIVE POWER) (ACTION RT-TH-WELDER-CORD)>
|
||||
<DEFINE-ROUTINE RT-TH-WELDER-CORD>
|
||||
<ROOM RM-LADDER-D2 (LOC ROOMS) (DESC "ladderwell D") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-PANTRY) (UP TO RM-LADDER-D3) (DOWN TO RM-LADDER-D1) (GLOBAL LG-WALL
|
||||
RM-PANTRY RM-LADDER-D3 RM-LADDER-D1) (ACTION RT-RM-LADDER-D2)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-D2>
|
||||
<OBJECT TH-PT-BILGE-BUTTON (LOC RM-LADDER-D2) (DESC "button") (SYNONYM BUTTON)
|
||||
(ADJECTIVE YELLOW) (ACTION RT-TH-PT-BILGE-BUTTON)>
|
||||
<DEFINE-ROUTINE RT-TH-PT-BILGE-BUTTON>
|
||||
<OBJECT TH-SB-BILGE-BUTTON (LOC RM-LADDER-C2) (DESC "button") (SYNONYM BUTTON)
|
||||
(ADJECTIVE YELLOW) (ACTION RT-TH-SB-BILGE-BUTTON)>
|
||||
<DEFINE-ROUTINE RT-TH-SB-BILGE-BUTTON>
|
||||
<DEFINE-ROUTINE RT-I-CATFISH-TRAPPED>
|
||||
<ROOM RM-DIVE-GEAR-STORAGE (LOC ROOMS) (DESC "dive gear storage") (MENU
|
||||
"gear storage") (FLAGS FL-INDOORS FL-LIGHTED) (SYNONYM STORAGE) (ADJECTIVE DIVE
|
||||
GEAR) (AFT TO RM-LADDER-B2 IF LG-DGS-DOOR IS OPEN) (GLOBAL LG-DGS-DOOR LG-WALL
|
||||
RM-LADDER-B2) (ACTION RT-RM-DIVE-GEAR-STORAGE)>
|
||||
<DEFINE-ROUTINE RT-RM-DIVE-GEAR-STORAGE>
|
||||
<OBJECT TH-BUD-GEAR-LOCKER (LOC RM-DIVE-GEAR-STORAGE) (DESC "gear locker") (
|
||||
FLAGS FL-CONTAINER FL-OPENABLE FL-SEARCH FL-YOUR) (SYNONYM LOCKER) (ADJECTIVE
|
||||
BUD GEAR) (OWNER CH-PLAYER) (SIZE 5) (GENERIC RT-GN-LOCKER) (ACTION
|
||||
RT-TH-BUD-GEAR-LOCKER)>
|
||||
<DEFINE-ROUTINE RT-TH-BUD-GEAR-LOCKER>
|
||||
<OBJECT TH-BIG-LOCKER (LOC RM-DIVE-GEAR-STORAGE) (DESC "big locker") (FLAGS
|
||||
FL-CONTAINER FL-OPENABLE FL-SEARCH) (SYNONYM LOCKER) (ADJECTIVE BIG DIVE GEAR)
|
||||
(SIZE 5) (GENERIC RT-GN-LOCKER) (ACTION RT-TH-BIG-LOCKER)>
|
||||
<DEFINE-ROUTINE RT-TH-BIG-LOCKER>
|
||||
<DEFINE-ROUTINE RT-GN-LOCKER>
|
||||
<OBJECT LG-DGS-DOOR (LOC LOCAL-GLOBALS) (DESC "fore door") (FLAGS FL-DOOR
|
||||
FL-OPEN FL-OPENABLE) (SYNONYM DOOR) (ADJECTIVE FORE DIVE GEAR STORAGE) (ACTION
|
||||
RT-LG-DGS-DOOR)>
|
||||
<DEFINE-ROUTINE RT-LG-DGS-DOOR>
|
||||
<ROOM RM-RECREATION-ROOM (LOC ROOMS) (DESC "recreation room") (MENU "rec room")
|
||||
(FLAGS FL-INDOORS FL-LIGHTED) (SYNONYM ROOM) (ADJECTIVE RECREATION REC) (PORT
|
||||
TO RM-LADDER-B2) (GLOBAL LG-WALL RM-LADDER-B2) (ACTION RT-RM-RECREATION-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-RECREATION-ROOM>
|
||||
<OBJECT TH-BARBELL (LOC RM-RECREATION-ROOM) (DESC "barbell") (FLAGS FL-SURFACE
|
||||
FL-TAKEABLE) (SYNONYM BARBELL BAR) (ACTION RT-TH-BARBELL)>
|
||||
<DEFINE-ROUTINE RT-TH-BARBELL>
|
||||
<OBJECT TH-WEIGHTS (LOC TH-BARBELL) (DESC "weights") (FLAGS FL-TAKEABLE) (
|
||||
SYNONYM WEIGHTS) (ACTION RT-TH-WEIGHTS)>
|
||||
<DEFINE-ROUTINE RT-TH-WEIGHTS>
|
||||
<OBJECT TH-LIFT-BENCH (LOC RM-RECREATION-ROOM) (DESC "bench") (FLAGS FL-SURFACE
|
||||
) (SYNONYM BENCH) (ADJECTIVE LIFT) (ACTION RT-TH-LIFT-BENCH)>
|
||||
<DEFINE-ROUTINE RT-TH-LIFT-BENCH>
|
||||
<OBJECT TH-TREADMILL (LOC RM-RECREATION-ROOM) (DESC "treadmill") (FLAGS
|
||||
FL-SURFACE) (SYNONYM TREADMILL) (ACTION RT-TH-TREADMILL)>
|
||||
<DEFINE-ROUTINE RT-TH-TREADMILL>
|
||||
<OBJECT TH-CYCLE (LOC RM-RECREATION-ROOM) (DESC "cycle") (FLAGS FL-SURFACE) (
|
||||
SYNONYM CYCLE BICYCLE) (ADJECTIVE STATIONARY EXERCISE) (ACTION RT-TH-CYCLE)>
|
||||
<DEFINE-ROUTINE RT-TH-CYCLE>
|
||||
<ROOM RM-LADDER-B2 (LOC ROOMS) (DESC "ladderwell B") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-DIVE-GEAR-STORAGE IF LG-DGS-DOOR IS OPEN) (AFT TO RM-WALDORF) (STARBOARD TO
|
||||
RM-RECREATION-ROOM) (PORT TO RM-CORRIDOR IF LG-FLOOD-DOOR IS OPEN) (UP TO
|
||||
RM-LADDER-B3) (DOWN TO RM-LADDER-B1) (GLOBAL LG-FLOOD-DOOR LG-DGS-DOOR LG-WALL
|
||||
RM-DIVE-GEAR-STORAGE RM-WALDORF RM-RECREATION-ROOM RM-CORRIDOR RM-LADDER-B3
|
||||
RM-LADDER-B1) (ACTION RT-RM-LADDER-B2)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-B2>
|
||||
<OBJECT TH-HYDRAULIC-HOSE (LOC RM-LADDER-B2) (DESC "hydraulic hose") (MENU
|
||||
"hose") (SYNONYM HOSE) (ADJECTIVE HYDRAULIC) (ACTION RT-TH-HYDRAULIC-HOSE)>
|
||||
<DEFINE-ROUTINE RT-TH-HYDRAULIC-HOSE>
|
||||
<OBJECT TH-HYDRAULIC-FLUID (DESC "hydraulic fluid") (MENU "fluid") (SYNONYM
|
||||
FLUID) (ADJECTIVE HYDRAULIC RED STICKY) (ACTION RT-TH-HYDRAULIC-FLUID)>
|
||||
<DEFINE-ROUTINE RT-TH-HYDRAULIC-FLUID>
|
||||
<OBJECT LG-FLOOD-DOOR (LOC LOCAL-GLOBALS) (DESC "flood door") (FLAGS FL-DOOR
|
||||
FL-OPEN FL-OPENABLE) (SYNONYM DOOR) (ADJECTIVE AUTOMATIC FLOOD CONTROL) (ACTION
|
||||
RT-LG-FLOOD-DOOR)>
|
||||
<DEFINE-ROUTINE RT-LG-FLOOD-DOOR>
|
||||
<OBJECT TH-KNIFE (LOC CH-PLAYER) (DESC "dive knife") (FLAGS FL-KNIFE
|
||||
FL-TAKEABLE) (SYNONYM KNIFE) (ADJECTIVE DIVE) (ACTION RT-TH-KNIFE)>
|
||||
<DEFINE-ROUTINE RT-TH-KNIFE>
|
482
crane.zap
Normal file
482
crane.zap
Normal file
|
@ -0,0 +1,482 @@
|
|||
|
||||
|
||||
.FUNCT RT-I-CRANE-1:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-CRANE-2,STACK
|
||||
SET 'GL-CRANE-FALLING?,TRUE-VALUE
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-KLAXON,STACK
|
||||
SET 'GL-KLAXON-ON,TRUE-VALUE
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-DEEPCORE-TEMP,STACK
|
||||
PRINTI " Suddenly the lights go out and emergency klaxons start blaring. "
|
||||
EQUAL? HERE,RM-COMMAND-MODULE \?CCL3
|
||||
PRINTI "The control panel starts flashing wildly. Lindsey takes one look out of the front viewport, slaps the intercom button, and screams,"
|
||||
JUMP ?CND1
|
||||
?CCL3: PRINTI "A second later Lindsey's voice screams over the intercom,"
|
||||
?CND1: PRINTI " ""Emergency! The umbilicus is falling on top of us. It's coiling up on top of the starboard cylinders. God help us if it's still hooked to the crane. We've got two minutes before whatever's attached to the other end hits us. Everybody get the hell out of the starboard cylinders. Repeat. Evacuate the starboard cylinders immediately."" Emergency lights flicker on.
|
||||
"
|
||||
EQUAL? HERE,RM-COMMAND-MODULE \TRUE
|
||||
MOVE CH-CATFISH,RM-CORRIDOR
|
||||
PRINTR " Catfish says, ""Shit! The arc-welding kit's in one of the starboard cylinders. If that crane hits us, we're gonna need it for damage control."" He tears out of the cylinder."
|
||||
|
||||
|
||||
.FUNCT RT-I-CRANE-2:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-CRANE-3,STACK
|
||||
PRINTR " A rasping sound grates against your ears as loops of the umbilicus hit Deepcore and strafe the starboard cylinders."
|
||||
|
||||
|
||||
.FUNCT RT-I-CRANE-3:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-CRANE-4,STACK
|
||||
MOVE CH-CATFISH,RM-LADDER-B2
|
||||
PRINTR " A grinding crash of metal reverberates throughout Deepcore as some huge piece of equipment strikes one of the cylinders and bounces off."
|
||||
|
||||
|
||||
.FUNCT RT-I-CRANE-4:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-CRANE-5,STACK
|
||||
PRINTI " Lindsey"
|
||||
EQUAL? HERE,RM-COMMAND-MODULE \?CCL3
|
||||
PRINTI " hits the intercom button again and screams,"
|
||||
JUMP ?CND1
|
||||
?CCL3: PRINTI "'s voice shrieks over the intercom."
|
||||
?CND1: PRINTR " ""Here it comes! All hands rig for impact!"""
|
||||
|
||||
|
||||
.FUNCT RT-I-CRANE-5:ANY:0:0
|
||||
SET 'GL-CRANE-FALLING?,FALSE-VALUE
|
||||
SET 'GL-CRANE-DOWN?,TRUE-VALUE
|
||||
MOVE TH-FIRE,RM-SUB-BAY
|
||||
ADD GL-MOVES,14
|
||||
ICALL RT-QUEUE,RT-I-FIRE-1,STACK
|
||||
SET 'GL-BATTERY-LEAK,TRUE-VALUE
|
||||
MOVE TH-CRACK,RM-PT-OBS-DECK
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-BATTERY-LEAK,STACK
|
||||
MOVE CH-COFFEY,RM-COMMAND-MODULE
|
||||
MOVE CH-CATFISH,RM-DIVE-GEAR-STORAGE
|
||||
FSET CH-CATFISH,FL-LOCKED
|
||||
FCLEAR LG-DGS-DOOR,FL-OPEN
|
||||
MOVE CH-HIPPY,RM-FRESH-WATER-STORAGE
|
||||
ADD GL-MOVES,30
|
||||
ICALL RT-QUEUE,RT-I-HIPPY-RETURN,STACK
|
||||
EQUAL? HERE,RM-DIVE-GEAR-STORAGE \?CCL3
|
||||
PRINTI " Catfish rushes in, slamming the door behind him. He starts rummaging around in his locker. ""I've got to find the arc-welder,"" he yells.
|
||||
"
|
||||
JUMP ?CND1
|
||||
?CCL3: ADD GL-MOVES,4
|
||||
ICALL RT-QUEUE,RT-I-CATFISH-TRAPPED,STACK
|
||||
?CND1: PRINTI " The inside of your head explodes as the crane slams into Deepcore with the impact of a hundred sticks of dynamite. The crane crashes into the starboard cylinders at an angle, toppling Deepcore almost over onto its side. You collide with the starboard bulkhead as the floor tilts crazily below your feet. Then you're thrown to the deck as the crane shears off the top of two aft cylinders and the rest of the rig crashes back onto the ocean floor with a shuddering jolt.
|
||||
"
|
||||
EQUAL? HERE,RM-COMMAND-MODULE \?CCL6
|
||||
PRINTR " Coffey saunters into the command module, looking unconcerned about the chaos that surrounds him. Lindsey looks up at you and says, ""I know we have our differences, Bud. But you're the one in command here, and I'll do whatever you tell me to."""
|
||||
?CCL6: EQUAL? HERE,RM-DIVE-GEAR-STORAGE \?CCL8
|
||||
PRINTR " When your head clears you look around and take stock of your situation. A locker has fallen over, pinning Catfish to the floor. Water is cascading down into the room from the ceiling above."
|
||||
?CCL8: EQUAL? HERE,RM-SUB-BAY \TRUE
|
||||
PRINTR " A reserve oxygen cylinder has been knocked loose of its mooring and lies on the floor. You can hear the hiss of the pure oxygen as it escapes into the breathing mix. Suddenly, an exposed wire along the wall begins to spark. The insulation nearby catches fire and the flames start to work their way towards the wooden dive locker."
|
||||
|
||||
|
||||
.FUNCT RT-I-HIPPY-RETURN:ANY:0:0
|
||||
MOVE CH-HIPPY,HERE
|
||||
PRINTR " Hippy stumbles into the room, sopping wet and gasping for air. ""I got trapped down in Fresh Water Storage,"" he gasps. ""The doors buckled and the only way out was through the emergency escape hatch in the bottom of the cylinder. But the wheel was jammed and I couldn't turn it. I had just given myself up for dead, when suddenly the wheel started turning all by itself! I was pretty spooked, but I didn't sit around to figure it out. I opened the hatch and swam over to the MoonPool. But just as I came out of the cylinder, I saw this...shape...disappear off towards the trench."""
|
||||
|
||||
|
||||
.FUNCT RT-I-KLAXON:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-KLAXON,STACK
|
||||
FSET? HERE,FL-WATER /FALSE
|
||||
PRINTR " The klaxons continue to blare in your ears."
|
||||
|
||||
|
||||
.FUNCT RT-I-BATTERY-LEAK:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-BATTERY-LEAK,STACK
|
||||
FSET? TH-PT-BILGE-BUTTON,FL-ON \?CCL3
|
||||
GRTR? GL-WATER-LEVEL,0 \FALSE
|
||||
DEC 'GL-WATER-LEVEL
|
||||
RFALSE
|
||||
?CCL3: IGRTR? 'GL-WATER-LEVEL,19 \?CCL7
|
||||
EQUAL? HERE,RM-PT-BATTERY-ROOM \?CCL10
|
||||
PRINTI " Slowly, the water level rises until it encases the base of the huge powercels. Suddenly, everything goes dark and you hear all Deepcore's machinery grind to a halt. You see a few blue flashes below the water level, and then everything becomes very still. With"
|
||||
JUMP ?CND8
|
||||
?CCL10: FSET? HERE,FL-WATER \?CCL12
|
||||
FSET? HERE,FL-INDOORS /?CND8
|
||||
PRINTI " You glance back at Deepcore and see all the lights flicker out. You realize immediately that something has shorted out the powercels in the battery room. You swim back to investigate, emerge into the MoonPool, and try to make your way down to the battery room. But with"
|
||||
JUMP ?CND8
|
||||
?CCL12: PRINTI " Suddenly, everything goes dark and you hear all of Deepcore's machinery grind to a halt. In the eerie silence that follows, you realize that something has shorted out the powercels in the battery room. With"
|
||||
?CND8: PRINTI " no power to maintain the temperature and the air supply, the end comes much more quickly than you would have expected.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL7: EQUAL? HERE,RM-PT-BATTERY-ROOM \FALSE
|
||||
PRINTI " The pool of water"
|
||||
GRTR? GL-WATER-LEVEL,17 \?CCL19
|
||||
PRINTR " will reach the battery cases within seconds. If it does, all will be lost."
|
||||
?CCL19: GRTR? GL-WATER-LEVEL,10 \?CCL21
|
||||
PRINTR " is rising rapidly, and will soon short out the batteries."
|
||||
?CCL21: GRTR? GL-WATER-LEVEL,5 \?CCL23
|
||||
PRINTR ", if it rises much further, will reach the battery cases and short out Deepcore's sole remaining source of emergency power."
|
||||
?CCL23: PRINTR " is approaching the base of the battery cases."
|
||||
|
||||
|
||||
.FUNCT RT-RM-PT-BATTERY-ROOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " This is one of the rooms that contain the huge fuelcells that power Deepcore. The powercels are surrounded by a wire cage that is festooned with signs that warn of the dangers of electricity. The fuelcells are humming ominously - as usual - and an acrid, ozone smell fills the air. The only exit is through the hatch in the aft bulkhead.
|
||||
"
|
||||
ZERO? GL-BATTERY-LEAK /FALSE
|
||||
PRINTI " A stream of water is flowing down the wall from the ceiling "
|
||||
FSET? TH-PT-BILGE-BUTTON,FL-ON \?CCL8
|
||||
ZERO? GL-WATER-LEVEL \?CCL11
|
||||
PRINTI "but it is sucked up by the pump as soon as it hits the floor."
|
||||
JUMP ?CND6
|
||||
?CCL11: PRINTI "into the pool of water on the floor. The pool looks like it is getting smaller."
|
||||
JUMP ?CND6
|
||||
?CCL8: LESS? GL-WATER-LEVEL,6 \?CCL13
|
||||
PRINTI "into a pool of water on the floor. As the water rises, it approaches the base of the battery cases."
|
||||
JUMP ?CND6
|
||||
?CCL13: LESS? GL-WATER-LEVEL,11 \?CCL15
|
||||
PRINTI "into the pool of water. If the water rises much further, it will reach the battery cases and short out Deepcore's sole remaining source of emergency power."
|
||||
JUMP ?CND6
|
||||
?CCL15: LESS? GL-WATER-LEVEL,18 \?CCL17
|
||||
PRINTI "into the rapidly rising water."
|
||||
JUMP ?CND6
|
||||
?CCL17: LESS? GL-WATER-LEVEL,20 \?CCL19
|
||||
PRINTI "into the pool of water. The water will reach the battery cases within seconds. If it does, all will be lost."
|
||||
JUMP ?CND6
|
||||
?CCL19: PRINTI "into the rapidly rising water below."
|
||||
?CND6: CRLF
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-POWERCEL:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-POOL-OF-WATER:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-PT-OBS-DECK:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: PRINTI " the port observation deck, which has a huge domed plexiglass window where the forward bulkhead should be. The only exit is in the aft bulkhead.
|
||||
"
|
||||
ZERO? GL-BATTERY-LEAK /FALSE
|
||||
PRINTI " There is a fair-sized crack in the starboard bulkhead, up near the ceiling. Water is pouring in through the crack, running down the wall, and disappearing into the room below.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-CRACK:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
ZERO? NOW-PRSI /?CCL5
|
||||
EQUAL? PRSA,V?PUT \FALSE
|
||||
EQUAL? PRSO,TH-WELDING-ROD \FALSE
|
||||
CALL1 RT-WELD-CRACK
|
||||
RSTACK
|
||||
?CCL5: EQUAL? PRSA,V?WELD \FALSE
|
||||
CALL1 RT-WELD-CRACK
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-WELD-CRACK:ANY:0:0
|
||||
CALL RT-META-IN?,TH-ARC-WELDER,HERE
|
||||
ZERO? STACK /?CCL3
|
||||
IN? TH-WELDING-ROD,TH-RED-CABLE \?CCL3
|
||||
FSET? TH-ARC-WELDER,FL-ON \?CCL8
|
||||
GETP TH-BLACK-CABLE,P?OWNER
|
||||
EQUAL? STACK,LG-WALL \?CCL8
|
||||
REMOVE TH-CRACK
|
||||
SET 'GL-BATTERY-LEAK,FALSE-VALUE
|
||||
SET 'GL-WATER-LEVEL,0
|
||||
ICALL2 RT-DEQUEUE,RT-I-BATTERY-LEAK
|
||||
FCLEAR TH-PT-BILGE-BUTTON,FL-ON
|
||||
PRINTR " You hold the rod up to the crack. Sparks immediately start to fly from the tip of the rod and the end starts to glow. Soon, the softened metal begins to melt into the crack, and the stream of water gradually disappears."
|
||||
?CCL8: PRINTR " You hold the rod up next to the crack, but nothing happens."
|
||||
?CCL3: EQUAL? PRSA,V?WELD \?CCL12
|
||||
PRINT K-HOW-INTEND-MSG
|
||||
CRLF
|
||||
RETURN 2
|
||||
?CCL12: PRINTR " You hold the rod up next to the crack, but nothing happens."
|
||||
|
||||
|
||||
.FUNCT RT-TH-ARC-WELDER:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTR " The arc welder is a sturdy black box with red and black cables coming out of it. The red cable looks like a jumper cable, except that the clamp at the end is wrapped with thick rubber insulation. The black cable ends in an suction cup that has an exposed electrode in the center. In addition, it has an on/off switch and a power cord."
|
||||
?CCL5: EQUAL? PRSA,V?TURN-ON \?CCL7
|
||||
FSET? TH-ARC-WELDER,FL-ON \?CCL10
|
||||
CALL2 RT-ALREADY-MSG,STR?130
|
||||
RSTACK
|
||||
?CCL10: FSET? TH-WELDER-CORD,FL-ON \?CCL12
|
||||
FSET TH-ARC-WELDER,FL-ON
|
||||
PRINTR " The machine begins to hum."
|
||||
?CCL12: PRINTR " The welder isn't plugged in."
|
||||
?CCL7: EQUAL? PRSA,V?TURN-OFF \?CCL14
|
||||
FSET? TH-ARC-WELDER,FL-ON /?CCL17
|
||||
CALL2 RT-ALREADY-MSG,STR?131
|
||||
RSTACK
|
||||
?CCL17: FCLEAR TH-ARC-WELDER,FL-ON
|
||||
PRINTR " The machine stops humming."
|
||||
?CCL14: EQUAL? PRSA,V?PLUG-IN \FALSE
|
||||
FSET? TH-WELDER-CORD,FL-ON \?CCL22
|
||||
CALL2 RT-ALREADY-MSG,STR?132
|
||||
RSTACK
|
||||
?CCL22: FSET TH-WELDER-CORD,FL-ON
|
||||
PRINTR " You plug the power cord into the wall outlet."
|
||||
|
||||
|
||||
.FUNCT RT-TH-WELDING-ROD:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR " It's a stiff metal rod, about 14 inches long."
|
||||
|
||||
|
||||
.FUNCT RT-TH-RED-CABLE:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
ZERO? NOW-PRSI /?CCL5
|
||||
EQUAL? PRSA,V?PUT-IN,V?ATTACH,V?TAKE-WITH \FALSE
|
||||
EQUAL? PRSO,TH-WELDING-ROD \FALSE
|
||||
MOVE TH-WELDING-ROD,TH-RED-CABLE
|
||||
PRINTR " You put the welding rod into the clamp."
|
||||
?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL13
|
||||
PRINTR " The red cable looks like a jumper cable, ending in a large insulated clamp with sharp steel teeth."
|
||||
?CCL13: EQUAL? PRSA,V?ATTACH \FALSE
|
||||
EQUAL? PRSI,TH-WELDING-ROD \FALSE
|
||||
MOVE TH-WELDING-ROD,TH-RED-CABLE
|
||||
PRINTR " You put the welding rod into the clamp."
|
||||
|
||||
|
||||
.FUNCT RT-TH-BLACK-CABLE:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
ZERO? NOW-PRSI \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL7
|
||||
PRINTR " The black cable ends in an suction cup that has an exposed electrode in the center."
|
||||
?CCL7: EQUAL? PRSA,V?ATTACH \FALSE
|
||||
PUTP TH-BLACK-CABLE,P?OWNER,PRSI
|
||||
PRINTI " You put the suction cup on"
|
||||
ICALL RT-PRINT-OBJ,PRSI,K-ART-THE
|
||||
PRINTR ", pressing hard to ensure a good contact for the electrode."
|
||||
|
||||
|
||||
.FUNCT RT-TH-WELDER-SWITCH:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTR " The power switch is labelled 'ON' and 'OFF'."
|
||||
?CCL5: EQUAL? PRSA,V?TURN-OFF,V?TURN-ON \FALSE
|
||||
CALL1 RT-TH-ARC-WELDER
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-TH-WELDER-CORD:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTR " The power cord will plug into any wall outlet."
|
||||
?CCL5: EQUAL? PRSA,V?PLUG-IN \FALSE
|
||||
FSET? TH-WELDER-CORD,FL-ON \?CCL10
|
||||
CALL2 RT-ALREADY-MSG,STR?132
|
||||
RSTACK
|
||||
?CCL10: FSET TH-WELDER-CORD,FL-ON
|
||||
PRINTR " You plug the power cord into the wall outlet."
|
||||
|
||||
|
||||
.FUNCT RT-RM-LADDER-D2:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: PRINTI " the middle level of ladderwell D. A hatch in the forward bulkhead opens onto the pantry. There is a yellow button here, with a sign underneath it.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-PT-BILGE-BUTTON:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?READ \?CCL5
|
||||
PRINTR "It says, ""Port Bilge Pumps."""
|
||||
?CCL5: EQUAL? PRSA,V?HIT,V?PUSH \FALSE
|
||||
PRINTI " You press the button and "
|
||||
FSET? TH-PT-BILGE-BUTTON,FL-ON \?CCL10
|
||||
FCLEAR TH-PT-BILGE-BUTTON,FL-ON
|
||||
PRINTR "the whirring stops."
|
||||
?CCL10: GRTR? GL-WATER-LEVEL,0 \?CCL12
|
||||
FSET TH-PT-BILGE-BUTTON,FL-ON
|
||||
PRINTR "hear a distant whirring."
|
||||
?CCL12: FCLEAR TH-PT-BILGE-BUTTON,FL-ON
|
||||
PRINTR "hear a distant whirring which stops soon after it starts. There must not be any water in the port bilge."
|
||||
|
||||
|
||||
.FUNCT RT-TH-SB-BILGE-BUTTON:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?READ \?CCL5
|
||||
PRINTR "It says, ""Starboard Bilge Pumps."""
|
||||
?CCL5: EQUAL? PRSA,V?HIT,V?PUSH \FALSE
|
||||
PRINTR " You press the button and hear a distant whirring which stops soon after it starts. There must not be any water in the starboard bilge."
|
||||
|
||||
|
||||
.FUNCT RT-I-CATFISH-TRAPPED:ANY:0:0
|
||||
PRINTR " The intercom buzzes. Then you hear a weak voice. ""This is Catfish. I'm trapped under a locker in Dive Gear Storage. The water in here is rising faster than the Johnstown flood. If one of y'all don't get down here pronto, I'm gonnna be singin' with the angels."""
|
||||
|
||||
|
||||
.FUNCT RT-RM-DIVE-GEAR-STORAGE:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: PRINTI " a room that looks like the locker room at the local health club. The walls are lined with floor-to-ceiling lockers, one for each crew member. Your locker is the one next to the exit in the aft bulkhead.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-BUD-GEAR-LOCKER:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-BIG-LOCKER:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?PULL /?CTR4
|
||||
EQUAL? PRSA,V?PUSH,V?LIFT,V?MOVE \?CCL5
|
||||
?CTR4: EQUAL? PRSI,FALSE-VALUE,ROOMS,TH-HANDS \?CCL10
|
||||
PRINTR " You strain at the locker, but you just don't have enough leverage to move it."
|
||||
?CCL10: EQUAL? PRSI,TH-BARBELL \FALSE
|
||||
FCLEAR CH-CATFISH,FL-LOCKED
|
||||
ICALL2 RT-SET-PUPPY,CH-CATFISH
|
||||
PRINTR " Using the bar as a lever, you strain against the weight of the dive locker. Slowly, it inches up. Just when you realize that the bar is starting to slip from your grasp, Catfish manages to squirm free and roll out of the way. The locker crashes back to the floor. Catfish drags himself unsteadily to his feet and says, ""Thanks a lot, Chief. Nothing seems to be broken. Let's get the hell out of here."""
|
||||
?CCL5: EQUAL? PRSA,V?OPEN \FALSE
|
||||
PRINTR " The doors are jammed shut."
|
||||
|
||||
|
||||
.FUNCT RT-GN-LOCKER:ANY:2:2,TBL,FINDER,PTR,N
|
||||
ADD TBL,8 >PTR
|
||||
GET TBL,1 >N
|
||||
EQUAL? HERE,RM-DIVE-GEAR-STORAGE \FALSE
|
||||
IN? CH-CATFISH,RM-DIVE-GEAR-STORAGE \FALSE
|
||||
INTBL? TH-BIG-LOCKER,PTR,N \FALSE
|
||||
PRINTI "[the big locker]
|
||||
"
|
||||
RETURN TH-BIG-LOCKER
|
||||
|
||||
|
||||
.FUNCT RT-LG-DGS-DOOR:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?OPEN \FALSE
|
||||
FSET? LG-DGS-DOOR,FL-OPEN /FALSE
|
||||
FSET? CH-CATFISH,FL-LOCKED \FALSE
|
||||
FSET LG-DGS-DOOR,FL-OPEN
|
||||
FCLEAR LG-FLOOD-DOOR,FL-OPEN
|
||||
SET 'OHERE,HERE
|
||||
SET 'HERE,RM-DIVE-GEAR-STORAGE
|
||||
MOVE CH-PLAYER,RM-DIVE-GEAR-STORAGE
|
||||
PRINTR " You open the door to the cylinder. Inside is a jumbled chaos. Water is streaming down from the ceiling into an ever-rising pool on the floor. Catfish is sitting with his back to the wall, up to his chest in water. His legs are pinned by a huge locker that has fallen over on top of him, and he is turning blue from the cold.
|
||||
Water gushes out of the chamber when you open the door. It falls to the level below, triggering the automated flood control door that seals the starboard side of Deepcore off from the central core. The hydraulic hose stiffens and the door swings shut.
|
||||
You step into the chamber. The frigid water comes up to your knees. Catfish looks up at you and grins weakly. ""Howdy, pardner."""
|
||||
|
||||
|
||||
.FUNCT RT-RM-RECREATION-ROOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "step into"
|
||||
?CND4: PRINTI " the recreation and exercise room. Against the wall is a stationary bicycle. Next to it is a treadmill. In the middle of the room is a lift bench with a barbell resting on the stand. The only exit is to port.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-BARBELL:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?LIFT,V?TAKE \FALSE
|
||||
IN? TH-WEIGHTS,TH-BARBELL \FALSE
|
||||
PRINTR " The barbell is too heavy to lift."
|
||||
|
||||
|
||||
.FUNCT RT-TH-WEIGHTS:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?TAKE,V?UNWEAR \FALSE
|
||||
IN? TH-WEIGHTS,TH-BARBELL \FALSE
|
||||
MOVE TH-WEIGHTS,HERE
|
||||
PRINTR " You remove the weights from the barbell and lay them on the floor."
|
||||
|
||||
|
||||
.FUNCT RT-TH-LIFT-BENCH:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-TREADMILL:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-CYCLE:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-LADDER-B2:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: PRINTI " the middle level of ladderwell B. A corridor leads to the port side of Deepcore. A hatch in the starboard bulkhead opens onto the recreation room. Dive gear storage is forward, and aft is the entrance to your own living quarters.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: EQUAL? CONTEXT,M-ENTERED \?CCL8
|
||||
EQUAL? GL-PUPPY,CH-CATFISH \FALSE
|
||||
LOC TH-ARC-WELDER
|
||||
ZERO? STACK \FALSE
|
||||
MOVE TH-ARC-WELDER,CH-CATFISH
|
||||
MOVE TH-WELDING-ROD,CH-CATFISH
|
||||
PRINTR " Catfish follows you out, holding up the arc-welder triumphantly. ""Dry as a bone, Boss. It was stowed on a shelf the water hadn't reached yet."""
|
||||
?CCL8: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-HYDRAULIC-HOSE:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?CUT \FALSE
|
||||
EQUAL? PRSI,TH-KNIFE \FALSE
|
||||
FSET? TH-HYDRAULIC-HOSE,FL-BROKEN \?CCL11
|
||||
CALL2 RT-ALREADY-MSG,STR?126
|
||||
RSTACK
|
||||
?CCL11: FSET TH-HYDRAULIC-HOSE,FL-BROKEN
|
||||
MOVE TH-HYDRAULIC-FLUID,HERE
|
||||
PRINTR " You cut the hose with the knife. Red fluid pours out onto the floor."
|
||||
|
||||
|
||||
.FUNCT RT-TH-HYDRAULIC-FLUID:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-LG-FLOOD-DOOR:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?OPEN \FALSE
|
||||
FSET? LG-FLOOD-DOOR,FL-OPEN /FALSE
|
||||
FSET? TH-HYDRAULIC-HOSE,FL-BROKEN /FALSE
|
||||
PRINTR " The door refuses to budge."
|
||||
|
||||
|
||||
.FUNCT RT-TH-KNIFE:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
BIN
deepcore.lbm
Normal file
BIN
deepcore.lbm
Normal file
Binary file not shown.
413
defs2.zil
Normal file
413
defs2.zil
Normal file
|
@ -0,0 +1,413 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : DEFS2.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 16 Dec 1988 3:02:42 $"
|
||||
; "rev : $Revision: 1.1 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Default substitutions after PDEFS"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
<INCLUDE "PDEFS" "BASEDEFS" "PBITDEFS">
|
||||
|
||||
<USE "PMEM">
|
||||
|
||||
<CONSTANT SEARCH-ADJACENT <ORB ,SEARCH-MUST-HAVE ,SEARCH-MOBY>>
|
||||
|
||||
<REPLACE-DEFINITION PSEUDO-OBJECTS
|
||||
<PUTPROP THINGS PROPSPEC HACK-PSEUDOS>
|
||||
|
||||
<DEFINE20 HACK-PSEUDOS (LIST "AUX" (N 0) (CT 0) NL)
|
||||
<SET LIST <REST .LIST>>
|
||||
<SET LIST
|
||||
<MAPF
|
||||
,LIST
|
||||
<FUNCTION (X)
|
||||
<COND
|
||||
(<0? .N>
|
||||
<SET CT <+ .CT 1>>
|
||||
<SET N 1>
|
||||
<COND
|
||||
(<TYPE? .X ATOM>
|
||||
<TABLE (PURE PATTERN (BYTE [REST WORD]))
|
||||
1
|
||||
<VOC <SPNAME .X> ADJ>
|
||||
>
|
||||
)
|
||||
(<TYPE? .X LIST>
|
||||
<EVAL
|
||||
<CHTYPE
|
||||
(TABLE (PURE PATTERN (BYTE [REST WORD]))
|
||||
<LENGTH .X>
|
||||
!<MAPF ,LIST
|
||||
<FUNCTION (Y)
|
||||
<VOC <SPNAME .Y> ADJ>
|
||||
>
|
||||
.X
|
||||
>
|
||||
)
|
||||
FORM
|
||||
>
|
||||
>
|
||||
)
|
||||
(T
|
||||
0
|
||||
)
|
||||
>
|
||||
)
|
||||
(<1? .N>
|
||||
<SET N 2>
|
||||
<COND
|
||||
(<TYPE? .X ATOM>
|
||||
<TABLE (PURE PATTERN (BYTE [REST WORD]))
|
||||
1
|
||||
<VOC <SPNAME .X> NOUN>
|
||||
>
|
||||
)
|
||||
(<TYPE? .X LIST>
|
||||
<EVAL
|
||||
<CHTYPE
|
||||
(TABLE (PURE PATTERN (BYTE [REST WORD]))
|
||||
<LENGTH .X>
|
||||
!<MAPF ,LIST
|
||||
<FUNCTION (Y)
|
||||
<VOC <SPNAME .Y> NOUN>
|
||||
>
|
||||
.X
|
||||
>
|
||||
)
|
||||
FORM
|
||||
>
|
||||
>
|
||||
)
|
||||
(T
|
||||
0
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<SET N 0>
|
||||
.X
|
||||
)
|
||||
>
|
||||
>
|
||||
.LIST
|
||||
>
|
||||
>
|
||||
(<>
|
||||
<EVAL
|
||||
<CHTYPE
|
||||
(TABLE (PURE PATTERN (BYTE [REST WORD]))
|
||||
.CT
|
||||
!.LIST
|
||||
)
|
||||
FORM
|
||||
>
|
||||
>
|
||||
)
|
||||
>
|
||||
|
||||
<GLOBAL LAST-PSEUDO-LOC:OBJECT <>>
|
||||
|
||||
<COND
|
||||
(<CHECK-VERSION? ZIP>
|
||||
<OBJECT PSEUDO-OBJECT
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "pseudo")
|
||||
(ACTION 0)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<OBJECT PSEUDO-OBJECT
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(FLAGS FL-HAS-DESCFCN FL-HAS-SDESC FL-NO-ARTICLE)
|
||||
(ACTION 0)
|
||||
>
|
||||
)
|
||||
>
|
||||
|
||||
<DEFINE TEST-THINGS (RM F "AUX" CT GLBS N)
|
||||
<SET GLBS <GETP .RM ,P?THINGS>>
|
||||
<SET N <GETB .GLBS 0>>
|
||||
<SET GLBS <REST .GLBS>>
|
||||
|
||||
;"? maybe use theory from B'cy?"
|
||||
<COND
|
||||
(<T? <SET CT <FIND-ADJS .F>>>
|
||||
<SET CT <ADJS-COUNT .CT>>
|
||||
)
|
||||
>
|
||||
<REPEAT
|
||||
( (NOUN <FIND-NOUN .F>)
|
||||
(V <REST-TO-SLOT <FIND-ADJS .F> ADJS-COUNT 1>)
|
||||
TTBL
|
||||
(MATCH <>)
|
||||
)
|
||||
;------------
|
||||
<COND
|
||||
(<AND <SET TTBL <GET .GLBS 1>>
|
||||
<INTBL? .NOUN <ZREST .TTBL 1> <GETB .TTBL 0>>
|
||||
>
|
||||
<COND
|
||||
(<ZERO? .CT>
|
||||
<SET MATCH T>
|
||||
)
|
||||
(<SET TTBL <ZGET .GLBS 0>>
|
||||
<REPEAT ((I 0))
|
||||
<COND
|
||||
(<INTBL? <ZGET .V .I> <ZREST .TTBL 1> <GETB .TTBL 0>>
|
||||
<SET MATCH T>
|
||||
<RETURN>
|
||||
)
|
||||
(<IGRTR? .I <- .CT 1>>
|
||||
<RETURN>
|
||||
)
|
||||
>
|
||||
>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(.MATCH
|
||||
<SETG LAST-PSEUDO-LOC .RM>
|
||||
<PUTP ,PSEUDO-OBJECT ,P?ACTION <ZGET .GLBS 2>>
|
||||
<ADD-OBJECT ,PSEUDO-OBJECT .F>
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
<SET GLBS <REST .GLBS 6>>
|
||||
<COND
|
||||
(<DLESS? .N 1>
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
>
|
||||
>
|
||||
|
||||
<REPLACE-DEFINITION WHICH-PRINT
|
||||
<DEFINE WHICH-PRINT
|
||||
(NP "AUX"
|
||||
(SR ,ORPHAN-SR)
|
||||
(LEN <FIND-RES-COUNT .SR>)
|
||||
(SZ <FIND-RES-SIZE .SR>)
|
||||
(NS 0)
|
||||
)
|
||||
<COND
|
||||
(<WHICH-LIST? .NP .SR>
|
||||
; "Count the number of objects to print (only FL-SEEN)"
|
||||
<SET NS 0>
|
||||
<REPEAT ((N .LEN) (S .SZ) (VEC <REST-TO-SLOT .SR FIND-RES-OBJ1>))
|
||||
<COND
|
||||
(<DLESS? N 0>
|
||||
<RETURN>
|
||||
)
|
||||
(<DLESS? S 0>
|
||||
<RETURN>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<FSET? <ZGET .VEC 0> ,FL-SEEN>
|
||||
<INC NS>
|
||||
)
|
||||
>
|
||||
<SET VEC <ZREST .VEC 2>>
|
||||
>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<NOT <EQUAL? ,WINNER ,CH-PLAYER>>
|
||||
<TELL "[You must specify ">
|
||||
<COND
|
||||
(<AND <WHICH-LIST? .NP .SR>
|
||||
<G? .NS 1>
|
||||
>
|
||||
<TELL "if">
|
||||
)
|
||||
(T
|
||||
<TELL "which">
|
||||
<COND
|
||||
(<T? .NP>
|
||||
; <SETG P-ONE-NOUN <NP-NAME .NP>>
|
||||
<TELL !\ >
|
||||
<NP-PRINT .NP>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<TELL "[Which">
|
||||
<COND
|
||||
(<T? .NP>
|
||||
; <SETG P-ONE-NOUN <NP-NAME .NP>>
|
||||
<TELL !\ >
|
||||
<NP-PRINT .NP>
|
||||
)
|
||||
>
|
||||
<TELL " do">
|
||||
)
|
||||
>
|
||||
<TELL " you mean">
|
||||
<COND
|
||||
(<AND <WHICH-LIST? .NP .SR>
|
||||
<G? .NS 1>
|
||||
>
|
||||
<COND
|
||||
(<==? ,WINNER ,CH-PLAYER>
|
||||
<TELL !\,>
|
||||
)
|
||||
>
|
||||
<REPEAT ((N .LEN) (S .SZ) (VEC <REST-TO-SLOT .SR FIND-RES-OBJ1>) (REM .NS) OBJ)
|
||||
<COND
|
||||
(<DLESS? N 0>
|
||||
<RETURN>
|
||||
)
|
||||
(<DLESS? S 0>
|
||||
<RETURN>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<FSET? <SET OBJ <ZGET .VEC 0>> ,FL-SEEN>
|
||||
<TELL the .OBJ>
|
||||
<DEC REM>
|
||||
<COND
|
||||
(<==? .REM 1>
|
||||
<COND
|
||||
(<NOT <==? .NS 2>>
|
||||
<TELL !\,>
|
||||
)
|
||||
>
|
||||
<TELL " or">
|
||||
)
|
||||
(<G? .REM 1>
|
||||
<TELL !\,>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
<SET VEC <ZREST .VEC 2>>
|
||||
>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<==? ,WINNER ,CH-PLAYER>
|
||||
<TELL "?]" CR>
|
||||
)
|
||||
(T
|
||||
<TELL ".]" CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
>
|
||||
|
||||
<REPLACE-DEFINITION CANT-FIND-OBJECT
|
||||
<DEFINE CANT-FIND-OBJECT (NP SEARCH "AUX" OTHER)
|
||||
<COND
|
||||
(<EQUAL? .NP ,ORPHAN-NP>
|
||||
<NP-CANT-SEE .NP>
|
||||
)
|
||||
(T
|
||||
<TELL "[There isn't anything to ">
|
||||
<COND
|
||||
(<SET OTHER <PARSE-VERB ,PARSE-RESULT>>
|
||||
<PRINT-VOCAB-WORD .OTHER>
|
||||
)
|
||||
(T
|
||||
<TELL "do that to">
|
||||
)
|
||||
>
|
||||
<TELL ".]" CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
<DEFINE NP-CANT-SEE ("OPT" (NP <GET-NP>) "AUX" OTHER)
|
||||
<COND
|
||||
(<OR <SET OTHER <NP-NAME .NP>>
|
||||
<NP-QUANT .NP> ;"for PUT ALL IN CRATE BUT CANDLE"
|
||||
>
|
||||
<TELL !\[ The ,WINNER " can't see ">
|
||||
<COND
|
||||
(.OTHER
|
||||
<TELL "any ">
|
||||
<NP-PRINT .NP>
|
||||
)
|
||||
(T
|
||||
<NP-PRINT .NP T>
|
||||
)
|
||||
>
|
||||
<TELL !\ >
|
||||
<COND
|
||||
(<AND <SET OTHER <NP-LOC .NP>>
|
||||
<OR
|
||||
<PMEM-TYPE? .OTHER NOUN-PHRASE>
|
||||
<AND
|
||||
<PMEM-TYPE? .OTHER LOCATION>
|
||||
<SET OTHER <LOCATION-OBJECT .OTHER>>
|
||||
>
|
||||
>
|
||||
>
|
||||
<TELL "in" the <NOUN-PHRASE-OBJ1 .OTHER>>
|
||||
)
|
||||
(T
|
||||
<COND
|
||||
; (<ZAPPLY ,MOBY-FIND? .SEARCH>
|
||||
<TELL "anyw">
|
||||
)
|
||||
(T
|
||||
<TELL "right ">
|
||||
)
|
||||
>
|
||||
<TELL "here">
|
||||
)
|
||||
>
|
||||
<TELL ".]" CR>
|
||||
)
|
||||
(T
|
||||
<MORE-SPECIFIC>
|
||||
)
|
||||
>
|
||||
>
|
||||
>
|
||||
|
||||
<REPLACE-DEFINITION TELL-GWIM-MSG
|
||||
<DEFINE TELL-GWIM-MSG ("AUX" WD VB OBJ)
|
||||
<SET OBJ <ZGET ,GWIM-MSG 1>>
|
||||
<COND
|
||||
(<NOT <EQUAL? .OBJ ,TH-HANDS ;,TH-MOUTH>>
|
||||
<TELL !\[>
|
||||
<COND
|
||||
(<SET WD <ZGET ,GWIM-MSG 0>>
|
||||
<PRINT-VOCAB-WORD .WD>
|
||||
<SET VB <PARSE-VERB ,PARSER-RESULT>>
|
||||
<COND
|
||||
(<EQUAL? .VB ,W?SIT ,W?LIE>
|
||||
<COND
|
||||
(<EQUAL? .WD ,W?DOWN>
|
||||
<TELL " on">
|
||||
)
|
||||
>
|
||||
)
|
||||
(<EQUAL? .VB ,W?GET>
|
||||
<COND
|
||||
(<EQUAL? .WD ,W?OUT>
|
||||
<TELL " of">
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
<TELL the <ZGET ,GWIM-MSG 1> !\] CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
BIN
emrgency.lbm
Normal file
BIN
emrgency.lbm
Normal file
Binary file not shown.
8
endgame.zabstr
Normal file
8
endgame.zabstr
Normal file
|
@ -0,0 +1,8 @@
|
|||
|
||||
<OBJECT TH-WINDOW-BENCH (LOC RM-COMPRESSION-CHAMBER) (DESC "bench") (FLAGS
|
||||
FL-CONTAINER FL-OPENABLE FL-SEARCH) (SYNONYM BENCH SEAT) (ADJECTIVE WINDOW) (
|
||||
ACTION RT-TH-WINDOW-BENCH)>
|
||||
<DEFINE-ROUTINE RT-TH-WINDOW-BENCH>
|
||||
<OBJECT TH-RED-LEVER (LOC TH-WINDOW-BENCH) (DESC "lever") (SYNONYM LEVER) (
|
||||
ADJECTIVE RED) (ACTION RT-TH-RED-LEVER)>
|
||||
<DEFINE-ROUTINE RT-TH-RED-LEVER>
|
29
endgame.zap
Normal file
29
endgame.zap
Normal file
|
@ -0,0 +1,29 @@
|
|||
|
||||
|
||||
.FUNCT RT-TH-WINDOW-BENCH:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?OPEN,V?LIFT \FALSE
|
||||
FSET TH-WINDOW-BENCH,FL-OPEN
|
||||
PRINTR " You lift the seat to reveal the red lever underneath."
|
||||
|
||||
|
||||
.FUNCT RT-TH-RED-LEVER:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?PULL \?CCL5
|
||||
FSET? LG-CHAMBER-DOOR,FL-OPEN /?CCL8
|
||||
FSET? CH-ALIEN,FL-BROKEN \?CCL8
|
||||
PRINTI " You pull the lever and feel an immediate jolt as the compression chamber pulls away from Deepcore. Through the porthole, you get a glimpse of the crippled Deepcore as you slowly rise through the water.
|
||||
|
||||
[GRAPHIC #22]
|
||||
|
||||
For a long time after that you have no sensation of motion, but then the water through the porthole starts to get lighter as you near the surface.
|
||||
Suddenly chamber burst through the surface and sunlight floods through the porthole. You feel the motion of the waves for the first time in weeks as the chamber gently rises and falls. Through the porthole you see the Benthic Explorer steaming towards you.
|
||||
Trumpets sound. Fair young maidens cluster round to look at you admiringly. You have won the game."
|
||||
CRLF
|
||||
CALL2 RT-END-OF-GAME,TRUE-VALUE
|
||||
RSTACK
|
||||
?CCL8: PRINTR " Nothing happens."
|
||||
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "It looks an awful lot like a red lever."
|
||||
|
||||
.ENDI
|
92
endgame.zil
Normal file
92
endgame.zil
Normal file
|
@ -0,0 +1,92 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : ENDGAME.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 20 Mar 1989 8:45:00 $"
|
||||
; "rev : $Revision: 1.3 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Crane crash"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-WINDOW-BENCH"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-WINDOW-BENCH
|
||||
(LOC RM-COMPRESSION-CHAMBER)
|
||||
(DESC "bench")
|
||||
(FLAGS FL-CONTAINER FL-OPENABLE FL-SEARCH)
|
||||
(SYNONYM BENCH SEAT)
|
||||
(ADJECTIVE WINDOW)
|
||||
(ACTION RT-TH-WINDOW-BENCH)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-WINDOW-BENCH ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? LIFT OPEN>
|
||||
<FSET ,TH-WINDOW-BENCH ,FL-OPEN>
|
||||
<TELL " You lift the seat to reveal the red lever underneath." CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-RED-LEVER"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-RED-LEVER
|
||||
(LOC TH-WINDOW-BENCH)
|
||||
(DESC "lever")
|
||||
(SYNONYM LEVER)
|
||||
(ADJECTIVE RED)
|
||||
(ACTION RT-TH-RED-LEVER)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-RED-LEVER ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? PULL>
|
||||
<COND
|
||||
(<AND <NOT <FSET? ,LG-CHAMBER-DOOR ,FL-OPEN>>
|
||||
<FSET? ,CH-ALIEN ,FL-BROKEN>
|
||||
>
|
||||
<TELL
|
||||
" You pull the lever and feel an immediate jolt as the compression chamber
|
||||
pulls away from Deepcore. Through the porthole, you get a glimpse of
|
||||
the crippled Deepcore as you slowly rise through the water.||
|
||||
|
||||
[GRAPHIC #22]||
|
||||
|
||||
For a long time after that you have no sensation of motion, but then the
|
||||
water through the porthole starts to get lighter as you near the surface.|
|
||||
Suddenly chamber burst through the surface and sunlight floods through
|
||||
the porthole. You feel the motion of the waves for the first time in weeks
|
||||
as the chamber gently rises and falls. Through the porthole you see the
|
||||
Benthic Explorer steaming towards you.|
|
||||
Trumpets sound. Fair young maidens cluster round to look at you admiringly.
|
||||
You have won the game." CR
|
||||
>
|
||||
<RT-END-OF-GAME T>
|
||||
)
|
||||
(T
|
||||
<TELL " Nothing happens." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL "It looks an awful lot like a red lever." CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
80
find.zabstr
Normal file
80
find.zabstr
Normal file
|
@ -0,0 +1,80 @@
|
|||
<FLAGS-AND-DEFAULTS (("ONE-BYTE-PARTS-OF-SPEECH" %<>)("WORD-FLAGS-IN-TABLE" T)(
|
||||
"IN-ZILCH" T)) (("PSEUDO-OBJECTS" "DEFS2" #WORD *37202215421*))>
|
||||
|
||||
<ZZSECTION "FIND">
|
||||
<INCLUDE "BASEDEFS" "PDEFS" "PBITDEFS">
|
||||
<USE "NEWSTRUC" "PARSER" "PMEM">
|
||||
<BLOCK (<ROOT>)>
|
||||
THINGS
|
||||
<ENDBLOCK>
|
||||
<FILE-FLAGS MDL-ZIL? CLEAN-STACK?>
|
||||
<DEFAULTS-DEFINED EXCLUDE-HERE-OBJECT? INVALID-OBJECT? MOBY-FIND?
|
||||
LAST-PSEUDO-LOC PSEUDO-OBJECTS SEARCH-IN-LG?>
|
||||
<BEGIN-SEGMENT 0>
|
||||
<PUT-DECL BOOLEAN '<OR ATOM FALSE>>
|
||||
<DEFMAC FD-FLAG (WHICH 'VAL "OPT" 'NEW) <COND (<ASSIGNED? NEW> <COND (<OR <
|
||||
TYPE? .NEW ATOM FALSE> <AND <TYPE? .NEW FORM> <EMPTY? .NEW>>> <COND (<TYPE? .
|
||||
NEW ATOM> <FORM ORB ,.WHICH .VAL>) (T <FORM ANDB .VAL <XORB ,.WHICH -1>>)>) (<
|
||||
TYPE? .VAL FIX LVAL GVAL> <FORM COND (.NEW <FORM ORB .VAL ,.WHICH>) (T <FORM
|
||||
ANDB .VAL <XORB ,.WHICH -1>>)>) (T <FORM BIND ((FLAG .VAL)) <FORM COND (.NEW <
|
||||
FORM ORB ,.WHICH '.FLAG>) (T <FORM ANDB '.FLAG <XORB ,.WHICH -1>>)>>)>) (T <
|
||||
FORM NOT <FORM 0? <FORM ANDB .VAL ,.WHICH>>>)>>
|
||||
<CONSTANT FIND-FLAGS-GWIM 1>
|
||||
<DEFMAC FIND-GWIM? ('F) <FORM NOT <FORM 0? <FORM ANDB <FORM FIND-FLAGS .F> ,
|
||||
FIND-FLAGS-GWIM>>>>
|
||||
<CONSTANT FINDER <MAKE-FINDER>>
|
||||
<GLOBAL P-NOT-HERE:NUMBER 0>
|
||||
<DEFINE-ROUTINE FIND-DESCENDANTS>
|
||||
<DEFINE-ROUTINE EXCLUDED?>
|
||||
<DEFAULT-DEFINITION INVALID-OBJECT? <ROUTINE INVALID-OBJECT?>>
|
||||
<DEFINE-ROUTINE MATCH-OBJECT>
|
||||
<CONSTANT SYN-FIND-PROP 256>
|
||||
<DEFINE-ROUTINE TEST-OBJECT>
|
||||
<DEFINE-ROUTINE ADD-OBJECT>
|
||||
<DEFINE-ROUTINE NOT-IN-FIND-RES?>
|
||||
<DEFINE-ROUTINE EVERYWHERE-VERB?>
|
||||
<DEFINE-ROUTINE MULTIPLE-EXCEPTION?>
|
||||
<ADD-WORD OPEN ADJ>
|
||||
<ADD-WORD CLOSED ADJ>
|
||||
<ADD-WORD SHUT ADJ>
|
||||
<DEFINE-ROUTINE CHECK-ADJS-THERE?>
|
||||
<DEFINE-ROUTINE CHECK-ADJS>
|
||||
<OBJECT GENERIC-OBJECTS (ADJACENT 0)>
|
||||
<DEFAULT-DEFINITION MOBY-FIND? <DEFMAC MOBY-FIND? ('SEARCH) <FORM OR <FORM AND
|
||||
<FORM BAND .SEARCH ',SEARCH-MOBY> <FORM 0? <FORM BAND .SEARCH ',
|
||||
SEARCH-MUST-HAVE>>> <FORM BAND ',PAST-TENSE <FORM WORD-FLAGS <FORM PARSE-VERB '
|
||||
,PARSE-RESULT>>>>>>
|
||||
<DEFAULT-DEFINITION SEARCH-IN-LG? <ROUTINE SEARCH-IN-LG?>>
|
||||
<DEFAULT-DEFINITION EXCLUDE-HERE-OBJECT? <ROUTINE EXCLUDE-HERE-OBJECT?>>
|
||||
<DEFINE-ROUTINE FIND-OBJECTS>
|
||||
<DEFAULT-DEFINITION PSEUDO-OBJECTS <PUTPROP THINGS PROPSPEC HACK-PSEUDOS> <
|
||||
DEFINE20 HACK-PSEUDOS (LIST "AUX" (N 0) (CT 0)) <SET LIST <REST .LIST>> <SET
|
||||
LIST <MAPR ,LIST <FUNCTION (X "AUX" L (ACT 0) (NCT 0)) <COND (<0? .N> <SET CT <
|
||||
+ .CT 1>> <SET N 1> <COND (<TYPE? <1 .X> ATOM> <SET ACT 1>) (<TYPE? <1 .X> LIST
|
||||
> <SET ACT <LENGTH <1 .X>>>) (T <SET ACT 0>)> <COND (<LENGTH? .X 1>) (<TYPE? <2
|
||||
.X> ATOM> <SET NCT 1>) (<TYPE? <2 .X> LIST> <SET NCT <LENGTH <2 .X>>>) (T <SET
|
||||
NCT 0>)> <TABLE (PURE) <BYTE .ACT> <BYTE .NCT> <COND (<0? .ACT> 0) (<==? .ACT 1
|
||||
> <VOC <SPNAME <1 .X>> ADJ>) (T <EVAL <CHTYPE (TABLE (PURE) !<MAPF ,LIST <
|
||||
FUNCTION (Y) <VOC <SPNAME .Y> ADJ>> <1 .X>!>) FORM>>)> <COND (<0? .NCT> 0) (<
|
||||
==? .NCT 1> <VOC <SPNAME <2 .X>> NOUN>) (T <EVAL <CHTYPE (TABLE (PURE) !<MAPF ,
|
||||
LIST <FUNCTION (Y) <VOC <SPNAME .Y> NOUN>> <2 .X>!>) FORM>>)>>) (<1? .N> <SET N
|
||||
2> <MAPRET>) (T <SET N 0> <1 .X>)>> .LIST>> (<> <EVAL <CHTYPE (TABLE (PURE) .CT
|
||||
!.LIST) FORM>>)> <DEFINE TEST-THINGS (RM F "AUX" CT (RMG <GETP .RM ,P?THINGS>)
|
||||
(RMGL <GET .RMG 0>)) <SET RMG <REST .RMG 2>> <COND (<T? <SET CT <FIND-ADJS .F>>
|
||||
> <SET CT <ADJS-COUNT .CT>>)> <REPEAT (TTBL (NOUN <FIND-NOUN .F>) XCT (V <
|
||||
REST-TO-SLOT <FIND-ADJS .F> ADJS-COUNT 1>)) <SET TTBL <GET .RMG 0>> <COND (<AND
|
||||
<OR <EQUAL? .NOUN ,W?ONE> <AND <1? <SET XCT <GETB .TTBL 1>>> <EQUAL? .NOUN <
|
||||
ZGET .TTBL 2>>> <INTBL? .NOUN <ZGET .TTBL 2> .XCT>> <OR <0? .CT> <AND <1? <SET
|
||||
XCT <GETB .TTBL 0>>> <EQUAL? <ZGET .V 0> <ZGET .TTBL 1>>> <INTBL? <ZGET .V 0> <
|
||||
ZGET .TTBL 1> .XCT>> <OR <NOT <FIND-OF .F>> <AND <EQUAL? 1 <FIND-RES-COUNT ,
|
||||
OWNER-SR-HERE>> <EQUAL? ,PSEUDO-OBJECT <FIND-RES-OBJ1 ,OWNER-SR-HERE>> <EQUAL?
|
||||
,LAST-PSEUDO-LOC .RM> <EQUAL? <GETP ,PSEUDO-OBJECT ,P?ACTION> <GET .RMG 1>>>>>
|
||||
<SETG LAST-PSEUDO-LOC .RM> <PUTP ,PSEUDO-OBJECT ,P?ACTION <GET .RMG 1>> <SET V
|
||||
<ZBACK <GETPT ,PSEUDO-OBJECT ,P?ACTION> 7>> <COPYT .NOUN .V 6> <COND (<BTST <
|
||||
WORD-FLAGS .NOUN> ,PLURAL-FLAG> <FSET ,PSEUDO-OBJECT ,PLURAL>) (T <FCLEAR ,
|
||||
PSEUDO-OBJECT ,PLURAL>)> <ADD-OBJECT ,PSEUDO-OBJECT .F> <RFALSE>)> <SET RMG <
|
||||
ZREST .RMG 4>> <COND (<L? <SET RMGL <- .RMGL 1>> 1> <RTRUE>)>>> <GLOBAL
|
||||
LAST-PSEUDO-LOC:OBJECT <>> <OBJECT PSEUDO-OBJECT (LOC LOCAL-GLOBALS) (DESC
|
||||
"pseudoxxx") (ACTION 0)>>
|
||||
<END-SEGMENT>
|
||||
<END-DEFINITIONS>
|
578
find.zap
Normal file
578
find.zap
Normal file
|
@ -0,0 +1,578 @@
|
|||
|
||||
.SEGMENT "0"
|
||||
|
||||
|
||||
.FUNCT FIND-DESCENDANTS:ANY:2:2,PARENT,FLAGS,F,FOBJ
|
||||
SET 'F,FINDER
|
||||
EQUAL? PARENT,GLOBAL-HERE \?CND1
|
||||
SET 'PARENT,HERE
|
||||
?CND1: FIRST? PARENT >FOBJ \TRUE
|
||||
?PRG6: CALL2 VISIBLE?,FOBJ
|
||||
ZERO? STACK /?CND8
|
||||
BTST FLAGS,8 /?CND10
|
||||
BTST FLAGS,1 \?PRF16
|
||||
PUSH 1
|
||||
JUMP ?PEN14
|
||||
?PRF16: PUSH 0
|
||||
?PEN14: CALL MATCH-OBJECT,FOBJ,F,STACK
|
||||
ZERO? STACK /FALSE
|
||||
?CND10: BTST FLAGS,4 \?CND8
|
||||
FIRST? FOBJ \?CND8
|
||||
EQUAL? FOBJ,WINNER /?CND8
|
||||
FSET? FOBJ,SEARCHBIT \?PRD24
|
||||
FSET? FOBJ,OPENBIT /?CCL18
|
||||
FSET? FOBJ,TRANSBIT /?CCL18
|
||||
?PRD24: FSET? FOBJ,SURFACEBIT \?CND8
|
||||
?CCL18: BTST FLAGS,1 \?CCL33
|
||||
PUSH 5
|
||||
JUMP ?CND31
|
||||
?CCL33: PUSH 4
|
||||
?CND31: CALL FIND-DESCENDANTS,FOBJ,STACK
|
||||
ZERO? STACK /FALSE
|
||||
?CND8: NEXT? FOBJ >FOBJ /?PRG6
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT EXCLUDED?:ANY:2:2,FOBJ,F,EXC,PHRASE,CT,VEC,VV
|
||||
GET F,8 >EXC
|
||||
ZERO? EXC /FALSE
|
||||
GET EXC,3 >PHRASE
|
||||
GET PHRASE,1 >CT
|
||||
ADD PHRASE,6 >VEC
|
||||
?PRG6: DLESS? 'CT,0 \?CND8
|
||||
SET 'VV,FALSE-VALUE
|
||||
JUMP ?REP7
|
||||
?CND8: GET VEC,0
|
||||
EQUAL? FOBJ,STACK \?CND10
|
||||
SET 'VV,TRUE-VALUE
|
||||
?REP7: ZERO? VV \TRUE
|
||||
GET EXC,1 >EXC
|
||||
ZERO? EXC /FALSE
|
||||
GET EXC,3 >PHRASE
|
||||
GET PHRASE,1 >CT
|
||||
ADD PHRASE,6 >VEC
|
||||
JUMP ?PRG6
|
||||
?CND10: ADD VEC,4 >VEC
|
||||
JUMP ?PRG6
|
||||
|
||||
|
||||
.FUNCT INVALID-OBJECT?:ANY:1:1,OBJ
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT MATCH-OBJECT:ANY:3:3,FOBJ,F,INCLUDE?,NOUN,ADJS,APP,TB,RES,?TMP1
|
||||
GET F,9 >RES
|
||||
FSET? FOBJ,INVISIBLE /TRUE
|
||||
GET F,6 >NOUN
|
||||
EQUAL? NOUN,FALSE-VALUE,W?ONE /?PRD6
|
||||
GETPT FOBJ,P?SYNONYM >TB
|
||||
ZERO? TB /TRUE
|
||||
PTSIZE TB
|
||||
DIV STACK,2
|
||||
INTBL? NOUN,TB,STACK \TRUE
|
||||
?PRD6: GET F,7 >ADJS
|
||||
ZERO? ADJS /?PRD11
|
||||
CALL CHECK-ADJS,FOBJ,F,ADJS
|
||||
ZERO? STACK /TRUE
|
||||
?PRD11: GET F,5 >ADJS
|
||||
ZERO? ADJS /?PRD14
|
||||
CALL CHECK-ADJS,FOBJ,F,ADJS
|
||||
ZERO? STACK /TRUE
|
||||
?PRD14: CALL EXCLUDED?,FOBJ,F
|
||||
ZERO? STACK \TRUE
|
||||
GET F,1
|
||||
BTST STACK,1 /?CTR2
|
||||
CALL2 INVALID-OBJECT?,FOBJ
|
||||
ZERO? STACK \TRUE
|
||||
?CTR2: ZERO? INCLUDE? /TRUE
|
||||
GET F,5 >ADJS
|
||||
ZERO? ADJS /?CCL24
|
||||
GET ADJS,4 >?TMP1
|
||||
GETPT FOBJ,P?ADJECTIVE
|
||||
PTSIZE STACK
|
||||
DIV STACK,2
|
||||
EQUAL? ?TMP1,STACK \?CCL24
|
||||
PUT RES,1,1
|
||||
PUT RES,2,FALSE-VALUE
|
||||
PUT RES,4,FOBJ
|
||||
EQUAL? FOBJ,HERE \FALSE
|
||||
PUT RES,4,GLOBAL-HERE
|
||||
RFALSE
|
||||
?CCL24: GET F,0 >APP
|
||||
ZERO? APP /?CCL31
|
||||
GET F,1
|
||||
BTST STACK,1 /?CCL31
|
||||
GET RES,1
|
||||
ZERO? STACK /?CTR35
|
||||
GET F,2
|
||||
ZERO? STACK /?CCL36
|
||||
?CTR35: CALL ADD-OBJECT,FOBJ,F
|
||||
RSTACK
|
||||
?CCL36: CALL TEST-OBJECT,FOBJ,APP,F
|
||||
ZERO? STACK /FALSE
|
||||
GET RES,1
|
||||
EQUAL? STACK,1 \?CCL43
|
||||
GET RES,4
|
||||
CALL TEST-OBJECT,STACK,APP,F
|
||||
ZERO? STACK \?CCL46
|
||||
PUT RES,4,FOBJ
|
||||
EQUAL? FOBJ,HERE \TRUE
|
||||
PUT RES,4,GLOBAL-HERE
|
||||
RTRUE
|
||||
?CCL46: CALL ADD-OBJECT,FOBJ,F
|
||||
RSTACK
|
||||
?CCL43: CALL ADD-OBJECT,FOBJ,F
|
||||
RSTACK
|
||||
?CCL31: ZERO? APP \?CCL50
|
||||
GET F,1
|
||||
BTST STACK,1 \?CTR52
|
||||
GET F,2
|
||||
ZERO? STACK /TRUE
|
||||
?CTR52: CALL ADD-OBJECT,FOBJ,F
|
||||
RSTACK
|
||||
?CCL50: CALL TEST-OBJECT,FOBJ,APP,F
|
||||
ZERO? STACK /TRUE
|
||||
CALL ADD-OBJECT,FOBJ,F
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT TEST-OBJECT:ANY:3:3,FOBJ,APP,F,N,NN,?TMP1
|
||||
BAND APP,65280
|
||||
ZERO? STACK \?CCL3
|
||||
BTST APP,128 \?CCL6
|
||||
BAND APP,63
|
||||
FSET? FOBJ,STACK /FALSE
|
||||
RTRUE
|
||||
?CCL6: FSET? FOBJ,APP /TRUE
|
||||
RFALSE
|
||||
?CCL3: GET APP,1
|
||||
BTST STACK,256 \?CND12
|
||||
GET APP,1
|
||||
BAND STACK,63
|
||||
GETP FOBJ,STACK >?TMP1
|
||||
GET APP,2
|
||||
EQUAL? ?TMP1,STACK /TRUE
|
||||
RFALSE
|
||||
?CND12: GET APP,0 >N
|
||||
?PRG17: GET APP,N >NN
|
||||
BTST NN,128 \?CCL21
|
||||
BAND NN,63
|
||||
FSET? FOBJ,STACK /?CND19
|
||||
RTRUE
|
||||
?CCL21: FSET? FOBJ,NN /TRUE
|
||||
?CND19: DLESS? 'N,1 \?PRG17
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT ADD-OBJECT:ANY:2:2,OBJ,F,VEC,NC,DOIT?,SYN,WHICH,?TMP1
|
||||
GET F,9 >VEC
|
||||
SET 'DOIT?,TRUE-VALUE
|
||||
GET F,3 >SYN
|
||||
GET F,4 >WHICH
|
||||
EQUAL? OBJ,HERE \?CND1
|
||||
SET 'OBJ,GLOBAL-HERE
|
||||
?CND1: GET F,2
|
||||
ZERO? STACK \?CND3
|
||||
ZERO? SYN /?CND3
|
||||
GET VEC,1
|
||||
EQUAL? 1,STACK \?CND3
|
||||
CALL MULTIPLE-EXCEPTION?,OBJ,SYN,WHICH,F
|
||||
ZERO? STACK /?CCL10
|
||||
SET 'DOIT?,FALSE-VALUE
|
||||
JUMP ?CND3
|
||||
?CCL10: GET VEC,4
|
||||
CALL MULTIPLE-EXCEPTION?,STACK,SYN,WHICH,F
|
||||
ZERO? STACK /?CND3
|
||||
PUT VEC,4,OBJ
|
||||
SET 'DOIT?,FALSE-VALUE
|
||||
?CND3: ZERO? DOIT? /TRUE
|
||||
GET F,2
|
||||
ZERO? STACK /?PRD17
|
||||
GET F,3
|
||||
ZERO? STACK /?PRD17
|
||||
GET F,3 >?TMP1
|
||||
GET F,4
|
||||
CALL MULTIPLE-EXCEPTION?,OBJ,?TMP1,STACK,F
|
||||
ZERO? STACK \TRUE
|
||||
?PRD17: CALL NOT-IN-FIND-RES?,OBJ,VEC >WHICH
|
||||
ZERO? WHICH /TRUE
|
||||
GET VEC,1
|
||||
ADD 1,STACK
|
||||
PUT VEC,1,STACK
|
||||
PUT WHICH,0,OBJ
|
||||
GET F,2
|
||||
EQUAL? STACK,NP-QUANT-A /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT NOT-IN-FIND-RES?:ANY:2:3,OBJ,VEC,NO-CHANGE?,CT,SZ,ANS,NVEC,NEW-OBJECT
|
||||
GET VEC,1 >CT
|
||||
GET VEC,0 >SZ
|
||||
?PRG1: ADD VEC,8 >ANS
|
||||
LESS? CT,1 \?CCL5
|
||||
RETURN ANS
|
||||
?CCL5: GRTR? CT,SZ \?CCL7
|
||||
SUB CT,SZ >CT
|
||||
JUMP ?CND3
|
||||
?CCL7: SET 'SZ,CT
|
||||
?CND3: INTBL? OBJ,ANS,SZ /FALSE
|
||||
GET VEC,2 >NVEC
|
||||
ZERO? NVEC /?CCL12
|
||||
SET 'VEC,NVEC
|
||||
SET 'SZ,FIND-RES-MAXOBJ
|
||||
JUMP ?PRG1
|
||||
?CCL12: LESS? SZ,FIND-RES-MAXOBJ \?CCL14
|
||||
MUL 2,SZ
|
||||
ADD ANS,STACK
|
||||
RSTACK
|
||||
?CCL14: ZERO? NO-CHANGE? \TRUE
|
||||
SET 'SZ,FIND-RES-MAXOBJ
|
||||
CALL DO-PMEM-ALLOC,7,9 >NEW-OBJECT
|
||||
SET 'NVEC,NEW-OBJECT
|
||||
PUT VEC,2,NVEC
|
||||
ADD NVEC,8
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT EVERYWHERE-VERB?:ANY:0:2,WHICH,SYNTAX,SYN
|
||||
ASSIGNED? 'WHICH /?CND1
|
||||
GET FINDER,4 >WHICH
|
||||
?CND1: ASSIGNED? 'SYNTAX /?CND3
|
||||
GET PARSE-RESULT,3 >SYNTAX
|
||||
?CND3: EQUAL? WHICH,1 \?CCL7
|
||||
GETB SYNTAX,5 >SYN
|
||||
JUMP ?CND5
|
||||
?CCL7: GETB SYNTAX,9 >SYN
|
||||
?CND5: BTST SYN,128 \FALSE
|
||||
BTST SYN,64 \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT MULTIPLE-EXCEPTION?:ANY:4:4,OBJ,SYNTAX,WHICH,F,L,VB
|
||||
LOC OBJ >L
|
||||
GET SYNTAX,0 >VB
|
||||
EQUAL? OBJ,FALSE-VALUE,ROOMS \?CCL3
|
||||
INC 'P-NOT-HERE
|
||||
RTRUE
|
||||
?CCL3: CALL EVERYWHERE-VERB?,WHICH,SYNTAX
|
||||
ZERO? STACK \?CCL5
|
||||
CALL2 ACCESSIBLE?,OBJ
|
||||
ZERO? STACK /TRUE
|
||||
?CCL5: EQUAL? VB,V?TAKE \?CCL9
|
||||
GET F,6
|
||||
ZERO? STACK \?CCL9
|
||||
EQUAL? WHICH,1 \?CCL9
|
||||
FSET? OBJ,TAKEBIT /?CCL15
|
||||
FSET? OBJ,TRYTAKEBIT \TRUE
|
||||
?CCL15: EQUAL? L,WINNER /TRUE
|
||||
RFALSE
|
||||
?CCL9: EQUAL? VB,V?DROP \FALSE
|
||||
IN? OBJ,WINNER \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT CHECK-ADJS-THERE?:ANY:1:1,OWNER,TMP
|
||||
GET OWNER-SR-THERE,1 >TMP
|
||||
ZERO? TMP /FALSE
|
||||
INTBL? OWNER,OWNER-SR-THERE+8,TMP /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT CHECK-ADJS:ANY:3:3,OBJ,F,ADJS,CNT,TMP,OWNER,ID,VEC,CT,ADJ,FL,OADJS,NUM,?TMP1
|
||||
GETP OBJ,P?OWNER >OWNER
|
||||
GETB ADJS,1
|
||||
EQUAL? STACK,2 /?CCL2
|
||||
GET ADJS,2 >TMP
|
||||
ZERO? TMP /?CND1
|
||||
?CCL2: SET 'ID,OWNER
|
||||
LESS? 0,ID \?CCL7
|
||||
SET 'ID,OWNER
|
||||
GRTR? ID,LAST-OBJECT /?CCL7
|
||||
EQUAL? OWNER,TMP /?CND1
|
||||
EQUAL? OWNER,ROOMS \?CCL14
|
||||
GET OWNER-SR-HERE,1
|
||||
ZERO? STACK /?CCL17
|
||||
GET OWNER-SR-HERE,4 >ID
|
||||
JUMP ?CND1
|
||||
?CCL17: GET OWNER-SR-THERE,1
|
||||
ZERO? STACK /FALSE
|
||||
GET OWNER-SR-THERE,4 >ID
|
||||
JUMP ?CND1
|
||||
?CCL14: GET OWNER-SR-HERE,1 >TMP
|
||||
ZERO? TMP \?CCL21
|
||||
CALL2 CHECK-ADJS-THERE?,OWNER
|
||||
ZERO? STACK \?CND1
|
||||
RFALSE
|
||||
?CCL21: INTBL? OWNER,OWNER-SR-HERE+8,TMP /?CND1
|
||||
CALL2 CHECK-ADJS-THERE?,OWNER
|
||||
ZERO? STACK \?CND1
|
||||
RFALSE
|
||||
?CCL7: ZERO? OWNER /?CCL28
|
||||
GET OWNER-SR-HERE,1 >CNT
|
||||
ZERO? CNT \?CCL31
|
||||
SET 'ID,PLAYER
|
||||
JUMP ?CND1
|
||||
?CCL31: ADD OWNER,2 >TMP
|
||||
SET 'VEC,OWNER-SR-HERE+8
|
||||
?PRG33: DLESS? 'CNT,0 /FALSE
|
||||
GET VEC,0 >?TMP1
|
||||
GET OWNER,0
|
||||
INTBL? ?TMP1,TMP,STACK >ID \?CCL39
|
||||
GET ID,0 >ID
|
||||
JUMP ?CND1
|
||||
?CCL39: ADD VEC,2 >VEC
|
||||
JUMP ?PRG33
|
||||
?CCL28: LESS? 0,TMP \?CCL41
|
||||
GRTR? TMP,LAST-OBJECT /?CCL41
|
||||
CALL HELD?,OBJ,TMP
|
||||
ZERO? STACK \?CND1
|
||||
RFALSE
|
||||
?CCL41: GET OWNER-SR-HERE,1 >TMP
|
||||
ZERO? TMP /FALSE
|
||||
LOC OBJ
|
||||
INTBL? STACK,OWNER-SR-HERE+8,TMP >ID \FALSE
|
||||
?CND1: EQUAL? ID,0,OBJ /?CND50
|
||||
GET F,9
|
||||
PUT STACK,3,ID
|
||||
?CND50: GETB ADJS,1
|
||||
EQUAL? STACK,2 /TRUE
|
||||
ADD ADJS,10 >VEC
|
||||
GET ADJS,4 >CT
|
||||
GETPT OBJ,P?ADJECTIVE >OADJS
|
||||
PTSIZE OADJS
|
||||
DIV STACK,2 >NUM
|
||||
?PRG54: DLESS? 'CT,0 /TRUE
|
||||
GET VEC,CT >ADJ
|
||||
SET 'ID,ADJ
|
||||
EQUAL? ADJ,W?NO.WORD /?PRG54
|
||||
INTBL? ID,OADJS,NUM /?PRG54
|
||||
EQUAL? ID,W?CLOSED,W?SHUT \?CCL63
|
||||
FSET? OBJ,OPENBIT \?PRG54
|
||||
?CCL63: EQUAL? ID,W?OPEN \FALSE
|
||||
FSET? OBJ,OPENBIT /?PRG54
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT SEARCH-IN-LG?:ANY:1:1,OBJ
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT EXCLUDE-HERE-OBJECT?:ANY:0:0
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT FIND-OBJECTS:ANY:0:3,SEARCH,PARENT,NO-ADJACENT,GLBS,CONT?,N,RES,NEW-OBJECT,LOSING?,FLAG,?PR-FLAG,O,OBJ,?TMP1,?TMP2
|
||||
ASSIGNED? 'SEARCH /?CND1
|
||||
GET FINDER,4
|
||||
EQUAL? 1,STACK \?CCL5
|
||||
GET PARSE-RESULT,3
|
||||
GETB STACK,5 >SEARCH
|
||||
JUMP ?CND1
|
||||
?CCL5: GET PARSE-RESULT,3
|
||||
GETB STACK,9 >SEARCH
|
||||
?CND1: SET 'CONT?,TRUE-VALUE
|
||||
GET FINDER,9 >RES
|
||||
PUT RES,1,0
|
||||
PUT RES,2,FALSE-VALUE
|
||||
ZERO? PARENT /?CCL8
|
||||
CALL FIND-DESCENDANTS,PARENT,7
|
||||
ZERO? STACK /?CND6
|
||||
GET RES,1
|
||||
ZERO? STACK \?CND6
|
||||
?CCL8: ZERO? PARENT /?CND13
|
||||
ZERO? NO-ADJACENT \?CND13
|
||||
GET FINDER,5 >GLBS
|
||||
ZERO? GLBS \?CND13
|
||||
CALL DO-PMEM-ALLOC,1,8 >NEW-OBJECT
|
||||
PUT NEW-OBJECT,2,PARENT
|
||||
SET 'GLBS,NEW-OBJECT
|
||||
PUT FINDER,5,GLBS
|
||||
?CND13: BTST SEARCH,128 \?CND19
|
||||
BTST SEARCH,64 /?CND19
|
||||
FIRST? GENERIC-OBJECTS \?CND19
|
||||
FIRST? GENERIC-OBJECTS >NEW-OBJECT /?PRG25
|
||||
?PRG25: CALL MATCH-OBJECT,NEW-OBJECT,FINDER,TRUE-VALUE
|
||||
ZERO? STACK /?REP26
|
||||
NEXT? NEW-OBJECT >NEW-OBJECT /?PRG25
|
||||
?REP26: GET RES,1 >CONT?
|
||||
ZERO? CONT? /?CND19
|
||||
EQUAL? CONT?,1 /TRUE
|
||||
RFALSE
|
||||
?CND19: SET 'LOSING?,FALSE-VALUE
|
||||
?PRG35: ZERO? LOSING? \?PRD40
|
||||
BAND SEARCH,12
|
||||
ZERO? STACK \?CCL38
|
||||
?PRD40: ZERO? LOSING? /?CND37
|
||||
?CCL38: ZERO? LOSING? \?CTR44
|
||||
BTST SEARCH,8 \?CCL45
|
||||
?CTR44: SET '?PR-FLAG,6
|
||||
JUMP ?CND43
|
||||
?CCL45: SET '?PR-FLAG,2
|
||||
?CND43: ZERO? LOSING? \?CTR49
|
||||
BAND SEARCH,12
|
||||
ZERO? STACK /?CCL50
|
||||
?CTR49: BOR 1,?PR-FLAG >FLAG
|
||||
JUMP ?CND48
|
||||
?CCL50: BAND ?PR-FLAG,-2 >FLAG
|
||||
?CND48: ZERO? LOSING? \?CCL55
|
||||
BTST SEARCH,4 /?CCL55
|
||||
BOR 8,FLAG
|
||||
JUMP ?CND53
|
||||
?CCL55: BAND FLAG,-9
|
||||
?CND53: CALL FIND-DESCENDANTS,WINNER,STACK >CONT?
|
||||
?CND37: ZERO? LOSING? \?CCL59
|
||||
BAND SEARCH,3
|
||||
ZERO? STACK /?CND58
|
||||
?CCL59: ZERO? LOSING? \?CTR63
|
||||
BAND SEARCH,3
|
||||
ZERO? STACK /?CCL64
|
||||
?CTR63: SET '?PR-FLAG,3
|
||||
JUMP ?CND62
|
||||
?CCL64: SET '?PR-FLAG,2
|
||||
?CND62: ZERO? LOSING? \?CTR69
|
||||
BTST SEARCH,2 \?CCL70
|
||||
?CTR69: BOR 4,?PR-FLAG >FLAG
|
||||
JUMP ?CND68
|
||||
?CCL70: BAND ?PR-FLAG,-5 >FLAG
|
||||
?CND68: ZERO? LOSING? \?CCL75
|
||||
BTST SEARCH,1 /?CCL75
|
||||
BOR 8,FLAG
|
||||
JUMP ?CND73
|
||||
?CCL75: BAND FLAG,-9
|
||||
?CND73: CALL FIND-DESCENDANTS,HERE,STACK >CONT?
|
||||
?CND58: GET RES,1
|
||||
ZERO? STACK \?CND6
|
||||
BTST SEARCH,15 /?CND78
|
||||
ZERO? LOSING? \?CND78
|
||||
GET TLEXV,0 >GLBS
|
||||
ZERO? GLBS /?CCL86
|
||||
GET GLBS,4
|
||||
ZERO? STACK \?CTR85
|
||||
GET GLBS,3
|
||||
ZERO? STACK /?CCL86
|
||||
?CTR85: SET 'LOSING?,TRUE-VALUE
|
||||
JUMP ?PRG35
|
||||
?CCL86: BTST SEARCH,64 \?CND78
|
||||
BTST SEARCH,128 \FALSE
|
||||
?CND78: GETPT HERE,P?GLOBAL >GLBS
|
||||
ZERO? GLBS /?CND94
|
||||
PTSIZE GLBS
|
||||
DIV STACK,2 >N
|
||||
?PRG97: DLESS? 'N,0 /?CND94
|
||||
GET GLBS,N >O
|
||||
CALL MATCH-OBJECT,O,FINDER,TRUE-VALUE >CONT?
|
||||
ZERO? CONT? /?CND94
|
||||
FIRST? O \?PRG97
|
||||
BTST SEARCH,2 \?PRG97
|
||||
CALL2 SEARCH-IN-LG?,O
|
||||
ZERO? STACK /?PRG97
|
||||
CALL FIND-DESCENDANTS,O,FD-INCLUDE? >CONT?
|
||||
ZERO? CONT? \?PRG97
|
||||
?CND94: ZERO? CONT? /?CND111
|
||||
CALL1 EXCLUDE-HERE-OBJECT?
|
||||
ZERO? STACK \?CND111
|
||||
CALL MATCH-OBJECT,HERE,FINDER,TRUE-VALUE >CONT?
|
||||
?CND111: ZERO? CONT? /?CND115
|
||||
LOC PLAYER
|
||||
EQUAL? HERE,STACK /?CND115
|
||||
LOC PLAYER
|
||||
GETP STACK,P?THINGS
|
||||
ZERO? STACK /?CND115
|
||||
LOC PLAYER
|
||||
CALL TEST-THINGS,STACK,FINDER >CONT?
|
||||
?CND115: ZERO? CONT? /?CND120
|
||||
GETP HERE,P?THINGS
|
||||
ZERO? STACK /?CND120
|
||||
CALL TEST-THINGS,HERE,FINDER >CONT?
|
||||
?CND120: GET RES,1
|
||||
ZERO? STACK /?CND124
|
||||
SET 'CONT?,FALSE-VALUE
|
||||
?CND124: ZERO? CONT? /?CND126
|
||||
BTST SEARCH,2 \?CCL130
|
||||
PUSH 5
|
||||
JUMP ?CND128
|
||||
?CCL130: PUSH 1
|
||||
?CND128: CALL FIND-DESCENDANTS,GLOBAL-OBJECTS,STACK >CONT?
|
||||
?CND126: ZERO? CONT? /?CND131
|
||||
GET RES,1
|
||||
ZERO? STACK \?CND131
|
||||
ZERO? NO-ADJACENT \?CND131
|
||||
GETP HERE,P?ADJACENT >GLBS
|
||||
ZERO? GLBS /?CND131
|
||||
GETB GLBS,0 >N
|
||||
?PRG137: GETB GLBS,N
|
||||
ZERO? STACK /?CCL141
|
||||
DEC 'N
|
||||
GETB GLBS,N
|
||||
ICALL FIND-OBJECTS,1,STACK,TRUE-VALUE
|
||||
JUMP ?CND139
|
||||
?CCL141: DEC 'N
|
||||
?CND139: DLESS? 'N,1 \?PRG137
|
||||
GET RES,1
|
||||
ZERO? STACK /?CND131
|
||||
SET 'CONT?,FALSE-VALUE
|
||||
?CND131: ZERO? CONT? /?CND6
|
||||
GET RES,1
|
||||
ZERO? STACK \?CND6
|
||||
BTST SEARCH,128 \?PRD152
|
||||
BTST SEARCH,64 \?CCL147
|
||||
?PRD152: GET PARSE-RESULT,1 >?TMP2
|
||||
ADD WORD-FLAG-TABLE,2 >?TMP1
|
||||
GET WORD-FLAG-TABLE,0
|
||||
INTBL? ?TMP2,?TMP1,STACK,132 >O \?CCL157
|
||||
GET O,1
|
||||
JUMP ?CND155
|
||||
?CCL157: PUSH FALSE-VALUE
|
||||
?CND155: BTST STACK,512 \?CND6
|
||||
?CCL147: SET 'OBJ,1
|
||||
?PRG158: CALL MATCH-OBJECT,OBJ,FINDER,TRUE-VALUE
|
||||
ZERO? STACK /?CND6
|
||||
IGRTR? 'OBJ,LAST-OBJECT \?PRG158
|
||||
?CND6: GET RES,1
|
||||
EQUAL? STACK,1 /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT TEST-THINGS:ANY:2:2,RM,F,CT,GLBS,N,NOUN,V,TTBL,MATCH,I,?TMP2,?TMP1
|
||||
GETP RM,P?THINGS >GLBS
|
||||
GETB GLBS,0 >N
|
||||
INC 'GLBS
|
||||
GET F,5 >CT
|
||||
ZERO? CT /?CND1
|
||||
GET CT,4 >CT
|
||||
?CND1: GET F,6 >NOUN
|
||||
GET F,5
|
||||
ADD STACK,10 >V
|
||||
SET 'MATCH,FALSE-VALUE
|
||||
?PRG3: GET GLBS,1 >TTBL
|
||||
ZERO? TTBL /?CND5
|
||||
ADD TTBL,1 >?TMP1
|
||||
GETB TTBL,0
|
||||
INTBL? NOUN,?TMP1,STACK \?CND5
|
||||
ZERO? CT \?CCL11
|
||||
SET 'MATCH,TRUE-VALUE
|
||||
JUMP ?CND9
|
||||
?CCL11: GET GLBS,0 >TTBL
|
||||
ZERO? TTBL /?CND9
|
||||
SET 'I,0
|
||||
?PRG13: GET V,I >?TMP2
|
||||
ADD TTBL,1 >?TMP1
|
||||
GETB TTBL,0
|
||||
INTBL? ?TMP2,?TMP1,STACK \?CCL17
|
||||
SET 'MATCH,TRUE-VALUE
|
||||
JUMP ?CND9
|
||||
?CCL17: SUB CT,1
|
||||
IGRTR? 'I,STACK \?PRG13
|
||||
?CND9: ZERO? MATCH /?CND5
|
||||
SET 'LAST-PSEUDO-LOC,RM
|
||||
GET GLBS,2
|
||||
PUTP PSEUDO-OBJECT,P?ACTION,STACK
|
||||
ICALL ADD-OBJECT,PSEUDO-OBJECT,F
|
||||
RFALSE
|
||||
?CND5: ADD GLBS,6 >GLBS
|
||||
DLESS? 'N,1 \?PRG3
|
||||
RFALSE
|
||||
|
||||
.ENDSEG
|
||||
|
||||
.ENDI
|
71
gas-mix.zabstr
Normal file
71
gas-mix.zabstr
Normal file
|
@ -0,0 +1,71 @@
|
|||
<FLAGS-AND-DEFAULTS (("IN-ZILCH" T)) ()>
|
||||
|
||||
<GLOBAL GL-OXYGEN-QTY 3400>
|
||||
<GLOBAL GL-OXYGEN-MSG 3400>
|
||||
<CONSTANT K-OXYGEN-FACTOR -4>
|
||||
<CONSTANT K-OXY-LOW-4 850>
|
||||
<CONSTANT K-OXY-LOW-3 1133>
|
||||
<CONSTANT K-OXY-LOW-2 1417>
|
||||
<CONSTANT K-OXY-LOW-1 1700>
|
||||
<CONSTANT K-OXY-NOM 3400>
|
||||
<CONSTANT K-OXY-HIGH-1 20400>
|
||||
<CONSTANT K-OXY-HIGH-2 23800>
|
||||
<CONSTANT K-OXY-HIGH-3 27200>
|
||||
<CONSTANT K-OXY-HIGH-4 30600>
|
||||
<GLOBAL GL-CO2-QTY 536>
|
||||
<GLOBAL GL-CO2-MSG 536>
|
||||
<CONSTANT K-CO2-FACTOR -6>
|
||||
<CONSTANT K-CO2-NOM 536>
|
||||
<CONSTANT K-CO2-HIGH-1 22725>
|
||||
<CONSTANT K-CO2-HIGH-2 25971>
|
||||
<CONSTANT K-CO2-HIGH-3 29218>
|
||||
<CONSTANT K-CO2-HIGH-4 32464>
|
||||
<GLOBAL GL-NITROGEN-QTY 1267>
|
||||
<GLOBAL GL-NITROGEN-MSG 1267>
|
||||
<CONSTANT K-NITROGEN-FACTOR -3>
|
||||
<CONSTANT K-NIT-LOW-4 211>
|
||||
<CONSTANT K-NIT-LOW-3 253>
|
||||
<CONSTANT K-NIT-LOW-2 317>
|
||||
<CONSTANT K-NIT-LOW-1 422>
|
||||
<CONSTANT K-NIT-NOM 1267>
|
||||
<CONSTANT K-NIT-HIGH-1 3802>
|
||||
<CONSTANT K-NIT-HIGH-2 5070>
|
||||
<CONSTANT K-NIT-HIGH-3 6337>
|
||||
<CONSTANT K-NIT-HIGH-4 7605>
|
||||
<GLOBAL GL-HELIUM-QTY 9839>
|
||||
<CONSTANT K-HELIUM-FACTOR -2>
|
||||
<CONSTANT K-HEL-NOM 9839>
|
||||
<GLOBAL GL-SCRUBBERS-ON <> <> BYTE>
|
||||
<SYNTAX $SCRUB = V-$SCRUB>
|
||||
<DEFINE-ROUTINE V-$SCRUB>
|
||||
<SYNTAX $AIR = V-$AIR>
|
||||
<DEFINE-ROUTINE V-$AIR>
|
||||
<DEFINE-ROUTINE RT-NUM-DIGITS>
|
||||
<DEFINE-ROUTINE RT-PRINT-FLOAT>
|
||||
<DEFINE-ROUTINE RT-NITROGEN-MSG>
|
||||
<DEFINE-ROUTINE RT-OXYGEN-MSG>
|
||||
<DEFINE-ROUTINE RT-CO2-MSG>
|
||||
<DEFINE-ROUTINE RT-I-GAS-MIX>
|
||||
<GLOBAL GL-HEATERS-ON <> <> BYTE>
|
||||
<SYNTAX $HEAT = V-$HEAT>
|
||||
<DEFINE-ROUTINE V-$HEAT>
|
||||
<CONSTANT K-AMBIENT-TEMP 3400>
|
||||
<GLOBAL GL-DEEPCORE-TEMP 9000>
|
||||
<GLOBAL GL-PLAYER-TEMP 9860>
|
||||
<GLOBAL GL-TEMP-MSG 9860>
|
||||
<CONSTANT K-TEMP-FACTOR -2>
|
||||
<CONSTANT K-TEMP-LOW-4 8600>
|
||||
<CONSTANT K-TEMP-LOW-3 9100>
|
||||
<CONSTANT K-TEMP-LOW-2 9300>
|
||||
<CONSTANT K-TEMP-LOW-1 9500>
|
||||
<CONSTANT K-TEMP-NOM 9860>
|
||||
<CONSTANT K-TEMP-HIGH-1 10000>
|
||||
<CONSTANT K-TEMP-HIGH-2 10500>
|
||||
<CONSTANT K-TEMP-HIGH-3 11000>
|
||||
<CONSTANT K-TEMP-HIGH-4 11500>
|
||||
<OBJECT TH-THERMOMETER (LOC CH-PLAYER) (DESC "thermometer") (FLAGS FL-READABLE
|
||||
FL-TAKEABLE) (SYNONYM THERMOMETER) (ACTION RT-TH-THERMOMETER)>
|
||||
<DEFINE-ROUTINE RT-TH-THERMOMETER>
|
||||
<DEFINE-ROUTINE RT-TEMP-MSG>
|
||||
<DEFINE-ROUTINE RT-I-DEEPCORE-TEMP>
|
||||
<DEFINE-ROUTINE RT-I-TEMP>
|
427
gas-mix.zap
Normal file
427
gas-mix.zap
Normal file
|
@ -0,0 +1,427 @@
|
|||
|
||||
|
||||
.FUNCT V-$SCRUB:ANY:0:0
|
||||
PRINTI "[CO2 scrubbers "
|
||||
ZERO? GL-SCRUBBERS-ON /?PRT4
|
||||
SET 'GL-SCRUBBERS-ON,0
|
||||
JUMP ?PRE6
|
||||
?PRT4: SET 'GL-SCRUBBERS-ON,1
|
||||
?PRE6: ZERO? GL-SCRUBBERS-ON /?CCL3
|
||||
PRINTI "on"
|
||||
JUMP ?CND1
|
||||
?CCL3: PRINTI "off"
|
||||
?CND1: PRINTI ".]
|
||||
"
|
||||
RETURN 2
|
||||
|
||||
|
||||
.FUNCT V-$AIR:ANY:0:0
|
||||
SET 'GL-OXYGEN-QTY,K-OXY-NOM
|
||||
SET 'GL-OXYGEN-MSG,K-OXY-NOM
|
||||
SET 'GL-CO2-QTY,K-CO2-NOM
|
||||
SET 'GL-CO2-MSG,K-CO2-NOM
|
||||
SET 'GL-NITROGEN-QTY,K-NIT-NOM
|
||||
SET 'GL-NITROGEN-MSG,K-NIT-NOM
|
||||
SET 'GL-HELIUM-QTY,K-HEL-NOM
|
||||
PRINTI "[Breathing mix returned to nominal.]
|
||||
"
|
||||
RETURN 2
|
||||
|
||||
|
||||
.FUNCT RT-NUM-DIGITS:ANY:1:1,N
|
||||
LESS? N,0 \?CND1
|
||||
SUB 0,N >N
|
||||
?CND1: LESS? N,10 /TRUE
|
||||
LESS? N,100 \?CCL8
|
||||
RETURN 2
|
||||
?CCL8: LESS? N,1000 \?CCL10
|
||||
RETURN 3
|
||||
?CCL10: LESS? N,10000 /?CTR11
|
||||
RETURN 5
|
||||
?CTR11: RETURN 4
|
||||
|
||||
|
||||
.FUNCT RT-PRINT-FLOAT:ANY:2:3,F,E,D,N,M
|
||||
ASSIGNED? 'D /?CND1
|
||||
SET 'D,-1
|
||||
?CND1: LESS? E,0 \?CCL5
|
||||
CALL2 RT-NUM-DIGITS,F
|
||||
SUB 0,STACK >N
|
||||
GRTR? E,N /?CCL8
|
||||
PRINTI "0."
|
||||
?PRG9: LESS? E,N \?REP10
|
||||
PRINTC 48
|
||||
INC 'E
|
||||
JUMP ?PRG9
|
||||
?REP10: PRINTN F
|
||||
RTRUE
|
||||
?CCL8: SUB 0,N
|
||||
EQUAL? STACK,5 \?CCL16
|
||||
SET 'M,10000
|
||||
JUMP ?PRG23
|
||||
?CCL16: SUB 0,N
|
||||
EQUAL? STACK,4 \?CCL18
|
||||
SET 'M,1000
|
||||
JUMP ?PRG23
|
||||
?CCL18: SUB 0,N
|
||||
EQUAL? STACK,3 \?CCL20
|
||||
SET 'M,100
|
||||
JUMP ?PRG23
|
||||
?CCL20: SUB 0,N
|
||||
EQUAL? STACK,2 \?CCL22
|
||||
SET 'M,10
|
||||
JUMP ?PRG23
|
||||
?CCL22: SET 'M,1
|
||||
?PRG23: DIV F,M
|
||||
MOD STACK,10
|
||||
PRINTN STACK
|
||||
INC 'N
|
||||
EQUAL? E,N \?CND25
|
||||
PRINTC 46
|
||||
?CND25: DIV M,10 >M
|
||||
ZERO? M \?PRG23
|
||||
RTRUE
|
||||
?CCL5: PRINTN F
|
||||
SET 'N,0
|
||||
?PRG29: LESS? N,E \TRUE
|
||||
PRINTC 48
|
||||
INC 'N
|
||||
JUMP ?PRG29
|
||||
|
||||
|
||||
.FUNCT RT-NITROGEN-MSG:ANY:0:0
|
||||
GRTR? GL-NITROGEN-QTY,GL-NITROGEN-MSG \?CCL3
|
||||
LESS? GL-NITROGEN-QTY,K-NIT-HIGH-4 /?CCL6
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTI " The high nitrogen level finally overcomes you and you fall to the floor, unconscious.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL6: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-3 /?CCL9
|
||||
LESS? GL-NITROGEN-MSG,K-NIT-HIGH-3 \FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " You are beginning to hallucinate."
|
||||
?CCL9: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-2 /?CCL14
|
||||
LESS? GL-NITROGEN-MSG,K-NIT-HIGH-2 \FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " Your head is beginning to spin."
|
||||
?CCL14: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 /?CCL19
|
||||
LESS? GL-NITROGEN-MSG,K-NIT-HIGH-1 \FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " You are beginning to feel light-headed."
|
||||
?CCL19: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-1 \?CCL24
|
||||
GRTR? GL-NITROGEN-MSG,K-NIT-LOW-1 /FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " Your hands stop trembling. The nitrogen level must be back to normal."
|
||||
?CCL24: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-2 \?CCL29
|
||||
GRTR? GL-NITROGEN-MSG,K-NIT-LOW-2 /FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " Most of the trembling in your hands has disappeared."
|
||||
?CCL29: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-3 \FALSE
|
||||
GRTR? GL-NITROGEN-MSG,K-NIT-LOW-3 /FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " The flashes of irritibility cease, but your fingertips are still trembling."
|
||||
?CCL3: LESS? GL-NITROGEN-QTY,GL-NITROGEN-MSG \FALSE
|
||||
GRTR? GL-NITROGEN-QTY,K-NIT-LOW-4 /?CCL42
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTI " You slump to the floor, a victim of High Pressure Nervous Syndrome.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL42: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-3 /?CCL45
|
||||
GRTR? GL-NITROGEN-MSG,K-NIT-LOW-3 \FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " You begin to have flashes of sudden irritibility."
|
||||
?CCL45: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-2 /?CCL50
|
||||
GRTR? GL-NITROGEN-MSG,K-NIT-LOW-2 \FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " The trembling in your fingertips gets worse."
|
||||
?CCL50: GRTR? GL-NITROGEN-QTY,K-NIT-LOW-1 /?CCL55
|
||||
GRTR? GL-NITROGEN-MSG,K-NIT-LOW-1 \FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " Your hands begin to tremble."
|
||||
?CCL55: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 \?CCL60
|
||||
LESS? GL-NITROGEN-MSG,K-NIT-HIGH-1 /FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " You no longer feel dizzy. The nitrogen level must be back to normal."
|
||||
?CCL60: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-2 \?CCL65
|
||||
LESS? GL-NITROGEN-MSG,K-NIT-HIGH-2 /FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " Your head stops spinning, but you still feel dizzy."
|
||||
?CCL65: LESS? GL-NITROGEN-QTY,K-NIT-HIGH-3 \FALSE
|
||||
LESS? GL-NITROGEN-MSG,K-NIT-HIGH-3 /FALSE
|
||||
SET 'GL-NITROGEN-MSG,GL-NITROGEN-QTY
|
||||
PRINTR " The hallucinations fade, but your head is still spinning."
|
||||
|
||||
|
||||
.FUNCT RT-OXYGEN-MSG:ANY:0:0
|
||||
GRTR? GL-OXYGEN-QTY,GL-OXYGEN-MSG \?CCL3
|
||||
LESS? GL-OXYGEN-QTY,K-OXY-HIGH-4 /?CCL6
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTI " The high oxygen level finally overcomes you. You go into convulsions, fall to the floor, and pass out.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL6: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-3 /?CCL9
|
||||
LESS? GL-OXYGEN-MSG,K-OXY-HIGH-3 \FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " Suddenly, your stomach muscles tighten up and you fight off the urge to vomit."
|
||||
?CCL9: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-2 /?CCL14
|
||||
LESS? GL-OXYGEN-MSG,K-OXY-HIGH-2 \FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " You begin to feel nauseous."
|
||||
?CCL14: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-1 /?CCL19
|
||||
LESS? GL-OXYGEN-MSG,K-OXY-HIGH-1 \FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " Suddenly, you feel a twitch in your lower lip."
|
||||
?CCL19: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-1 \?CCL24
|
||||
GRTR? GL-OXYGEN-MSG,K-OXY-LOW-1 /FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " Your headache disappears. The oxygen level must be back to normal."
|
||||
?CCL24: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-2 \?CCL29
|
||||
GRTR? GL-OXYGEN-MSG,K-OXY-LOW-2 /FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " You begin to see colors again, but you still have a mild headache."
|
||||
?CCL29: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-3 \FALSE
|
||||
GRTR? GL-OXYGEN-MSG,K-OXY-LOW-3 /FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " Your tunnel vision begins to fade."
|
||||
?CCL3: LESS? GL-OXYGEN-QTY,GL-OXYGEN-MSG \FALSE
|
||||
GRTR? GL-OXYGEN-QTY,K-OXY-LOW-4 /?CCL42
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTI " You collapse, a victim of oxygen starvation.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL42: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-3 /?CCL45
|
||||
GRTR? GL-OXYGEN-MSG,K-OXY-LOW-3 \FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " You notice that your peripheral vision is beginning to disappear."
|
||||
?CCL45: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-2 /?CCL50
|
||||
GRTR? GL-OXYGEN-MSG,K-OXY-LOW-2 \FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " The colors around you seem to fade."
|
||||
?CCL50: GRTR? GL-OXYGEN-QTY,K-OXY-LOW-1 /?CCL55
|
||||
GRTR? GL-OXYGEN-MSG,K-OXY-LOW-1 \FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " Your head begins to ache."
|
||||
?CCL55: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-1 \?CCL60
|
||||
LESS? GL-OXYGEN-MSG,K-OXY-HIGH-1 /FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " You lip stops twitching. The oxygen level must be back to normal."
|
||||
?CCL60: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-2 \?CCL65
|
||||
LESS? GL-OXYGEN-MSG,K-OXY-HIGH-2 /FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " You no longer feel nauseous, but your lip still twitches occasionally."
|
||||
?CCL65: LESS? GL-OXYGEN-QTY,K-OXY-HIGH-3 \FALSE
|
||||
LESS? GL-OXYGEN-MSG,K-OXY-HIGH-3 /FALSE
|
||||
SET 'GL-OXYGEN-MSG,GL-OXYGEN-QTY
|
||||
PRINTR " The tension in your stomach disappears, but you still feel slightly nauseous."
|
||||
|
||||
|
||||
.FUNCT RT-CO2-MSG:ANY:0:0
|
||||
GRTR? GL-CO2-QTY,GL-CO2-MSG \?CCL3
|
||||
LESS? GL-CO2-QTY,K-CO2-HIGH-4 /?CCL6
|
||||
SET 'GL-CO2-MSG,GL-CO2-QTY
|
||||
PRINTI " You pass out from carbon dioxide poisoning.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL6: LESS? GL-CO2-QTY,K-CO2-HIGH-3 /?CCL9
|
||||
LESS? GL-CO2-MSG,K-CO2-HIGH-3 \FALSE
|
||||
SET 'GL-CO2-MSG,GL-CO2-QTY
|
||||
PRINTR " Suddenly the muscles in your arm begin to spasm."
|
||||
?CCL9: LESS? GL-CO2-QTY,K-CO2-HIGH-2 /?CCL14
|
||||
LESS? GL-CO2-MSG,K-CO2-HIGH-2 \FALSE
|
||||
SET 'GL-CO2-MSG,GL-CO2-QTY
|
||||
PRINTR " Your chest muscles are beginning to ache."
|
||||
?CCL14: LESS? GL-CO2-QTY,K-CO2-HIGH-1 /FALSE
|
||||
LESS? GL-CO2-MSG,K-CO2-HIGH-1 \FALSE
|
||||
SET 'GL-CO2-MSG,GL-CO2-QTY
|
||||
PRINTR " You begin to feel a little short of breath."
|
||||
?CCL3: LESS? GL-CO2-QTY,GL-CO2-MSG \FALSE
|
||||
LESS? GL-CO2-QTY,K-CO2-HIGH-1 \?CCL27
|
||||
LESS? GL-CO2-MSG,K-CO2-HIGH-1 /FALSE
|
||||
SET 'GL-CO2-MSG,GL-CO2-QTY
|
||||
PRINTR " You begin to breathe more easily. The carbon dioxide level must have returned to normal."
|
||||
?CCL27: LESS? GL-CO2-QTY,K-CO2-HIGH-2 \?CCL32
|
||||
LESS? GL-CO2-MSG,K-CO2-HIGH-2 /FALSE
|
||||
SET 'GL-CO2-MSG,GL-CO2-QTY
|
||||
PRINTR " Your chest muscles feel better, but you are still short of breath."
|
||||
?CCL32: LESS? GL-CO2-QTY,K-CO2-HIGH-3 \FALSE
|
||||
LESS? GL-CO2-MSG,K-CO2-HIGH-3 /FALSE
|
||||
SET 'GL-CO2-MSG,GL-CO2-QTY
|
||||
PRINTR " The spasms in your arm have stopped, but your chest muscles still ache."
|
||||
|
||||
|
||||
.FUNCT RT-I-GAS-MIX:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-GAS-MIX,STACK
|
||||
SUB GL-OXYGEN-QTY,4 >GL-OXYGEN-QTY
|
||||
LESS? GL-OXYGEN-QTY,0 \?CND1
|
||||
SET 'GL-OXYGEN-QTY,0
|
||||
?CND1: ZERO? GL-SCRUBBERS-ON /?CCL5
|
||||
SUB GL-CO2-QTY,340 >GL-CO2-QTY
|
||||
LESS? GL-CO2-QTY,0 \?CND3
|
||||
SET 'GL-CO2-QTY,0
|
||||
JUMP ?CND3
|
||||
?CCL5: ADD GL-CO2-QTY,340 >GL-CO2-QTY
|
||||
?CND3: CALL1 RT-OXYGEN-MSG
|
||||
ZERO? STACK \TRUE
|
||||
CALL1 RT-CO2-MSG
|
||||
ZERO? STACK \TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT V-$HEAT:ANY:0:0
|
||||
PRINTI "[Heaters "
|
||||
ZERO? GL-HEATERS-ON /?PRT4
|
||||
SET 'GL-HEATERS-ON,0
|
||||
JUMP ?PRE6
|
||||
?PRT4: SET 'GL-HEATERS-ON,1
|
||||
?PRE6: ZERO? GL-HEATERS-ON /?CCL3
|
||||
PRINTI "on"
|
||||
JUMP ?CND1
|
||||
?CCL3: PRINTI "off"
|
||||
?CND1: PRINTI ".]
|
||||
"
|
||||
RETURN 2
|
||||
|
||||
|
||||
.FUNCT RT-TH-THERMOMETER:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
||||
PRINTI " The thermometer says your core temperature is "
|
||||
ICALL RT-PRINT-FLOAT,GL-PLAYER-TEMP,K-TEMP-FACTOR
|
||||
PRINTR " degrees Fahrenheit."
|
||||
|
||||
|
||||
.FUNCT RT-TEMP-MSG:ANY:0:0
|
||||
LESS? GL-PLAYER-TEMP,GL-TEMP-MSG \?CCL3
|
||||
GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-4 /?CCL6
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTI " The cold finally overpowers you and you pass out.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL6: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-3 /?CCL9
|
||||
GRTR? GL-TEMP-MSG,K-TEMP-LOW-3 \FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " You're so cold you can hardly move."
|
||||
?CCL9: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-2 /?CCL14
|
||||
GRTR? GL-TEMP-MSG,K-TEMP-LOW-2 \FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " The cold begins to creep into your bones."
|
||||
?CCL14: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-1 /?CCL19
|
||||
GRTR? GL-TEMP-MSG,K-TEMP-LOW-1 \FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " You begin to shiver."
|
||||
?CCL19: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-1 \?CCL24
|
||||
LESS? GL-TEMP-MSG,K-TEMP-HIGH-1 /FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " You stop sweating. Your body temperature must have returned to normal."
|
||||
?CCL24: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-2 \?CCL29
|
||||
LESS? GL-TEMP-MSG,K-TEMP-HIGH-2 /FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " Your face is no longer flushed, but you are still sweating."
|
||||
?CCL29: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-3 \FALSE
|
||||
LESS? GL-TEMP-MSG,K-TEMP-HIGH-3 /FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " Your breathing returns to normal, but your face is still red."
|
||||
?CCL3: GRTR? GL-PLAYER-TEMP,GL-TEMP-MSG \FALSE
|
||||
LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-4 /?CCL42
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTI " The heat becomes overpowering and you collapse.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL42: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-3 /?CCL45
|
||||
LESS? GL-TEMP-MSG,K-TEMP-HIGH-3 \FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " You're so hot you can hardly move. Your breathing speeds up dangerously."
|
||||
?CCL45: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-2 /?CCL50
|
||||
LESS? GL-TEMP-MSG,K-TEMP-HIGH-2 \FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " Your face turns red from the heat."
|
||||
?CCL50: LESS? GL-PLAYER-TEMP,K-TEMP-HIGH-1 /?CCL55
|
||||
LESS? GL-TEMP-MSG,K-TEMP-HIGH-1 \FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " You feel uncomfortably hot and begin to sweat."
|
||||
?CCL55: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-1 \?CCL60
|
||||
GRTR? GL-TEMP-MSG,K-TEMP-LOW-1 /FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " You stop shivering. Your body temperature must be back to normal."
|
||||
?CCL60: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-2 \?CCL65
|
||||
GRTR? GL-TEMP-MSG,K-TEMP-LOW-2 /FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " Your hands and feet tingle as they begin to warm up."
|
||||
?CCL65: GRTR? GL-PLAYER-TEMP,K-TEMP-LOW-3 \FALSE
|
||||
GRTR? GL-TEMP-MSG,K-TEMP-LOW-3 /FALSE
|
||||
SET 'GL-TEMP-MSG,GL-PLAYER-TEMP
|
||||
PRINTR " You're beginning to thaw out."
|
||||
|
||||
|
||||
.FUNCT RT-I-DEEPCORE-TEMP:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-DEEPCORE-TEMP,STACK
|
||||
ZERO? GL-HEATERS-ON /?CCL3
|
||||
ADD GL-DEEPCORE-TEMP,5 >GL-DEEPCORE-TEMP
|
||||
RFALSE
|
||||
?CCL3: SUB GL-DEEPCORE-TEMP,5 >GL-DEEPCORE-TEMP
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-I-TEMP:ANY:0:0,L,D1,D2
|
||||
LOC CH-PLAYER >L
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-TEMP,STACK
|
||||
FSET? L,FL-WATER \?CCL3
|
||||
IN? TH-FBS-SUIT,CH-PLAYER \?PRD8
|
||||
FSET? TH-FBS-SUIT,FL-WORN /?CTR5
|
||||
?PRD8: IN? TH-DRY-SUIT,CH-PLAYER \?CCL6
|
||||
FSET? TH-DRY-SUIT,FL-WORN \?CCL6
|
||||
?CTR5: SUB GL-PLAYER-TEMP,10 >GL-PLAYER-TEMP
|
||||
JUMP ?CND1
|
||||
?CCL6: SUB GL-PLAYER-TEMP,500 >GL-PLAYER-TEMP
|
||||
JUMP ?CND1
|
||||
?CCL3: LESS? GL-PLAYER-TEMP,K-TEMP-NOM \?CCL14
|
||||
SUB GL-PLAYER-TEMP,860
|
||||
GRTR? GL-DEEPCORE-TEMP,STACK \?CCL14
|
||||
SUB GL-PLAYER-TEMP,860
|
||||
SUB GL-DEEPCORE-TEMP,STACK >D1
|
||||
SUB K-TEMP-NOM,GL-PLAYER-TEMP >D2
|
||||
GRTR? D2,D1 /?CCL19
|
||||
GRTR? D2,5 /?CCL19
|
||||
SET 'GL-PLAYER-TEMP,K-TEMP-NOM
|
||||
JUMP ?CND1
|
||||
?CCL19: LESS? D1,5 /?CCL23
|
||||
ADD GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP
|
||||
JUMP ?CND1
|
||||
?CCL23: ADD GL-PLAYER-TEMP,D1 >GL-PLAYER-TEMP
|
||||
JUMP ?CND1
|
||||
?CCL14: GRTR? GL-PLAYER-TEMP,K-TEMP-NOM \?CCL25
|
||||
SUB GL-PLAYER-TEMP,860
|
||||
LESS? GL-DEEPCORE-TEMP,STACK \?CCL25
|
||||
SUB GL-PLAYER-TEMP,860
|
||||
SUB STACK,GL-DEEPCORE-TEMP >D1
|
||||
SUB GL-PLAYER-TEMP,K-TEMP-NOM >D2
|
||||
GRTR? D2,D1 /?CCL30
|
||||
GRTR? D2,5 /?CCL30
|
||||
SET 'GL-PLAYER-TEMP,K-TEMP-NOM
|
||||
JUMP ?CND1
|
||||
?CCL30: LESS? D1,5 /?CCL34
|
||||
SUB GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP
|
||||
JUMP ?CND1
|
||||
?CCL34: SUB GL-PLAYER-TEMP,D1 >GL-PLAYER-TEMP
|
||||
JUMP ?CND1
|
||||
?CCL25: ADD GL-PLAYER-TEMP,600
|
||||
GRTR? GL-DEEPCORE-TEMP,STACK \?CCL36
|
||||
ADD GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP
|
||||
JUMP ?CND1
|
||||
?CCL36: SUB GL-PLAYER-TEMP,1200
|
||||
LESS? GL-DEEPCORE-TEMP,STACK \?CND1
|
||||
SUB GL-PLAYER-TEMP,5 >GL-PLAYER-TEMP
|
||||
?CND1: CALL1 RT-TEMP-MSG
|
||||
RSTACK
|
||||
|
||||
.ENDI
|
872
gas-mix.zil
Normal file
872
gas-mix.zil
Normal file
|
@ -0,0 +1,872 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : GAS-MIX.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 20 Mar 1989 8:44:46 $"
|
||||
; "rev : $Revision: 1.11 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Default substitutions"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
<GLOBAL GL-OXYGEN-QTY 3400>
|
||||
<GLOBAL GL-OXYGEN-MSG 3400>
|
||||
<CONSTANT K-OXYGEN-FACTOR -4>
|
||||
<CONSTANT K-OXY-LOW-4 850>
|
||||
<CONSTANT K-OXY-LOW-3 1133>
|
||||
<CONSTANT K-OXY-LOW-2 1417>
|
||||
<CONSTANT K-OXY-LOW-1 1700>
|
||||
<CONSTANT K-OXY-NOM 3400>
|
||||
<CONSTANT K-OXY-HIGH-1 20400>
|
||||
<CONSTANT K-OXY-HIGH-2 23800>
|
||||
<CONSTANT K-OXY-HIGH-3 27200>
|
||||
<CONSTANT K-OXY-HIGH-4 30600>
|
||||
|
||||
<GLOBAL GL-CO2-QTY 536>
|
||||
<GLOBAL GL-CO2-MSG 536>
|
||||
<CONSTANT K-CO2-FACTOR -6>
|
||||
<CONSTANT K-CO2-NOM 536>
|
||||
<CONSTANT K-CO2-HIGH-1 22725>
|
||||
<CONSTANT K-CO2-HIGH-2 25971>
|
||||
<CONSTANT K-CO2-HIGH-3 29218>
|
||||
<CONSTANT K-CO2-HIGH-4 32464>
|
||||
|
||||
<GLOBAL GL-NITROGEN-QTY 1267>
|
||||
<GLOBAL GL-NITROGEN-MSG 1267>
|
||||
<CONSTANT K-NITROGEN-FACTOR -3>
|
||||
<CONSTANT K-NIT-LOW-4 211>
|
||||
<CONSTANT K-NIT-LOW-3 253>
|
||||
<CONSTANT K-NIT-LOW-2 317>
|
||||
<CONSTANT K-NIT-LOW-1 422>
|
||||
<CONSTANT K-NIT-NOM 1267>
|
||||
<CONSTANT K-NIT-HIGH-1 3802>
|
||||
<CONSTANT K-NIT-HIGH-2 5070>
|
||||
<CONSTANT K-NIT-HIGH-3 6337>
|
||||
<CONSTANT K-NIT-HIGH-4 7605>
|
||||
|
||||
<GLOBAL GL-HELIUM-QTY 9839>
|
||||
<CONSTANT K-HELIUM-FACTOR -2>
|
||||
<CONSTANT K-HEL-NOM 9839>
|
||||
|
||||
<GLOBAL GL-SCRUBBERS-ON <> <> BYTE>
|
||||
|
||||
<SYNTAX $SCRUB = V-$SCRUB>
|
||||
|
||||
<ROUTINE V-$SCRUB ()
|
||||
<TELL "[CO2 scrubbers ">
|
||||
<COND
|
||||
(<SETG GL-SCRUBBERS-ON <NOT ,GL-SCRUBBERS-ON>>
|
||||
<TELL "on">
|
||||
)
|
||||
(T
|
||||
<TELL "off">
|
||||
)
|
||||
>
|
||||
<TELL ".]|">
|
||||
<RFATAL>
|
||||
>
|
||||
|
||||
<SYNTAX $AIR = V-$AIR>
|
||||
|
||||
<ROUTINE V-$AIR ()
|
||||
<SETG GL-OXYGEN-QTY ,K-OXY-NOM>
|
||||
<SETG GL-OXYGEN-MSG ,K-OXY-NOM>
|
||||
<SETG GL-CO2-QTY ,K-CO2-NOM>
|
||||
<SETG GL-CO2-MSG ,K-CO2-NOM>
|
||||
<SETG GL-NITROGEN-QTY ,K-NIT-NOM>
|
||||
<SETG GL-NITROGEN-MSG ,K-NIT-NOM>
|
||||
<SETG GL-HELIUM-QTY ,K-HEL-NOM>
|
||||
<TELL "[Breathing mix returned to nominal.]|">
|
||||
<RFATAL>
|
||||
>
|
||||
|
||||
<ROUTINE RT-NUM-DIGITS (N)
|
||||
<SET N <ABS .N>>
|
||||
<COND
|
||||
(<L? .N 10>
|
||||
<RETURN 1>
|
||||
)
|
||||
(<L? .N 100>
|
||||
<RETURN 2>
|
||||
)
|
||||
(<L? .N 1000>
|
||||
<RETURN 3>
|
||||
)
|
||||
(<L? .N 10000>
|
||||
<RETURN 4>
|
||||
)
|
||||
(T
|
||||
<RETURN 5>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-PRINT-FLOAT (F E "OPT" (D -1) "AUX" N M)
|
||||
<COND
|
||||
(<L? .E 0>
|
||||
<SET N <- <RT-NUM-DIGITS .F>>>
|
||||
<COND
|
||||
(<L=? .E .N>
|
||||
<TELL "0.">
|
||||
<REPEAT ()
|
||||
<COND
|
||||
(<L? .E .N>
|
||||
<TELL !\0>
|
||||
<INC E>
|
||||
)
|
||||
(T
|
||||
<RETURN>
|
||||
)
|
||||
>
|
||||
>
|
||||
<TELL N .F>
|
||||
)
|
||||
(T
|
||||
<COND
|
||||
(<EQUAL? <- .N> 5>
|
||||
<SET M 10000>
|
||||
)
|
||||
(<EQUAL? <- .N> 4>
|
||||
<SET M 1000>
|
||||
)
|
||||
(<EQUAL? <- .N> 3>
|
||||
<SET M 100>
|
||||
)
|
||||
(<EQUAL? <- .N> 2>
|
||||
<SET M 10>
|
||||
)
|
||||
(T
|
||||
<SET M 1>
|
||||
)
|
||||
>
|
||||
<REPEAT ()
|
||||
<TELL N <MOD </ .F .M> 10>>
|
||||
<INC N>
|
||||
<COND
|
||||
(<EQUAL? .E .N>
|
||||
<TELL !\.>
|
||||
)
|
||||
>
|
||||
<SET M </ .M 10>>
|
||||
<COND
|
||||
(<EQUAL? .M 0>
|
||||
<RETURN>
|
||||
)
|
||||
>
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<TELL N .F>
|
||||
<SET N 0>
|
||||
<REPEAT ()
|
||||
<COND
|
||||
(<L? .N .E>
|
||||
<TELL !\0>
|
||||
<INC N>
|
||||
)
|
||||
(T
|
||||
<RETURN>
|
||||
)
|
||||
>
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-NITROGEN-MSG ()
|
||||
<COND
|
||||
(<G? ,GL-NITROGEN-QTY ,GL-NITROGEN-MSG>
|
||||
; "Nitrogen going up"
|
||||
<COND
|
||||
(<G=? ,GL-NITROGEN-QTY ,K-NIT-HIGH-4>
|
||||
<COND
|
||||
(T ;<L? ,GL-NITROGEN-MSG ,K-NIT-HIGH-4>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" The high nitrogen level finally overcomes you and you fall to the floor,
|
||||
unconscious.|"
|
||||
>
|
||||
<RT-END-OF-GAME>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-NITROGEN-QTY ,K-NIT-HIGH-3>
|
||||
<COND
|
||||
(<L? ,GL-NITROGEN-MSG ,K-NIT-HIGH-3>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL " You are beginning to hallucinate." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-NITROGEN-QTY ,K-NIT-HIGH-2>
|
||||
<COND
|
||||
(<L? ,GL-NITROGEN-MSG ,K-NIT-HIGH-2>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL " Your head is beginning to spin." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-NITROGEN-QTY ,K-NIT-HIGH-1>
|
||||
<COND
|
||||
(<L? ,GL-NITROGEN-MSG ,K-NIT-HIGH-1>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL " You are beginning to feel light-headed." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-NITROGEN-QTY ,K-NIT-LOW-1>
|
||||
<COND
|
||||
(<L=? ,GL-NITROGEN-MSG ,K-NIT-LOW-1>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" Your hands stop trembling. The nitrogen level must be back to normal." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-NITROGEN-QTY ,K-NIT-LOW-2>
|
||||
<COND
|
||||
(<L=? ,GL-NITROGEN-MSG ,K-NIT-LOW-2 ;317>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" Most of the trembling in your hands has disappeared." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-NITROGEN-QTY ,K-NIT-LOW-3>
|
||||
<COND
|
||||
(<L=? ,GL-NITROGEN-MSG ,K-NIT-LOW-3 ;253>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" The flashes of irritibility cease, but your fingertips are still
|
||||
trembling." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-NITROGEN-QTY ,GL-NITROGEN-MSG>
|
||||
; "Nitrogen going down"
|
||||
<COND
|
||||
(<L=? ,GL-NITROGEN-QTY ,K-NIT-LOW-4>
|
||||
<COND
|
||||
(T ;<G? ,GL-NITROGEN-MSG ,K-NIT-LOW-4>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" You slump to the floor, a victim of High Pressure Nervous Syndrome.|"
|
||||
>
|
||||
<RT-END-OF-GAME>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L=? ,GL-NITROGEN-QTY ,K-NIT-LOW-3>
|
||||
<COND
|
||||
(<G? ,GL-NITROGEN-MSG ,K-NIT-LOW-3>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" You begin to have flashes of sudden irritibility." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L=? ,GL-NITROGEN-QTY ,K-NIT-LOW-2>
|
||||
<COND
|
||||
(<G? ,GL-NITROGEN-MSG ,K-NIT-LOW-2>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" The trembling in your fingertips gets worse." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L=? ,GL-NITROGEN-QTY ,K-NIT-LOW-1>
|
||||
<COND
|
||||
(<G? ,GL-NITROGEN-MSG ,K-NIT-LOW-1>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL " Your hands begin to tremble." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-NITROGEN-QTY ,K-NIT-HIGH-1>
|
||||
<COND
|
||||
(<G=? ,GL-NITROGEN-MSG ,K-NIT-HIGH-1>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" You no longer feel dizzy. The nitrogen level must be back to normal." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-NITROGEN-QTY ,K-NIT-HIGH-2>
|
||||
<COND
|
||||
(<G=? ,GL-NITROGEN-MSG ,K-NIT-HIGH-2>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" Your head stops spinning, but you still feel dizzy." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-NITROGEN-QTY ,K-NIT-HIGH-3>
|
||||
<COND
|
||||
(<G=? ,GL-NITROGEN-MSG ,K-NIT-HIGH-3>
|
||||
<SETG GL-NITROGEN-MSG ,GL-NITROGEN-QTY>
|
||||
<TELL
|
||||
" The hallucinations fade, but your head is still spinning." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-OXYGEN-MSG ()
|
||||
<COND
|
||||
(<G? ,GL-OXYGEN-QTY ,GL-OXYGEN-MSG>
|
||||
; "Oxygen going up"
|
||||
<COND
|
||||
(<G=? ,GL-OXYGEN-QTY ,K-OXY-HIGH-4>
|
||||
<COND
|
||||
(T ;<L? ,GL-OXYGEN-MSG ,K-OXY-HIGH-4>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL
|
||||
" The high oxygen level finally overcomes you. You go into convulsions, fall
|
||||
to the floor, and pass out.|"
|
||||
>
|
||||
<RT-END-OF-GAME>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-OXYGEN-QTY ,K-OXY-HIGH-3>
|
||||
<COND
|
||||
(<L? ,GL-OXYGEN-MSG ,K-OXY-HIGH-3>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL
|
||||
" Suddenly, your stomach muscles tighten up and you fight off the urge to
|
||||
vomit." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-OXYGEN-QTY ,K-OXY-HIGH-2>
|
||||
<COND
|
||||
(<L? ,GL-OXYGEN-MSG ,K-OXY-HIGH-2>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL " You begin to feel nauseous." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-OXYGEN-QTY ,K-OXY-HIGH-1>
|
||||
<COND
|
||||
(<L? ,GL-OXYGEN-MSG ,K-OXY-HIGH-1>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL " Suddenly, you feel a twitch in your lower lip." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-OXYGEN-QTY ,K-OXY-LOW-1>
|
||||
<COND
|
||||
(<L=? ,GL-OXYGEN-MSG ,K-OXY-LOW-1>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL
|
||||
" Your headache disappears. The oxygen level must be back to normal." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-OXYGEN-QTY ,K-OXY-LOW-2>
|
||||
<COND
|
||||
(<L=? ,GL-OXYGEN-MSG ,K-OXY-LOW-2>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL
|
||||
" You begin to see colors again, but you still have a mild headache." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-OXYGEN-QTY ,K-OXY-LOW-3>
|
||||
<COND
|
||||
(<L=? ,GL-OXYGEN-MSG ,K-OXY-LOW-3>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL " Your tunnel vision begins to fade." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-OXYGEN-QTY ,GL-OXYGEN-MSG>
|
||||
; "Oxygen going down"
|
||||
<COND
|
||||
(<L=? ,GL-OXYGEN-QTY ,K-OXY-LOW-4>
|
||||
<COND
|
||||
(T ;<G? ,GL-OXYGEN-MSG ,K-OXY-LOW-4>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL " You collapse, a victim of oxygen starvation.|">
|
||||
<RT-END-OF-GAME>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L=? ,GL-OXYGEN-QTY ,K-OXY-LOW-3>
|
||||
<COND
|
||||
(<G? ,GL-OXYGEN-MSG ,K-OXY-LOW-3>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL
|
||||
" You notice that your peripheral vision is beginning to disappear." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L=? ,GL-OXYGEN-QTY ,K-OXY-LOW-2>
|
||||
<COND
|
||||
(<G? ,GL-OXYGEN-MSG ,K-OXY-LOW-2>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL " The colors around you seem to fade." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L=? ,GL-OXYGEN-QTY ,K-OXY-LOW-1>
|
||||
<COND
|
||||
(<G? ,GL-OXYGEN-MSG ,K-OXY-LOW-1>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL " Your head begins to ache." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-OXYGEN-QTY ,K-OXY-HIGH-1>
|
||||
<COND
|
||||
(<G=? ,GL-OXYGEN-MSG ,K-OXY-HIGH-1>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL
|
||||
" You lip stops twitching. The oxygen level must be back to normal." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-OXYGEN-QTY ,K-OXY-HIGH-2>
|
||||
<COND
|
||||
(<G=? ,GL-OXYGEN-MSG ,K-OXY-HIGH-2>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL
|
||||
" You no longer feel nauseous, but your lip still twitches occasionally." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-OXYGEN-QTY ,K-OXY-HIGH-3>
|
||||
<COND
|
||||
(<G=? ,GL-OXYGEN-MSG ,K-OXY-HIGH-3>
|
||||
<SETG GL-OXYGEN-MSG ,GL-OXYGEN-QTY>
|
||||
<TELL
|
||||
" The tension in your stomach disappears, but you still feel slightly
|
||||
nauseous." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-CO2-MSG ()
|
||||
<COND
|
||||
(<G? ,GL-CO2-QTY ,GL-CO2-MSG>
|
||||
; "Carbon Dioxide going up"
|
||||
<COND
|
||||
(<G=? ,GL-CO2-QTY ,K-CO2-HIGH-4>
|
||||
<COND
|
||||
(T ;<L? ,GL-CO2-MSG ,K-CO2-HIGH-4>
|
||||
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
||||
<TELL " You pass out from carbon dioxide poisoning.|">
|
||||
<RT-END-OF-GAME>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-CO2-QTY ,K-CO2-HIGH-3>
|
||||
<COND
|
||||
(<L? ,GL-CO2-MSG ,K-CO2-HIGH-3>
|
||||
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
||||
<TELL
|
||||
" Suddenly the muscles in your arm begin to spasm." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-CO2-QTY ,K-CO2-HIGH-2>
|
||||
<COND
|
||||
(<L? ,GL-CO2-MSG ,K-CO2-HIGH-2>
|
||||
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
||||
<TELL " Your chest muscles are beginning to ache." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-CO2-QTY ,K-CO2-HIGH-1>
|
||||
<COND
|
||||
(<L? ,GL-CO2-MSG ,K-CO2-HIGH-1>
|
||||
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
||||
<TELL " You begin to feel a little short of breath." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-CO2-QTY ,GL-CO2-MSG>
|
||||
; "Carbon Dioxide going down"
|
||||
<COND
|
||||
(<L? ,GL-CO2-QTY ,K-CO2-HIGH-1>
|
||||
<COND
|
||||
(<G=? ,GL-CO2-MSG ,K-CO2-HIGH-1>
|
||||
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
||||
<TELL
|
||||
" You begin to breathe more easily. The carbon dioxide level must have
|
||||
returned to normal." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-CO2-QTY ,K-CO2-HIGH-2>
|
||||
<COND
|
||||
(<G=? ,GL-CO2-MSG ,K-CO2-HIGH-2>
|
||||
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
||||
<TELL
|
||||
" Your chest muscles feel better, but you are still short of breath." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-CO2-QTY ,K-CO2-HIGH-3>
|
||||
<COND
|
||||
(<G=? ,GL-CO2-MSG ,K-CO2-HIGH-3>
|
||||
<SETG GL-CO2-MSG ,GL-CO2-QTY>
|
||||
<TELL
|
||||
" The spasms in your arm have stopped, but your chest muscles still ache." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-I-GAS-MIX ()
|
||||
<RT-QUEUE ,RT-I-GAS-MIX <+ ,GL-MOVES 1>>
|
||||
<SETG GL-OXYGEN-QTY <- ,GL-OXYGEN-QTY 4>>
|
||||
<COND
|
||||
(<L? ,GL-OXYGEN-QTY 0>
|
||||
<SETG GL-OXYGEN-QTY 0>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(,GL-SCRUBBERS-ON
|
||||
<SETG GL-CO2-QTY <- ,GL-CO2-QTY 340>>
|
||||
<COND
|
||||
(<L? ,GL-CO2-QTY 0>
|
||||
<SETG GL-CO2-QTY 0>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<SETG GL-CO2-QTY <+ ,GL-CO2-QTY 340>>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<OR <RT-OXYGEN-MSG>
|
||||
<RT-CO2-MSG>
|
||||
>
|
||||
<RTRUE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<GLOBAL GL-HEATERS-ON <> <> BYTE>
|
||||
|
||||
<SYNTAX $HEAT = V-$HEAT>
|
||||
|
||||
<ROUTINE V-$HEAT ()
|
||||
<TELL "[Heaters ">
|
||||
<COND
|
||||
(<SETG GL-HEATERS-ON <NOT ,GL-HEATERS-ON>>
|
||||
<TELL "on">
|
||||
)
|
||||
(T
|
||||
<TELL "off">
|
||||
)
|
||||
>
|
||||
<TELL ".]|">
|
||||
<RFATAL>
|
||||
>
|
||||
|
||||
<CONSTANT K-AMBIENT-TEMP 3400>
|
||||
|
||||
<GLOBAL GL-DEEPCORE-TEMP 9000>
|
||||
|
||||
<GLOBAL GL-PLAYER-TEMP 9860> ; "98.6 deg F"
|
||||
<GLOBAL GL-TEMP-MSG 9860>
|
||||
<CONSTANT K-TEMP-FACTOR -2>
|
||||
<CONSTANT K-TEMP-LOW-4 8600>
|
||||
<CONSTANT K-TEMP-LOW-3 9100>
|
||||
<CONSTANT K-TEMP-LOW-2 9300>
|
||||
<CONSTANT K-TEMP-LOW-1 9500>
|
||||
<CONSTANT K-TEMP-NOM 9860>
|
||||
<CONSTANT K-TEMP-HIGH-1 10000>
|
||||
<CONSTANT K-TEMP-HIGH-2 10500>
|
||||
<CONSTANT K-TEMP-HIGH-3 11000>
|
||||
<CONSTANT K-TEMP-HIGH-4 11500>
|
||||
|
||||
<OBJECT TH-THERMOMETER
|
||||
(LOC CH-PLAYER)
|
||||
(DESC "thermometer")
|
||||
(FLAGS FL-READABLE FL-TAKEABLE)
|
||||
(SYNONYM THERMOMETER)
|
||||
(ACTION RT-TH-THERMOMETER)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-THERMOMETER ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? READ EXAMINE>
|
||||
<TELL " The thermometer says your core temperature is ">
|
||||
<RT-PRINT-FLOAT ,GL-PLAYER-TEMP ,K-TEMP-FACTOR>
|
||||
<TELL " degrees Fahrenheit." CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-TEMP-MSG ()
|
||||
<COND
|
||||
(<L? ,GL-PLAYER-TEMP ,GL-TEMP-MSG>
|
||||
; "Temperature going down."
|
||||
<COND
|
||||
(<L=? ,GL-PLAYER-TEMP ,K-TEMP-LOW-4>
|
||||
<COND
|
||||
(T ;<G? ,GL-TEMP-MSG ,K-TEMP-LOW-4>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL " The cold finally overpowers you and you pass out.|">
|
||||
<RT-END-OF-GAME>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L=? ,GL-PLAYER-TEMP ,K-TEMP-LOW-3>
|
||||
<COND
|
||||
(<G? ,GL-TEMP-MSG ,K-TEMP-LOW-3>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL " You're so cold you can hardly move." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L=? ,GL-PLAYER-TEMP ,K-TEMP-LOW-2>
|
||||
<COND
|
||||
(<G? ,GL-TEMP-MSG ,K-TEMP-LOW-2>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL " The cold begins to creep into your bones." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L=? ,GL-PLAYER-TEMP ,K-TEMP-LOW-1>
|
||||
<COND
|
||||
(<G? ,GL-TEMP-MSG ,K-TEMP-LOW-1>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL " You begin to shiver." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-1>
|
||||
<COND
|
||||
(<G=? ,GL-TEMP-MSG ,K-TEMP-HIGH-1>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL
|
||||
" You stop sweating. Your body temperature must have returned to normal." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-2>
|
||||
<COND
|
||||
(<G=? ,GL-TEMP-MSG ,K-TEMP-HIGH-2>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL
|
||||
" Your face is no longer flushed, but you are still sweating." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<L? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-3>
|
||||
<COND
|
||||
(<G=? ,GL-TEMP-MSG ,K-TEMP-HIGH-3>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL
|
||||
" Your breathing returns to normal, but your face is still red." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-PLAYER-TEMP ,GL-TEMP-MSG>
|
||||
; "Temperature going up."
|
||||
<COND
|
||||
(<G=? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-4>
|
||||
<COND
|
||||
(T ;<L? ,GL-TEMP-MSG ,K-TEMP-HIGH-4>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL " The heat becomes overpowering and you collapse.|">
|
||||
<RT-END-OF-GAME>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-3>
|
||||
<COND
|
||||
(<L? ,GL-TEMP-MSG ,K-TEMP-HIGH-3>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL
|
||||
" You're so hot you can hardly move. Your breathing speeds up dangerously." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-2>
|
||||
<COND
|
||||
(<L? ,GL-TEMP-MSG ,K-TEMP-HIGH-2>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL " Your face turns red from the heat." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G=? ,GL-PLAYER-TEMP ,K-TEMP-HIGH-1>
|
||||
<COND
|
||||
(<L? ,GL-TEMP-MSG ,K-TEMP-HIGH-1>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL " You feel uncomfortably hot and begin to sweat." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-PLAYER-TEMP ,K-TEMP-LOW-1>
|
||||
<COND
|
||||
(<L=? ,GL-TEMP-MSG ,K-TEMP-LOW-1>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL
|
||||
" You stop shivering. Your body temperature must be back to normal." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-PLAYER-TEMP ,K-TEMP-LOW-2>
|
||||
<COND
|
||||
(<L=? ,GL-TEMP-MSG ,K-TEMP-LOW-2>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL
|
||||
" Your hands and feet tingle as they begin to warm up." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-PLAYER-TEMP ,K-TEMP-LOW-3>
|
||||
<COND
|
||||
(<L=? ,GL-TEMP-MSG ,K-TEMP-LOW-3>
|
||||
<SETG GL-TEMP-MSG ,GL-PLAYER-TEMP>
|
||||
<TELL " You're beginning to thaw out." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-I-DEEPCORE-TEMP ()
|
||||
<RT-QUEUE ,RT-I-DEEPCORE-TEMP <+ ,GL-MOVES 1>>
|
||||
<COND
|
||||
(,GL-HEATERS-ON
|
||||
<SETG GL-DEEPCORE-TEMP <+ ,GL-DEEPCORE-TEMP 5>>
|
||||
)
|
||||
(T
|
||||
<SETG GL-DEEPCORE-TEMP <- ,GL-DEEPCORE-TEMP 5>>
|
||||
)
|
||||
>
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
<ROUTINE RT-I-TEMP ("AUX" L D1 D2)
|
||||
<SET L <LOC ,CH-PLAYER>>
|
||||
<RT-QUEUE ,RT-I-TEMP <+ ,GL-MOVES 1>>
|
||||
<COND
|
||||
(<FSET? .L ,FL-WATER>
|
||||
<COND
|
||||
(<OR <AND
|
||||
<IN? ,TH-FBS-SUIT ,CH-PLAYER>
|
||||
<FSET? ,TH-FBS-SUIT ,FL-WORN>
|
||||
>
|
||||
<AND
|
||||
<IN? ,TH-DRY-SUIT ,CH-PLAYER>
|
||||
<FSET? ,TH-DRY-SUIT ,FL-WORN>
|
||||
>
|
||||
>
|
||||
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP 10>>
|
||||
)
|
||||
(T
|
||||
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP 500>>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<AND <L? ,GL-PLAYER-TEMP ,K-TEMP-NOM>
|
||||
<G? ,GL-DEEPCORE-TEMP <- ,GL-PLAYER-TEMP 860>>
|
||||
>
|
||||
<SET D1 <- ,GL-DEEPCORE-TEMP <- ,GL-PLAYER-TEMP 860>>>
|
||||
<SET D2 <- ,K-TEMP-NOM ,GL-PLAYER-TEMP>>
|
||||
<COND
|
||||
(<AND <L=? .D2 .D1>
|
||||
<L=? .D2 5>
|
||||
>
|
||||
<SETG GL-PLAYER-TEMP ,K-TEMP-NOM>
|
||||
)
|
||||
(<G=? .D1 5>
|
||||
<SETG GL-PLAYER-TEMP <+ ,GL-PLAYER-TEMP 5>>
|
||||
)
|
||||
(T
|
||||
<SETG GL-PLAYER-TEMP <+ ,GL-PLAYER-TEMP .D1>>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<AND <G? ,GL-PLAYER-TEMP ,K-TEMP-NOM>
|
||||
<L? ,GL-DEEPCORE-TEMP <- ,GL-PLAYER-TEMP 860>>
|
||||
>
|
||||
<SET D1 <- <- ,GL-PLAYER-TEMP 860> ,GL-DEEPCORE-TEMP>>
|
||||
<SET D2 <- ,GL-PLAYER-TEMP ,K-TEMP-NOM>>
|
||||
<COND
|
||||
(<AND <L=? .D2 .D1>
|
||||
<L=? .D2 5>
|
||||
>
|
||||
<SETG GL-PLAYER-TEMP ,K-TEMP-NOM>
|
||||
)
|
||||
(<G=? .D1 5>
|
||||
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP 5>>
|
||||
)
|
||||
(T
|
||||
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP .D1>>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<G? ,GL-DEEPCORE-TEMP <+ ,GL-PLAYER-TEMP 600>> ;"+6 deg."
|
||||
<SETG GL-PLAYER-TEMP <+ ,GL-PLAYER-TEMP 5>>
|
||||
)
|
||||
(<L? ,GL-DEEPCORE-TEMP <- ,GL-PLAYER-TEMP 1200>> ;"-12 deg."
|
||||
<SETG GL-PLAYER-TEMP <- ,GL-PLAYER-TEMP 5>>
|
||||
)
|
||||
>
|
||||
<RT-TEMP-MSG>
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
74
global.zabstr
Normal file
74
global.zabstr
Normal file
|
@ -0,0 +1,74 @@
|
|||
|
||||
<GLOBAL HERE:OBJECT RM-SUB-BAY <> BYTE>
|
||||
<GLOBAL OHERE:OBJECT <> <> BYTE>
|
||||
<OBJECT ROOMS (DESC "that") (FLAGS FL-NO-ARTICLE)>
|
||||
<OBJECT GLOBAL-OBJECTS (DESC "GO") (GENERIC 0) (GLOBAL 0) (OWNER 0) (THINGS 0)
|
||||
(CAPACITY 0) (SCORE 0) (FLAGS FL-ALIVE FL-ASLEEP FL-AUTO-ENTER FL-AUTO-OPEN
|
||||
FL-BODY-PART FL-BROKEN FL-BURNABLE FL-BY-HAND FL-CLOTHING FL-COLLECTIVE
|
||||
FL-CONTAINER FL-DOOR FL-FEMALE FL-HAS-LDESC FL-HAS-SDESC FL-INDOORS
|
||||
FL-INVISIBLE FL-KEY FL-KNIFE FL-LAMP FL-LIGHTED FL-LOCKED FL-NO-ALL
|
||||
FL-NO-ARTICLE FL-NO-DESC FL-ON FL-OPEN FL-OPENABLE FL-PERSON FL-PLURAL
|
||||
FL-READABLE FL-SEARCH FL-SEEN FL-SURFACE FL-TAKEABLE FL-TOOL FL-TOUCHED
|
||||
FL-TRANSPARENT FL-TRY-TAKE FL-VEHICLE FL-VOWEL FL-WATER FL-WEAPON FL-WORN
|
||||
FL-YOUR)>
|
||||
<OBJECT LOCAL-GLOBALS (LOC GLOBAL-OBJECTS) (DESC "LG") (SYNONYM L.G) (FLAGS
|
||||
FL-NO-ARTICLE)>
|
||||
<OBJECT GLOBAL-HERE (LOC GLOBAL-OBJECTS) (DESC "here") (FLAGS FL-NO-ARTICLE) (
|
||||
SYNONYM HERE PLACE ROOM AREA) (ACTION RT-GLOBAL-HERE)>
|
||||
<DEFINE-ROUTINE RT-GLOBAL-HERE>
|
||||
<OBJECT IT (LOC GLOBAL-OBJECTS) (DESC "it") (SYNONYM IT THIS) (FLAGS
|
||||
FL-NO-ARTICLE FL-VOWEL)>
|
||||
<OBJECT THEM (LOC GLOBAL-OBJECTS) (DESC "them") (SYNONYM THEM) (FLAGS
|
||||
FL-NO-ARTICLE FL-PLURAL)>
|
||||
<OBJECT INTNUM (LOC GLOBAL-OBJECTS) (DESC "number") (SYNONYM INT.NUM)>
|
||||
<OBJECT YOU (LOC GLOBAL-OBJECTS) (DESC "you") (SYNONYM YOU YOURSELF) (ACTION
|
||||
RT-YOU)>
|
||||
<DEFINE-ROUTINE RT-YOU>
|
||||
<OBJECT HER (LOC GLOBAL-OBJECTS) (DESC "her") (SYNONYM HER) (FLAGS
|
||||
FL-NO-ARTICLE)>
|
||||
<OBJECT HIM (LOC GLOBAL-OBJECTS) (DESC "him") (SYNONYM HIM) (FLAGS
|
||||
FL-NO-ARTICLE)>
|
||||
<OBJECT TH-HUMAN-BODY (LOC GLOBAL-OBJECTS) (FLAGS FL-HAS-SDESC FL-NO-ARTICLE) (
|
||||
SYNONYM BODY SKIN ARM ARMS HAND HANDS LEG LEGS ANKLE ANKLES FOOT FEET HEAD HAIR
|
||||
EYE EYES EAR EARS NOSE FACE CHEEK CHEEKS LIP LIPS MOUTH NECK SHOULDER SHOULDERS
|
||||
CHEST TORSO BACK WAIST) (ADJECTIVE LEFT RIGHT) (OWNER K-BODY-OWNER-TBL) (
|
||||
GENERIC RT-GN-BODY) (ACTION RT-TH-HUMAN-BODY)>
|
||||
<CONSTANT K-BODY-OWNER-TBL <TABLE (PURE LENGTH) CH-COFFEY CH-LINDSEY>>
|
||||
<CONSTANT K-NO-REFER-MSG "[You don't need to refer to ">
|
||||
<DEFINE-ROUTINE RT-TH-HUMAN-BODY>
|
||||
<DEFINE-ROUTINE RT-GN-BODY>
|
||||
<OBJECT TH-PLAYER-BODY (LOC GLOBAL-OBJECTS) (DESC "body") (FLAGS FL-BODY-PART
|
||||
FL-YOUR) (SYNONYM BODY SKIN ARM ARMS ANKLE ANKLES FOOT FEET HAIR EYE EYES EAR
|
||||
EARS NOSE FACE CHEEK CHEEKS LIP LIPS TONGUE NECK SHOULDER SHOULDERS CHEST TORSO
|
||||
BACK WAIST) (ADJECTIVE LEFT RIGHT) (OWNER CH-PLAYER) (GENERIC RT-GN-BODY) (
|
||||
ACTION RT-TH-PLAYER-BODY)>
|
||||
<DEFINE-ROUTINE RT-TH-PLAYER-BODY>
|
||||
<OBJECT TH-HEAD (LOC GLOBAL-OBJECTS) (DESC "head") (FLAGS FL-BODY-PART FL-YOUR)
|
||||
(SYNONYM HEAD) (OWNER CH-PLAYER) (GENERIC RT-GN-BODY)>
|
||||
<OBJECT TH-HANDS (LOC GLOBAL-OBJECTS) (DESC "hands") (FLAGS FL-BODY-PART
|
||||
FL-BY-HAND FL-PLURAL FL-TOOL FL-WEAPON FL-YOUR) (SYNONYM HAND HANDS) (ADJECTIVE
|
||||
LEFT RIGHT) (OWNER CH-PLAYER) (GENERIC RT-GN-BODY)>
|
||||
<OBJECT TH-GROUND (LOC GLOBAL-OBJECTS) (SYNONYM GROUND FLOOR) (FLAGS
|
||||
FL-HAS-SDESC FL-SEARCH FL-SURFACE) (ACTION RT-TH-GROUND)>
|
||||
<DEFINE-ROUTINE RT-TH-GROUND>
|
||||
<OBJECT TH-SKY (LOC GLOBAL-OBJECTS) (SYNONYM SKY CEILING) (FLAGS FL-HAS-SDESC)
|
||||
(ACTION RT-TH-SKY)>
|
||||
<DEFINE-ROUTINE RT-TH-SKY>
|
||||
<OBJECT TH-TIME (LOC GENERIC-OBJECTS) (DESC "time") (SYNONYM TURN TURNS MINUTE
|
||||
MINUTES MIN HOUR HOURS) (ADJECTIVE INT.NUM)>
|
||||
<OBJECT LG-WALL (LOC LOCAL-GLOBALS) (DESC "wall") (SYNONYM WALL WALLS BULKHEAD)
|
||||
(ADJECTIVE FORE AFT PORT STARBOARD)>
|
||||
<OBJECT TH-FLATBED (LOC GENERIC-OBJECTS) (DESC "Flatbed") (FLAGS FL-NO-ARTICLE)
|
||||
(SYNONYM FLATBED)>
|
||||
<OBJECT TH-UFO (LOC GENERIC-OBJECTS) (DESC "UFO") (SYNONYM UFO)>
|
||||
<OBJECT LG-DEEPCORE (LOC LOCAL-GLOBALS) (DESC "Deepcore") (SYNONYM DEEPCORE) (
|
||||
ACTION RT-LG-DEEPCORE)>
|
||||
<DEFINE-ROUTINE RT-LG-DEEPCORE>
|
||||
<OBJECT LG-TROUGH (LOC LOCAL-GLOBALS) (DESC "Cayman trough") (SYNONYM TROUGH) (
|
||||
ACTION RT-LG-TROUGH)>
|
||||
<DEFINE-ROUTINE RT-LG-TROUGH>
|
||||
<OBJECT LG-MONTANA (LOC LOCAL-GLOBALS) (DESC "Montana") (SYNONYM MONTANA
|
||||
SUBMARINE SUB) (ADJECTIVE NAVY USS OHIO CLASS) (ACTION RT-LG-MONTANA)>
|
||||
<DEFINE-ROUTINE RT-LG-MONTANA>
|
||||
<OBJECT LG-OUTLET (LOC LOCAL-GLOBALS) (DESC "outlet") (SYNONYM OUTLET SOCKET) (
|
||||
ADJECTIVE WALL ELECTRICAL)>
|
147
global.zap
Normal file
147
global.zap
Normal file
|
@ -0,0 +1,147 @@
|
|||
|
||||
|
||||
.FUNCT RT-GLOBAL-HERE:ANY:0:1,CONTEXT,P
|
||||
ZERO? HERE /FALSE
|
||||
GETP HERE,P?ACTION >P
|
||||
ZERO? P /FALSE
|
||||
CALL P,CONTEXT
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-YOU:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
ZERO? NOW-PRSI /?CCL5
|
||||
CALL PERFORM,PRSA,PRSO,WINNER
|
||||
RSTACK
|
||||
?CCL5: CALL PERFORM,PRSA,WINNER,PRSI
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-TH-HUMAN-BODY:ANY:0:1,CONTEXT,TMP,PERSON
|
||||
EQUAL? CONTEXT,M-OBJDESC \?CCL3
|
||||
PRINTI "their body"
|
||||
RTRUE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
CALL1 GET-NP
|
||||
GET STACK,1 >TMP
|
||||
ZERO? TMP /?CND6
|
||||
GET TMP,2 >PERSON
|
||||
?CND6: ZERO? PERSON /?CCL10
|
||||
CALL2 VISIBLE?,PERSON
|
||||
ZERO? STACK \?CCL10
|
||||
ICALL1 NP-CANT-SEE
|
||||
RETURN 2
|
||||
?CCL10: PRINT K-NO-REFER-MSG
|
||||
PRINTI "any"
|
||||
PRINTI " part of"
|
||||
ZERO? PERSON /?CCL16
|
||||
ICALL RT-PRINT-OBJ,PERSON,K-ART-THE
|
||||
PRINTC 39
|
||||
FSET? PERSON,FL-PLURAL \?CCL18
|
||||
FSET? PERSON,FL-COLLECTIVE \?CND14
|
||||
?CCL18: PRINTC 115
|
||||
JUMP ?CND14
|
||||
?CCL16: PRINTI " their"
|
||||
?CND14: PRINTI " body.]"
|
||||
CRLF
|
||||
RETURN 2
|
||||
|
||||
|
||||
.FUNCT RT-GN-BODY:ANY:2:2,TBL,FINDER,PART,PTR,N
|
||||
ADD TBL,8 >PTR
|
||||
GET TBL,1 >N
|
||||
?PRG1: DLESS? 'N,0 /FALSE
|
||||
GET PTR,0 >PART
|
||||
ZERO? PART /?CND3
|
||||
FSET? PART,FL-YOUR /?REP2
|
||||
EQUAL? PART,TH-PLAYER-BODY /?REP2
|
||||
EQUAL? PART,TH-HUMAN-BODY /?CND3
|
||||
RETURN PART
|
||||
?CND3: ADD PTR,2 >PTR
|
||||
JUMP ?PRG1
|
||||
?REP2: RETURN PART
|
||||
|
||||
|
||||
.FUNCT RT-TH-PLAYER-BODY:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
PRINT K-NO-REFER-MSG
|
||||
PRINTI "that part of your body.]"
|
||||
CRLF
|
||||
RETURN 2
|
||||
|
||||
|
||||
.FUNCT RT-TH-GROUND:ANY:0:3,CONTEXT,ART,CAP?
|
||||
EQUAL? CONTEXT,M-OBJDESC \?CCL3
|
||||
ZERO? ART /?CND4
|
||||
ICALL RT-PRINT-ARTICLE,TH-GROUND,ART,CAP?
|
||||
?CND4: EQUAL? ART,FALSE-VALUE,K-ART-THE,K-ART-A /?CCL8
|
||||
EQUAL? ART,K-ART-ANY \FALSE
|
||||
?CCL8: ZERO? ART /?CND11
|
||||
PRINTC 32
|
||||
?CND11: FSET? HERE,FL-INDOORS \?CCL15
|
||||
PRINTI "floor"
|
||||
RTRUE
|
||||
?CCL15: PRINTI "ground"
|
||||
RTRUE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?LOOK-ON,V?EXAMINE \FALSE
|
||||
CALL2 RT-SEE-ANYTHING-IN?,HERE
|
||||
ZERO? STACK /FALSE
|
||||
PRINTI "You see"
|
||||
ICALL2 RT-PRINT-CONTENTS,HERE
|
||||
PRINTI " on"
|
||||
ICALL RT-PRINT-OBJ,TH-GROUND,K-ART-THE
|
||||
PRINTC 46
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-TH-SKY:ANY:0:3,CONTEXT,ART,CAP?,RM
|
||||
EQUAL? CONTEXT,M-OBJDESC \?CCL3
|
||||
ZERO? ART /?CND4
|
||||
ICALL RT-PRINT-ARTICLE,TH-SKY,ART,CAP?
|
||||
?CND4: EQUAL? ART,FALSE-VALUE,K-ART-THE,K-ART-A /?CCL8
|
||||
EQUAL? ART,K-ART-ANY \FALSE
|
||||
?CCL8: ZERO? ART /?CND11
|
||||
PRINTC 32
|
||||
?CND11: FSET? HERE,FL-INDOORS \?CCL15
|
||||
PRINTI "ceiling"
|
||||
RTRUE
|
||||
?CCL15: PRINTI "sky"
|
||||
RTRUE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
ZERO? NOW-PRSI /?CCL22
|
||||
PUSH 2
|
||||
JUMP ?CND20
|
||||
?CCL22: PUSH 1
|
||||
?CND20: CALL2 EVERYWHERE-VERB?,STACK
|
||||
ZERO? STACK \FALSE
|
||||
FSET? HERE,FL-INDOORS \?CCL25
|
||||
CALL NOUN-USED?,TH-SKY,W?SKY
|
||||
ZERO? STACK /FALSE
|
||||
CALL1 NP-CANT-SEE
|
||||
RSTACK
|
||||
?CCL25: CALL NOUN-USED?,TH-SKY,W?CEILING
|
||||
ZERO? STACK /FALSE
|
||||
CALL1 NP-CANT-SEE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-LG-DEEPCORE:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "It looks like Deepcore."
|
||||
|
||||
|
||||
.FUNCT RT-LG-TROUGH:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "It looks like the Cayman trough."
|
||||
|
||||
|
||||
.FUNCT RT-LG-MONTANA:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR "It looks like the Montana."
|
||||
|
||||
.ENDI
|
601
global.zil
Normal file
601
global.zil
Normal file
|
@ -0,0 +1,601 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : GLOBAL.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 13 Mar 1989 19:20:32 $"
|
||||
; "rev : $Revision: 1.6 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Global objects"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
<GLOBAL HERE:OBJECT RM-SUB-BAY <> BYTE>
|
||||
<GLOBAL OHERE:OBJECT <> <> BYTE>
|
||||
|
||||
<OBJECT ROOMS
|
||||
(DESC "that")
|
||||
(FLAGS FL-NO-ARTICLE)
|
||||
>
|
||||
|
||||
<OBJECT GLOBAL-OBJECTS
|
||||
(DESC "GO")
|
||||
; (FDESC 0)
|
||||
(GENERIC 0)
|
||||
(GLOBAL 0)
|
||||
(OWNER 0)
|
||||
; (TEXT 0)
|
||||
(THINGS 0)
|
||||
(CAPACITY 0)
|
||||
(SCORE 0)
|
||||
(FLAGS
|
||||
FL-ALIVE ; 1
|
||||
FL-ASLEEP ; 2
|
||||
FL-AUTO-ENTER ; 3
|
||||
FL-AUTO-OPEN ; 4
|
||||
FL-BODY-PART ; 5
|
||||
FL-BROKEN ; 6
|
||||
FL-BURNABLE ; 7
|
||||
FL-BY-HAND ; 8
|
||||
FL-CLOTHING ; 9
|
||||
FL-COLLECTIVE ; 10
|
||||
FL-CONTAINER ; 11
|
||||
FL-DOOR ; 12
|
||||
FL-FEMALE ; 13
|
||||
FL-HAS-LDESC ; 14
|
||||
FL-HAS-SDESC ; 15
|
||||
FL-INDOORS ; 16
|
||||
FL-INVISIBLE ; 17
|
||||
FL-KEY ; 18
|
||||
FL-KNIFE ; 19
|
||||
FL-LAMP ; 20
|
||||
FL-LIGHTED ; 21
|
||||
FL-LOCKED ; 22
|
||||
FL-NO-ALL ; 23
|
||||
FL-NO-ARTICLE ; 24
|
||||
FL-NO-DESC ; 25
|
||||
FL-ON ; 26
|
||||
FL-OPEN ; 27
|
||||
FL-OPENABLE ; 28
|
||||
FL-PERSON ; 29
|
||||
FL-PLURAL ; 30
|
||||
FL-READABLE ; 31
|
||||
; FL-ROOMS ; 32
|
||||
FL-SEARCH ; 33
|
||||
FL-SEEN ; 34
|
||||
FL-SURFACE ; 35
|
||||
FL-TAKEABLE ; 36
|
||||
FL-TOOL ; 37
|
||||
FL-TOUCHED ; 38
|
||||
FL-TRANSPARENT ; 39
|
||||
FL-TRY-TAKE ; 40
|
||||
FL-VEHICLE ; 41
|
||||
FL-VOWEL ; 42
|
||||
FL-WATER ; 43
|
||||
FL-WEAPON ; 44
|
||||
FL-WORN ; 45
|
||||
FL-YOUR ; 46
|
||||
; FL-FLAG-47 ; 47
|
||||
; FL-FLAG-48 ; 48
|
||||
)
|
||||
>
|
||||
|
||||
<OBJECT LOCAL-GLOBALS
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "LG")
|
||||
(SYNONYM L.G)
|
||||
(FLAGS FL-NO-ARTICLE)
|
||||
>
|
||||
|
||||
<OBJECT GLOBAL-HERE
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "here")
|
||||
(FLAGS FL-NO-ARTICLE)
|
||||
(SYNONYM HERE PLACE ROOM AREA)
|
||||
(ACTION RT-GLOBAL-HERE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-GLOBAL-HERE ("OPT" (CONTEXT <>) "AUX" P)
|
||||
<COND
|
||||
(,HERE
|
||||
<COND
|
||||
(<SET P <GETP ,HERE ,P?ACTION>>
|
||||
<APPLY .P .CONTEXT>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT IT
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "it")
|
||||
(SYNONYM IT THIS)
|
||||
(FLAGS FL-NO-ARTICLE FL-VOWEL)
|
||||
>
|
||||
|
||||
<OBJECT THEM
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "them")
|
||||
(SYNONYM THEM)
|
||||
(FLAGS FL-NO-ARTICLE FL-PLURAL)
|
||||
>
|
||||
|
||||
<OBJECT INTNUM
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "number")
|
||||
(SYNONYM INT.NUM)
|
||||
>
|
||||
|
||||
<OBJECT YOU
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "you")
|
||||
(SYNONYM YOU YOURSELF)
|
||||
(ACTION RT-YOU)
|
||||
>
|
||||
|
||||
<ROUTINE RT-YOU ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(,NOW-PRSI
|
||||
<PERFORM ,PRSA ,PRSO ,WINNER>
|
||||
)
|
||||
(T
|
||||
<PERFORM ,PRSA ,WINNER ,PRSI>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT HER
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "her")
|
||||
(SYNONYM HER)
|
||||
(FLAGS FL-NO-ARTICLE)
|
||||
>
|
||||
|
||||
<OBJECT HIM
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "him")
|
||||
(SYNONYM HIM)
|
||||
(FLAGS FL-NO-ARTICLE)
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-HUMAN-BODY"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-HUMAN-BODY
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(FLAGS FL-HAS-SDESC FL-NO-ARTICLE)
|
||||
(SYNONYM
|
||||
BODY
|
||||
SKIN
|
||||
ARM ARMS
|
||||
HAND HANDS
|
||||
LEG LEGS
|
||||
ANKLE ANKLES
|
||||
FOOT FEET
|
||||
HEAD
|
||||
HAIR
|
||||
EYE EYES
|
||||
EAR EARS
|
||||
NOSE
|
||||
FACE
|
||||
CHEEK CHEEKS
|
||||
LIP LIPS
|
||||
MOUTH
|
||||
NECK
|
||||
SHOULDER SHOULDERS
|
||||
CHEST
|
||||
TORSO
|
||||
BACK
|
||||
WAIST
|
||||
)
|
||||
(ADJECTIVE LEFT RIGHT)
|
||||
(OWNER K-BODY-OWNER-TBL)
|
||||
(GENERIC RT-GN-BODY)
|
||||
(ACTION RT-TH-HUMAN-BODY)
|
||||
>
|
||||
|
||||
<CONSTANT K-BODY-OWNER-TBL
|
||||
<TABLE (PURE LENGTH)
|
||||
CH-COFFEY
|
||||
CH-LINDSEY
|
||||
>
|
||||
>
|
||||
|
||||
<CONSTANT K-NO-REFER-MSG "[You don't need to refer to ">
|
||||
|
||||
<ROUTINE RT-TH-HUMAN-BODY ("OPT" (CONTEXT <>) "AUX" TMP (PERSON <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-OBJDESC>
|
||||
<TELL "their body">
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(T
|
||||
<COND
|
||||
(<SET TMP <NP-ADJS <GET-NP>>>
|
||||
<SET PERSON <ADJS-POSS .TMP>>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<AND .PERSON
|
||||
<NOT <VISIBLE? .PERSON>>
|
||||
>
|
||||
<NP-CANT-SEE>
|
||||
)
|
||||
(T
|
||||
<TELL ,K-NO-REFER-MSG>
|
||||
<COND
|
||||
; (<EQUAL? .PERSON>
|
||||
<TELL "that">
|
||||
)
|
||||
(T
|
||||
<TELL "any">
|
||||
)
|
||||
>
|
||||
<TELL " part of">
|
||||
<COND
|
||||
(.PERSON
|
||||
<TELL the .PERSON !\'>
|
||||
<COND
|
||||
(<OR <NOT <FSET? .PERSON ,FL-PLURAL>>
|
||||
<FSET? .PERSON ,FL-COLLECTIVE>
|
||||
>
|
||||
<TELL !\s>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<TELL " their">
|
||||
)
|
||||
>
|
||||
<TELL " body.]" CR>
|
||||
)
|
||||
>
|
||||
<RFATAL>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-GN-BODY (TBL FINDER "AUX" (PART <>))
|
||||
<REPEAT (
|
||||
(PTR <REST-TO-SLOT .TBL FIND-RES-OBJ1>)
|
||||
(N <FIND-RES-COUNT .TBL>)
|
||||
)
|
||||
<COND
|
||||
(<DLESS? N 0>
|
||||
<RFALSE>
|
||||
)
|
||||
(<NOT <SET PART <ZGET .PTR 0>>>)
|
||||
(<FSET? .PART ,FL-YOUR>
|
||||
<RETURN>
|
||||
)
|
||||
(<EQUAL? .PART ,TH-PLAYER-BODY>
|
||||
<RETURN>
|
||||
)
|
||||
(<NOT <EQUAL? .PART ,TH-HUMAN-BODY>>
|
||||
<RETURN>
|
||||
)
|
||||
>
|
||||
<SET PTR <ZREST .PTR 2>>
|
||||
>
|
||||
<RETURN .PART>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-PLAYER-BODY"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-PLAYER-BODY
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "body")
|
||||
(FLAGS FL-BODY-PART FL-YOUR)
|
||||
(SYNONYM
|
||||
BODY
|
||||
SKIN
|
||||
ARM ARMS
|
||||
ANKLE ANKLES
|
||||
FOOT FEET
|
||||
HAIR
|
||||
EYE EYES
|
||||
EAR EARS
|
||||
NOSE
|
||||
FACE
|
||||
CHEEK CHEEKS
|
||||
LIP LIPS
|
||||
TONGUE
|
||||
NECK
|
||||
SHOULDER SHOULDERS
|
||||
CHEST
|
||||
TORSO
|
||||
BACK
|
||||
WAIST
|
||||
)
|
||||
(ADJECTIVE LEFT RIGHT)
|
||||
(OWNER CH-PLAYER)
|
||||
(GENERIC RT-GN-BODY)
|
||||
(ACTION RT-TH-PLAYER-BODY)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-PLAYER-BODY ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(T
|
||||
<TELL ,K-NO-REFER-MSG "that part of your body.]" CR>
|
||||
<RFATAL>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-HEAD"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-HEAD
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "head")
|
||||
(FLAGS FL-BODY-PART FL-YOUR)
|
||||
(SYNONYM HEAD)
|
||||
(OWNER CH-PLAYER)
|
||||
(GENERIC RT-GN-BODY)
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-HANDS"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-HANDS
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(DESC "hands")
|
||||
(FLAGS FL-BODY-PART FL-BY-HAND FL-PLURAL FL-TOOL FL-WEAPON FL-YOUR)
|
||||
(SYNONYM HAND HANDS)
|
||||
(ADJECTIVE LEFT RIGHT)
|
||||
(OWNER CH-PLAYER)
|
||||
(GENERIC RT-GN-BODY)
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-GROUND"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-GROUND
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM GROUND FLOOR)
|
||||
(FLAGS FL-HAS-SDESC FL-SEARCH FL-SURFACE)
|
||||
(ACTION RT-TH-GROUND)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-GROUND ("OPT" (CONTEXT <>) (ART <>) (CAP? <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-OBJDESC>
|
||||
<COND
|
||||
(.ART
|
||||
<RT-PRINT-ARTICLE ,TH-GROUND .ART .CAP?>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
||||
<COND
|
||||
(.ART
|
||||
<TELL !\ >
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<FSET? ,HERE ,FL-INDOORS>
|
||||
<TELL "floor">
|
||||
)
|
||||
(T
|
||||
<TELL "ground">
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE LOOK-ON>
|
||||
<COND
|
||||
(<RT-SEE-ANYTHING-IN? ,HERE>
|
||||
<TELL "You see">
|
||||
<RT-PRINT-CONTENTS ,HERE>
|
||||
<TELL " on" the ,TH-GROUND !\. CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-SKY"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-SKY
|
||||
(LOC GLOBAL-OBJECTS)
|
||||
(SYNONYM SKY CEILING)
|
||||
(FLAGS FL-HAS-SDESC)
|
||||
(ACTION RT-TH-SKY)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-SKY ("OPT" (CONTEXT <>) (ART <>) (CAP? <>) "AUX" RM)
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-OBJDESC>
|
||||
<COND
|
||||
(.ART
|
||||
<RT-PRINT-ARTICLE ,TH-SKY .ART .CAP?>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<EQUAL? .ART <> ,K-ART-THE ,K-ART-A ,K-ART-ANY>
|
||||
<COND
|
||||
(.ART
|
||||
<TELL !\ >
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<FSET? ,HERE ,FL-INDOORS>
|
||||
<TELL "ceiling">
|
||||
)
|
||||
(T
|
||||
<TELL "sky">
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<NOT <EVERYWHERE-VERB? <COND (,NOW-PRSI 2) (T 1)>>>
|
||||
<COND
|
||||
(<FSET? ,HERE ,FL-INDOORS>
|
||||
<COND
|
||||
(<NOUN-USED? ,TH-SKY ,W?SKY>
|
||||
<NP-CANT-SEE>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<COND
|
||||
(<NOUN-USED? ,TH-SKY ,W?CEILING>
|
||||
<NP-CANT-SEE>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-TIME"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-TIME
|
||||
(LOC GENERIC-OBJECTS)
|
||||
(DESC "time")
|
||||
(SYNONYM TURN TURNS MINUTE MINUTES MIN HOUR HOURS)
|
||||
(ADJECTIVE INT.NUM)
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "LG-WALL"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT LG-WALL
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "wall")
|
||||
(SYNONYM WALL WALLS BULKHEAD)
|
||||
(ADJECTIVE FORE AFT PORT STARBOARD)
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-FLATBED"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-FLATBED
|
||||
(LOC GENERIC-OBJECTS)
|
||||
(DESC "Flatbed")
|
||||
(FLAGS FL-NO-ARTICLE)
|
||||
(SYNONYM FLATBED)
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-UFO"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-UFO
|
||||
(LOC GENERIC-OBJECTS)
|
||||
(DESC "UFO")
|
||||
(SYNONYM UFO)
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "LG-DEEPCORE"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT LG-DEEPCORE
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "Deepcore")
|
||||
(SYNONYM DEEPCORE)
|
||||
(ACTION RT-LG-DEEPCORE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-LG-DEEPCORE ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL "It looks like Deepcore." CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "LG-TROUGH"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT LG-TROUGH
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "Cayman trough")
|
||||
(SYNONYM TROUGH)
|
||||
(ACTION RT-LG-TROUGH)
|
||||
>
|
||||
|
||||
<ROUTINE RT-LG-TROUGH ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL "It looks like the Cayman trough." CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "LG-MONTANA"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT LG-MONTANA
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "Montana")
|
||||
(SYNONYM MONTANA SUBMARINE SUB)
|
||||
(ADJECTIVE NAVY USS OHIO CLASS)
|
||||
(ACTION RT-LG-MONTANA)
|
||||
>
|
||||
|
||||
<ROUTINE RT-LG-MONTANA ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL "It looks like the Montana." CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "LG-OUTLET"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT LG-OUTLET
|
||||
(LOC LOCAL-GLOBALS)
|
||||
(DESC "outlet")
|
||||
(SYNONYM OUTLET SOCKET)
|
||||
(ADJECTIVE WALL ELECTRICAL)
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
BIN
letters.lbm
Normal file
BIN
letters.lbm
Normal file
Binary file not shown.
BIN
lifesupp.lbm
Normal file
BIN
lifesupp.lbm
Normal file
Binary file not shown.
BIN
lights.lbm
Normal file
BIN
lights.lbm
Normal file
Binary file not shown.
273
macros.zil
Normal file
273
macros.zil
Normal file
|
@ -0,0 +1,273 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : MACROS.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 07 Mar 1989 2:29:28 $"
|
||||
; "rev : $Revision: 1.3 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Macro definition file"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
<CONSTANT M-ENTERED 42>
|
||||
<CONSTANT M-F-LOOK 43>
|
||||
<CONSTANT M-V-LOOK 44>
|
||||
<CONSTANT M-B-LOOK 45>
|
||||
<CONSTANT M-END-LOOK 46>
|
||||
|
||||
<CONSTANT K-W-YPOS 0>
|
||||
<CONSTANT K-W-XPOS 1>
|
||||
<CONSTANT K-W-YSIZE 2>
|
||||
<CONSTANT K-W-XSIZE 3>
|
||||
<CONSTANT K-W-YCURPOS 4>
|
||||
<CONSTANT K-W-XCURPOS 5>
|
||||
<CONSTANT K-W-LMARG 6>
|
||||
<CONSTANT K-W-RMARG 7>
|
||||
<CONSTANT K-W-CRFCN 8>
|
||||
<CONSTANT K-W-CRCNT 9>
|
||||
<CONSTANT K-W-HLIGHT 10>
|
||||
<CONSTANT K-W-COLOR 11>
|
||||
<CONSTANT K-W-FONT 12>
|
||||
<CONSTANT K-W-FONTSIZE 13>
|
||||
<CONSTANT K-W-ATTR 14>
|
||||
<CONSTANT K-W-MORE 15>
|
||||
|
||||
<CONSTANT TAB 9>
|
||||
<CONSTANT LF 10>
|
||||
<CONSTANT CR 13>
|
||||
<CONSTANT ESC 27>
|
||||
<CONSTANT ESCAPE 27>
|
||||
|
||||
<CONSTANT M-EXIT ,M-LEAVE>
|
||||
|
||||
<CONSTANT K-S-NOR ,S-TEXT>
|
||||
<CONSTANT K-S-WIN ,S-WINDOW>
|
||||
|
||||
<CONSTANT K-H-NRM ,H-NORMAL>
|
||||
<CONSTANT K-H-INV ,H-INVERSE>
|
||||
<CONSTANT K-H-BLD ,H-BOLD>
|
||||
<CONSTANT K-H-ITL ,H-ITALIC>
|
||||
|
||||
<CONSTANT K-D-SCR-ON ,D-SCREEN-ON>
|
||||
<CONSTANT K-D-SCR-OFF ,D-SCREEN-OFF>
|
||||
<CONSTANT K-D-PRT-ON ,D-PRINTER-ON>
|
||||
<CONSTANT K-D-PRT-OFF ,D-PRINTER-OFF>
|
||||
<CONSTANT K-D-TBL-ON ,D-TABLE-ON>
|
||||
<CONSTANT K-D-TBL-OFF ,D-TABLE-OFF>
|
||||
<CONSTANT K-D-REC-ON ,D-RECORD-ON>
|
||||
<CONSTANT K-D-REC-OFF ,D-RECORD-OFF>
|
||||
|
||||
<DEFMAC ONE? ('TERM)
|
||||
<FORM EQUAL? .TERM 1 T>
|
||||
>
|
||||
|
||||
<DEFMAC MC-IS? ('OBJ 'FLAG)
|
||||
<FORM FSET? .OBJ .FLAG>
|
||||
>
|
||||
|
||||
<DEFMAC MC-ISNOT? ('OBJ 'FLAG)
|
||||
<FORM NOT <FORM FSET? .OBJ .FLAG>>
|
||||
>
|
||||
|
||||
<DEFMAC MC-MAKE ('OBJ 'FLAG)
|
||||
<FORM FSET .OBJ .FLAG>
|
||||
>
|
||||
|
||||
<DEFMAC MC-UNMAKE ('OBJ 'FLAG)
|
||||
<FORM FCLEAR .OBJ .FLAG>
|
||||
>
|
||||
|
||||
<DEFMAC MC-T? ('TERM)
|
||||
<FORM .TERM>
|
||||
>
|
||||
|
||||
<DEFMAC MC-F? ('TERM)
|
||||
<FORM NOT .TERM>
|
||||
>
|
||||
|
||||
<DEFMAC MC-THIS-WINNER? ()
|
||||
<FORM EQUAL? '.CONTEXT ',M-WINNER>
|
||||
>
|
||||
|
||||
<DEFMAC MC-CONTEXT? ("ARGS" L)
|
||||
<FORM EQUAL? '.CONTEXT !.L>
|
||||
>
|
||||
|
||||
<DEFMAC MC-WINNER? ("ARGS" L)
|
||||
<FORM EQUAL? ',WINNER !.L>
|
||||
>
|
||||
|
||||
<DEFMAC PROB ('BASE)
|
||||
<FORM NOT <FORM L? .BASE '<RANDOM 100>>>
|
||||
>
|
||||
|
||||
<DEFMAC MC-PROB? ('BASE)
|
||||
<FORM PROB .BASE>
|
||||
>
|
||||
|
||||
<DEFMAC MC-ABS ('NUM)
|
||||
<FORM ABS .NUM>
|
||||
>
|
||||
|
||||
<DEFMAC RT-PERFORM ("ARGS" L)
|
||||
<FORM PERFORM !.L>
|
||||
>
|
||||
|
||||
<DEFMAC RT-ACCESSIBLE? ("ARGS" L)
|
||||
<FORM ACCESSIBLE? !.L>
|
||||
>
|
||||
|
||||
<DEFMAC RT-VISIBLE? ("ARGS" L)
|
||||
<FORM VISIBLE? !.L>
|
||||
>
|
||||
|
||||
<DEFMAC MC-VERB? ("ARGS" L)
|
||||
<FORM VERB? !.L>
|
||||
>
|
||||
|
||||
<DEFMAC MC-VERB-WORD? ("ARGS" L)
|
||||
<FORM EQUAL? ',P-PRSA-WORD !.L>
|
||||
>
|
||||
|
||||
<DEFMAC VERB-WORD? ("ARGS" L)
|
||||
<FORM EQUAL? ',P-PRSA-WORD !.L>
|
||||
>
|
||||
|
||||
<DEFMAC MC-PRSO? ("ARGS" L)
|
||||
<FORM EQUAL? ',PRSO !.L>
|
||||
>
|
||||
|
||||
<DEFMAC MC-PRSI? ("ARGS" L)
|
||||
<FORM EQUAL? ',PRSI !.L>
|
||||
>
|
||||
|
||||
<DEFMAC MC-HERE? ("ARGS" L)
|
||||
<FORM EQUAL? ',HERE !.L>
|
||||
>
|
||||
|
||||
<DEFMAC RT-GLOBAL-IN? ("ARGS" L)
|
||||
<FORM GLOBAL-IN? !.L>
|
||||
>
|
||||
|
||||
<DEFMAC RT-PICK-ONE ("ARGS" L)
|
||||
<FORM PICK-ONE !.L>
|
||||
>
|
||||
|
||||
<VERSION?
|
||||
(ZIP
|
||||
<DEFMAC GET/B ('TBL 'PTR)
|
||||
<FORM GETB .TBL .PTR>
|
||||
>
|
||||
<DEFMAC PUT/B ('TBL 'PTR 'OBJ)
|
||||
<FORM PUTB .TBL .PTR .OBJ>
|
||||
>
|
||||
<DEFMAC RMGL-SIZE ('TBL)
|
||||
<FORM - <FORM PTSIZE .TBL> 1>
|
||||
>
|
||||
)
|
||||
(T
|
||||
<DEFMAC GET/B ('TBL 'PTR)
|
||||
<FORM GET .TBL .PTR>
|
||||
>
|
||||
<DEFMAC PUT/B ('TBL 'PTR 'OBJ)
|
||||
<FORM PUT .TBL .PTR .OBJ>
|
||||
>
|
||||
<DEFMAC RMGL-SIZE ('TBL)
|
||||
<FORM - <FORM / <FORM PTSIZE .TBL> 2> 1>
|
||||
>
|
||||
)
|
||||
>
|
||||
|
||||
;<DEFMAC BIT-FLAGS ("TUPLE" FLAGS "AUX" FLAG VAL (I 0) (L ()) (N 0) (B 0))
|
||||
<REPEAT ()
|
||||
<COND
|
||||
(<EMPTY? .FLAGS>
|
||||
<COND
|
||||
(<G? .N 0>
|
||||
<SET L (!.L .B)>
|
||||
)
|
||||
>
|
||||
<RETURN!->
|
||||
)
|
||||
(T
|
||||
<SET FLAG <NTH .FLAGS 1>>
|
||||
<COND
|
||||
(<TYPE? .FLAG ATOM>
|
||||
<SET VAL <>>
|
||||
)
|
||||
(<AND <TYPE? .FLAG LIST>
|
||||
<==? <LENGTH .FLAG> 2>
|
||||
>
|
||||
<SET VAL <NTH .FLAG 2>>
|
||||
<SET FLAG <NTH .FLAG 1>>
|
||||
)
|
||||
(T
|
||||
;"Warning message"
|
||||
<WARN!-ZILCH!-PACKAGE!- "Unknown bit flag: " .FLAG>
|
||||
)
|
||||
>
|
||||
<EVAL <FORM CONSTANT .FLAG .I>>
|
||||
<COND
|
||||
(.VAL
|
||||
<SET B <ORB .B <LSH 1 .N>>>
|
||||
)
|
||||
>
|
||||
<SET I <+ .I 1>>
|
||||
<COND
|
||||
(<G? <SET N <+ .N 1>> 7>
|
||||
<SET L (!.L .B)>
|
||||
<SET N 0>
|
||||
<SET B 0>
|
||||
)
|
||||
>
|
||||
<SET FLAGS <REST .FLAGS>>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<COND
|
||||
(<G? <LENGTH .L> 0>
|
||||
<EVAL <FORM CONSTANT BIT-FLAG-TBL <FORM TABLE (BYTE) !.L>>>
|
||||
<EVAL
|
||||
<FORM ROUTINE BIT-FLAG? (FLAG "AUX" N B)
|
||||
<FORM SET N <FORM / '.FLAG 8>>
|
||||
<FORM SET B <FORM LSH 1 <FORM MOD '.FLAG 8>>>
|
||||
<FORM COND
|
||||
(<FORM ANDB <FORM GETB ',BIT-FLAG-TBL '.N> '.B>
|
||||
<FORM RTRUE>
|
||||
)
|
||||
>
|
||||
>
|
||||
>
|
||||
<EVAL
|
||||
<FORM ROUTINE BIT-FLAG-SET (FLAG "AUX" N B)
|
||||
<FORM SET N <FORM / '.FLAG 8>>
|
||||
<FORM SET B <FORM LSH 1 <FORM MOD '.FLAG 8>>>
|
||||
<FORM PUTB ',BIT-FLAG-TBL '.N
|
||||
<FORM ORB <FORM GETB ',BIT-FLAG-TBL '.N> '.B>
|
||||
>
|
||||
>
|
||||
>
|
||||
<EVAL
|
||||
<FORM ROUTINE BIT-FLAG-CLEAR (FLAG "AUX" N B)
|
||||
<FORM SET N <FORM / '.FLAG 8>>
|
||||
<FORM SET B <FORM LSH 1 <FORM MOD '.FLAG 8>>>
|
||||
<FORM PUTB ',BIT-FLAG-TBL '.N
|
||||
<FORM ANDB <FORM GETB ',BIT-FLAG-TBL '.N> <FORM BCOM '.B>>
|
||||
>
|
||||
>
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;<BIT-FLAGS
|
||||
F-SCRUBBERS
|
||||
F-HEATERS
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
78
misc.zabstr
Normal file
78
misc.zabstr
Normal file
|
@ -0,0 +1,78 @@
|
|||
<FLAGS-AND-DEFAULTS (("IN-ZILCH" T)) ()>
|
||||
|
||||
<OBJECT CH-PLAYER (LOC RM-COMMAND-MODULE) (DESC "yourself") (MENU "me") (
|
||||
SYNONYM ME MYSELF SELF BUD BRIGMAN) (ADJECTIVE BUD) (FLAGS FL-ALIVE FL-NO-DESC
|
||||
FL-NO-ARTICLE FL-OPEN FL-PERSON FL-SEARCH FL-SEEN FL-TOUCHED)>
|
||||
<CONSTANT ME:OBJECT CH-PLAYER>
|
||||
<GLOBAL GL-LOC-TRAIL:TABLE <ITABLE 8 0>>
|
||||
<DEFINE-ROUTINE VISIBLE?>
|
||||
<DEFINE-ROUTINE CLOSED?>
|
||||
<DEFINE-ROUTINE ACCESSIBLE?>
|
||||
<CONSTANT K-ART-A 1>
|
||||
<CONSTANT K-ART-THE 2>
|
||||
<CONSTANT K-ART-ANY 3>
|
||||
<CONSTANT K-ART-HE 4>
|
||||
<CONSTANT K-ART-HIM 5>
|
||||
<CONSTANT K-ART-HIS 6>
|
||||
<DEFINE-ROUTINE RT-PRINT-DESC>
|
||||
<DEFINE-ROUTINE RT-PRINT-ARTICLE>
|
||||
<DEFINE-ROUTINE RT-PRINT-OBJ>
|
||||
<DEFINE-ROUTINE RT-PRINT-VERB>
|
||||
<GLOBAL QCONTEXT:OBJECT <>>
|
||||
<GLOBAL LIT:OBJECT <>>
|
||||
<GLOBAL P-IT-OBJECT:OBJECT <>>
|
||||
<GLOBAL P-THEM-OBJECT:OBJECT <>>
|
||||
<GLOBAL P-HER-OBJECT:OBJECT <>>
|
||||
<GLOBAL P-HIM-OBJECT:OBJECT <>>
|
||||
<GLOBAL P-ONE-NOUN <>>
|
||||
<CONSTANT K-DIROUT-TBL <ITABLE 255 (BYTE) 0>>
|
||||
<DEFINE-ROUTINE THIS-IS-IT>
|
||||
<DEFINE-ROUTINE RT-IN-ON-MSG>
|
||||
<DEFINE-ROUTINE RT-OUT-OFF-MSG>
|
||||
<DEFINE-ROUTINE RT-OPEN-MSG>
|
||||
<DEFINE-ROUTINE TOUCH-VERB?>
|
||||
<GLOBAL CLOCK-WAIT:FLAG <>>
|
||||
<GLOBAL GL-CLK-RUN:FLAG <>>
|
||||
<GLOBAL GL-Q-MAX 0 <> BYTE>
|
||||
<CONSTANT K-Q-NUM 20>
|
||||
<CONSTANT K-Q-SIZE <* ,K-Q-NUM 2>>
|
||||
<GLOBAL GL-Q-TBL <ITABLE ,K-Q-SIZE 0>>
|
||||
<GLOBAL GL-MOVES 360>
|
||||
<GLOBAL GL-NEW-TIME 0>
|
||||
<CONSTANT K-TIME-PASSES-MSG "Time passes...|">
|
||||
<DEFINE-ROUTINE CLOCKER>
|
||||
<DEFINE-ROUTINE RT-QUEUE>
|
||||
<DEFINE-ROUTINE RT-DEQUEUE>
|
||||
<DEFINE-ROUTINE RT-IS-QUEUED?>
|
||||
<BIND () <ROUTINE C-PIXELS (X) <ADD #ZLOCAL!-IZILCH STACK 1>> <ROUTINE L-PIXELS
|
||||
(Y) <ADD #ZLOCAL!-IZILCH STACK 1>> <ROUTINE PIXELS-C (X) <ADD #ZLOCAL!-IZILCH
|
||||
STACK 1>> <ROUTINE PIXELS-L (Y) <ADD #ZLOCAL!-IZILCH STACK 1>> <ROUTINE CCURSET
|
||||
(Y X "OPT" (W -3)) <CURSET #ZLOCAL!-IZILCH ?TMP1!-IZILCH #ZLOCAL!-IZILCH STACK
|
||||
.W>> <ROUTINE CCURGET (TBL) <CURGET .TBL> <PUT .TBL 0 #ZLOCAL!-IZILCH STACK> <
|
||||
PUT .TBL 1 #ZLOCAL!-IZILCH STACK> .TBL> <ROUTINE CSPLIT (Y) <SPLIT #
|
||||
ZLOCAL!-IZILCH STACK>> <ROUTINE CWINPOS (W Y X) <WINPOS .W #ZLOCAL!-IZILCH
|
||||
?TMP1!-IZILCH #ZLOCAL!-IZILCH STACK>> <ROUTINE CWINSIZE (W Y X) <WINSIZE .W #
|
||||
ZLOCAL!-IZILCH ?TMP1!-IZILCH #ZLOCAL!-IZILCH STACK>> <ROUTINE CSCROLL (W "OPT"
|
||||
(Y 1)) <SCROLL .W #ZLOCAL!-IZILCH STACK>> <ROUTINE RT-SCRIPT-INBUF ("OPT" (BUF
|
||||
,P-INBUF) "AUX" (CNT 0) N CHR) <SET N <GETB .BUF 1>> <DIROUT ,D-SCREEN-OFF> <
|
||||
SET BUF <ADD 1 .BUF>> <REPEAT () <COND (<GRTR? <SET CNT <ADD CNT 1>> .N> <
|
||||
RETURN>) (ELSE <SET CHR <GETB .BUF .CNT>> <COND (<AND <NOT <LESS? .CHR !\a>> <
|
||||
NOT <GRTR? .CHR !\z>>> <PRINTC #ZLOCAL!-IZILCH STACK>) (ELSE <PRINTC .CHR>)>)>>
|
||||
<CRLF> <DIROUT ,D-SCREEN-ON>>>
|
||||
<DEFINE-ROUTINE C-PIXELS>
|
||||
<DEFINE-ROUTINE L-PIXELS>
|
||||
<DEFINE-ROUTINE PIXELS-C>
|
||||
<DEFINE-ROUTINE PIXELS-L>
|
||||
<DEFINE-ROUTINE CCURSET>
|
||||
<DEFINE-ROUTINE CCURGET>
|
||||
<DEFINE-ROUTINE CSPLIT>
|
||||
<DEFINE-ROUTINE CWINPOS>
|
||||
<DEFINE-ROUTINE CWINSIZE>
|
||||
<DEFINE-ROUTINE CSCROLL>
|
||||
<DEFINE-ROUTINE RT-SCRIPT-INBUF>
|
||||
<GLOBAL GL-SCR-WID:NUMBER 79>
|
||||
<CONSTANT K-WIN-TBL <TABLE 0 0 0>>
|
||||
<GLOBAL GL-FONT-X 7 <> BYTE>
|
||||
<GLOBAL GL-FONT-Y 10 <> BYTE>
|
||||
<GLOBAL GL-SPACE-WIDTH 0 <> BYTE>
|
||||
<DEFINE-ROUTINE GO>
|
610
misc.zap
Normal file
610
misc.zap
Normal file
|
@ -0,0 +1,610 @@
|
|||
|
||||
|
||||
.FUNCT VISIBLE?:ANY:1:1,OBJ
|
||||
CALL ACCESSIBLE?,OBJ,TRUE-VALUE
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT CLOSED?:ANY:1:2,OBJ,VIS?
|
||||
ZERO? OBJ /TRUE
|
||||
IN? OBJ,ROOMS /FALSE
|
||||
FSET? OBJ,FL-CONTAINER \?CCL7
|
||||
FSET? OBJ,FL-OPEN /FALSE
|
||||
ZERO? VIS? /TRUE
|
||||
FSET? OBJ,FL-TRANSPARENT /FALSE
|
||||
RTRUE
|
||||
?CCL7: FSET? OBJ,FL-SURFACE /FALSE
|
||||
FSET? OBJ,FL-ALIVE /FALSE
|
||||
FSET? OBJ,FL-PERSON /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT ACCESSIBLE?:ANY:1:2,OBJ,VIS?,WLOC,OLOC,CLSD-PTR,PTR,CNT,TBL,END
|
||||
ZERO? OBJ /FALSE
|
||||
EQUAL? OBJ,ROOMS /TRUE
|
||||
SET 'PTR,GL-LOC-TRAIL
|
||||
SET 'OLOC,OBJ
|
||||
?PRG5: PUT PTR,0,OLOC
|
||||
INC 'CNT
|
||||
ZERO? OLOC /?REP6
|
||||
EQUAL? OLOC,WINNER /?REP6
|
||||
IN? OLOC,ROOMS /?REP6
|
||||
IN? OLOC,LOCAL-GLOBALS /?REP6
|
||||
IN? OLOC,GLOBAL-OBJECTS /?REP6
|
||||
IN? OLOC,GENERIC-OBJECTS /?REP6
|
||||
LOC OLOC >OLOC
|
||||
ADD PTR,2 >PTR
|
||||
ZERO? OLOC /?PRG5
|
||||
CALL CLOSED?,OLOC,VIS?
|
||||
ZERO? STACK /?PRG5
|
||||
ZERO? CLSD-PTR \?PRG5
|
||||
SET 'CLSD-PTR,PTR
|
||||
JUMP ?PRG5
|
||||
?REP6: SET 'PTR,FALSE-VALUE
|
||||
SET 'WLOC,WINNER
|
||||
?PRG21: ZERO? WLOC /FALSE
|
||||
INTBL? WLOC,GL-LOC-TRAIL,CNT >PTR /?REP22
|
||||
IN? WLOC,ROOMS /?REP22
|
||||
LOC WLOC >WLOC
|
||||
ZERO? WLOC /?PRG21
|
||||
CALL CLOSED?,WLOC,VIS?
|
||||
ZERO? STACK /?PRG21
|
||||
RFALSE
|
||||
?REP22: ZERO? WLOC /?CND33
|
||||
IN? WLOC,ROOMS \?CND33
|
||||
ZERO? PTR \?CND33
|
||||
GETPT WLOC,P?GLOBAL >TBL
|
||||
ZERO? TBL /?CND33
|
||||
PTSIZE TBL
|
||||
ADD TBL,STACK >END
|
||||
?PRG41: LESS? TBL,END \?CND33
|
||||
GET TBL,0
|
||||
INTBL? STACK,GL-LOC-TRAIL,CNT >PTR /?CND33
|
||||
ADD TBL,2 >TBL
|
||||
JUMP ?PRG41
|
||||
?CND33: ZERO? WLOC /?CND47
|
||||
IN? WLOC,ROOMS \?CND47
|
||||
ZERO? PTR \?CND47
|
||||
FIRST? GLOBAL-OBJECTS >TBL /?PRG54
|
||||
?PRG54: ZERO? TBL /?CND47
|
||||
INTBL? TBL,GL-LOC-TRAIL,CNT >PTR /?CND47
|
||||
NEXT? TBL >TBL /?PRG54
|
||||
JUMP ?PRG54
|
||||
?CND47: ZERO? PTR /FALSE
|
||||
ZERO? CLSD-PTR /TRUE
|
||||
GRTR? PTR,CLSD-PTR /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-PRINT-DESC:ANY:1:1,OBJ
|
||||
FSET? OBJ,FL-HAS-SDESC \?CCL3
|
||||
GETP OBJ,P?ACTION
|
||||
CALL STACK,M-OBJDESC
|
||||
RSTACK
|
||||
?CCL3: PRINTD OBJ
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-PRINT-ARTICLE:ANY:3:3,OBJ,ART,CAP?,MASK
|
||||
ZERO? CAP? \?CND1
|
||||
PRINTC 32
|
||||
SET 'MASK,32
|
||||
?CND1: EQUAL? ART,K-ART-A \?CCL5
|
||||
FSET? OBJ,FL-YOUR \?CCL8
|
||||
BOR 89,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "our"
|
||||
RTRUE
|
||||
?CCL8: FSET? OBJ,FL-PLURAL \?CCL10
|
||||
BOR 83,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "ome"
|
||||
RTRUE
|
||||
?CCL10: BOR 65,MASK
|
||||
PRINTC STACK
|
||||
FSET? OBJ,FL-VOWEL \FALSE
|
||||
PRINTC 110
|
||||
RTRUE
|
||||
?CCL5: EQUAL? ART,K-ART-THE \?CCL15
|
||||
FSET? OBJ,FL-YOUR \?CCL18
|
||||
BOR 89,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "our"
|
||||
RTRUE
|
||||
?CCL18: BOR 84,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "he"
|
||||
RTRUE
|
||||
?CCL15: EQUAL? ART,K-ART-ANY \?CCL20
|
||||
BOR 65,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "ny"
|
||||
RTRUE
|
||||
?CCL20: EQUAL? ART,K-ART-HE \?CCL22
|
||||
FSET? OBJ,FL-PLURAL \?CCL25
|
||||
FSET? OBJ,FL-COLLECTIVE /?CCL25
|
||||
BOR 84,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "hey"
|
||||
RTRUE
|
||||
?CCL25: FSET? OBJ,FL-PERSON /?CCL29
|
||||
BOR 73,MASK
|
||||
PRINTC STACK
|
||||
PRINTC 116
|
||||
RTRUE
|
||||
?CCL29: EQUAL? OBJ,CH-PLAYER \?CCL31
|
||||
BOR 89,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "ou"
|
||||
RTRUE
|
||||
?CCL31: FSET? OBJ,FL-FEMALE \?CCL33
|
||||
BOR 83,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "he"
|
||||
RTRUE
|
||||
?CCL33: BOR 72,MASK
|
||||
PRINTC STACK
|
||||
PRINTC 101
|
||||
RTRUE
|
||||
?CCL22: EQUAL? ART,K-ART-HIM \?CCL35
|
||||
FSET? OBJ,FL-PLURAL \?CCL38
|
||||
FSET? OBJ,FL-COLLECTIVE /?CCL38
|
||||
BOR 84,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "hem"
|
||||
RTRUE
|
||||
?CCL38: FSET? OBJ,FL-PERSON /?CCL42
|
||||
BOR 73,MASK
|
||||
PRINTC STACK
|
||||
PRINTC 116
|
||||
RTRUE
|
||||
?CCL42: EQUAL? OBJ,CH-PLAYER \?CCL44
|
||||
BOR 89,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "ou"
|
||||
RTRUE
|
||||
?CCL44: FSET? OBJ,FL-FEMALE \?CCL46
|
||||
BOR 72,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "er"
|
||||
RTRUE
|
||||
?CCL46: BOR 72,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "im"
|
||||
RTRUE
|
||||
?CCL35: EQUAL? ART,K-ART-HIS \FALSE
|
||||
FSET? OBJ,FL-PLURAL \?CCL51
|
||||
FSET? OBJ,FL-COLLECTIVE /?CCL51
|
||||
BOR 84,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "heir"
|
||||
RTRUE
|
||||
?CCL51: FSET? OBJ,FL-PERSON /?CCL55
|
||||
BOR 73,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "ts"
|
||||
RTRUE
|
||||
?CCL55: EQUAL? OBJ,CH-PLAYER \?CCL57
|
||||
BOR 89,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "our"
|
||||
RTRUE
|
||||
?CCL57: FSET? OBJ,FL-FEMALE \?CCL59
|
||||
BOR 72,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "er"
|
||||
RTRUE
|
||||
?CCL59: BOR 72,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "is"
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-PRINT-OBJ:ANY:0:4,O,ART,CAP?,VERB,MASK
|
||||
ASSIGNED? 'ART /?CND1
|
||||
SET 'ART,K-ART-THE
|
||||
?CND1: ZERO? O \?CND3
|
||||
SET 'O,PRSO
|
||||
?CND3: FSET? O,FL-HAS-SDESC \?CCL7
|
||||
GETP O,P?ACTION
|
||||
ICALL STACK,M-OBJDESC,ART,CAP?
|
||||
JUMP ?CND5
|
||||
?CCL7: EQUAL? ART,K-ART-HE,K-ART-HIM,K-ART-HIS \?CCL9
|
||||
FSET O,FL-SEEN
|
||||
ICALL RT-PRINT-ARTICLE,O,ART,CAP?
|
||||
JUMP ?CND5
|
||||
?CCL9: FSET? O,FL-NO-ARTICLE /?CCL11
|
||||
FSET O,FL-SEEN
|
||||
ICALL RT-PRINT-ARTICLE,O,ART,CAP?
|
||||
PRINTC 32
|
||||
ICALL2 RT-PRINT-DESC,O
|
||||
JUMP ?CND5
|
||||
?CCL11: ZERO? CAP? \?CND12
|
||||
PRINTC 32
|
||||
SET 'MASK,32
|
||||
?CND12: EQUAL? O,CH-PLAYER \?CCL16
|
||||
BOR 89,MASK
|
||||
PRINTC STACK
|
||||
PRINTI "ou"
|
||||
JUMP ?CND5
|
||||
?CCL16: ICALL2 RT-PRINT-DESC,O
|
||||
?CND5: ZERO? VERB /FALSE
|
||||
CALL RT-PRINT-VERB,O,VERB
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-PRINT-VERB:ANY:2:2,OBJ,VERB
|
||||
PRINTC 32
|
||||
EQUAL? OBJ,CH-PLAYER /?CTR2
|
||||
FSET? OBJ,FL-PLURAL \?CCL3
|
||||
FSET? OBJ,FL-COLLECTIVE /?CCL3
|
||||
?CTR2: PRINT VERB
|
||||
RTRUE
|
||||
?CCL3: EQUAL? VERB,STR?56 \?CCL10
|
||||
PRINTI "is"
|
||||
RTRUE
|
||||
?CCL10: EQUAL? VERB,STR?61 \?CCL12
|
||||
PRINTI "has"
|
||||
RTRUE
|
||||
?CCL12: EQUAL? VERB,STR?62 \?CCL14
|
||||
PRINTI "tries"
|
||||
RTRUE
|
||||
?CCL14: EQUAL? VERB,STR?63 \?CCL16
|
||||
PRINTI "empties"
|
||||
RTRUE
|
||||
?CCL16: EQUAL? VERB,STR?64 \?CCL18
|
||||
PRINTI "flies"
|
||||
RTRUE
|
||||
?CCL18: EQUAL? VERB,STR?65 \?CCL20
|
||||
PRINTI "dries"
|
||||
RTRUE
|
||||
?CCL20: PRINT VERB
|
||||
EQUAL? VERB,STR?66,STR?67,STR?68 /?CCL22
|
||||
EQUAL? VERB,STR?69,STR?70,STR?71 /?CCL22
|
||||
EQUAL? VERB,STR?72 \?CND21
|
||||
?CCL22: PRINTC 101
|
||||
?CND21: PRINTC 115
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT THIS-IS-IT:ANY:1:1,OBJ
|
||||
EQUAL? OBJ,FALSE-VALUE,ROOMS,NOT-HERE-OBJECT /TRUE
|
||||
EQUAL? OBJ,CH-PLAYER,INTDIR,GLOBAL-HERE /TRUE
|
||||
EQUAL? PRSA,V?WALK \?CND1
|
||||
EQUAL? OBJ,PRSO /TRUE
|
||||
?CND1: FSET? OBJ,FL-PERSON \?CCL11
|
||||
FSET? OBJ,FL-FEMALE \?CCL14
|
||||
FSET HER,FL-TOUCHED
|
||||
SET 'P-HER-OBJECT,OBJ
|
||||
RTRUE
|
||||
?CCL14: FSET HIM,FL-TOUCHED
|
||||
SET 'P-HIM-OBJECT,OBJ
|
||||
RTRUE
|
||||
?CCL11: FSET? OBJ,FL-PLURAL \?CCL16
|
||||
FSET? OBJ,FL-COLLECTIVE /?CCL16
|
||||
FSET THEM,FL-TOUCHED
|
||||
SET 'P-THEM-OBJECT,OBJ
|
||||
RTRUE
|
||||
?CCL16: FSET IT,FL-TOUCHED
|
||||
SET 'P-IT-OBJECT,OBJ
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-IN-ON-MSG:ANY:1:2,OBJ,CAP?,MASK
|
||||
ZERO? CAP? \?CND1
|
||||
PRINTC 32
|
||||
SET 'MASK,32
|
||||
?CND1: FSET? OBJ,FL-SURFACE \?CCL5
|
||||
BOR 79,MASK
|
||||
PRINTC STACK
|
||||
JUMP ?CND3
|
||||
?CCL5: BOR 73,MASK
|
||||
PRINTC STACK
|
||||
?CND3: PRINTC 110
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-OUT-OFF-MSG:ANY:1:2,OBJ,CAP?
|
||||
FSET? OBJ,FL-SURFACE /?CCL3
|
||||
FSET? OBJ,FL-CONTAINER \FALSE
|
||||
?CCL3: ZERO? CAP? \?CCL8
|
||||
PRINTI " o"
|
||||
JUMP ?CND6
|
||||
?CCL8: PRINTC 79
|
||||
?CND6: FSET? OBJ,FL-SURFACE \?CCL11
|
||||
PRINTI "ff"
|
||||
RTRUE
|
||||
?CCL11: PRINTI "ut"
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-OPEN-MSG:ANY:0:1,OBJ
|
||||
ZERO? OBJ \?CND1
|
||||
SET 'OBJ,PRSO
|
||||
?CND1: PRINTC 32
|
||||
FSET? OBJ,FL-OPEN \?CCL5
|
||||
PRINTI "open"
|
||||
RTRUE
|
||||
?CCL5: PRINTI "closed"
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TOUCH-VERB?:ANY:0:0
|
||||
EQUAL? PRSA,V?UNWEAR,V?WEAR /TRUE
|
||||
EQUAL? PRSA,V?TAKE,V?PUT-IN,V?PUT /TRUE
|
||||
EQUAL? PRSA,V?OPEN,V?DROP,V?CLOSE /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT CLOCKER:ANY:0:0,NT,RTN,TIME,ANY?,MULT?,DIF,N,VAL,I,Z1,Z2
|
||||
ZERO? CLOCK-WAIT /?CND1
|
||||
SET 'CLOCK-WAIT,FALSE-VALUE
|
||||
RFALSE
|
||||
?CND1: SET 'NT,GL-MOVES
|
||||
SET 'GL-NEW-TIME,NT
|
||||
SET 'VAL,FALSE-VALUE
|
||||
?PRG3: SET 'RTN,FALSE-VALUE
|
||||
SET 'TIME,NT
|
||||
SET 'ANY?,FALSE-VALUE
|
||||
SET 'MULT?,FALSE-VALUE
|
||||
SET 'I,0
|
||||
?PRG5: GET GL-Q-TBL,I >Z1
|
||||
ADD I,1
|
||||
GET GL-Q-TBL,STACK >Z2
|
||||
ZERO? Z1 /?CND7
|
||||
GRTR? Z2,TIME /?CND7
|
||||
ZERO? RTN /?CND11
|
||||
EQUAL? Z2,TIME \?CND11
|
||||
SET 'MULT?,TRUE-VALUE
|
||||
?CND11: SET 'RTN,Z1
|
||||
SET 'TIME,Z2
|
||||
SET 'N,I
|
||||
SET 'ANY?,TRUE-VALUE
|
||||
?CND7: ADD I,2 >I
|
||||
LESS? I,K-Q-SIZE \?REP6
|
||||
LESS? I,GL-Q-MAX /?PRG5
|
||||
?REP6: ZERO? ANY? /?REP4
|
||||
SET 'GL-MOVES,TIME
|
||||
FSET? CH-PLAYER,FL-ASLEEP /?CND22
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
?CND22: LESS? TIME,NT /?PRD24
|
||||
PUSH 0
|
||||
JUMP ?PRD25
|
||||
?PRD24: PUSH 1
|
||||
?PRD25: SET 'DIF,STACK
|
||||
PUT GL-Q-TBL,N,0
|
||||
ADD N,1
|
||||
PUT GL-Q-TBL,STACK,0
|
||||
ADD N,2
|
||||
EQUAL? STACK,GL-Q-MAX \?CND26
|
||||
SUB GL-Q-MAX,2 >GL-Q-MAX
|
||||
?CND26: SET 'GL-CLK-RUN,TRUE-VALUE
|
||||
CALL RTN
|
||||
ZERO? STACK /?CND28
|
||||
SET 'VAL,TRUE-VALUE
|
||||
?CND28: SET 'GL-CLK-RUN,FALSE-VALUE
|
||||
GRTR? GL-MOVES,NT \?CND30
|
||||
SET 'GL-NEW-TIME,GL-MOVES
|
||||
SET 'NT,GL-MOVES
|
||||
?CND30: ZERO? VAL /?PRG3
|
||||
ZERO? MULT? \?PRG3
|
||||
ZERO? DIF /?PRG3
|
||||
EQUAL? PRSA,V?WAIT \?PRG3
|
||||
FSET? CH-PLAYER,FL-ASLEEP /?PRG3
|
||||
SET 'VAL,FALSE-VALUE
|
||||
CRLF
|
||||
PRINTI "Do you want to continue waiting"
|
||||
CALL1 YES?
|
||||
ZERO? STACK \?CCL41
|
||||
SET 'NT,TIME
|
||||
?REP4: SET 'GL-MOVES,NT
|
||||
INC 'GL-MOVES
|
||||
RFALSE
|
||||
?CCL41: PRINT K-TIME-PASSES-MSG
|
||||
JUMP ?PRG3
|
||||
|
||||
|
||||
.FUNCT RT-QUEUE:ANY:2:3,RTN,TIME,ABS?,I
|
||||
?PRG1: GET GL-Q-TBL,I
|
||||
ZERO? STACK \?CCL5
|
||||
PUT GL-Q-TBL,I,RTN
|
||||
ADD I,1
|
||||
PUT GL-Q-TBL,STACK,TIME
|
||||
ADD I,2
|
||||
GRTR? STACK,GL-Q-MAX \TRUE
|
||||
ADD I,2 >GL-Q-MAX
|
||||
RTRUE
|
||||
?CCL5: ADD I,2 >I
|
||||
LESS? I,K-Q-SIZE /?PRG1
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-DEQUEUE:ANY:1:1,RTN,I
|
||||
?PRG1: GET GL-Q-TBL,I
|
||||
EQUAL? STACK,RTN \?CCL5
|
||||
PUT GL-Q-TBL,I,0
|
||||
ADD I,1
|
||||
PUT GL-Q-TBL,STACK,0
|
||||
ADD I,2
|
||||
EQUAL? STACK,GL-Q-MAX \TRUE
|
||||
SUB GL-Q-MAX,2 >GL-Q-MAX
|
||||
RTRUE
|
||||
?CCL5: ADD I,2 >I
|
||||
LESS? I,K-Q-SIZE \FALSE
|
||||
LESS? I,GL-Q-MAX /?PRG1
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-IS-QUEUED?:ANY:1:1,RTN,TIME,I
|
||||
?PRG1: GET GL-Q-TBL,I
|
||||
EQUAL? STACK,RTN \?CCL5
|
||||
ADD I,1
|
||||
GET GL-Q-TBL,STACK >TIME
|
||||
RETURN TIME
|
||||
?CCL5: ADD I,2 >I
|
||||
LESS? I,K-Q-SIZE \FALSE
|
||||
LESS? I,GL-Q-MAX /?PRG1
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT C-PIXELS:ANY:1:1,X
|
||||
SUB X,1
|
||||
MUL STACK,GL-FONT-X
|
||||
ADD STACK,1
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT L-PIXELS:ANY:1:1,Y
|
||||
SUB Y,1
|
||||
MUL STACK,GL-FONT-Y
|
||||
ADD STACK,1
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PIXELS-C:ANY:1:1,X
|
||||
SUB X,1
|
||||
DIV STACK,GL-FONT-X
|
||||
ADD STACK,1
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT PIXELS-L:ANY:1:1,Y
|
||||
SUB Y,1
|
||||
DIV STACK,GL-FONT-Y
|
||||
ADD STACK,1
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT CCURSET:ANY:2:3,Y,X,W,?TMP1
|
||||
ASSIGNED? 'W /?CND1
|
||||
SET 'W,-3
|
||||
?CND1: CALL2 L-PIXELS,Y >?TMP1
|
||||
CALL2 C-PIXELS,X
|
||||
CURSET ?TMP1,STACK,W
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CCURGET:ANY:1:1,TBL
|
||||
CURGET TBL
|
||||
GET TBL,0
|
||||
CALL2 PIXELS-L,STACK
|
||||
PUT TBL,0,STACK
|
||||
GET TBL,1
|
||||
CALL2 PIXELS-C,STACK
|
||||
PUT TBL,1,STACK
|
||||
RETURN TBL
|
||||
|
||||
|
||||
.FUNCT CSPLIT:ANY:1:1,Y
|
||||
MUL Y,GL-FONT-Y
|
||||
SPLIT STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CWINPOS:ANY:3:3,W,Y,X,?TMP1
|
||||
CALL2 L-PIXELS,Y >?TMP1
|
||||
CALL2 C-PIXELS,X
|
||||
WINPOS W,?TMP1,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CWINSIZE:ANY:3:3,W,Y,X,?TMP1
|
||||
MUL Y,GL-FONT-Y >?TMP1
|
||||
MUL X,GL-FONT-X
|
||||
WINSIZE W,?TMP1,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT CSCROLL:ANY:1:2,W,Y
|
||||
ASSIGNED? 'Y /?CND1
|
||||
SET 'Y,1
|
||||
?CND1: MUL Y,GL-FONT-Y
|
||||
SCROLL W,STACK
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-SCRIPT-INBUF:ANY:0:1,BUF,CNT,N,CHR
|
||||
ASSIGNED? 'BUF /?CND1
|
||||
SET 'BUF,P-INBUF
|
||||
?CND1: GETB BUF,1 >N
|
||||
DIROUT D-SCREEN-OFF
|
||||
INC 'BUF
|
||||
?PRG3: IGRTR? 'CNT,N /?REP4
|
||||
GETB BUF,CNT >CHR
|
||||
LESS? CHR,97 /?CCL10
|
||||
GRTR? CHR,122 /?CCL10
|
||||
SUB CHR,32
|
||||
PRINTC STACK
|
||||
JUMP ?PRG3
|
||||
?CCL10: PRINTC CHR
|
||||
JUMP ?PRG3
|
||||
?REP4: CRLF
|
||||
DIROUT D-SCREEN-ON
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT GO:ANY:0:0
|
||||
?FCN: GETB 0,33 >GL-SCR-WID
|
||||
LESS? GL-SCR-WID,64 \?CND1
|
||||
PRINTI "[The screen is too narrow.]"
|
||||
CRLF
|
||||
QUIT
|
||||
?CND1: WINGET 0,WFSIZE
|
||||
SHIFT STACK,-8 >GL-FONT-Y
|
||||
WINGET 0,WFSIZE
|
||||
BAND STACK,255 >GL-FONT-X
|
||||
DIROUT K-D-TBL-ON,K-DIROUT-TBL
|
||||
PRINTC 32
|
||||
DIROUT K-D-TBL-OFF
|
||||
GET 0,24 >GL-SPACE-WIDTH
|
||||
ZERO? GL-SPACE-WIDTH \?CND3
|
||||
GET 0,17 >GL-SPACE-WIDTH
|
||||
GETB 0,33
|
||||
DIV GL-SPACE-WIDTH,STACK >GL-SPACE-WIDTH
|
||||
?CND3: MOUSE-LIMIT -1
|
||||
CLEAR -1
|
||||
ICALL2 INIT-STATUS-LINE,FALSE-VALUE
|
||||
ICALL1 UPDATE-STATUS-LINE
|
||||
ICALL RT-QUEUE,RT-I-GAS-MIX,GL-MOVES
|
||||
ICALL RT-QUEUE,RT-I-LEAVE-1,GL-MOVES
|
||||
ADD GL-MOVES,90
|
||||
ICALL RT-QUEUE,RT-I-RETURN-1,STACK
|
||||
ADD GL-MOVES,120
|
||||
ICALL RT-QUEUE,RT-I-CRANE-1,STACK
|
||||
ADD GL-MOVES,3
|
||||
ICALL RT-QUEUE,RT-I-NITROGEN-LEAK,STACK
|
||||
ICALL RT-QUEUE,RT-I-TEMP,GL-MOVES
|
||||
ADD GL-MOVES,1320
|
||||
ICALL RT-QUEUE,RT-I-CAB-FIXED,STACK
|
||||
ICALL1 V-VERSION
|
||||
CRLF
|
||||
PRINTI " 'Catfish' DeVries runs his eye over the gauges on the wall of Deepcore's gas-mix room. ""They're done, Bud,"" he says, ""Cooked to a turn."" He spins the wheel in the steel door to the compression chamber, and it eases open with a sigh.
|
||||
A man with a military haircut quickly steps through the door, apparently undisturbed by the six claustrophobic hours of compression that will enable him to survive the atmosphere 2,000 feet below the sea's surface. He is followed by three other men and one very pretty woman.
|
||||
""Brigman?"" he says to you. ""Coffey. Team leader."" He gestures to the others. ""Willhite, Schoenick, Monk. I gather you already know the little lady.""
|
||||
Lindsey glares at him. ""Listen, Tarzan,"" she snaps, ""Let's get one thing straight...""
|
||||
A nervous voice over the intercom interrupts her. ""Bud? It's Hippy. I'm in the Control Module and I got something here on the screen you should take a look at. Pronto.""
|
||||
You run out through the sub-bay with the others close on your heels. When you arrive in the Command Module, Hippy is pointing to the ROV screen. Coffey and the others crowd around behind you, looking over your shoulder.
|
||||
""It's a small submersible over by the Montana,"" Hippy says. ""I can't make it out real well, but I saw some divers leaving her just a minute ago.""
|
||||
|
||||
"
|
||||
MARGIN 50,50
|
||||
PRINTI "[GRAPHIC: A close-up of the ROV screen, with a hint of the controls that surround it. On the screen is a murky picture of a submersible.]
|
||||
|
||||
"
|
||||
MARGIN 0,0
|
||||
PRINTI " ""Shit!"" Coffey shouts. ""We've got to secure that boat! Monk, take Willhite and Schoenick and that big rig we saw in the MoonPool. I'll go in the submersible we came down on. Brigman, I need some drivers.""
|
||||
One-Night cuts him off. ""I decide who drives what around here, mister. I'll take your boys over in Flatbed. Hippy will drive you in Cab Three. We leave in two minutes.""
|
||||
One-Night and Hippy leave the Command Module, followed by the SEALs. You are left alone with Lindsey and Catfish.
|
||||
"
|
||||
PRINTI "[MORE]"
|
||||
INPUT 1
|
||||
CRLF
|
||||
ICALL1 INIT-STATUS-LINE
|
||||
CLEAR 6
|
||||
WINGET 0,K-W-YSIZE
|
||||
SUB STACK,GL-FONT-Y
|
||||
CURSET STACK,1
|
||||
ICALL1 MAIN-LOOP
|
||||
JUMP ?FCN
|
||||
|
||||
.ENDI
|
134
montana.zabstr
Normal file
134
montana.zabstr
Normal file
|
@ -0,0 +1,134 @@
|
|||
<FLAGS-AND-DEFAULTS (("WORD-FLAGS-IN-TABLE" T)) ()>
|
||||
|
||||
<ROOM RM-MIDSHIP-HATCH (LOC ROOMS) (DESC "midship hatch") (FLAGS FL-LIGHTED
|
||||
FL-WATER) (UP TO RM-TROUGH-LIP) (EAST TO RM-TROUGH-LIP) (FORE TO
|
||||
RM-MISSILE-HATCH) (NORTH TO RM-MISSILE-HATCH) (WEST TO RM-ATTACK-CENTER IF
|
||||
LG-MIDSHIP-HATCH IS OPEN) (IN TO RM-ATTACK-CENTER IF LG-MIDSHIP-HATCH IS OPEN)
|
||||
(DOWN PER RT-TO-TRENCH-BOTTOM) (GLOBAL LG-MIDSHIP-HATCH LG-MONTANA LG-TROUGH
|
||||
RM-ATTACK-CENTER) (ACTION RT-RM-MIDSHIP-HATCH)>
|
||||
<DEFINE-ROUTINE RT-RM-MIDSHIP-HATCH>
|
||||
<OBJECT LG-MIDSHIP-HATCH (LOC LOCAL-GLOBALS) (DESC "midship hatch") (FLAGS
|
||||
FL-DOOR) (SYNONYM HATCH) (ADJECTIVE MIDSHIP) (ACTION RT-LG-MIDSHIP-HATCH)>
|
||||
<DEFINE-ROUTINE RT-LG-MIDSHIP-HATCH>
|
||||
<DEFINE-ROUTINE RT-TO-TRENCH-BOTTOM>
|
||||
<ROOM RM-MISSILE-HATCH (LOC ROOMS) (DESC "missile hatch") (FLAGS FL-LIGHTED
|
||||
FL-WATER) (SYNONYM HATCH) (ADJECTIVE MISSILE) (FORE TO RM-BOW) (AFT TO
|
||||
RM-MIDSHIP-HATCH) (GLOBAL LG-MONTANA LG-TROUGH RM-MISSILE-ROOM) (ACTION
|
||||
RT-RM-MISSILE-HATCH)>
|
||||
<DEFINE-ROUTINE RT-RM-MISSILE-HATCH>
|
||||
<OBJECT TH-MISSILE (LOC RM-MISSILE-HATCH) (DESC "missile") (FLAGS FL-NO-DESC
|
||||
FL-SURFACE FL-SEARCH) (SYNONYM MISSILE) (ACTION RT-TH-MISSILE)>
|
||||
<DEFINE-ROUTINE RT-TH-MISSILE>
|
||||
<OBJECT TH-MISSILE-TIMER (LOC TH-MISSILE) (DESC "timer") (FLAGS FL-NO-DESC) (
|
||||
SYNONYM TIMER) (ADJECTIVE MISSILE) (ACTION RT-TH-MISSILE-TIMER)>
|
||||
<DEFINE-ROUTINE RT-TH-MISSILE-TIMER>
|
||||
<OBJECT TH-MISSILE-PANEL (LOC TH-MISSILE) (DESC "access panel") (FLAGS
|
||||
FL-CONTAINER FL-LOCKED FL-OPENABLE FL-SEARCH) (SYNONYM PANEL HATCH PLATE) (
|
||||
ADJECTIVE MISSILE ACCESS COVER) (ACTION RT-TH-MISSILE-PANEL)>
|
||||
<DEFINE-ROUTINE RT-TH-MISSILE-PANEL>
|
||||
<NEW-ADD-WORD "WIRES" NOUN <VOC "WIRE"> ,PLURAL-FLAG>
|
||||
<GLOBAL GL-WIRE-SEQUENCE 0 <> BYTE>
|
||||
<GLOBAL GL-WIRES-CUT 0>
|
||||
<OBJECT TH-WIRES (LOC TH-MISSILE-PANEL) (DESC "wires") (FLAGS FL-NO-DESC) (
|
||||
SYNONYM WIRES) (ACTION RT-TH-WIRES)>
|
||||
<DEFINE-ROUTINE RT-TH-WIRES>
|
||||
<OBJECT TH-RED-WIRE (LOC TH-MISSILE-PANEL) (DESC "red wire") (SYNONYM WIRE) (
|
||||
ADJECTIVE RED) (ACTION RT-TH-WIRE)>
|
||||
<OBJECT TH-BLUE-WIRE (LOC TH-MISSILE-PANEL) (DESC "blue wire") (SYNONYM WIRE) (
|
||||
ADJECTIVE BLUE) (ACTION RT-TH-WIRE)>
|
||||
<OBJECT TH-GREEN-WIRE (LOC TH-MISSILE-PANEL) (DESC "green wire") (SYNONYM WIRE)
|
||||
(ADJECTIVE GREEN) (ACTION RT-TH-WIRE)>
|
||||
<OBJECT TH-YELLOW-WIRE (LOC TH-MISSILE-PANEL) (DESC "yellow wire") (SYNONYM
|
||||
WIRE) (ADJECTIVE YELLOW) (ACTION RT-TH-WIRE)>
|
||||
<OBJECT TH-ORANGE-WIRE (LOC TH-MISSILE-PANEL) (DESC "orange wire") (SYNONYM
|
||||
WIRE) (ADJECTIVE ORANGE) (ACTION RT-TH-WIRE)>
|
||||
<OBJECT TH-WHITE-WIRE (LOC TH-MISSILE-PANEL) (DESC "white wire") (SYNONYM WIRE)
|
||||
(ADJECTIVE WHITE) (ACTION RT-TH-WIRE)>
|
||||
<DEFINE-ROUTINE RT-TH-WIRE>
|
||||
<DEFINE-ROUTINE RT-CORRECT-WIRE?>
|
||||
<OBJECT TH-WIRE-CUTTERS (LOC TH-ELEC-SHOP-DRAWER) (DESC "wire cutters") (FLAGS
|
||||
FL-TAKEABLE FL-KNIFE) (SYNONYM CUTTERS) (ADJECTIVE WIRE) (ACTION
|
||||
RT-TH-WIRE-CUTTERS)>
|
||||
<DEFINE-ROUTINE RT-TH-WIRE-CUTTERS>
|
||||
<GLOBAL GL-FALLING-INTO-TRENCH? <> <> BYTE>
|
||||
<DEFINE-ROUTINE RT-I-INTO-TRENCH-1>
|
||||
<DEFINE-ROUTINE RT-I-INTO-TRENCH-2>
|
||||
<DEFINE-ROUTINE RT-I-OUT-OF-AIR-1>
|
||||
<DEFINE-ROUTINE RT-I-OUT-OF-AIR-2>
|
||||
<ROOM RM-BOW (LOC ROOMS) (DESC "bow") (FLAGS FL-LIGHTED FL-WATER) (SYNONYM BOW)
|
||||
(AFT TO RM-MISSILE-HATCH) (WEST TO RM-TORPEDO-ROOM) (IN TO RM-TORPEDO-ROOM) (
|
||||
GLOBAL LG-MONTANA LG-TROUGH RM-MISSILE-HATCH) (ACTION RT-RM-BOW)>
|
||||
<DEFINE-ROUTINE RT-RM-BOW>
|
||||
<ROOM RM-TORPEDO-ROOM (LOC ROOMS) (DESC "torpedo room") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED FL-WATER) (SYNONYM ROOM) (ADJECTIVE TORPEDO) (EAST TO RM-BOW) (OUT
|
||||
TO RM-BOW) (AFT TO RM-ENGINE-ROOM) (GLOBAL LG-WALL LG-MONTANA RM-BOW
|
||||
RM-ENGINE-ROOM) (ACTION RT-RM-TORPEDO-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-TORPEDO-ROOM>
|
||||
<ROOM RM-ENGINE-ROOM (LOC ROOMS) (DESC "engine room") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED FL-WATER) (SYNONYM ROOM) (ADJECTIVE ENGINE) (FORE TO RM-TORPEDO-ROOM
|
||||
) (AFT TO RM-MISSILE-ROOM) (GLOBAL LG-WALL LG-MONTANA RM-TORPEDO-ROOM
|
||||
RM-MISSILE-ROOM) (ACTION RT-RM-ENGINE-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-ENGINE-ROOM>
|
||||
<ROOM RM-MISSILE-ROOM (LOC ROOMS) (DESC "missile launching room") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED FL-WATER) (SYNONYM ROOM) (ADJECTIVE MISSILE LAUNCHING) (
|
||||
FORE TO RM-ENGINE-ROOM) (GLOBAL LG-WALL LG-MONTANA RM-ENGINE-ROOM) (ACTION
|
||||
RT-RM-MISSILE-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-MISSILE-ROOM>
|
||||
<OBJECT TH-MISSILE-ACCESS-KEY (LOC RM-MISSILE-ROOM) (DESC "access key") (FLAGS
|
||||
FL-KEY FL-TAKEABLE) (SYNONYM KEY) (ADJECTIVE MISSILE ACCESS) (ACTION
|
||||
RT-TH-MISSILE-ACCESS-KEY)>
|
||||
<DEFINE-ROUTINE RT-TH-MISSILE-ACCESS-KEY>
|
||||
<ROOM RM-ATTACK-CENTER (LOC ROOMS) (DESC "attack center") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED FL-WATER) (SYNONYM CENTER) (ADJECTIVE ATTACK) (EAST TO
|
||||
RM-MIDSHIP-HATCH IF LG-MIDSHIP-HATCH IS OPEN) (OUT TO RM-MIDSHIP-HATCH IF
|
||||
LG-MIDSHIP-HATCH IS OPEN) (AFT TO RM-SONAR-ROOM) (GLOBAL LG-MIDSHIP-HATCH
|
||||
LG-WALL LG-MONTANA RM-SONAR-ROOM) (ACTION RT-RM-ATTACK-CENTER)>
|
||||
<DEFINE-ROUTINE RT-RM-ATTACK-CENTER>
|
||||
<ROOM RM-SONAR-ROOM (LOC ROOMS) (DESC "sonar room") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED FL-WATER) (SYNONYM SHACK) (ADJECTIVE SONAR) (FORE TO
|
||||
RM-ATTACK-CENTER) (AFT TO RM-COMM-ROOM) (GLOBAL LG-WALL LG-MONTANA
|
||||
RM-ATTACK-CENTER RM-COMM-ROOM) (ACTION RT-RM-SONAR-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-SONAR-ROOM>
|
||||
<ROOM RM-COMM-ROOM (LOC ROOMS) (DESC "comm room") (FLAGS FL-INDOORS FL-LIGHTED
|
||||
FL-WATER) (SYNONYM ROOM) (ADJECTIVE COMM COMMUNICATIONS) (FORE TO RM-SONAR-ROOM
|
||||
) (AFT PER RT-THRU-BUCKLED-DOOR) (GLOBAL LG-BUCKLED-DOOR LG-WALL LG-MONTANA
|
||||
RM-SONAR-ROOM RM-SUB-CORRIDOR) (ACTION RT-RM-COMM-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-COMM-ROOM>
|
||||
<DEFINE-ROUTINE RT-THRU-BUCKLED-DOOR>
|
||||
<OBJECT LG-BUCKLED-DOOR (LOC LOCAL-GLOBALS) (DESC "door") (FLAGS FL-DOOR
|
||||
FL-OPENABLE) (SYNONYM DOOR) (ADJECTIVE BUCKLED JAMMED) (ACTION
|
||||
RT-LG-BUCKLED-DOOR)>
|
||||
<DEFINE-ROUTINE RT-LG-BUCKLED-DOOR>
|
||||
<ROOM RM-SUB-CORRIDOR (LOC ROOMS) (DESC "corridor") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED FL-WATER) (SYNONYM CORRIDOR) (FORE TO RM-COMM-ROOM) (DOWN TO
|
||||
RM-CAPTAINS-ROOM) (GLOBAL LG-WALL LG-MONTANA RM-COMM-ROOM RM-CAPTAINS-ROOM) (
|
||||
ACTION RT-RM-SUB-CORRIDOR)>
|
||||
<GLOBAL GL-CORRIDOR-BLOCKED? T <> BYTE>
|
||||
<DEFINE-ROUTINE RT-RM-SUB-CORRIDOR>
|
||||
<ROOM RM-CAPTAINS-ROOM (LOC ROOMS) (DESC "captain's quarters") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED FL-WATER) (SYNONYM QUARTERS ROOM STATEROOM) (ADJECTIVE
|
||||
CAPTAIN STATE!-LALRDEFS!-PACKAGE) (UP TO RM-SUB-CORRIDOR) (GLOBAL LG-WALL
|
||||
LG-MONTANA RM-SUB-CORRIDOR) (ACTION RT-RM-CAPTAINS-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-CAPTAINS-ROOM>
|
||||
<OBJECT TH-PHOTOGRAPH (LOC RM-CAPTAINS-ROOM) (DESC "photograph") (FLAGS
|
||||
FL-NO-DESC) (SYNONYM PHOTOGRAPH PICTURE FRAME) (ADJECTIVE FRAMED) (ACTION
|
||||
RT-TH-PHOTOGRAPH)>
|
||||
<DEFINE-ROUTINE RT-TH-PHOTOGRAPH>
|
||||
<OBJECT TH-SAFE (LOC RM-CAPTAINS-ROOM) (DESC "safe") (FLAGS FL-CONTAINER
|
||||
FL-LOCKED FL-NO-DESC FL-OPENABLE FL-SEARCH) (SYNONYM SAFE DIAL) (ADJECTIVE WALL
|
||||
) (ACTION RT-TH-SAFE)>
|
||||
<GLOBAL GL-SAFE-NUM 0 <> BYTE>
|
||||
<DEFINE-ROUTINE RT-TH-SAFE>
|
||||
<OBJECT TH-PLASTIC-CARD (LOC TH-SAFE) (DESC "plastic card") (FLAGS FL-READABLE
|
||||
FL-TAKEABLE) (SYNONYM CARD CODE CODES) (ADJECTIVE PLASTIC WIRING) (ACTION
|
||||
RT-TH-PLASTIC-CARD)>
|
||||
<DEFINE-ROUTINE RT-TH-PLASTIC-CARD>
|
||||
<OBJECT TH-PLASTIQUE (LOC RM-DRILL-ROOM) (DESC "plastique") (FLAGS FL-SURFACE
|
||||
FL-TAKEABLE FL-SEARCH) (SYNONYM PLASTIQUE EXPLOSIVE TAPE) (ADJECTIVE PLASTIC) (
|
||||
OWNER 0) (ACTION RT-TH-PLASTIQUE)>
|
||||
<DEFINE-ROUTINE RT-TH-PLASTIQUE>
|
||||
<OBJECT TH-DETONATOR (LOC RM-DRILL-ROOM) (DESC "detonator") (FLAGS FL-TAKEABLE)
|
||||
(SYNONYM DETONATOR TIMER DIAL SWITCH) (ACTION RT-TH-DETONATOR)>
|
||||
<GLOBAL GL-DETONATOR-TIME 10 <> BYTE>
|
||||
<DEFINE-ROUTINE RT-TH-DETONATOR>
|
||||
<DEFINE-ROUTINE RT-I-DETONATOR>
|
580
montana.zap
Normal file
580
montana.zap
Normal file
|
@ -0,0 +1,580 @@
|
|||
|
||||
|
||||
.FUNCT RT-RM-MIDSHIP-HATCH:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are at"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "come to"
|
||||
?CND4: PRINTI " the midship hatch of the Montana. The trough wall rises sharply to the east and the missile hatch is to the fore. Through the hatch is the attack center.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-LG-MIDSHIP-HATCH:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTR " The hatch is a heavy, circular lid with a handle in the middle. Because the sub is resting on its side, the hinges are at the top."
|
||||
?CCL5: EQUAL? PRSA,V?OPEN \?CCL7
|
||||
FSET? LG-MIDSHIP-HATCH,FL-OPEN \?CCL10
|
||||
CALL RT-ALREADY-MSG,PRSO,STR?93
|
||||
RSTACK
|
||||
?CCL10: PRINTR " You grab the handle and try to lift the hatch, but only succeed in pushing yourself down in the water."
|
||||
?CCL7: EQUAL? PRSA,V?CLOSE \FALSE
|
||||
FSET? LG-MIDSHIP-HATCH,FL-OPEN /?CCL15
|
||||
CALL RT-ALREADY-MSG,PRSO,STR?79
|
||||
RSTACK
|
||||
?CCL15: PRINTR " You can't close the hatch against the buoyancy of the lift bag."
|
||||
|
||||
|
||||
.FUNCT RT-TO-TRENCH-BOTTOM:ANY:0:0,QUIET
|
||||
ZERO? QUIET /?CCL3
|
||||
RETURN RM-TRENCH-BOTTOM
|
||||
?CCL3: IN? TH-FBS-SUIT,CH-PLAYER \?CTR4
|
||||
FSET? TH-FBS-SUIT,FL-WORN /?CCL5
|
||||
?CTR4: PRINTI " You can't go down that deep with a regular dry suit.
|
||||
"
|
||||
RFALSE
|
||||
?CCL5: RETURN RM-TRENCH-BOTTOM
|
||||
|
||||
|
||||
.FUNCT RT-RM-MISSILE-HATCH:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are at"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "come to"
|
||||
?CND4: PRINTI " the missile hatch of the Montana. To the aft is the midship hatch, and the bow lies foreward.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-MISSILE:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-MISSILE-TIMER:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-MISSILE-PANEL:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-WIRES:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTR " The wires are red, green, orange, yellow, blue, and white."
|
||||
?CCL5: EQUAL? PRSA,V?CUT \FALSE
|
||||
PRINTI "[You must specify which wire you want to cut.]
|
||||
"
|
||||
RETURN 2
|
||||
|
||||
|
||||
.FUNCT RT-TH-WIRE:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?CUT \FALSE
|
||||
EQUAL? PRSI,TH-KNIFE \?CCL8
|
||||
PRINTR "The wires are too close together to get the large blade of your knife between them."
|
||||
?CCL8: EQUAL? PRSI,TH-WIRE-CUTTERS \FALSE
|
||||
FSET? PRSO,FL-BROKEN \?CCL13
|
||||
CALL2 RT-ALREADY-MSG,STR?126
|
||||
RSTACK
|
||||
?CCL13: CALL2 RT-CORRECT-WIRE?,PRSO
|
||||
ZERO? STACK /?CCL15
|
||||
FSET PRSO,FL-BROKEN
|
||||
INC 'GL-WIRES-CUT
|
||||
EQUAL? GL-WIRES-CUT,6 \?CCL18
|
||||
SET 'GL-FALLING-INTO-TRENCH?,TRUE-VALUE
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-INTO-TRENCH-1,STACK
|
||||
PRINTR " You hold your breath and cut the last wire. Nothing happens. Lindsey smiles at you and gives you a big thumbs up.
|
||||
Lindsey pats you on the back and then starts to climb back into the Cab. The sudden imbalance makes it wobble precariously. Suddenly you realize that it is slipping off the curved side of the sub! Desperately, you make a lunge for the hatch to try to scramble inside, but it's too late. The Cab is falling into the trench, and you are going to be dragged along with it."
|
||||
?CCL18: PRINTI " You cut"
|
||||
ICALL RT-PRINT-OBJ,PRSO,K-ART-THE
|
||||
PRINTR "."
|
||||
?CCL15: PRINTI " The explosion is so instantaneous and so massive that you have no sensation of dying. You simply cease to be.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-CORRECT-WIRE?:ANY:1:1,WIRE
|
||||
ZERO? GL-WIRE-SEQUENCE /FALSE
|
||||
EQUAL? PRSO,TH-RED-WIRE \?CCL5
|
||||
EQUAL? GL-WIRE-SEQUENCE,1,4 \?CCL8
|
||||
FSET? TH-ORANGE-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL8: EQUAL? GL-WIRE-SEQUENCE,2 \?CCL13
|
||||
FSET? TH-YELLOW-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL13: EQUAL? GL-WIRE-SEQUENCE,3 \FALSE
|
||||
FSET? TH-GREEN-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL5: EQUAL? PRSO,TH-BLUE-WIRE \?CCL23
|
||||
EQUAL? GL-WIRE-SEQUENCE,1,2 \?CCL26
|
||||
FSET? TH-GREEN-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL26: EQUAL? GL-WIRE-SEQUENCE,3 \?CCL31
|
||||
FSET? TH-WHITE-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL31: EQUAL? GL-WIRE-SEQUENCE,4 \FALSE
|
||||
FSET? TH-YELLOW-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL23: EQUAL? PRSO,TH-GREEN-WIRE \?CCL41
|
||||
EQUAL? GL-WIRE-SEQUENCE,1 \?CCL44
|
||||
FSET? TH-RED-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL44: EQUAL? GL-WIRE-SEQUENCE,2 \TRUE
|
||||
FSET? TH-ORANGE-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL41: EQUAL? PRSO,TH-YELLOW-WIRE \?CCL54
|
||||
EQUAL? GL-WIRE-SEQUENCE,1,4 \?CCL57
|
||||
FSET? TH-WHITE-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL57: EQUAL? GL-WIRE-SEQUENCE,2 /TRUE
|
||||
EQUAL? GL-WIRE-SEQUENCE,3 \FALSE
|
||||
FSET? TH-ORANGE-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL54: EQUAL? PRSO,TH-ORANGE-WIRE \?CCL69
|
||||
EQUAL? GL-WIRE-SEQUENCE,1 /TRUE
|
||||
EQUAL? GL-WIRE-SEQUENCE,2 \?CCL74
|
||||
FSET? TH-WHITE-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL74: EQUAL? GL-WIRE-SEQUENCE,3 \?CCL79
|
||||
FSET? TH-RED-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL79: EQUAL? GL-WIRE-SEQUENCE,4 \FALSE
|
||||
FSET? TH-BLUE-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL69: EQUAL? PRSO,TH-WHITE-WIRE \FALSE
|
||||
EQUAL? GL-WIRE-SEQUENCE,1 \?CCL92
|
||||
FSET? TH-BLUE-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL92: EQUAL? GL-WIRE-SEQUENCE,2 \?CCL97
|
||||
FSET? TH-RED-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL97: EQUAL? GL-WIRE-SEQUENCE,3 \?CCL102
|
||||
FSET? TH-YELLOW-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
?CCL102: EQUAL? GL-WIRE-SEQUENCE,4 \FALSE
|
||||
FSET? TH-GREEN-WIRE,FL-BROKEN /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-WIRE-CUTTERS:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-I-INTO-TRENCH-1:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-INTO-TRENCH-2,STACK
|
||||
PRINTR " The hookah line goes taut and drags you down after the sub. A quick glance to your right reveals that Lindsey's hookah has caught on the Cab's open hatch and she is being dragged down too. Your chest begins to tighten under the additional pressure. If you don't do something quickly, you will die."
|
||||
|
||||
|
||||
.FUNCT RT-I-INTO-TRENCH-2:ANY:0:0
|
||||
PRINTI " The cab pulls you deeper and deeper. Suddenly you feel a massive pain in your chest and you black out. The last thing you see before dying is Lindsey's hand reaching toward you for help.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-I-OUT-OF-AIR-1:ANY:0:0
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-OUT-OF-AIR-2,STACK
|
||||
PRINTR " You can't hold your breath much longer."
|
||||
|
||||
|
||||
.FUNCT RT-I-OUT-OF-AIR-2:ANY:0:0
|
||||
MOVE CH-PLAYER,RM-SUB-BAY
|
||||
MOVE TH-DRY-SUIT,RM-SUB-BAY
|
||||
FCLEAR TH-DRY-SUIT,FL-WORN
|
||||
FCLEAR TH-DIVE-LOCKER,FL-LOCKED
|
||||
FSET TH-DIVE-LOCKER,FL-OPEN
|
||||
MOVE CH-HIPPY,RM-SUB-BAY
|
||||
MOVE CH-CATFISH,RM-SUB-BAY
|
||||
PRINTR " You realize that you can't hold your breath any longer and that you are going to die. Your chest aches, and you see bright lights dancing before your eyes. But all you can think of is Lindsey's face as she disappeared into the trough. Just when you think you are going to pass out, you notice that the lights seem to be clustering around you, pushing you gently back towards Deepcore. Unable to hold the air any longer, you expel it and expect to inhale a mouthful of water. Instead you discover that you can breathe quite normally.
|
||||
You reach out to touch the lights, but your hand passes right through them. After a few moments, you relax and enjoy the ride. Soon you find yourself approaching Deepcore. The lights stay with you until you surface inside the MoonPool, and then they streak away back toward the trench.
|
||||
Catfish grabs your hand and hoists you to firm ground as easily as if you were a child. He helps you out of your dive suit and into dry clothes. He says that he thinks that there is some kind of benevolent alien at the bottom of the Trench, and that Lindsey's monitoring system shows she is still alive, down near the bottom of the trench.
|
||||
Hippy comes in and says, ""I think I can open this locker now."" He holds an electronic device near the lock, and the locker pops open. Inside it is the fluid breathing system suit."
|
||||
|
||||
|
||||
.FUNCT RT-RM-BOW:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are at"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "come to"
|
||||
?CND4: PRINTI " the bow of the Montana. The missile hatch is aft of here. You see the huge gash that was the Montana's death wound. When we get graphics into the game you will only be able to fly the ROV in here. But for now, come on in!
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-TORPEDO-ROOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: PRINTI " the Montana's torpedo room. Foreward lies the gash in the hull and aft is the engine room.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-ENGINE-ROOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: PRINTI " the engine room of the Montana. The torpedo room is foreward, and aft is the missile launching room.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-MISSILE-ROOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: PRINTI " the missile launching room. On the wall hangs the missile access key.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-MISSILE-ACCESS-KEY:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-ATTACK-CENTER:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK \?CCL3
|
||||
PRINTR " Cautiously, you swim through the hatch. You pull yourself along by the rungs on the ladder, and then find yourself in the attack center. Your helmet light reveals an eerie scene of floating debris and lop-sided high-tech wreckage. You fight off the disorientation caused by everything being on its side, and then locate the body of the captain and confirm that the missile access key has been removed from his neck. Fighting the urge to vomit, you turn away and see a companionway leading aft."
|
||||
?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL8
|
||||
PRINTI "are in"
|
||||
RFALSE
|
||||
?CCL8: EQUAL? OHERE,RM-MIDSHIP-HATCH \?CCL10
|
||||
PRINTI "swim through the hatch to the attack center. Aft, you see a companionway leading into the darkness.
|
||||
"
|
||||
RFALSE
|
||||
?CCL10: PRINTI "enter the attack center. Above you is the midship hatch and the sonar shack lies aft.
|
||||
"
|
||||
RFALSE
|
||||
?CCL5: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-SONAR-ROOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK \?CCL3
|
||||
PRINTR " Slowly, you swim through the doorway and come to the sonar room. The sonarman is slewed sideways, still strapped into his chair. He stares at the broken screen through blank eyes.
|
||||
Doors here lead fore and aft."
|
||||
?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL8
|
||||
PRINTI "are in"
|
||||
JUMP ?CND6
|
||||
?CCL8: PRINTI "enter"
|
||||
?CND6: PRINTI " the sonar room. Doors here lead fore and aft.
|
||||
"
|
||||
RFALSE
|
||||
?CCL5: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-COMM-ROOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK \?CCL3
|
||||
PRINTR " You swim into the communications room, which was stacked floor to ceiling with high-tech equipment. The door in the aft bulkhead has buckled and looks as if it is jammed shut."
|
||||
?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL8
|
||||
PRINTI "are in"
|
||||
JUMP ?CND6
|
||||
?CCL8: PRINTI "enter"
|
||||
?CND6: PRINTI " the communications room. The sonar shack is to the fore and aft lies a corridor.
|
||||
"
|
||||
RFALSE
|
||||
?CCL5: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-THRU-BUCKLED-DOOR:ANY:0:1,QUIET
|
||||
FSET? LG-BUCKLED-DOOR,FL-OPEN \?CCL3
|
||||
RETURN RM-SUB-CORRIDOR
|
||||
?CCL3: ZERO? QUIET \FALSE
|
||||
PRINTI " You push up against the door. It gives a little, and then refuses to budge.
|
||||
"
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-LG-BUCKLED-DOOR:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
PRINTR " The door in the aft bulkhead has buckled and looks as if it is jammed shut."
|
||||
?CCL5: EQUAL? PRSA,V?PUSH,V?OPEN \FALSE
|
||||
PRINTI " You push up against the door. It gives a little, and then refuses to budge.
|
||||
"
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-RM-SUB-CORRIDOR:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK \?CCL3
|
||||
PRINTR " You enter a corridor that leads into the heart of the submarine. Below you is an open door leading into a stateroom. Only a few feet beyond the door, the floor starts to pinch in to meet the ceiling where the corridor has been crushed like the end of a paper towel roll."
|
||||
?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL8
|
||||
PRINTI "are in"
|
||||
JUMP ?CND6
|
||||
?CCL8: PRINTI "enter"
|
||||
?CND6: PRINTI " a corridor. The comm room is foreward and below you is the captain's quarters.
|
||||
"
|
||||
RFALSE
|
||||
?CCL5: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-CAPTAINS-ROOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK \?CCL3
|
||||
PRINTR " You swim down into the room below you, which turns out to be the captain's stateroom. The room is curiously untouched by the disaster. Except for the fact that everything has rotated ninety degrees, it is as neat and tidy as if it were awaiting an admiral's inspection. The bunk is made. Interestingly enough, the framed photograph on the wall doesn't seem to have shifted position, even though the sub is lying on its side."
|
||||
?CCL3: EQUAL? CONTEXT,M-V-LOOK,M-LOOK \?CCL5
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL8
|
||||
PRINTI "are in"
|
||||
JUMP ?CND6
|
||||
?CCL8: PRINTI "enter"
|
||||
?CND6: PRINTI " the captain's stateroom. Above you is a corridor.
|
||||
"
|
||||
RFALSE
|
||||
?CCL5: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-PHOTOGRAPH:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
FSET TH-PHOTOGRAPH,FL-SEEN
|
||||
PRINTR " The picture is of the same man whose body you saw in the control room. He is standing with his arm around a woman, and they are both smiling into the camera. At the bottom is scrawled, ""Twenty years before the mast. June 30, 1989. Love, Helen."""
|
||||
?CCL5: EQUAL? PRSA,V?LOOK-BEHIND \FALSE
|
||||
FSET? TH-SAFE,FL-SEEN \?CCL10
|
||||
PRINTR " Behind the picture is the wall safe."
|
||||
?CCL10: FSET TH-SAFE,FL-SEEN
|
||||
MOVE TH-SAFE,RM-CAPTAINS-ROOM
|
||||
PRINTR " You push aside the picture and discover a wall safe."
|
||||
|
||||
|
||||
.FUNCT RT-TH-SAFE:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
CALL NOUN-USED?,TH-SAFE,W?DIAL
|
||||
ZERO? STACK /?CCL5
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL8
|
||||
PRINTI " The dial is turned to "
|
||||
PRINTN GL-SAFE-NUM
|
||||
PRINTR "."
|
||||
?CCL8: EQUAL? PRSA,V?TURN \?CCL10
|
||||
RANDOM 101
|
||||
SUB STACK,1 >GL-SAFE-NUM
|
||||
PRINTR " You spin the dial."
|
||||
?CCL10: EQUAL? PRSA,V?TURN-TO \FALSE
|
||||
EQUAL? PRSI,INTNUM \FALSE
|
||||
LESS? P-NUMBER,0 /?CTR17
|
||||
GRTR? P-NUMBER,100 \?CCL18
|
||||
?CTR17: PRINTR " The dial can only be turned to numbers between 0 and 100, inclusive."
|
||||
?CCL18: PRINTI " You turn the dial to "
|
||||
PRINTN P-NUMBER
|
||||
PRINTC 46
|
||||
FSET? TH-SAFE,FL-OPEN /?CND21
|
||||
EQUAL? P-NUMBER,30 \?CCL24
|
||||
EQUAL? GL-SAFE-NUM,6 \?CCL27
|
||||
FSET TH-SAFE,FL-ON
|
||||
JUMP ?CND21
|
||||
?CCL27: FCLEAR TH-SAFE,FL-ON
|
||||
JUMP ?CND21
|
||||
?CCL24: EQUAL? P-NUMBER,69 \?CND21
|
||||
EQUAL? GL-SAFE-NUM,30 \?CCL31
|
||||
FSET? TH-SAFE,FL-ON \?CCL31
|
||||
FCLEAR TH-SAFE,FL-ON
|
||||
FCLEAR TH-SAFE,FL-LOCKED
|
||||
FSET TH-SAFE,FL-OPEN
|
||||
PRINTI " The safe door opens."
|
||||
CALL2 RT-SEE-ANYTHING-IN?,TH-SAFE
|
||||
ZERO? STACK /?CND21
|
||||
PRINTI " Inside you see"
|
||||
ICALL2 RT-PRINT-CONTENTS,TH-SAFE
|
||||
PRINTC 46
|
||||
JUMP ?CND21
|
||||
?CCL31: FCLEAR TH-SAFE,FL-ON
|
||||
?CND21: SET 'GL-SAFE-NUM,P-NUMBER
|
||||
CRLF
|
||||
RTRUE
|
||||
?CCL5: EQUAL? PRSA,V?CLOSE \?CCL37
|
||||
FSET? TH-SAFE,FL-OPEN \FALSE
|
||||
FCLEAR TH-SAFE,FL-OPEN
|
||||
FSET TH-SAFE,FL-LOCKED
|
||||
RANDOM 101
|
||||
SUB STACK,1 >GL-SAFE-NUM
|
||||
PRINTR " You close the safe and spin the dial."
|
||||
?CCL37: EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINTR " The safe is a combination safe with numbers on the dial from 0 to 100."
|
||||
|
||||
|
||||
.FUNCT RT-TH-PLASTIC-CARD:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
||||
PRINTR " The card has row after row of meaningless numbers written on it."
|
||||
|
||||
|
||||
.FUNCT RT-TH-PLASTIQUE:ANY:0:1,CONTEXT,OBJ,V
|
||||
ZERO? CONTEXT \FALSE
|
||||
ZERO? NOW-PRSI \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL7
|
||||
PRINTI " The plastique is a flat package with some sticky, two-sided tape on the bottom."
|
||||
IN? TH-DETONATOR,TH-PLASTIQUE \?CND8
|
||||
PRINTR " There is a detonator attached to it."
|
||||
?CND8: CRLF
|
||||
RTRUE
|
||||
?CCL7: EQUAL? PRSA,V?PUT,V?ATTACH \?CCL11
|
||||
EQUAL? PRSI,LG-BUCKLED-DOOR \FALSE
|
||||
MOVE TH-PLASTIQUE,HERE
|
||||
PUTP TH-PLASTIQUE,P?OWNER,LG-BUCKLED-DOOR
|
||||
PRINTR " You stick the plastique to the door."
|
||||
?CCL11: EQUAL? PRSA,V?TAKE \FALSE
|
||||
GETP TH-PLASTIQUE,P?OWNER >OBJ
|
||||
ZERO? OBJ /FALSE
|
||||
CALL1 ITAKE >V
|
||||
EQUAL? V,M-FATAL \?CCL22
|
||||
RETURN 2
|
||||
?CCL22: ZERO? V /FALSE
|
||||
PUTP TH-PLASTIQUE,P?OWNER,FALSE-VALUE
|
||||
PRINTI " You remove the plastique from"
|
||||
ICALL RT-PRINT-OBJ,OBJ,K-ART-THE
|
||||
PRINTR "."
|
||||
|
||||
|
||||
.FUNCT RT-TH-DETONATOR:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL5
|
||||
CALL NOUN-USED?,TH-DETONATOR,W?DIAL,W?TIMER
|
||||
ZERO? STACK /?CCL8
|
||||
PRINTI " The dial is set to "
|
||||
PRINTN GL-DETONATOR-TIME
|
||||
PRINTR "."
|
||||
?CCL8: CALL NOUN-USED?,TH-DETONATOR,W?SWITCH
|
||||
ZERO? STACK /?CCL10
|
||||
PRINTI " The switch is "
|
||||
FSET? TH-DETONATOR,FL-ON \?CCL13
|
||||
PRINTI "on"
|
||||
JUMP ?CND11
|
||||
?CCL13: PRINTI "off"
|
||||
?CND11: PRINTR "."
|
||||
?CCL10: PRINTR " The detonator is deceptively innocent looking. It has a timer that is calibrated in units of 5 from 10 to 60. Below the face of the timer is a single switch."
|
||||
?CCL5: EQUAL? PRSA,V?PUT,V?PUT-IN,V?ATTACH \?CCL15
|
||||
EQUAL? PRSO,TH-DETONATOR \FALSE
|
||||
EQUAL? PRSI,TH-PLASTIQUE \FALSE
|
||||
MOVE TH-DETONATOR,TH-PLASTIQUE
|
||||
PRINTR " You firmly imbed the prongs of the detonator into the plastique."
|
||||
?CCL15: EQUAL? PRSA,V?TURN-TO \?CCL22
|
||||
EQUAL? PRSI,INTNUM \?CTR24
|
||||
LESS? P-NUMBER,10 /?CTR24
|
||||
GRTR? P-NUMBER,60 /?CTR24
|
||||
MOD P-NUMBER,5
|
||||
ZERO? STACK /?CCL25
|
||||
?CTR24: PRINTI " The timer can only be set in increments of 5 between the numbers of 10 and 60, inclusive.
|
||||
"
|
||||
RETURN 2
|
||||
?CCL25: SET 'GL-DETONATOR-TIME,P-NUMBER
|
||||
PRINTI " You set the dial to "
|
||||
PRINTN P-NUMBER
|
||||
PRINTR "."
|
||||
?CCL22: EQUAL? PRSA,V?LISTEN \?CCL33
|
||||
FSET? TH-DETONATOR,FL-ON \FALSE
|
||||
PRINTR " You hear a faint whirring."
|
||||
?CCL33: EQUAL? PRSA,V?TURN-ON \?CCL38
|
||||
FSET? TH-DETONATOR,FL-ON \?CCL41
|
||||
CALL2 RT-ALREADY-MSG,STR?127
|
||||
RSTACK
|
||||
?CCL41: FSET TH-DETONATOR,FL-ON
|
||||
MUL GL-DETONATOR-TIME,2
|
||||
ADD GL-MOVES,STACK
|
||||
ICALL RT-QUEUE,RT-I-DETONATOR,STACK
|
||||
PRINTR " You turn the switch and hear a faint whirr."
|
||||
?CCL38: EQUAL? PRSA,V?TURN-OFF \FALSE
|
||||
FSET? TH-DETONATOR,FL-ON /?CCL46
|
||||
CALL2 RT-ALREADY-MSG,STR?128
|
||||
RSTACK
|
||||
?CCL46: FCLEAR TH-DETONATOR,FL-ON
|
||||
ICALL2 RT-DEQUEUE,RT-I-DETONATOR
|
||||
SET 'GL-DETONATOR-TIME,10
|
||||
PRINTR " You turn off the detonator. The timer resets itself to ten minutes."
|
||||
|
||||
|
||||
.FUNCT RT-I-DETONATOR:ANY:0:1,CONTEXT,L,M
|
||||
LOC TH-PLASTIQUE >L
|
||||
CALL2 META-LOC,TH-PLASTIQUE >M
|
||||
IN? TH-DETONATOR,TH-PLASTIQUE \?CCL3
|
||||
REMOVE TH-PLASTIQUE
|
||||
FSET? M,FL-WATER \?CCL6
|
||||
FSET? M,FL-INDOORS \?CCL6
|
||||
FSET? HERE,FL-WATER \?CCL6
|
||||
FSET? HERE,FL-INDOORS \?CCL6
|
||||
EQUAL? HERE,M \?CCL13
|
||||
PRINTI " Suddenly you see a bright flash. An enormous shock wave slams into you and instantly kills you.
|
||||
"
|
||||
JUMP ?CND11
|
||||
?CCL13: PRINTI " Suddenly you hear a muffled explosion. Seconds later an enormous shock wave slams you up against a bulkhead and kills you.
|
||||
"
|
||||
?CND11: CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL6: EQUAL? L,RM-COMM-ROOM \?CCL15
|
||||
GETP TH-PLASTIQUE,P?OWNER
|
||||
EQUAL? STACK,LG-BUCKLED-DOOR \?CCL15
|
||||
FSET LG-BUCKLED-DOOR,FL-OPEN
|
||||
CALL GLOBAL-IN?,LG-MONTANA,HERE
|
||||
ZERO? STACK /?CCL20
|
||||
PRINTR " Suddenly you hear a muffled explosion. The Montana seems to rock for a moment, and then settle back into its former position on the ledge."
|
||||
?CCL20: PRINTR " From far away, you hear a muffled thud. The plastique must have gone off inside the Montana."
|
||||
?CCL15: FSET? M,FL-WATER \?CCL22
|
||||
FSET? M,FL-INDOORS \?CCL25
|
||||
CALL GLOBAL-IN?,LG-MONTANA,HERE
|
||||
ZERO? STACK /?CCL28
|
||||
PRINTI " Suddenly you hear a muffled explosion. The Montana seems to rock for a moment, and then it slides off the ledge and plummets into the chasm!"
|
||||
JUMP ?CND26
|
||||
?CCL28: PRINTI " From far away, you hear a muffled thud. The plastique must have gone off inside the Montana. Unbeknownst to you, the blast jars loose the submarine, and it falls into the chasm."
|
||||
?CND26: PRINTI " Seconds later, the sub slams against the wall of the chasm, ripping off the timing device, and igniting the nuclear warhead. Everything nearby is instantly vaporized, including you.
|
||||
"
|
||||
CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL25: PRINTR " The plastique goes ""BOOM"" in the water."
|
||||
?CCL22: FSET? HERE,FL-WATER /?CCL31
|
||||
PRINTI " Suddenly, a huge explosion rips through Deepcore, killing you before you even have time to figure out what caused it.
|
||||
"
|
||||
JUMP ?CND29
|
||||
?CCL31: PRINTI " Suddenly, a huge explosion rips through Deepcore, causing you to lose the will to live.
|
||||
"
|
||||
?CND29: CALL1 RT-END-OF-GAME
|
||||
RSTACK
|
||||
?CCL3: CALL2 ACCESSIBLE?,TH-DETONATOR
|
||||
ZERO? STACK /FALSE
|
||||
FCLEAR TH-DETONATOR,FL-ON
|
||||
SET GL-DETONATOR-TIME,10
|
||||
PRINTR " The detonator makes a faint 'click'."
|
||||
|
||||
.ENDI
|
1525
montana.zil
Normal file
1525
montana.zil
Normal file
File diff suppressed because it is too large
Load diff
42
mpf.out
Normal file
42
mpf.out
Normal file
|
@ -0,0 +1,42 @@
|
|||
makepicf of 3/14/89 11:50.
|
||||
Generating picture file for mac for abyss.
|
||||
IFF format.
|
||||
Huffing enabled.
|
||||
Pictures will be huffed together.
|
||||
1: new file.
|
||||
Extract: (16, 8) to (135, 15).
|
||||
No background color allowed.
|
||||
1: new picture from gauge.lbm.
|
||||
Loading from IFF file.
|
||||
Extract: (16, 24) to (135, 31).
|
||||
No background color allowed.
|
||||
2: new picture from gauge.lbm.
|
||||
Loading from IFF file.
|
||||
Extract: (16, 40) to (135, 47).
|
||||
No background color allowed.
|
||||
3: new picture from gauge.lbm.
|
||||
Loading from IFF file.
|
||||
Extract: (16, 56) to (135, 63).
|
||||
No background color allowed.
|
||||
4: new picture from gauge.lbm.
|
||||
Loading from IFF file.
|
||||
Extract: (44, 73) to (45, 78).
|
||||
No background color allowed.
|
||||
5: new picture from gauge.lbm.
|
||||
Loading from IFF file.
|
||||
Extract: (58, 73) to (59, 78).
|
||||
No background color allowed.
|
||||
6: new picture from gauge.lbm.
|
||||
Loading from IFF file.
|
||||
Opening variable file abyss-pix.zil.
|
||||
6 pictures; 1 file.
|
||||
17152 allocated so far.
|
||||
Building file 1; 6 pictures.
|
||||
Writing picture files to /home/development/curpix.
|
||||
File version is 1.
|
||||
File size is 476.
|
||||
3864 pixels; 92 picture data; 384 overhead.
|
||||
188 bytes huffed to 92.
|
||||
Checksum: 4d43
|
||||
Used 6
|
||||
Elapsed time 8
|
25
ocean.zabstr
Normal file
25
ocean.zabstr
Normal file
|
@ -0,0 +1,25 @@
|
|||
|
||||
<ROOM RM-UNDER-MOONPOOL (LOC ROOMS) (DESC "under moonpool") (FLAGS FL-LIGHTED
|
||||
FL-SURFACE FL-WATER) (UP TO RM-SUB-BAY) (IN TO RM-SUB-BAY) (NORTH TO
|
||||
RM-OCEAN-NORTH) (WEST TO RM-OCEAN-WEST) (SOUTH TO RM-OCEAN-SOUTH) (GLOBAL
|
||||
TH-MOON-POOL LG-DEEPCORE RM-SUB-BAY) (ACTION RT-RM-UNDER-MOONPOOL)>
|
||||
<DEFINE-ROUTINE RT-RM-UNDER-MOONPOOL>
|
||||
<ROOM RM-OCEAN-NORTH (LOC ROOMS) (DESC "ocean floor") (FLAGS FL-LIGHTED
|
||||
FL-SURFACE FL-WATER) (SYNONYM FLOOR OCEAN) (ADJECTIVE OCEAN) (SOUTH TO
|
||||
RM-UNDER-MOONPOOL) (GLOBAL LG-DEEPCORE) (ACTION RT-RM-OCEAN-NORTH)>
|
||||
<DEFINE-ROUTINE RT-RM-OCEAN-NORTH>
|
||||
<ROOM RM-OCEAN-SOUTH (LOC ROOMS) (DESC "ocean floor") (FLAGS FL-LIGHTED
|
||||
FL-SURFACE FL-WATER) (SYNONYM FLOOR OCEAN) (ADJECTIVE OCEAN) (NORTH TO
|
||||
RM-UNDER-MOONPOOL) (GLOBAL LG-DEEPCORE) (ACTION RT-RM-OCEAN-SOUTH)>
|
||||
<DEFINE-ROUTINE RT-RM-OCEAN-SOUTH>
|
||||
<ROOM RM-OCEAN-WEST (LOC ROOMS) (DESC "ocean floor") (FLAGS FL-LIGHTED
|
||||
FL-SURFACE FL-WATER) (SYNONYM FLOOR OCEAN) (ADJECTIVE OCEAN) (EAST TO
|
||||
RM-UNDER-MOONPOOL) (WEST PER RT-SWIM-TO-FROM-TRENCH) (GLOBAL LG-DEEPCORE) (
|
||||
ACTION RT-RM-OCEAN-WEST)>
|
||||
<DEFINE-ROUTINE RT-RM-OCEAN-WEST>
|
||||
<DEFINE-ROUTINE RT-SWIM-TO-FROM-TRENCH>
|
||||
<ROOM RM-TROUGH-LIP (LOC ROOMS) (DESC "trough lip") (FLAGS FL-LIGHTED FL-WATER)
|
||||
(SYNONYM LIP) (ADJECTIVE TROUGH) (DOWN TO RM-MIDSHIP-HATCH) (WEST TO
|
||||
RM-MIDSHIP-HATCH) (EAST PER RT-SWIM-TO-FROM-TRENCH) (GLOBAL LG-TROUGH
|
||||
LG-MONTANA LG-DEEPCORE) (ACTION RT-RM-TROUGH-LIP)>
|
||||
<DEFINE-ROUTINE RT-RM-TROUGH-LIP>
|
129
ocean.zap
Normal file
129
ocean.zap
Normal file
|
@ -0,0 +1,129 @@
|
|||
|
||||
|
||||
.FUNCT RT-RM-UNDER-MOONPOOL:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTC TAB
|
||||
PRINTI "You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "arrive"
|
||||
?CND4: PRINTI " under the moonpool.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-OCEAN-NORTH:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTC TAB
|
||||
PRINTI "You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are on"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "proceed along"
|
||||
?CND4: PRINTI " the ocean floor. Deepcore is to the south.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-OCEAN-SOUTH:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTC TAB
|
||||
PRINTI "You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are on"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "proceed along"
|
||||
?CND4: PRINTI " the ocean floor. Deepcore is to the north.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-RM-OCEAN-WEST:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTC TAB
|
||||
PRINTI "You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are on"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "proceed along"
|
||||
?CND4: PRINTI " the ocean floor. Looking east, you see Deepcore, an island of light in the vast blackness. The crane, now only a mass of twisted metal, hangs crookedly off the starboard cylinders.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: EQUAL? CONTEXT,M-BEG \?CCL8
|
||||
EQUAL? PRSA,V?WALK-TO \FALSE
|
||||
EQUAL? PRSO,LG-MONTANA \FALSE
|
||||
CALL2 RT-DO-WALK,P?WEST
|
||||
RSTACK
|
||||
?CCL8: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-SWIM-TO-FROM-TRENCH:ANY:0:1,QUIET,N
|
||||
ZERO? QUIET \?CND1
|
||||
PRINTC TAB
|
||||
PRINTI "You swim along the ocean floor, pausing every few moments to take your bearings and consult your compass.
|
||||
"
|
||||
ADD GL-MOVES,43 >GL-MOVES
|
||||
ICALL1 CLOCKER
|
||||
?CND1: EQUAL? HERE,RM-OCEAN-WEST /?CTR4
|
||||
RETURN RM-OCEAN-WEST
|
||||
?CTR4: RETURN RM-TROUGH-LIP
|
||||
|
||||
|
||||
.FUNCT RT-RM-TROUGH-LIP:ANY:0:1,CONTEXT,N
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTC TAB
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "You are at"
|
||||
JUMP ?CND4
|
||||
?CCL6: EQUAL? OHERE,RM-OCEAN-WEST \?CCL8
|
||||
PRINTI "Eventually, you come to the jagged edge of a chasm that extends to the north and south. Looking down, you see the murky outline of the Montana, perched on a ledge below you.
|
||||
"
|
||||
RFALSE
|
||||
?CCL8: PRINTI "You come to"
|
||||
?CND4: PRINTI " the lip of the Cayman trough. Just below, you can see the Montana. Deepcore lies east of here.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: EQUAL? CONTEXT,M-ENTERED \?CCL10
|
||||
EQUAL? OHERE,RM-OCEAN-WEST \FALSE
|
||||
PRINTC TAB
|
||||
PRINTI "Automatically, you glance at your watch. The journey over from Deepcore took about twenty two minutes and you have"
|
||||
SUB GL-PLAYER-TEMP,K-TEMP-LOW-4
|
||||
DIV STACK,20 >N
|
||||
ICALL2 RT-WORD-NUMBERS,N
|
||||
PRINTI " minute"
|
||||
EQUAL? N,1 /?CND14
|
||||
PRINTC 115
|
||||
?CND14: PRINTI " left before hypothermia sets in. A quick calculation reveals that you have "
|
||||
SUB N,22 >N
|
||||
LESS? N,0 \?CCL18
|
||||
PRINTI "insufficient time to make it back to Deepcore.
|
||||
"
|
||||
RTRUE
|
||||
?CCL18: ZERO? N \?CCL21
|
||||
PRINTI "no time"
|
||||
JUMP ?CND19
|
||||
?CCL21: PRINTI "only"
|
||||
ICALL2 RT-WORD-NUMBERS,N
|
||||
PRINTI " minute"
|
||||
EQUAL? N,1 /?CND19
|
||||
PRINTC 115
|
||||
?CND19: PRINTI " to explore the Montana before you must start back.
|
||||
"
|
||||
RTRUE
|
||||
?CCL10: EQUAL? CONTEXT,M-BEG \?CCL25
|
||||
EQUAL? PRSA,V?WALK-TO \FALSE
|
||||
EQUAL? PRSO,LG-DEEPCORE \FALSE
|
||||
CALL2 RT-DO-WALK,P?EAST
|
||||
RSTACK
|
||||
?CCL25: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
300
ocean.zil
Normal file
300
ocean.zil
Normal file
|
@ -0,0 +1,300 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : OCEAN.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 20 Mar 1989 8:45:12 $"
|
||||
; "rev : $Revision: 1.7 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Ocean floor"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-UNDER-MOONPOOL"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<ROOM RM-UNDER-MOONPOOL
|
||||
(LOC ROOMS)
|
||||
(DESC "under moonpool")
|
||||
(FLAGS FL-LIGHTED FL-SURFACE FL-WATER)
|
||||
; (SYNONYM MOONPOOL)
|
||||
; (ADJECTIVE UNDER)
|
||||
(UP TO RM-SUB-BAY)
|
||||
(IN TO RM-SUB-BAY)
|
||||
(NORTH TO RM-OCEAN-NORTH)
|
||||
(WEST TO RM-OCEAN-WEST)
|
||||
(SOUTH TO RM-OCEAN-SOUTH)
|
||||
(GLOBAL TH-MOON-POOL LG-DEEPCORE RM-SUB-BAY)
|
||||
(ACTION RT-RM-UNDER-MOONPOOL)
|
||||
>
|
||||
|
||||
<ROUTINE RT-RM-UNDER-MOONPOOL ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL TAB "You ">
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "are">
|
||||
)
|
||||
(T
|
||||
<TELL "arrive">
|
||||
)
|
||||
>
|
||||
<TELL " under the moonpool.|">
|
||||
<RFALSE>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-OCEAN-NORTH"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<ROOM RM-OCEAN-NORTH
|
||||
(LOC ROOMS)
|
||||
(DESC "ocean floor")
|
||||
(FLAGS FL-LIGHTED FL-SURFACE FL-WATER)
|
||||
(SYNONYM FLOOR OCEAN)
|
||||
(ADJECTIVE OCEAN)
|
||||
(SOUTH TO RM-UNDER-MOONPOOL)
|
||||
(GLOBAL LG-DEEPCORE)
|
||||
(ACTION RT-RM-OCEAN-NORTH)
|
||||
>
|
||||
|
||||
<ROUTINE RT-RM-OCEAN-NORTH ("OPTIONAL" (CONTEXT <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL TAB "You ">
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "are on">
|
||||
)
|
||||
(T
|
||||
<TELL "proceed along">
|
||||
)
|
||||
>
|
||||
<TELL " the ocean floor. Deepcore is to the south.|">
|
||||
<RFALSE>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-OCEAN-SOUTH"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<ROOM RM-OCEAN-SOUTH
|
||||
(LOC ROOMS)
|
||||
(DESC "ocean floor")
|
||||
(FLAGS FL-LIGHTED FL-SURFACE FL-WATER)
|
||||
(SYNONYM FLOOR OCEAN)
|
||||
(ADJECTIVE OCEAN)
|
||||
(NORTH TO RM-UNDER-MOONPOOL)
|
||||
(GLOBAL LG-DEEPCORE)
|
||||
(ACTION RT-RM-OCEAN-SOUTH)
|
||||
>
|
||||
|
||||
<ROUTINE RT-RM-OCEAN-SOUTH ("OPTIONAL" (CONTEXT <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL TAB "You ">
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "are on">
|
||||
)
|
||||
(T
|
||||
<TELL "proceed along">
|
||||
)
|
||||
>
|
||||
<TELL " the ocean floor. Deepcore is to the north.|">
|
||||
<RFALSE>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-OCEAN-WEST"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<ROOM RM-OCEAN-WEST
|
||||
(LOC ROOMS)
|
||||
(DESC "ocean floor")
|
||||
(FLAGS FL-LIGHTED FL-SURFACE FL-WATER)
|
||||
(SYNONYM FLOOR OCEAN)
|
||||
(ADJECTIVE OCEAN)
|
||||
(EAST TO RM-UNDER-MOONPOOL)
|
||||
(WEST PER RT-SWIM-TO-FROM-TRENCH)
|
||||
(GLOBAL LG-DEEPCORE)
|
||||
(ACTION RT-RM-OCEAN-WEST)
|
||||
>
|
||||
|
||||
<ROUTINE RT-RM-OCEAN-WEST ("OPTIONAL" (CONTEXT <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL TAB "You ">
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "are on">
|
||||
)
|
||||
(T
|
||||
<TELL "proceed along">
|
||||
)
|
||||
>
|
||||
<TELL
|
||||
" the ocean floor. Looking east, you see Deepcore, an island of light
|
||||
in the vast blackness. The crane, now only a mass of twisted metal, hangs
|
||||
crookedly off the starboard cylinders.|"
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(<MC-CONTEXT? ,M-BEG>
|
||||
<COND
|
||||
(<AND <VERB? WALK-TO>
|
||||
<MC-PRSO? ,LG-MONTANA>
|
||||
>
|
||||
<RT-DO-WALK ,P?WEST>
|
||||
)
|
||||
>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-SWIM-TO-FROM-TRENCH ("OPT" (QUIET <>) "AUX" N)
|
||||
<COND
|
||||
(<NOT .QUIET>
|
||||
<TELL
|
||||
TAB "You swim along the ocean floor, pausing every few moments to take your
|
||||
bearings and consult your compass.|"
|
||||
>
|
||||
<SETG GL-MOVES <+ ,GL-MOVES 43>> ; "44 moves (22 min) minus one"
|
||||
<CLOCKER>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(<MC-HERE? ,RM-OCEAN-WEST>
|
||||
<RETURN ,RM-TROUGH-LIP>
|
||||
)
|
||||
(T
|
||||
<RETURN ,RM-OCEAN-WEST>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-TROUGH-LIP"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<ROOM RM-TROUGH-LIP
|
||||
(LOC ROOMS)
|
||||
(DESC "trough lip")
|
||||
(FLAGS FL-LIGHTED FL-WATER)
|
||||
(SYNONYM LIP)
|
||||
(ADJECTIVE TROUGH)
|
||||
(DOWN TO RM-MIDSHIP-HATCH)
|
||||
(WEST TO RM-MIDSHIP-HATCH)
|
||||
(EAST PER RT-SWIM-TO-FROM-TRENCH)
|
||||
(GLOBAL LG-TROUGH LG-MONTANA LG-DEEPCORE)
|
||||
(ACTION RT-RM-TROUGH-LIP)
|
||||
>
|
||||
|
||||
<ROUTINE RT-RM-TROUGH-LIP ("OPTIONAL" (CONTEXT <>) "AUX" N)
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL TAB>
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "You are at">
|
||||
)
|
||||
(<EQUAL? ,OHERE ,RM-OCEAN-WEST>
|
||||
<TELL
|
||||
"Eventually, you come to the jagged edge of a chasm that extends to the north
|
||||
and south. Looking down, you see the murky outline of the Montana, perched on
|
||||
a ledge below you.|"
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(T
|
||||
<TELL "You come to">
|
||||
)
|
||||
>
|
||||
<TELL
|
||||
" the lip of the Cayman trough. Just below, you can see the Montana. Deepcore
|
||||
lies east of here.|"
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(<MC-CONTEXT? ,M-ENTERED>
|
||||
<COND
|
||||
(<EQUAL? ,OHERE ,RM-OCEAN-WEST>
|
||||
<TELL
|
||||
TAB "Automatically, you glance at your watch. The journey over from Deepcore
|
||||
took about twenty two minutes and you have"
|
||||
>
|
||||
<SET N </ <- ,GL-PLAYER-TEMP ,K-TEMP-LOW-4> 20>>
|
||||
<TELL wn .N>
|
||||
<TELL " minute">
|
||||
<COND
|
||||
(<NOT <EQUAL? .N 1>>
|
||||
<TELL "s">
|
||||
)
|
||||
>
|
||||
<TELL
|
||||
" left before hypothermia sets in. A quick calculation reveals that you have "
|
||||
>
|
||||
<SET N <- .N 22>>
|
||||
<COND
|
||||
(<L? .N 0>
|
||||
<TELL "insufficient time to make it back to Deepcore.|">
|
||||
)
|
||||
(T
|
||||
<COND
|
||||
(<ZERO? .N>
|
||||
<TELL "no time">
|
||||
)
|
||||
(T
|
||||
<TELL "only" wn .N " minute">
|
||||
<COND
|
||||
(<NOT <EQUAL? .N 1>>
|
||||
<TELL "s">
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
<TELL " to explore the Montana before you must start back.|">
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<MC-CONTEXT? ,M-BEG>
|
||||
<COND
|
||||
(<AND <VERB? WALK-TO>
|
||||
<MC-PRSO? ,LG-DEEPCORE>
|
||||
>
|
||||
<RT-DO-WALK ,P?EAST>
|
||||
)
|
||||
>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
267
parser.zabstr
Normal file
267
parser.zabstr
Normal file
|
@ -0,0 +1,267 @@
|
|||
<FLAGS-AND-DEFAULTS (("LONG-WORDS" T)("UNDO" T)("P-DEBUGGING-PARSER" T)(
|
||||
"P-BE-VERB" T)("ONE-BYTE-PARTS-OF-SPEECH" %<>)("WORD-FLAGS-IN-TABLE" T)(
|
||||
"IN-ZILCH" T)) (("TELL-GWIM-MSG" "DEFS2" #WORD *01006570730*) ("QCONTEXT-CHECK"
|
||||
"DEFS" #WORD *03512635533*) ("COLLECTIVE-VERB?" "DEFS" #WORD *12337265607*) (
|
||||
"GAME-VERB?" "DEFS" #WORD *13713442223*) ("READ-INPUT" "DEFS" #WORD
|
||||
*13315277233*) ("STATUS-LINE" "DEFS" #WORD *32273775332*) ("TRYTAKEBIT" "DEFS"
|
||||
#WORD *37163230545*) ("TRANSBIT" "DEFS" #WORD *04126724227*) ("TOUCHBIT" "DEFS"
|
||||
#WORD *20633602015*) ("TAKEBIT" "DEFS" #WORD *02247224556*) ("SURFACEBIT"
|
||||
"DEFS" #WORD *25336654726*) ("SEARCHBIT" "DEFS" #WORD *06473661734*) (
|
||||
"ROOMSBIT" "DEFS" #WORD *32212654426*) ("PLURAL" "DEFS" #WORD *02362767724*) (
|
||||
"PLAYER" "DEFS" #WORD *07702724764*) ("PERSONBIT" "DEFS" #WORD *33273660774*) (
|
||||
"OPENBIT" "DEFS" #WORD *13113464424*) ("ONBIT" "DEFS" #WORD *21662644317*) (
|
||||
"NARTICLEBIT" "DEFS" #WORD *15044252200*) ("INVISIBLE" "DEFS" #WORD
|
||||
*13307541331*) ("FEMALE" "DEFS" #WORD *05062720704*) ("CONTBIT" "DEFS" #WORD
|
||||
*20466407540*))>
|
||||
|
||||
<ZZPACKAGE "PARSER">
|
||||
<ENTRY PARSER PARSE-SENTENCE PARSE-IT PARSER-ERROR TLEXV P-OFLAG P-WALK-DIR
|
||||
RED-SD>
|
||||
<RENTRY DEBUG-PARSER>
|
||||
<RENTRY ACCESSIBLE? BUZZER-WORD? DIR-VERB? FEMALE GLOBAL-OBJECTS LIT LIT? ONBIT
|
||||
OPENBIT P-INBUF P-LEXV P-NUMBER P?THINGS PERFORM PERSONBIT PLAYER
|
||||
PRINT-VOCAB-WORD SEARCHBIT SPECIAL-CONTRACTION? SURFACEBIT TAKEBIT TELL-CTHE
|
||||
TELL-THE TITLE-ABBR? TRANSBIT TRYTAKEBIT VERBOSITY VISIBLE? WINNER>
|
||||
<INCLUDE "BASEDEFS" "PBITDEFS" "PDEFS" "SYMBOLS">
|
||||
<USE "PSTACK" "PMEM">
|
||||
<FILE-FLAGS MDL-ZIL? CLEAN-STACK?>
|
||||
<BEGIN-SEGMENT 0>
|
||||
<COMPILATION-FLAG-DEFAULT P-APOSTROPHE-BREAKS-WORDS T>
|
||||
<COMPILATION-FLAG-DEFAULT P-BE-VERB <>>
|
||||
<DEFAULTS-DEFINED BE-PATIENT BEG-PARDON BUZZER-WORD? COLLECTIVE-VERB? CONTBIT
|
||||
DIR-VERB? FEMALE GAME-VERB? INVISIBLE LIT? NARTICLEBIT NUMBER? ONBIT OPENBIT
|
||||
P-NO-MEM-ROUTINE PERSONBIT PLAYER PLURAL QCONTEXT-CHECK READ-INPUT ROOMSBIT
|
||||
SEARCHBIT SEENBIT SPECIAL-CONTRACTION? STATUS-LINE SURFACEBIT TAKEBIT TELL-CTHE
|
||||
TELL-GWIM-MSG TELL-THE TITLE-ABBR? TOUCHBIT TRANSBIT TRYTAKEBIT UNKNOWN-WORD>
|
||||
<COND (<NOT <GASSIGNED? DEBUG-PARSER>> <SETG DEBUG-PARSER <>>)>
|
||||
<DEFAULT-DEFINITION CONTBIT T>
|
||||
<DEFAULT-DEFINITION FEMALE T>
|
||||
<DEFAULT-DEFINITION INVISIBLE T>
|
||||
<DEFAULT-DEFINITION NARTICLEBIT T>
|
||||
<DEFAULT-DEFINITION ONBIT T>
|
||||
<DEFAULT-DEFINITION OPENBIT T>
|
||||
<DEFAULT-DEFINITION PERSONBIT T>
|
||||
<DEFAULT-DEFINITION PLAYER T>
|
||||
<DEFAULT-DEFINITION PLURAL T>
|
||||
<DEFAULT-DEFINITION ROOMSBIT T>
|
||||
<DEFAULT-DEFINITION SEARCHBIT T>
|
||||
<DEFAULT-DEFINITION SEENBIT T>
|
||||
<DEFAULT-DEFINITION SURFACEBIT T>
|
||||
<DEFAULT-DEFINITION TAKEBIT T>
|
||||
<DEFAULT-DEFINITION TOUCHBIT T>
|
||||
<DEFAULT-DEFINITION TRANSBIT T>
|
||||
<DEFAULT-DEFINITION TRYTAKEBIT T>
|
||||
<DEFMAC IF-SHORT ('EXPR1 "OPT" 'EXPR2) <COND (<L=? ,NUMBER-WORD-CLASSES 15> <
|
||||
COND (<AND .EXPR1 <N==? .EXPR1 '<>>> .EXPR1)>) (<ASSIGNED? EXPR2> .EXPR2)>>
|
||||
<CONSTANT STATE-STACK <ALLOCATE-PSTACK>>
|
||||
<CONSTANT SPLIT-STACK <ALLOCATE-PSTACK>>
|
||||
<CONSTANT DATA-STACK <ALLOCATE-PSTACK>>
|
||||
<CONSTANT LEXV-LENGTH 59>
|
||||
<CONSTANT LEXV-LENGTH-BYTES <+ 2 <* 4 ,LEXV-LENGTH>>>
|
||||
<CONSTANT P-LEXV <ITABLE ,LEXV-LENGTH (LEXV) 0 #BYTE *00000000000* #BYTE
|
||||
*00000000000*>>
|
||||
<CONSTANT G-LEXV <ITABLE ,LEXV-LENGTH (LEXV) 0 #BYTE *00000000000* #BYTE
|
||||
*00000000000*>>
|
||||
<CONSTANT O-LEXV <ITABLE ,LEXV-LENGTH (LEXV) 0 #BYTE *00000000000* #BYTE
|
||||
*00000000000*>>
|
||||
<CONSTANT INBUF-LENGTH <+ 1 ,LEXV-LENGTH>>
|
||||
<CONSTANT P-INBUF <ITABLE ,INBUF-LENGTH (BYTE LENGTH) 0>>
|
||||
<CONSTANT G-INBUF <ITABLE ,INBUF-LENGTH (BYTE LENGTH) 0>>
|
||||
<CONSTANT O-INBUF <ITABLE ,INBUF-LENGTH (BYTE LENGTH) 0>>
|
||||
<CONSTANT P-LEXWORDS 1>
|
||||
<CONSTANT P-LEXSTART 1>
|
||||
<CONSTANT P-LEXELEN 2>
|
||||
<CONSTANT OOPS-TABLE <TABLE <> <> <> <> <>>>
|
||||
<CONSTANT O-START 0>
|
||||
<CONSTANT O-LENGTH 1>
|
||||
<CONSTANT O-END 2>
|
||||
<CONSTANT O-PTR 3>
|
||||
<CONSTANT O-AGAIN 4>
|
||||
<GLOBAL WINNER:OBJECT PLAYER>
|
||||
<GLOBAL P-OFLAG:NUMBER 0>
|
||||
<GLOBAL P-NUMBER:NUMBER 0>
|
||||
<GLOBAL CURRENT-REDUCTION <>>
|
||||
<GLOBAL PARSER-RESULT <>>
|
||||
<GLOBAL P-WALK-DIR <>>
|
||||
<GLOBAL TLEXV 0>
|
||||
<GLOBAL OTLEXV 0>
|
||||
<CONSTANT ERROR-ARGS:TABLE <ITABLE 4 <>>>
|
||||
<GLOBAL ERROR-STRING:STRING <>>
|
||||
<GLOBAL ERROR-PRIORITY:NUMBER 0>
|
||||
<ADD-WORD "AGAIN" MISCWORD>
|
||||
<ADD-WORD "G" MISCWORD>
|
||||
<ADD-WORD "OOPS" MISCWORD>
|
||||
<ADD-WORD "O" MISCWORD>
|
||||
<GLOBAL P-LEN:NUMBER 0>
|
||||
<DEFAULT-DEFINITION STATUS-LINE <DEFINE INIT-STATUS-LINE () <SPLIT 1> <SCREEN ,
|
||||
S-WINDOW> <CURSET 1 1> <HLIGHT ,H-INVERSE> <ERASE 1> <HLIGHT ,H-NORMAL> <SCREEN
|
||||
,S-TEXT> <RTRUE>> <GLOBAL OLD-HERE:OBJECT <>> <DEFINE UPDATE-STATUS-LINE () <
|
||||
SCREEN ,S-WINDOW> <HLIGHT ,H-INVERSE> <COND (<NOT <EQUAL? ,HERE ,OLD-HERE>> <
|
||||
SETG OLD-HERE ,HERE> <CURSET 1 1> <ERASE 1> <CURSET 1 1> <TELL D ,HERE>)> <
|
||||
CURSET 1 <- <LOWCORE SCRH> <+ <DIGITS ,SCORE> <DIGITS ,MOVES>>>> <TELL N ,SCORE
|
||||
C !\/ N ,MOVES> <HLIGHT ,H-NORMAL> <SCREEN ,S-TEXT> <RTRUE>> <DEFINE DIGITS (N
|
||||
"AUX" (D 1)) <COND (<L? .N 0> <SET D <+ 1 .D>> <SET N <- 0 .N>>)> <REPEAT () <
|
||||
SET N </ .N 10>> <COND (<0? .N> <RETURN>) (T <SET D <+ 1 .D>>)>> .D>>
|
||||
<DEFAULT-DEFINITION READ-INPUT <GLOBAL DEMO-VERSION? <>> <DEFINE READ-INPUT ()
|
||||
<TELL ">"> <COND (T <PUTB ,P-INBUF 1 0>)> <COND (,DEMO-VERSION? <READ-DEMO ,
|
||||
P-INBUF ,P-LEXV>) (T <ZREAD ,P-INBUF ,P-LEXV>)> <COND (T <SCRIPT-INBUF>)>> <
|
||||
DEFINE SCRIPT-INBUF ("AUX" BUF (CNT 0) (N <GETB ,P-INBUF 1>) CHR) <DIROUT ,
|
||||
D-SCREEN-OFF> <SET BUF <REST ,P-INBUF>> <REPEAT () <COND (<IGRTR? CNT .N> <
|
||||
RETURN>) (ELSE <SET CHR <GETB .BUF .CNT>> <COND (<AND <G=? .CHR !\a> <L=? .CHR
|
||||
!\z>> <PRINTC <- .CHR 32>>) (ELSE <PRINTC .CHR>)>)>> <CRLF> <DIROUT ,
|
||||
D-SCREEN-ON>>>
|
||||
<LOWCORE MSLOCX %<> T>
|
||||
<LOWCORE MSLOCY %<> T>
|
||||
<CONSTANT P-QB-WORDS-1 <PLTABLE <VOC "ARE"> <VOC "CAN"> <VOC "COULD"> <VOC "DO"
|
||||
> <VOC "DOES"> <VOC "DID"> <VOC "HE"> <VOC "I"> <VOC "IS"> <VOC "IT"> <VOC
|
||||
"SHE"> <VOC "SHOULD"> <VOC "THAT"> <VOC "THEY"> <VOC "WAS"> <VOC "WE"> <VOC
|
||||
"WERE"> <VOC "WILL"> <VOC "WOULD"> <VOC "YOU">>>
|
||||
<CONSTANT P-QB-WORDS-2 <PLTABLE <VOC "NOT"> <VOC "NOT"> <VOC "NOT"> <VOC "NOT">
|
||||
<VOC "NOT"> <VOC "NOT"> <VOC "IS"> <VOC "AM"> <VOC "NOT"> <VOC "IS"> <VOC "IS">
|
||||
<VOC "NOT"> <VOC "IS"> <VOC "ARE"> <VOC "NOT"> <VOC "ARE"> <VOC "NOT"> <VOC
|
||||
"NOT"> <VOC "NOT"> <VOC "ARE">>>
|
||||
<CONSTANT P-QA-WORDS1 <PLTABLE <VOC "AREN"> <VOC "CAN"> <VOC "COULDN"> <VOC
|
||||
"DON"> <VOC "DOESN"> <VOC "DIDN"> <VOC "HE"> <VOC "I"> <VOC "ISN"> <VOC "IT"> <
|
||||
VOC "SHE"> <VOC "SHOULDN"> <VOC "THAT"> <VOC "THEY"> <VOC "WASN"> <VOC "WE"> <
|
||||
VOC "WEREN"> <VOC "WON"> <VOC "WOULDN"> <VOC "YOU">>>
|
||||
<CONSTANT P-QA-WORDS2 <PLTABLE <VOC "T"> <VOC "T"> <VOC "T"> <VOC "T"> <VOC "T"
|
||||
> <VOC "T"> <VOC "S"> <VOC "M"> <VOC "T"> <VOC "S"> <VOC "S"> <VOC "T"> <VOC
|
||||
"S"> <VOC "RE"> <VOC "T"> <VOC "RE"> <VOC "T"> <VOC "T"> <VOC "T"> <VOC "RE">>>
|
||||
|
||||
<DEFAULT-DEFINITION SPECIAL-CONTRACTION? <ROUTINE SPECIAL-CONTRACTION?>>
|
||||
<DEFINE-ROUTINE EXPAND-BE-CONTRACTIONS>
|
||||
<DEFAULT-DEFINITION TELL-THE <ROUTINE TELL-THE>>
|
||||
<DEFAULT-DEFINITION TELL-CTHE <ROUTINE TELL-CTHE>>
|
||||
<COMPILATION-FLAG-DEFAULT P-ZORK0 <>>
|
||||
<COMPILATION-FLAG-DEFAULT P-PS-ADV T>
|
||||
<GLOBAL P-DIRECTION:NUMBER 0>
|
||||
<COMPILATION-FLAG-DEFAULT P-TITLE-ABBRS <>>
|
||||
<DEFAULT-DEFINITION TITLE-ABBR? <DEFMAC TITLE-ABBR? ('WRD) <FORM EQUAL? .WRD ,
|
||||
W?MR ,W?MRS ,W?MS>>>
|
||||
<DEFINE-ROUTINE NAKED-DIR?>
|
||||
<DEFINE-ROUTINE PARSER>
|
||||
<DEFAULT-DEFINITION GAME-VERB? <CONSTANT GAME-VERB-TABLE <LTABLE V?BRIEF V?QUIT
|
||||
V?RESTART V?RESTORE V?SAVE V?SCORE V?SCRIPT V?SUPER-BRIEF V?TELL V?UNSCRIPT
|
||||
V?VERBOSE V?VERSION V?$VERIFY>> <DEFINE GAME-VERB? () <COND (<INTBL? ,PRSA <
|
||||
ZREST ,GAME-VERB-TABLE 2> <ZGET ,GAME-VERB-TABLE 0>> <RTRUE>)> <COND (<VERB?
|
||||
$RANDOM $COMMAND $RECORD $UNRECORD> <RTRUE>)>>>
|
||||
<DEFINE-ROUTINE RED-SD>
|
||||
<GLOBAL SPLITS:NUMBER 0>
|
||||
<DEFINE-ROUTINE P-P>
|
||||
<CONSTANT PARSE-RESULT <MAKE-PARSE-RESULT>>
|
||||
<GLOBAL P-WORD-NUMBER:NUMBER 0>
|
||||
<GLOBAL P-WORDS-AGAIN:NUMBER 0>
|
||||
<GLOBAL P-OLEN:NUMBER 0>
|
||||
<DEFINE-ROUTINE PARSE-IT>
|
||||
<GLOBAL P-RUNNING:TABLE <>>
|
||||
<GLOBAL PARSE-SENTENCE-ACTIVATION <>>
|
||||
<DEFINE-ROUTINE PARSE-SENTENCE>
|
||||
<DEFINE-ROUTINE GET-TERMINAL-ACTION>
|
||||
<DEFINE-ROUTINE GET-NONTERMINAL-ACTION>
|
||||
<DEFAULT-DEFINITION BE-PATIENT <GLOBAL P-RESPONDED:FLAG <>> <ROUTINE BE-PATIENT
|
||||
>>
|
||||
<DEFINE-ROUTINE MAIN-LOOP>
|
||||
<DEFAULT-DEFINITION COLLECTIVE-VERB? <DEFMAC COLLECTIVE-VERB? () '<VERB? COUNT>
|
||||
>>
|
||||
<DEFAULT-DEFINITION DIR-VERB? <DEFMAC DIR-VERB? () '<VERB? WALK>>>
|
||||
<DEFINE-ROUTINE MAIN-LOOP-1>
|
||||
<DEFAULT-DEFINITION QCONTEXT-CHECK <DEFINE QCONTEXT-CHECK (PER "AUX" (WHO <>))
|
||||
<COND (<OR <AND <VERB? SHOW TELL-ABOUT> <EQUAL? .PER ,PLAYER>>> <COND (<SET WHO
|
||||
<FIND-A-WINNER ,HERE>> <SETG QCONTEXT .WHO>)> <COND (<AND <QCONTEXT-GOOD?> <
|
||||
EQUAL? ,WINNER ,PLAYER>> <SETG WINNER ,QCONTEXT> <TELL-SAID-TO ,QCONTEXT> <
|
||||
RTRUE>)>)>>>
|
||||
<GLOBAL LIT:OBJECT <>>
|
||||
<DEFAULT-DEFINITION LIT? <ROUTINE LIT?>>
|
||||
<DEFINE-ROUTINE IGNORE-FIRST-WORD>
|
||||
<DEFINE-ROUTINE FIX-QUOTATIONS>
|
||||
<DEFINE-ROUTINE MAIN-LOOP-IT>
|
||||
<DEFAULT-DEFINITION P-NO-MEM-ROUTINE <ROUTINE P-NO-MEM-ROUTINE>>
|
||||
<DEFAULT-DEFINITION BEG-PARDON <ROUTINE BEG-PARDON>>
|
||||
<DEFAULT-DEFINITION UNKNOWN-WORD <ROUTINE UNKNOWN-WORD>>
|
||||
<DEFINE-ROUTINE WORD-PRINT>
|
||||
<DEFINE-ROUTINE PRINT-VOCAB-WORD>
|
||||
<DEFINE-ROUTINE DO-OOPS>
|
||||
<DEFINE-ROUTINE DO-AGAIN>
|
||||
<DEFINE-ROUTINE NP-SAVE>
|
||||
<DEFINE-ROUTINE PARSER-ERROR>
|
||||
<DEFAULT-DEFINITION BUZZER-WORD? <IFN-P-BE-VERB <CONSTANT P-W-WORDS <PLTABLE <
|
||||
VOC "WHAT"> <IFN-P-APOSTROPHE-BREAKS-WORDS <VOC "WHAT'S">> <VOC "WHEN"> <
|
||||
IFN-P-APOSTROPHE-BREAKS-WORDS <VOC "WHEN'S">> <VOC "WHERE"> <
|
||||
IFN-P-APOSTROPHE-BREAKS-WORDS <VOC "WHERE'S">> <VOC "WHO"> <
|
||||
IFN-P-APOSTROPHE-BREAKS-WORDS <VOC "WHO'S">> <VOC "WHY"> <
|
||||
IFN-P-APOSTROPHE-BREAKS-WORDS <VOC "WHY'S">> <VOC "HOW"> <
|
||||
IFN-P-APOSTROPHE-BREAKS-WORDS <VOC "HOW'S">> <VOC "WOULD"> <
|
||||
IFN-P-APOSTROPHE-BREAKS-WORDS <VOC "WOULDN'T">> <VOC "COULD"> <
|
||||
IFN-P-APOSTROPHE-BREAKS-WORDS <VOC "COULDN'T">> <VOC "SHOULD"> <
|
||||
IFN-P-APOSTROPHE-BREAKS-WORDS <VOC "SHOULDN'T">>>>> <IFN-P-BE-VERB <IFFLAG (
|
||||
P-APOSTROPHE-BREAKS-WORDS <CONSTANT P-Q-WORDS1 <PLTABLE <IFN-P-BE-VERB <VOC
|
||||
"AREN">> <IFN-P-BE-VERB <VOC "CAN">> <IFN-P-BE-VERB <VOC "COULDN">> <
|
||||
IFN-P-BE-VERB <VOC "DIDN">> <IFN-P-BE-VERB <VOC "DOESN">> <IFN-P-BE-VERB <VOC
|
||||
"DON">> <VOC "HASN"> <VOC "HAVEN"> <IFN-P-BE-VERB <VOC "HE">> <VOC "I"> <VOC
|
||||
"I"> <IFN-P-BE-VERB <VOC "I">> <VOC "I"> <IFN-P-BE-VERB <VOC "ISN">> <
|
||||
IFN-P-BE-VERB <VOC "IT">> <VOC "LET"> <IFN-P-BE-VERB <VOC "SHE">> <
|
||||
IFN-P-BE-VERB <VOC "SHOULDN">> <IFN-P-BE-VERB <VOC "THAT">> <IFN-P-BE-VERB <VOC
|
||||
"THEY">> <IFN-P-BE-VERB <VOC "WASN">> <IFN-P-BE-VERB <VOC "WE">> <VOC "WE"> <
|
||||
IFN-P-BE-VERB <VOC "WEREN">> <IFN-P-BE-VERB <VOC "WON">> <IFN-P-BE-VERB <VOC
|
||||
"WOULDN">> <IFN-P-BE-VERB <VOC "YOU">>>> <CONSTANT P-Q-WORDS2 <PLTABLE <
|
||||
IFN-P-BE-VERB <VOC "T">> <IFN-P-BE-VERB <VOC "T">> <IFN-P-BE-VERB <VOC "T">> <
|
||||
IFN-P-BE-VERB <VOC "T">> <IFN-P-BE-VERB <VOC "T">> <IFN-P-BE-VERB <VOC "T">> <
|
||||
VOC "T"> <VOC "T"> <IFN-P-BE-VERB <VOC "S">> <VOC "D"> <VOC "LL"> <
|
||||
IFN-P-BE-VERB <VOC "M">> <VOC "VE"> <IFN-P-BE-VERB <VOC "T">> <IFN-P-BE-VERB <
|
||||
VOC "S">> <VOC "S"> <IFN-P-BE-VERB <VOC "S">> <IFN-P-BE-VERB <VOC "T">> <
|
||||
IFN-P-BE-VERB <VOC "S">> <IFN-P-BE-VERB <VOC "RE">> <IFN-P-BE-VERB <VOC "T">> <
|
||||
IFN-P-BE-VERB <VOC "RE">> <VOC "LL"> <IFN-P-BE-VERB <VOC "T">> <IFN-P-BE-VERB <
|
||||
VOC "T">> <IFN-P-BE-VERB <VOC "T">> <IFN-P-BE-VERB <VOC "RE">>>>) (T <CONSTANT
|
||||
P-Q-WORDS1 <PLTABLE <IFN-P-BE-VERB <VOC "AREN'T">> <IFN-P-BE-VERB <VOC "CAN'T">
|
||||
> <IFN-P-BE-VERB <VOC "COULDN'T">> <IFN-P-BE-VERB <VOC "DIDN'T">> <
|
||||
IFN-P-BE-VERB <VOC "DOESN'T">> <IFN-P-BE-VERB <VOC "DON'T">> <VOC "HASN'T"> <
|
||||
VOC "HAVEN'T"> <IFN-P-BE-VERB <VOC "HE'S">> <VOC "I'D"> <VOC "I'LL"> <
|
||||
IFN-P-BE-VERB <VOC "I'M">> <VOC "I'VE"> <IFN-P-BE-VERB <VOC "ISN'T">> <
|
||||
IFN-P-BE-VERB <VOC "IT'S">> <VOC "LET'S"> <IFN-P-BE-VERB <VOC "SHE'S">> <
|
||||
IFN-P-BE-VERB <VOC "SHOULDN'T">> <IFN-P-BE-VERB <VOC "THAT'S">> <IFN-P-BE-VERB
|
||||
<VOC "THEY'RE">> <IFN-P-BE-VERB <VOC "WASN'T">> <IFN-P-BE-VERB <VOC "WE'RE">> <
|
||||
VOC "WE'LL"> <IFN-P-BE-VERB <VOC "WEREN'T">> <IFN-P-BE-VERB <VOC "WON'T">> <
|
||||
IFN-P-BE-VERB <VOC "WOULDN'T">> <IFN-P-BE-VERB <VOC "YOU'RE">>>>)> <CONSTANT
|
||||
P-Q-WORDS <PLTABLE <IFN-P-BE-VERB <VOC "AM">> <IFN-P-BE-VERB <VOC "ARE">> <
|
||||
IFN-P-BE-VERB <VOC "CAN">> <IFN-P-BE-VERB <VOC "COULD">> <IFN-P-BE-VERB <VOC
|
||||
"DID">> <IFN-P-BE-VERB <VOC "DO">> <VOC "HAS"> <VOC "HAVE"> <IFN-P-BE-VERB <VOC
|
||||
"IS">> <VOC "LIKE"> <IFN-P-BE-VERB <VOC "SHOULD">> <VOC "WANT"> <IFN-P-BE-VERB
|
||||
<VOC "WAS">> <IFN-P-BE-VERB <VOC "WERE">> <IFN-P-BE-VERB <VOC "WILL">> <
|
||||
IFN-P-BE-VERB <VOC "WOULD">>>>> <CONSTANT P-N-WORDS <PLTABLE <VOC "ZERO"> <VOC
|
||||
"TEN"> <VOC "ELEVEN"> <VOC "TWELVE"> <VOC "THIRTEEN"> <VOC "FOURTEEN"> <VOC
|
||||
"FIFTEEN"> <VOC "SIXTEEN"> <VOC "SEVENTEEN"> <VOC "EIGHTEEN"> <VOC "NINETEEN">
|
||||
<VOC "TWENTY"> <VOC "THIRTY"> <VOC "FORTY"> <VOC "FIFTY"> <VOC "SIXTY"> <VOC
|
||||
"SEVENTY"> <VOC "EIGHTY"> <VOC "NINETY"> <VOC "HUNDRED"> <VOC "THOUSAND"> <VOC
|
||||
"MILLION"> <VOC "BILLION">>> <CONSTANT P-C-WORDS <PLTABLE <VOC "ASS"> <VOC
|
||||
"ASSHOLE"> <VOC "BASTARD"> <VOC "BITCH"> <VOC "COCK"> <VOC "COCKSUCKER"> <VOC
|
||||
"CRAP"> <VOC "CUNT"> <VOC "CUSS"> <VOC "DAMN"> <VOC "DAMNED"> <VOC "FUCK"> <VOC
|
||||
"FUCKED"> <VOC "FUCKER"> <VOC "FUCKING"> <VOC "GODDAMN"> <VOC "GODDAMNED"> <VOC
|
||||
"HELL"> <VOC "PISS"> <VOC "SCREW"> <VOC "SHIT"> <VOC "SHITHEAD"> <VOC "SUCKS">>
|
||||
> <ROUTINE BUZZER-WORD?> <CONSTANT OFFENDED <LTABLE 0 "What charming language!"
|
||||
"Computers aren't impressed by naughty words!"
|
||||
"You ought to be ashamed of yourself!"
|
||||
"Hey, save that talk for the locker room!" "Step outside and say that!"
|
||||
"And so's your old man!">> <IFN-P-BE-VERB <DEFINE W-WORD-REPLY (WD) <COND (<OR
|
||||
<NOT <EQUAL? .WD ,W?WHAT ,W?WHO>> <NOT <EQUAL? ,WINNER ,PLAYER>>> <COND (<
|
||||
EQUAL? .WD ,W?WHERE> <TO-DO-X-USE-Y "locate" "FIND"> <RTRUE>) (T <TO-DO-X-USE-Y
|
||||
"ask about" "TELL ME ABOUT"> <RTRUE>)>) (T <TELL "[Maybe you could "> <COND (<
|
||||
FSET? ,LIBRARY ,TOUCHBIT> <TELL "look that up in the">) (T <TELL "find an">)> <
|
||||
TELL " encyclopedia.]" CR>)>> <DEFINE TO-DO-X-USE-Y (STR1 STR2) <TELL "[To " .
|
||||
STR1 " something, use the command: " .STR2 ,P-SOMETHING> <RTRUE>> <CONSTANT
|
||||
P-SOMETHING " (something).]|"> <VOC "(SOMETHI"> <VOC "SOMETHING"> <DEFINE
|
||||
TELL-PLEASE-USE-COMMANDS ("AUX" (THRESH <COND (<FSET? ,GREAT-HALL ,TOUCHBIT> 10
|
||||
) (T 2)>)) <TELL "["> <COND (<L? ,P-ERRS .THRESH> <PRINT "Please use commands">
|
||||
<TELL ", not statements or questions"> <PRINTR ".]">) (T <TELL-SAMPLE-COMMANDS>
|
||||
)>>>>
|
||||
<DEFAULT-DEFINITION NUMBER? <ADD-WORD "INT.NUM" ADJ> <ADD-WORD "INT.NUM" NOUN>
|
||||
<ADD-WORD "INT.TIM" ADJ> <ADD-WORD "INT.TIM" NOUN> <ROUTINE NUMBER?>>
|
||||
<DEFINE-ROUTINE CHANGE-LEXV>
|
||||
<CONSTANT GWIM-MSG <TABLE 0 0 0 0>>
|
||||
<DEFAULT-DEFINITION TELL-GWIM-MSG <DEFINE TELL-GWIM-MSG ("AUX" WD VB) <TELL !\[
|
||||
> <COND (<T? <SET WD <ZGET ,GWIM-MSG 0>>> <PRINT-VOCAB-WORD .WD> <TELL !\ > <
|
||||
SET VB <PARSE-VERB ,PARSER-RESULT>> <COND (<EQUAL? .VB ,W?SIT ,W?LIE> <COND (<
|
||||
EQUAL? .WD ,W?DOWN> <TELL "on ">)>) (<EQUAL? .VB ,W?GET> <COND (<EQUAL? .WD ,
|
||||
W?OUT> <TELL "of ">)>)>)> <TELL-THE <ZGET ,GWIM-MSG 1>> <TELL "]" CR>>>
|
||||
<DEFINE-ROUTINE DO-IT-AGAIN>
|
||||
<END-SEGMENT>
|
||||
<ENDPACKAGE>
|
2335
parser.zap
Normal file
2335
parser.zap
Normal file
File diff suppressed because it is too large
Load diff
92
pmem.zabstr
Normal file
92
pmem.zabstr
Normal file
|
@ -0,0 +1,92 @@
|
|||
<FLAGS-AND-DEFAULTS (("IN-ZILCH" T)("P-DEBUGGING-PARSER" T)) ()>
|
||||
|
||||
<ZZPACKAGE "PMEM">
|
||||
<ENTRY PMEM PMEM-ALLOC PMEM-TYPE? PMEM-RESET PM-TYPE MAKE-PM-TYPE
|
||||
PMEM-WORDS-USED PDEFS-INTERNAL-OBLIST PMEM-STORE-WARN PMEM-STORE-LENGTH>
|
||||
<INCLUDE "BASEDEFS" "PBITDEFS">
|
||||
<USE "NEWSTRUC">
|
||||
<SET-DEFSTRUCT-FILE-DEFAULTS>
|
||||
<FILE-FLAGS MDL-ZIL?>
|
||||
<BEGIN-SEGMENT 0>
|
||||
<DEFSTRUCT PMEM (TABLE 'CONSTRUCTOR ('PRINTTYPE PRINT-PMEM) 'NODECL ('NTH ZGET)
|
||||
('PUT ZPUT) ('START-OFFSET 0)) (PM-HEADER <OR FIX FALSE>) (PM-LENGTH <OR FIX
|
||||
FALSE> 'OFFSET 0 'NTH GETB 'PUT PUTB) (PM-TYPE-CODE <OR FIX FALSE> 'OFFSET 1 '
|
||||
NTH GETB 'PUT PUTB)>
|
||||
<CONSTANT PM-HEADER-LEN 1>
|
||||
<DEFSTRUCT PM-TYPE VECTOR (PMT-NAME ATOM) (PMT-CODE FIX) (PMT-LENGTH <OR FIX
|
||||
FALSE>) (PMT-ARGS <VECTOR [REST PM-ARG]> [])>
|
||||
<DEFSTRUCT PM-ARG VECTOR (PMA-NAME ATOM) (PMA-OFFS FIX) (PMA-TYPE ANY) (
|
||||
PMA-DEFAULT ANY)>
|
||||
<GDECL (PM-TYPE-COUNT) FIX (PM-LIST) LIST>
|
||||
<CONSTANT PMEM-STORE-LENGTH:FIX 180>
|
||||
<CONSTANT PMEM-STORE:TABLE <ITABLE ,PMEM-STORE-LENGTH>>
|
||||
<GLOBAL PMEM-STORE-POINTER PMEM-STORE>
|
||||
<GLOBAL PMEM-STORE-WORDS:NUMBER PMEM-STORE-LENGTH>
|
||||
<GLOBAL PMEM-STORE-WARN:NUMBER 50>
|
||||
<DEFINE-ROUTINE PMEM?>
|
||||
<DEFINE20 PM-TYPE (NAME:ATOM LENGTH:<OR FIX FALSE> "ARGS" STUFF "AUX" ATM CODE
|
||||
TYPE-OBJ (OCT ,PM-HEADER-LEN) ARGS) <SET ATM <PARSE <STRING "PM-TYPE-" <SPNAME
|
||||
.NAME>> 10 ,PDEFS-INTERNAL-OBLIST>> <COND (<NOT <GASSIGNED? PM-TYPE-COUNT>> <
|
||||
SETG PM-TYPE-COUNT 0> <SETG PM-LIST (T)>)> <SET CODE <SETG PM-TYPE-COUNT <+ ,
|
||||
PM-TYPE-COUNT 1>>> <SET TYPE-OBJ <MAKE-PM-TYPE 'PMT-NAME .ATM 'PMT-CODE .CODE '
|
||||
PMT-LENGTH .LENGTH>> <EVAL <FORM CONSTANT <PARSE <STRING "PMEM-TYPE-" <SPNAME .
|
||||
NAME>> 10 ,PDEFS-INTERNAL-OBLIST> .CODE>> <PUTREST <REST ,PM-LIST <- <LENGTH ,
|
||||
PM-LIST> 1>> (.TYPE-OBJ)> <SETG .ATM .TYPE-OBJ> <SET ARGS <MAPF ,VECTOR <
|
||||
FUNCTION (ARG:<OR LIST ATOM> "AUX" NATM OFFS (TYPE ANY) (DEFAULT <>) NNATM) <
|
||||
COND (<TYPE? .ARG LIST> <SET NATM <1 .ARG>> <SET ARG <REST .ARG>>) (T <SET NATM
|
||||
.ARG> <SET ARG ()>)> <SET NATM <PARSE <STRING <SPNAME .NAME> "-" <SPNAME .NATM>
|
||||
> 10 ,PDEFS-INTERNAL-OBLIST>> <SET NNATM <PARSE <STRING <SPNAME .NAME> "-" <
|
||||
SPNAME .NATM> "-OFFSET"> 10 ,PDEFS-INTERNAL-OBLIST>> <EVAL <FORM DEFMAC .NATM (
|
||||
''OBJ "OPT" ''NEW) <FORM COND (<FORM ASSIGNED? NEW> <FORM FORM ZPUT '.OBJ .OCT
|
||||
'.NEW>) (T <FORM FORM ZGET '.OBJ .OCT>)>>> <SETG .NNATM <SET OFFS .OCT>> <SET
|
||||
OCT <+ .OCT 1>> <COND (<EMPTY? .ARG>) (T <SET TYPE <1 .ARG>> <COND (<NOT <
|
||||
LENGTH? .ARG 1>> <COND (<AND <TYPE? <SET DEFAULT <2 .ARG>> FORM> <EMPTY? .
|
||||
DEFAULT>> <SET DEFAULT <>>)>)> <COND (<AND <NOT <MATCH-KEY .DEFAULT NONE>> <NOT
|
||||
<TYPE? .DEFAULT FORM>>> <COND (<NOT <DECL? .DEFAULT .TYPE>> <COND (<DECL? .
|
||||
DEFAULT <FORM OR FALSE .TYPE>> <SET TYPE <FORM OR FALSE .TYPE>>) (T <ERROR
|
||||
DEFAULT-DOESNT-MATCH-DECL .TYPE .DEFAULT PM-TYPE>)>)>)>)> <MAKE-PM-ARG '
|
||||
PMA-NAME .NATM 'PMA-OFFS .OFFS 'PMA-TYPE .TYPE 'PMA-DEFAULT .DEFAULT>> .STUFF>>
|
||||
<PMT-ARGS .TYPE-OBJ .ARGS>>
|
||||
<DEFINE20 GET-PM-TYPE (TYPE:ATOM "AUX" TEMP) <COND (<AND <GASSIGNED? .TYPE> <
|
||||
TYPE? ,.TYPE PM-TYPE>> ,.TYPE) (T <SET TEMP <PARSE <STRING "PM-TYPE-" <SPNAME .
|
||||
TYPE>> 10 ,PDEFS-INTERNAL-OBLIST>> <COND (<AND <GASSIGNED? .TEMP> <TYPE? ,.TEMP
|
||||
PM-TYPE>> ,.TEMP) (T <ERROR NOT-A-PMEM-TYPE!-ERRORS .TYPE>)>)>>
|
||||
<DEFMAC PMEM-TYPE? ('PMEM 'TYPE "OPT" 'TYPE2 "AUX" (ATM <>) (ATM2 <>)) <SET
|
||||
TYPE <GET-PM-TYPE .TYPE>> <COND (<ASSIGNED? TYPE2> <SET TYPE2 <GET-PM-TYPE .
|
||||
TYPE2>>) (T <SET TYPE2 <>>)> <COND (<NOT .TYPE2> <FORM ==? <FORM PM-TYPE-CODE .
|
||||
PMEM> <PMT-CODE .TYPE>>) (T <FORM OR <FORM ==? <FORM PM-TYPE .PMEM> <PMT-CODE .
|
||||
TYPE>> <FORM ==? <FORM PM-TYPE .PMEM> <PMT-CODE .TYPE2>>>)>>
|
||||
<DEFINE20 PRINT-PMEM (PMEM:PMEM "OPT" (OUTCHAN:CHANNEL .OUTCHAN) "AUX" (CODE <
|
||||
PM-TYPE-CODE .PMEM>) (OBJ:PM-TYPE <NTH ,PM-LIST <+ .CODE 1>>)) <PRINT-MANY .
|
||||
OUTCHAN PRINC "#" <PMT-NAME .OBJ> " ["> <REPEAT ((CT <PM-LENGTH .PMEM>) (N 1))
|
||||
<COND (<L? <SET CT <- .CT 1>> 0> <RETURN>)> <PRIN1 <ZGET .PMEM .N>> <PRINC !\ >
|
||||
<SET N <+ .N 1>>> <PRINC !\]> .PMEM>
|
||||
<GLOBAL PMEM-WORDS-USED 0>
|
||||
<GDECL (PMEM-WORDS-USED) FIX>
|
||||
<DEFINE-ROUTINE PMEM-RESET>
|
||||
<DEFINE20 MATCH-KEY (FOO BAR) <AND <TYPE? .FOO ATOM> <TYPE? .BAR ATOM> <=? <
|
||||
SPNAME .FOO> <SPNAME .BAR>>>>
|
||||
<DEFMAC PMEM-ALLOC PA (TYPNAM:ATOM "ARGS" STUFF "AUX" TEMP NT:PM-TYPE BASE
|
||||
LENARG ATM BL) <SET NT <GET-PM-TYPE .TYPNAM>> <COND (<SET TEMP <MEMQ LENGTH .
|
||||
STUFF>> <SET LENARG <2 .TEMP>>) (<NOT <SET LENARG <PMT-LENGTH .NT>>> <ERROR
|
||||
BAD-PMEM-LENGTH-ARG!-ERRORS .TYPNAM PMEM-ALLOC>)> <SET BASE <FORM BIND ((
|
||||
NEW-OBJECT <FORM DO-PMEM-ALLOC <PMT-CODE .NT> .LENARG>))>> <SET BL <REST .BASE>
|
||||
> <REPEAT ((ARGS <PMT-ARGS .NT>) (INIT <CHTYPE <STACK <IVECTOR <* 2 <+ <LENGTH
|
||||
.ARGS> ,PM-HEADER-LEN>> NONE>> TABLE>) THIS-ARG OFFS:FIX FRM) <COND (<EMPTY? .
|
||||
STUFF> <MAPF <> <FUNCTION (ARG:PM-ARG "AUX" (IVAL <ZGET .INIT <PMA-OFFS .ARG>>)
|
||||
) <COND (<AND <MATCH-KEY .IVAL NONE> <MATCH-KEY <PMA-DEFAULT .ARG> NONE>> <
|
||||
ERROR NO-VALUE-FOR-MANDATORY-SLOT!-ERRORS .TYPNAM PMEM-ALLOC>) (<MATCH-KEY .
|
||||
IVAL NONE> <COND (<AND <PMA-DEFAULT .ARG> <N==? <PMA-DEFAULT .ARG> '<>> <N==? <
|
||||
PMA-DEFAULT .ARG> 0>> <SET BL <REST <PUTREST .BL (<FORM <PMA-NAME .ARG> '.
|
||||
NEW-OBJECT <PMA-DEFAULT .ARG>>)>>>)>)>> .ARGS> <RETURN>)> <COND (<OR <NOT <
|
||||
TYPE? <SET ATM <1 .STUFF>> ATOM>> <AND <OR <NOT <GASSIGNED? .ATM>> <NOT <TYPE?
|
||||
,.ATM FIX MACRO>>> <SET ATM <PARSE <STRING <SPNAME .TYPNAM> "-" <SPNAME .ATM>>
|
||||
10 ,PDEFS-INTERNAL-OBLIST>> <OR <NOT <GASSIGNED? .ATM>> <NOT <TYPE? ,.ATM FIX
|
||||
MACRO>>>>> <COND (<N==? <1 .STUFF> LENGTH> <ERROR BAD-PMEM-ARG!-ERRORS .STUFF
|
||||
PMEM-ALLOC>)>) (T <SET FRM <EXPAND <FORM .ATM .INIT T>>> <ZPUT .INIT <3 .FRM:
|
||||
FORM> T> <COND (<AND <2 .STUFF> <N==? <2 .STUFF> '<>> <N==? <2 .STUFF> 0>> <SET
|
||||
BL <REST <PUTREST .BL (<FORM .ATM '.NEW-OBJECT <2 .STUFF>>)>>>)>)> <SET STUFF <
|
||||
REST .STUFF 2>>> <PUTREST .BL ('.NEW-OBJECT)> .BASE>
|
||||
<DEFINE-ROUTINE DO-PMEM-ALLOC>
|
||||
<END-SEGMENT>
|
||||
<ENDPACKAGE>
|
45
pmem.zap
Normal file
45
pmem.zap
Normal file
|
@ -0,0 +1,45 @@
|
|||
|
||||
.SEGMENT "0"
|
||||
|
||||
|
||||
.FUNCT PMEM?:ANY:1:1,PTR
|
||||
LESS? PTR,PMEM-STORE /FALSE
|
||||
LESS? PTR,PMEM-STORE+180 /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT PMEM-RESET:ANY:0:0
|
||||
GRTR? PMEM-WORDS-USED,0 \?CND1
|
||||
SET 'PMEM-WORDS-USED,0
|
||||
SUB PMEM-STORE-LENGTH,PMEM-STORE-WORDS
|
||||
MUL 2,STACK
|
||||
COPYT PMEM-STORE,0,STACK
|
||||
?CND1: SET 'PMEM-STORE-WORDS,PMEM-STORE-LENGTH
|
||||
SET 'PMEM-STORE-POINTER,PMEM-STORE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT DO-PMEM-ALLOC:ANY:2:2,TYPE,LENGTH,STOR,LEFT,NEW
|
||||
SET 'STOR,PMEM-STORE-POINTER
|
||||
SET 'LEFT,PMEM-STORE-WORDS
|
||||
IGRTR? 'LENGTH,LEFT \?CND1
|
||||
ICALL2 P-NO-MEM-ROUTINE,TYPE
|
||||
?CND1: ADD PMEM-WORDS-USED,LENGTH >PMEM-WORDS-USED
|
||||
SUB LEFT,LENGTH >PMEM-STORE-WORDS
|
||||
GRTR? PMEM-STORE-WARN,PMEM-STORE-WORDS \?CND3
|
||||
SET 'PMEM-STORE-WARN,PMEM-STORE-WORDS
|
||||
PRINTI "[Debugging info: "
|
||||
PRINTI "PMEM: "
|
||||
PRINTN PMEM-STORE-WARN
|
||||
PRINTI " left!]
|
||||
"
|
||||
?CND3: MUL LENGTH,2
|
||||
ADD STOR,STACK >PMEM-STORE-POINTER
|
||||
DEC 'LENGTH
|
||||
PUTB STOR,0,LENGTH
|
||||
PUTB STOR,1,TYPE
|
||||
RETURN STOR
|
||||
|
||||
.ENDSEG
|
||||
|
||||
.ENDI
|
105
prare.zabstr
Normal file
105
prare.zabstr
Normal file
|
@ -0,0 +1,105 @@
|
|||
<FLAGS-AND-DEFAULTS (("P-ZORK0" %<>)("ONE-BYTE-PARTS-OF-SPEECH" %<>)(
|
||||
"WORD-FLAGS-IN-TABLE" T)("IN-ZILCH" T)("P-APOSTROPHE-BREAKS-WORDS" T)(
|
||||
"P-BE-VERB" T)) (("YES?" "DEFS" #WORD *31055044554*) ("WHICH-PRINT" "DEFS2" #
|
||||
WORD *07342702061*) ("CANT-FIND-OBJECT" "DEFS2" #WORD *34547172463*) ("REFRESH"
|
||||
"DEFS" #WORD *22741033411*))>
|
||||
|
||||
<ZZPACKAGE "PARSER">
|
||||
<RENTRY PRINT-LEXV TELL-CTHE TELL-THE>
|
||||
<INCLUDE "BASEDEFS" "PBITDEFS" "PDEFS">
|
||||
<USE "PMEM" "PSTACK" "REDS">
|
||||
<FILE-FLAGS MDL-ZIL? CLEAN-STACK?>
|
||||
<BEGIN-SEGMENT 0>
|
||||
<DEFAULTS-DEFINED CANT-FIND-OBJECT CANT-USE-MULTIPLE DONT-UNDERSTAND
|
||||
PRINT-INTQUOTE PRINT-LEXV REFRESH SETUP-ORPHAN SETUP-ORPHAN-NP TOO-MANY-NOUNS
|
||||
WHICH-LIST? WHICH-PRINT WINNER-SAYS-WHICH? YES?>
|
||||
<DEFINE-ROUTINE TOO-MANY-NEW>
|
||||
<DEFINE-ROUTINE NAKED-OOPS>
|
||||
<DEFINE-ROUTINE CANT-OOPS>
|
||||
<DEFINE-ROUTINE CANT-AGAIN>
|
||||
<DEFAULT-DEFINITION CANT-USE-MULTIPLE <ROUTINE CANT-USE-MULTIPLE>>
|
||||
<DEFINE-ROUTINE MAKE-ROOM-FOR-TOKENS>
|
||||
<DEFINE-ROUTINE REPLACE-ONE-TOKEN>
|
||||
<DEFAULT-DEFINITION REFRESH <DEFINE V-$REFRESH () <LOWCORE FLAGS <BAND <LOWCORE
|
||||
FLAGS> <BCOM ,F-REFRESH>>> <CLEAR -1> <INIT-STATUS-LINE> <RTRUE>>>
|
||||
<DEFAULT-DEFINITION PRINT-INTQUOTE <ROUTINE PRINT-INTQUOTE>>
|
||||
<DEFAULT-DEFINITION PRINT-LEXV <ROUTINE PRINT-LEXV>>
|
||||
<DEFINE-ROUTINE COPY-INPUT>
|
||||
<COND (<NOT <OR <CHECK-VERSION? XZIP> <CHECK-VERSION? YZIP>>> <DEFINE
|
||||
COPY-INBUF (SRC DEST "AUX" CNT:FIX) <SET CNT <- <GETB .SRC 0> 1>> <REPEAT () <
|
||||
PUTB .DEST .CNT <GETB .SRC .CNT>> <COND (<L? <SET CNT <- .CNT 1>> 0> <RETURN>)>
|
||||
>> <DEFINE COPY-LEXV (SRC DEST "OPT" (MAX:FIX ,LEXV-LENGTH) "AUX" (CTR:FIX 1))
|
||||
<PUTB .DEST 0 <GETB .SRC 0>> <PUTB .DEST 1 <GETB .SRC 1>> <SET DEST <ZREST .
|
||||
DEST <* ,P-LEXSTART:FIX 2>>> <SET SRC <ZREST .SRC <* ,P-LEXSTART:FIX 2>>> <
|
||||
REPEAT () <ZPUT .DEST 0 <ZGET .SRC 0>> <PUTB .DEST 2 <GETB .SRC 2>> <PUTB .DEST
|
||||
3 <GETB .SRC 3>> <COND (<G? <SET CTR <+ .CTR 1>> .MAX> <RETURN>)> <SET DEST <
|
||||
ZREST .DEST <* 2 ,P-LEXELEN:FIX>>> <SET SRC <ZREST .SRC <* 2 ,P-LEXELEN:FIX>>>>
|
||||
>)>
|
||||
<END-SEGMENT>
|
||||
<BEGIN-SEGMENT 0>
|
||||
<ADD-WORD NO.WORD ADJ>
|
||||
<DEFINE-ROUTINE BUFFER-PRINT>
|
||||
<DEFINE-ROUTINE CAPITALIZE>
|
||||
<DEFINE-ROUTINE PRINT-PARSER-FAILURE>
|
||||
<DEFINE-ROUTINE NAKED-ADJECTIVE?>
|
||||
<DEFINE-ROUTINE CHANGE-AND-TO-THEN?>
|
||||
<DEFAULT-DEFINITION DONT-UNDERSTAND <ROUTINE DONT-UNDERSTAND>>
|
||||
<DEFINE-ROUTINE MISSING>
|
||||
<DEFAULT-DEFINITION CANT-FIND-OBJECT <DEFINE CANT-FIND-OBJECT (NP PART "AUX"
|
||||
TMP) <COND (<ZERO? <NP-QUANT .NP>> <NP-CANT-SEE .NP .PART>) (T <TELL
|
||||
"[There isn't anything to "> <COND (<SET TMP <PARSE-VERB ,PARSE-RESULT>> <
|
||||
PRINT-VOCAB-WORD .TMP> <COND (<NOT <EQUAL? .PART 0 1>> <TELL !\ > <
|
||||
PRINT-VOCAB-WORD .PART>)>) (T <TELL "do that to">)> <TELL "!]" CR>)>> <DEFINE
|
||||
NP-CANT-SEE ("OPT" (NP <GET-NP>) (SYN 0) "AUX" TMP) <COND (<SET TMP <NP-NAME .
|
||||
NP>> <TELL "["> <TELL-CTHE ,WINNER> <TELL " "> <COND (<AND <BTST .SYN ,
|
||||
SEARCH-MUST-HAVE> <NOT <BTST .SYN ,SEARCH-MOBY>>> <COND (<EQUAL? ,WINNER ,
|
||||
PLAYER ,ME> <TELL "don't">) (ELSE <TELL "doesn't">)> <TELL " have">) (T <TELL
|
||||
"can't see">)> <TELL " "> <COND (<OR <CAPITAL-NOUN? .TMP> <AND <SET TMP <
|
||||
NP-ADJS .NP>> <ADJS-POSS .TMP>>> <NP-PRINT .NP T>) (T <TELL "any "> <NP-PRINT .
|
||||
NP>)> <TELL !\ > <COND (<AND <SET TMP <NP-LOC .NP>> <OR <AND <PMEM-TYPE? .TMP
|
||||
NOUN-PHRASE> <TELL "in">> <AND <PMEM-TYPE? .TMP LOCATION> <SET TMP <
|
||||
LOCATION-OBJECT .TMP>> <PRINT-VOCAB-WORD <LOCATION-PREP .TMP>>>>> <TELL " "> <
|
||||
TELL-THE <NOUN-PHRASE-OBJ1 .TMP>>) (T <COND (T <TELL "right ">)> <TELL "here">)
|
||||
> <TELL ".]" CR>) (T <MORE-SPECIFIC>)>>>
|
||||
<DEFAULT-DEFINITION WINNER-SAYS-WHICH? <ROUTINE WINNER-SAYS-WHICH?>>
|
||||
<DEFAULT-DEFINITION WHICH-LIST? <ROUTINE WHICH-LIST?>>
|
||||
<DEFAULT-DEFINITION WHICH-PRINT <DEFINE WHICH-PRINT ("OPT" (NP <GET-NP>)) <
|
||||
REPEAT ((PTR <NP-LEXEND .NP>) (NOUN <NP-NAME .NP>)) <COND (<==? .NOUN <ZGET .
|
||||
PTR 0>> <SETG P-OFLAG </ <- .PTR ,P-LEXV> 2>> <COPYT ,G-LEXV ,O-LEXV ,
|
||||
LEXV-LENGTH-BYTES> <COPYT ,G-INBUF ,O-INBUF <+ 1 ,INBUF-LENGTH>> <ZPUT ,
|
||||
OOPS-TABLE ,O-AGAIN <ZGET ,OOPS-TABLE ,O-START>> <RETURN>) (<G? ,P-LEXV <SET
|
||||
PTR <- .PTR ,LEXV-ELEMENT-SIZE-BYTES>>> <RFALSE>)>> <PROG ((SR ,ORPHAN-SR) (TMP
|
||||
<>) (LEN <FIND-RES-COUNT .SR>) (SZ <FIND-RES-SIZE .SR>)) <COND (<AND <NOT <==?
|
||||
,WINNER ,PLAYER>> <NOT <SET TMP <WINNER-SAYS-WHICH? .NP>>>> <TELL
|
||||
"\"I don't understand "> <COND (<WHICH-LIST? .NP .SR> <TELL "if">) (T <TELL
|
||||
"which"> <COND (<T? .NP> <TELL !\ > <NP-PRINT .NP>)>)>) (<EQUAL? .TMP T> <RTRUE
|
||||
>) (T <TELL "[Which"> <COND (<T? .NP> <TELL !\ > <NP-PRINT .NP>)> <TELL " do">)
|
||||
> <TELL " you mean"> <COND (<WHICH-LIST? .NP .SR> <COND (<OR .TMP <==? ,WINNER
|
||||
,PLAYER>> <TELL !\,>)> <REPEAT ((REM .LEN) (VEC <REST-TO-SLOT .SR FIND-RES-OBJ1
|
||||
>)) <TELL !\ > <TELL-THE <ZGET .VEC 0>> <COND (<==? .REM 2> <COND (<NOT <==? .
|
||||
LEN 2>> <TELL !\,>)> <TELL " or">) (<G? .REM 2> <TELL !\,>)> <COND (<L? <SET
|
||||
REM <- .REM 1>> 1> <RETURN>) (<L? <SET SZ <- .SZ 1>> 1> <COND (T <RETURN>)>) (T
|
||||
<SET VEC <ZREST .VEC 2>>)>>)> <COND (<AND <NOT <==? ,WINNER ,PLAYER>> <NOT .TMP
|
||||
>> <TELL ".\"" CR>) (T <TELL "?]" CR>)>>>>
|
||||
<DEFINE-ROUTINE NP-PRINT>
|
||||
<DEFINE-ROUTINE ADJS-PRINT>
|
||||
<DEFAULT-DEFINITION TOO-MANY-NOUNS <ROUTINE TOO-MANY-NOUNS>>
|
||||
<DEFINE-ROUTINE INBUF-ADD>
|
||||
<DEFINE-ROUTINE INBUF-PRINT>
|
||||
<DEFAULT-DEFINITION YES? <CONSTANT YES-INBUF <ITABLE 19 (BYTE LENGTH) 0>> <
|
||||
CONSTANT YES-LEXV <ITABLE 3 (LEXV) 0 0>> <DEFINE YES? ("OPT" (NO-Q <>) "AUX"
|
||||
WORD VAL) <COND (<NOT .NO-Q> <TELL !\?>)> <REPEAT () <TELL "|>"> <COND (T <PUTB
|
||||
,YES-INBUF 1 0>)> <ZREAD ,YES-INBUF ,YES-LEXV> <COND (<AND <NOT <0? <GETB ,
|
||||
YES-LEXV ,P-LEXWORDS>>> <SET WORD <ZGET ,YES-LEXV ,P-LEXSTART>>> <COND (<
|
||||
COMPARE-WORD-TYPES <WORD-CLASSIFICATION-NUMBER .WORD> <GET-CLASSIFICATION VERB>
|
||||
> <SET VAL <WORD-VERB-STUFF .WORD>>) (T <SET VAL <>>)> <COND (<EQUAL? .VAL ,
|
||||
ACT?YES> <SET VAL T> <RETURN>) (<OR <EQUAL? .VAL ,ACT?NO> <EQUAL? .WORD ,W?N>>
|
||||
<SET VAL <>> <RETURN>) (<EQUAL? .VAL ,ACT?RESTART> <V-RESTART>) (<EQUAL? .VAL ,
|
||||
ACT?RESTORE> <V-RESTORE>) (<EQUAL? .VAL ,ACT?QUIT> <V-QUIT>)>)> <TELL
|
||||
"[Please type YES or NO.]">> .VAL>>
|
||||
<DEFAULT-DEFINITION SETUP-ORPHAN <ROUTINE SETUP-ORPHAN>>
|
||||
<DEFAULT-DEFINITION SETUP-ORPHAN-NP <ROUTINE SETUP-ORPHAN-NP>>
|
||||
<DEFINE-ROUTINE INSERT-ADJS>
|
||||
<DEFINE-ROUTINE INSERT-ADJS-WD>
|
||||
<END-SEGMENT>
|
||||
<ENDPACKAGE>
|
45
pstack.zabstr
Normal file
45
pstack.zabstr
Normal file
|
@ -0,0 +1,45 @@
|
|||
|
||||
<ZZPACKAGE "PSTACK">
|
||||
<ENTRY ALLOCATE-PSTACK MAX-PSTACK-SIZE PUSH-PSTACK POP-PSTACK PEEK-PSTACK
|
||||
PSTACK FLUSH-PSTACK PSTACK-PTR CLEAR-PSTACK PSTACK-DATA PSTACK-EMPTY?>
|
||||
<USE "NEWSTRUC">
|
||||
<FILE-FLAGS>
|
||||
<BEGIN-SEGMENT 0>
|
||||
<MSETG MAX-PSTACK-SIZE 21>
|
||||
<NEWTYPE PSTACK TABLE>
|
||||
<DEFMAC ALLOCATE-PSTACK () <ITABLE ,MAX-PSTACK-SIZE 0>>
|
||||
<DEFMAC PSTACK-PTR ('S "OPT" 'NEW) <COND (<ASSIGNED? NEW> <FORM ZPUT .S 0 .NEW>
|
||||
) (T <CHTYPE [<FORM ZGET .S 0> FIX] ADECL>)>>
|
||||
<DEFMAC PSTACK-EMPTY? ('PSTACK) <COND (<CHECK-VERSION? YZIP> <FORM EQUAL? <- ,
|
||||
MAX-PSTACK-SIZE 1> <FORM PSTACK-PTR .PSTACK>>) (T <FORM 0? <FORM PSTACK-PTR .
|
||||
PSTACK>>)>>
|
||||
<DEFMAC CLEAR-PSTACK ('S) <COND (<CHECK-VERSION? YZIP> <FORM PSTACK-PTR <CHTYPE
|
||||
[.S PSTACK] ADECL> <- ,MAX-PSTACK-SIZE 1>>) (T <FORM PSTACK-PTR <CHTYPE [.S
|
||||
PSTACK] ADECL> 0>)>>
|
||||
<DEFINE20 PRINT-PSTACK (S:PSTACK "OPT" (OUTCHAN:CHANNEL .OUTCHAN) "AUX" (P <
|
||||
PSTACK-PTR .S>)) <PRINT-MANY .OUTCHAN PRINC "#PSTACK [" .P " ["> <REPEAT ((D <
|
||||
ZREST .S 2>)) <COND (<L=? .P 0> <RETURN>)> <PRIN1 <ZGET .D 0>> <PRINC " "> <SET
|
||||
D <ZREST .D 2>> <SET P <- .P 1>>> <PRINC "]]">>
|
||||
<COND (<CHECK-VERSION? YZIP> <DEFMAC PUSH-PSTACK ('S 'OBJ) <FORM XPUSH .OBJ .S>
|
||||
>) (T <IF-P-DEBUGGING-PARSER <GLOBAL PSTACK-WARN:NUMBER 20>> <ROUTINE
|
||||
PUSH-PSTACK (S:PSTACK OBJ "AUX" TMP) <SET TMP <+ 1 <PSTACK-PTR .S>>> <COND (<
|
||||
L=? ,MAX-PSTACK-SIZE .TMP> <P-NO-MEM-ROUTINE> <RFALSE>)> <IF-P-DEBUGGING-PARSER
|
||||
<COND (<L? ,PSTACK-WARN .TMP> <SETG PSTACK-WARN .TMP> <PRINTI "[PSTACK: "> <
|
||||
PRINTN <- ,MAX-PSTACK-SIZE .TMP>> <PRINTI " left!]|">)>> <PSTACK-PTR .S .TMP> <
|
||||
ZPUT .S .TMP .OBJ> .S>)>
|
||||
<COND (<CHECK-VERSION? YZIP> <DEFMAC FLUSH-PSTACK ('S "OPT" ('N 1)) <FORM
|
||||
FSTACK .N .S>>) (T <ROUTINE FLUSH-PSTACK (S:PSTACK "OPT" (N:FIX 1)) <COND (<G?
|
||||
0 <SET N <- <PSTACK-PTR .S> .N>>> <SET N 0>)> <PSTACK-PTR .S .N> .S>)>
|
||||
<COND (<CHECK-VERSION? YZIP> <DEFMAC POP-PSTACK ('S "OPT" ('N 1)) <COND (<1? .N
|
||||
> <FORM POP .S>) (T <FORM FSTACK .N .S>)>>) (T <ROUTINE POP-PSTACK (S:PSTACK
|
||||
"OPT" (N:FIX 1) "AUX" (OBJ <PEEK-PSTACK .S>)) <COND (<NOT <0? .N>> <
|
||||
FLUSH-PSTACK .S .N>)> .OBJ>)>
|
||||
<COND (<CHECK-VERSION? YZIP> <ROUTINE PEEK-PSTACK (S "OPT" (OFFS 0) "AUX" (N 0)
|
||||
VAL) <REPEAT () <SET VAL <POP .S>> <PUSH .VAL> <SET N <ADD N 1>> <COND (<LESS?
|
||||
<SET OFFS <SUB OFFS 1>> 0> <RETURN>)>> <REPEAT () <COND (<LESS? <SET N <SUB N 1
|
||||
>> 0> <RETURN>) (T <XPUSH #ZLOCAL!-IZILCH STACK .S>)>> .VAL>) (T <ROUTINE
|
||||
PEEK-PSTACK (S:PSTACK "OPT" (OFFS:FIX 0)) <ZGET .S <- <PSTACK-PTR .S> .OFFS>>>)
|
||||
>
|
||||
<DEFINE-ROUTINE PEEK-PSTACK>
|
||||
<END-SEGMENT>
|
||||
<ENDPACKAGE>
|
18
pstack.zap
Normal file
18
pstack.zap
Normal file
|
@ -0,0 +1,18 @@
|
|||
|
||||
.SEGMENT "0"
|
||||
|
||||
|
||||
.FUNCT PEEK-PSTACK:ANY:1:2,S,OFFS,N,VAL
|
||||
?PRG1: POP S >VAL
|
||||
PUSH VAL
|
||||
INC 'N
|
||||
DLESS? 'OFFS,0 \?PRG1
|
||||
?PRG5: DLESS? 'N,0 /?REP6
|
||||
POP
|
||||
XPUSH STACK,S /?PRG5
|
||||
JUMP ?PRG5
|
||||
?REP6: RETURN VAL
|
||||
|
||||
.ENDSEG
|
||||
|
||||
.ENDI
|
91
reds.zabstr
Normal file
91
reds.zabstr
Normal file
|
@ -0,0 +1,91 @@
|
|||
<FLAGS-AND-DEFAULTS (("P-BE-VERB" T)("ONE-BYTE-PARTS-OF-SPEECH" %<>)(
|
||||
"WORD-FLAGS-IN-TABLE" T)("IN-ZILCH" T)("P-ZORK0" %<>)) (("NOT-HERE-VERB?"
|
||||
"DEFS" #WORD *27521557224*) ("DIR-VERB-PRSI?" "DEFS" #WORD *07505151377*))>
|
||||
|
||||
<ZZPACKAGE "REDS">
|
||||
<ENTRY RED-SP RED-ADV RED-PART RED-SV RED-SVN RED-SVNP RED-SVPNPN RED-SVPNN
|
||||
RED-SVNPN RED-SVD RED-PERS RED-VP RED-NP RED-OF RED-QT RED-QN RED-NPP RED-PP
|
||||
RED-POSS RED-ADJ RED-QUOTE>
|
||||
<ENTRY RED-O-ADJ RED-O-PP RED-O-NP NUMERIC-ADJ? DIR-VERB-WORD?>
|
||||
<INCLUDE "BASEDEFS" "FIND" "PBITDEFS" "PDEFS">
|
||||
<USE "NEWSTRUC" "PARSER" "PMEM" "PSTACK">
|
||||
<FILE-FLAGS MDL-ZIL?>
|
||||
<BEGIN-SEGMENT 0>
|
||||
<DEFAULTS-DEFINED DIR-VERB-PRSI? DIR-VERB-WORD? NOT-HERE-VERB?>
|
||||
<DEFAULT-DEFINITION DIR-VERB-PRSI? <DEFINE DIR-VERB-PRSI? (NP) <AND <EQUAL? <
|
||||
PARSE-ACTION ,PARSE-RESULT> ,V?MOVE-DIR ,V?RIDE-DIR ,V?ROLL-DIR ,V?SET-DIR> <
|
||||
NOT <EQUAL? <NOUN-PHRASE-OBJ1 .NP> ,INTDIR ,LEFT-RIGHT>>>>>
|
||||
<DEFAULT-DEFINITION DIR-VERB-WORD? <DEFMAC DIR-VERB-WORD? ('WD) <FORM EQUAL? .
|
||||
WD ',W?WALK ',W?GO ',W?RUN>>>
|
||||
<DEFAULT-DEFINITION NOT-HERE-VERB? <DEFMAC NOT-HERE-VERB? ('V) <FORM EQUAL? .V
|
||||
',V?WALK-TO>>>
|
||||
<DEFMAC ABS ('NUM) <FORM COND (<FORM L? .NUM 0> <FORM - 0 .NUM>) (T .NUM)>>
|
||||
<DEFINE-ROUTINE RED-FCN>
|
||||
<DEFINE-ROUTINE RED-PART>
|
||||
<DEFINE-ROUTINE GET-SYNTAX>
|
||||
<DEFINE-ROUTINE RED-SV>
|
||||
<DEFINE-ROUTINE ROOT-VERB>
|
||||
<DEFINE-ROUTINE RED-SVN>
|
||||
<DEFINE-ROUTINE RED-SVNP>
|
||||
<DEFINE-ROUTINE RED-SVNPN>
|
||||
<DEFINE-ROUTINE RED-SVPNN>
|
||||
<DEFINE-ROUTINE RED-SVPNPN>
|
||||
<DEFINE-ROUTINE RED-SVD>
|
||||
<DEFINE-ROUTINE RED-SP>
|
||||
<GLOBAL SEARCH-FLAGS:NUMBER 0>
|
||||
<DEFINE-ROUTINE IREDUCE-EXCEPTION>
|
||||
<DEFINE-ROUTINE REDUCE-EXCEPT-IT>
|
||||
<DEFINE-ROUTINE REDUCE-EXCEPTION>
|
||||
<CONSTANT P-NO-INSIDE "No inside">
|
||||
<CONSTANT P-NO-SURFACE "No surface">
|
||||
<CONSTANT P-NOTHING "Nothing">
|
||||
<CONSTANT PREP-BIT <ITABLE 3 0>>
|
||||
<DEFINE-ROUTINE REDUCE-LOCATION>
|
||||
<COND (<GASSIGNED? DO-TEST-PREP> <SETG TEST-PREP <TABLE ,DO-TEST-PREP>>)>
|
||||
<DEFINE-ROUTINE DETERMINE-OBJ>
|
||||
<DEFINE-ROUTINE CHECK-DIR-ADJS>
|
||||
<DEFINE-ROUTINE NUMERIC-ADJ?>
|
||||
<COMPILATION-FLAG-DEFAULT P-GENDERS T>
|
||||
<VOC "HIMSELF" NOUN>
|
||||
<VOC "HERSELF" NOUN>
|
||||
<DEFINE-ROUTINE DETERMINE-NP>
|
||||
<DEFINE-ROUTINE DET-NP-NOT-HERE?>
|
||||
<DEFINE-ROUTINE DET-NP-OWNEE?>
|
||||
<DEFINE-ROUTINE FIND-OWNERS>
|
||||
<DEFINE-ROUTINE READY-TO-DISAMBIGUATE?>
|
||||
<DEFINE-ROUTINE DETERMINE-NP-XFER>
|
||||
<DEFINE-ROUTINE DO-ORPHAN-TEST>
|
||||
<DEFINE-ROUTINE RED-O-ADJ>
|
||||
<DEFINE-ROUTINE RED-O-PP>
|
||||
<DEFINE-ROUTINE INSERT-NP>
|
||||
<DEFINE-ROUTINE TEST-SR>
|
||||
<DEFINE-ROUTINE RED-O-NP>
|
||||
<DEFINE-ROUTINE RED-PERS>
|
||||
<DEFINE-ROUTINE HACK-TELL>
|
||||
<DEFINE-ROUTINE HACK-TELL-1>
|
||||
<DEFINE-ROUTINE RED-VP>
|
||||
<DEFINE-ROUTINE RED-NP>
|
||||
<DEFINE-ROUTINE RED-OF>
|
||||
<DEFINE-ROUTINE RED-QT>
|
||||
<DEFINE-ROUTINE GET-QUANTITY-WORD>
|
||||
<DEFINE-ROUTINE GET-QUANTITY>
|
||||
<DEFINE-ROUTINE RED-QN>
|
||||
<DEFINE-ROUTINE RED-NPP>
|
||||
<DEFINE-ROUTINE RED-PP>
|
||||
<ADD-WORD MY ADJ>
|
||||
<ADD-WORD ME NOUN>
|
||||
<ADD-WORD YOUR ADJ>
|
||||
<ADD-WORD YOU NOUN>
|
||||
<ADD-WORD ITS ADJ>
|
||||
<ADD-WORD IT NOUN>
|
||||
<ADD-WORD HIS ADJ>
|
||||
<ADD-WORD HIM NOUN>
|
||||
<ADD-WORD THEIR ADJ>
|
||||
<ADD-WORD THEM NOUN>
|
||||
<DEFINE-ROUTINE RED-POSS>
|
||||
<CONSTANT LAST-OBJECT 0>
|
||||
<DEFINE-ROUTINE RED-ADJ>
|
||||
<OBJECT INTQUOTE (LOC GLOBAL-OBJECTS) (DESC "quotation")>
|
||||
<DEFINE-ROUTINE RED-QUOTE>
|
||||
<END-SEGMENT>
|
||||
<ENDPACKAGE>
|
29
return1.zabstr
Normal file
29
return1.zabstr
Normal file
|
@ -0,0 +1,29 @@
|
|||
|
||||
<GLOBAL GL-RETURN1-DONE? <> <> BYTE>
|
||||
<OBJECT TH-CATFISH-LOCKER (LOC RM-PERSONAL-STORAGE-2) (DESC "locker") (FLAGS
|
||||
FL-SEARCH FL-TAKEABLE FL-CONTAINER FL-OPENABLE) (SYNONYM LOCKER) (ADJECTIVE
|
||||
CATFISH) (SIZE 5) (ACTION RT-TH-CATFISH-LOCKER)>
|
||||
<DEFINE-ROUTINE RT-TH-CATFISH-LOCKER>
|
||||
<OBJECT TH-STEEL-BOX (LOC TH-CATFISH-LOCKER) (DESC "box") (FLAGS FL-SEARCH
|
||||
FL-TAKEABLE FL-CONTAINER FL-OPENABLE FL-LOCKED) (SYNONYM BOX) (ADJECTIVE STEEL
|
||||
CATFISH) (SIZE 5) (ACTION RT-TH-STEEL-BOX)>
|
||||
<DEFINE-ROUTINE RT-TH-STEEL-BOX>
|
||||
<OBJECT TH-CLUE-PAPER (LOC TH-CATFISH-LOCKER) (DESC "paper") (FLAGS FL-TAKEABLE
|
||||
FL-READABLE) (SYNONYM PAPER) (SIZE 5) (ACTION RT-TH-CLUE-PAPER)>
|
||||
<DEFINE-ROUTINE RT-TH-CLUE-PAPER>
|
||||
<OBJECT TH-STEEL-KEY (DESC "steel key") (FLAGS FL-KEY FL-SEARCH FL-TAKEABLE) (
|
||||
SYNONYM KEY) (ADJECTIVE STEEL) (OWNER TH-DRYER) (SIZE 5) (ACTION
|
||||
RT-TH-STEEL-KEY)>
|
||||
<DEFINE-ROUTINE RT-TH-STEEL-KEY>
|
||||
<OBJECT TH-DRYER (LOC RM-LAUNDRY) (DESC "dryer") (FLAGS FL-CONTAINER
|
||||
FL-OPENABLE FL-SEARCH FL-TAKEABLE) (SYNONYM DRYER) (SIZE 5) (ACTION RT-TH-DRYER
|
||||
)>
|
||||
<DEFINE-ROUTINE RT-TH-DRYER>
|
||||
<OBJECT TH-PASSPORT (LOC TH-STEEL-BOX) (DESC "passport") (FLAGS FL-SEARCH
|
||||
FL-TAKEABLE) (SYNONYM PASSPORT) (ADJECTIVE CATFISH) (SIZE 5) (ACTION
|
||||
RT-TH-PASSPORT)>
|
||||
<DEFINE-ROUTINE RT-TH-PASSPORT>
|
||||
<OBJECT TH-DISCHARGE (LOC TH-STEEL-BOX) (DESC "discharge") (FLAGS FL-SEARCH
|
||||
FL-TAKEABLE) (SYNONYM DISCHARGE) (ADJECTIVE CATFISH MILITARY MARINE MARINES
|
||||
HONORABLE PAPERS) (OWNER CH-CATFISH) (SIZE 5) (ACTION RT-TH-DISCHARGE)>
|
||||
<DEFINE-ROUTINE RT-TH-DISCHARGE>
|
56
return1.zap
Normal file
56
return1.zap
Normal file
|
@ -0,0 +1,56 @@
|
|||
|
||||
|
||||
.FUNCT RT-TH-CATFISH-LOCKER:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-STEEL-BOX:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-CLUE-PAPER:ANY:0:1,CONTEXT
|
||||
EQUAL? PRSA,V?READ \FALSE
|
||||
PRINTR "On the paper are written the words, ""IN HER DRY BED."""
|
||||
|
||||
|
||||
.FUNCT RT-TH-STEEL-KEY:ANY:0:1,CONTEXT,V
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?TAKE \FALSE
|
||||
GETP TH-STEEL-KEY,P?OWNER
|
||||
EQUAL? STACK,TH-DRYER \FALSE
|
||||
CALL1 ITAKE >V
|
||||
EQUAL? V,M-FATAL \?CCL11
|
||||
RETURN 2
|
||||
?CCL11: ZERO? V /FALSE
|
||||
PUTP TH-STEEL-KEY,P?OWNER,FALSE-VALUE
|
||||
PRINTR " You peel the key off the back of the dryer."
|
||||
|
||||
|
||||
.FUNCT RT-TH-DRYER:ANY:0:1,CONTEXT
|
||||
EQUAL? PRSA,V?REACH-BEHIND,V?LOOK-BEHIND \FALSE
|
||||
GETP TH-STEEL-KEY,P?OWNER
|
||||
EQUAL? STACK,TH-DRYER \FALSE
|
||||
MOVE TH-STEEL-KEY,RM-LAUNDRY
|
||||
ICALL2 THIS-IS-IT,TH-STEEL-KEY
|
||||
PRINTR " Taped to the back of the dryer is a small steel key."
|
||||
|
||||
|
||||
.FUNCT RT-TH-PASSPORT:ANY:0:1,CONTEXT
|
||||
EQUAL? PRSA,V?SHOW \FALSE
|
||||
EQUAL? PRSI,CH-COFFEY \FALSE
|
||||
FSET? CH-CATFISH,FL-ASLEEP \FALSE
|
||||
PRINTR " Coffey glances at the passport and shrugs with contempt. ""Big deal. These things are a dime a dozen. Any spy would have one."""
|
||||
|
||||
|
||||
.FUNCT RT-TH-DISCHARGE:ANY:0:1,CONTEXT
|
||||
EQUAL? PRSA,V?EXAMINE \?CCL3
|
||||
PRINTR " It's an honorable discharge from the United States Marine Corps."
|
||||
?CCL3: EQUAL? PRSA,V?SHOW \FALSE
|
||||
EQUAL? PRSI,CH-COFFEY \FALSE
|
||||
FSET? CH-CATFISH,FL-ASLEEP \FALSE
|
||||
FCLEAR CH-CATFISH,FL-ASLEEP
|
||||
PRINTR " Coffey peers at the document carefully. ""This thing's an original, and I know the forms are kept locked up tighter than Fort Knox. It's even signed by Commander McMahon himself. I suppose it could have been forged, but I guess I was wrong all along.""
|
||||
He turns Catfish over and slaps him on the face a couple of times to bring him around. When Catfish has regained a semblence of consciousness, Coffey says, ""I'm sorry, fella. I guess I got carried away.""
|
||||
Catfish drags himself to his feet and says groggily, ""Don't mention it. Maybe I can do the same for you some day."""
|
||||
|
||||
.ENDI
|
183
return1.zil
Normal file
183
return1.zil
Normal file
|
@ -0,0 +1,183 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : RETURN1.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 20 Mar 1989 8:45:16 $"
|
||||
; "rev : $Revision: 1.3 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "First return to Deepcore"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
<GLOBAL GL-RETURN1-DONE? <> <> BYTE>
|
||||
|
||||
<OBJECT TH-CATFISH-LOCKER
|
||||
(LOC RM-PERSONAL-STORAGE-2)
|
||||
(DESC "locker")
|
||||
(FLAGS FL-SEARCH FL-TAKEABLE FL-CONTAINER FL-OPENABLE)
|
||||
(SYNONYM LOCKER)
|
||||
(ADJECTIVE CATFISH)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-CATFISH-LOCKER)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-CATFISH-LOCKER ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
<OBJECT TH-STEEL-BOX
|
||||
(LOC TH-CATFISH-LOCKER)
|
||||
(DESC "box")
|
||||
(FLAGS FL-SEARCH FL-TAKEABLE FL-CONTAINER FL-OPENABLE FL-LOCKED)
|
||||
(SYNONYM BOX)
|
||||
(ADJECTIVE STEEL CATFISH)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-STEEL-BOX)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-STEEL-BOX ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
<OBJECT TH-CLUE-PAPER
|
||||
(LOC TH-CATFISH-LOCKER ;TH-STEEL-BOX)
|
||||
(DESC "paper")
|
||||
(FLAGS FL-TAKEABLE FL-READABLE)
|
||||
(SYNONYM PAPER)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-CLUE-PAPER)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-CLUE-PAPER ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(<VERB? READ>
|
||||
<TELL "On the paper are written the words, \"IN HER DRY BED.\"" CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-STEEL-KEY
|
||||
(DESC "steel key")
|
||||
(FLAGS FL-KEY FL-SEARCH FL-TAKEABLE)
|
||||
(SYNONYM KEY)
|
||||
(ADJECTIVE STEEL)
|
||||
(OWNER TH-DRYER)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-STEEL-KEY)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-STEEL-KEY ("OPT" (CONTEXT <>) "AUX" V)
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? TAKE>
|
||||
<COND
|
||||
(<EQUAL? <GETP ,TH-STEEL-KEY ,P?OWNER> ,TH-DRYER>
|
||||
<SET V <ITAKE>>
|
||||
<COND
|
||||
(<EQUAL? .V ,M-FATAL>
|
||||
<RFATAL>
|
||||
)
|
||||
(.V
|
||||
<PUTP ,TH-STEEL-KEY ,P?OWNER <>>
|
||||
<TELL " You peel the key off the back of the dryer." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-DRYER
|
||||
(LOC RM-LAUNDRY)
|
||||
(DESC "dryer")
|
||||
(FLAGS FL-CONTAINER FL-OPENABLE FL-SEARCH FL-TAKEABLE)
|
||||
(SYNONYM DRYER)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-DRYER)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-DRYER ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(<VERB? LOOK-BEHIND REACH-BEHIND>
|
||||
<COND
|
||||
(<EQUAL? <GETP ,TH-STEEL-KEY ,P?OWNER> ,TH-DRYER>
|
||||
; <FCLEAR ,TH-STEEL-KEY ,FL-INVISIBLE>
|
||||
<MOVE ,TH-STEEL-KEY ,RM-LAUNDRY>
|
||||
<THIS-IS-IT ,TH-STEEL-KEY>
|
||||
<TELL " Taped to the back of the dryer is a small steel key." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-PASSPORT
|
||||
(LOC TH-STEEL-BOX)
|
||||
(DESC "passport")
|
||||
(FLAGS FL-SEARCH FL-TAKEABLE)
|
||||
(SYNONYM PASSPORT)
|
||||
(ADJECTIVE CATFISH)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-PASSPORT)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-PASSPORT ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(<AND <VERB? SHOW>
|
||||
<MC-PRSI? ,CH-COFFEY>
|
||||
<FSET? ,CH-CATFISH ,FL-ASLEEP>
|
||||
>
|
||||
<TELL
|
||||
" Coffey glances at the passport and shrugs with contempt. \"Big deal.
|
||||
These things are a dime a dozen. Any spy would have one.\"" CR
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-DISCHARGE
|
||||
(LOC TH-STEEL-BOX)
|
||||
(DESC "discharge")
|
||||
(FLAGS FL-SEARCH FL-TAKEABLE)
|
||||
(SYNONYM DISCHARGE)
|
||||
(ADJECTIVE CATFISH MILITARY MARINE MARINES HONORABLE PAPERS)
|
||||
(OWNER CH-CATFISH)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-DISCHARGE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-DISCHARGE ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(<VERB? EXAMINE>
|
||||
<TELL
|
||||
" It's an honorable discharge from the United States Marine Corps." CR
|
||||
>
|
||||
)
|
||||
(<AND <VERB? SHOW>
|
||||
<MC-PRSI? ,CH-COFFEY>
|
||||
<FSET? ,CH-CATFISH ,FL-ASLEEP>
|
||||
>
|
||||
<FCLEAR ,CH-CATFISH ,FL-ASLEEP>
|
||||
<TELL
|
||||
" Coffey peers at the document carefully. \"This thing's an original, and
|
||||
I know the forms are kept locked up tighter than Fort Knox. It's even
|
||||
signed by Commander McMahon himself. I suppose it could have been
|
||||
forged, but I guess I was wrong all along.\"|
|
||||
He turns Catfish over and slaps him on the face a couple of times to
|
||||
bring him around. When Catfish has regained a semblence of consciousness,
|
||||
Coffey says, \"I'm sorry, fella. I guess I got carried away.\"|
|
||||
Catfish drags himself to his feet and says groggily, \"Don't mention it.
|
||||
Maybe I can do the same for you some day.\"" CR
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
23
return2.zabstr
Normal file
23
return2.zabstr
Normal file
|
@ -0,0 +1,23 @@
|
|||
<FLAGS-AND-DEFAULTS (("IN-ZILCH" T)) ()>
|
||||
|
||||
<GLOBAL GL-RETURN2-DONE? <> <> BYTE>
|
||||
<GLOBAL GL-COFFEY-SHOOT 0 <> BYTE>
|
||||
<OBJECT TH-GUN (LOC CH-COFFEY) (DESC "gun") (FLAGS FL-TAKEABLE) (SYNONYM GUN
|
||||
PISTOL) (OWNER CH-COFFEY) (SIZE 5) (ACTION RT-TH-GUN)>
|
||||
<DEFINE-ROUTINE RT-TH-GUN>
|
||||
<OBJECT TH-FBS-SUIT (LOC TH-DIVE-LOCKER) (DESC "FBS suit") (FLAGS FL-CLOTHING
|
||||
FL-TAKEABLE) (SYNONYM SUIT) (ADJECTIVE FBS FLUID BREATHING SYSTEM) (SIZE 5) (
|
||||
ACTION RT-TH-FBS-SUIT)>
|
||||
<DEFINE-ROUTINE RT-TH-FBS-SUIT>
|
||||
<OBJECT TH-DIVE-LOCKER (LOC RM-SUB-BAY) (DESC "dive locker") (FLAGS
|
||||
FL-CONTAINER FL-LOCKED FL-OPENABLE FL-SEARCH FL-TRY-TAKE) (SYNONYM LOCKER) (
|
||||
ADJECTIVE DIVE) (SIZE 5) (ACTION RT-TH-DIVE-LOCKER)>
|
||||
<DEFINE-ROUTINE RT-TH-DIVE-LOCKER>
|
||||
<OBJECT TH-ELECTRONIC-LOCK (LOC TH-DIVE-LOCKER) (DESC "lock") (SYNONYM LOCK) (
|
||||
ADJECTIVE ELECTRONIC) (SIZE 5) (ACTION RT-TH-ELECTRONIC-LOCK)>
|
||||
<DEFINE-ROUTINE RT-TH-ELECTRONIC-LOCK>
|
||||
<OBJECT TH-DEVICE (LOC CH-HIPPY) (DESC "device") (SYNONYM DEVICE) (ADJECTIVE
|
||||
REMOTE ELECTRONIC) (OWNER CH-HIPPY) (SIZE 5) (ACTION RT-TH-DEVICE)>
|
||||
<DEFINE-ROUTINE RT-TH-DEVICE>
|
||||
<SYNTAX $NITROGEN = V-$NITROGEN>
|
||||
<DEFINE-ROUTINE V-$NITROGEN>
|
47
return2.zap
Normal file
47
return2.zap
Normal file
|
@ -0,0 +1,47 @@
|
|||
|
||||
|
||||
.FUNCT RT-TH-GUN:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-FBS-SUIT:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-DIVE-LOCKER:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?LIFT,V?PULL /?CCL5
|
||||
EQUAL? PRSA,V?PUSH,V?MOVE,V?TAKE \FALSE
|
||||
?CCL5: PRINTR " The dive locker is securely anchored to the floor."
|
||||
|
||||
|
||||
.FUNCT RT-TH-ELECTRONIC-LOCK:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-DEVICE:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT V-$NITROGEN:ANY:0:0
|
||||
EQUAL? HERE,RM-GAS-MIX-ROOM \?CCL3
|
||||
FSET? LG-CHAMBER-DOOR,FL-OPEN \?CCL6
|
||||
PRINTI "[The compression chamber door must be closed.]
|
||||
"
|
||||
RETURN 2
|
||||
?CCL6: ZERO? GL-WIRE-SEQUENCE \?CND9
|
||||
RANDOM 4 >GL-WIRE-SEQUENCE
|
||||
?CND9: PRINTI " Coffey begins to babble incoherently. You can hear him say, """
|
||||
EQUAL? GL-WIRE-SEQUENCE,1 \?CCL13
|
||||
PRINTR "Oxford rows great big wide yachts."""
|
||||
?CCL13: EQUAL? GL-WIRE-SEQUENCE,2 \?CCL15
|
||||
PRINTR "Yankees rarely win over Green Bay."""
|
||||
?CCL15: EQUAL? GL-WIRE-SEQUENCE,3 \?CCL17
|
||||
PRINTR "Get rid of your wet bananas."""
|
||||
?CCL17: EQUAL? GL-WIRE-SEQUENCE,4 \FALSE
|
||||
PRINTR "Go west, young boy, or rot."""
|
||||
?CCL3: PRINTI "[You must be in the gas mix room to use $NITROGEN.]
|
||||
"
|
||||
RETURN 2
|
||||
|
||||
.ENDI
|
138
return2.zil
Normal file
138
return2.zil
Normal file
|
@ -0,0 +1,138 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : RETURN2.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 20 Mar 1989 8:44:38 $"
|
||||
; "rev : $Revision: 1.2 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Second return to Deepcore"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
<GLOBAL GL-RETURN2-DONE? <> <> BYTE>
|
||||
<GLOBAL GL-COFFEY-SHOOT 0 <> BYTE>
|
||||
|
||||
<OBJECT TH-GUN
|
||||
(LOC CH-COFFEY)
|
||||
(DESC "gun")
|
||||
(FLAGS FL-TAKEABLE)
|
||||
(SYNONYM GUN PISTOL)
|
||||
(OWNER CH-COFFEY)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-GUN)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-GUN ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
<OBJECT TH-FBS-SUIT
|
||||
(LOC TH-DIVE-LOCKER)
|
||||
(DESC "FBS suit")
|
||||
(FLAGS FL-CLOTHING FL-TAKEABLE)
|
||||
(SYNONYM SUIT)
|
||||
(ADJECTIVE FBS FLUID BREATHING SYSTEM)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-FBS-SUIT)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-FBS-SUIT ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
<OBJECT TH-DIVE-LOCKER
|
||||
(LOC RM-SUB-BAY)
|
||||
(DESC "dive locker")
|
||||
(FLAGS FL-CONTAINER FL-LOCKED FL-OPENABLE FL-SEARCH FL-TRY-TAKE)
|
||||
(SYNONYM LOCKER)
|
||||
(ADJECTIVE DIVE)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-DIVE-LOCKER)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-DIVE-LOCKER ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? TAKE MOVE PUSH PULL LIFT>
|
||||
<TELL " The dive locker is securely anchored to the floor." CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-ELECTRONIC-LOCK
|
||||
(LOC TH-DIVE-LOCKER)
|
||||
(DESC "lock")
|
||||
(SYNONYM LOCK)
|
||||
(ADJECTIVE ELECTRONIC)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-ELECTRONIC-LOCK)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-ELECTRONIC-LOCK ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
<OBJECT TH-DEVICE
|
||||
(LOC CH-HIPPY)
|
||||
(DESC "device")
|
||||
(SYNONYM DEVICE)
|
||||
(ADJECTIVE REMOTE ELECTRONIC)
|
||||
(OWNER CH-HIPPY)
|
||||
(SIZE 5)
|
||||
(ACTION RT-TH-DEVICE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-DEVICE ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
; "Cheat verb for causing narcosis for Coffey."
|
||||
<SYNTAX $NITROGEN = V-$NITROGEN>
|
||||
<ROUTINE V-$NITROGEN ()
|
||||
<COND
|
||||
(<MC-HERE? ,RM-GAS-MIX-ROOM>
|
||||
<COND
|
||||
(<FSET? ,LG-CHAMBER-DOOR ,FL-OPEN>
|
||||
<TELL "[The compression chamber door must be closed.]|">
|
||||
<RFATAL>
|
||||
)
|
||||
(T
|
||||
<COND
|
||||
(<ZERO? ,GL-WIRE-SEQUENCE>
|
||||
<SETG GL-WIRE-SEQUENCE <RANDOM 4>>
|
||||
)
|
||||
>
|
||||
<TELL
|
||||
" Coffey begins to babble incoherently. You can hear him say, \""
|
||||
>
|
||||
<COND
|
||||
(<EQUAL? ,GL-WIRE-SEQUENCE 1>
|
||||
<TELL "Oxford rows great big wide yachts.\"" CR>
|
||||
)
|
||||
(<EQUAL? ,GL-WIRE-SEQUENCE 2>
|
||||
<TELL "Yankees rarely win over Green Bay.\"" CR>
|
||||
)
|
||||
(<EQUAL? ,GL-WIRE-SEQUENCE 3>
|
||||
<TELL "Get rid of your wet bananas.\"" CR>
|
||||
)
|
||||
(<EQUAL? ,GL-WIRE-SEQUENCE 4>
|
||||
<TELL "Go west, young boy, or rot.\"" CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<TELL "[You must be in the gas mix room to use $NITROGEN.]|">
|
||||
<RFATAL>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
76
stopper.zabstr
Normal file
76
stopper.zabstr
Normal file
|
@ -0,0 +1,76 @@
|
|||
<FLAGS-AND-DEFAULTS (("WORD-FLAGS-IN-TABLE" T)) ()>
|
||||
|
||||
<ROOM RM-TRI-MIX-STORAGE (LOC ROOMS) (DESC "tri-mix storage") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM STORAGE) (ADJECTIVE TRI MIX TRI-MIX) (FORE TO
|
||||
RM-COMPRESSOR-ROOM) (AFT TO RM-LADDER-D1) (GLOBAL LG-WALL RM-COMPRESSOR-ROOM
|
||||
RM-LADDER-D1) (ACTION RT-RM-TRI-MIX-STORAGE)>
|
||||
<CONSTANT K-HISS-MSG
|
||||
" You hear a loud hissing coming from somewhere in the room.|">
|
||||
<DEFINE-ROUTINE RT-RM-TRI-MIX-STORAGE>
|
||||
<NEW-ADD-WORD "TANKS" NOUN <VOC "TANK"> ,PLURAL-FLAG>
|
||||
<GLOBAL GL-NITROGEN-LEAK? <> <> BYTE>
|
||||
<CONSTANT K-GAS-TANK-MSG
|
||||
" It is a huge cylinder that looks like a giant capsule. It is supported
|
||||
by four legs that are welded to a steel base to provide stability. The base
|
||||
is raised up off the floor by about an inch.|
|
||||
On the front of the tank is a k-valve that looks a little like a beer
|
||||
tap.">
|
||||
<OBJECT TH-NITROGEN-TANK (LOC RM-TRI-MIX-STORAGE) (DESC "nitrogen tank") (FLAGS
|
||||
FL-NO-DESC FL-SURFACE FL-SEARCH) (SYNONYM TANK BASE) (ADJECTIVE NITROGEN
|
||||
STORAGE) (GENERIC RT-GN-TANK) (ACTION RT-TH-NITROGEN-TANK)>
|
||||
<DEFINE-ROUTINE RT-TH-NITROGEN-TANK>
|
||||
<OBJECT TH-NIT-VALVE (LOC TH-NITROGEN-TANK) (DESC "nitrogen valve") (FLAGS
|
||||
FL-CONTAINER FL-NO-DESC FL-ON FL-OPEN FL-SEARCH) (SYNONYM VALVE K-VALVE) (
|
||||
ADJECTIVE NITROGEN K) (GENERIC RT-GN-VALVE) (ACTION RT-TH-NIT-VALVE)>
|
||||
<DEFINE-ROUTINE RT-TH-NIT-VALVE>
|
||||
<OBJECT TH-NIT-STOPPER (LOC RM-TRI-MIX-STORAGE) (DESC "nitrogen stopper") (
|
||||
FLAGS FL-INVISIBLE FL-NO-DESC FL-TAKEABLE) (SYNONYM STOPPER) (ADJECTIVE
|
||||
NITROGEN) (OWNER TH-NITROGEN-TANK) (GENERIC RT-GN-STOPPER) (ACTION
|
||||
RT-TH-NIT-STOPPER)>
|
||||
<DEFINE-ROUTINE RT-TH-NIT-STOPPER>
|
||||
<DEFINE-ROUTINE RT-GET-STOPPER>
|
||||
<GLOBAL GL-N-LOOP 0 <> BYTE>
|
||||
<DEFINE-ROUTINE RT-I-NITROGEN-LEAK>
|
||||
<DEFINE-ROUTINE RT-TH-NIT-BASE>
|
||||
<OBJECT TH-OXYGEN-TANK (LOC RM-TRI-MIX-STORAGE) (DESC "oxygen tank") (FLAGS
|
||||
FL-NO-DESC FL-SURFACE FL-SEARCH) (SYNONYM TANK BASE) (ADJECTIVE OXYGEN STORAGE)
|
||||
(GENERIC RT-GN-TANK) (ACTION RT-TH-OXYGEN-TANK)>
|
||||
<DEFINE-ROUTINE RT-TH-OXYGEN-TANK>
|
||||
<OBJECT TH-OXY-VALVE (LOC TH-OXYGEN-TANK) (DESC "oxygen valve") (FLAGS
|
||||
FL-CONTAINER FL-NO-DESC FL-OPEN FL-SEARCH) (SYNONYM VALVE K-VALVE) (ADJECTIVE
|
||||
OXYGEN K) (GENERIC RT-GN-VALVE) (ACTION RT-TH-OXY-VALVE)>
|
||||
<DEFINE-ROUTINE RT-TH-OXY-VALVE>
|
||||
<OBJECT TH-OXY-STOPPER (LOC TH-OXY-VALVE) (DESC "oxygen stopper") (FLAGS
|
||||
FL-NO-DESC FL-TRY-TAKE) (SYNONYM STOPPER) (ADJECTIVE OXYGEN) (GENERIC
|
||||
RT-GN-STOPPER) (ACTION RT-TH-OXY-STOPPER)>
|
||||
<DEFINE-ROUTINE RT-TH-OXY-STOPPER>
|
||||
<DEFINE-ROUTINE RT-TH-OXY-BASE>
|
||||
<OBJECT TH-HELIUM-TANK (LOC RM-TRI-MIX-STORAGE) (DESC "helium tank") (FLAGS
|
||||
FL-NO-DESC FL-SURFACE FL-SEARCH) (SYNONYM TANK BASE) (ADJECTIVE HELIUM STORAGE)
|
||||
(GENERIC RT-GN-TANK) (ACTION RT-TH-HELIUM-TANK)>
|
||||
<DEFINE-ROUTINE RT-TH-HELIUM-TANK>
|
||||
<OBJECT TH-HEL-VALVE (LOC TH-HELIUM-TANK) (DESC "helium valve") (FLAGS
|
||||
FL-CONTAINER FL-NO-DESC FL-OPEN FL-SEARCH) (SYNONYM VALVE K-VALVE) (ADJECTIVE
|
||||
HELIUM K) (GENERIC RT-GN-VALVE) (ACTION RT-TH-HEL-VALVE)>
|
||||
<DEFINE-ROUTINE RT-TH-HEL-VALVE>
|
||||
<OBJECT TH-HEL-STOPPER (LOC TH-HEL-VALVE) (DESC "helium stopper") (FLAGS
|
||||
FL-NO-DESC FL-TRY-TAKE) (SYNONYM STOPPER) (ADJECTIVE HELIUM) (GENERIC
|
||||
RT-GN-STOPPER) (ACTION RT-TH-HEL-STOPPER)>
|
||||
<DEFINE-ROUTINE RT-TH-HEL-STOPPER>
|
||||
<DEFINE-ROUTINE RT-TH-HEL-BASE>
|
||||
<DEFINE-ROUTINE RT-GN-TANK>
|
||||
<DEFINE-ROUTINE RT-GN-VALVE>
|
||||
<DEFINE-ROUTINE RT-GN-STOPPER>
|
||||
<ROOM RM-TOOL-ROOM (LOC ROOMS) (DESC "tool room") (FLAGS FL-INDOORS FL-LIGHTED)
|
||||
(SYNONYM ROOM) (ADJECTIVE TOOL) (STARBOARD TO RM-DRILL-ROOM) (PORT TO
|
||||
RM-TOOL-PUSHER-OFFICE) (GLOBAL LG-WALL RM-DRILL-ROOM RM-TOOL-PUSHER-OFFICE) (
|
||||
ACTION RT-RM-TOOL-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-TOOL-ROOM>
|
||||
<OBJECT TH-BIN (LOC RM-TOOL-ROOM) (DESC "bin") (SYNONYM BIN BINS) (FLAGS
|
||||
FL-CONTAINER FL-NO-DESC FL-OPENABLE FL-SEARCH) (SIZE 5 CAPACITY 5) (ACTION
|
||||
RT-TH-BIN)>
|
||||
<DEFINE-ROUTINE RT-TH-BIN>
|
||||
<OBJECT TH-MAGNET (LOC TH-BIN) (DESC "probe") (FLAGS FL-SURFACE FL-SEARCH
|
||||
FL-TAKEABLE) (SYNONYM MAGNET PROBE) (ADJECTIVE MAGNETIC) (ACTION RT-TH-MAGNET)>
|
||||
|
||||
<DEFINE-ROUTINE RT-TH-MAGNET>
|
221
stopper.zap
Normal file
221
stopper.zap
Normal file
|
@ -0,0 +1,221 @@
|
|||
|
||||
|
||||
.FUNCT RT-RM-TRI-MIX-STORAGE:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: PRINTI " the tri-mix storage room. There are three huge steel tanks here, each welded to a sturdy base that sits about an inch off the floor. The tanks look like giant beer kegs and this similarity is heightened by the k-valves on the front that look like beer taps. Exits here lead fore and aft.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: EQUAL? CONTEXT,M-ENTERED \?CCL8
|
||||
ZERO? GL-NITROGEN-LEAK? /FALSE
|
||||
PRINT K-HISS-MSG
|
||||
RTRUE
|
||||
?CCL8: EQUAL? CONTEXT,M-BEG \?CCL13
|
||||
EQUAL? PRSA,V?LISTEN \FALSE
|
||||
EQUAL? PRSO,ROOMS \FALSE
|
||||
ZERO? GL-NITROGEN-LEAK? /FALSE
|
||||
PRINT K-HISS-MSG
|
||||
RTRUE
|
||||
?CCL13: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-NITROGEN-TANK:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?LISTEN \?CCL5
|
||||
ZERO? GL-NITROGEN-LEAK? /?CCL8
|
||||
PRINT K-HISS-MSG
|
||||
RTRUE
|
||||
?CCL8: PRINTR "You don't hear anything unusual."
|
||||
?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL10
|
||||
CALL NOUN-USED?,TH-NITROGEN-TANK,W?BASE
|
||||
ZERO? STACK /?CCL13
|
||||
PRINTR "The base is raised up off the floor by about an inch."
|
||||
?CCL13: PRINT K-GAS-TANK-MSG
|
||||
ZERO? GL-NITROGEN-LEAK? /?CND14
|
||||
PRINTR " The hissing sound seems to be coming from here."
|
||||
?CND14: CRLF
|
||||
RTRUE
|
||||
?CCL10: EQUAL? PRSA,V?LOOK-UNDER \?CCL17
|
||||
GETP TH-NIT-STOPPER,P?OWNER
|
||||
EQUAL? STACK,TH-NITROGEN-TANK \FALSE
|
||||
FSET TH-NIT-STOPPER,FL-SEEN
|
||||
FCLEAR TH-NIT-STOPPER,FL-INVISIBLE
|
||||
PRINTR " You lie down on the floor and peer under the base of the tank. Back out of reach you see the steel gleam of the stopper. It must have rolled there after working itself loose from the k-valve."
|
||||
?CCL17: EQUAL? PRSA,V?REACH-UNDER \FALSE
|
||||
GETP TH-NIT-STOPPER,P?OWNER
|
||||
EQUAL? STACK,TH-NITROGEN-TANK \FALSE
|
||||
EQUAL? PRSI,TH-MAGNET \?CCL28
|
||||
CALL1 RT-GET-STOPPER
|
||||
RSTACK
|
||||
?CCL28: EQUAL? PRSI,FALSE-VALUE,ROOMS,TH-HANDS \FALSE
|
||||
PRINTR " You can't quite reach the stopper."
|
||||
|
||||
|
||||
.FUNCT RT-TH-NIT-VALVE:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
ZERO? NOW-PRSI /?CCL5
|
||||
EQUAL? PRSA,V?ATTACH,V?PUT-IN \FALSE
|
||||
EQUAL? PRSO,TH-NIT-STOPPER \FALSE
|
||||
MOVE TH-NIT-STOPPER,TH-NIT-VALVE
|
||||
PRINTR " You screw the stopper into the k-valve. The valve is still hissing."
|
||||
?CCL5: EQUAL? PRSA,V?LISTEN \?CCL13
|
||||
IN? TH-NIT-STOPPER,TH-NIT-VALVE /?CCL16
|
||||
PRINT K-HISS-MSG
|
||||
RTRUE
|
||||
?CCL16: PRINTR " You don't hear anything unusual."
|
||||
?CCL13: EQUAL? PRSA,V?EXAMINE \?CCL18
|
||||
PRINTI " The k-valve is a small device that controls the flow of the nitrogen."
|
||||
IN? TH-NIT-STOPPER,TH-NIT-VALVE /?CND19
|
||||
PRINTI " The valve's stopper seems to be missing"
|
||||
ZERO? GL-NITROGEN-LEAK? /?CND19
|
||||
PRINTI ", and the hissing sound is definitely coming from here"
|
||||
?CND19: PRINTR "."
|
||||
?CCL18: EQUAL? PRSA,V?OPEN \?CCL24
|
||||
FSET? TH-NIT-VALVE,FL-ON \?CCL27
|
||||
CALL2 RT-ALREADY-MSG,STR?93
|
||||
RSTACK
|
||||
?CCL27: IN? TH-NIT-STOPPER,TH-NIT-VALVE \?CCL29
|
||||
PRINTR " You decide not to open the valve, since that might cause problems."
|
||||
?CCL29: PRINTR " The stopper is missing, so the valve can't be opened."
|
||||
?CCL24: EQUAL? PRSA,V?CLOSE \FALSE
|
||||
FSET? TH-NIT-VALVE,FL-ON /?CCL34
|
||||
CALL2 RT-ALREADY-MSG,STR?79
|
||||
RSTACK
|
||||
?CCL34: IN? TH-NIT-STOPPER,TH-NIT-VALVE \?CCL36
|
||||
FCLEAR TH-NIT-VALVE,FL-ON
|
||||
SET 'GL-NITROGEN-LEAK?,FALSE-VALUE
|
||||
ICALL2 RT-DEQUEUE,RT-I-NITROGEN-LEAK
|
||||
PRINTR " You close the k-valve. The hissing stops."
|
||||
?CCL36: PRINTR " The stopper is missing, so the valve can't be closed."
|
||||
|
||||
|
||||
.FUNCT RT-TH-NIT-STOPPER:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?TAKE \?CCL5
|
||||
GETP TH-NIT-STOPPER,P?OWNER
|
||||
EQUAL? STACK,TH-NITROGEN-TANK \FALSE
|
||||
PRINTR " You can't quite reach the stopper."
|
||||
?CCL5: EQUAL? PRSA,V?TAKE-WITH \FALSE
|
||||
GETP TH-NIT-STOPPER,P?OWNER
|
||||
EQUAL? STACK,TH-NITROGEN-TANK \FALSE
|
||||
EQUAL? PRSI,TH-MAGNET \FALSE
|
||||
CALL1 RT-GET-STOPPER
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-GET-STOPPER:ANY:0:0
|
||||
MOVE TH-NIT-STOPPER,TH-MAGNET
|
||||
PUTP TH-NIT-STOPPER,P?OWNER,FALSE-VALUE
|
||||
PRINTR " You slide the magnet under the base and hear a satisfying 'click.' When you pull it out again, the stopper is stuck to the end."
|
||||
|
||||
|
||||
.FUNCT RT-I-NITROGEN-LEAK:ANY:0:0
|
||||
SET 'GL-NITROGEN-LEAK?,TRUE-VALUE
|
||||
ADD GL-MOVES,1
|
||||
ICALL RT-QUEUE,RT-I-NITROGEN-LEAK,STACK
|
||||
LESS? GL-NITROGEN-QTY,K-NIT-HIGH-1 \?CCL4
|
||||
SET 'GL-NITROGEN-QTY,K-NIT-HIGH-1
|
||||
JUMP ?CND2
|
||||
?CCL4: ADD GL-NITROGEN-QTY,47 >GL-NITROGEN-QTY
|
||||
?CND2: CALL1 RT-NITROGEN-MSG
|
||||
RSTACK
|
||||
|
||||
|
||||
.FUNCT RT-TH-NIT-BASE:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-OXYGEN-TANK:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINT K-GAS-TANK-MSG
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-TH-OXY-VALVE:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-OXY-STOPPER:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-OXY-BASE:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-HELIUM-TANK:ANY:0:1,CONTEXT
|
||||
ZERO? CONTEXT \FALSE
|
||||
EQUAL? PRSA,V?EXAMINE \FALSE
|
||||
PRINT K-GAS-TANK-MSG
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT RT-TH-HEL-VALVE:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-HEL-STOPPER:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-HEL-BASE:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-GN-TANK:ANY:2:2,TBL,FINDER,PTR,N
|
||||
ADD TBL,8 >PTR
|
||||
GET TBL,1 >N
|
||||
INTBL? TH-NITROGEN-TANK,PTR,N \FALSE
|
||||
PRINTI "[the nitrogen tank]
|
||||
"
|
||||
RETURN TH-NITROGEN-TANK
|
||||
|
||||
|
||||
.FUNCT RT-GN-VALVE:ANY:2:2,TBL,FINDER,PTR,N
|
||||
ADD TBL,8 >PTR
|
||||
GET TBL,1 >N
|
||||
INTBL? TH-NIT-VALVE,PTR,N \FALSE
|
||||
PRINTI "[the nitrogen k-valve]
|
||||
"
|
||||
RETURN TH-NIT-VALVE
|
||||
|
||||
|
||||
.FUNCT RT-GN-STOPPER:ANY:2:2,TBL,FINDER,PTR,N
|
||||
ADD TBL,8 >PTR
|
||||
GET TBL,1 >N
|
||||
INTBL? TH-NIT-STOPPER,PTR,N \FALSE
|
||||
PRINTI "[the nitrogen stopper]
|
||||
"
|
||||
RETURN TH-NIT-STOPPER
|
||||
|
||||
|
||||
.FUNCT RT-RM-TOOL-ROOM:ANY:0:1,CONTEXT
|
||||
EQUAL? CONTEXT,M-F-LOOK,M-V-LOOK,M-LOOK \?CCL3
|
||||
PRINTI " You "
|
||||
EQUAL? CONTEXT,M-LOOK \?CCL6
|
||||
PRINTI "are in"
|
||||
JUMP ?CND4
|
||||
?CCL6: PRINTI "enter"
|
||||
?CND4: PRINTI " the tool room, which lies between your office on the port side and the drill room to starboard. Bins here contain the various specialized tools of your trade.
|
||||
"
|
||||
RFALSE
|
||||
?CCL3: ZERO? CONTEXT \FALSE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-BIN:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT RT-TH-MAGNET:ANY:0:1,CONTEXT
|
||||
RFALSE
|
||||
|
||||
.ENDI
|
662
stopper.zil
Normal file
662
stopper.zil
Normal file
|
@ -0,0 +1,662 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : STOPPER.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 20 Mar 1989 8:45:06 $"
|
||||
; "rev : $Revision: 1.7 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Sub bay"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-TRI-MIX-STORAGE"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
; "Duane - we need generic routines in this room to always pick the
|
||||
nitrogen tank, nitrogen base, nitrogen k-valve, and nitrogen stopper
|
||||
when the player makes an ambiguous reference."
|
||||
|
||||
<ROOM RM-TRI-MIX-STORAGE
|
||||
(LOC ROOMS)
|
||||
(DESC "tri-mix storage")
|
||||
(FLAGS FL-INDOORS FL-LIGHTED)
|
||||
(SYNONYM STORAGE)
|
||||
(ADJECTIVE TRI MIX TRI-MIX)
|
||||
(FORE TO RM-COMPRESSOR-ROOM)
|
||||
(AFT TO RM-LADDER-D1)
|
||||
(GLOBAL LG-WALL RM-COMPRESSOR-ROOM RM-LADDER-D1)
|
||||
(ACTION RT-RM-TRI-MIX-STORAGE)
|
||||
>
|
||||
|
||||
<CONSTANT K-HISS-MSG
|
||||
" You hear a loud hissing coming from somewhere in the room.|">
|
||||
|
||||
<ROUTINE RT-RM-TRI-MIX-STORAGE ("OPTIONAL" (CONTEXT <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL " You ">
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "are in">
|
||||
)
|
||||
(T
|
||||
<TELL "enter">
|
||||
)
|
||||
>
|
||||
<TELL
|
||||
" the tri-mix storage room. There are three huge steel tanks here, each
|
||||
welded to a sturdy base that sits about an inch off the floor. The tanks
|
||||
look like giant beer kegs and this similarity is heightened by the k-valves
|
||||
on the front that look like beer taps. Exits here lead fore and aft.|"
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(<MC-CONTEXT? ,M-ENTERED>
|
||||
<COND
|
||||
(,GL-NITROGEN-LEAK?
|
||||
<TELL ,K-HISS-MSG>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<MC-CONTEXT? ,M-BEG>
|
||||
<COND
|
||||
(<AND <VERB? LISTEN>
|
||||
<MC-PRSO? ,ROOMS>
|
||||
,GL-NITROGEN-LEAK?
|
||||
>
|
||||
<TELL ,K-HISS-MSG>
|
||||
)
|
||||
>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<NEW-ADD-WORD "TANKS" NOUN <VOC "TANK"> ,PLURAL-FLAG>
|
||||
|
||||
<GLOBAL GL-NITROGEN-LEAK? <> <> BYTE>
|
||||
|
||||
<CONSTANT K-GAS-TANK-MSG
|
||||
" It is a huge cylinder that looks like a giant capsule. It is supported
|
||||
by four legs that are welded to a steel base to provide stability. The base
|
||||
is raised up off the floor by about an inch.|
|
||||
On the front of the tank is a k-valve that looks a little like a beer
|
||||
tap.">
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "NITROGEN STUFF"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-NITROGEN-TANK
|
||||
(LOC RM-TRI-MIX-STORAGE)
|
||||
(DESC "nitrogen tank")
|
||||
(FLAGS FL-NO-DESC FL-SURFACE FL-SEARCH)
|
||||
(SYNONYM TANK BASE)
|
||||
(ADJECTIVE NITROGEN STORAGE)
|
||||
(GENERIC RT-GN-TANK)
|
||||
(ACTION RT-TH-NITROGEN-TANK)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-NITROGEN-TANK ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? LISTEN>
|
||||
<COND
|
||||
(,GL-NITROGEN-LEAK?
|
||||
<TELL ,K-HISS-MSG>
|
||||
)
|
||||
(T
|
||||
<TELL "You don't hear anything unusual." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<COND
|
||||
(<NOUN-USED? ,TH-NITROGEN-TANK ,W?BASE>
|
||||
<TELL "The base is raised up off the floor by about an inch." CR>
|
||||
)
|
||||
(T
|
||||
<TELL ,K-GAS-TANK-MSG>
|
||||
<COND
|
||||
(,GL-NITROGEN-LEAK?
|
||||
<TELL " The hissing sound seems to be coming from here.">
|
||||
)
|
||||
>
|
||||
<CRLF>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<VERB? LOOK-UNDER>
|
||||
<COND
|
||||
(<EQUAL? <GETP ,TH-NIT-STOPPER ,P?OWNER> ,TH-NITROGEN-TANK>
|
||||
<FSET ,TH-NIT-STOPPER ,FL-SEEN>
|
||||
<FCLEAR ,TH-NIT-STOPPER ,FL-INVISIBLE>
|
||||
<TELL
|
||||
" You lie down on the floor and peer under the base of the tank. Back out of
|
||||
reach you see the steel gleam of the stopper. It must have rolled there after
|
||||
working itself loose from the k-valve." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<VERB? REACH-UNDER>
|
||||
<COND
|
||||
(<EQUAL? <GETP ,TH-NIT-STOPPER ,P?OWNER> ,TH-NITROGEN-TANK>
|
||||
<COND
|
||||
(<MC-PRSI? ,TH-MAGNET>
|
||||
<RT-GET-STOPPER>
|
||||
)
|
||||
(<MC-PRSI? <> ,ROOMS ,TH-HANDS>
|
||||
<TELL " You can't quite reach the stopper." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-NIT-VALVE
|
||||
(LOC TH-NITROGEN-TANK)
|
||||
(DESC "nitrogen valve")
|
||||
(FLAGS FL-CONTAINER FL-NO-DESC FL-ON FL-OPEN FL-SEARCH)
|
||||
(SYNONYM VALVE K-VALVE)
|
||||
(ADJECTIVE NITROGEN K)
|
||||
(GENERIC RT-GN-VALVE)
|
||||
(ACTION RT-TH-NIT-VALVE)
|
||||
>
|
||||
|
||||
; "TH-NIT-VALVE flags:"
|
||||
; " FL-ON = Valve is open. (Can't use FL-OPEN because it's a container.)"
|
||||
|
||||
<ROUTINE RT-TH-NIT-VALVE ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(,NOW-PRSI
|
||||
<COND
|
||||
(<VERB? PUT-IN ATTACH>
|
||||
<COND
|
||||
(<MC-PRSO? ,TH-NIT-STOPPER>
|
||||
<MOVE ,TH-NIT-STOPPER ,TH-NIT-VALVE>
|
||||
<TELL
|
||||
" You screw the stopper into the k-valve. The valve is still hissing." CR
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<VERB? LISTEN>
|
||||
<COND
|
||||
(<NOT <IN? ,TH-NIT-STOPPER ,TH-NIT-VALVE>>
|
||||
<TELL ,K-HISS-MSG>
|
||||
)
|
||||
(T
|
||||
<TELL " You don't hear anything unusual." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL
|
||||
" The k-valve is a small device that controls the flow of the nitrogen."
|
||||
>
|
||||
<COND
|
||||
(<NOT <IN? ,TH-NIT-STOPPER ,TH-NIT-VALVE>>
|
||||
<TELL " The valve's stopper seems to be missing">
|
||||
<COND
|
||||
(,GL-NITROGEN-LEAK?
|
||||
<TELL
|
||||
", and the hissing sound is definitely coming from here"
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
<TELL "." CR>
|
||||
)
|
||||
(<VERB? OPEN>
|
||||
<COND
|
||||
(<FSET? ,TH-NIT-VALVE ,FL-ON>
|
||||
<RT-ALREADY-MSG "open">
|
||||
)
|
||||
(<IN? ,TH-NIT-STOPPER ,TH-NIT-VALVE>
|
||||
<TELL
|
||||
" You decide not to open the valve, since that might cause problems." CR
|
||||
>
|
||||
)
|
||||
(T
|
||||
<TELL " The stopper is missing, so the valve can't be opened." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<VERB? CLOSE>
|
||||
<COND
|
||||
(<NOT <FSET? ,TH-NIT-VALVE ,FL-ON>>
|
||||
<RT-ALREADY-MSG "closed">
|
||||
)
|
||||
(<IN? ,TH-NIT-STOPPER ,TH-NIT-VALVE>
|
||||
<FCLEAR ,TH-NIT-VALVE ,FL-ON>
|
||||
<SETG GL-NITROGEN-LEAK? <>>
|
||||
<RT-DEQUEUE ,RT-I-NITROGEN-LEAK>
|
||||
<TELL " You close the k-valve. The hissing stops." CR>
|
||||
)
|
||||
(T
|
||||
<TELL " The stopper is missing, so the valve can't be closed." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-NIT-STOPPER
|
||||
(LOC RM-TRI-MIX-STORAGE)
|
||||
(DESC "nitrogen stopper")
|
||||
(FLAGS FL-INVISIBLE FL-NO-DESC FL-TAKEABLE)
|
||||
(SYNONYM STOPPER)
|
||||
(ADJECTIVE NITROGEN)
|
||||
(OWNER TH-NITROGEN-TANK) ;"Under nitrogen tank"
|
||||
(GENERIC RT-GN-STOPPER)
|
||||
(ACTION RT-TH-NIT-STOPPER)
|
||||
>
|
||||
|
||||
; "Duane: We need a place to put the stopper when it is under the base
|
||||
of the Nitrogen Tank. I'll leave it to you to figure that out."
|
||||
|
||||
<ROUTINE RT-TH-NIT-STOPPER ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
; (<AND <NOT <FSET? ,TH-NIT-STOPPER ,FL-SEEN>>
|
||||
<NOT <EVERYWHERE-VERB? <COND (,NOW-PRSI 2) (T 1)>>>
|
||||
>
|
||||
<NP-CANT-SEE>
|
||||
)
|
||||
(<VERB? TAKE>
|
||||
<COND
|
||||
(<EQUAL? <GETP ,TH-NIT-STOPPER ,P?OWNER> ,TH-NITROGEN-TANK>
|
||||
<TELL " You can't quite reach the stopper." CR>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<VERB? TAKE-WITH>
|
||||
<COND
|
||||
(<EQUAL? <GETP ,TH-NIT-STOPPER ,P?OWNER> ,TH-NITROGEN-TANK>
|
||||
<COND
|
||||
(<MC-PRSI? ,TH-MAGNET>
|
||||
<RT-GET-STOPPER>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-GET-STOPPER ()
|
||||
<MOVE ,TH-NIT-STOPPER ,TH-MAGNET>
|
||||
<PUTP ,TH-NIT-STOPPER ,P?OWNER <>>
|
||||
<TELL
|
||||
" You slide the magnet under the base and hear a satisfying 'click.' When
|
||||
you pull it out again, the stopper is stuck to the end." CR
|
||||
>
|
||||
>
|
||||
|
||||
<GLOBAL GL-N-LOOP 0 <> BYTE>
|
||||
|
||||
<ROUTINE RT-I-NITROGEN-LEAK ()
|
||||
<COND
|
||||
(T ;<NOT <IGRTR? GL-N-LOOP 82>>
|
||||
<SETG GL-NITROGEN-LEAK? T>
|
||||
<RT-QUEUE ,RT-I-NITROGEN-LEAK <+ ,GL-MOVES 1>>
|
||||
<COND
|
||||
(<L? ,GL-NITROGEN-QTY ,K-NIT-HIGH-1>
|
||||
<SETG GL-NITROGEN-QTY ,K-NIT-HIGH-1>
|
||||
)
|
||||
(T
|
||||
<SETG GL-NITROGEN-QTY <+ ,GL-NITROGEN-QTY 47>>
|
||||
)
|
||||
>
|
||||
<RT-NITROGEN-MSG>
|
||||
)
|
||||
; (T
|
||||
<SETG GL-NITROGEN-QTY ,K-NIT-NOM>
|
||||
<SETG GL-NITROGEN-LEAK? <>>
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;<OBJECT TH-NIT-BASE
|
||||
(LOC RM-TRI-MIX-STORAGE)
|
||||
(DESC "nitrogen tank base")
|
||||
(SYNONYM BASE)
|
||||
(ADJECTIVE NITROGEN TANK)
|
||||
(ACTION RT-TH-NIT-BASE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-NIT-BASE ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-OXYGEN-TANK"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-OXYGEN-TANK
|
||||
(LOC RM-TRI-MIX-STORAGE)
|
||||
(DESC "oxygen tank")
|
||||
(FLAGS FL-NO-DESC FL-SURFACE FL-SEARCH)
|
||||
(SYNONYM TANK BASE)
|
||||
(ADJECTIVE OXYGEN STORAGE)
|
||||
(GENERIC RT-GN-TANK)
|
||||
(ACTION RT-TH-OXYGEN-TANK)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-OXYGEN-TANK ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL ,K-GAS-TANK-MSG CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-OXY-VALVE
|
||||
(LOC TH-OXYGEN-TANK)
|
||||
(DESC "oxygen valve")
|
||||
(FLAGS FL-CONTAINER FL-NO-DESC FL-OPEN FL-SEARCH)
|
||||
(SYNONYM VALVE K-VALVE)
|
||||
(ADJECTIVE OXYGEN K)
|
||||
(GENERIC RT-GN-VALVE)
|
||||
(ACTION RT-TH-OXY-VALVE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-OXY-VALVE ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
<OBJECT TH-OXY-STOPPER
|
||||
(LOC TH-OXY-VALVE)
|
||||
(DESC "oxygen stopper")
|
||||
(FLAGS FL-NO-DESC FL-TRY-TAKE)
|
||||
(SYNONYM STOPPER)
|
||||
(ADJECTIVE OXYGEN)
|
||||
(GENERIC RT-GN-STOPPER)
|
||||
(ACTION RT-TH-OXY-STOPPER)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-OXY-STOPPER ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
;<OBJECT TH-OXY-BASE
|
||||
(LOC RM-TRI-MIX-STORAGE)
|
||||
(DESC "oxygen tank base")
|
||||
(SYNONYM BASE)
|
||||
(ADJECTIVE OXYGEN TANK)
|
||||
(ACTION RT-TH-OXY-BASE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-OXY-BASE ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-HELIUM-TANK"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-HELIUM-TANK
|
||||
(LOC RM-TRI-MIX-STORAGE)
|
||||
(DESC "helium tank")
|
||||
(FLAGS FL-NO-DESC FL-SURFACE FL-SEARCH)
|
||||
(SYNONYM TANK BASE)
|
||||
(ADJECTIVE HELIUM STORAGE)
|
||||
(GENERIC RT-GN-TANK)
|
||||
(ACTION RT-TH-HELIUM-TANK)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-HELIUM-TANK ("OPT" (CONTEXT <>))
|
||||
<COND
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
(<VERB? EXAMINE>
|
||||
<TELL ,K-GAS-TANK-MSG CR>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<OBJECT TH-HEL-VALVE
|
||||
(LOC TH-HELIUM-TANK)
|
||||
(DESC "helium valve")
|
||||
(FLAGS FL-CONTAINER FL-NO-DESC FL-OPEN FL-SEARCH)
|
||||
(SYNONYM VALVE K-VALVE)
|
||||
(ADJECTIVE HELIUM K)
|
||||
(GENERIC RT-GN-VALVE)
|
||||
(ACTION RT-TH-HEL-VALVE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-HEL-VALVE ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
<OBJECT TH-HEL-STOPPER
|
||||
(LOC TH-HEL-VALVE)
|
||||
(DESC "helium stopper")
|
||||
(FLAGS FL-NO-DESC FL-TRY-TAKE)
|
||||
(SYNONYM STOPPER)
|
||||
(ADJECTIVE HELIUM)
|
||||
(GENERIC RT-GN-STOPPER)
|
||||
(ACTION RT-TH-HEL-STOPPER)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-HEL-STOPPER ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
;<OBJECT TH-HEL-BASE
|
||||
(LOC RM-TRI-MIX-STORAGE)
|
||||
(DESC "helium tank base")
|
||||
(SYNONYM BASE)
|
||||
(ADJECTIVE HELIUM TANK)
|
||||
(ACTION RT-TH-HEL-BASE)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-HEL-BASE ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
<ROUTINE RT-GN-TANK (TBL FINDER "AUX" PTR N)
|
||||
<SET PTR <REST-TO-SLOT .TBL FIND-RES-OBJ1>>
|
||||
<SET N <FIND-RES-COUNT .TBL>>
|
||||
<COND
|
||||
(<INTBL? ,TH-NITROGEN-TANK .PTR .N>
|
||||
<TELL "[the nitrogen tank]|">
|
||||
<RETURN ,TH-NITROGEN-TANK>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-GN-VALVE (TBL FINDER "AUX" PTR N)
|
||||
<SET PTR <REST-TO-SLOT .TBL FIND-RES-OBJ1>>
|
||||
<SET N <FIND-RES-COUNT .TBL>>
|
||||
<COND
|
||||
(<INTBL? ,TH-NIT-VALVE .PTR .N>
|
||||
<TELL "[the nitrogen k-valve]|">
|
||||
<RETURN ,TH-NIT-VALVE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
<ROUTINE RT-GN-STOPPER (TBL FINDER "AUX" PTR N)
|
||||
<SET PTR <REST-TO-SLOT .TBL FIND-RES-OBJ1>>
|
||||
<SET N <FIND-RES-COUNT .TBL>>
|
||||
<COND
|
||||
(<INTBL? ,TH-NIT-STOPPER .PTR .N>
|
||||
<TELL "[the nitrogen stopper]|">
|
||||
<RETURN ,TH-NIT-STOPPER>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "RM-TOOL-ROOM"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<ROOM RM-TOOL-ROOM
|
||||
(LOC ROOMS)
|
||||
(DESC "tool room")
|
||||
(FLAGS FL-INDOORS FL-LIGHTED)
|
||||
(SYNONYM ROOM)
|
||||
(ADJECTIVE TOOL)
|
||||
(STARBOARD TO RM-DRILL-ROOM)
|
||||
(PORT TO RM-TOOL-PUSHER-OFFICE)
|
||||
(GLOBAL LG-WALL RM-DRILL-ROOM RM-TOOL-PUSHER-OFFICE)
|
||||
(ACTION RT-RM-TOOL-ROOM)
|
||||
>
|
||||
|
||||
<ROUTINE RT-RM-TOOL-ROOM ("OPTIONAL" (CONTEXT <>))
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-F-LOOK ,M-V-LOOK ,M-LOOK>
|
||||
<TELL " You ">
|
||||
<COND
|
||||
(<MC-CONTEXT? ,M-LOOK>
|
||||
<TELL "are in">
|
||||
)
|
||||
(T
|
||||
<TELL "enter">
|
||||
)
|
||||
>
|
||||
<TELL
|
||||
" the tool room, which lies between your office on the port side and the
|
||||
drill room to starboard. Bins here contain the various specialized tools
|
||||
of your trade.|"
|
||||
>
|
||||
<RFALSE>
|
||||
)
|
||||
(.CONTEXT
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-BIN"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-BIN
|
||||
(LOC RM-TOOL-ROOM)
|
||||
(DESC "bin")
|
||||
(SYNONYM BIN BINS)
|
||||
(FLAGS FL-CONTAINER FL-NO-DESC FL-OPENABLE FL-SEARCH)
|
||||
(SIZE 5 CAPACITY 5)
|
||||
(ACTION RT-TH-BIN)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-BIN ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "TH-MAGNET"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<OBJECT TH-MAGNET
|
||||
(LOC TH-BIN)
|
||||
(DESC "probe")
|
||||
(FLAGS FL-SURFACE FL-SEARCH FL-TAKEABLE)
|
||||
(SYNONYM MAGNET PROBE)
|
||||
(ADJECTIVE MAGNETIC)
|
||||
(ACTION RT-TH-MAGNET)
|
||||
>
|
||||
|
||||
<ROUTINE RT-TH-MAGNET ("OPT" (CONTEXT <>))
|
||||
<RFALSE>
|
||||
>
|
||||
|
||||
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "DELETED RUSSIAN STUFF"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
;<OBJECT CH-RUSSIAN
|
||||
(LOC RM-TRI-MIX-STORAGE)
|
||||
(DESC "Russian")
|
||||
(FLAGS FL-ALIVE FL-OPEN FL-PERSON FL-SEARCH)
|
||||
(SYNONYM RUSSIAN INTRUDER SABOTEUR DIVER BOY MAN PERSON)
|
||||
(ADJECTIVE RUSSIAN NAVY)
|
||||
>
|
||||
|
||||
;<GLOBAL GL-RUSSIAN-CNT 0 <> BYTE>
|
||||
|
||||
;<ROUTINE RT-I-RUSSIAN ("AUX" L (RM <>))
|
||||
<SET L <LOC ,CH-RUSSIAN>>
|
||||
<COND
|
||||
(<EQUAL? .L ,RM-LADDER-A2>
|
||||
<SET RM ,RM-CORRIDOR>
|
||||
)
|
||||
(<EQUAL? .L ,RM-CORRIDOR>
|
||||
<SET RM ,RM-SUB-BAY>
|
||||
<SETG GL-RUSSIAN-CNT 0>
|
||||
)
|
||||
(<EQUAL? .L ,RM-SUB-BAY>
|
||||
<COND
|
||||
(<IGRTR? GL-RUSSIAN-CNT 1>
|
||||
<REMOVE ,CH-RUSSIAN>
|
||||
<COND
|
||||
(<MC-HERE? .L>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(<EQUAL? .L ,RM-LADDER-A1 ,RM-LADDER-A3>
|
||||
<SET RM ,RM-LADDER-A2>
|
||||
)
|
||||
(<EQUAL? .L ,RM-LADDER-D1 ,RM-LADDER-D3>
|
||||
<SET RM ,RM-LADDER-D2>
|
||||
)
|
||||
(T
|
||||
<SET RM <RT-FIND-ROOM ,P?FORE .L>>
|
||||
)
|
||||
>
|
||||
<COND
|
||||
(.RM
|
||||
<RT-QUEUE ,RT-I-RUSSIAN <+ ,GL-MOVES 1>>
|
||||
<COND
|
||||
(<SET P <FIND-FLAG .RM ,FL-PERSON>>
|
||||
<COND
|
||||
(<EQUAL? .P ,CH-PLAYER>
|
||||
<TELL
|
||||
"Suddenly, a stranger in a black dry-suit comes into the room. Before you can
|
||||
react, he blurts out an exclamation in what sounds like Russian, and then he
|
||||
whirls and runs back the way he came. As he turns, you notice the glint of a
|
||||
shiny metal object in his hand." CR
|
||||
>
|
||||
)
|
||||
(T
|
||||
; <TELL
|
||||
>
|
||||
)
|
||||
>
|
||||
)
|
||||
(T
|
||||
<MOVE ,CH-RUSSIAN .RM>
|
||||
<RFALSE>
|
||||
)
|
||||
>
|
||||
)
|
||||
>
|
||||
>
|
327
sub-bay.zabstr
Normal file
327
sub-bay.zabstr
Normal file
|
@ -0,0 +1,327 @@
|
|||
<FLAGS-AND-DEFAULTS (("WORD-FLAGS-IN-TABLE" T)) ()>
|
||||
|
||||
<ROOM RM-SUB-BAY (LOC ROOMS) (DESC "sub bay") (FLAGS FL-INDOORS FL-LIGHTED) (
|
||||
SYNONYM BAY) (ADJECTIVE SUB) (DOWN TO RM-UNDER-MOONPOOL) (FORE TO RM-CORRIDOR)
|
||||
(AFT TO RM-GAS-MIX-ROOM) (GLOBAL LG-WALL RM-UNDER-MOONPOOL RM-CORRIDOR
|
||||
RM-GAS-MIX-ROOM) (ACTION RT-RM-SUB-BAY)>
|
||||
<DEFINE-ROUTINE RT-RM-SUB-BAY>
|
||||
<OBJECT TH-MOON-POOL (LOC RM-SUB-BAY) (DESC "moon pool") (FLAGS FL-CONTAINER
|
||||
FL-OPEN FL-SEARCH FL-WATER) (SYNONYM POOL) (ADJECTIVE MOON) (ACTION
|
||||
RT-TH-MOON-POOL)>
|
||||
<DEFINE-ROUTINE RT-TH-MOON-POOL>
|
||||
<OBJECT TH-FIRE (DESC "fire") (FLAGS FL-CONTAINER FL-OPEN FL-SEARCH) (SYNONYM
|
||||
FIRE) (ACTION RT-TH-FIRE)>
|
||||
<DEFINE-ROUTINE RT-TH-FIRE>
|
||||
<DEFINE-ROUTINE RT-I-FIRE-1>
|
||||
<DEFINE-ROUTINE RT-I-FIRE-2>
|
||||
<OBJECT TH-WATER-HOSE (LOC RM-SUB-BAY) (DESC "hose") (FLAGS FL-CONTAINER
|
||||
FL-OPEN FL-SEARCH FL-TAKEABLE) (SYNONYM HOSE) (ADJECTIVE FRESH WATER) (ACTION
|
||||
RT-TH-WATER-HOSE)>
|
||||
<DEFINE-ROUTINE RT-TH-WATER-HOSE>
|
||||
<OBJECT TH-NOZZLE (LOC TH-WATER-HOSE) (DESC "nozzle") (SYNONYM NOZZLE) (
|
||||
ADJECTIVE HOSE) (ACTION RT-TH-NOZZLE)>
|
||||
<DEFINE-ROUTINE RT-TH-NOZZLE>
|
||||
<OBJECT TH-OXYGEN-CYLINDER (LOC RM-SUB-BAY) (DESC "oxygen cylinder") (FLAGS
|
||||
FL-NO-DESC) (SYNONYM CYLINDER) (ADJECTIVE OXYGEN) (ACTION RT-TH-OXYGEN-CYLINDER
|
||||
)>
|
||||
<DEFINE-ROUTINE RT-TH-OXYGEN-CYLINDER>
|
||||
<OBJECT CH-LINDSEY (LOC RM-COMMAND-MODULE) (DESC "Lindsey") (FLAGS FL-ALIVE
|
||||
FL-FEMALE FL-NO-ARTICLE FL-OPEN FL-PERSON FL-SEARCH) (SYNONYM LINDSEY WOMAN
|
||||
PERSON)>
|
||||
<OBJECT CH-COFFEY (LOC RM-CORRIDOR) (DESC "Coffey") (FLAGS FL-ALIVE
|
||||
FL-NO-ARTICLE FL-NO-DESC FL-OPEN FL-PERSON FL-SEARCH) (SYNONYM COFFEY DIVER MAN
|
||||
PERSON) (ADJECTIVE NAVY) (ACTION RT-CH-COFFEY)>
|
||||
<DEFINE-ROUTINE RT-CH-COFFEY>
|
||||
<OBJECT CH-ONE-NIGHT (LOC RM-CORRIDOR) (DESC "One-night") (FLAGS FL-ALIVE
|
||||
FL-FEMALE FL-NO-ARTICLE FL-NO-DESC FL-OPEN FL-PERSON FL-SEARCH) (SYNONYM NIGHT
|
||||
ONE-NIGHT WOMAN PERSON) (ADJECTIVE ONE) (ACTION RT-CH-ONE-NIGHT)>
|
||||
<DEFINE-ROUTINE RT-CH-ONE-NIGHT>
|
||||
<OBJECT CH-HIPPY (LOC RM-CORRIDOR) (DESC "Hippy") (FLAGS FL-ALIVE FL-NO-ARTICLE
|
||||
FL-NO-DESC FL-OPEN FL-PERSON FL-SEARCH) (SYNONYM HIPPY MAN PERSON)>
|
||||
<OBJECT CH-CATFISH (LOC RM-COMMAND-MODULE) (DESC "Catfish") (FLAGS FL-ALIVE
|
||||
FL-NO-ARTICLE FL-OPEN FL-PERSON FL-SEARCH) (SYNONYM CATFISH DEVRIES FISH MAN
|
||||
PERSON) (ADJECTIVE CAT)>
|
||||
<OBJECT CH-SEALS (LOC GENERIC-OBJECTS) (DESC "SEALs") (SYNONYM WILLHITE
|
||||
SCHOENICK MONK SEAL SEALS DIVER DIVERS MAN MEN PERSON PEOPLE) (ADJECTIVE NAVY)>
|
||||
|
||||
<NEW-ADD-WORD "PEOPLE" NOUN <VOC "PERSON"> ,PLURAL-FLAG>
|
||||
<NEW-ADD-WORD "WOMEN" NOUN <VOC "WOMAN"> ,PLURAL-FLAG>
|
||||
<NEW-ADD-WORD "MEN" NOUN <VOC "MAN"> ,PLURAL-FLAG>
|
||||
<OBJECT TH-DRY-SUIT (LOC TH-BUD-GEAR-LOCKER) (DESC "dry suit") (FLAGS
|
||||
FL-CLOTHING FL-CONTAINER FL-OPEN FL-SEARCH FL-TAKEABLE) (SYNONYM SUIT) (
|
||||
ADJECTIVE DRY) (SIZE 5) (ACTION RT-TH-DRY-SUIT)>
|
||||
<DEFINE-ROUTINE RT-TH-DRY-SUIT>
|
||||
<OBJECT TH-FACEPLATE (LOC TH-DRY-SUIT) (DESC "faceplate") (FLAGS FL-NO-DESC
|
||||
FL-OPEN FL-OPENABLE FL-TRANSPARENT) (SYNONYM FACEPLATE PLATE) (ADJECTIVE FACE)
|
||||
(ACTION RT-TH-FACEPLATE)>
|
||||
<DEFINE-ROUTINE RT-TH-FACEPLATE>
|
||||
<OBJECT TH-HELMET (LOC TH-DRY-SUIT) (DESC "helmet") (FLAGS FL-CONTAINER
|
||||
FL-NO-DESC FL-OPEN FL-SEARCH) (SYNONYM HELMET) (ADJECTIVE DRY SUIT) (ACTION
|
||||
RT-TH-HELMET)>
|
||||
<DEFINE-ROUTINE RT-TH-HELMET>
|
||||
<OBJECT TH-HOOK-1 (LOC RM-SUB-BAY) (DESC "hook") (FLAGS FL-SURFACE) (SYNONYM
|
||||
HOOK) (ACTION RT-TH-HOOK-1)>
|
||||
<DEFINE-ROUTINE RT-TH-HOOK-1>
|
||||
<OBJECT TH-LIFT-BAG (LOC TH-HOOK-1) (DESC "lift bag") (FLAGS FL-SURFACE
|
||||
FL-SEARCH FL-TAKEABLE) (SYNONYM BAG) (ADJECTIVE LIFT) (SIZE 5) (ACTION
|
||||
RT-TH-LIFT-BAG)>
|
||||
<GLOBAL GL-LIFT-OBJ <>>
|
||||
<DEFINE-ROUTINE RT-TH-LIFT-BAG>
|
||||
<OBJECT TH-CO2-CANNISTER (LOC TH-LIFT-BAG) (DESC "CO2 cannister") (FLAGS
|
||||
FL-NO-DESC FL-SURFACE FL-SEARCH) (SYNONYM CANNISTER) (ADJECTIVE CO2 CARBON
|
||||
DIOXIDE) (SIZE 5) (ACTION RT-TH-CO2-CANNISTER)>
|
||||
<DEFINE-ROUTINE RT-TH-CO2-CANNISTER>
|
||||
<OBJECT TH-RED-BUTTON (LOC TH-CO2-CANNISTER) (DESC "red button") (FLAGS
|
||||
FL-NO-DESC) (SYNONYM BUTTON) (ADJECTIVE RED) (ACTION RT-TH-RED-BUTTON)>
|
||||
<DEFINE-ROUTINE RT-TH-RED-BUTTON>
|
||||
<ROOM RM-COMPRESSION-CHAMBER (LOC ROOMS) (DESC "compression chamber") (MENU
|
||||
"chamber") (FLAGS FL-INDOORS FL-LIGHTED) (SYNONYM CHAMBER) (ADJECTIVE
|
||||
COMPRESSION) (FORE TO RM-GAS-MIX-ROOM IF LG-CHAMBER-DOOR IS OPEN) (UP TO
|
||||
RM-CAB-THREE IF LG-CHAMBER-HATCH IS OPEN) (GLOBAL LG-WALL RM-GAS-MIX-ROOM
|
||||
LG-CHAMBER-DOOR LG-CHAMBER-HATCH) (ADJACENT <TABLE (BYTE PURE) RM-GAS-MIX-ROOM
|
||||
T>) (ACTION RT-RM-COMPRESSION-CHAMBER)>
|
||||
<DEFINE-ROUTINE RT-RM-COMPRESSION-CHAMBER>
|
||||
<OBJECT LG-CHAMBER-HATCH (LOC LOCAL-GLOBALS) (DESC "compression chamber hatch")
|
||||
(MENU "hatch") (FLAGS FL-DOOR FL-OPENABLE) (SYNONYM HATCH) (ADJECTIVE
|
||||
COMPRESSION CHAMBER) (ACTION RT-LG-CHAMBER-HATCH)>
|
||||
<DEFINE-ROUTINE RT-LG-CHAMBER-HATCH>
|
||||
<DEFINE-ROUTINE RT-I-LEAVE-1>
|
||||
<DEFINE-ROUTINE RT-I-LEAVE-2>
|
||||
<DEFINE-ROUTINE RT-I-LEAVE-3>
|
||||
<DEFINE-ROUTINE RT-I-LEAVE-4>
|
||||
<DEFINE-ROUTINE RT-I-RETURN-1>
|
||||
<DEFINE-ROUTINE RT-I-RETURN-2>
|
||||
<DEFINE-ROUTINE RT-I-RETURN-3>
|
||||
<DEFINE-ROUTINE RT-I-RETURN-4>
|
||||
<CONSTANT K-UFO-MSG
|
||||
"\"I swear it's all true, Bud. I saw...something. It was right in front of us
|
||||
and then it dived into the trench, pulling us along after it. Then we hit the
|
||||
side of the trench and I blacked out for a second. When I came to, Flatbed was
|
||||
spinning out of control into the trench. None of the controls worked. I did
|
||||
the only thing I could do. I bailed out. But I didn't kill those men...\" her
|
||||
voice trails off, \"...there was nothing I could do...\"|">
|
||||
<DEFINE-ROUTINE RT-I-UFO-MESSAGE>
|
||||
<ROOM RM-CAB-THREE (LOC ROOMS) (DESC "Cab three") (FLAGS FL-CONTAINER
|
||||
FL-LIGHTED FL-NO-ARTICLE FL-OPEN FL-SEARCH FL-VEHICLE) (SYNONYM CAB THREE) (
|
||||
ADJECTIVE CAB) (DOWN PER RT-OUT-CAB) (OUT PER RT-OUT-CAB) (ACTION
|
||||
RT-RM-CAB-THREE)>
|
||||
<GLOBAL GL-CAB-DOCKED? <> <> BYTE>
|
||||
<DEFINE-ROUTINE RT-RM-CAB-THREE>
|
||||
<DEFINE-ROUTINE RT-OUT-CAB>
|
||||
<DEFINE-ROUTINE RT-I-CAB-FIXED>
|
||||
<OBJECT TH-CAB-HOOKAH (LOC RM-CAB-THREE) (DESC "hookah") (SYNONYM HOOKAH) (
|
||||
ACTION RT-TH-CAB-HOOKAH)>
|
||||
<DEFINE-ROUTINE RT-TH-CAB-HOOKAH>
|
||||
<ROOM RM-GAS-MIX-ROOM (LOC ROOMS) (DESC "gas mix room") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM ROOM) (ADJECTIVE GAS MIX) (FORE TO RM-SUB-BAY) (AFT TO
|
||||
RM-COMPRESSION-CHAMBER IF LG-CHAMBER-DOOR IS OPEN) (GLOBAL LG-WALL RM-SUB-BAY
|
||||
RM-COMPRESSION-CHAMBER LG-CHAMBER-DOOR) (ADJACENT <TABLE (BYTE PURE)
|
||||
RM-COMPRESSION-CHAMBER T>) (ACTION RT-RM-GAS-MIX-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-GAS-MIX-ROOM>
|
||||
<OBJECT LG-CHAMBER-DOOR (LOC LOCAL-GLOBALS) (DESC "compression chamber door") (
|
||||
MENU "door") (FLAGS FL-DOOR FL-OPEN FL-OPENABLE) (SYNONYM DOOR) (ADJECTIVE
|
||||
COMPRESSION CHAMBER)>
|
||||
<ROOM RM-CORRIDOR (LOC ROOMS) (DESC "corridor") (FLAGS FL-INDOORS FL-LIGHTED) (
|
||||
SYNONYM CORRIDOR) (FORE TO RM-COMMAND-MODULE) (AFT TO RM-SUB-BAY) (STARBOARD TO
|
||||
RM-LADDER-B2 IF LG-FLOOD-DOOR IS OPEN) (PORT TO RM-LADDER-A2) (GLOBAL
|
||||
LG-FLOOD-DOOR LG-WALL RM-COMMAND-MODULE RM-SUB-BAY RM-LADDER-A2 RM-LADDER-B2) (
|
||||
ACTION RT-RM-CORRIDOR)>
|
||||
<DEFINE-ROUTINE RT-RM-CORRIDOR>
|
||||
<OBJECT TH-PANEL (LOC RM-CORRIDOR) (DESC "panel") (FLAGS FL-SURFACE FL-OPENABLE
|
||||
) (SYNONYM PANEL) (ACTION RT-TH-PANEL)>
|
||||
<DEFINE-ROUTINE RT-TH-PANEL>
|
||||
<ROOM RM-LADDER-A2 (LOC ROOMS) (DESC "ladderwell A") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER PORT LADDERWELL) (FORE
|
||||
TO RM-LOUNGE) (AFT TO RM-MESS-HALL) (STARBOARD TO RM-CORRIDOR) (PORT TO
|
||||
RM-ELECTRONICS-SHOP) (UP TO RM-LADDER-A3) (DOWN TO RM-LADDER-A1) (GLOBAL
|
||||
LG-WALL RM-LOUNGE RM-MESS-HALL RM-CORRIDOR RM-ELECTRONICS-SHOP RM-LADDER-A1
|
||||
RM-LADDER-A3) (ACTION RT-RM-LADDER-A2)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-A2>
|
||||
<ROOM RM-LOUNGE (LOC ROOMS) (DESC "lounge") (FLAGS FL-INDOORS FL-LIGHTED) (
|
||||
SYNONYM LOUNGE) (AFT TO RM-LADDER-A2) (GLOBAL LG-WALL RM-LADDER-A2) (ACTION
|
||||
RT-RM-LOUNGE)>
|
||||
<DEFINE-ROUTINE RT-RM-LOUNGE>
|
||||
<ROOM RM-INFIRMARY (LOC ROOMS) (DESC "infirmary") (FLAGS FL-INDOORS FL-LIGHTED)
|
||||
(SYNONYM INFIRMARY) (PORT TO RM-LADDER-B3) (GLOBAL LG-WALL RM-LADDER-B3) (
|
||||
ACTION RT-RM-INFIRMARY)>
|
||||
<DEFINE-ROUTINE RT-RM-INFIRMARY>
|
||||
<ROOM RM-MESS-HALL (LOC ROOMS) (DESC "mess hall") (FLAGS FL-INDOORS FL-LIGHTED)
|
||||
(SYNONYM HALL) (ADJECTIVE MESS) (FORE TO RM-LADDER-A2) (AFT TO RM-GALLEY) (
|
||||
GLOBAL LG-WALL RM-LADDER-A2 RM-GALLEY) (ACTION RT-RM-MESS-HALL)>
|
||||
<GLOBAL GL-CATFISH-SPY-MSG? <> <> BYTE>
|
||||
<DEFINE-ROUTINE RT-RM-MESS-HALL>
|
||||
<ROOM RM-GALLEY (LOC ROOMS) (DESC "Stu's galley") (FLAGS FL-INDOORS FL-LIGHTED)
|
||||
(SYNONYM GALLEY) (FORE TO RM-MESS-HALL) (AFT TO RM-PANTRY) (GLOBAL LG-WALL
|
||||
RM-MESS-HALL RM-PANTRY) (ACTION RT-RM-GALLEY)>
|
||||
<DEFINE-ROUTINE RT-RM-GALLEY>
|
||||
<ROOM RM-PANTRY (LOC ROOMS) (DESC "pantry") (FLAGS FL-INDOORS FL-LIGHTED) (
|
||||
SYNONYM PANTRY) (FORE TO RM-GALLEY) (AFT TO RM-LADDER-D2) (GLOBAL LG-WALL
|
||||
RM-GALLEY RM-LADDER-D2) (ACTION RT-RM-PANTRY)>
|
||||
<DEFINE-ROUTINE RT-RM-PANTRY>
|
||||
<OBJECT TH-HOOK-2 (LOC RM-PANTRY) (DESC "hook") (FLAGS FL-SURFACE) (SYNONYM
|
||||
HOOK) (ACTION RT-TH-HOOK-2)>
|
||||
<DEFINE-ROUTINE RT-TH-HOOK-2>
|
||||
<OBJECT TH-GAME-BAG (LOC TH-HOOK-2) (DESC "game bag") (FLAGS FL-SURFACE
|
||||
FL-SEARCH FL-TAKEABLE FL-CONTAINER) (SYNONYM BAG) (ADJECTIVE GAME) (SIZE 5) (
|
||||
ACTION RT-TH-GAME-BAG)>
|
||||
<DEFINE-ROUTINE RT-TH-GAME-BAG>
|
||||
<ROOM RM-WALDORF (LOC ROOMS) (DESC "The Waldorf") (FLAGS FL-INDOORS FL-LIGHTED
|
||||
FL-NO-ARTICLE) (SYNONYM WALDORF) (FORE TO RM-LADDER-B2) (AFT TO
|
||||
RM-PERSONAL-STORAGE-1) (GLOBAL LG-WALL RM-LADDER-B2 RM-PERSONAL-STORAGE-1) (
|
||||
ACTION RT-RM-WALDORF)>
|
||||
<DEFINE-ROUTINE RT-RM-WALDORF>
|
||||
<ROOM RM-PERSONAL-STORAGE-1 (LOC ROOMS) (DESC "personal storage") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED) (SYNONYM STORAGE) (ADJECTIVE PERSONAL) (FORE TO
|
||||
RM-WALDORF) (AFT TO RM-ZOOTOWN) (GLOBAL LG-WALL RM-WALDORF RM-ZOOTOWN) (ACTION
|
||||
RT-RM-PERSONAL-STORAGE-1)>
|
||||
<DEFINE-ROUTINE RT-RM-PERSONAL-STORAGE-1>
|
||||
<ROOM RM-ZOOTOWN (LOC ROOMS) (DESC "Zootown") (FLAGS FL-INDOORS FL-LIGHTED) (
|
||||
SYNONYM ZOOTOWN) (FORE TO RM-PERSONAL-STORAGE-1) (AFT TO RM-LADDER-C2) (GLOBAL
|
||||
LG-WALL RM-PERSONAL-STORAGE-1 RM-LADDER-C2) (ACTION RT-RM-ZOOTOWN)>
|
||||
<DEFINE-ROUTINE RT-RM-ZOOTOWN>
|
||||
<ROOM RM-LADDER-C2 (LOC ROOMS) (DESC "ladderwell C") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-ZOOTOWN) (UP TO RM-LADDER-C3) (DOWN TO RM-LADDER-C1) (GLOBAL LG-WALL
|
||||
RM-ZOOTOWN RM-LADDER-C3 RM-LADDER-C1) (ACTION RT-RM-LADDER-C2)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-C2>
|
||||
<OBJECT TH-S-BILGE-BUTT (DESC "button") (SYNONYM BUTTON) (ADJECTIVE YELLOW) (
|
||||
ACTION RT-TH-S-BILGE-BUTT)>
|
||||
<DEFINE-ROUTINE RT-TH-S-BILGE-BUTT>
|
||||
<ROOM RM-LADDER-A1 (LOC ROOMS) (DESC "ladder well A") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-PT-BATTERY-ROOM) (AFT TO RM-PT-LIFE-SUPPORT) (PORT TO RM-LAUNDRY) (UP TO
|
||||
RM-LADDER-A2) (GLOBAL LG-WALL RM-PT-BATTERY-ROOM RM-PT-LIFE-SUPPORT RM-LAUNDRY
|
||||
RM-LADDER-A2) (ACTION RT-RM-LADDER-A1)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-A1>
|
||||
<ROOM RM-LAUNDRY (LOC ROOMS) (DESC "laundry") (FLAGS FL-INDOORS FL-LIGHTED) (
|
||||
SYNONYM LAUNDRY) (STARBOARD TO RM-LADDER-A1) (GLOBAL LG-WALL RM-LADDER-A1) (
|
||||
ACTION RT-RM-LAUNDRY)>
|
||||
<DEFINE-ROUTINE RT-RM-LAUNDRY>
|
||||
<ROOM RM-PT-LIFE-SUPPORT (LOC ROOMS) (DESC "port life support") (MENU
|
||||
"life support") (FLAGS FL-INDOORS FL-LIGHTED) (SYNONYM SUPPORT) (ADJECTIVE PORT
|
||||
LIFE) (FORE TO RM-LADDER-A1) (AFT TO RM-COMPRESSOR-ROOM) (GLOBAL LG-WALL
|
||||
RM-LADDER-A1 RM-COMPRESSOR-ROOM) (ACTION RT-RM-PT-LIFE-SUPPORT)>
|
||||
<DEFINE-ROUTINE RT-RM-PT-LIFE-SUPPORT>
|
||||
<ROOM RM-COMPRESSOR-ROOM (LOC ROOMS) (DESC "compressor room") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM ROOM) (ADJECTIVE COMPRESSOR) (FORE TO RM-PT-LIFE-SUPPORT)
|
||||
(AFT TO RM-TRI-MIX-STORAGE) (GLOBAL LG-WALL RM-PT-LIFE-SUPPORT
|
||||
RM-TRI-MIX-STORAGE) (ACTION RT-RM-COMPRESSOR-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-COMPRESSOR-ROOM>
|
||||
<OBJECT TH-COMPRESSOR (LOC RM-COMPRESSOR-ROOM) (DESC "compressor") (FLAGS FL-ON
|
||||
) (SYNONYM COMPRESSOR) (ACTION RT-TH-COMPRESSOR)>
|
||||
<DEFINE-ROUTINE RT-TH-COMPRESSOR>
|
||||
<ROOM RM-LADDER-D1 (LOC ROOMS) (DESC "ladderwell D") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-TRI-MIX-STORAGE) (AFT TO RM-TOOL-PUSHER-OFFICE) (UP TO RM-LADDER-D2) (GLOBAL
|
||||
LG-WALL RM-TRI-MIX-STORAGE RM-TOOL-PUSHER-OFFICE RM-LADDER-D2) (ACTION
|
||||
RT-RM-LADDER-D1)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-D1>
|
||||
<ROOM RM-TOOL-PUSHER-OFFICE (LOC ROOMS) (DESC "tool pusher's office") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED) (SYNONYM OFFICE) (ADJECTIVE TOOL PUSHER) (FORE TO
|
||||
RM-LADDER-D1) (STARBOARD TO RM-TOOL-ROOM) (GLOBAL LG-WALL RM-LADDER-D1
|
||||
RM-TOOL-ROOM) (ACTION RT-RM-TOOL-PUSHER-OFFICE)>
|
||||
<DEFINE-ROUTINE RT-RM-TOOL-PUSHER-OFFICE>
|
||||
<ROOM RM-DRILL-ROOM (LOC ROOMS) (DESC "drill room") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM ROOM) (ADJECTIVE DRILL) (PORT TO RM-TOOL-ROOM) (GLOBAL
|
||||
LG-WALL RM-TOOL-ROOM) (ACTION RT-RM-DRILL-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-DRILL-ROOM>
|
||||
<ROOM RM-LADDER-B1 (LOC ROOMS) (DESC "ladderwell B") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-SB-BATTERY-ROOM) (AFT TO RM-SB-LIFE-SUPPORT) (STARBOARD TO RM-SB-HEAD) (UP
|
||||
TO RM-LADDER-B2) (GLOBAL LG-WALL RM-SB-BATTERY-ROOM RM-SB-LIFE-SUPPORT
|
||||
RM-SB-HEAD RM-LADDER-B2) (ACTION RT-RM-LADDER-B1)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-B1>
|
||||
<ROOM RM-SB-BATTERY-ROOM (LOC ROOMS) (DESC "starboard battery room") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED) (SYNONYM ROOM) (ADJECTIVE STARBOARD BATTERY) (AFT TO
|
||||
RM-LADDER-B1) (GLOBAL LG-WALL RM-LADDER-B1) (ACTION RT-RM-SB-BATTERY-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-SB-BATTERY-ROOM>
|
||||
<ROOM RM-SB-HEAD (LOC ROOMS) (DESC "starboard head") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM HEAD) (ADJECTIVE STARBOARD) (PORT TO RM-LADDER-B1) (GLOBAL
|
||||
LG-WALL RM-LADDER-B1) (ACTION RT-RM-SB-HEAD)>
|
||||
<DEFINE-ROUTINE RT-RM-SB-HEAD>
|
||||
<ROOM RM-SB-LIFE-SUPPORT (LOC ROOMS) (DESC "starboard life support") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED) (SYNONYM SUPPORT) (ADJECTIVE STARBOARD LIFE) (FORE TO
|
||||
RM-LADDER-B1) (AFT TO RM-PUMP-ROOM) (GLOBAL LG-WALL RM-LADDER-B1 RM-PUMP-ROOM)
|
||||
(ACTION RT-RM-SB-LIFE-SUPPORT)>
|
||||
<DEFINE-ROUTINE RT-RM-SB-LIFE-SUPPORT>
|
||||
<ROOM RM-PUMP-ROOM (LOC ROOMS) (DESC "pump room") (FLAGS FL-INDOORS FL-LIGHTED)
|
||||
(SYNONYM ROOM) (ADJECTIVE PUMP) (FORE TO RM-SB-LIFE-SUPPORT) (AFT TO
|
||||
RM-FRESH-WATER-STORAGE) (GLOBAL LG-WALL RM-SB-LIFE-SUPPORT
|
||||
RM-FRESH-WATER-STORAGE) (ACTION RT-RM-PUMP-ROOM)>
|
||||
<DEFINE-ROUTINE RT-RM-PUMP-ROOM>
|
||||
<ROOM RM-FRESH-WATER-STORAGE (LOC ROOMS) (DESC "fresh water storage") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED) (SYNONYM STORAGE) (ADJECTIVE FRESH WATER) (FORE TO
|
||||
RM-PUMP-ROOM) (AFT TO RM-LADDER-C1) (GLOBAL LG-WALL RM-PUMP-ROOM RM-LADDER-C1)
|
||||
(ACTION RT-RM-FRESH-WATER-STORAGE)>
|
||||
<DEFINE-ROUTINE RT-RM-FRESH-WATER-STORAGE>
|
||||
<ROOM RM-LADDER-C1 (LOC ROOMS) (DESC "ladderwell C") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-FRESH-WATER-STORAGE) (UP TO RM-LADDER-C2) (GLOBAL LG-WALL
|
||||
RM-FRESH-WATER-STORAGE RM-LADDER-C2) (ACTION RT-RM-LADDER-C1)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-C1>
|
||||
<ROOM RM-LADDER-A3 (LOC ROOMS) (DESC "ladderwell A") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-PT-OBS-DECK) (AFT TO RM-MOTEL-QUICK) (PORT TO RM-PT-HEAD) (DOWN TO
|
||||
RM-LADDER-A2) (GLOBAL LG-WALL RM-PT-OBS-DECK RM-MOTEL-QUICK RM-PT-HEAD
|
||||
RM-LADDER-A2) (ACTION RT-RM-LADDER-A3)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-A3>
|
||||
<ROOM RM-PT-HEAD (LOC ROOMS) (DESC "port head") (FLAGS FL-INDOORS FL-LIGHTED) (
|
||||
SYNONYM HEAD) (ADJECTIVE PORT) (STARBOARD TO RM-LADDER-A3) (GLOBAL LG-WALL
|
||||
RM-LADDER-A3) (ACTION RT-RM-PT-HEAD)>
|
||||
<DEFINE-ROUTINE RT-RM-PT-HEAD>
|
||||
<ROOM RM-MOTEL-QUICK (LOC ROOMS) (DESC "motel Quick") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM QUICK) (ADJECTIVE MOTEL) (FORE TO RM-LADDER-A3) (AFT TO
|
||||
RM-PERSONAL-STORAGE-2) (GLOBAL LG-WALL RM-LADDER-A3 RM-PERSONAL-STORAGE-2) (
|
||||
ACTION RT-RM-MOTEL-QUICK)>
|
||||
<DEFINE-ROUTINE RT-RM-MOTEL-QUICK>
|
||||
<ROOM RM-PERSONAL-STORAGE-2 (LOC ROOMS) (DESC "personal storage") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED) (SYNONYM STORAGE) (ADJECTIVE PERSONAL) (FORE TO
|
||||
RM-MOTEL-QUICK) (AFT TO RM-SWAMP) (GLOBAL LG-WALL RM-MOTEL-QUICK RM-SWAMP) (
|
||||
ACTION RT-RM-PERSONAL-STORAGE-2)>
|
||||
<DEFINE-ROUTINE RT-RM-PERSONAL-STORAGE-2>
|
||||
<ROOM RM-SWAMP (LOC ROOMS) (DESC "the Swamp") (FLAGS FL-INDOORS FL-LIGHTED) (
|
||||
SYNONYM SWAMP) (FORE TO RM-PERSONAL-STORAGE-2) (AFT TO RM-LADDER-D3) (GLOBAL
|
||||
LG-WALL RM-PERSONAL-STORAGE-2 RM-LADDER-D3) (ACTION RT-RM-SWAMP)>
|
||||
<DEFINE-ROUTINE RT-RM-SWAMP>
|
||||
<ROOM RM-LADDER-D3 (LOC ROOMS) (DESC "ladderwell D") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDERWELL LADDER) (FORE TO
|
||||
RM-SWAMP) (DOWN TO RM-LADDER-D2) (GLOBAL LG-WALL RM-SWAMP RM-LADDER-D2) (ACTION
|
||||
RT-RM-LADDER-D3)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-D3>
|
||||
<ROOM RM-LADDER-B3 (LOC ROOMS) (DESC "ladderwell B") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-SB-OBS-DECK) (AFT TO RM-COMPUTER-CENTER) (STARBOARD TO RM-INFIRMARY) (DOWN
|
||||
TO RM-LADDER-B2) (GLOBAL LG-WALL RM-SB-OBS-DECK RM-COMPUTER-CENTER RM-INFIRMARY
|
||||
RM-LADDER-B2) (ACTION RT-RM-LADDER-B3)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-B3>
|
||||
<ROOM RM-SB-OBS-DECK (LOC ROOMS) (DESC "starboard observation deck") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED) (SYNONYM DECK) (ADJECTIVE STARBOARD OBSERVATION) (AFT TO
|
||||
RM-LADDER-B3) (GLOBAL LG-WALL RM-LADDER-B3) (ACTION RT-RM-SB-OBS-DECK)>
|
||||
<DEFINE-ROUTINE RT-RM-SB-OBS-DECK>
|
||||
<ROOM RM-COMPUTER-CENTER (LOC ROOMS) (DESC "computer center") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM CENTER) (ADJECTIVE COMPUTER) (FORE TO RM-LADDER-B3) (AFT
|
||||
TO RM-LAB) (GLOBAL LG-WALL RM-LADDER-B3 RM-LAB) (ACTION RT-RM-COMPUTER-CENTER)>
|
||||
|
||||
<DEFINE-ROUTINE RT-RM-COMPUTER-CENTER>
|
||||
<ROOM RM-ELECTRONICS-SHOP (LOC ROOMS) (DESC "electronics shop") (FLAGS
|
||||
FL-INDOORS FL-LIGHTED) (SYNONYM SHOP) (ADJECTIVE ELECTRONIC) (STARBOARD TO
|
||||
RM-LADDER-A2) (GLOBAL LG-WALL RM-LADDER-A2) (ACTION RT-RM-ELECTRONICS-SHOP)>
|
||||
<DEFINE-ROUTINE RT-RM-ELECTRONICS-SHOP>
|
||||
<OBJECT TH-ELEC-SHOP-DRAWER (LOC RM-ELECTRONICS-SHOP) (DESC "center drawer") (
|
||||
FLAGS FL-CONTAINER FL-OPENABLE FL-SEARCH) (SYNONYM DRAWER) (ADJECTIVE CENTER) (
|
||||
ACTION RT-TH-ELEC-SHOP-DRAWER)>
|
||||
<DEFINE-ROUTINE RT-TH-ELEC-SHOP-DRAWER>
|
||||
<ROOM RM-LAB (LOC ROOMS) (DESC "lab") (FLAGS FL-INDOORS FL-LIGHTED) (SYNONYM
|
||||
LAB LABORATORY) (FORE TO RM-COMPUTER-CENTER) (AFT TO RM-TAPE-LIBRARY) (GLOBAL
|
||||
LG-WALL RM-COMPUTER-CENTER RM-TAPE-LIBRARY) (ACTION RT-RM-LAB)>
|
||||
<DEFINE-ROUTINE RT-RM-LAB>
|
||||
<ROOM RM-TAPE-LIBRARY (LOC ROOMS) (DESC "tape library") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM LIBRARY) (ADJECTIVE TAPE) (FORE TO RM-LAB) (AFT TO
|
||||
RM-LADDER-C3) (GLOBAL LG-WALL RM-LAB RM-LADDER-C3) (ACTION RT-RM-TAPE-LIBRARY)>
|
||||
|
||||
<DEFINE-ROUTINE RT-RM-TAPE-LIBRARY>
|
||||
<ROOM RM-LADDER-C3 (LOC ROOMS) (DESC "ladderwell C") (FLAGS FL-INDOORS
|
||||
FL-LIGHTED) (SYNONYM WELL LADDERWELL) (ADJECTIVE LADDER LADDERWELL) (FORE TO
|
||||
RM-TAPE-LIBRARY) (DOWN TO RM-LADDER-C2) (GLOBAL LG-WALL RM-TAPE-LIBRARY
|
||||
RM-LADDER-C2) (ACTION RT-RM-LADDER-C3)>
|
||||
<DEFINE-ROUTINE RT-RM-LADDER-C3>
|
1082
sub-bay.zap
Normal file
1082
sub-bay.zap
Normal file
File diff suppressed because it is too large
Load diff
3058
sub-bay.zil
Normal file
3058
sub-bay.zil
Normal file
File diff suppressed because it is too large
Load diff
443
syntax.zil
Normal file
443
syntax.zil
Normal file
|
@ -0,0 +1,443 @@
|
|||
;"***************************************************************************"
|
||||
; "game : Abyss"
|
||||
; "file : SYNTAX.ZIL"
|
||||
; "auth : $Author: DEB $"
|
||||
; "date : $Date: 20 Mar 1989 8:44:54 $"
|
||||
; "rev : $Revision: 1.17 $"
|
||||
; "vers : 1.0"
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Syntax"
|
||||
; "Copyright (C) 1988 Infocom, Inc. All rights reserved."
|
||||
;"***************************************************************************"
|
||||
|
||||
<SYNONYM WITH USING>
|
||||
<SYNONYM TO TOWARD TOWARDS>
|
||||
<SYNONYM AROUND ALONG>
|
||||
<SYNONYM ALL BOTH>
|
||||
<SYNONYM THROUGH THRU>
|
||||
;<SYNONYM UNDER UNDERNEATH BENEATH>
|
||||
<SYNONYM IN INTO INSIDE>
|
||||
;<SYNONYM OUT OUTSIDE>
|
||||
<SYNONYM ON ONTO>
|
||||
|
||||
<DIR-SYNONYM FORE F>
|
||||
<DIR-SYNONYM AFT A>
|
||||
<DIR-SYNONYM PORT P>
|
||||
<DIR-SYNONYM STARBOARD SB>
|
||||
|
||||
<DIR-SYNONYM NORTH N>
|
||||
<DIR-SYNONYM SOUTH S>
|
||||
<DIR-SYNONYM EAST E>
|
||||
<DIR-SYNONYM WEST W>
|
||||
|
||||
<DIR-SYNONYM DOWN D>
|
||||
<DIR-SYNONYM DOWN DOWNSTAIRS>
|
||||
<DIR-SYNONYM UP U>
|
||||
<DIR-SYNONYM UP UPSTAIRS>
|
||||
|
||||
<BUZZ NOW SOON THERE PLEASE BACK ANYWAY OH>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Game verbs"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX $REFRESH = V-$REFRESH>
|
||||
<VERB-SYNONYM $REFRESH R>
|
||||
<SYNTAX $VERIFY = V-VERIFY>
|
||||
<SYNTAX $VERIFY OBJECT = V-VERIFY>
|
||||
|
||||
%<DEBUG-CODE <SYNTAX \#COMMAND = V-COMMAND>>
|
||||
%<DEBUG-CODE <SYNTAX \#RECORD = V-RECORD>>
|
||||
%<DEBUG-CODE <SYNTAX \#UNRECORD = V-UNRECORD>>
|
||||
|
||||
<VERB-SYNONYM BRIEF VERBOSE SUPER SUPERBRIEF>
|
||||
<SYNTAX BRIEF = V-DESC-LEVEL>
|
||||
<VERB-SYNONYM QUIT Q>
|
||||
<SYNTAX QUIT = V-QUIT>
|
||||
<SYNTAX RESTART = V-RESTART>
|
||||
<SYNTAX RESTORE = V-RESTORE>
|
||||
<SYNTAX SAVE = V-SAVE>
|
||||
<SYNTAX START OVER OBJECT (FIND FL-ROOMS) = V-RESTART>
|
||||
<VERB-SYNONYM SCRIPT UNSCRIPT>
|
||||
<SYNTAX SCRIPT = V-SCRIPT>
|
||||
<SYNTAX UNDO = V-UNDO>
|
||||
<VERB-SYNONYM VERSION $VERSION>
|
||||
<SYNTAX VERSION = V-VERSION>
|
||||
<SYNTAX SCORE = V-SCORE>
|
||||
<SYNTAX DIAGNOSE = V-DIAGNOSE>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "A"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX ASK OBJECT (ON-GROUND IN-ROOM) ABOUT OBJECT (EVERYWHERE) = V-ASK-ABOUT>
|
||||
;<SYNTAX ASK OBJECT (ON-GROUND IN-ROOM) FOR OBJECT (EVERYWHERE) = V-ASK-FOR>
|
||||
|
||||
;<VERB-SYNONYM ATTACK KILL FIGHT HURT STAB SLAY STUN>
|
||||
;<SYNTAX ATTACK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT (FIND FL-WEAPON) (HELD CARRIED HAVE) = V-ATTACK>
|
||||
|
||||
<VERB-SYNONYM ATTACH CONNECT>
|
||||
<SYNTAX ATTACH OBJECT TO OBJECT = V-ATTACH>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "B"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX BLOW UP OBJECT = V-INFLATE> ; "DEB -- Do we need find tokens here?"
|
||||
|
||||
;<VERB-SYNONYM BREAK DESTROY DAMAGE SMASH WRECK>
|
||||
;<SYNTAX BREAK OBJECT WITH OBJECT (FIND FL-BY-HAND) (HAVE HELD CARRIED) = V-BREAK>
|
||||
;<SYNTAX BREAK OFF OBJECT WITH OBJECT (FIND FL-BY-HAND) (HAVE HELD CARRIED) = V-BREAK>
|
||||
;<SYNTAX BREAK DOWN OBJECT WITH OBJECT (FIND FL-BY-HAND) (HAVE HELD CARRIED) = V-BREAK>
|
||||
;<SYNTAX BREAK IN OBJECT (ON-GROUND IN-ROOM) WITH OBJECT (FIND FL-BY-HAND) (HAVE HELD CARRIED) = V-BREAK>
|
||||
;<SYNTAX BREAK THROUGH OBJECT (ON-GROUND IN-ROOM) WITH OBJECT (FIND FL-BY-HAND) (HAVE HELD CARRIED) = V-BREAK>
|
||||
;<SYNTAX BREAK OBJECT (ON-GROUND IN-ROOM) OFF OBJECT (ON-GROUND IN-ROOM) = V-BREAK>
|
||||
|
||||
;<VERB-SYNONYM BYE GOODBYE FAREWELL>
|
||||
;<SYNTAX BYE OBJECT (FIND FL-ROOMS) = V-GOODBYE>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "C"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX CLAMP OBJECT TO OBJECT = V-ATTACH>
|
||||
|
||||
<VERB-SYNONYM CLOSE SHUT>
|
||||
<SYNTAX CLOSE OBJECT (FIND FL-OPENABLE) (HELD CARRIED ON-GROUND IN-ROOM) = V-CLOSE>
|
||||
|
||||
<SYNTAX CUT OBJECT WITH OBJECT (HELD HAVE TAKE) (FIND FL-KNIFE) = V-CUT>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "D"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX DROP OBJECT (HELD CARRIED MANY HAVE TAKE) = V-DROP PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (HELD CARRIED MANY HAVE TAKE) DOWN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX DROP OBJECT (HELD CARRIED MANY HAVE TAKE) IN OBJECT = V-PUT-IN PRE-PUT-IN>
|
||||
<SYNTAX DROP OBJECT (HELD CARRIED MANY HAVE TAKE) ON OBJECT = V-PUT PRE-PUT>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "E"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<VERB-SYNONYM EMPTY POUR>
|
||||
<SYNTAX EMPTY OBJECT IN OBJECT (FIND FL-ROOMS) = V-EMPTY PRE-EMPTY>
|
||||
<SYNTAX EMPTY OUT OBJECT IN OBJECT (FIND FL-ROOMS) = V-EMPTY PRE-EMPTY>
|
||||
<SYNTAX EMPTY OBJECT ON OBJECT (FIND FL-ROOMS) = V-EMPTY PRE-EMPTY>
|
||||
<SYNTAX EMPTY OUT OBJECT ON OBJECT (FIND FL-ROOMS) = V-EMPTY PRE-EMPTY>
|
||||
<SYNTAX EMPTY OBJECT FROM OBJECT = V-EMPTY-FROM>
|
||||
<SYNTAX EMPTY OUT OBJECT FROM OBJECT = V-EMPTY-FROM>
|
||||
<SYNTAX EMPTY OBJECT OUT OBJECT = V-EMPTY-FROM>
|
||||
|
||||
<SYNTAX ENTER OBJECT (ON-GROUND IN-ROOM) = V-ENTER>
|
||||
|
||||
<VERB-SYNONYM EXAMINE X>
|
||||
<SYNTAX EXAMINE OBJECT (HAVE EVERYWHERE) = V-EXAMINE ;PRE-EXAMINE>
|
||||
|
||||
<SYNTAX EXIT OBJECT (ON-GROUND IN-ROOM) = V-EXIT>
|
||||
|
||||
<SYNTAX EXTINGUISH OBJECT = V-EXTINGUISH>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "F"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<VERB-SYNONYM FOLLOW CHASE TAIL>
|
||||
<SYNTAX FOLLOW OBJECT (EVERYWHERE) = V-FOLLOW>
|
||||
<SYNTAX FOLLOW AFTER OBJECT (EVERYWHERE) = V-FOLLOW>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "G"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX GET OBJECT (FIND FL-TAKEABLE) (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT (IN-ROOM CARRIED MANY) FROM OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT (IN-ROOM CARRIED MANY) IN OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT (CARRIED IN-ROOM MANY) OFF OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT (CARRIED IN-ROOM MANY) OUT OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX GET OBJECT WITH OBJECT (HELD) = V-TAKE-WITH PRE-TAKE>
|
||||
<SYNTAX GET RID OBJECT = V-DROP PRE-PUT>
|
||||
<SYNTAX GET IN OBJECT (ON-GROUND IN-ROOM) = V-ENTER>
|
||||
<SYNTAX GET FROM OBJECT (FIND FL-ROOMS) = V-EXIT>
|
||||
<SYNTAX GET OUT OBJECT (FIND FL-ROOMS) = V-EXIT>
|
||||
<SYNTAX GET THROUGH OBJECT = V-ENTER>
|
||||
|
||||
<VERB-SYNONYM GIVE HAND GRANT DELIVER OFFER LOAN LEND>
|
||||
<SYNTAX GIVE OBJECT (HELD CARRIED HAVE TAKE MANY) TO OBJECT (FIND FL-PERSON) (IN-ROOM ON-GROUND) = V-GIVE ;PRE-GIVE>
|
||||
<SYNTAX GIVE OBJECT (ON-GROUND IN-ROOM) OBJECT (HELD CARRIED HAVE TAKE MANY) = V-GIVE-SWP>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "H"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
;<VERB-SYNONYM HELLO HI GREETINGS GREET SALUTE>
|
||||
;<SYNTAX HELLO OBJECT (FIND FL-ROOMS) = V-HELLO>
|
||||
|
||||
<SYNTAX HOLD OBJECT (FIND FL-TAKEABLE) (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
|
||||
|
||||
<VERB-SYNONYM HIT SLAP WHACK SWAT STRIKE PUNCH>
|
||||
<SYNTAX HIT OBJECT (ON-GROUND IN-ROOM) WITH OBJECT (FIND FL-BY-HAND) (HELD CARRIED HAVE) = V-HIT>
|
||||
<SYNTAX HIT AT OBJECT (ON-GROUND IN-ROOM) WITH OBJECT (FIND FL-BY-HAND) (HELD CARRIED HAVE) = V-HIT>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "I"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX INFLATE OBJECT = V-INFLATE>
|
||||
|
||||
<VERB-SYNONYM INVENTORY I INVENT>
|
||||
<SYNTAX INVENTORY = V-INVENTORY>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "J"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX JUMP FROM OBJECT = V-EXIT>
|
||||
<SYNTAX JUMP IN OBJECT (FIND FL-ROOMS) = V-ENTER>
|
||||
<SYNTAX JUMP OUT OBJECT (FIND FL-ROOMS) = V-EXIT>
|
||||
<SYNTAX JUMP TO OBJECT = V-ENTER>
|
||||
<SYNTAX JUMP THROUGH OBJECT = V-ENTER>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "K"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
;<SYNTAX KICK OBJECT (ON-GROUND IN-ROOM) = V-ATTACK>
|
||||
;<SYNTAX KICK AT OBJECT (ON-GROUND IN-ROOM) = V-ATTACK>
|
||||
|
||||
;<SYNTAX KNOCK DOWN OBJECT (ON-GROUND IN-ROOM) WITH OBJECT (FIND FL-WEAPON) (HELD CARRIED HAVE) = V-ATTACK>
|
||||
;<SYNTAX KNOCK OBJECT (ON-GROUND IN-ROOM) WITH OBJECT (FIND FL-WEAPON) (HELD CARRIED HAVE) = V-ATTACK>
|
||||
;<SYNTAX KNOCK OUT OBJECT (ON-GROUND IN-ROOM) WITH OBJECT (FIND FL-WEAPON) (HELD CARRIED HAVE) = V-ATTACK>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "L"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX LET GO OBJECT (HELD) = V-DROP PRE-PUT>
|
||||
|
||||
<VOC "LIE">
|
||||
;<SYNTAX LIE = V-FOO>
|
||||
|
||||
<VERB-SYNONYM LIFT RAISE>
|
||||
<SYNTAX LIFT OBJECT WITH OBJECT (HELD HAVE) (FIND FL-BY-HAND) = V-LIFT>
|
||||
|
||||
<SYNTAX LISTEN OBJECT (FIND FL-ROOMS) = V-LISTEN>
|
||||
<SYNTAX LISTEN AT OBJECT = V-LISTEN>
|
||||
<SYNTAX LISTEN THROUGH OBJECT = V-LISTEN>
|
||||
<SYNTAX LISTEN TO OBJECT = V-LISTEN>
|
||||
|
||||
<SYNTAX LOCK OBJECT WITH OBJECT (HELD HAVE TAKE) (FIND FL-KEY) = V-LOCK>
|
||||
|
||||
<VERB-SYNONYM LOOK L>
|
||||
<SYNTAX LOOK = V-LOOK>
|
||||
<SYNTAX LOOK OBJECT (HAVE EVERYWHERE) = V-EXAMINE ;PRE-EXAMINE>
|
||||
<SYNTAX LOOK AROUND OBJECT (FIND FL-ROOMS) = V-LOOK>
|
||||
<SYNTAX LOOK AT OBJECT (HAVE EVERYWHERE) = V-EXAMINE ;PRE-EXAMINE>
|
||||
<SYNTAX LOOK IN OBJECT (HELD CARRIED ON-GROUND IN-ROOM) (FIND FL-ROOMS) = V-LOOK-IN ;PRE-LOOK-IN>
|
||||
<SYNTAX LOOK ON OBJECT (ON-GROUND IN-ROOM) = V-LOOK-ON>
|
||||
<SYNTAX LOOK OVER OBJECT = V-EXAMINE ;PRE-EXAMINE>
|
||||
;<SYNTAX LOOK UP OBJECT (FIND FL-ROOMS) = V-LOOK-UP>
|
||||
;<SYNTAX LOOK DOWN OBJECT (FIND FL-ROOMS) = V-LOOK-DOWN>
|
||||
<SYNTAX LOOK BEHIND OBJECT = V-LOOK-BEHIND>
|
||||
<SYNTAX LOOK UNDER OBJECT = V-LOOK-UNDER>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "M"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX MOVE OBJECT WITH OBJECT (HELD HAVE) (FIND FL-BY-HAND) = V-MOVE>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "N"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
;<VERB-SYNONYM NO N>
|
||||
<SYNTAX NO = V-NO>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "O"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX OPEN OBJECT (FIND FL-OPENABLE) = V-OPEN>
|
||||
<SYNTAX OPEN UP OBJECT (FIND FL-OPENABLE) = V-OPEN>
|
||||
<SYNTAX OPEN OBJECT (FIND FL-OPENABLE) WITH OBJECT (FIND FL-KEY) (HAVE TAKE) = V-OPEN>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "P"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX PICK OBJECT (FIND FL-TAKEABLE) (ON-GROUND MANY) = V-TAKE PRE-TAKE>
|
||||
<SYNTAX PICK UP OBJECT (FIND FL-TAKEABLE) (ON-GROUND MANY) = V-TAKE PRE-TAKE>
|
||||
|
||||
<SYNTAX PLUG IN OBJECT = V-PLUG-IN>
|
||||
|
||||
;<SYNTAX POKE OBJECT WITH OBJECT (FIND FL-WEAPON) = V-ATTACK>
|
||||
|
||||
<SYNTAX PRESS OBJECT = V-PUSH>
|
||||
|
||||
<SYNTAX PULL OBJECT = V-PULL>
|
||||
|
||||
<SYNTAX PULL OBJECT (CARRIED IN-ROOM MANY) OFF OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX PULL OUT OBJECT (CARRIED IN-ROOM MANY) = V-TAKE PRE-TAKE>
|
||||
<SYNTAX PULL OBJECT (CARRIED IN-ROOM MANY) FROM OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX PULL OBJECT (CARRIED IN-ROOM MANY) OUT OBJECT = V-TAKE PRE-TAKE>
|
||||
|
||||
<SYNTAX PUSH OBJECT (HELD CARRIED MANY HAVE TAKE) IN OBJECT = V-PUT-IN PRE-PUT-IN>
|
||||
<SYNTAX PUSH OBJECT = V-PUSH>
|
||||
|
||||
<VERB-SYNONYM PUT PLACE>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE TAKE) ON OBJECT (FIND FL-SURFACE) = V-PUT PRE-PUT>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE TAKE) ACROSS OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE TAKE) AROUND OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE TAKE) DOWN OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE TAKE) IN OBJECT = V-PUT-IN PRE-PUT-IN>
|
||||
<SYNTAX PUT OBJECT (HELD MANY HAVE TAKE) OVER OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX PUT AWAY OBJECT(HELD MANY HAVE TAKE) IN OBJECT = V-PUT-IN PRE-PUT-IN>
|
||||
<SYNTAX PUT DOWN OBJECT (HELD MANY HAVE) = V-DROP PRE-PUT>
|
||||
<SYNTAX PUT ON OBJECT (HELD HAVE TAKE) = V-WEAR>
|
||||
<SYNTAX PUT OUT OBJECT = V-EXTINGUISH>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Q"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "R"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX REACH IN OBJECT = V-REACH-IN>
|
||||
<SYNTAX REACH UNDER OBJECT WITH OBJECT (FIND FL-ROOMS) (HELD) = V-REACH-UNDER>
|
||||
<SYNTAX REACH BEHIND OBJECT = V-REACH-BEHIND>
|
||||
|
||||
<VERB-SYNONYM READ SKIM BROWSE LEAF>
|
||||
<SYNTAX READ OBJECT (TAKE) = V-READ>
|
||||
<SYNTAX READ THROUGH OBJECT (TAKE) = V-READ>
|
||||
|
||||
<SYNTAX REMOVE OBJECT = V-UNWEAR>
|
||||
<SYNTAX REMOVE OBJECT (IN-ROOM CARRIED MANY) FROM OBJECT = V-TAKE PRE-TAKE>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "S"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<VOC "SAY">
|
||||
|
||||
<SYNTAX SET OBJECT TO OBJECT = V-TURN-TO>
|
||||
<SYNTAX SET OBJECT (HELD MANY HAVE TAKE) ON OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX SET OBJECT (HELD MANY HAVE TAKE) IN OBJECT = V-PUT-IN PRE-PUT-IN>
|
||||
|
||||
<SYNTAX SHOW OBJECT TO OBJECT = V-SHOW>
|
||||
<SYNTAX SHOW OBJECT OBJECT = V-SHOW-SWP>
|
||||
|
||||
<SYNTAX SIT ON OBJECT (FIND FL-ROOMS) (ON-GROUND IN-ROOM) = V-SIT>
|
||||
<SYNTAX SIT IN OBJECT (ON-GROUND IN-ROOM) = V-ENTER>
|
||||
<SYNTAX SIT DOWN OBJECT (FIND FL-ROOMS) = V-SIT>
|
||||
<SYNTAX SIT AT OBJECT (ON-GROUND IN-ROOM) = V-SIT>
|
||||
|
||||
<SYNTAX SLIDE OBJECT (HELD MANY HAVE TAKE) IN OBJECT = V-PUT-IN PRE-PUT-IN>
|
||||
|
||||
;<SYNTAX STICK OBJECT WITH OBJECT (FIND FL-WEAPON) (HELD CARRIED HAVE) = V-ATTACK>
|
||||
<SYNTAX STICK OBJECT (HELD MANY HAVE TAKE) ON OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX STICK OBJECT (HELD MANY HAVE TAKE) IN OBJECT (FIND FL-ROOMS) = V-PUT-IN PRE-PUT-IN>
|
||||
|
||||
<SYNTAX SWITCH ON OBJECT = V-TURN-ON>
|
||||
<SYNTAX SWITCH OBJECT ON OBJECT (FIND FL-ROOMS) = V-TURN-ON>
|
||||
<SYNTAX SWITCH OFF OBJECT = V-TURN-OFF>
|
||||
<SYNTAX SWITCH OBJECT OFF OBJECT (FIND FL-ROOMS) = V-TURN-OFF>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "T"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX TELL OBJECT (FIND FL-PERSON) (ON-GROUND IN-ROOM MANY) = V-TELL>
|
||||
<SYNTAX TELL OBJECT (FIND FL-PERSON) (ON-GROUND IN-ROOM) ABOUT OBJECT (EVERYWHERE) = V-TELL-ABOUT>
|
||||
<SYNTAX TELL OBJECT (FIND FL-PERSON) (ON-GROUND IN-ROOM) OBJECT (EVERYWHERE) = V-TELL-ABOUT>
|
||||
|
||||
<VERB-SYNONYM TALK SPEAK CONVERSE>
|
||||
<SYNTAX TALK TO OBJECT (FIND FL-PERSON) (ON-GROUND IN-ROOM) = V-TALK-TO>
|
||||
<SYNTAX TALK WITH OBJECT (FIND FL-PERSON) (ON-GROUND IN-ROOM) = V-TALK-TO>
|
||||
|
||||
<VERB-SYNONYM TAKE CATCH GRAB PLUCK GRASP>
|
||||
<SYNTAX TAKE OBJECT (FIND FL-TAKEABLE) (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT (CARRIED IN-ROOM MANY) FROM OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT (CARRIED IN-ROOM MANY) IN OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT (CARRIED IN-ROOM MANY) OFF OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT (CARRIED IN-ROOM MANY) ON OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT (CARRIED IN-ROOM MANY) OUT OBJECT = V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OBJECT WITH OBJECT (HELD) = V-TAKE-WITH PRE-TAKE>
|
||||
<SYNTAX TAKE OUT OBJECT (CARRIED IN-ROOM MANY) = V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE UP OBJECT (ON-GROUND IN-ROOM MANY) = V-TAKE PRE-TAKE>
|
||||
<SYNTAX TAKE OFF OBJECT (HELD HAVE) = V-UNWEAR>
|
||||
|
||||
<SYNTAX THANK OBJECT (FIND FL-PERSON) (ON-GROUND IN-ROOM) = V-THANK>
|
||||
;<SYNTAX THANKS OBJECT (FIND FL-ROOMS) = V-THANK> ; "???"
|
||||
|
||||
<SYNTAX TIE OBJECT TO OBJECT = V-TIE-TO> ;"DEB -- Please check tokens"
|
||||
|
||||
<SYNTAX THROW AWAY OBJECT (HELD CARRIED HAVE) = V-DROP PRE-PUT>
|
||||
<SYNTAX THROW OBJECT (HELD MANY HAVE TAKE) IN OBJECT = V-PUT-IN PRE-PUT-IN>
|
||||
<SYNTAX THROW OBJECT (HELD MANY HAVE TAKE) ON OBJECT = V-PUT PRE-PUT>
|
||||
<SYNTAX THROW OBJECT (HELD MANY HAVE TAKE) OVER OBJECT (ON-GROUND IN-ROOM) = V-PUT PRE-PUT>
|
||||
;<SYNTAX THROW OBJECT (HELD CARRIED HAVE MANY) DOWN OBJECT (FIND FL-ROOMS) = V-DROP PRE-PUT>
|
||||
|
||||
<SYNTAX TURN OBJECT = V-TURN>
|
||||
<SYNTAX TURN OBJECT TO OBJECT = V-TURN-TO>
|
||||
<SYNTAX TURN OBJECT OBJECT = V-TURN-TO> ; ">turn object left"
|
||||
<SYNTAX TURN ON OBJECT = V-TURN-ON>
|
||||
<SYNTAX TURN OBJECT ON OBJECT (FIND FL-ROOMS) = V-TURN-ON>
|
||||
<SYNTAX TURN OFF OBJECT = V-TURN-OFF>
|
||||
<SYNTAX TURN OBJECT OFF OBJECT (FIND FL-ROOMS) = V-TURN-OFF>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "U"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<SYNTAX UNLOCK OBJECT WITH OBJECT (HELD HAVE TAKE) (FIND FL-KEY) = V-UNLOCK>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "V"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "W"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<VERB-SYNONYM WAIT Z>
|
||||
<SYNTAX WAIT = V-WAIT>
|
||||
<SYNTAX WAIT OBJECT (EVERYWHERE) = V-WAIT>
|
||||
<SYNTAX WAIT FOR OBJECT (EVERYWHERE) = V-WAIT>
|
||||
|
||||
<VERB-SYNONYM WALK HEAD GO RUN PROCEED SWIM>
|
||||
<SYNTAX WALK OBJECT = V-WALK>
|
||||
<SYNTAX WALK IN OBJECT = V-ENTER>
|
||||
<SYNTAX WALK THROUGH OBJECT = V-ENTER>
|
||||
<SYNTAX WALK TO OBJECT (EVERYWHERE) = V-WALK-TO ;PRE-WALK>
|
||||
<SYNTAX WALK AFTER OBJECT (EVERYWHERE) = V-FOLLOW>
|
||||
|
||||
<VERB-SYNONYM WEAR DON>
|
||||
<SYNTAX WEAR OBJECT (HELD ON-GROUND TAKE) = V-WEAR>
|
||||
|
||||
<SYNTAX WELD OBJECT = V-WELD>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "X"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Y"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
<VERB-SYNONYM YES Y>
|
||||
<SYNTAX YES = V-YES>
|
||||
|
||||
;"---------------------------------------------------------------------------"
|
||||
; "Z"
|
||||
;"---------------------------------------------------------------------------"
|
||||
|
||||
;<VERB-SYNONYM ZORK XYZZY PLUGH YOHO OZMOO GNUSTO FROTZ QUENDOR FROBOZZ>
|
||||
;<SYNTAX ZORK = V-ZORK>
|
||||
|
||||
;"***************************************************************************"
|
||||
; "end of file"
|
||||
;"***************************************************************************"
|
||||
|
112
top.zabstr
Normal file
112
top.zabstr
Normal file
|
@ -0,0 +1,112 @@
|
|||
<FLAGS-AND-DEFAULTS (("UNDO" T)("P-BE-VERB" T)("IN-ZILCH" T)(
|
||||
"P-DEBUGGING-PARSER" T)) (("SPEAKING-VERB?" "DEFS" #WORD *13502340306*) (
|
||||
"ASKING-VERB-WORD?" "DEFS" #WORD *22532376516*) ("NOT-HERE" "DEFS" #WORD
|
||||
*15356621152*) ("CAPITAL-NOUN?" "DEFS" #WORD *23200723325*) ("ITAKE-CHECK"
|
||||
"DEFS" #WORD *02210465225*) ("SEE-VERB?" "DEFS" #WORD *04241040772*) (
|
||||
"TELL-SAID-TO" "DEFS" #WORD *30047521107*) ("FIND-A-WINNER" "DEFS" #WORD
|
||||
*04477330146*) ("NO-M-WINNER-VERB?" "DEFS" #WORD *20532131111*) (
|
||||
"VERB-ALL-TEST" "DEFS" #WORD *22564325057*) ("OWNERS" "DEFS" #WORD
|
||||
*32225547276*))>
|
||||
|
||||
<INCLUDE "BASEDEFS" "PBITDEFS" "PDEFS">
|
||||
<FILE-FLAGS MDL-ZIL?>
|
||||
<BEGIN-SEGMENT 0>
|
||||
<DEFAULTS-DEFINED ADJ-USED? ASKING-VERB-WORD? CANT-UNDO CAPITAL-NOUN?
|
||||
FIND-A-WINNER ITAKE-CHECK META-LOC MORE-SPECIFIC NO-M-WINNER-VERB? NOT-HERE
|
||||
NOUN-USED? OWNERS P-PRONOUNS SEE-VERB? SIBREAKS SPEAKING-VERB? TELL-PRONOUN
|
||||
TELL-SAID-TO TELL-TOO-DARK VERB-ALL-TEST>
|
||||
<DEFAULT-DEFINITION SIBREAKS <SETG20 SIBREAKS ".,\"'!?">>
|
||||
<DEFAULT-DEFINITION OWNERS <CONSTANT OWNERS <TABLE (PURE LENGTH) PLAYER>>>
|
||||
<DEFAULT-DEFINITION MORE-SPECIFIC <ROUTINE MORE-SPECIFIC>>
|
||||
<SYNTAX \#DBG = V-PDEBUG>
|
||||
<GLOBAL P-DBUG:FLAG <>>
|
||||
<GLOBAL IDEBUG:FLAG <>>
|
||||
<CONSTANT G-DEBUG 69>
|
||||
<DEFINE-ROUTINE V-PDEBUG>
|
||||
<GLOBAL P-PRSI <>>
|
||||
<GLOBAL P-PRSO <>>
|
||||
<GLOBAL PRSA 0 <OR VERB FALSE>>
|
||||
<GLOBAL PRSQ 0>
|
||||
<GLOBAL PRSS:OBJECT 0>
|
||||
<GLOBAL PRSI:OBJECT 0>
|
||||
<GLOBAL PRSO:OBJECT 0>
|
||||
<GLOBAL P-MULT <>>
|
||||
<GLOBAL OPRSO <>>
|
||||
<GLOBAL P-CONT:NUMBER 0>
|
||||
<CONSTANT P-LEXWORDS 1>
|
||||
<CONSTANT P-LEXSTART 1>
|
||||
<CONSTANT P-LEXELEN 2>
|
||||
<CONSTANT P-WORDLEN 4>
|
||||
<GLOBAL P-WON <>>
|
||||
<DEFMAC RFATAL () '<PROG () <PUSH 2> <RSTACK>>>
|
||||
<GLOBAL P-PRSA-WORD <>>
|
||||
<GLOBAL PRSO-NP <>>
|
||||
<GLOBAL PRSI-NP <>>
|
||||
<GLOBAL CLOCKER-RUNNING:NUMBER 2>
|
||||
<GLOBAL P-CAN-UNDO:NUMBER 0>
|
||||
<DEFAULT-DEFINITION VERB-ALL-TEST <DEFINE VERB-ALL-TEST (O I "AUX" L) <SET L <
|
||||
LOC .O>> <COND (<VERB? DROP GIVE> <COND (<EQUAL? .L ,WINNER> <RTRUE>) (T <
|
||||
RFALSE>)>) (<VERB? PUT> <COND (<EQUAL? .O .I> <RFALSE>) (<NOT <IN? .O .I>> <
|
||||
RTRUE>) (T <RFALSE>)>) (<VERB? TAKE> <COND (<AND <NOT <FSET? .O ,TAKEBIT>> <NOT
|
||||
<FSET? .O ,TRYTAKEBIT>>> <RFALSE>)> <COND (<NOT <ZERO? .I>> <COND (<NOT <EQUAL?
|
||||
.L .I>> <RFALSE>)>) (<EQUAL? .L ,HERE> <RTRUE>)> <COND (<OR <FSET? .L ,
|
||||
PERSONBIT> <FSET? .L ,SURFACEBIT>> <RTRUE>) (<AND <FSET? .L ,CONTBIT> <FSET? .L
|
||||
,OPENBIT>> <RTRUE>) (T <RFALSE>)>) (<NOT <ZERO? .I>> <COND (<NOT <EQUAL? .O .I>
|
||||
> <RTRUE>) (T <RFALSE>)>) (T <RTRUE>)>>>
|
||||
<DEFINE-ROUTINE FIX-HIM-HER-IT>
|
||||
<DEFAULT-DEFINITION TELL-PRONOUN <ROUTINE TELL-PRONOUN>>
|
||||
<DEFAULT-DEFINITION NO-M-WINNER-VERB? <CONSTANT NO-M-WINNER-VERB-TABLE <PLTABLE
|
||||
V?TELL-ABOUT V?SGIVE V?SSHOW V?SRUB V?SPUT-ON>> <DEFINE NO-M-WINNER-VERB? () <
|
||||
COND (<INTBL? ,PRSA <ZREST ,NO-M-WINNER-VERB-TABLE 2> <ZGET ,
|
||||
NO-M-WINNER-VERB-TABLE 0>> <RTRUE>)>>>
|
||||
<DEFAULT-DEFINITION FIND-A-WINNER <DEFINE FIND-A-WINNER ACT ("OPT" (RM ,HERE))
|
||||
<COND (<AND <T? ,QCONTEXT> <IN? ,QCONTEXT .RM>> ,QCONTEXT) (T <REPEAT ((OTHER <
|
||||
FIRST? .RM>) (WHO <>) (N 0)) <COND (<ZERO? .OTHER> <RETURN .WHO .ACT>) (<AND <
|
||||
FSET? .OTHER ,PERSONBIT> <NOT <FSET? .OTHER ,INVISIBLE>> <NOT <EQUAL? .OTHER ,
|
||||
PLAYER>>> <COND (<G? <SET N <+ 1 .N>> 1> <RETURN <> .ACT>)> <SET WHO .OTHER>)>
|
||||
<SET OTHER <NEXT? .OTHER>>>)>>>
|
||||
<DEFAULT-DEFINITION TELL-SAID-TO <DEFINE TELL-SAID-TO (PER) <TELL "[said to " D
|
||||
.PER "]" CR>>>
|
||||
<GLOBAL QCONTEXT:OBJECT <>>
|
||||
<DEFINE-ROUTINE QCONTEXT-GOOD?>
|
||||
<DEFAULT-DEFINITION META-LOC <ROUTINE META-LOC>>
|
||||
<DEFAULT-DEFINITION P-PRONOUNS <GLOBAL P-IT-OBJECT:OBJECT <>> <GLOBAL
|
||||
P-THEM-OBJECT:OBJECT <>> <GLOBAL P-HER-OBJECT:OBJECT <>> <GLOBAL P-HIM-OBJECT:
|
||||
OBJECT <>>>
|
||||
<DEFAULT-DEFINITION CANT-UNDO <IF-UNDO <ROUTINE CANT-UNDO>>>
|
||||
<DEFINE-ROUTINE CANT-UNDO>
|
||||
<GLOBAL NOW-PRSI:FLAG <>>
|
||||
<GLOBAL OBJ-SWAP:FLAG <>>
|
||||
<OBJECT NOT-HERE-OBJECT (CONTFCN 0) (THINGS 0)>
|
||||
<DEFAULT-DEFINITION SEE-VERB? <DEFINE SEE-VERB? () <VERB? CHASTISE EXAMINE FIND
|
||||
LOOK LOOK-BEHIND LOOK-DOWN LOOK-INSIDE LOOK-UNDER LOOK-UP READ SEARCH>>>
|
||||
<DEFINE-ROUTINE PERFORM>
|
||||
<DEFAULT-DEFINITION TELL-TOO-DARK <ROUTINE TELL-TOO-DARK>>
|
||||
<DEFAULT-DEFINITION ITAKE-CHECK <DEFINE ITAKE-CHECK (OBJ BITS "AUX" (TAKEN <>))
|
||||
<COND (<==? .OBJ ,IT> <SET OBJ ,P-IT-OBJECT>) (<==? .OBJ ,THEM> <SET OBJ ,
|
||||
P-THEM-OBJECT>)> <COND (<AND <NOT <HELD? .OBJ ,WINNER>> <NOT <EQUAL? .OBJ ,
|
||||
HANDS ,ROOMS>>> <COND (<FSET? .OBJ ,TRYTAKEBIT> T) (<NOT <==? ,WINNER ,PLAYER>>
|
||||
<SET TAKEN T>) (<AND <BTST .BITS ,SEARCH-DO-TAKE> <==? <ITAKE <> .OBJ> T>> <SET
|
||||
TAKEN T>)> <COND (<AND <NOT .TAKEN> <BTST .BITS ,SEARCH-MUST-HAVE> <NOT <BTST .
|
||||
BITS ,SEARCH-MOBY>>> <TELL !\[> <COND (<EQUAL? ,WINNER ,PLAYER> <TELL "You are"
|
||||
>) (T <TELL-CTHE ,WINNER> <TELL " is">)> <TELL "n't holding "> <TELL-THE .OBJ>
|
||||
<THIS-IS-IT .OBJ> <TELL "!]" CR> <RTRUE>)>)>>>
|
||||
<DEFINE-ROUTINE TELL-D-LOC>
|
||||
<DEFINE-ROUTINE D-APPLY>
|
||||
<DEFAULT-DEFINITION CAPITAL-NOUN? <DEFINE CAPITAL-NOUN? (NAM) <>>>
|
||||
<DEFAULT-DEFINITION NOT-HERE <DEFINE NOT-HERE (OBJ "OPT" (CLOCK <>)) <COND (<
|
||||
ZERO? .CLOCK> <SETG CLOCK-WAIT T> <TELL "[But">)> <TELL !\ > <TELL-THE .OBJ> <
|
||||
IFFLAG (P-BE-VERB <PRINT-IS/ARE .OBJ>) (T <TELL " is">)> <TELL "n't "> <COND (<
|
||||
VISIBLE? .OBJ> <TELL "close enough"> <COND (<SPEAKING-VERB?> <TELL
|
||||
" to hear you">)> <TELL !\.>) (T <TELL "here!">)> <THIS-IS-IT .OBJ> <COND (<
|
||||
ZERO? .CLOCK> <TELL !\]>)> <CRLF>>>
|
||||
<DEFAULT-DEFINITION ASKING-VERB-WORD? <ADD-WORD ASK ASKWORD> <ADD-WORD ORDER
|
||||
ASKWORD> <ADD-WORD TELL ASKWORD>>
|
||||
<DEFAULT-DEFINITION SPEAKING-VERB? <DEFINE SPEAKING-VERB? ("OPT" (A ,PRSA)) <
|
||||
COND (<EQUAL? .A ,V?ANSWER ,V?ASK-ABOUT ,V?ASK-FOR ,V?HELLO ,V?NO ,V?REPLY ,
|
||||
V?TELL ,V?TELL-ABOUT ,V?YES> <COND (T <RTRUE>)>)>>>
|
||||
<DEFINE-ROUTINE GET-OWNER>
|
||||
<DEFINE-ROUTINE GET-NP>
|
||||
<DEFAULT-DEFINITION NOUN-USED? <ROUTINE NOUN-USED?>>
|
||||
<DEFAULT-DEFINITION ADJ-USED? <ROUTINE ADJ-USED?>>
|
||||
<END-SEGMENT>
|
487
top.zap
Normal file
487
top.zap
Normal file
|
@ -0,0 +1,487 @@
|
|||
|
||||
.SEGMENT "0"
|
||||
|
||||
|
||||
.FUNCT MORE-SPECIFIC:ANY:0:0
|
||||
SET 'CLOCK-WAIT,TRUE-VALUE
|
||||
PRINTR "[Please be more specific.]"
|
||||
|
||||
|
||||
.FUNCT V-PDEBUG:ANY:0:0
|
||||
ZERO? PRSO /?CCL3
|
||||
ZERO? IDEBUG /?PRT4
|
||||
SET 'IDEBUG,0
|
||||
JUMP ?PRE6
|
||||
?PRT4: SET 'IDEBUG,1
|
||||
?PRE6: PRINTC 123
|
||||
PRINTN IDEBUG
|
||||
PRINTR "}"
|
||||
?CCL3: ZERO? P-DBUG /?PRT9
|
||||
SET 'P-DBUG,0
|
||||
JUMP ?PRE11
|
||||
?PRT9: SET 'P-DBUG,1
|
||||
?PRE11: ZERO? P-DBUG /?CCL8
|
||||
PRINTR "Find them bugs, boss!"
|
||||
?CCL8: PRINTR "No bugs left, eh?"
|
||||
|
||||
|
||||
.FUNCT VERB-ALL-TEST:ANY:2:2,O,I,L
|
||||
LOC O >L
|
||||
FSET? O,FL-NO-ALL /FALSE
|
||||
EQUAL? PRSA,V?DROP \?CCL5
|
||||
FSET? O,FL-WORN /FALSE
|
||||
EQUAL? L,WINNER /TRUE
|
||||
RFALSE
|
||||
?CCL5: EQUAL? PRSA,V?PUT,V?PUT-IN \?CCL12
|
||||
EQUAL? O,I /FALSE
|
||||
FSET? O,FL-WORN /FALSE
|
||||
IN? O,I /FALSE
|
||||
RTRUE
|
||||
?CCL12: EQUAL? PRSA,V?TAKE \?CCL21
|
||||
CALL RT-META-IN?,WINNER,O
|
||||
ZERO? STACK \FALSE
|
||||
IN? O,WINNER /FALSE
|
||||
ZERO? I \?CCL28
|
||||
CALL RT-META-IN?,O,WINNER
|
||||
ZERO? STACK \FALSE
|
||||
?CCL28: FSET? O,FL-WORN /FALSE
|
||||
FSET? O,FL-TAKEABLE \FALSE
|
||||
ZERO? I /?CCL36
|
||||
EQUAL? L,I \FALSE
|
||||
?CCL36: EQUAL? L,HERE /TRUE
|
||||
FSET? L,FL-PERSON /TRUE
|
||||
FSET? L,FL-SURFACE /TRUE
|
||||
FSET? L,FL-CONTAINER \FALSE
|
||||
FSET? L,FL-OPEN /TRUE
|
||||
RFALSE
|
||||
?CCL21: ZERO? I /TRUE
|
||||
EQUAL? O,I /FALSE
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT FIX-HIM-HER-IT:ANY:2:2,PRON,OBJ
|
||||
ZERO? OBJ \?CCL3
|
||||
ICALL1 MORE-SPECIFIC
|
||||
RFALSE
|
||||
?CCL3: CALL2 ACCESSIBLE?,OBJ
|
||||
ZERO? STACK \?CCL5
|
||||
EQUAL? PRON,PRSO \?PRD9
|
||||
CALL2 EVERYWHERE-VERB?,1
|
||||
ZERO? STACK /?CTR4
|
||||
?PRD9: EQUAL? PRON,PRSI \?CCL5
|
||||
CALL2 EVERYWHERE-VERB?,2
|
||||
ZERO? STACK \?CCL5
|
||||
?CTR4: ICALL2 NOT-HERE,OBJ
|
||||
RFALSE
|
||||
?CCL5: EQUAL? PRSO,PRON \?CND14
|
||||
SET 'PRSO,OBJ
|
||||
ICALL TELL-PRONOUN,OBJ,PRON
|
||||
?CND14: EQUAL? PRSI,PRON \?CND16
|
||||
SET 'PRSI,OBJ
|
||||
ICALL TELL-PRONOUN,OBJ,PRON
|
||||
?CND16: EQUAL? PRSS,PRON \TRUE
|
||||
SET 'PRSS,OBJ
|
||||
ICALL TELL-PRONOUN,OBJ,PRON
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT TELL-PRONOUN:ANY:2:2,OBJ,PRON
|
||||
FSET? PRON,TOUCHBIT /FALSE
|
||||
EQUAL? OPRSO,OBJ /FALSE
|
||||
EQUAL? PRSA,V?DO? /FALSE
|
||||
PRINTI "["""
|
||||
ICALL2 RT-PRINT-DESC,PRON
|
||||
PRINTI """ meaning "
|
||||
ICALL2 TELL-THE,OBJ
|
||||
PRINTR "]"
|
||||
|
||||
|
||||
.FUNCT NO-M-WINNER-VERB?:ANY:0:0
|
||||
GET NO-M-WINNER-VERB-TABLE,0
|
||||
INTBL? PRSA,NO-M-WINNER-VERB-TABLE+2,STACK /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT FIND-A-WINNER:ANY:0:1,RM,WHO
|
||||
ASSIGNED? 'RM /?CND1
|
||||
SET 'RM,HERE
|
||||
?CND1: ZERO? QCONTEXT /?CCL5
|
||||
IN? QCONTEXT,RM \?CCL5
|
||||
RETURN QCONTEXT
|
||||
?CCL5: CALL FIND-FLAG,HERE,FL-PERSON,CH-PLAYER >WHO
|
||||
ZERO? WHO /?CCL9
|
||||
RETURN WHO
|
||||
?CCL9: CALL FIND-FLAG,HERE,FL-ALIVE,CH-PLAYER >WHO
|
||||
ZERO? WHO /FALSE
|
||||
RETURN WHO
|
||||
|
||||
|
||||
.FUNCT TELL-SAID-TO:ANY:1:1,PER
|
||||
PRINTI "[said to"
|
||||
ICALL RT-PRINT-OBJ,PER,K-ART-THE
|
||||
PRINTC 93
|
||||
CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT QCONTEXT-GOOD?:ANY:0:0
|
||||
ZERO? QCONTEXT /FALSE
|
||||
FSET? QCONTEXT,PERSONBIT \FALSE
|
||||
CALL2 META-LOC,QCONTEXT
|
||||
EQUAL? HERE,STACK \FALSE
|
||||
RETURN QCONTEXT
|
||||
|
||||
|
||||
.FUNCT META-LOC:ANY:1:2,OBJ,INV,L
|
||||
LOC OBJ >L
|
||||
?PRG1: EQUAL? FALSE-VALUE,OBJ,L /FALSE
|
||||
EQUAL? L,LOCAL-GLOBALS,GLOBAL-OBJECTS,GENERIC-OBJECTS \?CCL7
|
||||
RETURN L
|
||||
?CCL7: IN? OBJ,ROOMS \?CCL9
|
||||
RETURN OBJ
|
||||
?CCL9: ZERO? INV /?CND10
|
||||
FSET? OBJ,INVISIBLE /FALSE
|
||||
?CND10: SET 'OBJ,L
|
||||
LOC OBJ >L
|
||||
JUMP ?PRG1
|
||||
|
||||
|
||||
.FUNCT CANT-UNDO:ANY:0:0
|
||||
PRINTR "[I can't undo that now.]"
|
||||
|
||||
|
||||
.FUNCT SEE-VERB?:ANY:0:0
|
||||
EQUAL? PRSA,V?EXAMINE,V?LOOK,V?LOOK-IN /TRUE
|
||||
EQUAL? PRSA,V?LOOK-ON /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT PERFORM:ANY:1:3,PA,PO,PI,V,OA,OO,OI,OQ,OS,X,?TMP1,?TMP2
|
||||
SET 'OA,PRSA
|
||||
SET 'OO,PRSO
|
||||
SET 'OI,PRSI
|
||||
ZERO? OO /?CCL3
|
||||
EQUAL? OO,PI \?CCL3
|
||||
SET 'OBJ-SWAP,TRUE-VALUE
|
||||
JUMP ?CND1
|
||||
?CCL3: ZERO? OI /?CCL7
|
||||
EQUAL? OI,PO \?CCL7
|
||||
SET 'OBJ-SWAP,TRUE-VALUE
|
||||
JUMP ?CND1
|
||||
?CCL7: SET 'OBJ-SWAP,FALSE-VALUE
|
||||
?CND1: SET 'PRSA,PA
|
||||
SET 'PRSI,PI
|
||||
SET 'PRSO,PO
|
||||
ZERO? P-DBUG /?CND10
|
||||
PRINTI "{Perform: A="
|
||||
PRINTN PA
|
||||
ZERO? PO /?CND12
|
||||
PRINTI "/O="
|
||||
EQUAL? PRSA,V?WALK \?CCL16
|
||||
PRINTN PO
|
||||
JUMP ?CND12
|
||||
?CCL16: ICALL2 TELL-D-LOC,PO
|
||||
?CND12: ZERO? PI /?CND17
|
||||
PRINTI "/I="
|
||||
ICALL2 TELL-D-LOC,PI
|
||||
?CND17: ZERO? PRSQ /?CND19
|
||||
PRINTI "/Q="
|
||||
PRINTN PRSQ
|
||||
?CND19: ZERO? PRSS /?CND21
|
||||
PRINTI "/S="
|
||||
ICALL2 TELL-D-LOC,PRSS
|
||||
?CND21: PRINTI "}
|
||||
"
|
||||
?CND10: SET 'V,FALSE-VALUE
|
||||
ZERO? PRSS /?CND23
|
||||
ICALL2 THIS-IS-IT,PRSS
|
||||
?CND23: ZERO? PRSI /?CND25
|
||||
ICALL2 THIS-IS-IT,PRSI
|
||||
?CND25: ZERO? PRSO /?CND27
|
||||
EQUAL? PRSA,V?TELL /?CND27
|
||||
EQUAL? PRSA,V?WALK /?CND27
|
||||
ICALL2 THIS-IS-IT,PRSO
|
||||
?CND27: EQUAL? WINNER,PLAYER /?CND32
|
||||
ICALL2 THIS-IS-IT,WINNER
|
||||
?CND32: SET 'PO,PRSO
|
||||
SET 'PI,PRSI
|
||||
CALL1 NO-M-WINNER-VERB?
|
||||
ZERO? STACK \?CND34
|
||||
GETP WINNER,P?ACTION
|
||||
CALL D-APPLY,STR?49,STACK,M-WINNER >V
|
||||
?CND34: ZERO? PRSS /?CND37
|
||||
ZERO? V \?CND39
|
||||
GETP PRSS,P?ACTION
|
||||
CALL D-APPLY,STR?50,STACK,M-SUBJ >V
|
||||
?CND39: ZERO? V \?CND41
|
||||
ZERO? PRSQ /?CND41
|
||||
GET ACTIONS,PA >?TMP2
|
||||
ADD QACTIONS,2 >?TMP1
|
||||
GET QACTIONS,0
|
||||
INTBL? ?TMP2,?TMP1,STACK >X \?CND41
|
||||
GET X,2
|
||||
CALL D-APPLY,STR?51,STACK >V
|
||||
?CND41: ZERO? V \?CND47
|
||||
ZERO? PRSQ /?CCL51
|
||||
GET ACTIONS,PA >?TMP2
|
||||
ADD QACTIONS,2 >?TMP1
|
||||
GET QACTIONS,0
|
||||
INTBL? ?TMP2,?TMP1,STACK >X \?CND52
|
||||
GET X,1 >X
|
||||
ZERO? X /?CND52
|
||||
CALL D-APPLY,FALSE-VALUE,X >V
|
||||
?CND52: ZERO? V \?CND47
|
||||
GET ACTIONS,PRSQ
|
||||
CALL D-APPLY,FALSE-VALUE,STACK >V
|
||||
JUMP ?CND47
|
||||
?CCL51: ICALL D-APPLY,FALSE-VALUE,V-STATEMENT
|
||||
?CND47: EQUAL? M-FATAL,V \?CND58
|
||||
SET 'P-CONT,-1
|
||||
?CND58: SET 'PRSA,OA
|
||||
SET 'PRSO,OO
|
||||
SET 'PRSI,OI
|
||||
RETURN V
|
||||
?CND37: ZERO? V \?CND60
|
||||
LOC WINNER
|
||||
IN? STACK,ROOMS /?CND60
|
||||
LOC WINNER
|
||||
GETP STACK,P?ACTION
|
||||
CALL D-APPLY,STR?52,STACK,M-BEG >V
|
||||
?CND60: ZERO? V \?CND64
|
||||
GETP HERE,P?ACTION
|
||||
CALL D-APPLY,STR?52,STACK,M-BEG >V
|
||||
?CND64: ZERO? V \?CND66
|
||||
GET PREACTIONS,PA
|
||||
CALL D-APPLY,STR?51,STACK >V
|
||||
?CND66: SET 'NOW-PRSI,1
|
||||
ZERO? V \?CND68
|
||||
ZERO? PI /?CND68
|
||||
EQUAL? PRSA,V?WALK /?CND68
|
||||
LOC PI
|
||||
ZERO? STACK /?CND68
|
||||
LOC PI
|
||||
GETP STACK,P?CONTFCN >V
|
||||
ZERO? V /?CND68
|
||||
CALL D-APPLY,STR?53,V,M-CONTAINER >V
|
||||
?CND68: ZERO? V \?CND76
|
||||
ZERO? PI /?CND76
|
||||
EQUAL? PI,GLOBAL-HERE \?CND80
|
||||
GETP HERE,P?ACTION
|
||||
CALL D-APPLY,STR?54,STACK >V
|
||||
?CND80: ZERO? V \?CND76
|
||||
GETP PI,P?ACTION
|
||||
CALL D-APPLY,STR?54,STACK >V
|
||||
?CND76: SET 'NOW-PRSI,0
|
||||
ZERO? V \?CND84
|
||||
ZERO? PO /?CND84
|
||||
EQUAL? PRSA,V?WALK /?CND84
|
||||
LOC PO
|
||||
ZERO? STACK /?CND84
|
||||
LOC PO
|
||||
GETP STACK,P?CONTFCN >V
|
||||
ZERO? V /?CND84
|
||||
CALL D-APPLY,STR?53,V,M-CONTAINER >V
|
||||
?CND84: ZERO? V \?CND92
|
||||
ZERO? PO /?CND92
|
||||
EQUAL? PRSA,V?WALK /?CND92
|
||||
EQUAL? PO,GLOBAL-HERE \?CND97
|
||||
GETP HERE,P?ACTION
|
||||
CALL D-APPLY,STR?55,STACK >V
|
||||
?CND97: ZERO? V \?CND92
|
||||
GETP PO,P?ACTION
|
||||
CALL D-APPLY,STR?55,STACK >V
|
||||
?CND92: ZERO? V \?CND101
|
||||
GET ACTIONS,PA
|
||||
CALL D-APPLY,FALSE-VALUE,STACK >V
|
||||
?CND101: EQUAL? M-FATAL,V \?CND104
|
||||
SET 'P-CONT,-1
|
||||
?CND104: SET 'PRSA,OA
|
||||
SET 'PRSO,OO
|
||||
SET 'PRSI,OI
|
||||
RETURN V
|
||||
|
||||
|
||||
.FUNCT TELL-TOO-DARK:ANY:0:0
|
||||
PRINT TOO-DARK
|
||||
RETURN M-FATAL
|
||||
|
||||
|
||||
.FUNCT ITAKE-CHECK:ANY:2:2,OBJ,BITS,TAKEN,V
|
||||
CALL HELD?,OBJ,WINNER
|
||||
ZERO? STACK \FALSE
|
||||
EQUAL? OBJ,TH-HANDS,ROOMS /FALSE
|
||||
FSET? OBJ,FL-TRY-TAKE /?CND6
|
||||
CALL RT-META-IN?,OBJ,WINNER
|
||||
ZERO? STACK /?CND6
|
||||
CALL RT-META-IN?,WINNER,OBJ
|
||||
ZERO? STACK \?CND6
|
||||
BTST BITS,32 \?CND6
|
||||
CALL ITAKE,OBJ,FALSE-VALUE >V
|
||||
ZERO? V /?CND6
|
||||
EQUAL? V,M-FATAL /?CND6
|
||||
SET 'TAKEN,TRUE-VALUE
|
||||
?CND6: ZERO? TAKEN \FALSE
|
||||
BTST BITS,64 \FALSE
|
||||
ICALL2 THIS-IS-IT,OBJ
|
||||
PRINTC 91
|
||||
ICALL RT-PRINT-OBJ,WINNER,K-ART-THE,TRUE-VALUE,STR?56
|
||||
PRINTI "n't holding"
|
||||
ICALL RT-PRINT-OBJ,OBJ,K-ART-THE
|
||||
PRINTR ".]"
|
||||
|
||||
|
||||
.FUNCT TELL-D-LOC:ANY:1:1,OBJ
|
||||
PRINTD OBJ
|
||||
IN? OBJ,GLOBAL-OBJECTS \?CCL3
|
||||
PRINTI "(gl)"
|
||||
JUMP ?CND1
|
||||
?CCL3: IN? OBJ,LOCAL-GLOBALS \?CCL5
|
||||
PRINTI "(lg)"
|
||||
JUMP ?CND1
|
||||
?CCL5: IN? OBJ,ROOMS \?CND1
|
||||
PRINTI "(rm)"
|
||||
?CND1: EQUAL? OBJ,INTNUM \FALSE
|
||||
PRINTC 40
|
||||
PRINTN P-NUMBER
|
||||
PRINTC 41
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT D-APPLY:ANY:2:3,STR,FCN,FOO,RES
|
||||
ZERO? FCN /FALSE
|
||||
ZERO? P-DBUG /?CND4
|
||||
ZERO? STR \?CCL8
|
||||
PRINTI "{Action:}
|
||||
"
|
||||
JUMP ?CND4
|
||||
?CCL8: PRINTC 123
|
||||
PRINT STR
|
||||
EQUAL? STR,STR?49 \?CND9
|
||||
PRINTC 61
|
||||
ICALL2 RT-PRINT-DESC,WINNER
|
||||
?CND9: PRINTI ": "
|
||||
?CND4: ZERO? FOO /?CCL13
|
||||
CALL FCN,FOO >RES
|
||||
JUMP ?CND11
|
||||
?CCL13: CALL FCN >RES
|
||||
?CND11: ZERO? P-DBUG /?CND14
|
||||
ZERO? STR /?CND14
|
||||
EQUAL? M-FATAL,RES /?CTR19
|
||||
EQUAL? P-CONT,-1 \?CCL20
|
||||
?CTR19: PRINTI "Fatal}
|
||||
"
|
||||
RETURN RES
|
||||
?CCL20: ZERO? RES \?CCL24
|
||||
PRINTI "Not handled}
|
||||
"
|
||||
RETURN RES
|
||||
?CCL24: PRINTI "Handled}
|
||||
"
|
||||
?CND14: RETURN RES
|
||||
|
||||
|
||||
.FUNCT CAPITAL-NOUN?:ANY:1:1,NAM
|
||||
EQUAL? NAM,W?COFFEY,W?LINDSEY /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT NOT-HERE:ANY:1:2,OBJ,CLOCK
|
||||
ZERO? CLOCK \?CND1
|
||||
SET 'CLOCK-WAIT,TRUE-VALUE
|
||||
PRINTC 91
|
||||
?CND1: ICALL RT-PRINT-OBJ,OBJ,K-ART-THE,TRUE-VALUE,STR?56
|
||||
PRINTI "n't "
|
||||
CALL2 VISIBLE?,OBJ
|
||||
ZERO? STACK /?CCL5
|
||||
PRINTI "close enough"
|
||||
CALL1 SPEAKING-VERB?
|
||||
ZERO? STACK /?CND3
|
||||
PRINTI " to hear you"
|
||||
JUMP ?CND3
|
||||
?CCL5: PRINTI "here"
|
||||
?CND3: PRINTC 46
|
||||
ICALL2 THIS-IS-IT,OBJ
|
||||
ZERO? CLOCK \?CND8
|
||||
PRINTC 93
|
||||
?CND8: CRLF
|
||||
RTRUE
|
||||
|
||||
|
||||
.FUNCT SPEAKING-VERB?:ANY:0:0
|
||||
EQUAL? PRSA,V?ASK-ABOUT,V?TALK-TO,V?TELL /TRUE
|
||||
EQUAL? PRSA,V?TELL-ABOUT /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT GET-OWNER:ANY:1:1,OBJ,TMP,NP
|
||||
CALL2 GET-NP,OBJ >NP
|
||||
ZERO? NP /FALSE
|
||||
GET NP,4 >TMP
|
||||
ZERO? TMP \?CTR5
|
||||
GET NP,1 >TMP
|
||||
ZERO? TMP /?CCL6
|
||||
GET TMP,2 >TMP
|
||||
ZERO? TMP /?CCL6
|
||||
?CTR5: LESS? 0,TMP \FALSE
|
||||
GRTR? TMP,LAST-OBJECT /FALSE
|
||||
RETURN TMP
|
||||
?CCL6: GETP OBJ,P?OWNER >TMP
|
||||
ZERO? TMP /FALSE
|
||||
LESS? 0,TMP \?CCL17
|
||||
GRTR? TMP,LAST-OBJECT \FALSE
|
||||
?CCL17: RETURN PLAYER
|
||||
|
||||
|
||||
.FUNCT GET-NP:ANY:0:1,OBJ,PRSI?
|
||||
SET 'PRSI?,NOW-PRSI
|
||||
EQUAL? OBJ,FALSE-VALUE,PRSO,PRSI \FALSE
|
||||
ZERO? OBJ /?CND1
|
||||
EQUAL? OBJ,PRSO \?CCL7
|
||||
SET 'PRSI?,FALSE-VALUE
|
||||
JUMP ?CND1
|
||||
?CCL7: SET 'PRSI?,TRUE-VALUE
|
||||
?CND1: ZERO? OBJ-SWAP /?CCL10
|
||||
ZERO? PRSI? /?CCL13
|
||||
RETURN PRSO-NP
|
||||
?CCL13: RETURN PRSI-NP
|
||||
?CCL10: ZERO? PRSI? /?CCL15
|
||||
RETURN PRSI-NP
|
||||
?CCL15: RETURN PRSO-NP
|
||||
|
||||
|
||||
.FUNCT NOUN-USED?:ANY:2:4,OBJ,WD1,WD2,WD3,X
|
||||
CALL2 GET-NP,OBJ >X
|
||||
ZERO? X /FALSE
|
||||
GET X,2 >X
|
||||
ZERO? X /FALSE
|
||||
EQUAL? X,WD1,WD2,WD3 /TRUE
|
||||
RFALSE
|
||||
|
||||
|
||||
.FUNCT ADJ-USED?:ANY:2:4,OBJ,WD1,WD2,WD3,NP,CT
|
||||
CALL2 GET-NP,OBJ >NP
|
||||
GET NP,1 >NP
|
||||
ZERO? NP /?CCL3
|
||||
GET NP,2
|
||||
EQUAL? PLAYER,STACK \?CCL6
|
||||
EQUAL? W?MY,WD1,WD2,WD3 \?CCL6
|
||||
RETURN W?MY
|
||||
?CCL6: GET NP,4 >CT
|
||||
GRTR? CT,0 \?CCL10
|
||||
ADD NP,10 >NP
|
||||
INTBL? WD1,NP,CT \?CCL13
|
||||
RETURN WD1
|
||||
?CCL13: ZERO? WD2 /FALSE
|
||||
INTBL? WD2,NP,CT \?CCL18
|
||||
RETURN WD2
|
||||
?CCL18: ZERO? WD3 /FALSE
|
||||
INTBL? WD3,NP,CT \FALSE
|
||||
RETURN WD3
|
||||
?CCL10: EQUAL? WD1,FALSE-VALUE /TRUE
|
||||
RFALSE
|
||||
?CCL3: EQUAL? WD1,FALSE-VALUE /TRUE
|
||||
RFALSE
|
||||
|
||||
.ENDSEG
|
||||
|
||||
.ENDI
|
78
util.zabstr
Normal file
78
util.zabstr
Normal file
|
@ -0,0 +1,78 @@
|
|||
<FLAGS-AND-DEFAULTS (("IN-ZILCH" T)) ()>
|
||||
|
||||
<SYNTAX $STEAL OBJECT (EVERYWHERE) = V-$STEAL>
|
||||
<DEFINE-ROUTINE V-$STEAL>
|
||||
<SYNTAX $GOTO OBJECT (EVERYWHERE) = V-$GOTO>
|
||||
<DEFINE-ROUTINE V-$GOTO>
|
||||
<DEFINE-ROUTINE V-VERSION>
|
||||
<CONSTANT K-MACHINE-NAME-TBL <TABLE (PURE LENGTH) "Debugging" "Apple IIe"
|
||||
"Macintosh" "Amiga" "Atari ST" "IBM" "Commodore 128" "Commodore 64" "Apple IIc"
|
||||
"Apple IIgs">>
|
||||
<VERB-SYNONYM COLOR COLOUR>
|
||||
<SYNTAX COLOR = V-COLOR>
|
||||
<GLOBAL GL-COLOR-NOTE <> <> BYTE>
|
||||
<GLOBAL GL-F-COLOR 1 <> BYTE>
|
||||
<GLOBAL GL-B-COLOR 1 <> BYTE>
|
||||
<DEFINE-ROUTINE V-COLOR>
|
||||
<DEFINE-ROUTINE RT-DO-COLOR>
|
||||
<DEFINE-ROUTINE RT-PICK-COLOR>
|
||||
<CONSTANT K-TYPE-NUMBER-MSG "Please press a number from 1 to ">
|
||||
<CONSTANT K-COLOR-TABLE <TABLE (PURE) "no change" "the standard color" "black"
|
||||
"red" "green" "yellow" "blue" "magenta" "cyan" "white">>
|
||||
<DEFINE-ROUTINE MAC-II?>
|
||||
<DEFINE-ROUTINE Y?>
|
||||
<DEFINE-ROUTINE RT-CHECK-ADJ>
|
||||
<DEFINE-ROUTINE RT-UPDATE-ADJ>
|
||||
<DEFINE-ROUTINE RT-SCORE-MSG>
|
||||
<DEFINE-ROUTINE RT-SCORE-OBJ>
|
||||
<GLOBAL GL-SCORE 0 <> BYTE>
|
||||
<DEFINE-ROUTINE V-SCORE>
|
||||
<DEFINE-ROUTINE V-DIAGNOSE>
|
||||
<DEFINE-ROUTINE RT-WORD-NUMBERS>
|
||||
<DEFINE-ROUTINE RT-END-OF-GAME>
|
||||
<DEFINE-ROUTINE RT-COMMA-MSG>
|
||||
<DEFINE-ROUTINE FIND-FLAG-LG>
|
||||
<DEFINE-ROUTINE FIND-FLAG>
|
||||
<DEFINE-ROUTINE RT-ALREADY-MSG>
|
||||
<DEFINE-ROUTINE RT-META-IN?>
|
||||
<DEFINE-ROUTINE NO-NEED>
|
||||
<DEFINE-ROUTINE RT-YOU-CANT-MSG>
|
||||
<DEFINE-ROUTINE HAR-HAR>
|
||||
<DEFINE-ROUTINE RT-IMPOSSIBLE-MSG>
|
||||
<DEFINE-ROUTINE WONT-HELP>
|
||||
<DEFINE-ROUTINE PICK-ONE>
|
||||
<DEFINE-ROUTINE GLOBAL-IN?>
|
||||
<DEFINE-ROUTINE RT-FIRST-YOU-MSG>
|
||||
<DEFINE-ROUTINE RT-SEE-INSIDE?>
|
||||
<DEFINE-ROUTINE RT-SEE-ANYTHING-IN?>
|
||||
<DEFINE-ROUTINE RT-MOVE-ALL>
|
||||
<DEFINE-ROUTINE RT-MOVE-ALL-BUT-WORN>
|
||||
<DEFINE-ROUTINE RT-MOVE-ALL-WORN>
|
||||
<CONSTANT K-NOT-LIKELY-TBL <TABLE (PATTERN (BYTE WORD)) <BYTE 1> <TABLE (PURE
|
||||
LENGTH) "isn't likely" "seems doubtful" "seems unlikely" "doesn't seem likely">
|
||||
>>
|
||||
<DEFINE-ROUTINE RT-NOT-LIKELY-MSG>
|
||||
<CONSTANT K-NO-POINT-TBL <TABLE (PATTERN (BYTE WORD)) <BYTE 1> <TABLE (PURE
|
||||
LENGTH) "not do anything useful" "accomplish nothing"
|
||||
"have no desirable effect" "not be very productive" "serve no purpose"
|
||||
"be pointless">>>
|
||||
<DEFINE-ROUTINE RT-NO-POINT-MSG>
|
||||
<CONSTANT K-UNUSUAL-TBL <TABLE (PATTERN (BYTE WORD)) <BYTE 1> <TABLE (PURE
|
||||
LENGTH) "unusual" "special" "interesting" "important" "of interest"
|
||||
"out of the ordinary">>>
|
||||
<DEFINE-ROUTINE RT-PICK-NEXT>
|
||||
<CONSTANT K-TOO-DARK-MSG "It's too dark to see.">
|
||||
<CONSTANT K-TALK-TO-SELF-MSG "[Talking to yourself is a bad sign.]">
|
||||
<DEFINE-ROUTINE RT-NO-RESPONSE-MSG>
|
||||
<DEFINE-ROUTINE RT-FOOLISH-TO-TALK?>
|
||||
<DEFINE-ROUTINE RT-WASTE-OF-TIME-MSG>
|
||||
<CONSTANT K-HOW-INTEND-MSG "[How do you intend to do that?]">
|
||||
<SYNTAX $P OBJECT = V-$P>
|
||||
<DEFINE-ROUTINE V-$P>
|
||||
<DEFINE-ROUTINE RT-CENTER-PIC>
|
||||
<SYNTAX $D OBJECT = V-$D>
|
||||
<DEFINE-ROUTINE V-$D>
|
||||
<SYNTAX $SHOW = V-$SHOW>
|
||||
<DEFINE-ROUTINE V-$SHOW>
|
||||
<SYNTAX $W OBJECT = V-$W>
|
||||
<DEFINE-ROUTINE V-$W>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue