mirror of
https://github.com/historicalsource/zork2
synced 2024-07-01 06:15:18 +03:00
138 lines
3.8 KiB
Plaintext
138 lines
3.8 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
|
|
PRINTR "There is no sailor to be seen."
|
|
?ELS9: EQUAL? PRSA,V?HELLO \FALSE
|
|
INC 'HS
|
|
MOD HS,20
|
|
ZERO? STACK \?ELS18
|
|
PRINTR "You seem to be repeating yourself."
|
|
?ELS18: MOD HS,10
|
|
ZERO? STACK \?ELS22
|
|
PRINTR "I think that phrase is getting a bit worn out."
|
|
?ELS22: 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?167
|
|
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
|
|
CALL NULL-F
|
|
ZERO? STACK \TRUE
|
|
PRINTR "That's difficult unless your eyes are prehensile."
|
|
|
|
|
|
.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
|