]> github.com/historicalsource and other repositories - zork2.git/blob - gglobals.zap
Extensions on Z-Machine Fixed.
[zork2.git] / gglobals.zap
1
2
3         .FUNCT  NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ
4         EQUAL?  PRSO,NOT-HERE-OBJECT \?ELS3
5         EQUAL?  PRSI,NOT-HERE-OBJECT \?ELS3
6         PRINTR  "Those things aren't here!"
7 ?ELS3:  EQUAL?  PRSO,NOT-HERE-OBJECT \?ELS9
8         SET     'TBL,P-PRSO
9         JUMP    ?CND1
10 ?ELS9:  SET     'TBL,P-PRSI
11         SET     'PRSO?,FALSE-VALUE
12 ?CND1:  SET     'P-CONT,FALSE-VALUE
13         SET     'QUOTE-FLAG,FALSE-VALUE
14         EQUAL?  WINNER,PLAYER \?ELS14
15         PRINTI  "You can't see any "
16         CALL    NOT-HERE-PRINT,PRSO?
17         PRINTR  " here!"
18 ?ELS14: PRINTI  "The "
19         PRINTD  WINNER
20         PRINTI  " seems confused. ""I don't see any "
21         CALL    NOT-HERE-PRINT,PRSO?
22         PRINTR  " here!"""
23
24
25         .FUNCT  NOT-HERE-PRINT,PRSO?,?TMP1
26         ZERO?   P-OFLAG /?ELS5
27         ZERO?   P-XADJ /?CND7
28         PRINTB  P-XADJN
29 ?CND7:  ZERO?   P-XNAM /FALSE
30         PRINTB  P-XNAM
31         RTRUE   
32 ?ELS5:  ZERO?   PRSO? /?ELS18
33         GET     P-ITBL,P-NC1 >?TMP1
34         GET     P-ITBL,P-NC1L
35         CALL    BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
36         RSTACK  
37 ?ELS18: GET     P-ITBL,P-NC2 >?TMP1
38         GET     P-ITBL,P-NC2L
39         CALL    BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
40         RSTACK  
41
42
43         .FUNCT  NULL-F,A1,A2
44         RFALSE  
45
46
47         .FUNCT  STAIRS-F
48         EQUAL?  PRSA,V?THROUGH \FALSE
49         PRINTR  "You should say whether you want to go up or down."
50
51
52         .FUNCT  SAILOR-FCN
53         EQUAL?  PRSA,V?TELL \?ELS5
54         SET     'P-CONT,FALSE-VALUE
55         SET     'QUOTE-FLAG,FALSE-VALUE
56         PRINTR  "You can't talk to the sailor that way."
57 ?ELS5:  EQUAL?  PRSA,V?EXAMINE \?ELS9
58         PRINTR  "There is no sailor to be seen."
59 ?ELS9:  EQUAL?  PRSA,V?HELLO \FALSE
60         INC     'HS
61         MOD     HS,20
62         ZERO?   STACK \?ELS18
63         PRINTR  "You seem to be repeating yourself."
64 ?ELS18: MOD     HS,10
65         ZERO?   STACK \?ELS22
66         PRINTR  "I think that phrase is getting a bit worn out."
67 ?ELS22: PRINTR  "Nothing happens here."
68
69
70         .FUNCT  GROUND-FUNCTION
71         EQUAL?  PRSA,V?PUT-ON,V?PUT \?ELS5
72         EQUAL?  PRSI,GROUND \?ELS5
73         CALL    PERFORM,V?DROP,PRSO
74         RTRUE   
75 ?ELS5:  CALL    NULL-F
76         ZERO?   STACK \FALSE
77         EQUAL?  PRSA,V?DIG \FALSE
78         PRINTR  "The ground is too hard for digging here."
79
80
81         .FUNCT  GRUE-FUNCTION
82         EQUAL?  PRSA,V?EXAMINE \?ELS5
83         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."
84 ?ELS5:  EQUAL?  PRSA,V?FIND \?ELS9
85         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!"
86 ?ELS9:  EQUAL?  PRSA,V?LISTEN \FALSE
87         PRINTR  "It makes no sound but is always lurking in the darkness nearby."
88
89
90         .FUNCT  CRETIN-FCN
91         EQUAL?  PRSA,V?TELL \?ELS5
92         SET     'P-CONT,FALSE-VALUE
93         SET     'QUOTE-FLAG,FALSE-VALUE
94         PRINTR  "Talking to yourself is said to be a sign of impending mental collapse."
95 ?ELS5:  EQUAL?  PRSA,V?GIVE \?ELS9
96         EQUAL?  PRSI,ME \?ELS9
97         CALL    PERFORM,V?TAKE,PRSO
98         RTRUE   
99 ?ELS9:  EQUAL?  PRSA,V?MAKE \?ELS13
100         PRINTR  "Only you can do that."
101 ?ELS13: EQUAL?  PRSA,V?DISEMBARK \?ELS17
102         PRINTR  "You'll have to do that on your own."
103 ?ELS17: EQUAL?  PRSA,V?EAT \?ELS21
104         PRINTR  "Auto-cannibalism is not the answer."
105 ?ELS21: EQUAL?  PRSA,V?MUNG,V?ATTACK \?ELS25
106         ZERO?   PRSI /?ELS30
107         FSET?   PRSI,WEAPONBIT \?ELS30
108         CALL    JIGS-UP,STR?167
109         RSTACK  
110 ?ELS30: PRINTR  "Suicide is not the answer."
111 ?ELS25: EQUAL?  PRSA,V?THROW \?ELS38
112         EQUAL?  PRSO,ME \FALSE
113         PRINTR  "Why don't you just walk like normal people?"
114 ?ELS38: EQUAL?  PRSA,V?TAKE \?ELS47
115         PRINTR  "How romantic!"
116 ?ELS47: EQUAL?  PRSA,V?EXAMINE \FALSE
117         CALL    NULL-F
118         ZERO?   STACK \TRUE
119         PRINTR  "That's difficult unless your eyes are prehensile."
120
121
122         .FUNCT  PATH-OBJECT
123         EQUAL?  PRSA,V?FOLLOW,V?TAKE \?ELS5
124         PRINTR  "You must specify a direction to go."
125 ?ELS5:  EQUAL?  PRSA,V?FIND \?ELS9
126         PRINTR  "I can't help you there...."
127 ?ELS9:  EQUAL?  PRSA,V?DIG \FALSE
128         PRINTR  "Not a chance."
129
130
131         .FUNCT  ZORKMID-FUNCTION
132         EQUAL?  PRSA,V?EXAMINE \?ELS5
133         PRINTR  "The zorkmid is the unit of currency of the Great Underground Empire."
134 ?ELS5:  EQUAL?  PRSA,V?FIND \FALSE
135         PRINTR  "The best way to find zorkmids is to go out and look for them."
136
137         .ENDI