-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathglobals.zap
200 lines (173 loc) · 5.04 KB
/
globals.zap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
.FUNCT NOT-HERE-OBJECT-F:ANY:0:0,TBL,PRSO?,OBJ
SET 'PRSO?,TRUE-VALUE
EQUAL? PRSO,NOT-HERE-OBJECT \?CCL3
EQUAL? PRSI,NOT-HERE-OBJECT \?CCL3
PRINTR "Diese Dinge sind nicht hier!"
?CCL3: EQUAL? PRSO,NOT-HERE-OBJECT \?CCL7
SET 'TBL,P-PRSO
JUMP ?CND1
?CCL7: SET 'TBL,P-PRSI
SET 'PRSO?,FALSE-VALUE
?CND1: SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
EQUAL? WINNER,PLAYER \?CCL10
PRINTR "Du kannst das hier nicht sehen!"
?CCL10: ICALL2 DER-NOM-CAP-PRINT,WINNER
PRINTR " scheint verwirrt. %>Ich sehe das hier nicht!%<"
.FUNCT NULL-F:ANY:0:2,A1,A2
RFALSE
.FUNCT STAIRS-F:ANY:0:0
EQUAL? PRSA,V?THROUGH \FALSE
PRINTR "Du mu%st sagen, ob du nach oben oder unten gehen willst."
.FUNCT SAILOR-FCN:ANY:0:0
EQUAL? PRSA,V?TELL \?CCL3
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
PRINTR "So kannst du mit dem Seemann nicht sprechen."
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
PRINTR "Hier ist kein Seemann zu sehen."
?CCL5: EQUAL? PRSA,V?HELLO \FALSE
INC 'HS
MOD HS,20
ZERO? STACK \?CCL10
PRINTR "Du wiederholst dich."
?CCL10: MOD HS,10
ZERO? STACK \?CCL12
PRINTR "Dieser Satz wird langsam langweilig."
?CCL12: PRINTR "Hier passiert garnichts."
.FUNCT GROUND-FUNCTION:ANY:0:0
EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL3
EQUAL? PRSI,GROUND \?CCL3
ICALL PERFORM,V?DROP,PRSO
RTRUE
?CCL3: EQUAL? HERE,SANDY-CAVE \?CCL7
CALL1 SAND-FUNCTION
RSTACK
?CCL7: EQUAL? PRSA,V?DIG \FALSE
PRINTR "Hier ist der Boden zu hart zum Graben."
.FUNCT GRUE-FUNCTION:ANY:0:0
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTR "Das Greuel ist ein b%osartiges lauerndes Wesen in den dunklen Orten dieser Welt. Sein Lieblingsfressen besteht aus Abenteurern, aber sein uners%attlicher Appetit ist von seiner Furcht vor Licht gem%a%sigt Kein Greuel ist je bei Tageslicht gesehen worden, und nur wenige haben seine f%urchterlichen Krallen %uberlebt, um von dem grauenhaften Wesen zu erz%ahlen."
?CCL3: EQUAL? PRSA,V?FIND \?CCL5
PRINTR "Hier ist kein Greuel, aber ich bin sicher, das mindestens eines hier in der N%ahe im Dunkeln auf der Lauer liegt. Es w%are schon klug, auf die Lichtquelle zu achten."
?CCL5: EQUAL? PRSA,V?LISTEN \FALSE
PRINTR "Es gibt keinen Ton von sich, aber es liegt immer in der N%ahe im Dunkeln."
.FUNCT CRETIN-FCN:ANY:0:0,?TMP1
EQUAL? PRSA,V?TELL \?CCL3
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
PRINTR "Selbstgespr%ache deuten auf einen bevorstehenden Nervenzusammenbruch hin."
?CCL3: EQUAL? PRSA,V?GIVE \?CCL5
EQUAL? PRSI,ME \?CCL5
ICALL PERFORM,V?TAKE,PRSO
RTRUE
?CCL5: EQUAL? PRSA,V?ALARM \?CCL9
PRINTR "Du bist schon hellwach!"
?CCL9: EQUAL? PRSA,V?EAT \?CCL11
PRINTR "Selbst-Kanibalismus ist nicht die L%osung."
?CCL11: EQUAL? PRSA,V?MUNG,V?ATTACK \?CCL13
ZERO? PRSI /?CCL16
FSET? PRSI,WEAPONBIT \?CCL16
CALL2 JIGS-UP,STR?197
RSTACK
?CCL16: PRINTR "Selbstmord ist nicht die L%osung."
?CCL13: EQUAL? PRSA,V?THROW \?CCL20
EQUAL? PRSO,ME \FALSE
PRINTR "Warum l%aufst du nicht wie normale Menschen?"
?CCL20: EQUAL? PRSA,V?TAKE \?CCL25
PRINTR "Ach, wie romantisch!"
?CCL25: EQUAL? PRSA,V?EXAMINE \FALSE
LOC MIRROR-1 >?TMP1
LOC MIRROR-2
EQUAL? HERE,?TMP1,STACK \?CCL30
PRINTR "Dein Spiegelbild sieht m%ude aus."
?CCL30: PRINTR "Das ist schwierig, au%ser wenn deine Augen rausnehmbar sind."
.FUNCT PATH-OBJECT:ANY:0:0
EQUAL? PRSA,V?FOLLOW,V?TAKE,V?FIND \?CCL3
PRINTR "Du mu%st eine Richtung angeben."
?CCL3: EQUAL? PRSA,V?DIG \FALSE
ICALL PERFORM,V?DIG,GROUND
RTRUE
.FUNCT ZORKMID-FUNCTION:ANY:0:0
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTR "Zorkknete ist die W%ahrung des Gro%sen Unterweltreiches."
?CCL3: EQUAL? PRSA,V?FIND \FALSE
PRINTR "Man findet Zorkknete am besten, indem man rausgeht, und sie sucht."
.FUNCT INIT-STATUS-LINE:ANY:0:0
GETB 0,30 >HOST
GETB 0,38 >CWIDTH
GET 0,17
DIV STACK,CWIDTH >WIDTH
LESS? WIDTH,38 \?CND1
PRINTI "[Screen too narrow.]"
CRLF
QUIT
?CND1: GETB 0,39 >CHEIGHT
SET 'OHERE,FALSE-VALUE
SET 'OLD-LEN,0
SPLIT 1
SCREEN S-WINDOW
HLIGHT H-INVERSE
ICALL DO-CURSET,1,1
ICALL2 PRINT-SPACES,WIDTH
GRTR? WIDTH,75 \?CND3
ICALL DO-CURSET,1,48
PRINTI "Spielstand:"
ICALL DO-CURSET,1,66
PRINTI "Z%ugen:"
?CND3: HLIGHT H-NORMAL
SCREEN S-TEXT
RTRUE
.FUNCT UPDATE-STATUS-LINE:ANY:0:0
SCREEN S-WINDOW
HLIGHT H-NORMAL
HLIGHT H-INVERSE
EQUAL? HERE,OHERE /?CND1
SET 'OHERE,HERE
DIROUT D-TABLE-ON,SL-TABLE
ICALL1 SAY-HERE
DIROUT D-TABLE-OFF
ICALL DO-CURSET,1,2
ICALL2 PRINT-SPACES,OLD-LEN
GET SL-TABLE,0 >OLD-LEN
ICALL DO-CURSET,1,2
ICALL1 SAY-HERE
?CND1: GRTR? WIDTH,78 \?CCL5
ICALL DO-CURSET,1,60
PRINTN SCORE
PRINTC 32
ICALL DO-CURSET,1,73
PRINTN MOVES
JUMP ?CND3
?CCL5: DIROUT D-TABLE-ON,SL-TABLE
PRINTN SCORE
PRINTC 47
PRINTN MOVES
DIROUT D-TABLE-OFF
GET SL-TABLE,0
ADD STACK,2
SUB WIDTH,STACK
ICALL DO-CURSET,1,STACK
PRINTC 32
PRINTN SCORE
PRINTC 47
PRINTN MOVES
?CND3: HLIGHT H-NORMAL
SCREEN S-TEXT
RTRUE
.FUNCT PRINT-SPACES:ANY:1:1,N
?PRG1: DLESS? 'N,0 /TRUE
PRINTC 32
JUMP ?PRG1
.FUNCT SAY-HERE:ANY:0:0
ZERO? LIT? \?CCL3
PRINTI "Dunkelheit"
RTRUE
?CCL3: ICALL DPRINT,HERE,FALSE-VALUE
GRTR? WIDTH,75 \TRUE
IN? ADVENTURER,HERE /TRUE
PRINTI ", in "
LOC ADVENTURER
ICALL2 DER-DAT-PRINT,STACK
RTRUE
.ENDI