-
Notifications
You must be signed in to change notification settings - Fork 8
/
actions.zap
4013 lines (3641 loc) · 113 KB
/
actions.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
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
863
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.FUNCT WEST-HOUSE:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du stehst auf freiem Feld westlich von einem wei%sen Haus, dessen Haust%ur mit Brettern vernagelt ist."
ZERO? WON-FLAG /?CND4
PRINTR " Ein Geheimpfad f%uhrt nach S%udwesten in den Wald."
?CND4: CRLF
RTRUE
.FUNCT EAST-HOUSE:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du bist hinter dem wei%sen Haus. Nach Osten f%uhrt in Pfad in den Wald. An einem Ende der Hauswand befindet sich ein kleines Fenster, das"
FSET? KITCHEN-WINDOW,OPENBIT \?CCL6
PRINTR " offen ist."
?CCL6: PRINTR " einen Spalt offen steht."
.FUNCT OPEN-CLOSE:ANY:3:3,OBJ,STROPN,STRCLS
EQUAL? PRSA,V?OPEN \?CCL3
FSET? OBJ,OPENBIT \?CCL6
CALL2 PICK-ONE,DUMMY
PRINT STACK
JUMP ?CND4
?CCL6: PRINT STROPN
FSET OBJ,OPENBIT
?CND4: CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?CLOSE \FALSE
FSET? OBJ,OPENBIT \?CCL11
PRINT STRCLS
FCLEAR OBJ,OPENBIT
JUMP ?CND9
?CCL11: CALL2 PICK-ONE,DUMMY
PRINT STACK
?CND9: CRLF
RTRUE
.FUNCT BOARD-F:ANY:0:0
EQUAL? PRSA,V?EXAMINE,V?TAKE \FALSE
PRINTR "Die Bretter sind fest angenagelt."
.FUNCT TEETH-F:ANY:0:0
EQUAL? PRSA,V?BRUSH \FALSE
EQUAL? PRSO,TEETH \FALSE
EQUAL? PRSI,PUTTY \?CCL8
IN? PRSI,WINNER \?CCL8
CALL2 JIGS-UP,STR?227
RSTACK
?CCL8: ZERO? PRSI \?CCL12
PRINTR "Zahnpflege ist h%ochst empfehlenswert, aber es ist nicht klar, mit was du sie putzen willst."
?CCL12: PRINTI "Eine charmante Idee, aber mit "
ICALL2 EIN-DAT-PRINT,PRSI
PRINTR "?"
.FUNCT SONGBIRD-F:ANY:0:0
EQUAL? PRSA,V?TAKE,V?FIND \?CCL3
PRINTR "Der Singvogel ist nicht hier, aber er ist wahrscheinlich in der N%ahe."
?CCL3: EQUAL? PRSA,V?LISTEN \?CCL5
PRINTR "Jetzt kannst du den Singvogel nicht h%oren."
?CCL5: EQUAL? PRSA,V?FOLLOW \?CCL7
PRINTR "Man kann ihm nicht folgen."
?CCL7: PRINTR "Hier kannst du keinen Singvogel sehen."
.FUNCT WHITE-HOUSE-F:ANY:0:0
EQUAL? HERE,KITCHEN,LIVING-ROOM,ATTIC \?CCL3
EQUAL? PRSA,V?FIND \?CCL6
PRINTR "Warum gehst du nicht auf die Suche nach deinem Verstand."
?CCL6: EQUAL? PRSA,V?WALK-AROUND \FALSE
ICALL2 GO-NEXT,IN-HOUSE-AROUND
RTRUE
?CCL3: EQUAL? HERE,EAST-OF-HOUSE,WEST-OF-HOUSE /?CCL10
EQUAL? HERE,NORTH-OF-HOUSE,SOUTH-OF-HOUSE /?CCL10
EQUAL? PRSA,V?FIND \?CCL15
EQUAL? HERE,CLEARING \?CCL18
PRINTR "Es scheint im Westen zu sein."
?CCL18: PRINTR "Vor einer Minute war es noch hier..."
?CCL15: PRINTR "Du bist nicht beim Haus."
?CCL10: EQUAL? PRSA,V?FIND \?CCL20
PRINTR "Es steht doch gleich hier! Bist du blind, oder was?"
?CCL20: EQUAL? PRSA,V?WALK-AROUND \?CCL22
ICALL2 GO-NEXT,HOUSE-AROUND
RTRUE
?CCL22: EQUAL? PRSA,V?EXAMINE \?CCL24
PRINTR "Das Haus ist ein sch%ones altes Herrenhaus, das wei%s verputzt ist. Man sieht, da%s die Besitzer enorm reich gewesen sein mu%sten."
?CCL24: EQUAL? PRSA,V?OPEN,V?THROUGH \?CCL26
EQUAL? HERE,EAST-OF-HOUSE \?CCL29
FSET? KITCHEN-WINDOW,OPENBIT \?CCL32
CALL2 GOTO,KITCHEN
RSTACK
?CCL32: PRINTI "Das Fenster ist geschlossen."
CRLF
CALL2 THIS-IS-IT,KITCHEN-WINDOW
RSTACK
?CCL29: PRINTR "Es ist nicht offensichtlich, wie du von hier reinkommst."
?CCL26: EQUAL? PRSA,V?BURN \FALSE
PRINTR "Das kann doch nicht dein Ernst sein."
.FUNCT GO-NEXT:ANY:1:1,TBL,VAL
CALL LKP,HERE,TBL >VAL
ZERO? VAL /FALSE
CALL2 GOTO,VAL
ZERO? STACK \TRUE
RETURN 2
.FUNCT FOREST-F:ANY:0:0
EQUAL? PRSA,V?WALK-AROUND \?CCL3
EQUAL? HERE,WEST-OF-HOUSE,NORTH-OF-HOUSE,SOUTH-OF-HOUSE /?CCL5
EQUAL? HERE,EAST-OF-HOUSE \?CND4
?CCL5: PRINTI "Du bist noch nicht einmal im Wald."
CRLF
?CND4: CALL2 GO-NEXT,FOREST-AROUND
RSTACK
?CCL3: EQUAL? PRSA,V?DISEMBARK \?CCL9
PRINTR "Du mu%st eine Richtung angeben."
?CCL9: EQUAL? PRSA,V?FIND \?CCL11
PRINTR "Du kannst den Wald vor lauter B%aumen nicht sehen."
?CCL11: EQUAL? PRSA,V?LISTEN \FALSE
PRINTR "Die Tannen und Fichten scheinen zu murmeln."
.FUNCT MOUNTAIN-RANGE-F:ANY:0:0
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-DOWN,V?CLIMB-UP \FALSE
PRINTR "Willst du mir nicht glauben? Die Berge sind nicht un%uberwindlich."
.FUNCT WATER-F:ANY:0:0,AV,W,PI?
EQUAL? PRSA,V?SGIVE /FALSE
EQUAL? PRSA,V?BOARD,V?THROUGH \?CCL5
CALL2 PICK-ONE,SWIMYUKS
PRINT STACK
CRLF
RTRUE
?CCL5: EQUAL? PRSA,V?FILL \?CCL7
SET 'W,PRSI
SET 'PRSA,V?PUT
SET 'PRSI,PRSO
SET 'PRSO,W
SET 'PI?,FALSE-VALUE
JUMP ?CND1
?CCL7: EQUAL? PRSO,GLOBAL-WATER /?CTR8
EQUAL? PRSO,WATER \?CCL9
?CTR8: SET 'W,PRSO
SET 'PI?,FALSE-VALUE
JUMP ?CND1
?CCL9: SET 'W,PRSI
ZERO? W /?CND1
SET 'PI?,TRUE-VALUE
?CND1: EQUAL? W,GLOBAL-WATER \?CND14
SET 'W,WATER
EQUAL? PRSA,V?PUT,V?TAKE \?CND14
ICALL2 REMOVE-CAREFULLY,W
?CND14: ZERO? PI? /?CCL20
SET 'PRSI,W
JUMP ?CND18
?CCL20: SET 'PRSO,W
?CND18: LOC WINNER >AV
FSET? AV,VEHBIT /?CND21
SET 'AV,FALSE-VALUE
?CND21: EQUAL? PRSA,V?PUT,V?TAKE \?CCL25
ZERO? PI? \?CCL25
ZERO? AV /?CCL30
EQUAL? AV,PRSI /?CTR29
ZERO? PRSI \?CCL30
IN? W,AV /?CCL30
?CTR29: PRINTI "Es gibt jetzt eine Pf%utze am Boden von "
ICALL2 DER-DAT-PRINT,AV
PRINTC 46
CRLF
ICALL2 REMOVE-CAREFULLY,PRSO
MOVE PRSO,AV
RTRUE
?CCL30: ZERO? PRSI /?CCL38
EQUAL? PRSI,BOTTLE /?CCL38
PRINTI "Das Wasser rinnt aus "
ICALL2 DER-DAT-PRINT,PRSI
PRINTI " und verdampft sofort."
CALL2 REMOVE-CAREFULLY,W
RSTACK
?CCL38: IN? BOTTLE,WINNER \?CCL42
FSET? BOTTLE,OPENBIT /?CCL45
PRINTI "Die Flasche ist zu."
CRLF
CALL2 THIS-IS-IT,BOTTLE
RSTACK
?CCL45: FIRST? BOTTLE /?CCL47
MOVE WATER,BOTTLE
PRINTR "Die Flasche ist jetzt voll Wasser."
?CCL47: PRINTR "Das Wasser rinnt dir durch die Finger."
?CCL42: IN? PRSO,BOTTLE \?CCL49
EQUAL? PRSA,V?TAKE \?CCL49
ZERO? PRSI \?CCL49
PRINTR "Es ist in der Flasche. Vielleicht solltest du das statt dessen nehmen."
?CCL49: PRINTR "Das Wasser rinnt dir durch die Finger."
?CCL25: ZERO? PI? /?CCL54
EQUAL? PRSA,V?PUT \?CCL57
CALL GLOBAL-IN?,RIVER,HERE
ZERO? STACK /?CCL57
ICALL PERFORM,V?PUT,PRSO,RIVER
RTRUE
?CCL57: PRINTR "Nice try."
?CCL54: EQUAL? PRSA,V?GIVE,V?DROP \?CCL61
EQUAL? PRSA,V?DROP \?CND62
IN? WATER,BOTTLE \?CND62
FSET? BOTTLE,OPENBIT /?CND62
PRINTR "Die Flasche ist zu."
?CND62: ICALL2 REMOVE-CAREFULLY,WATER
ZERO? AV /?CCL69
PRINTI "Es gibt jetzt eine Pf%utze am Boden von "
ICALL2 DER-DAT-PRINT,AV
PRINTC 46
CRLF
MOVE WATER,AV
RTRUE
?CCL69: PRINTI "Das Wasser ist auf dem Boden versch%uttet und verdampft sofort."
CRLF
CALL2 REMOVE-CAREFULLY,WATER
RSTACK
?CCL61: EQUAL? PRSA,V?THROW \FALSE
PRINTI "Das Wasser spritzt auf die W%ande und verdampft sofort."
CRLF
CALL2 REMOVE-CAREFULLY,WATER
RSTACK
.FUNCT KITCHEN-WINDOW-F:ANY:0:0
EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3
SET 'KITCHEN-WINDOW-FLAG,TRUE-VALUE
CALL OPEN-CLOSE,KITCHEN-WINDOW,STR?228,STR?229
RSTACK
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL5
ZERO? KITCHEN-WINDOW-FLAG \?CCL5
PRINTR "Das Fenster ist einen Spalt offen, aber nicht genug, um Eintritt zu gew%ahren. "
?CCL5: EQUAL? PRSA,V?THROUGH,V?BOARD,V?WALK \?CCL9
EQUAL? HERE,KITCHEN \?CCL12
ICALL2 DO-WALK,P?OST
RTRUE
?CCL12: ICALL2 DO-WALK,P?WEST
RTRUE
?CCL9: EQUAL? PRSA,V?LOOK-INSIDE \FALSE
EQUAL? HERE,KITCHEN \?CCL17
PRINTR "Du kannst einen Kahlschlag sehen, der nach dem Wald f%uhrt."
?CCL17: PRINTR "Du kannst einen Raum sehen, der aussieht wie eine K%uche."
.FUNCT GHOSTS-F:ANY:0:0
EQUAL? PRSA,V?TELL \?CCL3
PRINTI "Die Geister johlen laut und beachten dich nicht."
CRLF
SET 'P-CONT,FALSE-VALUE
RETURN P-CONT
?CCL3: EQUAL? PRSA,V?EXORCISE \?CCL5
PRINTR "Nur das Zeremoniell hinterl%a%st einen Eindruck."
?CCL5: EQUAL? PRSA,V?MUNG,V?ATTACK \?CCL7
EQUAL? PRSO,GHOSTS \?CCL7
PRINTR "Wie kannst du einen Geist mit f%ur Menschen bestimmten Waffen angreifen?"
?CCL7: PRINTR "Es scheint dir unm%oglich mit diesen Geistern zu kommunizieren."
.FUNCT BASKET-F:ANY:0:0
EQUAL? PRSA,V?RAISE /?CTR2
EQUAL? PRSA,V?MOVE \?CCL3
ZERO? CAGE-TOP \?CCL3
?CTR2: ZERO? CAGE-TOP /?CCL10
EQUAL? PRSA,V?MOVE /?CCL10
CALL2 PICK-ONE,DUMMY
PRINT STACK
CRLF
RTRUE
?CCL10: MOVE RAISED-BASKET,SHAFT-ROOM
MOVE LOWERED-BASKET,LOWER-SHAFT
SET 'CAGE-TOP,TRUE-VALUE
ICALL2 THIS-IS-IT,RAISED-BASKET
PRINTR "Der Korb ist zum oberen Ende des Schachts hinaufgezogen."
?CCL3: EQUAL? PRSA,V?LOWER /?CTR13
EQUAL? PRSA,V?MOVE \?CCL14
ZERO? CAGE-TOP /?CCL14
?CTR13: ZERO? CAGE-TOP \?CCL21
EQUAL? PRSA,V?MOVE /?CCL21
CALL2 PICK-ONE,DUMMY
PRINT STACK
CRLF
RTRUE
?CCL21: MOVE RAISED-BASKET,LOWER-SHAFT
MOVE LOWERED-BASKET,SHAFT-ROOM
ICALL2 THIS-IS-IT,LOWERED-BASKET
PRINTI "Der Korb ist zum unteren Ende des Schacht hinabgelassen."
CRLF
SET 'CAGE-TOP,FALSE-VALUE
ZERO? LIT /TRUE
CALL2 LIT?,HERE >LIT
ZERO? LIT \TRUE
PRINTR "Es ist jetzt stockdunkel."
?CCL14: EQUAL? PRSO,LOWERED-BASKET /?CTR28
EQUAL? PRSI,LOWERED-BASKET \?CCL29
?CTR28: PRINTR "Der Korb ist am anderen Ende der Kette."
?CCL29: EQUAL? PRSA,V?TAKE \FALSE
EQUAL? PRSO,RAISED-BASKET,LOWERED-BASKET \FALSE
PRINTR "Der K�ig ist fest an der Kette angebracht."
.FUNCT BAT-F:ANY:0:0
EQUAL? PRSA,V?TELL \?CCL3
ICALL2 FWEEP,6
SET 'P-CONT,FALSE-VALUE
RETURN P-CONT
?CCL3: EQUAL? PRSA,V?MUNG,V?ATTACK,V?TAKE \FALSE
LOC GARLIC
EQUAL? STACK,WINNER,HERE \?CCL8
PRINTR "Die kannst du nicht erreichen, die h%angt von der Decke."
?CCL8: CALL1 FLY-ME
RSTACK
.FUNCT FLY-ME:ANY:0:0
ICALL2 FWEEP,4
PRINTI "Die Fledermaus ergreift dich am Kragen und hebt dich hoch....."
CRLF
CRLF
CALL2 PICK-ONE,BAT-DROPS
ICALL GOTO,STACK,FALSE-VALUE
EQUAL? HERE,ENTRANCE-TO-HADES /TRUE
ICALL1 V-FIRST-LOOK
RTRUE
.FUNCT FWEEP:ANY:1:1,N
?PRG1: DLESS? 'N,1 /?REP2
PRINTI " Huiiiiii!"
CRLF
JUMP ?PRG1
?REP2: CRLF
RTRUE
.FUNCT BELL-F:ANY:0:0
EQUAL? PRSA,V?RING \FALSE
EQUAL? HERE,LLD-ROOM \?CCL6
ZERO? LLD-FLAG /FALSE
?CCL6: PRINTR "Bim, bam."
.FUNCT HOT-BELL-F:ANY:0:0
EQUAL? PRSA,V?TAKE \?CCL3
PRINTR "Die Glocke ist sehr hei%s und kann nicht angefa%st werden."
?CCL3: EQUAL? PRSA,V?RUB /?CTR4
EQUAL? PRSA,V?RING \?CCL5
ZERO? PRSI /?CCL5
?CTR4: EQUAL? PRSA,V?RUB \?CND10
ZERO? PRSI \?CND10
SET 'PRSI,HANDS
?CND10: FSET? PRSI,BURNBIT \?CCL16
ICALL2 DER-NOM-CAP-PRINT,PRSI
PRINTI " f%angt Feuer und verbrennt."
CRLF
CALL2 REMOVE-CAREFULLY,PRSI
RSTACK
?CCL16: EQUAL? PRSI,HANDS \?CCL18
PRINTR "Die Glocke ist zu hei%s zum Anfassen."
?CCL18: PRINTR "Die Hitze, die die Glocke ausstr%omt ist zu stark."
?CCL5: EQUAL? PRSA,V?POUR-ON \?CCL20
ICALL2 REMOVE-CAREFULLY,PRSO
PRINTI "Das Wasser k%uhlt die Glocke und verdampft."
CRLF
CALL QUEUE,I-XBH,0
PUT STACK,0,1
CALL1 I-XBH
RSTACK
?CCL20: EQUAL? PRSA,V?RING \FALSE
PRINTR "Die Glocke ist zu hei%s, um dranzufassen."
.FUNCT BOARDED-WINDOW-FCN:ANY:0:0
EQUAL? PRSA,V?OPEN \?CCL3
PRINTR "Die Fenster sind vernagelt und lassen sich nicht %offnen."
?CCL3: EQUAL? PRSA,V?MUNG \FALSE
PRINTR "Du kannst die Fenster nicht zerschlagen, um sie zu %offnen."
.FUNCT NAILS-PSEUDO:ANY:0:0
EQUAL? PRSA,V?TAKE \FALSE
PRINTR "Die N%agel, die tief in der T%ur eingebettet sind, k%onnen nicht entfernt werden."
.FUNCT CRACK-FCN:ANY:0:0
EQUAL? PRSA,V?THROUGH \FALSE
PRINTR "Du kannst durch diese Spalte nicht durch."
.FUNCT KITCHEN-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Du bist in der K%uche des wei%sen Hauses. Ein Tisch mu%s vor Kurzem zur Bereitung einer Mahlzeit benutzt worden sein. Ein Durchgang f%uhrt nach Westen, und man kann eine dunkle Treppe sehen, die nach oben f%uhrt. Ein dunkler Kamin f%uhrt nach unten. Nach Osten ist ein kleines Fenster, das"
FSET? KITCHEN-WINDOW,OPENBIT \?CCL6
PRINTR " offen ist."
?CCL6: PRINTR " einen Spalt offen steht."
?CCL3: EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?CLIMB-UP \?CCL11
EQUAL? PRSO,STAIRS \?CCL11
CALL2 DO-WALK,P?RAUF
RSTACK
?CCL11: EQUAL? PRSA,V?CLIMB-UP \FALSE
EQUAL? PRSO,STAIRS \FALSE
PRINTR "Es gibt keine Treppe nach unten."
.FUNCT STONE-BARROW-FCN:ANY:1:1,RARG
EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?ENTER /?CCL3
EQUAL? PRSA,V?WALK \?PRD8
EQUAL? PRSO,P?WEST,P?HINEIN /?CCL3
?PRD8: EQUAL? PRSA,V?THROUGH \FALSE
EQUAL? PRSO,BARROW \FALSE
?CCL3: PRINTI "In dem H%ugelgrab
Wenn du das H%ugelgrab betrittst, schlie%st sich die T%ur f%ur immer hinter dir. Um dich herum ist es finster, aber vor dir ist eine enorme %Offnung, die hell erleuchtet ist. Durch ihr Mitte flie%st ein breiter Strom. %Uber den Strom spannt sich eine h%olzerne Fu%sg%angerbr%ucke. In der Luft schwebt ein gro%ses Schild. Darauf steht: Ihr alle, die ihr vor dieser Br%ucke steht, habt ein gro%ses und beschwerliches Abenteuer hinter euch, das eure Intelligenz und euren Mut gepr%uft hat. Ihr habt den ersten Teil der drei Zorkspiele geschafft. Diejenigen, die %uber diese Br%ucke schreiten m%ussen bereit sein ein noch gr%o%seres Abenteuer zu erleben, das eure Leistung und Tapferkeit ernstlich pr%ufen wird!"
CRLF
CRLF
PRINTI "Das dreiteilige ZORKspiel geht weiter mit %>ZORK II: Der Hexenmeister von Frobozz%< und endet mit %>ZORK III: Der Kerkermeister%<."
CALL1 FINISH
RSTACK
.FUNCT BARROW-DOOR-FCN:ANY:0:0
EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
PRINTR "Die T%ur ist zu schwer."
.FUNCT BARROW-FCN:ANY:0:0
EQUAL? PRSA,V?THROUGH \FALSE
CALL2 DO-WALK,P?WEST
RSTACK
.FUNCT TROPHY-CASE-FCN:ANY:0:0
EQUAL? PRSA,V?TAKE \FALSE
EQUAL? PRSO,TROPHY-CASE \FALSE
PRINTR "Der Troph�nschrank ist unverr%uckbar an der Wand befestigt."
.FUNCT LIVING-ROOM-FCN:ANY:1:1,RARG,RUG?,TC
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "Du bist im Wohnzimmer. Da sind eine T%ur nach Osten"
ZERO? MAGIC-FLAG /?CCL6
PRINTI ". Nach Westen gibt es eine zyklopenf%ormige %Offnung in einer alten T%ur dar%uber gibt es einige uralte Runen, "
JUMP ?CND4
?CCL6: PRINTI ", eine vernagelte Holzt%ur mit fremden Runen, "
?CND4: PRINTI "ein Troph�nschrank, "
SET 'RUG?,RUG-MOVED
ZERO? RUG? /?CCL9
FSET? TRAP-DOOR,OPENBIT \?CCL9
PRINTR "und ein Teppich liegt neben einer Fallt%ur."
?CCL9: ZERO? RUG? /?CCL13
PRINTR "und eine geschlossene Fallt%ur bei deinen F%ussen."
?CCL13: FSET? TRAP-DOOR,OPENBIT \?CCL15
PRINTR "und eine offene Fallt%ur bei deinen F%ussen."
?CCL15: PRINTR "und ein Perserteppich in der Mitte."
?CCL3: EQUAL? RARG,M-END \FALSE
EQUAL? PRSA,V?TAKE /?CCL20
EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,TROPHY-CASE \FALSE
?CCL20: IN? PRSO,TROPHY-CASE \?CND25
ICALL2 TOUCH-ALL,PRSO
?CND25: CALL1 OTVAL-FROB
ADD BASE-SCORE,STACK >SCORE
ICALL2 SCORE-UPD,0
RFALSE
.FUNCT TOUCH-ALL:ANY:1:1,OBJ,F
FIRST? OBJ >F /?PRG2
?PRG2: ZERO? F /TRUE
FSET F,TOUCHBIT
FIRST? F \?CND4
ICALL2 TOUCH-ALL,F
?CND4: NEXT? F >F /?PRG2
JUMP ?PRG2
.FUNCT OTVAL-FROB:ANY:0:1,O,F,SCORE
ASSIGNED? 'O /?CND1
SET 'O,TROPHY-CASE
?CND1: FIRST? O >F /?PRG4
?PRG4: ZERO? F \?CND6
RETURN SCORE
?CND6: GETP F,P?TVALUE
ADD SCORE,STACK >SCORE
FIRST? F \?CND8
ICALL2 OTVAL-FROB,F
?CND8: NEXT? F >F /?PRG4
JUMP ?PRG4
.FUNCT TRAP-DOOR-FCN:ANY:0:0
EQUAL? PRSA,V?RAISE \?CCL3
ICALL PERFORM,V?OPEN,TRAP-DOOR
RTRUE
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL5
EQUAL? HERE,LIVING-ROOM \?CCL5
CALL OPEN-CLOSE,PRSO,STR?230,STR?231
RSTACK
?CCL5: EQUAL? PRSA,V?LOOK-UNDER \?CCL9
EQUAL? HERE,LIVING-ROOM \?CCL9
FSET? TRAP-DOOR,OPENBIT \?CCL14
PRINTR "Du siehst eine wackelige Treppe, die in die Dunkelheit f%uhrt."
?CCL14: PRINTR "Sie ist geschlossen."
?CCL9: EQUAL? HERE,CELLAR \FALSE
EQUAL? PRSA,V?UNLOCK,V?OPEN \?CCL19
FSET? TRAP-DOOR,OPENBIT /?CCL19
PRINTR "Die T%ur ist von oben abgeschlossen."
?CCL19: EQUAL? PRSA,V?CLOSE \?CCL23
FSET? TRAP-DOOR,OPENBIT /?CCL23
FCLEAR TRAP-DOOR,TOUCHBIT
FCLEAR TRAP-DOOR,OPENBIT
PRINTR "Die T%ur geht zu und und verschlie%st sich."
?CCL23: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
CALL2 PICK-ONE,DUMMY
PRINT STACK
CRLF
RTRUE
.FUNCT CELLAR-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTR "Du bist in einem dunklen und muffigen Keller mit einem schmalen Durchgang nach Norden und einem niedrigen Tunnel nach S%uden. Im Westen ist das Ende einer steilen Metallrampe, die nicht erklimmbar ist."
?CCL3: EQUAL? RARG,M-ENTER \FALSE
FSET? TRAP-DOOR,OPENBIT \FALSE
FSET? TRAP-DOOR,TOUCHBIT /FALSE
FCLEAR TRAP-DOOR,OPENBIT
FSET TRAP-DOOR,TOUCHBIT
PRINTI "Die Fallt%ur kracht zu, und du h%orst, da%s jemand sie verriegelt."
CRLF
CRLF
RTRUE
.FUNCT CHIMNEY-F:ANY:0:0
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "Der Kamin geht nach "
EQUAL? HERE,KITCHEN \?CCL6
PRINTI "unten"
JUMP ?CND4
?CCL6: PRINTI "oben"
?CND4: PRINTR " und sieht erklimmbar aus."
.FUNCT UP-CHIMNEY-FUNCTION:ANY:0:0,F
FIRST? WINNER >F /?CCL3
PRINTI "Mit leeren H%anden nach oben gehen ist keine gute Idee."
CRLF
RFALSE
?CCL3: NEXT? F >F \?PRD7
NEXT? F /?CCL5
?PRD7: IN? LAMP,WINNER \?CCL5
FSET? TRAP-DOOR,OPENBIT /?CND10
FCLEAR TRAP-DOOR,TOUCHBIT
?CND10: RETURN KITCHEN
?CCL5: PRINTI "Mit dem, was du da schleppst, kannst du da nicht hinauf."
CRLF
RFALSE
.FUNCT TRAP-DOOR-EXIT:ANY:0:0
ZERO? RUG-MOVED /?CCL3
FSET? TRAP-DOOR,OPENBIT \?CCL6
RETURN CELLAR
?CCL6: PRINTI "Die Fallt%ur ist geschlossen."
CRLF
ICALL2 THIS-IS-IT,TRAP-DOOR
RFALSE
?CCL3: PRINTI "You can't go that way."
CRLF
RFALSE
.FUNCT RUG-FCN:ANY:0:0
EQUAL? PRSA,V?RAISE \?CCL3
PRINTI "Der Teppich ist zu schwer, um ihn aufzuheben"
ZERO? RUG-MOVED /?CCL6
PRINTR "."
?CCL6: PRINTR ", aber beim Versuchen hast du gemerkt, da%s darunter eine Unebenheit ist."
?CCL3: EQUAL? PRSA,V?PUSH,V?MOVE \?CCL8
ZERO? RUG-MOVED /?CCL11
PRINTR "Nachdem du vorher den Teppich weggezogen hast, findest du es jetzt unm%oglich ihn zur%uckzuziehen."
?CCL11: PRINTI "Mit gr%o%ster Anstrengung ist der Teppich aus dem Weg gezerrt. Die staubige Oberfl�he einer geschlossenen Fallt%ure kommt zum Vorschein."
CRLF
FCLEAR TRAP-DOOR,INVISIBLE
ICALL2 THIS-IS-IT,TRAP-DOOR
SET 'RUG-MOVED,TRUE-VALUE
RETURN RUG-MOVED
?CCL8: EQUAL? PRSA,V?TAKE \?CCL13
PRINTR "Der Teppich ist %au%serst schwer und man kann ihn nicht tragen."
?CCL13: EQUAL? PRSA,V?LOOK-UNDER \?CCL15
ZERO? RUG-MOVED \?CCL15
FSET? TRAP-DOOR,OPENBIT /?CCL15
PRINTR "Unter dem Teppich ist eine geschlossene Fallt%ur. Wenn du den Teppich losl%a%st, ist die Fallt%ur wieder versteckt."
?CCL15: EQUAL? PRSA,V?CLIMB-ON \FALSE
ZERO? RUG-MOVED \?CCL23
FSET? TRAP-DOOR,OPENBIT /?CCL23
PRINTR "W%ahrend du da sitzt bemerkst du eine Unebenheit darunter. Um nicht unbequem zu sitzen, stehst du wieder auf."
?CCL23: PRINTR "Ich nehme an, da%s du denkst, es w%are ein fliegender Teppich?"
.FUNCT AXE-F:ANY:0:0
ZERO? TROLL-FLAG \FALSE
CALL WEAPON-FUNCTION,AXE,TROLL
RSTACK
.FUNCT STILETTO-FUNCTION:ANY:0:0
CALL WEAPON-FUNCTION,STILETTO,THIEF
RSTACK
.FUNCT WEAPON-FUNCTION:ANY:2:2,W,V
IN? V,HERE \FALSE
EQUAL? PRSA,V?TAKE \FALSE
IN? W,V /TRUE
ICALL2 DER-NOM-CAP-PRINT,W
PRINTR " scheint gl%uhend hei%s. Du kannst es nicht in der Hand halten."
.FUNCT TROLL-FCN:ANY:0:1,MODE
EQUAL? PRSA,V?TELL \?CCL3
SET 'P-CONT,FALSE-VALUE
PRINTR "Der Troll ist nicht der ideale Gespr�hspartner."
?CCL3: EQUAL? MODE,F-BUSY? \?CCL5
IN? AXE,TROLL /FALSE
IN? AXE,HERE \?CCL10
CALL2 ZPROB,75
ZERO? STACK /?CCL10
FSET AXE,NDESCBIT
FCLEAR AXE,WEAPONBIT
MOVE AXE,TROLL
PUTP TROLL,P?LDESC,STR?73
IN? TROLL,HERE \TRUE
PRINTR "Der Troll holt sich seine Waffe zur%uck. Er ist b%ose und besch%amt. Er scheint sich mit dir an binden zu wollen."
?CCL10: IN? TROLL,HERE \FALSE
PUTP TROLL,P?LDESC,STR?232
PRINTR "Der jetzt entwaffnete Troll kriecht vor Furcht in die Ecke und bittet mit heiserer Trollstimme um sein Leben."
?CCL5: EQUAL? MODE,F-DEAD \?CCL19
IN? AXE,TROLL \?CND20
MOVE AXE,HERE
FCLEAR AXE,NDESCBIT
FSET AXE,WEAPONBIT
?CND20: SET 'TROLL-FLAG,TRUE-VALUE
RETURN TROLL-FLAG
?CCL19: EQUAL? MODE,F-UNCONSCIOUS \?CCL23
FCLEAR TROLL,FIGHTBIT
IN? AXE,TROLL \?CND24
MOVE AXE,HERE
FCLEAR AXE,NDESCBIT
FSET AXE,WEAPONBIT
?CND24: PUTP TROLL,P?LDESC,STR?233
SET 'TROLL-FLAG,TRUE-VALUE
RETURN TROLL-FLAG
?CCL23: EQUAL? MODE,F-CONSCIOUS \?CCL27
IN? TROLL,HERE \?CND28
FSET TROLL,FIGHTBIT
PRINTI "Der Troll r%uhrt sich und nimmt schnell eine Kampfstellung ein."
CRLF
?CND28: IN? AXE,TROLL \?CCL32
PUTP TROLL,P?LDESC,STR?73
JUMP ?CND30
?CCL32: IN? AXE,TROLL-ROOM \?CCL34
FSET AXE,NDESCBIT
FCLEAR AXE,WEAPONBIT
MOVE AXE,TROLL
PUTP TROLL,P?LDESC,STR?73
JUMP ?CND30
?CCL34: PUTP TROLL,P?LDESC,STR?234
?CND30: SET 'TROLL-FLAG,FALSE-VALUE
RETURN TROLL-FLAG
?CCL27: EQUAL? MODE,F-FIRST? \?CCL36
RANDOM 100
GRTR? 33,STACK \FALSE
FSET TROLL,FIGHTBIT
SET 'P-CONT,FALSE-VALUE
RTRUE
?CCL36: ZERO? MODE \FALSE
EQUAL? PRSA,V?EXAMINE \?CCL44
GETP TROLL,P?LDESC
PRINT STACK
CRLF
RTRUE
?CCL44: EQUAL? PRSA,V?GIVE,V?THROW \?PRD48
ZERO? PRSO /?PRD48
EQUAL? PRSI,TROLL /?CTR45
?PRD48: EQUAL? PRSA,V?MUNG,V?MOVE,V?TAKE \?CCL46
?CTR45: ICALL2 AWAKEN,TROLL
EQUAL? PRSA,V?GIVE,V?THROW \?CCL54
EQUAL? PRSO,AXE \?CCL57
IN? AXE,WINNER \?CCL57
PRINTI "Der Troll kratzt sich verwirrt am Kopf, dann nimmt er die Axt auf."
CRLF
FSET TROLL,FIGHTBIT
MOVE AXE,TROLL
RTRUE
?CCL57: EQUAL? PRSO,TROLL,AXE \?CND55
PRINTI "Du m%u%stest "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " zuerst holen, aber das scheint unm%oglich."
RTRUE
?CND55: EQUAL? PRSA,V?THROW \?CCL63
PRINTI "Der Troll, der ungemein sportlich ist, f%angt "
ICALL2 DER-ACC-PRINT,PRSO
JUMP ?CND61
?CCL63: PRINTI "Der Troll, der keinen gro%sen Stolz hat, akzeptiert das Geschenk"
?CND61: RANDOM 100
GRTR? 20,STACK \?CCL66
EQUAL? PRSO,KNIFE,SWORD,AXE \?CCL66
ICALL2 REMOVE-CAREFULLY,PRSO
PRINTI " und fri%st "
ICALL2 PRONOUN-ACC-PRINT,PRSO
PRINTI " mit Appetit. Armer Troll, er stirbt an einer inneren Blutung und sein Gerippe verschwindet in einem b%osen schwarzen Nebel."
CRLF
ICALL2 REMOVE-CAREFULLY,TROLL
GETP TROLL,P?ACTION
ICALL STACK,F-DEAD
SET 'TROLL-FLAG,TRUE-VALUE
RETURN TROLL-FLAG
?CCL66: EQUAL? PRSO,KNIFE,SWORD,AXE \?CCL70
MOVE PRSO,HERE
PRINTI " und da er momentan ges%attigt ist, wirft er "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " zur%uck. Gott sei Dank hat der Troll kein Wurftalent und "
ICALL2 DER-ACC-PRINT,PRSO
PRINTI " f%allt auf die Erde. Er sieht nicht sehr gl%ucklich aus."
CRLF
FSET TROLL,FIGHTBIT
RTRUE
?CCL70: PRINTI " und da er kein gro%ser Feinschmecker ist, fri%st er es gierig."
CRLF
CALL2 REMOVE-CAREFULLY,PRSO
RSTACK
?CCL54: EQUAL? PRSA,V?MOVE,V?TAKE \?CCL72
PRINTR "Der Troll spuckt dir ins Gesicht, zischt in einem recht primitiven Dialekt: %>N�hstes Mal mehr Gl%uck.%<"
?CCL72: EQUAL? PRSA,V?MUNG \FALSE
PRINTR "Der Troll lacht %uber deine hilflose Geste."
?CCL46: EQUAL? PRSA,V?LISTEN \?CCL76
PRINTR "Hier und da sagt der Troll mit seiner heiseren Trollstimme etwas, das wohl beleidigend ist."
?CCL76: ZERO? TROLL-FLAG /FALSE
EQUAL? PRSA,V?HELLO \FALSE
PRINTR "Leider kann der Troll dich nicht h%oren."
.FUNCT LEAVES-APPEAR:ANY:0:0
FSET? GRATE,OPENBIT /FALSE
ZERO? GRATE-REVEALED \FALSE
EQUAL? PRSA,V?TAKE,V?MOVE \?CCL7
PRINTI "Beim St%obern im Bl%atterhaufen kommt ein Gitter zum Vorschein."
CRLF
JUMP ?CND5
?CCL7: PRINTI "Als die Bl%atter aus dem Weg sind, zeigt sich ein Gitter."
CRLF
?CND5: FCLEAR GRATE,INVISIBLE
SET 'GRATE-REVEALED,TRUE-VALUE
RFALSE
.FUNCT LEAF-PILE:ANY:0:0
EQUAL? PRSA,V?COUNT \?CCL3
PRINTR "Es gibt hier 69.105 Bl%atter."
?CCL3: EQUAL? PRSA,V?BURN \?CCL5
ICALL1 LEAVES-APPEAR
ICALL2 REMOVE-CAREFULLY,PRSO
IN? PRSO,HERE \?CCL8
PRINTR "Die Bl%atter brennen."
?CCL8: CALL2 JIGS-UP,STR?235
RSTACK
?CCL5: EQUAL? PRSA,V?CUT \?CCL10
PRINTI "Du stocherst in den Bl%attern herum und machst eine beachtliche Schweinerei."
CRLF
ICALL1 LEAVES-APPEAR
RTRUE
?CCL10: EQUAL? PRSA,V?TAKE,V?MOVE \?CCL12
EQUAL? PRSA,V?MOVE \?CND13
PRINTI "Geschafft."
CRLF
?CND13: ZERO? GRATE-REVEALED \FALSE
ICALL1 LEAVES-APPEAR
EQUAL? PRSA,V?TAKE /FALSE
RTRUE
?CCL12: EQUAL? PRSA,V?LOOK-UNDER \FALSE
ZERO? GRATE-REVEALED \FALSE
PRINTR "Unter dem Bl%atterhaufen ist ein Gitter. Wenn du die Bl%atter fallen l%a%st, ist das Gitter wieder versteckt."
.FUNCT CLEARING-FCN:ANY:1:1,RARG
EQUAL? RARG,M-ENTER \?CCL3
ZERO? GRATE-REVEALED \FALSE
FSET GRATE,INVISIBLE
RTRUE
?CCL3: EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du stehst auf einer Lichtung, und ein Wald umgibt dich von allen Seiten. Ein Pfad f%uhrt nach S%uden."
FSET? GRATE,OPENBIT \?CCL11
CRLF
PRINTR "Da befindet sich ein offenes Gitter, das in die Dunkelheit hinabf%uhrt."
?CCL11: ZERO? GRATE-REVEALED /?CND9
CRLF
PRINTR "Da ist ein Gitter, das Fest im Boden befestigt ist."
?CND9: CRLF
RTRUE
.FUNCT MAZE-11-FCN:ANY:1:1,RARG
EQUAL? RARG,M-ENTER \?CCL3
FCLEAR GRATE,INVISIBLE
RTRUE
?CCL3: EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du bist in einem kleinen Zimmer bei dem Irrgarten. Es gibt hier in der N%ahe kleine verwirrende G%ange."
CRLF
FSET? GRATE,OPENBIT \?CCL8
PRINTR "%Uber dir ist ein offenes Gitter, durch das Sonnenlicht hereinflutet."
?CCL8: ZERO? GRUNLOCK /?CCL10
PRINTR "%Uber dir ist ein Gitter."
?CCL10: PRINTR "%Uber dir ist ein Gitter, das mit einem Schlo%s, das aus einem Totenkopf und Gebeinen gemacht ist, verschlossen ist."
.FUNCT GRATE-FUNCTION:ANY:0:0
EQUAL? PRSA,V?OPEN \?CCL3
EQUAL? PRSI,KEYS \?CCL3
ICALL PERFORM,V?UNLOCK,GRATE,KEYS
RTRUE
?CCL3: EQUAL? PRSA,V?LOCK \?CCL7
EQUAL? HERE,GRATING-ROOM \?CCL10
ZERO? GRUNLOCK /?CCL13
PRINTR "Das Gitter wird verschlossen."
?CCL13: PRINTR "Das Gitter ist schon verschlossen."
?CCL10: EQUAL? HERE,GRATING-CLEARING \FALSE
PRINTR "Du kannst es von innen nicht verschlie%sen."
?CCL7: EQUAL? PRSA,V?UNLOCK \?CCL17
EQUAL? PRSO,GRATE \?CCL17
EQUAL? HERE,GRATING-ROOM \?CCL22
EQUAL? PRSI,KEYS \?CCL22
ZERO? GRUNLOCK /?CCL27
PRINTI "Das Gitter ist schon aufgeschlo%sen."
CRLF
JUMP ?CND25
?CCL27: PRINTI "Das Gitter wird aufgeschlo%sen."
CRLF
?CND25: SET 'GRUNLOCK,TRUE-VALUE
RETURN GRUNLOCK
?CCL22: EQUAL? HERE,GRATING-CLEARING \?CCL29
EQUAL? PRSI,KEYS \?CCL29
PRINTR "Du kannst das Schlo%s von hier aus nicht erreichen."
?CCL29: EQUAL? HERE,GRATING-ROOM \?CCL33
EQUAL? PRSI,HANDS \?CCL33
PRINTR "You can't unlock it with your hands."
?CCL33: PRINTI "Du kannst das Gitter nicht mit "
ICALL2 DER-DAT-PRINT,PRSI
PRINTR " aufschlie%sen?"
?CCL17: EQUAL? PRSA,V?PICK \?CCL37
PRINTR "Du kannst das Schlo%s nicht knacken."
?CCL37: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL39
ZERO? GRUNLOCK /?CCL42
EQUAL? HERE,CLEARING \?CCL45
PUSH STR?237
JUMP ?CND43
?CCL45: PUSH STR?238
?CND43: ICALL OPEN-CLOSE,GRATE,STACK,STR?236
FSET? GRATE,OPENBIT \?CCL48
EQUAL? HERE,CLEARING /?CND49
ZERO? GRATE-REVEALED \?CND49
PRINTI "Ein Haufen Bl%atter f%allt auf deinen Kopf und auf die Erde."
CRLF
SET 'GRATE-REVEALED,TRUE-VALUE
MOVE LEAVES,HERE
?CND49: FSET GRATING-ROOM,ONBIT
RTRUE
?CCL48: FCLEAR GRATING-ROOM,ONBIT
RTRUE
?CCL42: PRINTR "Das Gitter ist verschlo%sen."
?CCL39: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,GRATE \FALSE
GETP PRSO,P?SIZE
GRTR? STACK,20 \?CCL59
ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO
PRINTR " pa%st nicht durch das Gitter."
?CCL59: MOVE PRSO,GRATING-ROOM
ICALL2 DER-NOM-CAP-PRINT,PRSO
PRINTR " verschwindet durch das Gitter in die Dunkelheit, die darunter herrscht."
.FUNCT MAZE-DIODES:ANY:0:0
PRINTI "Wenn dieser Tunnel das n�hste Zimmer erreicht, kannst du ihn nicht mehr als R%uckweg benutzen."
CRLF
CRLF
EQUAL? HERE,MAZE-2 \?CCL3
RETURN MAZE-4
?CCL3: EQUAL? HERE,MAZE-7 \?CCL5
RETURN DEAD-END-1
?CCL5: EQUAL? HERE,MAZE-9 \?CCL7
RETURN MAZE-11
?CCL7: EQUAL? HERE,MAZE-12 \FALSE
RETURN MAZE-5
.FUNCT RUSTY-KNIFE-FCN:ANY:0:0
EQUAL? PRSA,V?TAKE \?CCL3
IN? SWORD,WINNER \FALSE
PRINTI "Als du das rostige Messer anfa%st, blitzt dein Schwert kurz mit einem einem blendenden blauen Licht auf."
CRLF
RFALSE
?CCL3: EQUAL? PRSI,RUSTY-KNIFE \?PRD10
EQUAL? PRSA,V?ATTACK /?CCL8
?PRD10: EQUAL? PRSA,V?SWING \FALSE
EQUAL? PRSO,RUSTY-KNIFE \FALSE
ZERO? PRSI /FALSE
?CCL8: ICALL2 REMOVE-CAREFULLY,RUSTY-KNIFE
CALL2 JIGS-UP,STR?239
RSTACK
.FUNCT KNIFE-F:ANY:0:0
EQUAL? PRSA,V?TAKE \FALSE
FCLEAR ATTIC-TABLE,NDESCBIT
RFALSE
.FUNCT SKELETON:ANY:0:0
EQUAL? PRSA,V?MOVE,V?RUB,V?TAKE /?CCL3
EQUAL? PRSA,V?LOWER,V?RAISE,V?PUSH /?CCL3
EQUAL? PRSA,V?KISS,V?KICK,V?ATTACK \FALSE
?CCL3: PRINTI "Ein Geist erscheint in dem Zimmer und ist entsetzt %uber deine Sch%andung der Leiche eines Abenteuererkollegen. Er verflucht deine Wertsachen, und verbannt sie in das Land der lebendigen Toten. Der Geist verschwindet unter einem Schwall von ordin%aren Ausdr%ucken. "
CRLF
ICALL ROB,HERE,LAND-OF-LIVING-DEAD,100
ICALL ROB,ADVENTURER,LAND-OF-LIVING-DEAD
RTRUE
.FUNCT TORCH-OBJECT:ANY:0:0
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTR "Die Fackel brennt."
?CCL3: EQUAL? PRSA,V?POUR-ON \?CCL5
EQUAL? PRSI,TORCH \?CCL5
PRINTR "Das Wasser verdampft bevor es mit der Fackel in Ber%uhrung kommt."
?CCL5: EQUAL? PRSA,V?LAMP-OFF \FALSE
FSET? PRSO,ONBIT \FALSE
PRINTR "Du verbrennst dir beinahe die Hand, als du versuchst, die Flamme zu l%oschen."
.FUNCT MIRROR-ROOM:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Du bist in einem viereckigen Zimmer mit hohen Decken. An der S%udwand ist ein riesiger Spiegel, der die ganze Wand einnimmt. Es gibt Ausg%ange an den anderen drei Seiten des Zimmers."
CRLF
ZERO? MIRROR-MUNG /FALSE
PRINTR "Leider ging der Spiegel durch deine Bl%odheit kaputt."
.FUNCT MIRROR-MIRROR:ANY:0:0,RM2,L1,L2,N
SET 'RM2,MIRROR-ROOM-2
ZERO? MIRROR-MUNG \?CCL3
EQUAL? PRSA,V?RUB \?CCL3
ZERO? PRSI /?CND6
EQUAL? PRSI,HANDS /?CND6
PRINTI "Du f%uhlst ein leichtes Kribbeln, das von "
ICALL2 DER-ACC-PRINT,PRSI
PRINTR " ausgeht."
?CND6: EQUAL? HERE,RM2 \?CND10
SET 'RM2,MIRROR-ROOM-1
?CND10: FIRST? HERE >L1 /?BOGUS12
?BOGUS12: FIRST? RM2 >L2 /?PRG14
?PRG14: ZERO? L1 /?PRG19
NEXT? L1 >N /?BOGUS18
?BOGUS18: MOVE L1,RM2
SET 'L1,N
JUMP ?PRG14
?PRG19: ZERO? L2 /?REP20
NEXT? L2 >N /?BOGUS23
?BOGUS23: MOVE L2,HERE
SET 'L2,N
JUMP ?PRG19
?REP20: ICALL GOTO,RM2,FALSE-VALUE
PRINTR "Ein Grollen ert%ont aus der Tiefe, so da%s der Raum bebt."
?CCL3: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?CCL25
ZERO? MIRROR-MUNG /?CCL28
PRINTR "Der Spiegel ist in viele Scherben zerbrochen."
?CCL28: PRINTR "Eine h%a%sliche Person starrt aus dem Spiegel zur%uck."
?CCL25: EQUAL? PRSA,V?TAKE \?CCL30
PRINTR "Der Spiegel ist mehrmals so gro%s wie du. Gib's auf!"
?CCL30: EQUAL? PRSA,V?ATTACK,V?THROW,V?MUNG \FALSE
ZERO? MIRROR-MUNG /?CCL35
PRINTR "Hast du denn nicht schon genug Schaden angerichtet?"
?CCL35: SET 'MIRROR-MUNG,TRUE-VALUE
SET 'LUCKY,FALSE-VALUE
PRINTR "Du hast den Spiegel zerbrochen. Ich hoffe, du hast sieben Jahre Gl%uck zur Hand."
.FUNCT TORCH-ROOM-FCN:ANY:1:1,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "Dies ist ein gro%ser Raum, in dessen Mitte sich ein kleiner Schacht befindet, der durch den Fu%sboden in die Dunkelheit verschwindet. Nach Westen und Norden gibt es Ausg%ange von diesem Zimmer. %Uber dem Schacht hat man ein Metallgeh%ause gebaut, an dem eine schwere, eiserne Kette befestigt ist. An dem anderen Ende der Kette h%angt ein Korb."
CRLF
ZERO? DOME-FLAG /FALSE
PRINTR "Ein Seil h%angt von dem Gel%ander runter und endet 3 Meter %uber deinem Kopf. "