zork3/gglobals.zap

144 lines
4.3 KiB
Plaintext

.FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ
EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3
EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3
PRINTR "Those things aren't here!"
?ELS3: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS9
SET 'TBL,P-PRSO
JUMP ?CND1
?ELS9: SET 'TBL,P-PRSI
SET 'PRSO?,FALSE-VALUE
?CND1: SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
EQUAL? WINNER,PLAYER \?ELS14
PRINTI "You can't see any "
CALL NOT-HERE-PRINT,PRSO?
PRINTR " here!"
?ELS14: PRINTI "The "
PRINTD WINNER
PRINTI " seems confused. ""I don't see any "
CALL NOT-HERE-PRINT,PRSO?
PRINTR " here!"""
.FUNCT NOT-HERE-PRINT,PRSO?,?TMP1
ZERO? P-OFLAG /?ELS5
ZERO? P-XADJ /?CND7
PRINTB P-XADJN
?CND7: ZERO? P-XNAM /FALSE
PRINTB P-XNAM
RTRUE
?ELS5: ZERO? PRSO? /?ELS18
GET P-ITBL,P-NC1 >?TMP1
GET P-ITBL,P-NC1L
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
RSTACK
?ELS18: GET P-ITBL,P-NC2 >?TMP1
GET P-ITBL,P-NC2L
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
RSTACK
.FUNCT NULL-F,A1,A2
RFALSE
.FUNCT STAIRS-F
EQUAL? PRSA,V?THROUGH \FALSE
PRINTR "You should say whether you want to go up or down."
.FUNCT SAILOR-FCN
EQUAL? PRSA,V?TELL \?ELS5
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
PRINTR "You can't talk to the sailor that way."
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
FSET? VIKING-SHIP,INVISIBLE /?CND10
PRINTR "He looks like a sailor."
?CND10: PRINTR "There is no sailor to be seen."
?ELS9: EQUAL? PRSA,V?HELLO \FALSE
INC 'HS
FSET? VIKING-SHIP,INVISIBLE /?ELS23
PRINTI "The seaman looks up and maneuvers the boat toward shore. He cries out ""I have waited three ages for someone to say those words and save me from sailing this endless ocean. Please accept this gift. You may find it useful!"" He throws something which falls near you in the sand, then sails off toward the west, singing a lively, but somewhat uncouth, sailor song."
CRLF
FSET VIKING-SHIP,INVISIBLE
MOVE VIAL,HERE
RTRUE
?ELS23: EQUAL? HERE,FLATHEAD-OCEAN \?ELS27
ZERO? SHIP-GONE /?ELS32
PRINTR "Nothing happens anymore."
?ELS32: PRINTR "Nothing happens yet."
?ELS27: PRINTR "Nothing happens here."
.FUNCT GROUND-FUNCTION
EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS5
EQUAL? PRSI,GROUND \?ELS5
CALL PERFORM,V?DROP,PRSO
RTRUE
?ELS5: CALL NULL-F
ZERO? STACK \FALSE
EQUAL? PRSA,V?DIG \FALSE
PRINTR "The ground is too hard for digging here."
.FUNCT GRUE-FUNCTION
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "The grue is a sinister, lurking presence in the dark places of the earth. Its favorite diet is adventurers, but its insatiable appetite is tempered by its fear of light. No grue has ever been seen by the light of day, and few have survived its fearsome jaws to tell the tale."
?ELS5: EQUAL? PRSA,V?FIND \?ELS9
PRINTR "There is no grue here, but I'm sure there is at least one lurking in the darkness nearby. I wouldn't let my light go out if I were you!"
?ELS9: EQUAL? PRSA,V?LISTEN \FALSE
PRINTR "It makes no sound but is always lurking in the darkness nearby."
.FUNCT CRETIN-FCN
EQUAL? PRSA,V?TELL \?ELS5
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
PRINTR "Talking to yourself is said to be a sign of impending mental collapse."
?ELS5: EQUAL? PRSA,V?GIVE \?ELS9
EQUAL? PRSI,ME \?ELS9
CALL PERFORM,V?TAKE,PRSO
RTRUE
?ELS9: EQUAL? PRSA,V?MAKE \?ELS13
PRINTR "Only you can do that."
?ELS13: EQUAL? PRSA,V?DISEMBARK \?ELS17
PRINTR "You'll have to do that on your own."
?ELS17: EQUAL? PRSA,V?EAT \?ELS21
PRINTR "Auto-cannibalism is not the answer."
?ELS21: EQUAL? PRSA,V?MUNG,V?ATTACK \?ELS25
ZERO? PRSI /?ELS30
FSET? PRSI,WEAPONBIT \?ELS30
CALL JIGS-UP,STR?24
RSTACK
?ELS30: PRINTR "Suicide is not the answer."
?ELS25: EQUAL? PRSA,V?THROW \?ELS38
EQUAL? PRSO,ME \FALSE
PRINTR "Why don't you just walk like normal people?"
?ELS38: EQUAL? PRSA,V?TAKE \?ELS47
PRINTR "How romantic!"
?ELS47: EQUAL? PRSA,V?EXAMINE \FALSE
ZERO? INVIS /?ELS56
PRINTR "A good trick, as you are currently invisible."
?ELS56: PRINTR "What you can see looks pretty much as usual, sorry to say."
.FUNCT PATH-OBJECT
EQUAL? PRSA,V?FOLLOW,V?TAKE \?ELS5
PRINTR "You must specify a direction to go."
?ELS5: EQUAL? PRSA,V?FIND \?ELS9
PRINTR "I can't help you there...."
?ELS9: EQUAL? PRSA,V?DIG \FALSE
PRINTR "Not a chance."
.FUNCT ZORKMID-FUNCTION
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "The zorkmid is the unit of currency of the Great Underground Empire."
?ELS5: EQUAL? PRSA,V?FIND \FALSE
PRINTR "The best way to find zorkmids is to go out and look for them."
.ENDI