From 0dbf6b5df833398019eba2740d2c4aef14ff2574 Mon Sep 17 00:00:00 2001 From: historicalsource Date: Sat, 13 Apr 2019 22:43:52 -0400 Subject: [PATCH] Final Revision --- README.md | 1 + actions.zabstr | 431 ++ actions.zap | 4013 ++++++++++ actions.zil | 4260 +++++++++++ chunk.script | 59 + clock.zabstr | 13 + clock.zap | 53 + clock.zil | 62 + combat.log | 108 + dungeon.zabstr | 1027 +++ dungeon.zap | 78 + dungeon.zil | 2720 +++++++ file.zil | 1 + flush.cmd | 1 + g.actions | Bin 0 -> 75264 bytes g.deaths | 322 + g.fight | Bin 0 -> 13779 bytes g.full | 3117 ++++++++ g.things | 487 ++ gender.script | 176 + german.chars | Bin 0 -> 89 bytes german.hex | 10 + globals.zabstr | 82 + globals.zap | 200 + globals.zil | 454 ++ hints.zabstr | 304 + hints.zap | 267 + hints.zil | 685 ++ loop.zabstr | 19 + loop.zap | 286 + loop.zil | 403 + old-hints.zil | 334 + parser.cmp | 2111 ++++++ parser.zabstr | 152 + parser.zap | 1745 +++++ parser.zil | 1623 ++++ pre-umlaut-dungeon.zil | 2618 +++++++ pre-umlaut-syntax.zil | 770 ++ rmode.init | Bin 0 -> 4999 bytes script.actions | 1706 +++++ script.deaths | 339 + script.defaults | 928 +++ script.fight | 93 + script.full | 3223 ++++++++ script.globals | 65 + script.input | 832 +++ script.parser | 74 + script.things | 507 ++ syntax.zil | 793 ++ tells.zabstr | 60 + tells.zap | 237 + tells.zil | 332 + verbs.zabstr | 247 + verbs.zap | 2453 ++++++ verbs.zil | 2552 +++++++ zap | Bin 0 -> 266223 bytes zork1.chars | 22 + zork1.chart | 145 + zork1.errors | 50 + zork1.lowcore | 2 + zork1.record | 409 + zork1.serial | 1 + zork1.syms | Bin 0 -> 190762 bytes zork1.zap | 56 + zork1.zil | 43 + zork1.zip | Bin 0 -> 131072 bytes zork1dat.zap | 15594 +++++++++++++++++++++++++++++++++++++++ zork1freq.xzap | 200 + zork1pur.zap | 1303 ++++ zork1str.zap | 832 +++ zstring.c | 870 +++ 71 files changed, 62960 insertions(+) create mode 100644 README.md create mode 100644 actions.zabstr create mode 100644 actions.zap create mode 100644 actions.zil create mode 100644 chunk.script create mode 100644 clock.zabstr create mode 100644 clock.zap create mode 100644 clock.zil create mode 100644 combat.log create mode 100644 dungeon.zabstr create mode 100644 dungeon.zap create mode 100644 dungeon.zil create mode 100644 file.zil create mode 100644 flush.cmd create mode 100644 g.actions create mode 100644 g.deaths create mode 100644 g.fight create mode 100644 g.full create mode 100644 g.things create mode 100644 gender.script create mode 100644 german.chars create mode 100644 german.hex create mode 100644 globals.zabstr create mode 100644 globals.zap create mode 100644 globals.zil create mode 100644 hints.zabstr create mode 100644 hints.zap create mode 100644 hints.zil create mode 100644 loop.zabstr create mode 100644 loop.zap create mode 100644 loop.zil create mode 100644 old-hints.zil create mode 100644 parser.cmp create mode 100644 parser.zabstr create mode 100644 parser.zap create mode 100644 parser.zil create mode 100644 pre-umlaut-dungeon.zil create mode 100644 pre-umlaut-syntax.zil create mode 100644 rmode.init create mode 100644 script.actions create mode 100644 script.deaths create mode 100644 script.defaults create mode 100644 script.fight create mode 100644 script.full create mode 100644 script.globals create mode 100644 script.input create mode 100644 script.parser create mode 100644 script.things create mode 100644 syntax.zil create mode 100644 tells.zabstr create mode 100644 tells.zap create mode 100644 tells.zil create mode 100644 verbs.zabstr create mode 100644 verbs.zap create mode 100644 verbs.zil create mode 100644 zap create mode 100644 zork1.chars create mode 100644 zork1.chart create mode 100644 zork1.errors create mode 100644 zork1.lowcore create mode 100644 zork1.record create mode 100644 zork1.serial create mode 100644 zork1.syms create mode 100644 zork1.zap create mode 100644 zork1.zil create mode 100644 zork1.zip create mode 100644 zork1dat.zap create mode 100644 zork1freq.xzap create mode 100644 zork1pur.zap create mode 100644 zork1str.zap create mode 100644 zstring.c diff --git a/README.md b/README.md new file mode 100644 index 0000000..49869fd --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# zork-german diff --git a/actions.zabstr b/actions.zabstr new file mode 100644 index 0000000..6683363 --- /dev/null +++ b/actions.zabstr @@ -0,0 +1,431 @@ + + + + + + + + + + + + +> + + + + + + + +> + + + + + + + + + + +> + + + + + + + + + + + + + +> +> + + + + + + + + + + + +> + + + + + +> +> + + + +> +> + + + + + +> + +> + + + + + + + + + + + + + + + + + + + +> +> + + +> +> + + + + + +> + + + + + + + + + + + + +> + + + + + + + + + + + +> + + + + + + + + + + + + + + + + + + + + +> +> +> + + + + + + + + +> + + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> +> +> +> +> +> +> +> +> + + + + + + + + + + + + + + + + + + + + + + + + + < +LTABLE (PURE) "Kling! Klang! Bumm! " DEF-NOM-CAP " pariert den Schlag."> < +LTABLE (PURE) "Ein schneller Schlag, aber " DEF-NOM " ist auf der Hut."> < +LTABLE (PURE) "Ein guter Schlag, aber er ist zu langsam, " DEF-NOM +" weicht aus.">> > > < +LTABLE (PURE) "Dein Hieb sitzt, aber er war nur mit der flachen Seite von +dem Schwert."> > > + > >>> + < +LTABLE (PURE) "Der Zyklop greift dich an, aber er rennt gegen die Wand.">> < +LTABLE (PURE) > < +LTABLE (PURE) > > > > > > >> +> + > > + > > < +LTABLE (PURE) "Ein Axthiebt hinterl%a%st eine tiefe Wunde in deinem Bein."> < +LTABLE (PURE) "Die Axt des Trolls schwingt herunter, schl%agt dir die Schulter blutig." +>> < +LTABLE (PURE) "Der m%achtige Schlag des Trolls bringt dich auf die Kniee.">> < +LTABLE (PURE) + > > >>> + > > > + > < +LTABLE (PURE) "Der Dieb versetzt dir einen tiefen Stich in den Oberarm."> < +LTABLE (PURE) "Das Stilett ber%uhrt deine Stirn, und das herabrinnende Blut macht dich blind." +> > > + > < +LTABLE (PURE) < +LTABLE (PURE) "Der Dieb besch%aftigt sich damit, deinen Rucksack zu durchw%uhlen." +>> >>> + + + + + +
0 0 CYCLOPS-MELEE>>> + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/actions.zap b/actions.zap new file mode 100644 index 0000000..bd47285 --- /dev/null +++ b/actions.zap @@ -0,0 +1,4013 @@ + + + .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%afig 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%aenschrank 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%aenschrank, " + 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%ache 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%achspartner." +?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%achstes 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%achste 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. " + + + .FUNCT DOME-ROOM-FCN:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "Du bist am Rand einer gro%sen Kuppel, die die Decke der Raumes darunter formt. Ein h%olzernes Gel%ander, das die Kuppel umgibt, besch%utzt dich vor dem Absturz in einen steilen Abgrund." + CRLF + ZERO? DOME-FLAG /FALSE + PRINTR "Von dem Gel%ander h%angt ein Seil, das etwa 3 Meter %uber dem Boden endet." +?CCL3: EQUAL? RARG,M-ENTER \FALSE + ZERO? DEAD /?CCL11 + PRINTI "Wenn du die Kuppel betrittst, f%uhlst du einen starken Sog, wie von einem Wind, der dich %uber das Gel%ander und nach unten rei%st." + CRLF + MOVE WINNER,TORCH-ROOM + SET 'OHERE,FALSE-VALUE + SET 'HERE,TORCH-ROOM + RTRUE +?CCL11: EQUAL? PRSA,V?LEAP \FALSE + CALL2 JIGS-UP,STR?240 + RSTACK + + + .FUNCT LLD-ROOM:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "Du bist au%serhalb eines riesigen Tores mit der Aufschrift: + + Gebt auf jegliche Hoffnung Ihr, + die Ihr hier eintretet! + +Das Tor ist ge%offnet. Gro%se Trostlosigkeit und ein Haufen von zerquetschten K%orpern breitet sich vor dir aus. Tausende von Stimmen, die von einem schrecklichen Schicksal klagen, ert%onen." + CRLF + ZERO? LLD-FLAG \FALSE + ZERO? DEAD \FALSE + PRINTR "Der Eintritt durch das Tor ist von b%osen Geistern versperrt, die bei deinem Versuch Eintritt zu gewinnen, nur grinsen." +?CCL3: EQUAL? RARG,M-BEG \?CCL10 + EQUAL? PRSA,V?EXORCISE \?CCL13 + ZERO? LLD-FLAG \FALSE + IN? BELL,WINNER \?CCL19 + IN? BOOK,WINNER \?CCL19 + IN? CANDLES,WINNER \?CCL19 + PRINTR "Du mu%st diese Zeremonie durchf%uhren." +?CCL19: PRINTR "F%ur eine Austreibung bist du nicht vorbereitet." +?CCL13: ZERO? LLD-FLAG \?CCL24 + EQUAL? PRSA,V?RING \?CCL24 + EQUAL? PRSO,BELL \?CCL24 + SET 'XB,TRUE-VALUE + ICALL2 REMOVE-CAREFULLY,BELL + ICALL2 THIS-IS-IT,HOT-BELL + MOVE HOT-BELL,HERE + PRINTI "Die Glocke wird pl%otzlich gl%uhend hei%s und f%allt zu Boden. Die Geister, als w%aren sie versteinert, h%oren mit dem Gejammer auf und drehen sich dir zu. Auf ihren fahlen Gesichtern formt sich der Ausdruck einer langvergessenen Furcht." + CRLF + IN? CANDLES,WINNER \?CND28 + PRINTI "In deiner Verwirrung fallen die Kerzen auf den Boden (und sie sind aus)." + CRLF + MOVE CANDLES,HERE + FCLEAR CANDLES,ONBIT + CALL2 INT,I-CANDLES + PUT STACK,0,0 +?CND28: CALL QUEUE,I-XB,6 + PUT STACK,0,1 + CALL QUEUE,I-XBH,20 + PUT STACK,0,1 + RTRUE +?CCL24: ZERO? XC /FALSE + EQUAL? PRSA,V?READ \FALSE + EQUAL? PRSO,BOOK \FALSE + ZERO? LLD-FLAG \FALSE + PRINTI "Jedes Wort des Gebetes hallt in einem ohrenbet%aubenden Durcheinander durch den Saal. Als die letzten Worte verhallen, spricht eine laute und befehlende Stimme: %>Weg mit Euch, Ihr Biester!%< Ein herzzerrei%sender Schrei f%ullt die H%ohle, und die Geister, eine h%ohere Macht versp%uren fliehen durch die W%ande." + CRLF + ICALL2 REMOVE-CAREFULLY,GHOSTS + SET 'LLD-FLAG,TRUE-VALUE + CALL2 INT,I-XC + PUT STACK,0,0 + RTRUE +?CCL10: EQUAL? RARG,M-END \FALSE + ZERO? XB /FALSE + IN? CANDLES,WINNER \FALSE + FSET? CANDLES,ONBIT \FALSE + ZERO? XC \FALSE + SET 'XC,TRUE-VALUE + PRINTI "Die Flammen flackern wild und scheinen zu tanzen. Die Erde unter dir zittert, und deine Knie drohen aufzugeben. Die Geister verzweifeln an deiner %uberirdischen Kraft." + CRLF + CALL2 INT,I-XB + PUT STACK,0,0 + CALL QUEUE,I-XC,3 + PUT STACK,0,1 + RTRUE + + + .FUNCT I-XB:ANY:0:0 + ZERO? XC \?PEN1 + EQUAL? HERE,ENTRANCE-TO-HADES \?PEN1 + PRINTI "Der Bann dieser Zeremonie ist gebrochen, und die Geister, die zwar am%usiert, aber doch von deinem tolpatschigen Versuch gest%ort sind, nehmen ihr schreckliches Geheule wieder auf." + CRLF +?PEN1: SET 'XB,FALSE-VALUE + RETURN XB + + + .FUNCT I-XC:ANY:0:0 + SET 'XC,FALSE-VALUE + CALL1 I-XB + RSTACK + + + .FUNCT I-XBH:ANY:0:0 + ICALL2 REMOVE-CAREFULLY,HOT-BELL + MOVE BELL,ENTRANCE-TO-HADES + EQUAL? HERE,ENTRANCE-TO-HADES \FALSE + PRINTR "Die Glocke scheint sich abgek%uhlt zu haben." + + + .FUNCT DAM-ROOM-FCN:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "Du stehst oben auf dem Hochwasserschutzdamm Nr.3. Er war wohl zu seiner Zeit eine gro%se Sehensw%urdigkeit. Es gibt hier Pfade nach Norden, S%uden und Westen und eine steile Abk%urzung. " + CRLF + ZERO? LOW-TIDE /?CCL6 + ZERO? GATES-OPEN /?CCL6 + PRINTI "Der Wasserstand hinter dem Damm ist niedrig. Die Schleusentore sind ge%offnet worden. Das Wasser braust durch den Damm flu%sabw%arts." + CRLF + JUMP ?CND4 +?CCL6: ZERO? GATES-OPEN /?CCL10 + PRINTI "Die Schleusentore sind ge%offnet. Wasser braust durch den Damm. Der Wasserstand hinter dem Damm ist immer noch hoch." + CRLF + JUMP ?CND4 +?CCL10: ZERO? LOW-TIDE /?CCL12 + PRINTI "Die Schleusentore sind geschlo%sen. Der Wasserstand in dem Reservoir ist niedrig, aber er steigt schnell." + CRLF + JUMP ?CND4 +?CCL12: PRINTI "Die Schleusentore des Dammes sind geschlo%sen. Hinter dem Damm kann man ein gro%ses Reservoir sehen. Wasser flie%st wild %uber den seit langem unbenutzten Damm." + CRLF +?CND4: PRINTI "Es gibt hier eine Schalttafel, auf der eine gro%se Metallschraube angebracht ist. Direkt %uber der Schraube ist eine kleine gr%une Plastikblase" + ZERO? GATE-FLAG /?CND13 + PRINTI ", die klar aufleuchtet" +?CND13: PRINTR "." + + + .FUNCT BOLT-F:ANY:0:0 + EQUAL? PRSA,V?TURN \?CCL3 + EQUAL? PRSI,WRENCH \?CCL6 + ZERO? GATE-FLAG /?CCL9 + FCLEAR RESERVOIR-SOUTH,TOUCHBIT + ZERO? GATES-OPEN /?CCL12 + SET 'GATES-OPEN,FALSE-VALUE + FCLEAR LOUD-ROOM,TOUCHBIT + PRINTI "Die Schleusentore schlie%sen sich, und Wasser sammelt sich hinter dem Damm an." + CRLF + CALL QUEUE,I-RFILL,8 + PUT STACK,0,1 + CALL QUEUE,I-REMPTY,0 + PUT STACK,0,1 + RTRUE +?CCL12: SET 'GATES-OPEN,TRUE-VALUE + PRINTI "Die Schleusentore %offnen sich, und Wasser str%omt durch den Damm." + CRLF + CALL QUEUE,I-REMPTY,8 + PUT STACK,0,1 + CALL QUEUE,I-RFILL,0 + PUT STACK,0,1 + RTRUE +?CCL9: PRINTR "The bolt won't turn with your best effort." +?CCL6: PRINTI "Die Schraube l%a%st sich mit " + ICALL2 DER-ACC-PRINT,PRSI + PRINTR " nicht drehen." +?CCL3: EQUAL? PRSA,V?TAKE \?CCL14 + CALL1 INTEGRAL-PART + RSTACK +?CCL14: EQUAL? PRSA,V?OIL \FALSE + PRINTR "O nein! Es sieht so aus, als ob die Tube nicht %Ol, sondern Klebstoff enthalten hat. Die Schraube wird dadurch nicht einfacher." + + + .FUNCT BUBBLE-F:ANY:0:0 + EQUAL? PRSA,V?TAKE \FALSE + CALL1 INTEGRAL-PART + RSTACK + + + .FUNCT INTEGRAL-PART:ANY:0:0 + PRINTR "Es ist ein wichtiger Bestandteil der Schalttafel." + + + .FUNCT I-RFILL:ANY:0:0 + FSET RESERVOIR,NONLANDBIT + FCLEAR RESERVOIR,RLANDBIT + FCLEAR DEEP-CANYON,TOUCHBIT + FCLEAR LOUD-ROOM,TOUCHBIT + IN? TRUNK,RESERVOIR \?PEN1 + FSET TRUNK,INVISIBLE +?PEN1: SET 'LOW-TIDE,FALSE-VALUE + EQUAL? HERE,RESERVOIR \?CCL5 + LOC WINNER + FSET? STACK,VEHBIT \?CCL8 + PRINTR "Das Boot hebt sich leicht aus dem Schlamm und treibt auf dem Wasser des Reservoirs." +?CCL8: ICALL2 JIGS-UP,STR?241 + RTRUE +?CCL5: EQUAL? HERE,DEEP-CANYON \?CCL10 + PRINTR "Ein Ger%ausch, wie das von flie%sendem Wasser, kann von unten geh%ort werden." +?CCL10: EQUAL? HERE,LOUD-ROOM \?CCL12 + PRINTI "Pl%otzlich f%ullt ein alarmierend lautes Gebr%ull den Raum. Voller Furcht kriechst du davon." + CRLF + CALL2 PICK-ONE,LOUD-RUNS + ICALL2 GOTO,STACK + RTRUE +?CCL12: EQUAL? HERE,RESERVOIR-NORTH,RESERVOIR-SOUTH \TRUE + PRINTR "Du merkst, da%s der Wasserstand so hoch ist, da%s man nicht mehr zu Fu%s weiterkommt." + + + .FUNCT I-REMPTY:ANY:0:0 + FSET RESERVOIR,RLANDBIT + FCLEAR RESERVOIR,NONLANDBIT + FCLEAR DEEP-CANYON,TOUCHBIT + FCLEAR LOUD-ROOM,TOUCHBIT + FCLEAR TRUNK,INVISIBLE + SET 'LOW-TIDE,TRUE-VALUE + EQUAL? HERE,RESERVOIR \?CCL3 + LOC WINNER + FSET? STACK,VEHBIT \?CCL3 + PRINTR "Der Wasserstand hat sich so weit gemindert, da%s das Boot nicht mehr weiter schwimmen kann. Es sinkt in den Schlamm." +?CCL3: EQUAL? HERE,DEEP-CANYON \?CCL7 + PRINTR "Das Get%ose von dem brausenden Wasser ist jetzt ruhiger." +?CCL7: EQUAL? HERE,RESERVOIR-NORTH,RESERVOIR-SOUTH \TRUE + PRINTR "Der Wasserstand ist hier recht niedrig, und du k%onntest hier leicht auf die andere Seite kommen." + + + .FUNCT BUTTON-F:ANY:0:0 + EQUAL? PRSA,V?READ \?CCL3 + PRINTR "Das kommt dir alles Spanisch vor." +?CCL3: EQUAL? PRSA,V?PUSH \FALSE + EQUAL? PRSO,BLUE-BUTTON \?CCL8 + ZERO? WATER-LEVEL \?CCL11 + FCLEAR LEAK,INVISIBLE + PRINTI "Da ist ein grollendes Ger%ausch, und ein Strom von Wasser scheint von der Ostwand in das Zimmer hereinzubrechen (scheinbar ein Rohr bruch)." + CRLF + SET 'WATER-LEVEL,1 + CALL QUEUE,I-MAINT-ROOM,-1 + PUT STACK,0,1 + RTRUE +?CCL11: PRINTR "Der blaue Knopf scheint, blockiert zu sein." +?CCL8: EQUAL? PRSO,RED-BUTTON \?CCL13 + PRINTI "Die Lichter im Raum gehen " + FSET? HERE,ONBIT \?CCL16 + FCLEAR HERE,ONBIT + PRINTR "aus." +?CCL16: FSET HERE,ONBIT + PRINTR "an." +?CCL13: EQUAL? PRSO,BROWN-BUTTON \?CCL18 + FCLEAR DAM-ROOM,TOUCHBIT + SET 'GATE-FLAG,FALSE-VALUE + PRINTR "Klick." +?CCL18: EQUAL? PRSO,YELLOW-BUTTON \FALSE + FCLEAR DAM-ROOM,TOUCHBIT + SET 'GATE-FLAG,TRUE-VALUE + PRINTR "Klick." + + + .FUNCT TOOL-CHEST-FCN:ANY:0:0 + EQUAL? PRSA,V?EXAMINE \?CCL3 + PRINTR "Die Werkzeugk%asten sind alle leer." +?CCL3: EQUAL? PRSA,V?PUT,V?OPEN,V?TAKE \?CCL5 + ICALL2 REMOVE-CAREFULLY,TOOL-CHEST + PRINTR "Die K%asten sind so rostig und verrottet, das sie zerfallen, wenn du sie anfa%st." +?CCL5: EQUAL? PRSA,V?OPEN \FALSE + PRINTR "Die Werkzeugk%asten sind schon offen." + + + .FUNCT I-MAINT-ROOM:ANY:0:0,HERE? + EQUAL? HERE,MAINTENANCE-ROOM /?PRD1 + PUSH 0 + JUMP ?PRD2 +?PRD1: PUSH 1 +?PRD2: SET 'HERE?,STACK + ZERO? HERE? /?CND3 + PRINTI "The water level here is now " + DIV WATER-LEVEL,2 + GET DROWNINGS,STACK + PRINT STACK + CRLF +?CND3: INC 'WATER-LEVEL + LESS? WATER-LEVEL,14 /?CCL7 + ICALL MUNG-ROOM,MAINTENANCE-ROOM,STR?251 + CALL QUEUE,I-MAINT-ROOM,0 + PUT STACK,0,1 + ZERO? HERE? /TRUE + ICALL2 JIGS-UP,STR?252 + RTRUE +?CCL7: IN? WINNER,INFLATED-BOAT \TRUE + EQUAL? HERE,MAINTENANCE-ROOM,DAM-ROOM,DAM-LOBBY \TRUE + ICALL2 JIGS-UP,STR?253 + RTRUE + + + .FUNCT LEAK-FUNCTION:ANY:0:0 + GRTR? WATER-LEVEL,0 \FALSE + EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL6 + EQUAL? PRSO,PUTTY \?CCL6 + CALL1 FIX-MAINT-LEAK + RSTACK +?CCL6: EQUAL? PRSA,V?PLUG \FALSE + EQUAL? PRSI,PUTTY \?CCL13 + CALL1 FIX-MAINT-LEAK + RSTACK +?CCL13: CALL2 WITH-TELL,PRSI + RSTACK + + + .FUNCT FIX-MAINT-LEAK:ANY:0:0 + SET 'WATER-LEVEL,-1 + CALL QUEUE,I-MAINT-ROOM,0 + PUT STACK,0,1 + PRINTR "Durch ein Wunder der Zorkschen Technologie ist es dir gelungen, das Leck im Damm zu beheben." + + + .FUNCT PUTTY-FCN:ANY:0:0 + EQUAL? PRSA,V?OIL \?PRD5 + EQUAL? PRSI,PUTTY /?CCL3 +?PRD5: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSO,PUTTY \FALSE +?CCL3: PRINTR "Das Allzweckschmierzeug dient nicht als Schmier%ol." + + + .FUNCT TUBE-FUNCTION:ANY:0:0 + EQUAL? PRSA,V?PUT \?CCL3 + EQUAL? PRSI,TUBE \?CCL3 + PRINTR "Die Tube nimmt einfach nichts auf." +?CCL3: EQUAL? PRSA,V?SQUEEZE \FALSE + FSET? PRSO,OPENBIT \?CCL10 + IN? PUTTY,PRSO \?CCL10 + MOVE PUTTY,WINNER + PRINTR "Das widerliche Zeug quillt %uber deine ganze Hand." +?CCL10: FSET? PRSO,OPENBIT \?CCL14 + PRINTR "Die Tube ist scheinbar leer." +?CCL14: PRINTR "Die Tube ist zu." + + + .FUNCT DAM-FUNCTION:ANY:0:0 + EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3 + PRINTR "Das klingt annehmbar, aber so geht es nicht." +?CCL3: EQUAL? PRSA,V?PLUG \FALSE + EQUAL? PRSI,HANDS \?CCL8 + PRINTR "Bist du der kleine Gernegro%s, ja? Zu dumm, das ist ein gro%ser Damm." +?CCL8: PRINTI "Mit " + ICALL2 EIN-DAT-PRINT,PRSI + PRINTR "? Wei%st du wie gro%s der Damm ist? Du k%onntest h%ochstens ein winziges Leck damit stopfen." + + + .FUNCT WITH-TELL:ANY:1:1,OBJ + PRINTI "With " + ICALL2 EIN-DAT-PRINT,OBJ + PRINTR "?" + + + .FUNCT RESERVOIR-SOUTH-FCN:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \FALSE + ZERO? LOW-TIDE /?CCL6 + ZERO? GATES-OPEN /?CCL6 + PRINTI "Du bist in einem l%anglichen Zimmer. Nach Norden lag fr%uher ein See. Aber, nachdem der Wasserstand gemindert wurde, gibt es hier blo%s einen breiten Bach, der durch die Mitte des Raumes flie%st." + JUMP ?CND4 +?CCL6: ZERO? GATES-OPEN /?CCL10 + PRINTI "Du bist in einem l%anglichen Zimmer. Nach Norden liegt ein gro%ser See. Er ist zu tief, ihn zu %uberqueren. Du merkst aber, da%s der Wassterstand sich rapide senkt. Es wird nicht lange dauern, bis du den See %uberqueren kannst." + JUMP ?CND4 +?CCL10: ZERO? LOW-TIDE /?CCL12 + PRINTI "Du bist in einem l%anglichen Zimmer. Nach Norden gibt es eine weite Fl%ache, die fr%uher ein Reservoir war, aber jetzt nur noch ein Flu%s ist. Du bemerkst aber, da%s der Wasserstand des Flu%ses sich rapide hebt, und da%s es bald unm%oglich sein wird, ihn zu %uberqueren." + JUMP ?CND4 +?CCL12: PRINTI "Du bist in einem l%anglichen Raum am S%udufer eines gro%sen Sees, der viel zu tief und zu breit zum %Uberqueren ist." +?CND4: CRLF + PRINTR "Den Bach entlang f%uhrt ein Pfad nach Osten oder Westen, ein steiler Pfad, nach S%udwesten den Rand einer Spalte entlang und ein Pfad f%uhrt in eine Schlucht nach S%udosten." + + + .FUNCT RESERVOIR-FCN:ANY:1:1,RARG + EQUAL? RARG,M-END \?CCL3 + LOC WINNER + FSET? STACK,VEHBIT /?CCL3 + ZERO? GATES-OPEN \?CCL3 + ZERO? LOW-TIDE /?CCL3 + PRINTR "Du bemerkst, da%s der Wasserstand sich hier rapide hebt. Die Str%omungen werden auch st%arker. Hier zu bleiben, erscheint recht gef%ahrlich." +?CCL3: EQUAL? RARG,M-LOOK \FALSE + ZERO? LOW-TIDE /?CCL12 + PRINTI "Du stehst da, wo einmal ein gro%ser See war, aber der ist jetzt ein gro%ser Schlammhaufen. Es gibt hier %>Ufer%< nach Norden und S%uden." + CRLF + CRLF + RTRUE +?CCL12: PRINTR "Du bist auf dem See. Nach Norden und S%uden kann man Str%ande sehen. Flu%saufw%arts flie%st ein kleiner Flu%s durch eine enge Rinne in den Felsen in den See hinein. Flu%sabw%arts kann man den Damm sehen." + + + .FUNCT RESERVOIR-NORTH-FCN:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \FALSE + ZERO? LOW-TIDE /?CCL6 + ZERO? GATES-OPEN /?CCL6 + PRINTI "Du bist in einem grottenartigen Raum. Sein S%udteil war einmal ein See. Aber, mit dem geminderten Wasserstand, gibt es hier nur noch einen breiten Bach, der hier durchflie%st." + JUMP ?CND4 +?CCL6: ZERO? GATES-OPEN /?CCL10 + PRINTI "Du bist in einer weiten grottenartigen Gegend. Nach S%uden ist ein gro%ser See, dessen Wasserstand rapide zu fallen scheint." + JUMP ?CND4 +?CCL10: ZERO? LOW-TIDE /?CCL12 + PRINTI "Du bist in einer grottenartigen Gegend. Nach S%uden ist ein sehr breiter Strom. Der Wasserstand des Stroms steigt rapide, und es scheint, da%s es bald unm%oglich sein wird auf die andere Seite zu kommen." + JUMP ?CND4 +?CCL12: PRINTI "Du bist in einem grottenartigen Raum auf der Nordseite eines gro%sen Sees." +?CND4: CRLF + PRINTR "Eine schleimige Treppe f%uhrt aus Raum nach Norden." + + + .FUNCT BOTTLE-FUNCTION:ANY:0:0,E? + EQUAL? PRSA,V?THROW \?CCL3 + EQUAL? PRSO,BOTTLE \?CCL3 + ICALL2 REMOVE-CAREFULLY,PRSO + SET 'E?,TRUE-VALUE + PRINTI "Die Flasche trifft die Wand und zerschellt." + CRLF + JUMP ?CND1 +?CCL3: EQUAL? PRSA,V?MUNG \?CCL7 + SET 'E?,TRUE-VALUE + ICALL2 REMOVE-CAREFULLY,PRSO + PRINTI "Eine brilliante Aktion, die die Flasche zerst%ort." + CRLF + JUMP ?CND1 +?CCL7: EQUAL? PRSA,V?SHAKE \?CND1 + FSET? PRSO,OPENBIT \?CND1 + IN? WATER,PRSO \?CND1 + SET 'E?,TRUE-VALUE +?CND1: ZERO? E? /?CCL15 + IN? WATER,PRSO \?CCL15 + PRINTI "Das Wasser spritzt auf den Boden und verdampft." + CRLF + ICALL2 REMOVE-CAREFULLY,WATER + RTRUE +?CCL15: ZERO? E? \TRUE + RFALSE + + + .FUNCT CYCLOPS-FCN:ANY:0:0,COUNT + SET 'COUNT,CYCLOWRATH + EQUAL? WINNER,CYCLOPS \?CCL3 + ZERO? CYCLOPS-FLAG /?CCL6 + PRINTR "Es hat keinen Sinn mit ihm zu sprechen. Er schl%aft fest." +?CCL6: EQUAL? PRSA,V?ODYSSEUS \?CCL8 + SET 'WINNER,ADVENTURER + ICALL2 PERFORM,V?ODYSSEUS + RTRUE +?CCL8: PRINTR "Der Zyklop zieht das Essen der Unterhaltung vor." +?CCL3: ZERO? CYCLOPS-FLAG /?CCL10 + EQUAL? PRSA,V?EXAMINE \?CCL13 + PRINTR "Der Zyklop schl%aft wie ein Engel, wenn auch ein h%a%slicher." +?CCL13: EQUAL? PRSA,V?ATTACK,V?KICK,V?ALARM /?CCL15 + EQUAL? PRSA,V?MUNG,V?BURN \FALSE +?CCL15: PRINTI "Der Zyklop g%ahnt und starrt das Ding an, das ihn aufgeweckt hat." + CRLF + SET 'CYCLOPS-FLAG,FALSE-VALUE + FSET CYCLOPS,FIGHTBIT + LESS? COUNT,0 \?CCL20 + SUB 0,COUNT >CYCLOWRATH + RETURN CYCLOWRATH +?CCL20: SET 'CYCLOWRATH,COUNT + RETURN CYCLOWRATH +?CCL10: EQUAL? PRSA,V?EXAMINE \?CCL22 + PRINTR "Der hungrige Zyklop steht am Fu%s der Treppe." +?CCL22: EQUAL? PRSA,V?GIVE \?CCL24 + EQUAL? PRSI,CYCLOPS \?CCL24 + EQUAL? PRSO,LUNCH \?CCL29 + LESS? COUNT,0 /?CND30 + ICALL2 REMOVE-CAREFULLY,LUNCH + PRINTI "Der Zyklop sagt: %>Ei, ei. Ich liebe scharfe Pepperoni! Aber, oooh, ich k%onnte erst mal was zu Trinken brauchen. Vielleicht k%onnte ich das Blut von 'diesem Ding' trinken%<. Aus dem listigen Aufleuchten seiner Augen kannst du schlie%sen, da%s du gemeint bist." + CRLF + SUB 0,COUNT + CALL MIN,-1,STACK >CYCLOWRATH +?CND30: CALL QUEUE,I-CYCLOPS,-1 + PUT STACK,0,1 + RTRUE +?CCL29: EQUAL? PRSO,WATER /?CTR32 + EQUAL? PRSO,BOTTLE \?CCL33 + IN? WATER,BOTTLE \?CCL33 +?CTR32: LESS? COUNT,0 \?CCL40 + ICALL2 REMOVE-CAREFULLY,WATER + MOVE BOTTLE,HERE + FSET BOTTLE,OPENBIT + FCLEAR CYCLOPS,FIGHTBIT + PRINTI "Der Zyklop nimmt die Flasche, pr%uft ihren Inhalt und trinkt das Wasser. Einen Augenblick sp%ater %offnet er seinen Mund zu einem G%ahnen, mit dem er dich beinahe verschluckt, dann schl%aft er fest ein. (Was hast du ihm denn blo%s in das Wasser geschmuggelt?)" + CRLF + SET 'CYCLOPS-FLAG,TRUE-VALUE + RETURN CYCLOPS-FLAG +?CCL40: PRINTR "Scheinbar ist der Zyklop nicht durstig und lehnt dein gro%sz%ugiges Angebot ab." +?CCL33: EQUAL? PRSO,GARLIC \?CCL42 + PRINTR "Vielleicht ist der Zyklop hungrig, aber auch er kennt seine Grenzen." +?CCL42: PRINTR "Der Zyklop ist nicht so dumm, da%s er DAS essen w%urde!" +?CCL24: EQUAL? PRSA,V?MUNG,V?ATTACK,V?THROW \?CCL44 + CALL QUEUE,I-CYCLOPS,-1 + PUT STACK,0,1 + EQUAL? PRSA,V?MUNG \?CCL47 + PRINTR "%>Meinst du, da%s ich so dumm bin, wie mein Vater war?%< sagt er, als er dir ausweicht." +?CCL47: PRINTI "Der Zyklop zuckt die Achseln und beachtet deinen armseligen Versuch nicht weiter." + CRLF + EQUAL? PRSA,V?THROW \TRUE + MOVE PRSO,HERE + RTRUE +?CCL44: EQUAL? PRSA,V?TAKE \?CCL51 + PRINTR "Es gef%allt dem Zyklopen nicht, da%s du ihn angreifst." +?CCL51: EQUAL? PRSA,V?TIE \?CCL53 + PRINTR "Du kannst den Zyklopen nicht fesseln, obwohl er gefesselt zu sein scheint." +?CCL53: EQUAL? PRSA,V?LISTEN \FALSE + PRINTR "Du kannst seinen Magen knurren h%oren." + + + .FUNCT I-CYCLOPS:ANY:0:0 + ZERO? CYCLOPS-FLAG \TRUE + ZERO? DEAD \TRUE + EQUAL? HERE,CYCLOPS-ROOM /?CCL7 + CALL2 INT,I-CYCLOPS + PUT STACK,0,0 + RTRUE +?CCL7: LESS? CYCLOWRATH,0 \?CCL13 + SUB 0,CYCLOWRATH + JUMP ?CND11 +?CCL13: PUSH CYCLOWRATH +?CND11: GRTR? STACK,5 \?CCL10 + CALL2 INT,I-CYCLOPS + PUT STACK,0,0 + CALL2 JIGS-UP,STR?254 + RSTACK +?CCL10: LESS? CYCLOWRATH,0 \?CCL16 + DEC 'CYCLOWRATH + JUMP ?CND14 +?CCL16: INC 'CYCLOWRATH +?CND14: ZERO? CYCLOPS-FLAG \FALSE + LESS? CYCLOWRATH,0 \?CCL22 + SUB 0,CYCLOWRATH + JUMP ?CND20 +?CCL22: PUSH CYCLOWRATH +?CND20: SUB STACK,1 + GET CYCLOMAD,STACK + PRINT STACK + CRLF + RTRUE + + + .FUNCT CYCLOPS-ROOM-FCN:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "Dieser Raum hat einen Ausgang nach Nordwesten, und eine Treppe f%uhrt nach oben." + CRLF + ZERO? CYCLOPS-FLAG /?CCL6 + ZERO? MAGIC-FLAG \?CCL6 + PRINTR "Der Zyklop schl%aft selig am Fu%se der Treppe." +?CCL6: ZERO? MAGIC-FLAG /?CCL10 + PRINTR "Die Ostwand, die fr%uher ganz war, zeigt jetzt eine zyklopenf%ormige %Offnung." +?CCL10: ZERO? CYCLOWRATH \?CCL12 + PRINTR "Ein Zyklop, der aussieht, als w%are er bereit, G%aule zu verschlingen (viel eher als nur Abenteurer), blockiert die Treppe. Von seinem Gesundheitszustand und den Blutspuren an den W%anden, kannst du schlie%sen, da%s er nicht sehr freundlich ist, obwohle er Menschen liebt." +?CCL12: GRTR? CYCLOWRATH,0 \?CCL14 + PRINTR "Der Zyklop steht in der Ecke und beobachtet dich scharf. Ich glaube nicht, da%s er dich mag. Er sieht sogar f%ur einen Zyklopen ausgesprochen hungrig aus." +?CCL14: LESS? CYCLOWRATH,0 \FALSE + PRINTR "Der Zyklop scheint, nachdem er die scharfen Pepperoni gefressen hat, nach Atem zu ringen. Seine flammenrote Zunge h%angt aus seinem menschengro%sen Maul." +?CCL3: EQUAL? RARG,M-ENTER \FALSE + ZERO? CYCLOWRATH /TRUE + CALL2 INT,I-CYCLOPS + PUT STACK,0,1 + RTRUE + + + .FUNCT LOUD-ROOM-FCN:ANY:1:1,RARG,WRD + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "Dies ist ein riesiges Zimmer, in dem man die Decke nicht von unten erkennen kann. Hier ist ein enger Durchgang von Osten nach Westen und eine Steintreppe f%uhrt nach oben." + ZERO? LOUD-FLAG \?CTR5 + ZERO? GATES-OPEN \?CCL6 + ZERO? LOW-TIDE /?CCL6 +?CTR5: PRINTR " Der Raum ist in seiner Stille unheimlich." +?CCL6: PRINTR " Der Raum ist mit ohrenbet%aubendem L%arm gef%ullt. Das Get%ose scheint, von allen W%anden widerzuhallen. Es ist unm%oglich, hier auch nur zu denken." +?CCL3: EQUAL? RARG,M-END \?CCL12 + ZERO? GATES-OPEN /?CCL12 + ZERO? LOW-TIDE \?CCL12 + PRINTI "Es ist unertr%aglich laut hier. Eine ohrenbet%aubendes Gebr%ull kommt von allen Seiten auf dich zu. Dein Kopf dr%ohnt ununterbrochen. Mit gr%o%ster Anstrengung verl%a%st du den Raum." + CRLF + CRLF + CALL2 PICK-ONE,LOUD-RUNS + ICALL2 GOTO,STACK + RFALSE +?CCL12: EQUAL? RARG,M-ENTER \FALSE + ZERO? LOUD-FLAG \FALSE + ZERO? GATES-OPEN \?CCL20 + ZERO? LOW-TIDE \FALSE +?CCL20: ZERO? GATES-OPEN /?CCL26 + ZERO? LOW-TIDE /FALSE +?CCL26: ICALL1 V-FIRST-LOOK + ZERO? P-CONT /?PRG31 + PRINTI "Deine anderen Befehle sind in dem Gebr%ull verloren gegangen." + CRLF + SET 'P-CONT,FALSE-VALUE +?PRG31: ZERO? SUPER-BRIEF \?CND33 + CRLF +?CND33: PRINTC 62 + PUTB P-INBUF,1,0 + READ P-INBUF,P-LEXV + GETB P-LEXV,P-LEXWORDS + ZERO? STACK \?CND35 + PRINTI "Bitte?" + CRLF + JUMP ?PRG31 +?CND35: GET P-LEXV,1 >WRD + EQUAL? WRD,W?LAUF,W?GEH,W?REN /?CTR38 + EQUAL? WRD,W?LAUFE,W?GEHE,W?RENE \?CCL39 +?CTR38: GET P-LEXV,3 >WRD + JUMP ?CND37 +?CCL39: EQUAL? WRD,W?SAG \?CND37 + GET P-LEXV,5 >WRD +?CND37: EQUAL? WRD,W?SAVE \?CCL45 + ICALL1 V-SAVE + JUMP ?PRG31 +?CCL45: EQUAL? WRD,W?WIEDERHERSTELLUNG \?CCL47 + ICALL1 V-RESTORE + JUMP ?PRG31 +?CCL47: EQUAL? WRD,W?AUFHOEREN,W?AUFH%OREN \?CCL49 + ICALL1 V-QUIT + JUMP ?PRG31 +?CCL49: EQUAL? WRD,W?W,W?WEST,W?WESTEN \?CCL51 + CALL2 GOTO,ROUND-ROOM + RSTACK +?CCL51: EQUAL? WRD,W?O,W?OSTEN,W?OST \?CCL53 + CALL2 GOTO,DAMP-CAVE + RSTACK +?CCL53: EQUAL? WRD,W?RAUF,W?RA \?CCL55 + CALL2 GOTO,DEEP-CANYON + RSTACK +?CCL55: EQUAL? WRD,W?ECHO \?CCL57 + SET 'LOUD-FLAG,TRUE-VALUE + FCLEAR BAR,SACREDBIT + PRINTI "Die Akustik in dem Raum %andert sich ein bi%schen." + CRLF + ZERO? SUPER-BRIEF \TRUE + CRLF + RTRUE +?CCL57: ICALL1 V-ECHO + JUMP ?PRG31 + + + .FUNCT DEEP-CANYON-F:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "Du bist am S%udrand einer tiefen Schlucht. Durchg%ange f%uhren nach Osten, Nordwesten und S%udwesten. Eine Treppe f%uhrt nach unten." + ZERO? GATES-OPEN /?CCL6 + ZERO? LOW-TIDE \?CCL6 + PRINTR " Du kannst ein lautes Get%ose, wie das Brausen von Wasser von unten h%oren." +?CCL6: ZERO? GATES-OPEN \?CCL10 + ZERO? LOW-TIDE /?CCL10 + CRLF + RTRUE +?CCL10: PRINTR "Du kannst von unten herauf das Rauschen von Wasser h%oren." + + + .FUNCT THIEF-VS-ADVENTURER:ANY:1:1,HERE?,ROBBED?,WINNER-ROBBED? + ZERO? DEAD \?CCL2 + EQUAL? HERE,TREASURE-ROOM /FALSE +?CCL2: ZERO? THIEF-HERE \?CCL6 + ZERO? DEAD \?CCL9 + ZERO? HERE? \?CCL9 + RANDOM 100 + GRTR? 30,STACK \?CCL9 + IN? STILETTO,THIEF \FALSE + FCLEAR THIEF,INVISIBLE + PRINTI "Jemand, der einen gro%sen Sack tr%agt, lehnt hier gegen eine Wand. Er spricht kein Wort, aber es besteht kein Zweifel, da%s er sich nur %uber seine eigene Leiche von dem Sack trennen wird." + CRLF + SET 'THIEF-HERE,TRUE-VALUE + RTRUE +?CCL9: ZERO? HERE? /?CCL16 + FSET? THIEF,FIGHTBIT \?CCL16 + CALL2 WINNING?,THIEF + ZERO? STACK \?CCL16 + PRINTI "Dein Gegner, der entscheidet, da%s Bescheidenheit auch eine Zier ist, entscheidet diesen kleinen Zwischenfall abzubrechen. Mit einem besch%amten Kopfnicken tritt er zur%uck ins Dunkel und verschwindet." + CRLF + FSET THIEF,INVISIBLE + FCLEAR THIEF,FIGHTBIT + ICALL1 RECOVER-STILETTO + RTRUE +?CCL16: ZERO? HERE? /?CCL21 + FSET? THIEF,FIGHTBIT \?CCL21 + RANDOM 100 + GRTR? 90,STACK /FALSE +?CCL21: ZERO? HERE? /?CCL26 + RANDOM 100 + GRTR? 30,STACK \?CCL26 + PRINTI "Der, der den gro%sen Sack tr%agt, ist gerade abgehauen. Er hatte die Nase voll. Gott sei Dank hat er nichts mitgenommen." + CRLF + FSET THIEF,INVISIBLE + ICALL1 RECOVER-STILETTO + RTRUE +?CCL26: RANDOM 100 + GRTR? 70,STACK /FALSE + ZERO? DEAD \FALSE + CALL ROB,HERE,THIEF,100 + ZERO? STACK /?CCL34 + SET 'ROBBED?,HERE + JUMP ?CND32 +?CCL34: CALL ROB,WINNER,THIEF + ZERO? STACK /?CND32 + SET 'ROBBED?,PLAYER +?CND32: SET 'THIEF-HERE,TRUE-VALUE + ZERO? ROBBED? /?CCL38 + ZERO? HERE? \?CCL38 + PRINTI "Ein %ubelau%sehender Typ mit einem gro%sen Sack ist gerade durchs Zimmer gelatscht. Auf dem Weg hat er ganz ruhig ein paar Wertgegenst%ande " + EQUAL? ROBBED?,HERE \?CCL43 + PRINTI "aus dem Zimmer" + JUMP ?CND41 +?CCL43: PRINTI "aus deinem Besitz" +?CND41: PRINTI " mitgehen lassen, dabei hat er etwas gemurmelt wie ....%>Diene deinem N%achsten bevor...%<" + CRLF + ICALL1 STOLE-LIGHT? + RFALSE +?CCL38: ZERO? HERE? /?CCL45 + ICALL1 RECOVER-STILETTO + ZERO? ROBBED? /?CCL48 + PRINTI "Der Dieb ist gerade abgehauen, nat%urlich trug er immer noch seinen gro%sen Sack. " + EQUAL? ROBBED?,PLAYER \?CCL51 + PRINTI "Du hast es vielleicht nicht bemerkt, aber er hat dich restlos ausgeraubt." + JUMP ?CND49 +?CCL51: PRINTI "Du hast vielleicht nicht gemerkt, da%s er die Wertsachen im Zimmer abgestaubt hat." +?CND49: CRLF + ICALL1 STOLE-LIGHT? + JUMP ?CND46 +?CCL48: PRINTI "Der Dieb, der nichts Wertvolles finden konnte, ist ver%argert abgehauen." + CRLF +?CND46: FSET THIEF,INVISIBLE + SET 'HERE?,FALSE-VALUE + RTRUE +?CCL45: PRINTR "Ein hagerer, hungrigau%sehender Herr latschte hier gerade durch. Er trug einen gro%sen Sack. Als er nichts Wertvolles finden konnte, zog er ver%argert ab." +?CCL6: ZERO? HERE? /FALSE + RANDOM 100 + GRTR? 30,STACK \FALSE + CALL ROB,HERE,THIEF,100 + ZERO? STACK /?CCL58 + SET 'ROBBED?,HERE + JUMP ?CND56 +?CCL58: CALL ROB,WINNER,THIEF + ZERO? STACK /?CND56 + SET 'ROBBED?,PLAYER +?CND56: ZERO? ROBBED? /?CCL62 + PRINTI "Der Dieb ist gerade abgehauen, nat%urlich trug er immer noch seinen gro%sen Sack. " + EQUAL? ROBBED?,PLAYER \?CCL65 + PRINTI "Du hast es vielleicht nicht bemerkt, aber er hat dich restlos ausgeraubt." + JUMP ?CND63 +?CCL65: PRINTI "Du hast vielleicht nicht gemerkt, da%s er die Wertsachen im Zimmer abgestaubt hat." +?CND63: CRLF + ICALL1 STOLE-LIGHT? + JUMP ?CND60 +?CCL62: PRINTI "Der Dieb, der nichts Wertvolles finden konnte, zog w%utend ab." + CRLF +?CND60: FSET THIEF,INVISIBLE + SET 'HERE?,FALSE-VALUE + ICALL1 RECOVER-STILETTO + RFALSE + + + .FUNCT STOLE-LIGHT?:ANY:0:0,OLD-LIT + SET 'OLD-LIT,LIT + CALL2 LIT?,HERE >LIT + ZERO? LIT \TRUE + ZERO? OLD-LIT /TRUE + PRINTR "Der Dieb hat dich offensichtlich im Dunkeln gelassen." + + + .FUNCT HACK-TREASURES:ANY:0:0,X + ICALL1 RECOVER-STILETTO + FSET THIEF,INVISIBLE + FIRST? TREASURE-ROOM >X /?PRG2 +?PRG2: ZERO? X /TRUE + FCLEAR X,INVISIBLE + NEXT? X >X /?PRG2 + JUMP ?PRG2 + + + .FUNCT DEPOSIT-BOOTY:ANY:1:1,RM,X,N,FLG + FIRST? THIEF >X /?PRG2 +?PRG2: ZERO? X \?CND4 + RETURN FLG +?CND4: NEXT? X >N /?BOGUS6 +?BOGUS6: EQUAL? X,STILETTO,LARGE-BAG /?CND7 + GETP X,P?TVALUE + GRTR? STACK,0 \?CND7 + MOVE X,RM + SET 'FLG,TRUE-VALUE + EQUAL? X,EGG \?CND7 + SET 'EGG-SOLVE,TRUE-VALUE + FSET EGG,OPENBIT +?CND7: SET 'X,N + JUMP ?PRG2 + + + .FUNCT ROB-MAZE:ANY:1:1,RM,X,N + FIRST? RM >X /?PRG2 +?PRG2: ZERO? X /FALSE + NEXT? X >N /?BOGUS6 +?BOGUS6: FSET? X,TAKEBIT \?CND7 + FSET? X,INVISIBLE /?CND7 + RANDOM 100 + GRTR? 40,STACK \?CND7 + PRINTI "Irgendwo in der Ferne h%orst du jemanden sagen %>Meine G%ute, was " + ICALL2 DER-NOM-PRINT,X + PRINTI " hier wohl tut?%<" + CRLF + CALL2 ZPROB,60 + ZERO? STACK /TRUE + MOVE X,THIEF + FSET X,TOUCHBIT + FSET X,INVISIBLE + RTRUE +?CND7: SET 'X,N + JUMP ?PRG2 + + + .FUNCT ROBBER-FUNCTION:ANY:0:1,MODE,FLG,X,N + EQUAL? PRSA,V?TELL \?CCL3 + PRINTI "Der Dieb ist einer von den Starken und Schweigsamen." + CRLF + SET 'P-CONT,FALSE-VALUE + RETURN P-CONT +?CCL3: ZERO? MODE \?CCL5 + EQUAL? PRSA,V?HELLO \?CCL8 + GETP THIEF,P?LDESC + EQUAL? STACK,ROBBER-U-DESC \?CCL8 + PRINTR "Der Dieb, der momentan behindert ist, ist nicht in der Lage, deinen Gru%s mit der ihm angeborenen H%oflichkeit zu erwidern." +?CCL8: EQUAL? PRSO,KNIFE \?CCL12 + EQUAL? PRSA,V?THROW \?CCL12 + FSET? THIEF,FIGHTBIT /?CCL12 + MOVE PRSO,HERE + CALL2 ZPROB,10 + ZERO? STACK /?CCL18 + PRINTI "Du mu%st dem R%auber Angst eingejagt haben, obwohl du ihn nicht getroffen hast. Er flieht" + REMOVE LARGE-BAG + SET 'X,FALSE-VALUE + IN? STILETTO,THIEF \?CND19 + REMOVE STILETTO + SET 'X,TRUE-VALUE +?CND19: FIRST? THIEF \?CCL23 + ICALL MOVE-ALL,THIEF,HERE + PRINTI ", aber der Inhalt seines Sackes f%allt auf den Boden." + JUMP ?CND21 +?CCL23: PRINTC 46 +?CND21: MOVE LARGE-BAG,THIEF + ZERO? X /?CND24 + MOVE STILETTO,THIEF +?CND24: CRLF + FSET THIEF,INVISIBLE + RTRUE +?CCL18: PRINTI "Du hast nicht getroffen. Der Dieb macht keine Anstalten das Messer zu nehmen, obwohl es eine sch%one Zugabe zu der Sammlung in seinem Sack w%are. Er scheint, %uber deinen Versuch ver%argert zu sein." + CRLF + FSET THIEF,FIGHTBIT + RTRUE +?CCL12: EQUAL? PRSA,V?GIVE,V?THROW \?CCL27 + ZERO? PRSO /?CCL27 + EQUAL? PRSO,THIEF /?CCL27 + EQUAL? PRSI,THIEF \?CCL27 + GETP THIEF,P?STRENGTH + LESS? STACK,0 \?CND32 + GETP THIEF,P?STRENGTH + SUB 0,STACK + PUTP THIEF,P?STRENGTH,STACK + CALL2 INT,I-THIEF + PUT STACK,0,1 + ICALL1 RECOVER-STILETTO + PUTP THIEF,P?LDESC,ROBBER-C-DESC + PRINTI "Dein Opfer kommt pl%otzlich zu sich." + CRLF +?CND32: MOVE PRSO,THIEF + GETP PRSO,P?TVALUE + GRTR? STACK,0 \?CCL36 + SET 'THIEF-ENGROSSED,TRUE-VALUE + PRINTI "Der Dieb ist erstaunt %uber deine Gro%sz%ugigkeit, die er nicht erwartetet hat, aber er nimmt " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " an, und nimmt sich Zeit, seine Sch%onheit zu bewundern." +?CCL36: PRINTI "Der Dieb steckt " + ICALL2 DER-ACC-PRINT,PRSO + PRINTI " in seinen Sack und dankt dir h%oflich." + RTRUE +?CCL27: EQUAL? PRSA,V?TAKE \?CCL38 + PRINTR "Was willst du mit ihm machen, wenn du ihn hast?" +?CCL38: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL40 + PRINTR "Der Dieb ist ein schleimiger Geselle mit Eidechsenaugen, die hin und her %augeln. Mit unmi%sverst%andlicher Arroganz schleppt er einen gro%sen Sack mit sich herum. Au%serdem hat er ein gef%ahrlich au%sehendes Stilett, dessen Spitze bedrohlich gegen dich gerichtet ist. An deiner Stelle w%are ich auf der Hut." +?CCL40: EQUAL? PRSA,V?LISTEN \FALSE + PRINTR "Der Dieb schweigt, denn ihr seid einander ja noch nicht offiziell vorgestellt worden." +?CCL5: EQUAL? MODE,F-BUSY? \?CCL44 + IN? STILETTO,THIEF /FALSE + LOC THIEF + IN? STILETTO,STACK \FALSE + MOVE STILETTO,THIEF + FSET STILETTO,NDESCBIT + IN? THIEF,HERE \TRUE + PRINTR "Der R%auber, von dieser Wendung der Dinge etwas %uberrascht, holt sich sein Stillett leichtf%u%sig zur%uck." +?CCL44: EQUAL? MODE,F-DEAD \?CCL53 + MOVE STILETTO,HERE + FCLEAR STILETTO,NDESCBIT + CALL2 DEPOSIT-BOOTY,HERE >X + EQUAL? HERE,TREASURE-ROOM \?CCL56 + FIRST? HERE >X /?PRG58 +?PRG58: ZERO? X \?CCL62 + PRINTI "Jetzt kannst du dir den Kelch ohne Gefahr nehmen." + CRLF + JUMP ?CND54 +?CCL62: EQUAL? X,CHALICE,THIEF,ADVENTURER /?CND60 + FCLEAR X,INVISIBLE + ZERO? FLG \?CND64 + SET 'FLG,TRUE-VALUE + PRINTI "Als der Dieb stirbt, schwindet seine Zauberkraft, und seine Sch%atze werden wieder sichtbar:" + CRLF +?CND64: PRINTC 32 + ICALL2 EIN-NOM-CAP-PRINT,X + FIRST? X \?CND66 + CALL2 SEE-INSIDE?,X + ZERO? STACK /?CND66 + PRINTI ", mit " + ICALL2 PRINT-CONTENTS,X +?CND66: CRLF +?CND60: NEXT? X >X /?PRG58 + JUMP ?PRG58 +?CCL56: ZERO? X /?CND54 + PRINTI "Seine Beute bleibt zur%uck." + CRLF +?CND54: CALL2 INT,I-THIEF + PUT STACK,0,0 + RTRUE +?CCL53: EQUAL? MODE,F-FIRST? \?CCL73 + ZERO? THIEF-HERE /FALSE + FSET? THIEF,INVISIBLE /FALSE + RANDOM 100 + GRTR? 20,STACK \FALSE + FSET THIEF,FIGHTBIT + SET 'P-CONT,FALSE-VALUE + RTRUE +?CCL73: EQUAL? MODE,F-UNCONSCIOUS \?CCL81 + CALL2 INT,I-THIEF + PUT STACK,0,0 + FCLEAR THIEF,FIGHTBIT + MOVE STILETTO,HERE + FCLEAR STILETTO,NDESCBIT + PUTP THIEF,P?LDESC,ROBBER-U-DESC + RTRUE +?CCL81: EQUAL? MODE,F-CONSCIOUS \FALSE + LOC THIEF + EQUAL? STACK,HERE \?CND84 + FSET THIEF,FIGHTBIT + PRINTI "Der R%auber kommt zu sich. F%ur eine Weile t%auscht er weiterhin Bewu%stlosigkeit vor, dann als er die passende Gelegenheit findet, kriecht er weg von dir." + CRLF +?CND84: CALL2 INT,I-THIEF + PUT STACK,0,1 + PUTP THIEF,P?LDESC,ROBBER-C-DESC + CALL1 RECOVER-STILETTO + RSTACK + + + .FUNCT LARGE-BAG-F:ANY:0:0 + EQUAL? PRSA,V?TAKE \?CCL3 + GETP THIEF,P?LDESC + EQUAL? STACK,ROBBER-U-DESC \?CCL6 + PRINTR "Zu deinem Nachteil ist der R%auber auf dem Sack zusammengebrochen. Wenn du jetztversuchtest, den Sack wegzunehmen, w%urdest du ihn wecken." +?CCL6: PRINTR "Der Sack wird auch %uber seine Leiche genommen." +?CCL3: EQUAL? PRSA,V?PUT \?CCL8 + EQUAL? PRSI,LARGE-BAG \?CCL8 + PRINTR "Das w%are ein toller Trick." +?CCL8: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL12 + PRINTR "Nahe genug heranzukommen, w%are ein toller Trick." +?CCL12: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE + PRINTR "Der Sack liegt unter dem Dieb, daher kann man nicht sagen, was darin ist, wenn %uberhaupt was drin ist." + + + .FUNCT MOVE-ALL:ANY:2:2,FROM,TO,X,N + FIRST? FROM >X \FALSE +?PRG4: ZERO? X /TRUE + NEXT? X >N /?BOGUS8 +?BOGUS8: FCLEAR X,INVISIBLE + MOVE X,TO + SET 'X,N + JUMP ?PRG4 + + + .FUNCT CHALICE-FCN:ANY:0:0 + EQUAL? PRSA,V?TAKE \?CCL3 + IN? PRSO,TREASURE-ROOM \FALSE + IN? THIEF,TREASURE-ROOM \FALSE + FSET? THIEF,FIGHTBIT \FALSE + FSET? THIEF,INVISIBLE /FALSE + GETP THIEF,P?LDESC + EQUAL? STACK,ROBBER-U-DESC /FALSE + PRINTR "Du w%urdest von hinten erstochen." +?CCL3: EQUAL? PRSA,V?PUT \?CCL13 + EQUAL? PRSI,CHALICE \?CCL13 + PRINTR "Das gelingt dir nicht. Es ist kein guter Kelch, nicht wahr?" +?CCL13: CALL1 DUMB-CONTAINER + RSTACK + + + .FUNCT TREASURE-ROOM-FCN:ANY:1:1,RARG,TL + EQUAL? RARG,M-ENTER \FALSE + CALL2 INT,I-THIEF + GET STACK,C-ENABLED? + EQUAL? STACK,1 \FALSE + ZERO? DEAD \FALSE + IN? THIEF,HERE /?CND7 + PRINTI "Du h%orst einen Schreckensschrei, als du in das Versteck des R%aubers einbrichst. Als du einen Durchgang benutzt, der dir unbekannt ist, verteidigt er sich sofort." + CRLF + MOVE THIEF,HERE +?CND7: FSET THIEF,FIGHTBIT + FCLEAR THIEF,INVISIBLE + CALL1 THIEF-IN-TREASURE + RSTACK + + + .FUNCT THIEF-IN-TREASURE:ANY:0:0,F,N + FIRST? HERE >F /?BOGUS1 +?BOGUS1: ZERO? F /?PRG6 + NEXT? F \?PRG6 + PRINTI "Der Dieb f%uhrt einige mysteri%ose Gesten aus, und die Sch%atze im Zimmer verschwinden." + CRLF + CRLF +?PRG6: ZERO? F /TRUE + EQUAL? F,CHALICE,THIEF /?CND8 + FSET F,INVISIBLE +?CND8: NEXT? F >F /?PRG6 + JUMP ?PRG6 + + + .FUNCT FRONT-DOOR-FCN:ANY:0:0 + EQUAL? PRSA,V?OPEN \?CCL3 + PRINTR "Die T%ur kann nicht ge%offnet werden." +?CCL3: EQUAL? PRSA,V?BURN \?CCL5 + PRINTR "Du kannst die T%ur nicht verbrennen." +?CCL5: EQUAL? PRSA,V?MUNG \?CCL7 + PRINTR "Du kannst die T%ur nicht besch%adigen." +?CCL7: EQUAL? PRSA,V?LOOK-BEHIND \FALSE + PRINTR "Sie l%a%st sich nicht %offnen." + + + .FUNCT BODY-FUNCTION:ANY:0:0 + EQUAL? PRSA,V?TAKE \?CCL3 + PRINTR "Eine magische Kraft hindert dich am Mitnehmen der Leichen." +?CCL3: EQUAL? PRSA,V?BURN,V?MUNG \FALSE + CALL2 JIGS-UP,STR?263 + RSTACK + + + .FUNCT BLACK-BOOK:ANY:0:0 + EQUAL? PRSA,V?OPEN \?CCL3 + PRINTR "Das Buch ist schon auf Seite 569 augfgeschlagen." +?CCL3: EQUAL? PRSA,V?CLOSE \?CCL5 + PRINTR "Trotz aller Kraftanwendung kannst du das Buch nicht schlie%sen." +?CCL5: EQUAL? PRSA,V?TURN /?CTR6 + EQUAL? PRSA,V?READ-PAGE \?CCL7 + EQUAL? PRSI,INTNUM \?CCL7 + EQUAL? P-NUMBER,569 /?CCL7 +?CTR6: PRINTI "Au%ser der Seite 569 gibt es nur noch eine Seite mit lesbarem Druck darauf. Fast alles ist unleserlich, aber das Thema scheint die Bannung des B%osen zu sein. Scheinbar sind gewi%se Ger%ausche, Lichter und Gebete in dieser Beziehung von Nutzen." + RTRUE +?CCL7: EQUAL? PRSA,V?BURN \FALSE + ICALL2 REMOVE-CAREFULLY,PRSO + CALL2 JIGS-UP,STR?264 + RSTACK + + + .FUNCT PAINTING-FCN:ANY:0:0 + EQUAL? PRSA,V?MUNG \FALSE + PUTP PRSO,P?TVALUE,0 + PUTP PRSO,P?LDESC,STR?265 + PRINTR "Gratuliere! Im Gegensatz zu den anderen Verbrechern, die lediglich die Meisterwerke des K%unstlers gestohlen haben, hast du eines zerst%ort." + + + .FUNCT LANTERN:ANY:0:0 + EQUAL? PRSA,V?THROW \?CCL3 + PRINTI "Die Leuchte liegt am Fu%sboden zerschmettert, und das Licht ist aus." + CRLF + CALL2 INT,I-LANTERN + PUT STACK,0,0 + ICALL2 REMOVE-CAREFULLY,LAMP + MOVE BROKEN-LAMP,HERE + RTRUE +?CCL3: EQUAL? PRSA,V?LAMP-ON \?CCL5 + FSET? LAMP,RMUNGBIT \?CCL8 + PRINTR "Eine ausgebrannte Leuchte l%a%st sich nicht anz%unden." +?CCL8: CALL2 INT,I-LANTERN + PUT STACK,0,1 + RFALSE +?CCL5: EQUAL? PRSA,V?LAMP-OFF \?CCL10 + FSET? LAMP,RMUNGBIT \?CCL13 + PRINTR "Die Leuchte ist schon ausgebrannt." +?CCL13: CALL2 INT,I-LANTERN + PUT STACK,0,0 + RFALSE +?CCL10: EQUAL? PRSA,V?EXAMINE \FALSE + FSET? LAMP,RMUNGBIT \?CCL18 + PRINTR "Die Leuchte ist ausgebrannt." +?CCL18: FSET? LAMP,ONBIT \?CCL20 + PRINTR "Die Leuchte ist an." +?CCL20: PRINTR "Die Leuchte ist nicht an." + + + .FUNCT MAILBOX-F:ANY:0:0 + EQUAL? PRSA,V?TAKE \FALSE + EQUAL? PRSO,MAILBOX \FALSE + PRINTR "Er ist fest angebracht." + + + .FUNCT MATCH-FUNCTION:ANY:0:0,CNT + EQUAL? PRSA,V?BURN,V?LAMP-ON \?CCL3 + EQUAL? PRSO,MATCH \?CCL3 + GRTR? MATCH-COUNT,0 \?CND6 + DEC 'MATCH-COUNT +?CND6: GRTR? MATCH-COUNT,0 /?CCL10 + PRINTR "Leider sind dir die Streichh%olzer ausgegangen." +?CCL10: EQUAL? HERE,LOWER-SHAFT,TIMBER-ROOM \?CCL12 + PRINTR "Dieser Raum ist zugig, und das Streichholz geht sofort aus." +?CCL12: FSET MATCH,FLAMEBIT + FSET MATCH,ONBIT + CALL QUEUE,I-MATCH,2 + PUT STACK,0,1 + PRINTI "Eines der Streichh%olzer beginnt zu brennen." + CRLF + ZERO? LIT \TRUE + SET 'LIT,TRUE-VALUE + ICALL1 V-LOOK + RTRUE +?CCL3: EQUAL? PRSA,V?LAMP-OFF \?CCL16 + FSET? MATCH,FLAMEBIT \?CCL16 + PRINTI "Das Streichholz ist aus." + CRLF + FCLEAR MATCH,FLAMEBIT + FCLEAR MATCH,ONBIT + CALL2 LIT?,HERE >LIT + ZERO? LIT \?CND19 + PRINTI "Es ist stockdunkel hier!" + CRLF +?CND19: CALL QUEUE,I-MATCH,0 + PUT STACK,0,1 + RTRUE +?CCL16: EQUAL? PRSA,V?OPEN,V?COUNT \?CCL22 + PRINTI "Du hast " + SUB MATCH-COUNT,1 >CNT + GRTR? CNT,0 /?CCL25 + PRINTI "keine" + JUMP ?CND23 +?CCL25: PRINTN CNT +?CND23: PRINTR " Streichh%olzer." +?CCL22: EQUAL? PRSA,V?EXAMINE \FALSE + FSET? MATCH,ONBIT \?CCL30 + PRINTR "Das Streichholz brennt." +?CCL30: PRINTR "The matchbook isn't very interesting, except for what's written on it." + + + .FUNCT I-MATCH:ANY:0:0 + PRINTI "Das Streichholz ist ausgegangen." + CRLF + FCLEAR MATCH,FLAMEBIT + FCLEAR MATCH,ONBIT + CALL2 LIT?,HERE >LIT + RTRUE + + + .FUNCT I-LANTERN:ANY:0:0,TICK,TBL + VALUE 'LAMP-TABLE >TBL + GET TBL,0 >TICK + CALL QUEUE,I-LANTERN,TICK + PUT STACK,0,1 + ICALL LIGHT-INT,LAMP,TBL,TICK + ZERO? TICK /FALSE + ADD TBL,4 >LAMP-TABLE + RETURN LAMP-TABLE + + + .FUNCT I-CANDLES:ANY:0:0,TICK,TBL + VALUE 'CANDLE-TABLE >TBL + FSET CANDLES,TOUCHBIT + GET TBL,0 >TICK + CALL QUEUE,I-CANDLES,TICK + PUT STACK,0,1 + ICALL LIGHT-INT,CANDLES,TBL,TICK + ZERO? TICK /FALSE + ADD TBL,4 >CANDLE-TABLE + RETURN CANDLE-TABLE + + + .FUNCT LIGHT-INT:ANY:3:3,OBJ,TBL,TICK + ZERO? TICK \?CND1 + FCLEAR OBJ,ONBIT + FSET OBJ,RMUNGBIT +?CND1: CALL2 HELD?,OBJ + ZERO? STACK \?CCL5 + IN? OBJ,HERE \FALSE +?CCL5: ZERO? TICK \?CCL10 + PRINTI "Du brauchst mehr Licht, als nur " + ICALL2 DER-NOM-PRINT,OBJ + PRINTR "." +?CCL10: GET TBL,1 + PRINT STACK + CRLF + RTRUE + + + .FUNCT MIN:ANY:2:2,N1,N2 + LESS? N1,N2 \?CCL3 + RETURN N1 +?CCL3: RETURN N2 + + + .FUNCT CANDLES-FCN:ANY:0:0 + FSET? CANDLES,TOUCHBIT /?CND1 + CALL2 INT,I-CANDLES + PUT STACK,0,1 +?CND1: EQUAL? CANDLES,PRSI /FALSE + EQUAL? PRSA,V?BURN,V?LAMP-ON \?CCL8 + FSET? CANDLES,RMUNGBIT \?CCL11 + PRINTR "O je, von den Kerzen ist nicht mehr viel %ubrig. Bestimmt nicht genug zum Brennen." +?CCL11: ZERO? PRSI \?CCL13 + FSET? MATCH,FLAMEBIT \?CCL16 + PRINTI "(mit dem Streichholz)" + CRLF + ICALL PERFORM,V?LAMP-ON,CANDLES,MATCH + RTRUE +?CCL16: PRINTI "Du solltest sagen, mit was man sie anzuenden soll." + CRLF + RETURN 2 +?CCL13: EQUAL? PRSI,MATCH \?CCL20 + FSET? MATCH,ONBIT \?CCL20 + FSET? CANDLES,ONBIT \?CCL25 + PRINTR "Die Kerzen sind schon angezuendet." +?CCL25: FSET CANDLES,ONBIT + PRINTI "Die Kerzen sind angezuendet." + CRLF + CALL2 INT,I-CANDLES + PUT STACK,0,1 + RTRUE +?CCL20: EQUAL? PRSI,TORCH \?CCL27 + FSET? CANDLES,ONBIT \?CCL30 + PRINTR "Du bemerkst noch rechtzeitig, da%s die Kerzen schon angezuendet sind." +?CCL30: PRINTI "Die Hitze die von der Fackel ausgeht, ist so stark, da%s die Kerzen schmelzen." + CRLF + CALL2 REMOVE-CAREFULLY,CANDLES + RSTACK +?CCL27: PRINTR "Du mu%st sie mit etwas anzuenden, das brennt, verstehst du." +?CCL8: EQUAL? PRSA,V?COUNT \?CCL32 + PRINTR "Mal sehen wieviele Dinge in einem Paar sind? Nicht verraten.Ich schaff das schon alleine." +?CCL32: EQUAL? PRSA,V?LAMP-OFF \?CCL34 + CALL2 INT,I-CANDLES + PUT STACK,0,0 + FSET? CANDLES,ONBIT \?CCL37 + PRINTI "Die Flamme ist aus." + FCLEAR CANDLES,ONBIT + FSET CANDLES,TOUCHBIT + CALL2 LIT?,HERE >LIT + ZERO? LIT \?CND38 + PRINTR " Es ist wirklich dunkel hier drin..." +?CND38: CRLF + RTRUE +?CCL37: PRINTR "Die Kerzen sind nicht an." +?CCL34: EQUAL? PRSA,V?PUT \?CCL41 + FSET? PRSI,BURNBIT \?CCL41 + PRINTR "Das w%are ungklug." +?CCL41: EQUAL? PRSA,V?EXAMINE \FALSE + FSET? CANDLES,ONBIT \?CCL48 + PRINTR "Die Kerzen brennen." +?CCL48: PRINTR "Die Kerzen sind nicht an." + + + .FUNCT CAVE2-ROOM:ANY:1:1,RARG + EQUAL? RARG,M-END \FALSE + IN? CANDLES,WINNER \FALSE + CALL2 ZPROB,50 + ZERO? STACK /FALSE + FSET? CANDLES,ONBIT \FALSE + CALL2 INT,I-CANDLES + PUT STACK,0,0 + FCLEAR CANDLES,ONBIT + PRINTI "Ein Windsto%s bl%ast die Kerzen aus!" + CRLF + CALL2 LIT?,HERE >LIT + ZERO? LIT \FALSE + PRINTR "Jetzt ist es restlos dunkel." + + + .FUNCT SWORD-FCN:ANY:0:0,G + EQUAL? PRSA,V?TAKE \?CCL3 + EQUAL? WINNER,ADVENTURER \?CCL3 + CALL QUEUE,I-SWORD,-1 + PUT STACK,0,1 + RFALSE +?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE + GETP SWORD,P?TVALUE >G + EQUAL? G,1 \?CCL10 + PRINTR "Dein Schwert leuchtet mit einem schwachen blauen Schimmer." +?CCL10: EQUAL? G,2 \FALSE + PRINTR "Dein Schwert leuchtet jetzt ganz hell." + + + .FUNCT BOOM-ROOM:ANY:1:1,RARG,DUMMY?,FLAME + EQUAL? RARG,M-END \FALSE + EQUAL? RARG,M-END \?CND4 + EQUAL? PRSA,V?BURN,V?LAMP-ON \?CND4 + EQUAL? PRSO,CANDLES,TORCH,MATCH \?CND4 + SET 'DUMMY?,TRUE-VALUE +?CND4: CALL2 HELD?,CANDLES + ZERO? STACK /?PRD13 + FSET? CANDLES,ONBIT /?CCL11 +?PRD13: CALL2 HELD?,TORCH + ZERO? STACK /?PRD16 + FSET? TORCH,ONBIT /?CCL11 +?PRD16: CALL2 HELD?,MATCH + ZERO? STACK /FALSE + FSET? MATCH,ONBIT \FALSE +?CCL11: ZERO? DUMMY? /?CCL23 + PRINTI "Wie traurig f%ur einen ehrgeizigen Abenteurer, da%s er " + ICALL2 EIN-ACC-PRINT,PRSO + PRINTI " in einem Raum anzuendet, der nach Gas riecht. Gl%ucklicherweise gibt es Gerechtigkeit auf dieser Welt." + CRLF + JUMP ?CND21 +?CCL23: PRINTI "Ach du lieber Himmel. Es scheint, als ob der Geruch der von diesem Zimmer kommt, Kohlenoxyd ist. Ich h%atte mir zweimal %uberlegt, ob ich hier einen brennenden Gegenstand hineintrage." + CRLF +?CND21: CALL2 JIGS-UP,STR?272 + RSTACK + + + .FUNCT BAT-D:ANY:0:1,FOO + LOC GARLIC + EQUAL? STACK,WINNER,HERE \?CCL3 + PRINTR "In der Ecke des Zimmers h%angt eine gro%se Vampirfledermaus an der Decke, die offensichtlich nicht alle f%unf auf der Latte hat und sich die Nase zuh%alt." +?CCL3: PRINTR "Eine gro%se Vampirfledermaus h%angt von der Decke, rauscht auf dich nieder." + + + .FUNCT BATS-ROOM:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \?CCL3 + PRINTR "Du bist in einem kleinen Zimmer, das nur eine T%ur nach Osten und S%uden hat." +?CCL3: EQUAL? RARG,M-ENTER \FALSE + ZERO? DEAD \FALSE + LOC GARLIC + EQUAL? STACK,WINNER,HERE /FALSE + ICALL1 V-LOOK + CRLF + CALL1 FLY-ME + RSTACK + + + .FUNCT MACHINE-ROOM-FCN:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "Dies ist ein gro%ser kalter Raum, dessen einziger Ausgang nach Norden f%uhrt. In einer Ecke steht eine Maschine, die an einen W%aschetrockner erinnert. Vorne ist ein Schalter, der mit EIN beschriftet ist. Der Schalter scheint nicht, f%ur Menschenh%ande gebaut zu sein (au%ser, wenn die Finger 1/2cm mal 1cm w%aren). Vorne an der Maschine ist eine gro%se Klappe, die " + FSET? MACHINE,OPENBIT \?CCL6 + PRINTI "ge%offnet" + JUMP ?CND4 +?CCL6: PRINTI "geschlossen" +?CND4: PRINTR " ist." + + + .FUNCT MACHINE-F:ANY:0:0 + EQUAL? PRSA,V?TAKE \?CCL3 + EQUAL? PRSO,MACHINE \?CCL3 + PRINTR "Das ist viel zu gro%s zum Tragen." +?CCL3: EQUAL? PRSA,V?OPEN \?CCL7 + FSET? MACHINE,OPENBIT \?CCL10 + CALL2 PICK-ONE,DUMMY + PRINT STACK + CRLF + RTRUE +?CCL10: FIRST? MACHINE \?CCL12 + PRINTI "Der Deckel %offnet sich, bringt " + ICALL2 PRINT-CONTENTS,MACHINE + PRINTI " zum Vorschein." + CRLF + FSET MACHINE,OPENBIT + RTRUE +?CCL12: PRINTI "Der Deckel %offnet sich." + CRLF + FSET MACHINE,OPENBIT + RTRUE +?CCL7: EQUAL? PRSA,V?CLOSE \?CCL14 + FSET? MACHINE,OPENBIT \?CCL17 + PRINTI "Der Deckel schlie%st sich." + CRLF + FCLEAR MACHINE,OPENBIT + RTRUE +?CCL17: CALL2 PICK-ONE,DUMMY + PRINT STACK + CRLF + RTRUE +?CCL14: EQUAL? PRSA,V?LAMP-ON \FALSE + ZERO? PRSI \?CCL22 + PRINTR "Es ist nicht klar, wie man sie mit den nackten H%anden aufmacht." +?CCL22: ICALL PERFORM,V?TURN,MACHINE-SWITCH,PRSI + RTRUE + + + .FUNCT MSWITCH-FUNCTION:ANY:0:0,O + EQUAL? PRSA,V?TURN \FALSE + EQUAL? PRSI,SCREWDRIVER \?CCL6 + FSET? MACHINE,OPENBIT \?CCL9 + PRINTR "Die Maschine scheint sich nicht r%uhren zu wollen." +?CCL9: PRINTI "Die Maschine wird lebendig (im %ubertragenen Sinne), indem sich faszinierende Lichter und haarstr%aubende Ger%ausche ergeben. Nach ein paar Sekunden h%ort der Zauber auf." + CRLF + IN? COAL,MACHINE \?PRG13 + ICALL2 REMOVE-CAREFULLY,COAL + MOVE DIAMOND,MACHINE + RTRUE +?PRG13: FIRST? MACHINE >O \?REP14 + ICALL2 REMOVE-CAREFULLY,O + JUMP ?PRG13 +?REP14: MOVE GUNK,MACHINE + RTRUE +?CCL6: PRINTI "Es scheint, da%s " + ICALL2 EIN-NOM-PRINT,PRSI + PRINTI " nicht ausreicht." + RTRUE + + + .FUNCT GUNK-FUNCTION:ANY:0:0 + ICALL2 REMOVE-CAREFULLY,GUNK + PRINTR "Die Schlacke war por%os und zerkr%umelt bei der Ber%uhrung zu Staub." + + + .FUNCT NO-OBJS:ANY:1:1,RARG,F + EQUAL? RARG,M-BEG \FALSE + FIRST? WINNER >F /?BOGUS4 +?BOGUS4: SET 'EMPTY-HANDED,TRUE-VALUE +?PRG5: ZERO? F /?REP6 + CALL2 WEIGHT,F + GRTR? STACK,4 \?CND7 + SET 'EMPTY-HANDED,FALSE-VALUE +?REP6: EQUAL? HERE,LOWER-SHAFT \FALSE + ZERO? LIT /FALSE + ICALL2 SCORE-UPD,LIGHT-SHAFT + SET 'LIGHT-SHAFT,0 + RFALSE +?CND7: NEXT? F >F /?PRG5 + JUMP ?PRG5 + + + .FUNCT SOUTH-TEMPLE-FCN:ANY:1:1,RARG + EQUAL? RARG,M-BEG \FALSE + IN? COFFIN,WINNER /?PRD5 + SET 'COFFIN-CURE,1 + RFALSE +?PRD5: SET 'COFFIN-CURE,0 + RFALSE + + + .FUNCT WHITE-CLIFFS-FUNCTION:ANY:1:1,RARG + EQUAL? RARG,M-END \FALSE + IN? INFLATED-BOAT,WINNER \?CCL6 + SET 'DEFLATE,FALSE-VALUE + RETURN DEFLATE +?CCL6: SET 'DEFLATE,TRUE-VALUE + RETURN DEFLATE + + + .FUNCT SCEPTRE-FUNCTION:ANY:0:0 + EQUAL? PRSA,V?RAISE,V?WAVE \FALSE + EQUAL? HERE,ARAGAIN-FALLS /?CTR5 + EQUAL? HERE,END-OF-RAINBOW \?CCL6 +?CTR5: ZERO? RAINBOW-FLAG \?CCL11 + FCLEAR POT-OF-GOLD,INVISIBLE + PRINTI "Pl%otzlich wird der Regenbogen zu einer Art Stra%se und erscheint begehbar (Treppen mit Gel%ander erwecken diesen Eindruck)." + CRLF + EQUAL? HERE,END-OF-RAINBOW \?CND12 + IN? POT-OF-GOLD,END-OF-RAINBOW \?CND12 + PRINTI "Ein glitzernder goldener Topf erscheint am Ende des Regenbogens." + CRLF +?CND12: SET 'RAINBOW-FLAG,TRUE-VALUE + RETURN RAINBOW-FLAG +?CCL11: ICALL ROB,ON-RAINBOW,WALL + PRINTI "Der Regenbogen scheint seine Ungew%ohnlichkeit verloren zu haben." + CRLF + SET 'RAINBOW-FLAG,FALSE-VALUE + RTRUE +?CCL6: EQUAL? HERE,ON-RAINBOW \?CCL17 + SET 'RAINBOW-FLAG,FALSE-VALUE + CALL2 JIGS-UP,STR?273 + RSTACK +?CCL17: PRINTR "Eine verwirrende Farbenpracht strahlt kurz von dem Zepter aus." + + + .FUNCT FALLS-ROOM:ANY:1:1,RARG + EQUAL? RARG,M-LOOK \FALSE + PRINTI "Du bist oben auf den Wiedermal F%allen. Ein gigantischer Wasserfall mit einem Abgrund von 15 Metern. Der einzige Pfad hier ist am Nordende." + CRLF + ZERO? RAINBOW-FLAG /?CCL6 + PRINTR "Ein voller Regenbogen steht %uber den F%allen." +?CCL6: PRINTR "Ein wundervoller Regenbogen kann %uber den F%allen und nach Westen gesehen werden." + + + .FUNCT RAINBOW-FCN:ANY:0:0 + EQUAL? PRSA,V?THROUGH,V?CROSS \?CCL3 + EQUAL? HERE,CANYON-VIEW \?CND4 + PRINTR "Von hier aus?!?" +?CND4: ZERO? RAINBOW-FLAG /?CCL8 + EQUAL? HERE,ARAGAIN-FALLS \?CCL11 + CALL2 GOTO,END-OF-RAINBOW + RSTACK +?CCL11: EQUAL? HERE,END-OF-RAINBOW \?CCL13 + CALL2 GOTO,ARAGAIN-FALLS + RSTACK +?CCL13: PRINTR "Du mu%st sagen, in welcher Richtung..." +?CCL8: PRINTR "Kannst du auf Wasserd%ampfen wandeln?" +?CCL3: EQUAL? PRSA,V?LOOK-UNDER \FALSE + PRINTR "Der Gletsch flie%st unter dem Regenbogen." + + + .FUNCT DBOAT-FUNCTION:ANY:0:0 + EQUAL? PRSA,V?PUT-ON,V?PUT \?CCL3 + EQUAL? PRSO,PUTTY \?CCL3 + CALL1 FIX-BOAT + RSTACK +?CCL3: EQUAL? PRSA,V?FILL,V?INFLATE \?CCL7 + PRINTR "Unm%oglich. Irgends%o ein Schwachkopf hat es durchl%ochert." +?CCL7: EQUAL? PRSA,V?PLUG \FALSE + EQUAL? PRSI,PUTTY \?CCL12 + CALL1 FIX-BOAT + RSTACK +?CCL12: CALL2 WITH-TELL,PRSI + RSTACK + + + .FUNCT FIX-BOAT:ANY:0:0 + PRINTI "Gro%sartig. Das Boot ist repariert." + CRLF + LOC PUNCTURED-BOAT + MOVE INFLATABLE-BOAT,STACK + CALL2 REMOVE-CAREFULLY,PUNCTURED-BOAT + RSTACK + + + .FUNCT RIVER-FUNCTION:ANY:0:0 + EQUAL? PRSA,V?PUT \?CCL3 + EQUAL? PRSI,RIVER \FALSE + EQUAL? PRSO,ME \?CCL9 + CALL2 JIGS-UP,STR?274 + RSTACK +?CCL9: EQUAL? PRSO,INFLATED-BOAT \?CCL11 + PRINTR "Du solltest in das Boot steigen, dann absto%sen." +?CCL11: FSET? PRSO,BURNBIT \?CCL13 + ICALL2 REMOVE-CAREFULLY,PRSO + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " schwimmt f%ur einen Moment, dann sinkt " + ICALL2 PRONOUN-NOM-PRINT,PRSO + PRINTR "." +?CCL13: ICALL2 REMOVE-CAREFULLY,PRSO + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " platscht ins Wasser, und gluck-gluck weg ist " + ICALL2 PRONOUN-NOM-PRINT,PRSO + PRINTR "." +?CCL3: EQUAL? PRSA,V?THROUGH,V?LEAP \FALSE + PRINTR "Eine Orientierung vor dem Sprung zeigt, da%s der Flu%s breit und gef%ahrlich ist, rei%sende Schnellen und halbverdeckte Felsten hat. Du entscheidest, vom Schwimmen abzusehen." + + + .FUNCT I-RIVER:ANY:0:0,RM + EQUAL? HERE,RIVER-1,RIVER-2,RIVER-3 /?CCL3 + EQUAL? HERE,RIVER-4,RIVER-5 /?CCL3 + CALL2 INT,I-RIVER + PUT STACK,0,0 + RTRUE +?CCL3: CALL LKP,HERE,RIVER-NEXT >RM + ZERO? RM /?CCL7 + PRINTI "Die Str%omung tr%agt dich flu%sabw%arts." + CRLF + CRLF + ICALL2 GOTO,RM + CALL LKP,HERE,RIVER-SPEEDS + CALL QUEUE,I-RIVER,STACK + PUT STACK,0,1 + RTRUE +?CCL7: CALL2 JIGS-UP,STR?275 + RSTACK + + + .FUNCT RBOAT-FUNCTION:ANY:0:1,RARG,TMP + EQUAL? RARG,M-ENTER,M-END,M-LOOK /FALSE + EQUAL? RARG,M-BEG \?CCL5 + EQUAL? PRSA,V?WALK \?CCL8 + EQUAL? PRSO,P?LANDEN,P?OST,P?WEST /FALSE + EQUAL? HERE,RESERVOIR \?CCL13 + EQUAL? PRSO,P?NORD,P?SUED /FALSE +?CCL13: EQUAL? HERE,IN-STREAM \?CCL17 + EQUAL? PRSO,P?SUED /FALSE +?CCL17: PRINTR "Lies die Anweisungen f%ur das Boot." +?CCL8: EQUAL? PRSA,V?LAUNCH \?CCL21 + EQUAL? HERE,RIVER-1,RIVER-2,RIVER-3 /?CTR23 + EQUAL? HERE,RIVER-4,RESERVOIR,IN-STREAM \?CCL24 +?CTR23: PRINTI "Du bist schon im " + EQUAL? HERE,RESERVOIR \?CCL29 + PRINTI "Reservoir" + JUMP ?CND27 +?CCL29: EQUAL? HERE,IN-STREAM \?CCL31 + PRINTI "Strom" + JUMP ?CND27 +?CCL31: PRINTI "Flu%s" +?CND27: PRINTR ", oder hast du das vergessen?" +?CCL24: CALL2 GO-NEXT,RIVER-LAUNCH >TMP + EQUAL? TMP,1 \?CCL33 + CALL LKP,HERE,RIVER-SPEEDS + CALL QUEUE,I-RIVER,STACK + PUT STACK,0,1 + RTRUE +?CCL33: EQUAL? TMP,2 /TRUE + PRINTR "Hier kannst du das Boot nicht ins Wasser lassen." +?CCL21: EQUAL? PRSA,V?DROP \?PRD39 + FSET? PRSO,WEAPONBIT /?CTR36 +?PRD39: EQUAL? PRSA,V?PUT \?PRD42 + FSET? PRSO,WEAPONBIT \?PRD42 + EQUAL? PRSI,INFLATED-BOAT /?CTR36 +?PRD42: EQUAL? PRSA,V?MUNG,V?ATTACK \?CCL37 + FSET? PRSI,WEAPONBIT \?CCL37 +?CTR36: ICALL2 REMOVE-CAREFULLY,INFLATED-BOAT + MOVE PUNCTURED-BOAT,HERE + ICALL ROB,INFLATED-BOAT,HERE + MOVE WINNER,HERE + SET 'OHERE,FALSE-VALUE + PRINTI "Es scheint, als ob " + EQUAL? PRSA,V?PUT,V?DROP \?CCL50 + ICALL2 DER-NOM-PRINT,PRSO + JUMP ?CND48 +?CCL50: ICALL2 DER-NOM-PRINT,PRSI +?CND48: PRINTI " dem Boot nicht bekommen ist, wie man von dem lauten hissenden Ger%ausch, das ihm entweicht, schlie%sen kann. Mit einem armseligen letzten Puff, geht die Luft aus dem Boot und du erleidest Schiffbruch." + CRLF + FSET? HERE,NONLANDBIT \TRUE + CRLF + EQUAL? HERE,RESERVOIR,IN-STREAM \?CCL55 + ICALL2 JIGS-UP,STR?276 + RTRUE +?CCL55: ICALL2 JIGS-UP,STR?277 + RTRUE +?CCL37: EQUAL? PRSA,V?LAUNCH \FALSE + PRINTR "Du bist nicht im Boot!" +?CCL5: EQUAL? PRSA,V?BOARD \?CCL59 + IN? SCEPTRE,WINNER /?CCL62 + IN? KNIFE,WINNER /?CCL62 + IN? SWORD,WINNER /?CCL62 + IN? RUSTY-KNIFE,WINNER /?CCL62 + IN? AXE,WINNER /?CCL62 + IN? STILETTO,WINNER \FALSE +?CCL62: PRINTI "Ei, ei! Etwas Scharfes scheint weggerutscht zu sein, und hat das Boot durchl%ochert. Die Luft entweicht unter Zischen, Murmeln und Fluchen aus dem Boot." + CRLF + ICALL2 REMOVE-CAREFULLY,INFLATED-BOAT + MOVE PUNCTURED-BOAT,HERE + ICALL2 THIS-IS-IT,PUNCTURED-BOAT + RTRUE +?CCL59: EQUAL? PRSA,V?FILL,V?INFLATE \?CCL70 + PRINTR "Wenn man es weiter aufpumpt, w%urde es wahrscheinlich platzen." +?CCL70: EQUAL? PRSA,V?DEFLATE \FALSE + LOC WINNER + EQUAL? STACK,INFLATED-BOAT \?CCL75 + PRINTR "Du kannst die Luft nicht aus dem Boot lassen, w%ahrend du drin sitzt." +?CCL75: IN? INFLATED-BOAT,HERE /?CCL77 + PRINTR "Das Boot mu%s an Land sein, um die Luft rauszulassen." +?CCL77: PRINTI "Die Luft kommt aus dem Boot." + CRLF + SET 'DEFLATE,TRUE-VALUE + ICALL2 REMOVE-CAREFULLY,INFLATED-BOAT + MOVE INFLATABLE-BOAT,HERE + CALL2 THIS-IS-IT,INFLATABLE-BOAT + RSTACK + + + .FUNCT IBOAT-FUNCTION:ANY:0:0 + EQUAL? PRSA,V?FILL,V?INFLATE \FALSE + IN? INFLATABLE-BOAT,HERE /?CCL6 + PRINTR "Das Boot mu%s an Land sein, um aufgeblasen zu werden." +?CCL6: EQUAL? PRSI,PUMP \?CCL8 + PRINTI "Das Boot nimmt Luft auf und erscheint seet%uchtig." + CRLF + FSET? BOAT-LABEL,TOUCHBIT /?CND9 + PRINTI "Ein beiges Schildchen liegt im Boot." + CRLF +?CND9: SET 'DEFLATE,FALSE-VALUE + ICALL2 REMOVE-CAREFULLY,INFLATABLE-BOAT + MOVE INFLATED-BOAT,HERE + CALL2 THIS-IS-IT,INFLATED-BOAT + RSTACK +?CCL8: EQUAL? PRSI,LUNGS \?CCL12 + PRINTR "Deine Lunge schafft es nicht, das Boot aufzublasen." +?CCL12: PRINTI "Mit " + ICALL2 EIN-DAT-PRINT,PRSI + PRINTR "? Du beliebst zu scherzen?!" + + + .FUNCT RIVR4-ROOM:ANY:1:1,RARG + EQUAL? RARG,M-END \FALSE + IN? BUOY,WINNER \FALSE + ZERO? BUOY-FLAG /FALSE + PRINTI "Die Boje f%uhlt sich irgendwie komisch an." + CRLF + SET 'BUOY-FLAG,FALSE-VALUE + RETURN BUOY-FLAG + + + .FUNCT SAND-FUNCTION:ANY:0:0 + EQUAL? PRSA,V?DIG \FALSE + EQUAL? PRSI,SHOVEL \FALSE + IGRTR? 'BEACH-DIG,3 \?CCL8 + SET 'BEACH-DIG,-1 + IN? SCARAB,HERE \?PEN9 + FSET SCARAB,INVISIBLE +?PEN9: CALL2 JIGS-UP,STR?278 + RSTACK +?CCL8: EQUAL? BEACH-DIG,3 \?CCL12 + FSET? SCARAB,INVISIBLE \FALSE + PRINTI "Du siehst hier einen Skarab%aus im Sand." + CRLF + ICALL2 THIS-IS-IT,SCARAB + FCLEAR SCARAB,INVISIBLE + RTRUE +?CCL12: GET BDIGS,BEACH-DIG + PRINT STACK + CRLF + RTRUE + + + .FUNCT TREE-ROOM:ANY:1:1,RARG,F + EQUAL? RARG,M-LOOK \?CCL3 + PRINTI "Du bist ungef%ahr 3 Meter %uber dem Boden umgeben von gro%sen %Asten. Du kannst den n%achsten Zweig %uber dir unm%oglich erreichen." + CRLF + FIRST? PATH >F \FALSE + NEXT? F \FALSE + PRINTI "Unter dir auf der Erde siehst du:" + ICALL2 PRINT-CONTENTS,PATH + PRINTR "." +?CCL3: EQUAL? RARG,M-BEG \?CCL10 + EQUAL? PRSA,V?CLIMB-DOWN \?CCL13 + EQUAL? PRSO,TREE,ROOMS \?CCL13 + CALL2 DO-WALK,P?RUNTER + RSTACK +?CCL13: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?CCL17 + EQUAL? PRSO,TREE \?CCL17 + CALL2 DO-WALK,P?RAUF + RSTACK +?CCL17: EQUAL? PRSA,V?DROP \FALSE + CALL1 IDROP + ZERO? STACK /TRUE + EQUAL? PRSO,NEST \?CCL26 + IN? EGG,NEST \?CCL26 + PRINTI "Das Nest f%allt auf die Erde, und das Ei f%allt heraus. Es ist ernstlich besch%adigt." + CRLF + ICALL2 REMOVE-CAREFULLY,EGG + MOVE BROKEN-EGG,PATH + RTRUE +?CCL26: EQUAL? PRSO,EGG \?CCL30 + PRINTI "Das Ei f%allt auf die Erde und springt auf. Es ist ernstlich besch%adigt." + MOVE EGG,PATH + ICALL1 BAD-EGG + CRLF + RTRUE +?CCL30: EQUAL? PRSO,WINNER,TREE /?CCL32 + MOVE PRSO,PATH + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " f%allt auf die Erde." +?CCL32: EQUAL? PRSA,V?LEAP \FALSE + CALL2 JIGS-UP,STR?282 + RSTACK +?CCL10: EQUAL? RARG,M-ENTER \FALSE + CALL QUEUE,I-FOREST-ROOM,-1 + PUT STACK,0,1 + RTRUE + + + .FUNCT EGG-OBJECT:ANY:0:0 + EQUAL? PRSA,V?MUNG,V?OPEN \?CCL3 + EQUAL? PRSO,EGG \?CCL3 + FSET? PRSO,OPENBIT \?CCL8 + PRINTR "Das Ei ist schon offen." +?CCL8: ZERO? PRSI \?CCL10 + PRINTR "Du hast weder das Werkzeug noch das Geschick." +?CCL10: EQUAL? PRSI,HANDS \?CCL12 + PRINTR "Ich bezweifle, da%s du das tun kannst, ohne es ernstlich zu besch%adigen." +?CCL12: FSET? PRSI,WEAPONBIT /?CTR13 + FSET? PRSI,TOOLBIT /?CTR13 + EQUAL? PRSA,V?MUNG \?CCL14 +?CTR13: PRINTI "Das Ei ist jetzt offen, aber die Tollpatschigkeit deines Versuches hat seinen %asthetischen Wert stark vermindert." + ICALL1 BAD-EGG + CRLF + RTRUE +?CCL14: FSET? PRSO,FIGHTBIT \?CCL19 + PRINTI "Und erst die Idee, " + ICALL2 DER-ACC-PRINT,PRSO + PRINTI " zu benutzen... Du %ubertriffst dich geradzu an originellen Einf%allen." + RTRUE +?CCL19: PRINTI "Die Idee " + ICALL2 DER-ACC-PRINT,PRSO + PRINTI " zu benutzen ist wirklich sehr originell." + CRLF + FSET PRSO,FIGHTBIT + RTRUE +?CCL3: EQUAL? PRSA,V?HATCH,V?CLIMB-ON \?CCL21 + PRINTI "Du f%uhlst ein Krachen unter deinen F%u%sen, und beim Nachsehen entdeckst du, da%s das Ei offen daliegt und schweren Schaden gelitten hat." + ICALL1 BAD-EGG + CRLF + RTRUE +?CCL21: EQUAL? PRSA,V?THROW,V?MUNG,V?OPEN \FALSE + EQUAL? PRSA,V?THROW \?CND24 + MOVE PRSO,HERE +?CND24: PRINTI "Es ist dir zwar gelungen, das Ei zu %offnen, aber du hast es mit deinen rauhen Methoden besch%adigt." + ICALL1 BAD-EGG + CRLF + RTRUE + + + .FUNCT BAD-EGG:ANY:0:0,L + IN? CANARY,EGG \?CCL3 + PRINTC 32 + GETP BROKEN-CANARY,P?FDESC + PRINT STACK + JUMP ?CND1 +?CCL3: ICALL2 REMOVE-CAREFULLY,BROKEN-CANARY +?CND1: LOC EGG + MOVE BROKEN-EGG,STACK + ICALL2 REMOVE-CAREFULLY,EGG + RTRUE + + + .FUNCT CANARY-OBJECT:ANY:0:0 + EQUAL? PRSA,V?WIND \FALSE + EQUAL? PRSO,CANARY \?CCL6 + ZERO? SING-SONG \?CCL9 + CALL1 FOREST-ROOM? + ZERO? STACK /?CCL9 + PRINTI "Der Kanarienvogel schmettert eine Arie, aus einer l%angstvergessenen Oper. Er singt falsch. Aus dem Gr%unen fliegt ein lieblicher Singvogel. Er l%a%st sich auf einem Zweig direkt %uber deinem Kopf nieder und %offnet den Schnabel, um zu singen. Als er das tut, f%allt eine sch%one goldene Flitterkugel aus dem Schnabel, trifft deinen Kopf und landet glitzernd im Gras." + CRLF + SET 'SING-SONG,TRUE-VALUE + EQUAL? HERE,UP-A-TREE \?CCL14 + PUSH PATH + JUMP ?CND12 +?CCL14: PUSH HERE +?CND12: MOVE BAUBLE,STACK + RTRUE +?CCL9: PRINTR "Der Kanarienvogel zwitschert f%ur eine kurze Zeit munter, wenn auch etwas blechern." +?CCL6: PRINTR "Aus dem Innern des Kanarienvogels l%a%st sich ein unangenehmes mahlendes Ger%ausch vernehmen." + + + .FUNCT FOREST-ROOM?:ANY:0:0 + EQUAL? HERE,FOREST-1,FOREST-2,FOREST-3 /TRUE + EQUAL? HERE,PATH,UP-A-TREE /TRUE + RFALSE + + + .FUNCT I-FOREST-ROOM:ANY:0:0 + CALL1 FOREST-ROOM? + ZERO? STACK \?CCL3 + CALL2 INT,I-FOREST-ROOM + PUT STACK,0,0 + RFALSE +?CCL3: RANDOM 100 + GRTR? 15,STACK \FALSE + PRINTR "In der Ferne h%orst du das Zwitschern eines Singvogels." + + + .FUNCT FOREST-ROOM:ANY:1:1,RARG + EQUAL? RARG,M-ENTER \?CCL3 + CALL QUEUE,I-FOREST-ROOM,-1 + PUT STACK,0,1 + RTRUE +?CCL3: EQUAL? RARG,M-BEG \FALSE + EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-FOO \FALSE + EQUAL? PRSO,TREE \FALSE + CALL2 DO-WALK,P?RAUF + RSTACK + + + .FUNCT WCLIF-OBJECT:ANY:0:0 + EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-DOWN,V?CLIMB-UP \FALSE + PRINTR "Der Felsvorsprung ist zu steil zum Erklettern." + + + .FUNCT CLIFF-OBJECT:ANY:0:0 + EQUAL? PRSA,V?LEAP /?CTR2 + EQUAL? PRSA,V?PUT \?CCL3 + EQUAL? PRSO,ME \?CCL3 +?CTR2: PRINTR "Das w%are sehr gewagt. Vielleicht sogar t%odlich." +?CCL3: EQUAL? PRSI,CLIMBABLE-CLIFF \FALSE + EQUAL? PRSA,V?THROW-OFF,V?PUT \FALSE + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " rollt in den Flu%s und gluck-gluck weg ist es." + CRLF + CALL2 REMOVE-CAREFULLY,PRSO + RSTACK + + + .FUNCT ROPE-FUNCTION:ANY:0:0,RLOC + EQUAL? HERE,DOME-ROOM /?CCL3 + SET 'DOME-FLAG,FALSE-VALUE + EQUAL? PRSA,V?TIE \FALSE + PRINTR "Daran kannst du das Seil nicht binden." +?CCL3: EQUAL? PRSA,V?TIE \?CCL8 + EQUAL? PRSI,RAILING \FALSE + ZERO? DOME-FLAG /?CCL14 + PRINTR "Das Seil ist schon darangebunden." +?CCL14: PRINTI "Das Seil f%allt %uber die Seite und reicht bis zu 3 Metern %uber dem Boden." + CRLF + SET 'DOME-FLAG,TRUE-VALUE + FSET ROPE,NDESCBIT + LOC ROPE >RLOC + ZERO? RLOC /?CCL16 + IN? RLOC,ROOMS /TRUE +?CCL16: MOVE ROPE,HERE + RTRUE +?CCL8: EQUAL? PRSA,V?CLIMB-DOWN \?CCL20 + EQUAL? PRSO,ROPE,ROOMS \?CCL20 + ZERO? DOME-FLAG /?CCL20 + CALL2 DO-WALK,P?RUNTER + RSTACK +?CCL20: EQUAL? PRSA,V?TIE-UP \?CCL25 + EQUAL? ROPE,PRSI \?CCL25 + FSET? PRSO,ACTORBIT \?CCL30 + GETP PRSO,P?STRENGTH + LESS? STACK,0 \?CCL33 + PRINTI "Dein Versuch " + ICALL2 DER-ACC-PRINT,PRSO + PRINTI " zu fesseln, weckt ihn auf." + CALL2 AWAKEN,PRSO + RSTACK +?CCL33: ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " wehrt sich, und du kannst ihn nicht fesseln." +?CCL30: PRINTI "Warum w%urdest du " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " fesseln?" +?CCL25: EQUAL? PRSA,V?UNTIE \?CCL35 + ZERO? DOME-FLAG /?CCL38 + SET 'DOME-FLAG,FALSE-VALUE + FCLEAR ROPE,NDESCBIT + PRINTR "Das Seil ist jetzt aufgebunden." +?CCL38: PRINTR "Es ist an nichts gebunden." +?CCL35: EQUAL? PRSA,V?DROP \?CCL40 + EQUAL? HERE,DOME-ROOM \?CCL40 + ZERO? DOME-FLAG \?CCL40 + MOVE ROPE,TORCH-ROOM + PRINTR "Das Seil f%allt sanft nach unten auf die Erde." +?CCL40: EQUAL? PRSA,V?TAKE \FALSE + ZERO? DOME-FLAG /FALSE + PRINTR "Das Seil ist an das Gel%ander gebunden." + + + .FUNCT UNTIE-FROM:ANY:0:0 + EQUAL? PRSO,ROPE \?CCL3 + ZERO? DOME-FLAG /?CCL3 + EQUAL? PRSI,RAILING \?CCL3 + CALL PERFORM,V?UNTIE,PRSO + RSTACK +?CCL3: PRINTR "Es ist nicht daran gebunden." + + + .FUNCT SLIDE-FUNCTION:ANY:0:0 + EQUAL? PRSA,V?CLIMB-DOWN,V?CLIMB-UP,V?THROUGH /?CTR2 + EQUAL? PRSA,V?CLIMB-FOO /?CTR2 + EQUAL? PRSA,V?PUT \?CCL3 + EQUAL? PRSO,ME \?CCL3 +?CTR2: EQUAL? HERE,CELLAR \?CCL11 + ICALL2 DO-WALK,P?WEST + RTRUE +?CCL11: PRINTI "Das Seil ist an das Gel%ander gebunden..." + CRLF + CALL2 GOTO,CELLAR + RSTACK +?CCL3: EQUAL? PRSA,V?PUT \FALSE + CALL2 SLIDER,PRSO + RSTACK + + + .FUNCT SLIDER:ANY:1:1,OBJ + FSET? OBJ,TAKEBIT \?CCL3 + ICALL2 DER-NOM-CAP-PRINT,OBJ + PRINTI " f%allt auf die Rutschbahn und ist weg." + CRLF + EQUAL? OBJ,WATER \?CCL6 + CALL2 REMOVE-CAREFULLY,OBJ + RSTACK +?CCL6: MOVE OBJ,CELLAR + RTRUE +?CCL3: CALL2 PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE + + + .FUNCT SANDWICH-BAG-FCN:ANY:0:0 + EQUAL? PRSA,V?SMELL \FALSE + IN? LUNCH,PRSO \FALSE + PRINTR "Es riecht nach scharfen Pepperoni." + + + .FUNCT DEAD-FUNCTION:ANY:0:1,FOO,M + EQUAL? PRSA,V?WALK \?CCL3 + EQUAL? HERE,TIMBER-ROOM \FALSE + EQUAL? PRSO,P?WEST \FALSE + PRINTR "In Deinem Zustand kannst du hier nicht rein." +?CCL3: EQUAL? PRSA,V?SUPER-BRIEF,V?VERBOSE,V?BRIEF /FALSE + EQUAL? PRSA,V?RESTORE,V?SAVE,V?VERSION /FALSE + EQUAL? PRSA,V?RESTART,V?QUIT /FALSE + EQUAL? PRSA,V?ALARM,V?MUNG,V?ATTACK /?CTR14 + EQUAL? PRSA,V?SWING \?CCL15 +?CTR14: PRINTR "In deinem Zustand sind deine Angriffe sinnlos." +?CCL15: EQUAL? PRSA,V?EAT,V?CLOSE,V?OPEN /?CTR18 + EQUAL? PRSA,V?DEFLATE,V?INFLATE,V?DRINK /?CTR18 + EQUAL? PRSA,V?TIE,V?BURN,V?TURN /?CTR18 + EQUAL? PRSA,V?RUB,V?UNTIE \?CCL19 +?CTR18: PRINTR "Sogar das %ubersteigt deine F%ahigkeiten." +?CCL19: EQUAL? PRSA,V?WAIT \?CCL25 + PRINTR "Warum nicht.? Du hast eine ganze Ewigkeit." +?CCL25: EQUAL? PRSA,V?LAMP-ON \?CCL27 + PRINTR "Du brauchst kein Licht, das dir den Weg leuchtet." +?CCL27: EQUAL? PRSA,V?SCORE \?CCL29 + PRINTR "Du bist tot! Wie kannst du da an den Stand des Spieles denken?" +?CCL29: EQUAL? PRSA,V?RUB,V?TAKE \?CCL31 + PRINTR "Deine Hand geht durch das Ding direkt hindurch." +?CCL31: EQUAL? PRSA,V?INVENTORY,V?THROW,V?DROP \?CCL33 + PRINTR "Du besitzt garnichts." +?CCL33: EQUAL? PRSA,V?DIAGNOSE \?CCL35 + PRINTR "Du bist tot." +?CCL35: EQUAL? PRSA,V?LOOK \?CCL37 + PRINTI "Der Raum sieht fremd und unirdisch aus" + FIRST? HERE /?CCL40 + PRINTC 46 + JUMP ?CND38 +?CCL40: PRINTI " und die Dinge erscheinen unwirklich." +?CND38: CRLF + FSET? HERE,ONBIT /?CND41 + PRINTI "Obwohl es hier keine Lichtquelle gibt, erscheint der Raum doch einigermassen beleuchtet." + CRLF +?CND41: CRLF + RFALSE +?CCL37: EQUAL? PRSA,V?PRAY \?CCL44 + EQUAL? HERE,SOUTH-TEMPLE \?CCL47 + FCLEAR LAMP,INVISIBLE + PUTP WINNER,P?ACTION,0 + SET 'ALWAYS-LIT,FALSE-VALUE + SET 'DEAD,FALSE-VALUE + IN? TROLL,TROLL-ROOM \?CND48 + SET 'TROLL-FLAG,FALSE-VALUE +?CND48: PRINTI "Aus der Ferne ert%ont der Schall einer einsamen Trompete. Der Raum wird sehr hell und du f%uhlst dich k%orperlos. In einem Moment weicht die Helligkeit, und du f%uhlst dich, als ob du dich von einem langen Schlaf im Walde erhebst. Aus der Ferne h%orst du den schwachen Gesang eines Singvogels und das Rauschen des Waldes." + CRLF + CRLF + CALL2 GOTO,FOREST-1 + RSTACK +?CCL47: PRINTR "Deine Gebete werden nicht erh%ort." +?CCL44: PRINTI "Sogar das kannst du nicht." + CRLF + SET 'P-CONT,FALSE-VALUE + RETURN 2 + + + .FUNCT LAKE-PSEUDO:ANY:0:0 + ZERO? LOW-TIDE /?CCL3 + PRINTR "Von dem See ist nicht viel %ubrig..." +?CCL3: EQUAL? PRSA,V?CROSS \?CCL5 + PRINTR "Er ist zu breit zum %Uberqueren." +?CCL5: EQUAL? PRSA,V?THROUGH \FALSE + PRINTR "Du kannst in diesem See nicht schwimmen." + + + .FUNCT STREAM-PSEUDO:ANY:0:0 + EQUAL? PRSA,V?THROUGH,V?SWIM \?CCL3 + PRINTR "Du kannst in dem Flu%s nicht schwimmen." +?CCL3: EQUAL? PRSA,V?CROSS \FALSE + PRINTR "Die andere Seite ist eine abrupte Felswand." + + + .FUNCT CHASM-PSEUDO:ANY:0:0 + EQUAL? PRSA,V?LEAP /?CTR2 + EQUAL? PRSA,V?PUT \?CCL3 + EQUAL? PRSO,ME \?CCL3 +?CTR2: PRINTR "Du siehst dich um, bevor du springst, und erkennst, da%s du nie %uberleben w%urdest." +?CCL3: EQUAL? PRSA,V?CROSS \?CCL9 + PRINTR "Es ist zu weit zum Springen, und es gibt keine Br%ucke." +?CCL9: EQUAL? PRSA,V?THROW-OFF,V?PUT \FALSE + EQUAL? PRSI,CHASM \FALSE + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " f%allt au%ser Sichtweite in die Spalte." + CRLF + CALL2 REMOVE-CAREFULLY,PRSO + RSTACK + + + .FUNCT DOME-PSEUDO:ANY:0:0 + EQUAL? PRSA,V?KISS \FALSE + PRINTR "Nein." + + + .FUNCT GATE-PSEUDO:ANY:0:0 + EQUAL? PRSA,V?THROUGH \?CCL3 + ICALL2 DO-WALK,P?HINEIN + RTRUE +?CCL3: PRINTR "Das Tor ist von einer unsichtbaren Kraft gesch%utzt. Deine Z%ahne schmerzen, wenn du es ber%uhrst." + + + .FUNCT DOOR-PSEUDO:ANY:0:0 + EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3 + PRINTR "Die T%ur gibt nicht nach." +?CCL3: EQUAL? PRSA,V?THROUGH \FALSE + CALL2 DO-WALK,P?SUED + RSTACK + + + .FUNCT PAINT-PSEUDO:ANY:0:0 + EQUAL? PRSA,V?MUNG \FALSE + PRINTR "Ein bi%schen Farbe splittert weg, zeigt mehr Farbe." + + + .FUNCT GAS-PSEUDO:ANY:0:0 + EQUAL? PRSA,V?SMELL \FALSE + PRINTR "Es riecht hier nach Kohlenoxyd." + + + .FUNCT DO-FIGHT:ANY:1:1,LEN,CNT,RES,O,OO,OUT +?PRG1: SET 'CNT,0 +?PRG3: INC 'CNT + EQUAL? CNT,LEN \?CND5 + SET 'RES,TRUE-VALUE + RTRUE +?CND5: GET VILLAINS,CNT >OO + GET OO,V-VILLAIN >O + FSET? O,FIGHTBIT \?PRG3 + GETP O,P?ACTION + CALL STACK,F-BUSY? + ZERO? STACK \?PRG3 + CALL VILLAIN-BLOW,OO,OUT >RES + ZERO? RES \?CCL11 + SET 'RES,FALSE-VALUE + ZERO? RES /TRUE + ZERO? OUT /TRUE + DEC 'OUT + ZERO? OUT \?PRG1 + RTRUE +?CCL11: EQUAL? RES,UNCONSCIOUS \?PRG3 + RANDOM 3 + ADD 1,STACK >OUT + JUMP ?PRG3 + + + .FUNCT REMARK:ANY:3:3,REMARK,D,W,LEN,CNT,STR + GET REMARK,0 >LEN +?PRG1: IGRTR? 'CNT,LEN /?REP2 + GET REMARK,CNT >STR + EQUAL? STR,WEP-NOM,WEP-NOM-CAP,WEP-ACC /?CTR6 + EQUAL? STR,WEP-ACC-CAP,WEP-DAT,DER-WEP-ACC \?CCL7 +?CTR6: EQUAL? STR,WEP-NOM \?CCL12 + PRINTI "dein" + FSET? W,DERBIT /?CND10 + PRINTC 101 + JUMP ?CND10 +?CCL12: EQUAL? STR,WEP-NOM-CAP \?CCL17 + PRINTI "Dein" + FSET? W,DERBIT /?CND10 + FSET? W,DASBIT /?CND10 + PRINTC 101 + JUMP ?CND10 +?CCL17: EQUAL? STR,WEP-ACC \?CCL23 + PRINTI "dein" + FSET? W,DERBIT \?CCL26 + PRINTI "en" + JUMP ?CND10 +?CCL26: FSET? W,DASBIT /?CND10 + PRINTC 101 + JUMP ?CND10 +?CCL23: EQUAL? STR,WEP-ACC-CAP \?CCL29 + PRINTI "Dein" + FSET? W,DERBIT \?CCL32 + PRINTI "en" + JUMP ?CND10 +?CCL32: FSET? W,DASBIT /?CND10 + PRINTC 101 + JUMP ?CND10 +?CCL29: EQUAL? STR,WEP-DAT \?CCL35 + PRINTI "dein" + FSET? W,DERBIT /?CTR37 + FSET? W,DASBIT \?CCL38 +?CTR37: PRINTI "em" + JUMP ?CND10 +?CCL38: PRINTI "er" + JUMP ?CND10 +?CCL35: EQUAL? STR,DER-WEP-ACC \?CND10 + ICALL2 DER-ACC-PRINT,W +?CND10: EQUAL? STR,DER-WEP-ACC /?PRG1 + PRINTC 32 + ICALL DPRINT,W,FALSE-VALUE + JUMP ?PRG1 +?CCL7: EQUAL? STR,DEF-NOM,DEF-NOM-CAP,DEF-ACC /?CTR44 + EQUAL? STR,DEF-DAT-CAP \?CCL45 +?CTR44: EQUAL? STR,DEF-NOM \?CCL50 + PRINTI "der" + JUMP ?CND48 +?CCL50: EQUAL? STR,DEF-NOM-CAP \?CCL52 + PRINTI "Der" + JUMP ?CND48 +?CCL52: EQUAL? STR,DEF-ACC \?CCL54 + PRINTI "den" + JUMP ?CND48 +?CCL54: EQUAL? STR,DEF-DAT-CAP \?CND48 + PRINTI "Dem" +?CND48: PRINTC 32 + ICALL DPRINT,D,FALSE-VALUE + JUMP ?PRG1 +?CCL45: PRINT STR + JUMP ?PRG1 +?REP2: CRLF + RTRUE + + + .FUNCT FIGHT-STRENGTH:ANY:0:1,ADJUST?,S + ASSIGNED? 'ADJUST? /?CND1 + SET 'ADJUST?,TRUE-VALUE +?CND1: DIV SCORE-MAX,5 + DIV SCORE,STACK + ADD STRENGTH-MIN,STACK >S + ZERO? ADJUST? /?CCL5 + GETP WINNER,P?STRENGTH + ADD S,STACK + RSTACK +?CCL5: RETURN S + + + .FUNCT VILLAIN-STRENGTH:ANY:1:1,OO,VILLAIN,OD,TMP + GET OO,V-VILLAIN >VILLAIN + GETP VILLAIN,P?STRENGTH >OD + LESS? OD,0 /?CND1 + EQUAL? VILLAIN,THIEF \?CND3 + ZERO? THIEF-ENGROSSED /?CND3 + GRTR? OD,2 \?CND7 + SET 'OD,2 +?CND7: SET 'THIEF-ENGROSSED,FALSE-VALUE +?CND3: ZERO? PRSI \?PRD12 + RETURN OD +?PRD12: FSET? PRSI,WEAPONBIT /?PRD13 + RETURN OD +?PRD13: GET OO,V-BEST + EQUAL? STACK,PRSI /?CCL10 + RETURN OD +?CCL10: GET OO,V-BEST-ADV + SUB OD,STACK >TMP + LESS? TMP,1 \?CND14 + SET 'TMP,1 +?CND14: SET 'OD,TMP +?CND1: RETURN OD + + + .FUNCT FIND-WEAPON:ANY:1:1,O,W + FIRST? O >W /?BOGUS1 +?BOGUS1: ZERO? W /FALSE +?PRG4: EQUAL? W,STILETTO,AXE,SWORD /?CTR7 + EQUAL? W,KNIFE,RUSTY-KNIFE \?CCL8 +?CTR7: RETURN W +?CCL8: NEXT? W >W /?PRG4 + RFALSE + + + .FUNCT VILLAIN-BLOW:ANY:2:2,OO,OUT?,VILLAIN,REMARKS,DWEAPON,ATT,DEF,OA,OD,TBL,RES,NWEAPON + GET OO,V-VILLAIN >VILLAIN + GET OO,V-MSGS >REMARKS + FCLEAR WINNER,STAGGERED + FSET? VILLAIN,STAGGERED \?CND1 + ICALL2 DER-NOM-CAP-PRINT,VILLAIN + PRINTI " gewinnt langsam die Kontrolle %uber seine F%u%se." + CRLF + FCLEAR VILLAIN,STAGGERED + RTRUE +?CND1: CALL2 VILLAIN-STRENGTH,OO >ATT + SET 'OA,ATT + CALL1 FIGHT-STRENGTH >DEF + GRTR? DEF,0 \TRUE + CALL2 FIGHT-STRENGTH,FALSE-VALUE >OD + CALL2 FIND-WEAPON,WINNER >DWEAPON + LESS? DEF,0 \?CCL7 + SET 'RES,KILLED + JUMP ?CND5 +?CCL7: EQUAL? DEF,1 \?CCL10 + GRTR? ATT,2 \?CND11 + SET 'ATT,3 +?CND11: SUB ATT,1 + GET DEF1-RES,STACK >TBL + JUMP ?CND8 +?CCL10: EQUAL? DEF,2 \?CCL14 + GRTR? ATT,3 \?CND15 + SET 'ATT,4 +?CND15: SUB ATT,1 + GET DEF2-RES,STACK >TBL + JUMP ?CND8 +?CCL14: GRTR? DEF,2 \?CND8 + SUB ATT,DEF >ATT + LESS? ATT,-1 \?CCL20 + SET 'ATT,-2 + JUMP ?CND18 +?CCL20: GRTR? ATT,1 \?CND18 + SET 'ATT,2 +?CND18: ADD ATT,2 + GET DEF3-RES,STACK >TBL +?CND8: RANDOM 9 + SUB STACK,1 + GET TBL,STACK >RES + ZERO? OUT? /?CND22 + EQUAL? RES,STAGGER \?CCL26 + SET 'RES,HESITATE + JUMP ?CND22 +?CCL26: SET 'RES,SITTING-DUCK +?CND22: EQUAL? RES,STAGGER \?CND27 + ZERO? DWEAPON /?CND27 + CALL2 ZPROB,25 + ZERO? STACK /?CND27 + SET 'RES,LOSE-WEAPON +?CND27: SUB RES,1 + GET REMARKS,STACK + CALL2 RANDOM-ELEMENT,STACK + ICALL REMARK,STACK,WINNER,DWEAPON +?CND5: EQUAL? RES,MISSED /?CND32 + EQUAL? RES,HESITATE /?CND32 + EQUAL? RES,UNCONSCIOUS /?CND32 + EQUAL? RES,KILLED /?CTR37 + EQUAL? RES,SITTING-DUCK \?CCL38 +?CTR37: SET 'DEF,0 + JUMP ?CND32 +?CCL38: EQUAL? RES,LIGHT-WOUND \?CCL42 + DLESS? 'DEF,0 \?CND43 + SET 'DEF,0 +?CND43: GRTR? LOAD-ALLOWED,50 \?CND32 + SUB LOAD-ALLOWED,10 >LOAD-ALLOWED + JUMP ?CND32 +?CCL42: EQUAL? RES,SERIOUS-WOUND \?CCL48 + SUB DEF,2 >DEF + LESS? DEF,0 \?CND49 + SET 'DEF,0 +?CND49: GRTR? LOAD-ALLOWED,50 \?CND32 + SUB LOAD-ALLOWED,20 >LOAD-ALLOWED + JUMP ?CND32 +?CCL48: EQUAL? RES,STAGGER \?CCL54 + FSET WINNER,STAGGERED + JUMP ?CND32 +?CCL54: MOVE DWEAPON,HERE + CALL2 FIND-WEAPON,WINNER >NWEAPON + ZERO? NWEAPON /?CND32 + PRINTI "Gl%ucklicherweise hast du noch " + ICALL2 EIN-ACC-PRINT,NWEAPON + PRINTC 46 + CRLF +?CND32: CALL WINNER-RESULT,DEF,RES,OD + RSTACK + + + .FUNCT HERO-BLOW:ANY:0:0,OO,VILLAIN,OUT?,DWEAPON,ATT,DEF,CNT,OA,OD,TBL,RES,NWEAPON,LEN + GET VILLAINS,0 >LEN +?PRG1: INC 'CNT + EQUAL? CNT,LEN /?REP2 + GET VILLAINS,CNT >OO + GET OO,V-VILLAIN + EQUAL? STACK,PRSO \?PRG1 +?REP2: FSET PRSO,FIGHTBIT + FSET? WINNER,STAGGERED \?CND7 + PRINTI "Du erholst dich immer noch von dem letzten Hieb, so da%s dein Angriff keine Wirkung hat." + CRLF + FCLEAR WINNER,STAGGERED + RTRUE +?CND7: CALL1 FIGHT-STRENGTH >ATT + LESS? ATT,1 \?CND9 + SET 'ATT,1 +?CND9: SET 'OA,ATT + GET OO,V-VILLAIN >VILLAIN + CALL2 VILLAIN-STRENGTH,OO >DEF + SET 'OD,DEF + ZERO? OD \?CND11 + EQUAL? PRSO,WINNER \?CND13 + CALL2 JIGS-UP,STR?283 + RSTACK +?CND13: ICALL2 DER-ACC-CAP-PRINT,VILLAIN + PRINTR " angreifen ist sinnlos." +?CND11: CALL2 FIND-WEAPON,VILLAIN >DWEAPON + ZERO? DWEAPON /?CTR16 + LESS? DEF,0 \?CCL17 +?CTR16: ICALL2 DER-NOM-CAP-PRINT,VILLAIN + PRINTI ", wer " + LESS? DEF,0 \?CCL22 + PRINTI "bewu%stlos" + JUMP ?CND20 +?CCL22: PRINTI "unbewaffnet" +?CND20: PRINTI " ist, kann sich nicht wehren. " + ICALL2 PRONOUN-NOM-CAP-PRINT,VILLAIN + PRINTI " stirbt." + CRLF + SET 'RES,KILLED + JUMP ?CND15 +?CCL17: EQUAL? DEF,1 \?CCL25 + GRTR? ATT,2 \?CND26 + SET 'ATT,3 +?CND26: SUB ATT,1 + GET DEF1-RES,STACK >TBL + JUMP ?CND23 +?CCL25: EQUAL? DEF,2 \?CCL29 + GRTR? ATT,3 \?CND30 + SET 'ATT,4 +?CND30: SUB ATT,1 + GET DEF2-RES,STACK >TBL + JUMP ?CND23 +?CCL29: GRTR? DEF,2 \?CND23 + SUB ATT,DEF >ATT + LESS? ATT,-1 \?CCL35 + SET 'ATT,-2 + JUMP ?CND33 +?CCL35: GRTR? ATT,1 \?CND33 + SET 'ATT,2 +?CND33: ADD ATT,2 + GET DEF3-RES,STACK >TBL +?CND23: RANDOM 9 + SUB STACK,1 + GET TBL,STACK >RES + ZERO? OUT? /?CND37 + EQUAL? RES,STAGGER \?CCL41 + SET 'RES,HESITATE + JUMP ?CND37 +?CCL41: SET 'RES,SITTING-DUCK +?CND37: EQUAL? RES,STAGGER \?CND42 + ZERO? DWEAPON /?CND42 + RANDOM 100 + GRTR? 25,STACK \?CND42 + SET 'RES,LOSE-WEAPON +?CND42: SUB RES,1 + GET HERO-MELEE,STACK + CALL2 RANDOM-ELEMENT,STACK + ICALL REMARK,STACK,PRSO,PRSI +?CND15: EQUAL? RES,MISSED /?CND47 + EQUAL? RES,HESITATE /?CND47 + EQUAL? RES,UNCONSCIOUS \?CCL52 + SUB 0,DEF >DEF + JUMP ?CND47 +?CCL52: EQUAL? RES,KILLED /?CTR53 + EQUAL? RES,SITTING-DUCK \?CCL54 +?CTR53: SET 'DEF,0 + JUMP ?CND47 +?CCL54: EQUAL? RES,LIGHT-WOUND \?CCL58 + DLESS? 'DEF,0 \?CND47 + SET 'DEF,0 + JUMP ?CND47 +?CCL58: EQUAL? RES,SERIOUS-WOUND \?CCL62 + SUB DEF,2 >DEF + LESS? DEF,0 \?CND47 + SET 'DEF,0 + JUMP ?CND47 +?CCL62: EQUAL? RES,STAGGER \?CCL66 + FSET PRSO,STAGGERED + JUMP ?CND47 +?CCL66: FCLEAR DWEAPON,NDESCBIT + FSET DWEAPON,WEAPONBIT + MOVE DWEAPON,HERE + ICALL2 THIS-IS-IT,DWEAPON +?CND47: CALL VILLAIN-RESULT,PRSO,DEF,RES + RSTACK + + + .FUNCT WINNER-RESULT:ANY:3:3,DEF,RES,OD + ZERO? DEF \?CCL3 + PUSH -10000 + JUMP ?CND1 +?CCL3: SUB DEF,OD +?CND1: PUTP WINNER,P?STRENGTH,STACK + SUB DEF,OD + LESS? STACK,0 \?CND4 + CALL QUEUE,I-CURE,CURE-WAIT + PUT STACK,0,1 +?CND4: CALL1 FIGHT-STRENGTH + GRTR? STACK,0 /?CCL8 + CALL2 FIGHT-STRENGTH,FALSE-VALUE + SUB 0,STACK + ADD 1,STACK + PUTP WINNER,P?STRENGTH,STACK + ICALL2 JIGS-UP,STR?284 + RFALSE +?CCL8: RETURN RES + + + .FUNCT VILLAIN-RESULT:ANY:3:3,VILLAIN,DEF,RES + PUTP VILLAIN,P?STRENGTH,DEF + ZERO? DEF \?CCL3 + FCLEAR VILLAIN,FIGHTBIT + PRINTI "Fast gleichzeitig mit dem letzten Atemzug des " + ICALL DPRINT,VILLAIN,FALSE-VALUE + EQUAL? VILLAIN,THIEF \?CCL6 + PRINTI "es" + JUMP ?CND4 +?CCL6: PRINTC 115 +?CND4: PRINTI " verh%ullt ihn eine Wolke aus gespenstigem schwarzem Nebel, und wenn der Nebel sich hebt, ist die Leiche verschwunden." + CRLF + ICALL2 REMOVE-CAREFULLY,VILLAIN + GETP VILLAIN,P?ACTION + ICALL STACK,F-DEAD + RETURN RES +?CCL3: EQUAL? RES,UNCONSCIOUS \?CCL8 + GETP VILLAIN,P?ACTION + ICALL STACK,F-UNCONSCIOUS + RETURN RES +?CCL8: RETURN RES + + + .FUNCT WINNING?:ANY:1:1,V,VS,PS + GETP V,P?STRENGTH >VS + CALL1 FIGHT-STRENGTH + SUB VS,STACK >PS + GRTR? PS,3 \?CCL3 + RANDOM 100 + GRTR? 90,STACK /TRUE + RFALSE +?CCL3: GRTR? PS,0 \?CCL7 + RANDOM 100 + GRTR? 75,STACK /TRUE + RFALSE +?CCL7: ZERO? PS \?CCL11 + RANDOM 100 + GRTR? 50,STACK /TRUE + RFALSE +?CCL11: GRTR? VS,1 \?CCL15 + RANDOM 100 + GRTR? 25,STACK /TRUE + RFALSE +?CCL15: RANDOM 100 + GRTR? 10,STACK /TRUE + RFALSE + + + .FUNCT I-CURE:ANY:0:0,S + GETP WINNER,P?STRENGTH >S + GRTR? S,0 \?CCL3 + SET 'S,0 + PUTP WINNER,P?STRENGTH,S + JUMP ?CND1 +?CCL3: LESS? S,0 \?CND1 + INC 'S + PUTP WINNER,P?STRENGTH,S +?CND1: LESS? S,0 \?CCL7 + LESS? LOAD-ALLOWED,LOAD-MAX \?CND8 + ADD LOAD-ALLOWED,10 >LOAD-ALLOWED +?CND8: CALL QUEUE,I-CURE,CURE-WAIT + PUT STACK,0,1 + RTRUE +?CCL7: SET 'LOAD-ALLOWED,LOAD-MAX + CALL2 INT,I-CURE + PUT STACK,0,0 + RTRUE + + + .FUNCT I-FIGHT:ANY:0:0,FIGHT?,LEN,CNT,OO,O,P + GET VILLAINS,0 >LEN + ZERO? DEAD \FALSE + SET 'CNT,0 +?PRG3: INC 'CNT + EQUAL? CNT,LEN /?REP4 + GET VILLAINS,CNT >OO + GET OO,V-VILLAIN >O + IN? O,HERE \?CCL9 + FSET? O,INVISIBLE /?CCL9 + EQUAL? O,THIEF \?CCL14 + ZERO? THIEF-ENGROSSED /?CCL14 + SET 'THIEF-ENGROSSED,FALSE-VALUE + JUMP ?PRG3 +?CCL14: GETP O,P?STRENGTH + LESS? STACK,0 \?CCL18 + GET OO,V-PROB >P + ZERO? P /?CCL21 + RANDOM 100 + GRTR? P,STACK \?CCL21 + PUT OO,V-PROB,0 + ICALL2 AWAKEN,O + JUMP ?PRG3 +?CCL21: ADD P,25 + PUT OO,V-PROB,STACK + JUMP ?PRG3 +?CCL18: FSET? O,FIGHTBIT /?CCL24 + GETP O,P?ACTION + CALL STACK,F-FIRST? + ZERO? STACK /?PRG3 +?CCL24: SET 'FIGHT?,TRUE-VALUE + JUMP ?PRG3 +?CCL9: FSET? O,FIGHTBIT \?CND27 + GETP O,P?ACTION + ICALL STACK,F-BUSY? +?CND27: EQUAL? O,THIEF \?CND29 + SET 'THIEF-ENGROSSED,FALSE-VALUE +?CND29: FCLEAR WINNER,STAGGERED + FCLEAR O,STAGGERED + FCLEAR O,FIGHTBIT + ICALL2 AWAKEN,O + JUMP ?PRG3 +?REP4: ZERO? FIGHT? /FALSE + CALL2 DO-FIGHT,LEN + RSTACK + + + .FUNCT AWAKEN:ANY:1:1,O,S + GETP O,P?STRENGTH >S + LESS? S,0 \TRUE + SUB 0,S + PUTP O,P?STRENGTH,STACK + GETP O,P?ACTION + ICALL STACK,F-CONSCIOUS + RTRUE + + + .FUNCT I-SWORD:ANY:0:0,DEM,G,NG,P,T,L + CALL2 INT,I-SWORD >DEM + GETP SWORD,P?TVALUE >G + IN? SWORD,ADVENTURER \?CCL3 + CALL2 INFESTED?,HERE + ZERO? STACK /?CCL6 + SET 'NG,2 + JUMP ?CND4 +?CCL6: SET 'P,0 +?PRG7: NEXTP HERE,P >P + ZERO? P /?CND4 + LESS? P,LOW-DIRECTION /?PRG7 + GETPT HERE,P >T + PTSIZE T >L + EQUAL? L,UEXIT,CEXIT,DEXIT \?PRG7 + GET T,0 + CALL2 INFESTED?,STACK + ZERO? STACK /?PRG7 + SET 'NG,1 +?CND4: EQUAL? NG,G /FALSE + EQUAL? NG,2 \?CCL21 + PRINTI "Dein Schwert hat hell zu leuchten begonen." + CRLF + JUMP ?CND17 +?CCL21: EQUAL? NG,1 \?CCL23 + PRINTI "Dein Schwert leuchtet mit einem schwachen blauen Schimmer." + CRLF + JUMP ?CND17 +?CCL23: ZERO? NG \?CND17 + PRINTI "Dein Schwert leuchtet nicht mehr." + CRLF +?CND17: PUTP SWORD,P?TVALUE,NG + RTRUE +?CCL3: PUT DEM,C-ENABLED?,0 + RFALSE + + + .FUNCT INFESTED?:ANY:1:1,R,F + FIRST? R >F /?PRG2 +?PRG2: ZERO? F /FALSE + FSET? F,ACTORBIT \?CCL8 + FSET? F,INVISIBLE \TRUE +?CCL8: NEXT? F >F /?PRG2 + RFALSE + + + .FUNCT I-THIEF:ANY:0:0,RM,ROBJ,HERE?,ONCE,FLG + LOC THIEF >RM +?PRG1: FSET? THIEF,INVISIBLE /?PRD6 + SET 'HERE?,1 + JUMP ?PEN5 +?PRD6: SET 'HERE?,0 +?PEN5: ZERO? HERE? /?CND3 + LOC THIEF >RM +?CND3: EQUAL? RM,TREASURE-ROOM \?CCL10 + EQUAL? RM,HERE /?CCL10 + ZERO? HERE? /?CND13 + ICALL1 HACK-TREASURES + SET 'HERE?,FALSE-VALUE +?CND13: ICALL2 DEPOSIT-BOOTY,TREASURE-ROOM + JUMP ?CND8 +?CCL10: EQUAL? RM,HERE \?CCL16 + FSET? RM,ONBIT /?CCL16 + IN? TROLL,HERE /?CCL16 + CALL2 THIEF-VS-ADVENTURER,HERE? + ZERO? STACK \TRUE + FSET? THIEF,INVISIBLE \?CND8 + SET 'HERE?,FALSE-VALUE + JUMP ?CND8 +?CCL16: IN? THIEF,RM \?CND24 + FSET? THIEF,INVISIBLE /?CND24 + FSET THIEF,INVISIBLE + SET 'HERE?,FALSE-VALUE +?CND24: FSET? RM,TOUCHBIT \?CND8 + ICALL ROB,RM,THIEF,75 + CALL2 IN-MAZE?,RM + ZERO? STACK /?CCL32 + CALL2 IN-MAZE?,HERE + ZERO? STACK /?CCL32 + CALL2 ROB-MAZE,RM >FLG + JUMP ?CND8 +?CCL32: CALL2 STEAL-JUNK,RM >FLG +?CND8: ZERO? ONCE /?PRT39 + SET 'ONCE,0 + JUMP ?PRE41 +?PRT39: SET 'ONCE,1 +?PRE41: ZERO? ONCE /?REP2 + ZERO? HERE? \?REP2 + ICALL1 RECOVER-STILETTO +?PRG42: ZERO? RM /?CCL45 + NEXT? RM >RM /?CND44 +?CCL45: FIRST? ROOMS >RM /?CND44 +?CND44: FSET? RM,SACREDBIT /?PRG42 + FSET? RM,RLANDBIT \?PRG42 + MOVE THIEF,RM + FCLEAR THIEF,FIGHTBIT + FSET THIEF,INVISIBLE + SET 'THIEF-HERE,FALSE-VALUE + JUMP ?PRG1 +?REP2: EQUAL? RM,TREASURE-ROOM /?CND53 + ICALL2 DROP-JUNK,RM +?CND53: RETURN FLG + + + .FUNCT DROP-JUNK:ANY:1:1,RM,X,N,FLG + FIRST? THIEF >X /?PRG2 +?PRG2: ZERO? X \?CND4 + RETURN FLG +?CND4: NEXT? X >N /?BOGUS6 +?BOGUS6: EQUAL? X,STILETTO,LARGE-BAG /?CND7 + GETP X,P?TVALUE + ZERO? STACK \?CND7 + CALL2 ZPROB,30 + ZERO? STACK /?CND7 + FCLEAR X,INVISIBLE + MOVE X,RM + ZERO? FLG \?CND7 + EQUAL? RM,HERE \?CND7 + PRINTI "Der R%auber, der seinen Sack durchsucht, l%a%st ein paar Dinge, die er f%ur wertlos h%alt, fallen." + CRLF + SET 'FLG,TRUE-VALUE +?CND7: SET 'X,N + JUMP ?PRG2 + + + .FUNCT RECOVER-STILETTO:ANY:0:0 + LOC THIEF + IN? STILETTO,STACK \FALSE + FSET STILETTO,NDESCBIT + MOVE STILETTO,THIEF + RTRUE + + + .FUNCT STEAL-JUNK:ANY:1:1,RM,X,N + FIRST? RM >X /?PRG2 +?PRG2: ZERO? X /FALSE + NEXT? X >N /?BOGUS6 +?BOGUS6: GETP X,P?TVALUE + ZERO? STACK \?CND7 + FSET? X,TAKEBIT \?CND7 + FSET? X,SACREDBIT /?CND7 + FSET? X,INVISIBLE /?CND7 + EQUAL? X,STILETTO /?CCL8 + CALL2 ZPROB,10 + ZERO? STACK /?CND7 +?CCL8: MOVE X,THIEF + FSET X,TOUCHBIT + FSET X,INVISIBLE + EQUAL? X,ROPE \?CND16 + SET 'DOME-FLAG,FALSE-VALUE +?CND16: EQUAL? RM,HERE \FALSE + PRINTI "Pl%otzlich bemerkst du, da%s " + ICALL2 DER-NOM-PRINT,X + PRINTR " verschwunden ist." +?CND7: SET 'X,N + JUMP ?PRG2 + + + .FUNCT ROB:ANY:2:3,WHAT,WHERE,PROB,N,X,ROBBED? + FIRST? WHAT >X /?PRG2 +?PRG2: ZERO? X \?CND4 + RETURN ROBBED? +?CND4: NEXT? X >N /?BOGUS6 +?BOGUS6: FSET? X,INVISIBLE /?CND7 + FSET? X,SACREDBIT /?CND7 + GETP X,P?TVALUE + GRTR? STACK,0 \?CND7 + ZERO? PROB /?CCL8 + RANDOM 100 + GRTR? PROB,STACK \?CND7 +?CCL8: MOVE X,WHERE + FSET X,TOUCHBIT + EQUAL? WHERE,THIEF \?CND15 + FSET X,INVISIBLE +?CND15: SET 'ROBBED?,TRUE-VALUE +?CND7: SET 'X,N + JUMP ?PRG2 + + + .FUNCT V-DIAGNOSE:ANY:0:0,MS:FIX,WD:FIX,RS:FIX,?TMP1 + CALL2 FIGHT-STRENGTH,FALSE-VALUE >MS + GETP WINNER,P?STRENGTH >WD + ADD MS,WD >RS + CALL2 INT,I-CURE + GET STACK,C-ENABLED? + ZERO? STACK \?CCL3 + SET 'WD,0 + JUMP ?CND1 +?CCL3: SUB 0,WD >WD +?CND1: ZERO? WD \?CCL6 + PRINTI "Du bist kerngesund." + JUMP ?CND4 +?CCL6: PRINTI "Du hast " + EQUAL? WD,1 \?CCL9 + PRINTI "eine leichte Verletzung," + JUMP ?CND4 +?CCL9: EQUAL? WD,2 \?CCL11 + PRINTI "eine ernste Verletzung," + JUMP ?CND4 +?CCL11: EQUAL? WD,3 \?CCL13 + PRINTI "mehrere Verletzungen," + JUMP ?CND4 +?CCL13: GRTR? WD,3 \?CND4 + PRINTI "ernste Verletzungen," +?CND4: ZERO? WD /?CND15 + PRINTI " die nach " + SUB WD,1 + MUL CURE-WAIT,STACK >?TMP1 + CALL2 INT,I-CURE + GET STACK,C-TICK + ADD ?TMP1,STACK + PRINTN STACK + PRINTI " Z%ugen geheilt sein werden." +?CND15: CRLF + PRINTI "Du kannst " + ZERO? RS \?CCL19 + PRINTI "bald den Tod erwarten." + JUMP ?CND17 +?CCL19: EQUAL? RS,1 \?CCL21 + PRINTI "von einer weiteren leichten Verletzung get%otet werden." + JUMP ?CND17 +?CCL21: EQUAL? RS,2 \?CCL23 + PRINTI "von einer schweren Verletzung get%otet werden." + JUMP ?CND17 +?CCL23: EQUAL? RS,3 \?CCL25 + PRINTI "eine schwere Verletzung %uberleben" + JUMP ?CND17 +?CCL25: GRTR? RS,3 \?CND17 + PRINTI "mehrere Verletzungen %uberleben." +?CND17: CRLF + ZERO? DEATHS /FALSE + PRINTI "Du bist " + EQUAL? DEATHS,1 \?CCL32 + PRINTI "einmal" + JUMP ?CND30 +?CCL32: PRINTI "zweimal" +?CND30: PRINTR " get%otet worden." + + + .FUNCT V-SCORE:ANY:0:1,ASK?:ATOM + ASSIGNED? 'ASK? /?CND1 + SET 'ASK?,TRUE-VALUE +?CND1: PRINTI "Dein Spielstand ist " + PRINTN SCORE + PRINTI " (aus 350 Gesamtpunkten), in " + PRINTN MOVES + EQUAL? MOVES,1 \?CCL5 + PRINTI " Z%uge." + JUMP ?CND3 +?CCL5: PRINTI " Z%ugen." +?CND3: CRLF + PRINTI "Damit bist du ein " + EQUAL? SCORE,350 \?CCL8 + PRINTI "Meisterabenteurer" + JUMP ?CND6 +?CCL8: GRTR? SCORE,330 \?CCL10 + PRINTI "Hexenmeister" + JUMP ?CND6 +?CCL10: GRTR? SCORE,300 \?CCL12 + PRINTI "Meister" + JUMP ?CND6 +?CCL12: GRTR? SCORE,200 \?CCL14 + PRINTI "Abenteurer" + JUMP ?CND6 +?CCL14: GRTR? SCORE,100 \?CCL16 + PRINTI "Jungabenteurer" + JUMP ?CND6 +?CCL16: GRTR? SCORE,50 \?CCL18 + PRINTI "Anf%angerabenteurer" + JUMP ?CND6 +?CCL18: GRTR? SCORE,25 \?CCL20 + PRINTI "Amateurabenteurer" + JUMP ?CND6 +?CCL20: PRINTI "Anf%anger" +?CND6: PRINTC 46 + CRLF + RETURN SCORE + + + .FUNCT JIGS-UP:ANY:1:2,DESC,PLAYER? + SET 'WINNER,ADVENTURER + ZERO? DEAD /?CND1 + PRINTI " +Nur eine au%sergew%ohnliche Person kann get%otet werden, nachdem sie schon tot ist.Leider k%onnen nur au%sergew%ohnliche talentierte Leute damit fertig werden. Mir fehlt dieses Talent. Schade." + CRLF + ICALL1 FINISH +?CND1: PRINT DESC + CRLF + ZERO? LUCKY \?PRG5 + PRINTI "Pech gehabt, was?" + CRLF +?PRG5: ICALL2 SCORE-UPD,-10 + PRINTI " + **** Du bist tot **** + +" + LOC WINNER + FSET? STACK,VEHBIT \?CND7 + SET 'OHERE,FALSE-VALUE + MOVE WINNER,HERE +?CND7: LESS? DEATHS,2 /?CCL11 + PRINTI "Du bist eindeutig ein lebensm%uder Narr. Wir verbieten Psychopaten den Eintritt zur H%ohle, da sie die anderen Abenteurer gef%ahrden. Deine leiblichen %Uberreste werden dem Land der lebendigen Toten %ubergeben, wo deine Mitabenteurer sich an ihnen erg%otzen k%onnen." + CRLF + CALL1 FINISH + RSTACK +?CCL11: INC 'DEATHS + MOVE WINNER,HERE + SET 'OHERE,FALSE-VALUE + FSET? SOUTH-TEMPLE,TOUCHBIT \?CCL14 + PRINTI "W%ahrend du deinen letzten Atemzug tust, f%uhlst du dich all deiner B%urden entledigt. Dieses Gef%uhl verl%a%st dich, als du dich vor den Toren der H%olle befindest, wo die Geister dich anheulen und dir den Eintritt verwehren. Deine Sinne sind getr%ubt. Die Dinge in dem Kerker scheinen nicht wahrnehmbar, farblos, sogar unrealistisch." + CRLF + CRLF + SET 'DEAD,TRUE-VALUE + SET 'TROLL-FLAG,TRUE-VALUE + SET 'ALWAYS-LIT,TRUE-VALUE + PUTP WINNER,P?ACTION,DEAD-FUNCTION + ICALL2 GOTO,ENTRANCE-TO-HADES + JUMP ?CND12 +?CCL14: PRINTI "Na, la%s uns noch mal sehen... +Na ja, wir sollten Dir vielleicht noch eine Chance geben. Wir k%onnen es f%ur dich nicht alles in Ordnung bringen, aber man kann ja nicht alles haben." + CRLF + CRLF + ICALL2 GOTO,FOREST-1 +?CND12: FCLEAR TRAP-DOOR,TOUCHBIT + SET 'P-CONT,FALSE-VALUE + ICALL1 RANDOMIZE-OBJECTS + ICALL1 KILL-INTERRUPTS + RETURN 2 + + + .FUNCT RANDOMIZE-OBJECTS:ANY:0:0,R,F,N,L + IN? LAMP,WINNER \?CND1 + MOVE LAMP,LIVING-ROOM +?CND1: IN? COFFIN,WINNER \?CND3 + MOVE COFFIN,EGYPT-ROOM +?CND3: PUTP SWORD,P?TVALUE,0 + FIRST? WINNER >N /?BOGUS5 +?BOGUS5: GET ABOVE-GROUND,0 >L +?PRG6: SET 'F,N + ZERO? F /TRUE + NEXT? F >N /?BOGUS10 +?BOGUS10: GETP F,P?TVALUE + GRTR? STACK,0 \?CCL13 +?PRG14: ZERO? R \?CND16 + FIRST? ROOMS >R /?CND16 +?CND16: FSET? R,RLANDBIT \?CCL21 + FSET? R,ONBIT /?CCL21 + RANDOM 100 + GRTR? 50,STACK \?CCL21 + MOVE F,R + JUMP ?PRG6 +?CCL21: NEXT? R >R /?PRG14 + JUMP ?PRG14 +?CCL13: RANDOM L + GET ABOVE-GROUND,STACK + MOVE F,STACK + JUMP ?PRG6 + + + .FUNCT KILL-INTERRUPTS:ANY:0:0 + CALL2 INT,I-XB + PUT STACK,0,0 + CALL2 INT,I-XC + PUT STACK,0,0 + CALL2 INT,I-CYCLOPS + PUT STACK,0,0 + CALL2 INT,I-LANTERN + PUT STACK,0,0 + CALL2 INT,I-CANDLES + PUT STACK,0,0 + CALL2 INT,I-SWORD + PUT STACK,0,0 + CALL2 INT,I-FOREST-ROOM + PUT STACK,0,0 + CALL2 INT,I-MATCH + PUT STACK,0,0 + FCLEAR MATCH,ONBIT + RTRUE + + + .FUNCT BAG-OF-COINS-F:ANY:0:0 + CALL STUPID-CONTAINER,BAG-OF-COINS,STR?405 + RSTACK + + + .FUNCT TRUNK-F:ANY:0:0 + CALL STUPID-CONTAINER,TRUNK,STR?406 + RSTACK + + + .FUNCT STUPID-CONTAINER:ANY:2:2,OBJ,STR + EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL3 + PRINTI "Die " + PRINT STR + PRINTR " befinden sich darin in Sicherheit. Es besteht kein Grund dazu, das zu tun." +?CCL3: EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE \?CCL5 + PRINTI "Da sind viele " + PRINT STR + PRINTR " darin." +?CCL5: EQUAL? PRSA,V?PUT \FALSE + EQUAL? PRSI,OBJ \FALSE + PRINTI "Sei nicht albern. Dann w%are es ja nicht mehr " + ICALL2 EIN-NOM-PRINT,OBJ + PRINTR "." + + + .FUNCT DUMB-CONTAINER:ANY:0:0 + EQUAL? PRSA,V?LOOK-INSIDE,V?CLOSE,V?OPEN \?CCL3 + PRINTR "Das geht nicht." +?CCL3: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTI "Es sieht eigentlich wie " + ICALL2 EIN-ACC-PRINT,PRSO + PRINTR " aus." + + + .FUNCT GARLIC-F:ANY:0:0 + EQUAL? PRSA,V?EAT \FALSE + ICALL2 REMOVE-CAREFULLY,PRSO + PRINTR "Zur H%olle! Auf diese Weise kannst du zwar keine Freunde gewinnen, aber hier ist sowieso niemand besonders freundlich. Also schluck's." + + + .FUNCT CHAIN-PSEUDO:ANY:0:0 + EQUAL? PRSA,V?MOVE,V?TAKE \?CCL3 + PRINTR "Die Kette l%ost sich nicht." +?CCL3: EQUAL? PRSA,V?LOWER,V?RAISE \?CCL5 + PRINTR "Vielleicht solltest du das mit dem Korb machen." +?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE + PRINTR "Die Kette h%alt einen Korb innerhalb eines Schachtes." + + + .FUNCT TROLL-ROOM-F:ANY:1:1,RARG + EQUAL? RARG,M-ENTER \FALSE + IN? TROLL,HERE \FALSE + CALL2 THIS-IS-IT,TROLL + RSTACK + + .ENDI diff --git a/actions.zil b/actions.zil new file mode 100644 index 0000000..e6b29d2 --- /dev/null +++ b/actions.zil @@ -0,0 +1,4260 @@ +"1ACTIONS for + Zork I: The Great Underground Empire + (c) Copyright 1983 Infocom, Inc. All Rights Reserved. + -- GERMAN EDITION" + + + + + )> + )>> + + + + + ) + (T )> + )>> + + + + >) + (T + + )> + ) + ( + + + + T) + (T >)> + )>> + + + )>> + + + > + + > + ) + ( + ) + (T + )>)>> + +;"JOKE OF 'TAKE NOTHING FOR GRANITE' WON'T WORK IN GERMAN" +; + + ) + ( + )>) + ( + + ) + ( + )>) + ( + + Granite Wall%<." CR>) + (T )>) + (T + )>> + + + ) + ( + ) + ( + ) + (T + )>> + + + + ) + ( + + T)>) + ( + >> + + + ) + (T + )>) + (T )>) + ( + ) + ( + + T) + ( + ) + ( + + + ) + (T + + )>) + (T + )>) + ( + )>> + +;"0 -> no next, 1 -> success, 2 -> failed move" + +> + > 2) + (T 1)>)>> + + + + > + )> + ) + ( + ) + ( + ) + ( + )>> + + + )>> + + ) + ( + CR> + ) + ( ;"fill bottle with water =>" + ;"put water in bottle" + + + + >) + ( + > + + >) + (ELSE + + )>)> + + + )>)> + ) + (T )> + > + > >)> + > + + + >>>> + + + ) + (>> + ; + + ) + ( + > + + ) + (> + + ) + (T + + )>) + ( + + > + ) + (T + )>) + (.PI? + + > + ) + (ELSE + )> + ) + ( + + + >> + + )> + + + ) + (T + + )>) + ( + + )>> + +> + + + + ) + ( + > + ) + ( + + ) + (T + )> + ) + ( + + ) + (T + )>)>> + + + + >) + ( + ) + ( > + ) + (T + )>> + + + + + + >> + >> + CR>) + (T + + + + + )>) + ( + + ,CAGE-TOP>> + + >> + CR>) + (T + + + + + > + >>> + )> + T)>) + ( + > + ) + ( + > + )>> + + + + >) + ( + ,WINNER ,HERE> + ) + (T )>)>> + + + + <>> + > + )> + T> + +> 1> ) + (T )>> + > + +> + + + + > + ) + (T + )>)>> + + + ) + ( ,PRSI>> + + > + )> + + + ) + ( + ) + (T + )>) + ( + + + ; + > + ) + ( + )>> + + + ) + ( + )>> + + + )>> + + + )>> + + + + + ) + (T + )>) + (<==? .RARG ,M-BEG> + > + ) + ( > + )>)>> + + + + + > + + >>> + + ; 8> 0>)> + ;ZORK II: The Wizard of Frobozz%< and +is completed in %>ZORK III: The Dungeon Master.%<" CR> + ;(T + ) + + ;"The ZORK trilogy continues with %>ZORK II: The Wizard of Frobozz%< and is completed in %>ZORK III: The Dungeon Master.%<" + ZORK II: Der Hexenmeister von Frobozz%< und endet mit %>ZORK III: Der +Kerkermeister%<."> + )>> + + + )>> + + + )>> + + + > + )>> + +> + + + + ) + (T + )> + + + > + ) + (.RUG? + ) + ( + ) + (T + )> + + T) + ( + + + >> + + )> + >> + + )>)>> + +> + ) + (T + + )>)> + >>> + +> + )> + >> + )> + >>> + + + + ) + ( + > + ) + ( > + + ) + (T )>) + ( + + >> + ) + ( >> + + + ) + ( + CR>)>)>> + + + ) + ( + + >> + + + )>)>> + + + + + ) + (T )> + )>> + +>> + + ) + (>> + >> + > + > + )> + ) + (T + + )>> + + + ) + (T + + + )>) + (T + + )>> + + + + ) + (T + )>) + ( + ) + (T + + + + )>) + ( + ) + ( + + >> + ) + ( + + >> + ) + (ELSE + )>)>> + +"SUBTITLE TROLL" + +) + (T )>> + +> + +> ) + ( + + ;) + (T + )> + T)>> + +)) + + > + ) + ( + <>) + ( > + + + + + + > + T) + ( + + + T)>) + ( + + + + )> + ) + ( + + + + + )> + + ) + ( + + + )> + + ) + ( + + + + ) + (T + )> + >) + ( + + + > + T)>) + ( + + CR>) + ( + ,PRSO + > + > + + + + > + + + + ) + ( + ; + + )> + + ) + (T + )> + + > + + + + ,F-DEAD> + ) + ( + + ; + + ) + (T + ; + + )>) + ( + N%achstes Mal mehr Gl%uck.%<" CR>) + ( + )>) + ( + ) + (> + )>)>> + + +"SUBTITLE GRATING/MAZE" + +;> ;"no longer used?" +> +> + +> + > + + ) + (T )> + + )> + <>> + + + ) + ( + + + + ) + (T + )>) + ( + + + ) + ( + + )> + )> + + ) + (T )>) + ( + > + )>> + + + + )>) + ( + + + + ) + (,GRATE-REVEALED + + )> + )>> + + + ) + ( + + + ) + (,GRUNLOCK + ) + (T + )> + )>> + + > + + ) + ( + + ) + (T + )>) + ( + )>) + ( > + > + ) + (T + )> + ) + ( + > + ) + ( + > ;"performed from v-unlock" + ) + (T + )>) + ( + ) + ( + + "Das Gitter ist zu %offnen.") + (T +"Das Gitter %offnet sich und bringt B%aume %uber dir zum Vorschein.")> + "Das Gitter ist geschlo%sen."> + + > + > + + + )> + ) + (T )>) + (T )>) + ( > + 20> + ) + (T + + )>)>> + + + ,MAZE-4) + ( ,DEAD-END-1) + ( ,MAZE-11) + ( ,MAZE-5)>> + + + + > + <>) + ( + > + + + ,PRSI>> + + )>> + + + + )>> + + + + + + T)>> + + + ) + ( + > + ) + ( > + )>> + + +"SUBTITLE MIRROR, MIRROR, ON THE WALL" + + + + )>)>> + +> + + + + > + >> + + )> + + )> + > + > + )> + > + + > + )> + > + + > + > + ) + ( + ) + (T + )> + ) + ( + ) + ( + ) + (T + + > + )>)>> + +"SUBTITLE THE DOME" + + + + )>)>> + + + + )>) + ( + + + > + + ) + ( + )>)>> + +;> ;"no longer used?" + +"SUBTITLE LAND OF THE DEAD" + + + + > + )>) + ( + + + + + > + ) + (T + )>)>) + ( + + > + + + + + + + + + + >)> + > + >) + ( + + > + Weg mit Euch, Ihr Biester!%< Ein herzzerrei%sender Schrei f%ullt die H%ohle, und die Geister, eine h%ohere Macht versp%uren fliehen durch die W%ande." CR> + + + >)>) + ( + + + > + + + > + >)>)>> + +> + +> + + + >> + >> + +> + > + + + + + )>> + + +"SUBTITLE FLOOD CONTROL DAM #3" + +> +> + + + + + ) + (,GATES-OPEN + ) + (,LOW-TIDE + ) + (T + )> + + )> + )>> + + + + + > + + + > + ; + > + T) + (T + + + > + ; + > + T)>) + (T )>) + (ELSE + )>) + ( + ) + ( + )>> + + + )>> + +> + + + + ;"next two from jeff" + ; + ; + + + + > + > + + ,VEHBIT> + ) + (T + )>) + ( + ) + ( + + >) + ( + )> + T> + +> + + + + ;"next two from jeff" + ; + ; + + + + + + ,VEHBIT>> + ) + ( + ) + ( + )> + T> + +;> + +> + + + + + + ) + ( + + + + + + > + T) + (T + )>) + ( + + + + ) + (T + + )>) + ( + + > + ) + ( + + + )>)>> + + + ) + ( + +) + ( + )>> + +> + >> )> + > + > + + ; + > + )>) + ( + > + )> + > + + + + > + ) + ( + + ) + (T )>)>)>> + + + ; + > + > + + + > + + >> + )>> + + + > + ) + ( + + > + + ) + ( + ) + (T + )>)>> + + + ) + ( + + ) + (T + )>)>> + +> + + + + ) + (,GATES-OPEN + ) + (,LOW-TIDE + ) + (T + )> + + )>> + + + ,VEHBIT>> + + ,LOW-TIDE> + ) + ( + Ufer%< nach Norden und S%uden." CR>) + (T + )> + )>> + + + + ) + (,GATES-OPEN + ) + (,LOW-TIDE + ) + (T + )> + + )>> + + +)) + <==? ,PRSO ,BOTTLE>> + + + ; + ) + ( + + + ; + ) + ( + > + )>)> + > + + + T) + (.E? )>> + + +"SUBTITLE CYCLOPS" + + + + + + ) + ( + + + ) + (ELSE + )>) + (,CYCLOPS-FLAG + + ) + ( + + > + + + >) + (T + )>)>) + ( + ) + ( > + + > + + Ei, ei. Ich liebe scharfe Pepperoni! Aber, oooh, ich k%onnte erst mal was zu Trinken brauchen. Vielleicht k%onnte ich das Blut von 'diesem Ding' trinken%<. Aus dem listigen Aufleuchten seiner Augen kannst du schlie%sen, da%s du gemeint bist." CR> + >>)> + >) + ( + + >> + + + + + + + ) + (T + )>) + ( + ) + (T + )>) + ( + > + + Meinst du, da%s ich so dumm bin, wie mein Vater war?%< sagt er, als er dir ausweicht." CR>) + (T + + + )> + )>) + ( + ) + ( + ) + ( + )>> + + ) + (> + >) + (T + 5> + > + Das schmeckt wie bei Muttern. Mmmh.%<| +| +Es ist angenehm, gesch%atzt zu werden.">) + (T + + >) + (T + >)> + + 1>> + CR>)>)>)>> + + + + > + ) + (,MAGIC-FLAG + ) + (<0? ,CYCLOWRATH> + ) + ( + ) + ( + )>) + ( + >>)>> + +> + +"SUBTITLE LOUD LOUD LOUD" + +> + + + + ,LOW-TIDE>> + ) + (T + )> + ) + ( ,GATES-OPEN > + + > + ) + ( + ,LOW-TIDE>> + ) + (> + ) + (T + + + >)> + )> + "> + + + > + + )> + > + + >) + ( + >)> + + ) + ( + ) + ( + ) + ( + >) + ( + >) + ( + >) + ( + + + + )> + ) + ;(,DEAD ) + (T + )>>)>)>> + + + + > + ) + ( ,LOW-TIDE> + + ) + (T + )> + )>> + + +> + + +> + +;"I-THIEF moved to DEMONS" + +"SUBTITLE THINGS THIEF MIGHT DO" + +"INTERACTION WITH ADVENTURER -- RETURNS T IF THIEF FINISHED." + +)) + >) + ( + > + + + + + ) + ;( + + + + + + )>) + ( + >> + + + + + ) + ( > + ) + (> + + + + ) + ( ) + ( + + ) + ( + )> + + > + + + ) + (ELSE + )> + Diene deinem N%achsten bevor...%<" CR> + ) + (.HERE? + + + + ) + (T + )> + + ) + (T + )> + + > + ) + (T + + )>)>) + (T + + + ) + ( + )> + + + ) + (T + )> + + ) + (T + )> + + > + )>)>)> + > + + + > + .OLD-LIT> + )> + > + +"SNARF STILETTO IF DROPPED IT" + +;"RECOVER-STILETTO moved to DEMONS" + +"PUT HIS BOOTY IN TREASURE ROOM" + + + + > + ) + (T )> + >>> + +)) + > + )> + > + ) + ( 0> + + + + + )>)> + >> + +"TAKE ALL OF THE VALUABLES SOMEWHERE AND PUT THEM SOMEWHERE ELSE" + +"MOVED TO DEMONS" + +"ROB MAZE" + +> + )> + > + + > + > + ;My, I wonder what +this fine " DER-NOM .X " is doing here.%<" CR> + Meine G%ute, was " DER-NOM .X " hier wohl tut?%<" CR> + + + + )> + )> + >> + +"STEAL SOME JUNK - moved to DEMONS" + +"DROP SOME JUNK - moved to DEMONS" + +"ROBBER-FUNCTION -- more prosaic thiefly occupations" + +> + +) "AUX" (FLG <>) X N) + + + >) + ( + + ,ROBBER-U-DESC>> + ) + ( + + >> + + + + + > + + + )> + + + ) + (T + )> + + )> + + ) + (T + + )>) + ( + ,PRSO + > + > + 0> + >> + > + + + )> + + + ) + ( 0> + + ; + ) + (T + )>) + ( + ) + ( + ) + ( + )>) + ( + <>) + (> + + + + )> + T)>) + ( + + + > + + > + + + ) + (> + + + + )> + + + > + + )> + )> + >>) + (.X + )> + >) + ( + > + > + + > + T)>) + ( + > + + + + ) + ( + ,HERE> + + )> + > + + )>> + + + + + + + ,ROBBER-U-DESC> + ) + (T + )>) + ( + > + ) + ( + ) + ( + )>> + +> + )> + > + + + >)>> + + + + + + > + + ,ROBBER-U-DESC>>> + )>) + ( > + ) + (T )>> + + + <1? ,C-ENABLED?>> + > + > + + )> + + + )>> + +> + > + )> + ) + (> + )> + >>> + + + ) + ( + ) + ( + ) + ( + )>> + +"SUBTITLE RANDOM FUNCTIONS" + + + ) + ( + Deine Nichtachtung wird dir dein Leben kosten%<, und er steckt deinen Kopf auf einen spitzen +Stock.">)>> + + + ) + ( + ) + ( + + + >>> + ; + ) + ( + + Falsch gedacht, Schwachkopf!%<, und du bemerkst, da%s du dich in eine Staubma%se verwandelt hast. Wie, kann ich mir einfach nicht vorstellen.">)>> + + + + + )>> + + +"SUBTITLE LET THERE BE LIGHT SOURCES" + +> +"Die Leuchte scheint ein wenig schw%acher." +"Die Leuchte ist jetzt unbedingt schw%acher." +"Die Leuchte ist fast aus." + + + + > + + ) + ( + + ) + (T + > + <>)>) + ( + + ) + (T + > + <>)>) + ( + + ) + ( + ) + (T + )> + )>> + + > + )>> + + + + > + + >)> + > + ) + ( + ) + (T + + + > + + + + )> + )>) + ( > + + + + > + )> + ; + > + ) + ( + + > + > ) + (T )> + + ;> ) (T )> + ;) + ( + + ) + (T + )> + )>> + + + + + > + > + +)) + >>> + + > + >)>> + +)) + + >>> + + > + >)>> + + + + )> + > + + ) + (T + CR>)>)>> + + .N1) + (T .N2)>> + +> + >)> + ) + (T + + + ) + ( + + + + ) + (T + + )>) + ( + > + + ) + (T + + + >)>) + ( + + ) + (T + + )>) + (T + )>) + ( + ) + ( + > + + + + + > + + )> + + ) + (T )>) + ( > + ) + ( + + ) + (T )> + )>)>> + +> +"Die Kerzen werden k%urzer." +"Die Kerzen werden sehr kurz." +"Die Kerzen k%onnen nicht mehr lang brennen." + + + + + > + > + + + >> + )>)>)>> + +"SUBTITLE ASSORTED WEAPONS" + + > + > + <>) + ( + > 1> + ) + ( + )>)>> + +"SUBTITLE COAL MINE" + +) FLAME) + + + + > + )> + + > + + > + + >> + ) + (T + )> + )>)>> + + ,WINNER ,HERE> + ) + (T + )>> + + + ) + ( > + ,WINNER ,HERE>> + + + )>)>> + + + + + ) + (T )> + )>> + + > + ) + ( + + CR>) + ( + + + + ) + (T + + )>) + ( + + + + T) + (T + CR>)>) + ( + + ) + (T + + )>)>> + + + + + ) + (T + + + ) + (T + > + ) + (T )>> + )>)>) + (T + ; + )>)>> + + + > + + + > + + ) + ( 4> + > + )> + >> + ,LIT> + + )> + )>> + + + >> + )>> + + + + + + + + >) + (T + )>)>> + + + + > + + + + + > + )> + ) + (T + + + > + )>) + ( + > + ) + (T + )>)>> + + + + ) + (T + )> + )>> + + + + + )> + + ) + ( + ) + (T + )>) + (T + )>) + ( + )>> + + + > + ) + ( + ) + ( + + ) + (T )>)>> + + + > + > + + + + + ) + ( + ) + ( + + ) + (T + + )>)>) + ( + )>> + +> + +> + +> + +> + >> + >) + (> + + + >>) + (T + )>> + +) "AUX" TMP) + <>) + ( + + + ) + ( + > + ) + ( + > + ) + (T + + )>) + ( + + > + + + ) + ( + ) + (T )> + ) + (> 1> + >> + ) + (> + + ) + (T )>) + ( + > + + + > + + >> + + + + + > + + ) + (T )> + + + + + ) + (T + )>)> + ) + ( + )>) + ( + + + + + + > + + + + + T)>) + ( + ) + ( + ,INFLATED-BOAT> + ) + (> + ) + (T + + + + )>)>> + +; + > + + + > + ) + ( + + > + )> + > + + + ) + ( + ) + (T + )>)>> + + + + + ,BUOY-FLAG> + + >)>)>> + + + + + + <==? ,PRSI ,SHOVEL>> + > + + + > + ) + ( + + + + )>) + (T + CR>)>)>> + +> + + +"SUBTITLE TOITY POIPLE BOIDS A CHOIPIN' AN' A BOIPIN' ... " + + + + > + > + + + )>) + ( + > + ) + ( + > + ) + ( + > ) + ( > + + + ) + ( + + + + ) + (> + + ) + ( + )>)>) + ( >)>> + + > + + ) + ( + ) + ( + ) + ( + + > + + + ) + ( + ) + (T + + )>) + ( + + + ) + ( + )> + + + )>> + + + >) + (T )> + > + + > + +> + + + + > + + + ,PATH) + (T ,HERE)>>) + (T + )>) + (T + )>)>> + + + >> + +> + > + ) + ( + )>> + + >) + ( + + > + )>)>> + + + )>> + + + >> + ) + ( + + + )>)>> + +"SUBTITLE CHUTES AND LADDERS" + +> + > + + )>) + ( + + ) + (T + + + + > + + >> + )> + T)>)>) + ( ,DOME-FLAG> + ) + ( + > + + 0> + + ) + (T + )>) + (T + )>) + ( + > + + ) + (T + )>) + ( + + > + + ) + ( + )>)>> + + + >> + ) + (T )>> + + + >> + + + ) + (T + + )>) + ( + )>> + + + + ) + (T + )>) + (T CR>)>> + + + > + )>> + +"MORE RANDOMNESS" + +) "AUX" M) + + + > + )>) + ( + <>) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + + > + ) + (T + )> + + > + )> + + <>) + ( + + + + ;> + > + > + + >)> + + ) + (T + )>) + (T + + > + )>> + +;"Pseudo-object routines" + +) + ( + ) + ( + )>> + + + ) + ( + )>> + + + >> + ) + ( + ) + ( > + + )>> + + + )>> + + + + ) + (T + )>> + + + ) + ( + )>> + + + )>> + + ;"REALLY BLOW" + ) + ( + )>> + +"SUBTITLE MELEE" + +;"melee actions (object functions for villains called with these)" + + ;"busy recovering weapon?" + ;"mistah kurtz, he dead." + ;"into dreamland" + ;"rise and shine" + ;"strike first?" + + +"blow results" + + ;"attacker misses" + ;"defender unconscious" + ;"defender dead" + ;"defender lightly wounded" + ;"defender seriously wounded" + ;"defender staggered (miss turn)" + ;"defender loses weapon" + ;"hesitates (miss on free swing)" + ;"sitting duck (crunch!)" + +"tables of melee results" + +> + +> + +> + +> + +> + +> + + + 0 ;>> + + + 0; >> + + + DEF3B + 0 ; + DEF3C>> + +"useful constants" + + + + + + +"I-FIGHT moved to DEMONS" + +)) + + > + + + )> + > + > + >) + ( + ,F-BUSY?>) + (>> + > + ) + ( + >>)>> + ) + (T + > + )>)>) + (T )>>> + +;"takes a remark, defender, and good-guy's weapon" +> + > .LEN> )> + > + + + + + > + >)>) + ( + + > + >> + )>) + ( + + + ) + (> + )>) + ( + + + ) + (> + )>) + ( + + + > + ) + (T ;"ie, fem" + )>) + ( + )> + > + )>) + ( + ;"ALL DEF ARE MASCULINE" + + ) + ( + ) + ( + ) + ( + )> + ) + (T + )>> + > + +;"Strength of the player is a basic value (S) adjusted by his P?STRENGTH +property, which is normally 0" + +>>>> + >)(T .S)>> + +> + > + > + ,THIEF-ENGROSSED> + )> + >)> + + ,PRSI>> + >> + )> + )>)> + .OD> + +"find a weapon (if any) in possession of argument" + +> + + )> + + > + ) + (>> )>>> + +> + > + + + + + )> + >> + > 0>> )> + >> + > + ) + (T + + )> + >>) + ( + )> + >>) + ( + > + ) + ( )> + >>)> + 1>>> + ) + (T )>)> + + .DWEAPON + >> + )> + >> + ,WINNER + .DWEAPON>)> + >) + () + ( + > + ) + ( + > + )> + + >)>) + ( + > + )> + + >)>) + ( ) + (T + ; .DWEAPON> + + > + )>)> + > + +) DWEAPON ATT DEF (CNT 0) + OA OD TBL RES NWEAPON (LEN )) + > + )> + > + ,PRSO> + )>> + + + + + )> + > + )> + + > + >>> + + >)> + + )> + > + > + + ) + (T )> + + ) + (T + + )> + >>) + ( + )> + >>) + ( + > + ) + ( )> + >>)> + 1>>> + ) + (T )>)> + .DWEAPON > + )> + >> + ,PRSO + ,PRSI>)> + >) + ( >) + ( > + ) + ( + > + )>) + ( + > + )>) + ( ) + (T + ; .DWEAPON> + + + + )> + > + + -10000)(T <- .DEF .OD>)>> + 0> + >)> + 0>> + >>>> + + <>) + (T .RES)>> + + + + + ; + + + ) + (T + )> + + + ,F-DEAD> + .RES) + ( + ,F-UNCONSCIOUS> + .RES) + (T .RES)>> + + +> + >> + ) + ( ) + (<0? .PS> ) + ( ) + (T )>> + +> + ) + ( > )> + + + >)> + >) + (T + + >)>> + +"FIGHTS" + +"messages for winner" +;"NOTE: ALL THREE DEFENDERS (DEF) ARE MASCULINE CASE GENDER" + +; ;"means print weapon name" +; ;"means print defender name (villain, e.g.)" + +;"ALL WEAPONS NEED A 'your' PRONOUN BEFORE THEM, EXCEPT FOR DER-WEP-ACC" + + + + + ;"smacks the sword" + ;"auf deinem weapon" + + + + + + +; + + + + + > + + + + + > + + + > + + + + > + + + + > + + ;"Der Dieb ist hilflos und f%allt auf die Kniee." + + + + > + + >>> + + + + + + +> + + + + + +> + + + +> + + + + +> + + + + +> + + + + + +> + + +>>> + +;"messages for cyclops (note that he has no weapon)" + +; + > + > + > + + > + + > + + > + + > + > + >>> + + +> +> +> + +> + +> + +> + + +> +> +>>> + +;"messages for troll" + +; + + + > + +> + + + + > + + + + ;"Die geschwungene Axt haut dich bald um, denn du kannst sie kaum parieren." + + > + + + + > + + + + + > + + + + > + + + > + +>>> + + + + +> + +> + + + +> + + + + +> + + + +> + + + + +> + + + +> + + +> + +>>> + +;"messages for thief" + +; + + + > + + > + + + > + + ;"Ein schneller Sto%s trifft deinen linken Arm, und Blut beginnt, herabzutr%opfeln." + + ;"Ein schneller Sto%s trifft deinen linken Arm, und Blut beginnt, herabzutr%opfeln." + + ;"Das Stilett sticht schneller, als du erwartet hast, und Blut str%omt aus deinem Bein." + > + + + + > + + + > + + + > + + + > + + >>> + + + + +> + + +> + + + +> + + + + +> + + + + +> + + + +> + + + +> + + + +> + + +>>> + +;"each table entry is:" + + ;"villain" + ;"best weapon" + ;"advantage it confers" + ;"prob of waking if unconscious" + ;"messages for that villain" + +"This table must be after TROLL-MELEE, THIEF-MELEE, CYCLOPS-MELEE defined!" + +
+
0 0 CYCLOPS-MELEE>>> + +"DEMONS" + +"Fighting demon" + +) LEN CNT OO O P) + > + )> + + > + )> + > + > ,HERE> + >> + ,THIEF-ENGROSSED> + >) + ( 0> + > + > > + + ) + (T + >)>) + ( + ,F-FIRST?>> + )>) + (T + + ,F-BUSY?>)> + >)> + + + + )>> + )> + > + +> + + > + ,F-CONSCIOUS>)> + T> + +"SWORD demon" + +> + > + + + ) + (T + + >> + ) + (> + > + > + + > + + )>)>)>>)> + ) + ( + ) + (<1? .NG> + ) + (<0? .NG> + )> + + ) + (T + + )>> + +> + ) + ( >> + ) + (>> )>>> + +"THIEF demon" + +) (FLG <>)) + > + >> + >)> + >> + >)> + ;"silent") + ( + > + >> + )> + >)>) + (T + + >> ;"Leave if victim left" + + >)> + ;"Hack the adventurer's belongings" + + + ; + + > + ) + (T )>>)>)> + > > + ;"Move to next room, and hack." + + >>) + (T >)> + > + > + + + + > + )>> + )>> + > + )> + .FLG> + +)) + > + )> + > + ) + (> > + + + > + + )>)> + >> + +> + + )>> + +> + )> + > + > + + > + > + + >> + + + + >)> + + + ) + (ELSE )>)> + >> + +) "AUX" N X (ROBBED? <>)) + > + )> + > + > + > + 0> + >> + + + )> + )> + >> + +;"special-cased routines" + +>> + > + > + ,C-ENABLED?>> ) + (ELSE >)> + ) + (T + + ;"Du hast verschiedene Wunden, die nach 88 Spielrunden geheilt sein werden." + ) + ( ) + ( ) + ( )>)> + > + ; + + > + ,C-TICK>>> + )> + + + ) + (<1? .RS> ) + ( ) + ( ) + ( + )> + + > + + ) + (T )> + )>> + +;"Dein Spielstand ist 87 (aus 350 Gesamtpunkten), in 120 Z%ugen." +) + + + + + ) (ELSE )> + + + ) + ( ) + ( ) + ( ) + ( ) + ( ) + ( ) + (T )> + + ,SCORE> + +)) + + + )> + + + )> + + + ,VEHBIT> + > + )> + > + + ) + (T + > + + > + + + + + ; + + + ) + (T + + )> + + > + + + )>>> + +) F N L) + + )> + + )> + + > + > + + )> + > + 0> + >)> + + > + > + + ) + (ELSE >)>>) + (ELSE + >>)>>> + +> + > + > + > + > + > + > + > + + > + +> + +> + + + ; + ) + ( + ; + ) + ( > + ; + )>> + + + ) + ( + ; + )>> + + + + )>> + + + ) + ( + ) + ( + )>> + + + > + )>> \ No newline at end of file diff --git a/chunk.script b/chunk.script new file mode 100644 index 0000000..bdaa294 --- /dev/null +++ b/chunk.script @@ -0,0 +1,59 @@ +Notes: + +1) Under each paragraph of so of text, type out your translation. + (So I know to what the translation corresponds.) + +2) Don't bother translating the input now, such as >OPEN THE MAILBOX, + etc. All the inputs will be translated as all together. + +3) You do NOT need to translate sentences with a German article in them. + These sentences are usually simple, functional sentences that are + used repeatedly. The object following the German article indicates + that it is "plugged into" the sentence and could be, usually, just + about any object in the game. (These sentences all have the default + Feminine gender because the object names to be plugged in haven't + been translated yet.) The sentences with the German article will be + translated apart from the game transcript below. + +4) If you run across a chunk of text that you've already translated, of + course there's no need to do it again. Hopefully there won't be alot + of these. But there will be some "repeat" chunks of text. + +5) If you can put quotes around each paragraph of text, it would be + helpful. But if you forget, don't worry about it. + +6) Some text may be seem bizarre or puzzling. You might as well not waste + your time trying to figure out exactly what they mean. I'll try + to explain them (or find someone who can). + +7) Good luck. + + +West of House +You are standing in an open field west of a white house, with a boarded front +door. +There is eine small mailbox here. (Renata: E.g., don't bother translating + this sentence) + +>EXAMINE THE WHITE HOUSE + +The house is a beautiful colonial house which is painted white. +It is clear that the owners must have been extremely wealthy. + +>OPEN THE MAILBOX +Opening die small mailbox reveals eine leaflet. + +>TAKE LEAFLET +Taken. + +>READ LEAFLET +"WELCOME TO ZORK! + +ZORK is a game of adventure, danger, and low cunning. In it you will explore +some of the most amazing territory ever seen by mortals. No computer should be +without one!" + +>GO NORTH +North of House +You are facing the north side of a white house. There is no door here, and all +the windows are boarded up. To the north a narrow path winds through the trees. diff --git a/clock.zabstr b/clock.zabstr new file mode 100644 index 0000000..3009709 --- /dev/null +++ b/clock.zabstr @@ -0,0 +1,13 @@ + + +> + + + + + + + + +> + \ No newline at end of file diff --git a/clock.zap b/clock.zap new file mode 100644 index 0000000..0130625 --- /dev/null +++ b/clock.zap @@ -0,0 +1,53 @@ + + + .FUNCT QUEUE:ANY:2:2,RTN:ATOM,TICK:FIX,CINT + CALL2 INT,RTN >CINT + PUT CINT,C-TICK,TICK + RETURN CINT + + + .FUNCT INT:ANY:1:5,RTN:ATOM,DEMON:ATOM,E,C,INT + ADD C-TABLE,C-TABLELEN >E + ADD C-TABLE,C-INTS >C +?PRG1: EQUAL? C,E \?CCL5 + SUB C-INTS,C-INTLEN >C-INTS + ZERO? DEMON /?PEN6 + SUB C-DEMONS,C-INTLEN >C-DEMONS +?PEN6: ADD C-TABLE,C-INTS >INT + PUT INT,C-RTN,RTN + RETURN INT +?CCL5: GET C,C-RTN + EQUAL? STACK,RTN \?CND3 + RETURN C +?CND3: ADD C,C-INTLEN >C + JUMP ?PRG1 + + + .FUNCT CLOCKER:ANY:0:0,C,E,TICK:FIX,FLG:ATOM + ZERO? CLOCK-WAIT /?CND1 + SET 'CLOCK-WAIT,FALSE-VALUE + RFALSE +?CND1: ZERO? P-WON /?CCL5 + PUSH C-INTS + JUMP ?CND3 +?CCL5: PUSH C-DEMONS +?CND3: ADD C-TABLE,STACK >C + ADD C-TABLE,C-TABLELEN >E +?PRG6: EQUAL? C,E \?CCL10 + INC 'MOVES + RETURN FLG +?CCL10: GET C,C-ENABLED? + ZERO? STACK /?CND8 + GET C,C-TICK >TICK + ZERO? TICK /?CND8 + SUB TICK,1 + PUT C,C-TICK,STACK + GRTR? TICK,1 /?CND8 + GET C,C-RTN + CALL STACK + ZERO? STACK /?CND8 + SET 'FLG,TRUE-VALUE +?CND8: ADD C,C-INTLEN >C + JUMP ?PRG6 + + .ENDI diff --git a/clock.zil b/clock.zil new file mode 100644 index 0000000..66723b6 --- /dev/null +++ b/clock.zil @@ -0,0 +1,62 @@ +"GCLOCK for + The Zork Trilogy + (c) Copyright 1983 Infocom, Inc. All Rights Reserved" + + + +> + + + + + + + + + + + + + +) + > ,C-TICK .TICK> + ;"added per RAGER" + ; + .CINT> + +) E C INT) + #DECL ((RTN) ATOM (DEMON) (E C INT) ) + > + > + + > + >> + > + + ) + ( .RTN> )> + >>> + +> + +)) + #DECL ((C E) (TICK) FIX (FLG) ) + > )> + >> + > + + > + ) + (>> + > + ) + (T + > + > + >> + )>)>)> + >>> diff --git a/combat.log b/combat.log new file mode 100644 index 0000000..71ef68e --- /dev/null +++ b/combat.log @@ -0,0 +1,108 @@ +25-Oct-87 15:59:52 XZILCH started. Load is 0.15. +PS:XZILCH.EXE ZORK1 /NI + + +Compiling SS:ZORK1.ZIL.13 +[XZIP instructions] +Renovated ZORK I: The Great Underground Empire + +Loading SS:TELLS.ZIL.45 and compiling it. +Abstracting SS:TELLS. +Loading SS:SYNTAX.ZIL.23 and compiling it. +Loading SS:DUNGEON.ZIL.31 and compiling it. + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (EAST The door is boarded and you can't remove the boards.) + OBJECT WEST-OF-HOUSE + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (SOUTH The windows are all boarded.) OBJECT NORTH-OF-HOUSE + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (NORTH The windows are all boarded.) OBJECT SOUTH-OF-HOUSE + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP There is no tree here suitable for climbing.) OBJECT +FOREST-1 + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP There is no tree here suitable for climbing.) OBJECT +FOREST-2 + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP The mountains are impassable.) OBJECT MOUNTAINS + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP There is no tree here suitable for climbing.) OBJECT +FOREST-3 + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP You cannot climb any higher.) OBJECT UP-A-TREE + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (NORTH The forest becomes impenetrable to the north.) +OBJECT GRATING-CLEARING + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP There is no tree here suitable for climbing.) OBJECT +CLEARING + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (WEST +You try to ascend the ramp, but it is impossible, and you slide back down.) +OBJECT CELLAR + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (DOWN +The chasm probably leads straight to the infernal regions.) OBJECT EAST-OF-CHASM + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (DOWN The dam blocks your way.) OBJECT RESERVOIR GIN-- +GOUT TIME=8.4430003 + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (WEST +The stream emerges from a spot too small for you to enter.) OBJECT STREAM-VIEW + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP The channel is too narrow.) OBJECT IN-STREAM + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (SOUTH It is too narrow for most insects.) OBJECT DAMP-CAVE + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (DOWN Are you out of your mind?) OBJECT CHASM-ROOM + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP You cannot reach the rope.) OBJECT TORCH-ROOM + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP You cannot go upstream due to strong currents.) OBJECT +RIVER-1 + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP You cannot go upstream due to strong currents.) OBJECT +RIVER-2 + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP You cannot go upstream due to strong currents.) OBJECT +RIVER-3 + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP You cannot go upstream due to strong currents.) OBJECT +RIVER-4 + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (UP You cannot go upstream due to strong currents.) OBJECT +RIVER-5 + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (DOWN It's a long way...) OBJECT ARAGAIN-FALLS + + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (SOUTH Storm-tossed trees block your way.) OBJECT +CANYON-VIEW + *** Compilation error: PROPERTY-DOESNT-MATCH-SPEC + Relevant values: (DOWN You wouldn't fit and would die if you could.) OBJECT +SHAFT-ROOM +Abstracting SS:DUNGEON. +Loading SS:GLOBALS.ZIL.45 and compiling it. +Abstracting SS:GLOBALS. +Loading SS:CLOCK.ZIL.5 and compiling it. +Abstracting SS:CLOCK. +Loading SS:LOOP.ZIL.29 and compiling it.Command received from user JEFF. +Killing plan WASTE-MIMC.PLAN.2. + +Abstracting SS:LOOP. +Loading SS:PARSER.ZIL.57 and compiling it.Command received from user JEFF. +Killing plan WASTE-MIMC.PLAN.1. +Compiler killed. +Compiler died. +Used 1:43.7 in 00:02:24. diff --git a/dungeon.zabstr b/dungeon.zabstr new file mode 100644 index 0000000..9ceb5dc --- /dev/null +++ b/dungeon.zabstr @@ -0,0 +1,1027 @@ + + +> + + + + + + + + + + + + + + + + + + + + + + + + + +Tag, Seeman%<| +Seid Ihr Euch der Gr%o%se Eurer S%unden vor den G%ottern bewu%st?| +Es steht geschrieben, da%s Ihr zwischen Steinen zermalmt werden sollt.| +Sollen die zornigen G%otter Eure %Uberreste in das Kneippbecken werfen?| +Wahrhaftig Eure Augen sollten mit einem spitzen Stock geblendet werden!| +Bis ans Ende dieser Erde sollt Ihr wandern,| +Und in den Hades am Ende Eurer Tage sollt Ihr verbannt werden.| +Wahrhaftig Ihr sollt b%ussen f%ur eure Schlauheit.")> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Willkommen in Zork!| +| +Zork ist ein Spiel voller Abenteuer, Gefahren und gemeiner Schlauheit Beim. Spielen wirst du einige der wundersamsten Welten entdecken, die irgend ein Sterblicher gesehen hat. Kein Heimcomputer sollte ohne dieses Spiel sein.%<" +) (SIZE 2)> + + + + +Vor nur zehn kurzen Tagen hatte ich nur die Aussicht auf eine chancenlose Stelle als Doktor. Jetzt habe ich eine vielversprechende Zukunft und mache wirkliche Zorkknete.%< +| +Die Technische Uni Hack kann diese fantastischen Resultate nicht jedem versprechen. Aber, einen Doktortitel von der Hack TU malt auch deine Zukunft rosiger aus." +)> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Dieser Raum wurde mit Absicht freigelassen%<." +)> + +zum Steingrab%<." +)> +Absto%sen%<.| + Um ans Land zur%uckzukehen, sage: %>Landen%< oder gib die Richtung, in der du das Boot steuern m%ochtest, an.| +| +Garantie:| +| + Dieses Boot hat eine Garantie mit einer Laufzeit von einer Tausendstelsekunde, die mit dem Kaufsdatum oder dem Datum der ersten Benutzung beginnt.| +| +Warnung:| + Dieses Boot ist aus d%unnem Plastik. Hals und Beinbruch!")> + + + + Hochwasserschutzdamm No.3| +| +Hochwasserschutzdamm No.3 wurde im Jahr 783 des Gro%sen Untergrund +Reiches errichtet, um den Gletschflu%s zu b%andigen. Diese Arbeit wurde +von einem Zuschu%s im Betrag von 37 Millionen Zorkkneten von eurem +allmaechtigen lokalen Tyranen F%urst Kleingeist Flachkopf dem +%Au%sersten unterstuetzt. Diese eindrucksvolle Baustelle besteht aus +115.000 Kubikmetern von Zement, ist in der Mitte 86 Meter hoch und 64 +Meter Breit an der Spitze. Der See, der hinter dem Damm gemacht wurde, +hat ein Volumen von 0,65 Milliarden Kubikmetern, eine Fl%ache von 4 +Millionen Quadratmetern und eine K%ustenlinie von 12 Tausend Metern.| +| +Der Bau des Hochwasserschutzdammes No.3 hat 112 Tage vom Anfang der +Bauarbeiten bis zu seiner Einweihung gedauert. Gebraucht wurde eine +Arbeitsmannschaft von 384 Sklaven, 34 Sklavenhaltern, 12 Ingenieuren, 2 +Friedenstauben und einer au%sergew%ohnlichen Weihnachtsgans. Die Arbeit +wurde %ubersehen von einer kommandierenden Mannschaft von 2345 +B%urokraten, 2347 Sekret%aren und Sekret%arinnen (mindestens zwei davon +konnten tippen), 12.256 Leuten, die sich mit Papieren besch%aftigten, +52.469 Stempelexperten, 245.193 Leuten, die sich mit der l%acherlichen +B%urokratie auskannten und fast einer Million von toten B%aumen.| +| +Jetzt wollen wir einige der au%sergew%ohnlichen Merkmale des +Schutzdammes No.3 vorf%uhren, indem wir eine F%uhrung durch das Projekt +machen:| +| +1) Du beginnst die F%uhrung hier in der Vorhalle des Damms. Du wirst auf +der rechten Seite feststellen, da%s...")> + + + Frobozz <---| +Zauberschmiere Gesellschaft| +| + Eine Allzweckschmiere")> + + + + + + + + + + + + + +> +> +> +> +> +> +> +> +> +> +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Privat%<, und ein Pfad f%uhrt nach S%uden %uber den oberen Damm." +) (DESC "Eingangshalle zum Damm") (SUED TO DAM-ROOM) (NORD TO MAINTENANCE-ROOM) +(OST TO MAINTENANCE-ROOM) (FLAGS RLANDBIT ONBIT)> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Granitwand%< in den Fels eingraviert. Nach Osten gibt es einen langen Durchgang, und dort ist auch eine steile Metalrutsche, die sich nach unten windet. N%ordlich davon gibt es eine kleine %Offnung." +) (DESC "Sch%uttenzimmer") (OST TO COLD-PASSAGE) (NORD TO MINE-ENTRANCE) ( +RUNTER TO CELLAR) (FLAGS RLANDBIT) (GLOBAL SLIDE)> +> +> +> +> + \ No newline at end of file diff --git a/dungeon.zap b/dungeon.zap new file mode 100644 index 0000000..6e84a86 --- /dev/null +++ b/dungeon.zap @@ -0,0 +1,78 @@ + + + .FUNCT GRATING-EXIT:ANY:0:0 + ZERO? GRATE-REVEALED /?CCL3 + FSET? GRATE,OPENBIT \?CCL6 + RETURN GRATING-ROOM +?CCL6: PRINTI "Das Gitter ist geschlossen." + CRLF + ICALL2 THIS-IS-IT,GRATE + RFALSE +?CCL3: PRINTI "In die Richtung kannst du nicht gehen." + CRLF + RFALSE + + + .FUNCT TREASURE-INSIDE:ANY:0:0 + EQUAL? PRSA,V?OPEN \FALSE + ICALL2 SCORE-OBJ,EMERALD + RFALSE + + + .FUNCT IN-MAZE?:ANY:1:1,PLACE + EQUAL? PLACE,MAZE-1,MAZE-2,MAZE-3 /TRUE + EQUAL? PLACE,MAZE-4,MAZE-5,MAZE-6 /TRUE + EQUAL? PLACE,MAZE-7,MAZE-8,MAZE-9 /TRUE + EQUAL? PLACE,MAZE-10,MAZE-11,MAZE-12 /TRUE + EQUAL? PLACE,MAZE-13,MAZE-14,MAZE-15 /TRUE + EQUAL? PLACE,DEAD-END-1,DEAD-END-2,DEAD-END-3 /TRUE + EQUAL? PLACE,DEAD-END-4 /TRUE + RFALSE + + + .FUNCT CANYON-VIEW-F:ANY:1:1,RARG + EQUAL? RARG,M-BEG \FALSE + EQUAL? PRSA,V?LEAP \FALSE + ZERO? PRSO \FALSE + ICALL2 JIGS-UP,STR?181 + RTRUE + + + .FUNCT GO:ANY:0:0 +?FCN: CALL QUEUE,I-FIGHT,-1 + PUT STACK,0,1 + ICALL QUEUE,I-SWORD,-1 + CALL QUEUE,I-THIEF,-1 + PUT STACK,0,1 + ICALL QUEUE,I-CANDLES,40 + ICALL QUEUE,I-LANTERN,200 + PUTP INFLATED-BOAT,P?VTYPE,NONLANDBIT + ADD DEF1,2 + PUT DEF1-RES,1,STACK + ADD DEF1,4 + PUT DEF1-RES,2,STACK + ADD DEF2B,2 + PUT DEF2-RES,2,STACK + ADD DEF2B,4 + PUT DEF2-RES,3,STACK + ADD DEF3A,2 + PUT DEF3-RES,1,STACK + ADD DEF3B,2 + PUT DEF3-RES,3,STACK + SET 'HERE,WEST-OF-HOUSE + ICALL2 THIS-IS-IT,MAILBOX + CLEAR -1 + ICALL1 INIT-STATUS-LINE + CRLF + FSET? HERE,TOUCHBIT /?CND1 + ICALL1 V-VERSION + CRLF +?CND1: SET 'LIT,TRUE-VALUE + SET 'WINNER,ADVENTURER + SET 'PLAYER,WINNER + MOVE WINNER,HERE + ICALL1 V-LOOK + ICALL1 MAIN-LOOP + JUMP ?FCN + + .ENDI diff --git a/dungeon.zil b/dungeon.zil new file mode 100644 index 0000000..824a1dd --- /dev/null +++ b/dungeon.zil @@ -0,0 +1,2720 @@ +"1DUNGEON for + Zork I: The Great Underground Empire + (c) Copyright 1983 Infocom, Inc. All Rights Reserved. + -- GERMAN EDITION" + + + +> + +"SUBTITLE OBJECTS" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Tag, Seeman%<| +Seid Ihr Euch der Gr%o%se Eurer S%unden vor den G%ottern bewu%st?| +Es steht geschrieben, da%s Ihr zwischen Steinen zermalmt werden sollt.| +Sollen die zornigen G%otter Eure %Uberreste in das Kneippbecken werfen?| +Wahrhaftig Eure Augen sollten mit einem spitzen Stock geblendet werden!| +Bis ans Ende dieser Erde sollt Ihr wandern,| +Und in den Hades am Ende Eurer Tage sollt Ihr verbannt werden.| +Wahrhaftig Ihr sollt b%ussen f%ur eure Schlauheit." )> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Willkommen in Zork!| +| +Zork ist ein Spiel voller Abenteuer, Gefahren und gemeiner Schlauheit Beim. Spielen wirst du einige der wundersamsten Welten entdecken, die irgend ein Sterblicher gesehen hat. Kein Heimcomputer sollte ohne dieses Spiel sein.%<") + (SIZE 2)> + + + + + + + + + +Vor nur zehn kurzen Tagen hatte ich nur die Aussicht auf eine chancenlose Stelle als Doktor. Jetzt habe ich eine vielversprechende Zukunft und mache wirkliche Zorkknete.%< +| +Die Technische Uni Hack kann diese fantastischen Resultate nicht jedem versprechen. Aber, einen Doktortitel von der Hack TU malt auch deine Zukunft rosiger aus.")> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Dieser Raum wurde mit Absicht freigelassen%<.")> + + + +To Stone Barrow%<." +"Die Karte zeigt einen Wald mit drei Lichtungen. Die gr%osste Lichtung beherbergt ein Haus. Drei Pfade verlassen die grosse Lichtung. Einer der Pfade, der nach SW fuehrt, hat ein Schild %>zum Steingrab%<.")> + +Absto%sen%<.| + Um ans Land zur%uckzukehen, sage: %>Landen%< oder gib die Richtung, in der du das Boot steuern m%ochtest, an.| +| +Garantie:| +| + Dieses Boot hat eine Garantie mit einer Laufzeit von einer Tausendstelsekunde, die mit dem Kaufsdatum oder dem Datum der ersten Benutzung beginnt.| +| +Warnung:| + Dieses Boot ist aus d%unnem Plastik. Hals und Beinbruch!")> + + + + + + + + Flood Control Dam #3| +| +FCD#3 was constructed in year 783 of the Great Underground Empire to +harness the mighty Frigid River. This work was supported by a grant of +37 million zorkmids from your omnipotent local tyrant Lord Dimwit +Flathead the Excessive. This impressive structure is composed of +370,000 cubic feet of concrete, is 256 feet tall at the center, and 193 +feet wide at the top. The lake created behind the dam has a volume +of 1.7 billion cubic feet, an area of 12 million square feet, and a +shore line of 36 thousand feet.| +| +The construction of FCD#3 took 112 days from ground breaking to +the dedication. It required a work force of 384 slaves, 34 slave +drivers, 12 engineers, 2 turtle doves, and a partridge in a pear +tree. The work was managed by a command team composed of 2345 +bureaucrats, 2347 secretaries (at least two of whom could type), +12,256 paper shufflers, 52,469 rubber stampers, 245,193 red tape +processors, and nearly one million dead trees.| +| +We will now point out some of the more interesting features +of FCD#3 as we conduct you on a guided tour of the facilities:| +| + 1) You start your tour here in the Dam Lobby. You will notice +on your right that....%<" ) + (TEXT +"%> Hochwasserschutzdamm No.3| +| +Hochwasserschutzdamm No.3 wurde im Jahr 783 des Gro%sen Untergrund +Reiches errichtet, um den Gletschflu%s zu b%andigen. Diese Arbeit wurde +von einem Zuschu%s im Betrag von 37 Millionen Zorkkneten von eurem +allmaechtigen lokalen Tyranen F%urst Kleingeist Flachkopf dem +%Au%sersten unterstuetzt. Diese eindrucksvolle Baustelle besteht aus +115.000 Kubikmetern von Zement, ist in der Mitte 86 Meter hoch und 64 +Meter Breit an der Spitze. Der See, der hinter dem Damm gemacht wurde, +hat ein Volumen von 0,65 Milliarden Kubikmetern, eine Fl%ache von 4 +Millionen Quadratmetern und eine K%ustenlinie von 12 Tausend Metern.| +| +Der Bau des Hochwasserschutzdammes No.3 hat 112 Tage vom Anfang der +Bauarbeiten bis zu seiner Einweihung gedauert. Gebraucht wurde eine +Arbeitsmannschaft von 384 Sklaven, 34 Sklavenhaltern, 12 Ingenieuren, 2 +Friedenstauben und einer au%sergew%ohnlichen Weihnachtsgans. Die Arbeit +wurde %ubersehen von einer kommandierenden Mannschaft von 2345 +B%urokraten, 2347 Sekret%aren und Sekret%arinnen (mindestens zwei davon +konnten tippen), 12.256 Leuten, die sich mit Papieren besch%aftigten, +52.469 Stempelexperten, 245.193 Leuten, die sich mit der l%acherlichen +B%urokratie auskannten und fast einer Million von toten B%aumen.| +| +Jetzt wollen wir einige der au%sergew%ohnlichen Merkmale des +Schutzdammes No.3 vorf%uhren, indem wir eine F%uhrung durch das Projekt +machen:| +| +1) Du beginnst die F%uhrung hier in der Vorhalle des Damms. Du wirst auf +der rechten Seite feststellen, da%s...")> + + + + + + Frobozz Magic Gunk Company <---| + All-Purpose Gunk") + (TEXT +" ---> Frobozz <---| +Zauberschmiere Gesellschaft| +| + Eine Allzweckschmiere")> + + + + + + + + + + + + + + + + + + + + + + + + + + + +"SUBTITLE ROOMS" + +"SUBTITLE CONDITIONAL EXIT FLAGS" + +> +> +> +> +> +> +> +> +> +> +> + +"SUBTITLE FOREST AND OUTSIDE OF HOUSE" + + + + + + + + + + + + + + + + + + + + + + + + + + + ,GRATING-ROOM) + (T + + + )>) + (T + )>> + + + + )>> + + + + +"SUBTITLE HOUSE" + + + + + + + + + +"SUBTITLE CELLAR AND VICINITY" + + + + + + + + + + + + + + + + + +"SUBTITLE MAZE" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) + (T + )>> + + + + + + + + + + + + + + +"SUBTITLE CYCLOPS AND HIDEAWAY" + + + + + + + + +"SUBTITLE RESERVOIR AREA" + + + + + + + + + + + + + + + +"SUBTITLE MIRROR ROOMS AND VICINITY" + + + + + + + + + + + + + + + + + + + + +"SUBTITLE ROUND ROOM AND VICINITY" + + + + + + + + + + + + + + + + +"SUBTITLE HADES ET AL" + + + + + + + + +"SUBTITLE DOME, TEMPLE, EGYPT" + + + + + + + + + + + + + + + +"SUBTITLE FLOOD CONTROL DAM #3" + + + +Privat%<, und ein Pfad f%uhrt nach S%uden %uber den oberen Damm.") + (DESC "Eingangshalle zum Damm") + (SUED TO DAM-ROOM) + (NORD TO MAINTENANCE-ROOM) + (OST TO MAINTENANCE-ROOM) + (FLAGS RLANDBIT ONBIT)> + + + + +"SUBTITLE RIVER AREA" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > + + )>> + + +"SUBTITLE COAL MINE AREA" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"SUBTITLE COAL MINE" + + + + + + + + + +Granitwand%< in den Fels eingraviert. Nach Osten gibt es einen langen Durchgang, und dort ist auch eine steile Metalrutsche, die sich nach unten windet. N%ordlich davon gibt es eine kleine %Offnung.") + (DESC "Sch%uttenzimmer") + (OST TO COLD-PASSAGE) + (NORD TO MINE-ENTRANCE) + (RUNTER TO CELLAR) + (FLAGS RLANDBIT) + (GLOBAL SLIDE)> + +;"RANDOM TABLES FOR WALK-AROUND" + +> + +> + +> + +> + +;"The GO routine must live here." + +> ;"ints as in original - and -NE QUEUE" + + ;> + > + + ;> + + ;> + + > + > + > + > + > + > + + + + + + > + + )> + + + + + + + > \ No newline at end of file diff --git a/file.zil b/file.zil new file mode 100644 index 0000000..9fd6731 --- /dev/null +++ b/file.zil @@ -0,0 +1 @@ +"W. W. W. U. SW. E. S. SE." \ No newline at end of file diff --git a/flush.cmd b/flush.cmd new file mode 100644 index 0000000..24aa51f --- /dev/null +++ b/flush.cmd @@ -0,0 +1 @@ +fdele /all:_*.*,*.temp/keep:2/spec:mud,msubr/delfn:*.* diff --git a/g.actions b/g.actions new file mode 100644 index 0000000000000000000000000000000000000000..9882d2cbfe3c736ab66d9921a3af2ec11449e440 GIT binary patch literal 75264 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°8{$;v#GZH%29dPrBUZppVx8OmWa2$|R&6yw1a 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 J?|+K|{}1B}X@UR% literal 0 HcmV?d00001 diff --git a/g.deaths b/g.deaths new file mode 100644 index 0000000..a4489e9 --- /dev/null +++ b/g.deaths @@ -0,0 +1,322 @@ + +*** BELOW ARE THE SEVERAL WAYS TO DIE IN ZORK I *** + +>BRUSH TEETH WITH GUNK +"Well, you seem to have been brushing your teeth with some sort of glue. As a result, your mouth gets glued together (with your nose) and you die of respiratory failure." + + +>BURN LEAVES +"The leaves burn, and so do you." + + +>KILL THIEF WITH KNIFE +"As the knife approaches its victim, your mind is submerged by an +overmastering will. Slowly, your hand turns, until the rusty blade +is an inch from your neck. The knife seems to sing as it savagely +slits your throat."strange phrase in English???? + + +>JUMP OF CLIFF +"It's a shame the leap you just attempted has done you in." + + +(NOTE: IN THE BOAT) +"You are lifted up by the rising river! You try to swim, but the +currents are too strong. You come closer, closer to the awesome +structure of Flood Control Dam #3. The dam beckons to you. +The roar of the water nearly deafens you, but you remain conscious +as you tumble over the dam toward your certain doom among the rocks at its base." + + + +"Unfortuneately, you have drowned yourself." + + +"The rising water carries the boat over the dam, down the river, and over the falls. Tsk, tsk." + +>LOOK AT CYCLOPS +"The cyclops, tired of all of your games and trickery, grabs you firmly. +As he licks his chops, he says \"Mmm. Just like Mom used to make 'em.\" +\" +It's nice to be appreciated." + + +>BURN THE BODIES (IN HADES) +"The voice of the guardian of the dungeon booms out from the darkness, \"Your disrespect costs you your life!\" and places your head on a sharp pole." + + + +>BURN THE BLACK BOOK +"A booming voice says \"Wrong, cretin!\" and you notice that you have +turned into a pile of dust. How, I can't imagine." + + + +>WALK NORTH (INTO THE GAS ROOM) + +** BOOOOOOOOOOOM ** + + +(NOTE: THE RAINBOW GIVES WAY) +"The structural integrity of the rainbow is severely compromised, leaving you hanging in midair, supported only by water vapor. Bye." + + +>PUT MYSELF IN RIVER +"You splash around for a while, fighting the current, then you drown." + + +... +"Unfortunately, the magic boat doesn't provide protection from +the rocks and boulders one meets at the bottom of waterfalls. +Including this one." + + +THE BOAT DEFLATES... +"Another pathetic sputter, this time from you, heralds your drowning." + + +THE BOAT DEFLATES... +"In other words, fighting the fierce currents of the Frigid River. You +manage to hold your own for a bit, but then you are carried over a +waterfall and into some nasty rocks. Ouch!" + + +(NOTE: IF YOU DIG TOO DEEP) +"The hole collapses, smothering you." + + +DITTO +"That was just a bit too far down." + + + +FIGHTING A VILLAIN... +"It appears that that last blow was too much for you. I'm afraid you +are dead." + + +DITTO +"Well, you really did it that time. Is suicide painless?" + + + +>THROW THING AT ME +"The THING hits you squarely in the head. Normally, this wouldn't do much damage, but by incredible mischance, you fall over backwards trying to duck, and break your neck, justice being swift and merciful in the Great Underground Empire." copy from text. + + +>WALK NORTH +"Oh, no! You have walked into a den of hungry grues and it's dinner time!" copy + +DITTO +"Oh, no! You have walked into the slavering fangs of a lurking grue!"copy + +>ATTACK MYSELF +"If you insist.... Poof, you're dead!" + + + +*** BELOW ARE SOME MORE MISCELLANEOUS TEXT STRINGS *** + +>TAKE THE SWORD AND THE LAMP +"Those things aren't here!" + + +>LOOK AT THE THING +"You can't see that here!" (RENATA: does the word 'that' depend on gender?) no + +>PERSON, TAKE THE SWORD +"The PERSON seems confused. ""I don't see that here!"" +"Der PERSON scheint verwirrt""Ich sehe das hier nicht!"" + +>CLIMB STAIRS +"You should say whether you want to go up or down." + + +>SAILOR, GO AWAY +"You can't talk to the sailor that way." + + +>LOOK AT SAILOR +"There is no sailor to be seen." + + +>HELLO, SAILOR +"You seem to be repeating yourself." + + +>HELLO, SAILOR +"I think that phrase is getting a bit worn out." + + +>HELLO, SAILOR +"Nothing happens here." + + +>DIG IN GROUND +"The ground is too hard for digging here." + + +>LOOK AT GRUE +"There is no grue here, but I'm sure there is at least one lurking in the darkness nearby. It would be wise keep an eye on your light source!" + + +>LISTEN TO GRUE +"It makes no sound but is always lurking in the darkness nearby." + + +>TALK TO MYSELF +"Talking to yourself is said to be a sign of impending mental collapse."copy + +>WAKE MYSELF UP +"You're already wide awake!" + + +>EAT MYSELF +"Auto-cannibalism is not the answer." + + +>KILL MYSELF +"Suicide is not the answer." + + +>THROW MYSELF AT THE TROLL +"Why don't you just walk like normal people?" + + +>TAKE ME +"How romantic!" + + +>LOOK AT MYSELF +"Your image in the mirror looks tired." + + +>LOOK AT MYSELF +"That's difficult unless your eyes are prehensile." + + +>WHAT IS A ZORKMID +"The zorkmid is the unit of currency of the Great Underground Empire." + + +>FIND ZORKMID +"The best way to find zorkmids is to go out and look for them." + + +*** BELOW ARE RESPONSES GIVEN WHEN YOU INPUT IS UNCLEAR *** +(GENERAL NOTES: IN THE GAME, IF YOU MISSPELL A WORD, THE GAME WILL TELL YOU +IT'S DOESN'T KNOW THE WORD. BUT THEN YOU MAY TYPE >OOPS "WORD", SPELLING IT CORRECTLY, SO YOU WON'T HAVE TO RETYPE THE WHOLE INPUT.) + + +(NOTE: IF YOU TYPE NOTHING, AND JUST HIT RETURN) +"I beg your pardon?" + + +(NOTE: IF YOU TYPE A PERIOD AND THEN A RETURN WITH NO WORDS) +"I can't help your clumsiness." + + +(NOTE: IF YOU TYPE >OOPS SOMETHING AND THE SOMETHING WAS IN A QUOTE) +"Sorry, you can't correct mistakes in quoted text." + + +(NOTE: IF YOU TYPE ">OOPS WORD1 WORD2") +"Warning: only the first word after OOPS is used." + + +(NOTE: IF YOU TYPE "OOPS" AFTER YOU DIDN'T MISSPELL SOMETHING) +"There was no word to replace!" + + +(NOTE: IF YOU TYPE "OOPS" AFTER AN INCOMPLETE INPUT GAME) +"It's difficult to repeat fragments." + + +(NOTE: IF YOU TYPE "AGAIN" AFTER A BAD SENTENCE INPUT) +"That would just repeat a mistake." +"Das wuerde den Fehler nur wiederholen." + + +"That sentence was not understood." + + + +"There were too many nouns in that sentence." + + + +"Please consult your manual for the correct way to talk to other people or creatures." + +The word is not in the story's vocabulary of understanding." + + +>LOOK AT THE DIG (NOTE: DIG IS RECOGNIZED ONLY AS A VERB) +"You used the word "dig" in a way that I don't understand." +"Du hast das Wort "graben" so gebraucht, dass ich es nicht verstehen kann." + +>DOG THE TROLL +"There was no verb in that sentence!" + + + +"That sentence isn't recognized by the story." + + +>WHO IS TROLL +"That question can't be answered." + + +>TROLL, LOOK AT THE BUTTON +"I don't understand! What are you referring to?" + + +>LOOK AT THE RED +"There seems to be a noun missing in that sentence!" + + +"It's too dark to see!" + + +>DROP SWORD +"You don't have that!" + + +"You don't have the SWORD." + + +>READ THE LEAFLET +(taking the leaflet first) + + +The leaflet says... ect. +"Auf dem Blatt steht.......etc. " We might have to talk about the syntax here??? Jeff. + + +>LOOK AT THE RED +It's not clear what you're referring to." + + + +>LOOK AT THE SWORD AND LAMP +You can't use multiple direct objects with "look." +"Man kann mehrere Akkusative nicht mit "ansehen +I need more feedback on that, R. Yes, Hildegunde also! + + +>HIT THE TROLL WITH SWORD AND KNIFE +You can't use multiple indirect objects with "hit." +need mor feedback. + +>LOOK +"It's too dark to see." + + +>TAKE THE SWORD AND LAMP +Sword: Taken. +The other object that you mentioned is not here. +"Schwert: genommen." +"Das andere Ding, von dem du sprichst, ist nicht hier." + +>TAKE ALL +"There's nothing here you can take." + diff --git a/g.fight b/g.fight new file mode 100644 index 0000000000000000000000000000000000000000..895bcf1dc7e16de3ee8d455b194dffb38a92d8a2 GIT binary patch literal 13779 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 THE WHITE HOUSE +"Untersuche das weisse Haus genau" + +The house is a beautiful colonial house which is painted white. It is clear that the owners must have been extremely wealthy. +"Das Haus ist ein schoenes altes Herrenhaus, das weiss verputzt ist. Man sieht, dass die Besitzer enorm reich gewesen sein mussten.". + +>OPEN THE MAILBOX +Opening die small mailbox reveals eine leaflet. +"der Zettel" + +>TAKE LEAFLET +Taken. + +>READ LEAFLET +"WELCOME TO ZORK! +"Willkommen in Zork!" + +ZORK is a game of adventure, danger, and low cunning. In it you will explore some of the most amazing territory ever seen by mortals. No computer should be without one!" +"Zork ist ein Spiel voller Abenteuer, Gefahren und gemeiner Schlauheit Beim Spielen wirst du einige der wundersamsten Welten entdecken, die irgend ein Sterblicher gesehen hat . Kein Heimcomputer sollte ohne dieses Spiel sein." +>GO NORTH +"Geh nach Norden" +North of House +"Noerdlich vom Haus" +You are facing the north side of a white house. There is no door here, and all the windows are boarded up. To the north a narrow path winds through the trees. +"Du stehst vor der Nordseite eines weissen Hauses. Es gibt hier keine Tuer, und alle Fenster sind mit Brettern vernagelt. Nach Norden windet sich ein schmaler Pfad durch die Baeume.". +>N +Forest Path +This is a path winding through a dimly lit forest. The path heads north-south +here. One particularly large tree with some low branches stands at the edge of the path. +"Dieser Pfad windet sich durch den duesteren Wald. Er verlaeuft von Norden nach Sueden. Ein besonders grosser Baum mit einigen niederen Aesten steht am Rande des Pfades." + +>CLIMB TREE +Up a Tree +You are about 10 feet above the ground nestled among some large branches. The nearest branch above you is above your reach. +Beside you on the branch is a small bird's nest. +"Du bist ungefaehr 3 Meter ueber dem Boden umgeben von grossen Aesten Du kannst den naechsten Zweig ueber dir unmoeglich erreichen. + + +In the bird's nest is a large egg encrusted with precious jewels, apparently scavenged by a childless songbird. The egg is covered with fine gold inlay, and ornamented in lapis lazuli and mother-of-pearl. Unlike most eggs, this one is hinged and closed with a delicate looking clasp. The egg appears extremely fragile. +"In dem Vogelnest ist ein grosses mit kostbaren Juwelen besetztes Ei, das . scheinbar von einem kinderlosen Singvogel geraubtwaurde. Das Ei ist von einer feinen Goldschicht ueberzogen und mit Lapislazuli und Perlmutter geschmueckt.. Im Gegensatz zu einem gewoehnlichen Ei, hat dieses ein Scharnier und ist mit einem eleganten Verschluss versehen. Das Ei sieht sehr zerbrechlich aus. +>TAKE EGG + +Taken. + +>EXAMINE EGG +Die jewel-encrusted egg is closed. +geschlossen + +>OPEN EGG +You have neither the tools nor the expertise. +"du hast weder das Werkzeug noch das Geschick." +>D +Forest Path + +>N +Clearing +You are in a clearing, with a forest surrounding you on all sides. A path leads south. +On the ground is a pile of leaves. +"Lichtung" +"du stehst auf einer Lichtung, und ein Wald umgibt dich von allen Seiten. Ein Pfad fuehrt nach Sueden. +Auf dem Boden liegt ein Blaetterhaufen." + +>TAKE LEAVES +In disturbing the pile of leaves, a grating is revealed. +"Beim Stoebern im Blaetterhaufen kommt ein Gitter zum Vorschein." +Taken. + +>EXAMINE GRATING +Die grating is closed. +"Das Gitter ist geschlossen." + +>E +Forest +This is a dimly lit forest, with large trees all around. +"Dies ist ein duesterer Wald mit grossen Baeumen rundherum." + +>E +Forest +The forest thins out, revealing impassable mountains. +"Der Wald lichtet sich und unueberwindliche Bergekommen zum Vorsacheint." + +>W +Forest +You hear in the distance the chirping of a song bird. +"In der Ferne hoerst du das Zwitschern eines Singvogels." + +>LISTEN TO SONG BIRD +You can't hear the songbird now. +"Jetzt kannst du den Singvogel nicht hoeren." + +>W +Forest Path + +>S +North of House + +>E +Behind House +You are behind the white house. A path leads into the forest to the east. In one corner of the house there is a small window which is slightly ajar. +"DLu bist hinter dem weissen Haus. Nach Osten fuehrt in Pfad in den Wald.. An einem Ende der Hauswand befindet sich ein kleines Fenster, das einen Spalt offen steht." +>E +Clearing +You are in a small clearing in a well marked forest path that extends to the east and west. +"Du stehst aufeiner kleinen Lichtung auf einem wohlmarkierten Waldpfad, der sich nach Osten und Westen erstreckt." + +>S +Forest +This is a dimly lit forest, with large trees all around. + +>N +Clearing +>E +Canyon View +You are at the top of the Great Canyon on its west wall. From here there is a marvelous view of the canyon and parts of the Frigid River upstream. Across the canyon, the walls of the White Cliffs join the mighty ramparts of the Flathead Mountains to the east. Following the Canyon upstream to the north, Aragain Falls may be seen, complete with rainbow. The mighty Frigid River flows out from a great dark cavern. To the west and south can be seen an immense forest, stretching for miles around. A path leads northwest. It is possible to climb down into the canyon from here. +"Blick auf Schlucht +du bist am oberen Rand derGross-Schlucht, auf dem Gipfel der Westwand. Von hier hat man einen wunderbaren Blick auf die Schlucht und flussaufwaerts auf den FlussGletsch. Gegenueber der Schlucht schliessen die Weissen Felsen de Gipfel der Hohlkopfberge nach Osten hin an. Verfolgt man die Schlucht flussaufwaerts nach Norden, dann kann man die Wiedermal Faelle, aus denen ein Regenbogen heraufsteigt, sehen. . Der maechtige Fluss Gletsch fliesst aus einer grossen dunklen Hoehle. Nach Westen und Sueden kann man einen enormen Wald sehen, der sich auf Kilometer hinzieht. Ein Pfad fuehrt nach Nordwesten. Es ist moeglich, von hier in die Schlucht hinunterzuklettern." +>D +Rocky Ledge +You are on a ledge about halfway up the wall of the river canyon. You can see from here that the main flow from Aragain Falls twists along a passage which it is impossible for you to enter. Below you is the canyon bottom. Above you is more cliff, which appears climbable. +Felsvorsprung +"du bist auf einem Vorsprung, der ungefaehr auf halber Hoehe auf der Wand der Flusschlucht liegt. du kannst von hier sehen, dass sich der groesste Teil der Wiedermal Faelle sich durch einen Durchgang windet, den du nicht passieren kannst. Unter dir ist derAbgrund Ueber dir gibt es weitereFelsen, dieerklimmbar scheinen." + +>D +Canyon Bottom +You are beneath the walls of the river canyon which may be climbable here. The lesser part of the runoff of Aragain Falls flows by below. To the north is a narrow path. +"Auf dem Grund der Schlucht +du bist der Flusschlucht, die hier eher zu erklettern sind. Der geringere Teil des Ablaufs der Wiedermal Faelle fliesst unter dir vorbei. Nach Norden fuehrt ein schmaler Pfad. " + +>N +End of Rainbow +You are on a small, rocky beach on the continuation of the Frigid River past the Falls. The beach is narrow due to the presence of the White Cliffs. The river canyon opens here and sunlight shines in from above. A rainbow crosses over the falls to the east and a narrow path continues to the southwest. +"Am Ende des Regenbogens +du bist am unteren Gletsch hinter den Wasserfaellen an einem schmalen steinigen Ufer . Das Ufer is wegen der Weissen Felsen schmal. Die Flusschlucht oeffnet sich hier, und Sonnenstrahlen fallen von oben.herein. Ein Regenbogen weist ueber die Faelle nach Osten, und ein schmaller Pfad fuehrt weiter nach Suedwesten." + +>WALK ON RAINBOW +Can you walk on water vapor? +"Kannst du auf Wasserdaempfen wandeln?" + +>SW +Canyon Bottom + +>U +Rocky Ledge + +>U +Canyon View + +>NW +Clearing + +>W +Behind House + +>S +South of House +You are facing the south side of a white house. There is no door here, and all the windows are boarded. +"Suedlich vom Haus +du stehst auf der Suedseite des weissen Hauses. Es gibt hier keine Tuer, und alle Fenster sind vernagelt." + +>N +The windows are all boarded. +"Die Fenster sind alle vernagelt." + +>OPEN WINDOWS +The windows are boarded and can't be opened. +"Die Fenster sind vernagelt und lassen sich nicht oeffnen." + +>E +Behind House + +>N +North of House + +>E +Behind House + +>OPEN WINDOW +With great effort, you open the window far enough to allow entry. +" Mit grosser Anstrengung oeffnest du das Fenster weit genug, um einzusteigen." + +>CLIMB THROUGH WINDOW + +Kitchen +You are in the kitchen of the white house. A table seems to have been used recently for the preparation of food. A passage leads to the west and a dark staircase can be seen leading upward. A dark chimney leads down and to the east is a small window which is open. +A bottle is sitting on the table. +Die glass bottle contains: +Eine quantity of water +On the table is an elongated brown sack, smelling of hot peppers. +"Kueche +du bist in der Kueche des weissen Hauses. Ein Tisch muss vor Kurzem zur Bereitung einer Mahlzeit benutzt worden sein. Ein Durchgang fuehrt nach Westen, und man kann eine dunkle Treppe sehen, die nach oben fuehrt. Ein dunkler Kamin fuehrt nach unten. Nach Osten ist ein kleines Fenster, das offen steht. +Auf dem Tischt steht eine Flasche +"Auf dem Tisch ist ein laenglicher brauner Sack. Er riecht nach Aepfeln." + +>TAKE SACK +Taken. + +>LOOK AT SACK +Die brown sack is closed. +"zugebunden" + +>OPEN SACK +Opening die brown sack reveals eine clove of garlic, and eine lunch. +"Der geoeffnete Sack enthaelt eine Knoblauchzehe und ein belegtes Brot." + +>SMELL GARLIC +Die smells like einer clove of garlic. + +>LOOK AT WATER +There's nothing special about die quantity of water. +"Es gibt nichts Auffallendes an der Wassermenge." + +>OPEN BOTTLE +Opened. + +>DRINK WATER +You have to be holding die glass bottle first. +"du musst die Glassflasche erst in der Hand halten." + +>GET BOTTLE +Taken. + +>DRINK WATER +It goes down well, quelling whatever thirst you might have had. + + +>U +You have moved into a dark place. +It is pitch black. You are likely to be eaten by a grue. +"Du bist in einem dunklen Ort gelandet. +Es ist stockdunkel. Es besteht die Moeglichkeit, dass du von einem Greuel gefressen wirst." + +>WHAT IS A GRUE +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. +"Was ist ein Greuel +Das Greuel ist ein boesartiges lauerndes Wesen in den dunklen Orten dieser Welt. Sein Lieblingsfressen besteht aus Abenteurern, aber sein unersaettlicher Appetit ist von seiner Furcht vor Licht gemaessigt Kein Greuel ist je bei Tageslicht gesehen worden, und nur wenige haben seine fuerchterlichen Krallen ueberlebt, um von dem grauenhaften Wesen zu erzaehlen." + +>D +Kitchen + +>W +Living Room +You are in the living room. There is a doorway to the east, a wooden door with strange gothic lettering to the west, which appears to be nailed shut, a trophy case, and a large oriental rug in the center of the room. +Above the trophy case hangs an elvish sword of great antiquity. +A battery-powered brass lantern is on the trophy case. +"Wohnzimmer +du bist im Wohnzimmer. Da sind eine Tuer nach Osten, eine vernagelte Holztuer mit fremden Runen, ein Trophaeenschrank und ein Perserteppich in der Mitte . Ueber dem Trophaeen Schrank haengt ein Elfenschwert aus dem Altertum. Eine batteriengespeiste Messingleuchte ist auf dem Trophaeenschrank ." + +>GET SWORD +Taken. + +>GET LAMP +Your load is too heavy. +"Last ist zu schwer." + +>LOOK AT LAMP +The lamp is turned off. +"Die Leuchte ist nicht an." + +>LOOK AT SWORD +There's nothing special about die sword. +"Es gibt nichts Besonderes an diesem Schwert." + +>E +Kitchen + +>TURN ON LAMP +You can't see any lamp here! +"du siehst hier keine Leuchte." + +>W +Living Room +A battery-powered brass lantern is on the trophy case. + +>I +You are carrying: +Eine sword +Eine glass bottle +Eine brown sack +Die brown sack contains: +Eine clove of garlic +Eine lunch +Eine pile of leaves +Eine jewel-encrusted egg +Eine leaflet + +>DROP FOOD, BOTTLE +lunch: Dropped. +glass bottle: Dropped. + +>GET LAMP +Taken. + +>E +Kitchen + +>U +You have moved into a dark place. +It is pitch black. You are likely to be eaten by a grue. + +>TURN ON LAMP +Die brass lantern is now on. +"Die Messingleuchte ist nun an." + +Attic +This is the attic. The only exit is a stairway leading down. +A large coil of rope is lying in the corner. +On a table is a nasty-looking knife. +"Speicher +Dies ist der Speicher. Der einzige Ausgang ist ein Treppenhaus nach unten. +Ein dickes aufgerolltes Seil liegt in der Ecke. +Auf einem Tisch liegt ein gefaehrlich aussehendes Messer." +>TAKE ROPE +Your load is too heavy. + +>I +You are carrying: +Eine brass lantern (providing light) +Eine sword +Eine brown sack +Die brown sack contains: +Eine clove of garlic +Eine pile of leaves +Eine jewel-encrusted egg +Eine leaflet + +>DROP LEAVES +Dropped. + +>DROP LEAFLET +Dropped. + +>GET ROPE +Taken. + +>L +Attic +This is the attic. The only exit is a stairway leading down. +A small leaflet is on the ground. +On the ground is a pile of leaves. +On a table is a nasty-looking knife. + +>GET KNIFE +Taken. + +>I +You are carrying: +Eine nasty knife +Eine rope +Eine brass lantern (providing light) +Eine sword +Eine brown sack +Die brown sack contains: +Eine clove of garlic +Eine jewel-encrusted egg + +>D +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +"Ein Pepperoni-Brot liegt hier." +>LOOK UNDER RUG +Underneath the rug is a closed trap door. As you drop the corner of the rug, the trap door is once again concealed from view. +"Unter dem Teppich ist eine geschlossene Falltuer. Wenn du den Teppich loslaesst, ist die Falltuer wieder versteckt." + +>MOVE THE RUG +With a great effort, the rug is moved to one side of the room, revealing the dusty cover of a closed trap door. +"Zieh am Teppich +Mit groesster Anstrengung ist der Teppich aus dem Weg gezerrt. Die einer geschlossenen Falltuere kommt zum Vorschein." + +>MOVE THE RUG +Having moved the carpet previously, you find it impossible to move it again. +"Nachdem du vorher den Teppich weggezogen hast, findest du es jetzt unmoeglich ihn zurueckzuziehen." + +>OPEN TRAP DOOR +The door reluctantly opens to reveal a rickety staircase descending into darkness. +"Die Tuer oeffnet sich muehsam, und bringt eine baufaellige Treppe zum Vorschein, die nach unten in die Dunkelheit fuehrt." + +>D +The trap door crashes shut, and you hear someone barring it. +Die Falltuer kracht zu, und du hoerst, dass jemand sie verriegelt." + +Cellar +You are in a dark and damp cellar with a narrow passageway leading north, and a crawlway to the south. On the west is the bottom of a steep metal ramp which is unclimbable. +Your sword is glowing with a faint blue glow. +"Keller +du bist in einem dunklen und muffigen Keller mit einem schmalen Durchgang nach Norden und einem niedrigen Tunnel nach Sueden. Im Westen ist das Ende einer steilen Metallrampe, die nicht erklimmbar ist. +>CLIMB UP RAMP +You try to ascend the ramp, but it is impossible, and you slide back down. +"du versuchst die Rampe hinaufzuklettern, aber das ist unmoeglich. du rutschst wieder runter." + +>S +East of Chasm +You are on the east edge of a chasm, the bottom of which cannot be seen. A narrow passage goes north, and the path you are on continues to the east. Your sword is no longer glowing. +"du bist am oestlichen Rand einer Spalte, deren Grund nicht zu sehen ist. Ein enger Durchgang geht nach Norden, und der Pfad, auf dem du bist, fuehrt nach Osten weiter. +dein Schwert leuchtet nicht mehr.". + +>E +Gallery +This is an art gallery. Most of the paintings have been stolen by vandals with exceptional taste. The vandals left through either the north or west exits. Fortunately, there is still one chance for you to be a vandal, for on the far wall is a painting of unparalleled beauty. +"Galerie +Dies ist eine Kunstgalerie. +Die meisten Gemaelde sind von Gangstern mit aussergewoehnlich gutem Geschmack gestohlen worden. Die Gangster sind entweder durch den Nord -oder den Westausgang abgehauen. Gluecklicherweise bleibt dir noch eine Chance auch ein Gangster zu werden, denn an der anderen Wand haengt ein Gemaelde von einmaliger Schoenheit." + +>TAKE PAINTING +Your load is too heavy. + +>N +Studio +This appears to have been an artist's studio. The walls and floors are splattered with paints of 69 different colors. Strangely enough, nothing of value is hanging here. At the south end of the room is an open door (also covered with paint). A dark and narrow chimney leads up from a fireplace; although you might be able to get up it, it seems unlikely you could get back down. +Loosely attached to a wall is a small piece of paper. +"Atelier +Dies scheint, ein Kuenstleratelier gewesen zu sein. Die Waende und Fussboeden sind mit Spritzern von 69 verschiedenen Farben bekleckst. Seltsamererweise haengt hier nichts Wertvolles. Am suedlichen Ende des Zimmers ist eine offene Tuer (auch mit Farbe bekleckst). Ein dunkler und schmaler Schornstein fuehrt vom Kamin hinauf. Es waere wahrscheinlich einfach fuer dich, dort hinaufzuklettern, aber die Chancen, dass du wieder runterkommst, sind gering. . +Lose an der Wand haengt ein kleines Stueck Papier." +>READ PAPER +(Taken) +Congratulations! + +You are the privileged owner of ZORK I: The Great Underground Empire, self-contained and self-maintaining universe. If used and maintained in accordance with normal operating practices for small universes, ZORK will provide many months of trouble-free operation. + +"Herzlichen Glueckwunsch! +du bist der priveligierte Besitzer von ZORK I: Das Grosse Unterirdische Imperium, ein unabhaengiges selbstversorgendes Universum Wenn es gemaess den Operationsregelnfuer kleine Universe benutzt und erhalten wird, dann wird ZORK auch viele Monate problemlos operieren." + + +>U +You can't get up there with what you're carrying. +"Mit dem, was du da schleppst, kannst du da nicht hinauf." + +>DROP ALL BUT SWORD,LAMP +ZORK owner's manual: Dropped. +nasty knife: Dropped. +rope: Dropped. +brown sack: Dropped. +jewel-encrusted egg: Dropped. + +>U +Kitchen + +>D +Only Santa Claus climbs down chimneys. +"Nur der Schornsteinfeger krabbelt in Schornsteine." + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. + +>OPEN TRAP DOOR +The door reluctantly opens to reveal a rickety staircase descending into darkness. + +>D +The trap door crashes shut, and you hear someone barring it. + +Cellar +Your sword is glowing with a faint blue glow. +"dein Schwert leuchtet mit einem schwachen blauen Schimmer." + +>N +The Troll Room +This is a small room with passages to the east and south and a forbidding hole leading west. Bloodstains and deep scratches (perhaps made by an axe) mar the walls. +"Das Trollzimmer +Dies ist ein kleines Zimmer mit Durchgaengen nach Osten und Sueden und einem furchterregenden Loch nach Westen.. Blutspuren und tiefe Kratzer (vielleicht von einer Axt) verschandeln die Waende." + +A nasty-looking troll, brandishing a bloody axe, blocks all passages out of the room. +Your sword has begun to glow very brightly. +The troll's swing almost knocks you over as you barely parry in time. + +"Ein widerlicher Troll, der eine schwingt, blockiert alle Ausgaenge aus dem Zimmer." +Dein Schwert leuchtet jetzt ganz hell . +Die geschwungene Axt haut dich bald um, denn du kannst sie kaum parieren." +" +>SAVE +To file (SAVE): 1..1Ok. + +>LOOK AT TROLL +A nasty-looking troll, brandishing a bloody axe, blocks all passages out of the room. +The flat of the troll's axe hits you delicately on the head, knocking you out. +"Die flache Seite der Axt trifft dich leicht am Kopf, und du wirst bewusstlos." + +>HIT TROLL WITH SWORD +You charge, but the troll jumps nimbly aside. +The axe crashes against the rock, throwing sparks! +"du greifst an, aber der Troll huepft leichtfuessig zu Seite. +Die Axt schmettert so hart gegen den Stein, dass Funken spruehen." + +>KILL TROLL WITH SWORD +A quick stroke, but the troll is on guard. +The axe sweeps past as you jump aside. +"Ein schneller Schlag, aber der Troll ist auf der Hut. +Die Axt streift vorbei, als du zur Seite springst." + +>KILL TROLL +(with der sword) +A good slash, but it misses the troll by a mile. +The flat of the troll's axe hits you delicately on the head, knocking you out. +"Guter Hieb, aber leider hat er den Troll um etwa einen Kilometer verpasst. +"Die flache Seite der Axt trifft dich leicht am Kopf, und du wirst bewusstlos." + +>KILL TROLL +(with der sword) +"(mit Schwert)" +It's curtains for the troll as your sword removes his head. +Almost as soon as die troll breathes his last breath, a cloud of sinister black fog envelops him, and when the fog lifts, the carcass has disappeared. +Your sword is no longer glowing. + +"Der Troll beisst ins Grass, als ihm dein Schwert den Kopf abschlaegt. Fast gleichzeitig mit dem letzten Atemzug des Trolls verhuellt ihn eine Wolke aus gespenstigem schwarzem Nebel, und wenn der Nebel sich hebt, ist die Leiche verschwunden. +dein Schwert leuchtet nicht mehr." + +>LOOK AT TROLL +You can't see any troll here! +"Hier gibt es keinen Troll mehr!" + +>DROP ALL BUT LAMP +sword: Dropped. + +>I +You are carrying: +Eine brass lantern (providing light) + +>S +Cellar + +>S +East of Chasm + +>E +Gallery +Fortunately, there is still one chance for you to be a vandal, for on the far wall is a painting of unparalleled beauty. + +>GET PAINTING + +Taken. + +>LOOK AT PAINTING +There's nothing special about die painting. + +>N +Studio +There is eine brown sack here. +Die brown sack contains: +Eine clove of garlic +There is eine rope here. +There is eine nasty knife here. +There is eine ZORK owner's manual here. +Someone carrying a large bag is casually leaning against one of the walls here. +He does not speak, but it is clear from his aspect that the bag will be taken only over his dead body. +"Jemand, der einen grossen Sack traegt, lehnt hier gegen eine Wand. +Er spricht kein Wort, aber es besteht kein Zweifel, dass er sich nur ueber seine eigene Leiche von dem Sack trennen wird." + +>U +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. + +>OPEN TROPHY CASE +Opened. + +>PUT PAINTING IN CASE +Done. + +>OPEN TRAP +The door reluctantly opens to reveal a rickety staircase descending into darkness. + +>D +The trap door crashes shut, and you hear someone barring it. + +Cellar + +>S +East of Chasm + +>E +Gallery + +>N +Studio +There is eine brown sack here. +Die brown sack contains: +Eine clove of garlic +There is eine rope here. +There is eine nasty knife here. +There is eine ZORK owner's manual here. + +>GET ROPE +Taken. + +>S +Gallery + +>W +East of Chasm + +>N +Cellar + +>N +The Troll Room +There is eine sword here. +There is eine bloody axe here. + +>E + +East-West Passage +This is a narrow east-west passageway. There is a narrow stairway leading down at the north end of the room. + +>E +Round Room +This is a circular stone room with passages in all directions. Several of them have unfortunately been blocked by cave-ins. +"Rundes Zimmer +Dies ist ein rundes turmartiges Zimmer mit Durchgaengen inalleRichtungen. Einige sind leider durch Einsturz blockiert ". + +>SE +Engravings Cave +You have entered a low cave with passages leading northwest and east. +There are old engravings on the walls here. +"Hoehle mit Einmeisselungen +du bist in eine Hoehle getreten, die Durchgaenge nach Norwesten und Osten hat. +Dort gibt es alte Einmeisselungen an den Waenden." + +>E +Dome Room +You are at the periphery of a large dome, which forms the ceiling of another room below. Protecting you from a precipitous drop is a wooden railing which circles the dome. +"Kuppelzimmer +du bist am Rand einer grossen Kuppel, die die Decke eines Raumes darunter formt. Ein hoelzernes Gelaender, das die Kuppel umgibt, beschuetzt dich vor dem Herunterfallen in eine steilen Abgrund." + +>TIE ROPE TO RAILING +The rope drops over the side and comes within ten feet of the floor. +"Das Seil faellt ueber die Seite und reicht bis zu 3 Metern ueber dem Boden." + +>CLIMB DOWN ROPE +Torch Room +This is a large room with a prominent doorway leading to a down staircase. Above you is a large dome. Up around the edge of the dome (20 feet up) is a wooden railing. In the center of the room sits a white marble pedestal. +A piece of rope descends from the railing above, ending some five feet above your head. +Sitting on the pedestal is a flaming torch, made of ivory. +"Fackelzimmer +Dies ist ein grosser Raum mit einem imponierenden Eingang, der zu einem nTreppenhaus fuehrt, das nach unten geht. Oben um den Rand der Kuppel (6.5 Meter ueber dir ist ein hoelzernes Gelaender. In der Mitte dieses Zimmers ruht ein Marmorpodest. Ein Seil haengt von dem Gelaender oben herunter und endet 1-2Meter ueber deinem Kopf. +Auf dem Podest ist eine brennende Fackel aus Elfenbein ." + +>GET TORCH + +Taken. + +>TURN OFF LAMP +Die brass lantern is now off. + +>I +You are carrying: +Eine torch (providing light) +Eine brass lantern + +>S +Temple +This is the north end of a large temple. On the east wall is an ancient inscription, probably a prayer in a long-forgotten language. Below the prayer is a staircase leading down. The west wall is solid granite. The exit to the north end of the room is through huge marble pillars. +There is eine brass bell here. +" Dies ist das Nordende eines grossen Tempels. Auf der Ostwand siehst du eine antike Inschrift, die wahrscheinlich ein Gebet in einer laengst vergessenen Sprache ist. Unter dem Gebet fuehrt ein Treppenhaus nach unten. Die Westwand ist aus Granit. Der Ausgang im Norden des Raumes fuehrt durch riesige Marmorsaeulen. +Es befindet sich hier eine." + +>E +Egyptian Room +This is a room which looks like an Egyptian tomb. There is an ascending staircase to the west. +The solid-gold coffin used for the burial of Ramses II is here. +"Dieser Raum sieht aus wie ein aegyptisches Grab. Im Westen ist eine Treppe nach oben.Der reingoldene Sarg, den man fuer das Begraebnis von Ramses II. benutzt hat ist hier." + +>GET COFFIN + +Taken. + +>LOOK AT COFFIN +Die gold coffin is closed. + +>W +Temple +There is eine brass bell here. + +>S +Altar +This is the south end of a large temple. In front of you is what appears to be an altar. In one corner is a small hole in the floor which leads into darkness You probably could not get back up it. +On the two ends of the altar are burning candles. +On the altar is a large black book, open to page 569. +"Dies ist das Suedende eines grossen Tempels. Vor dir ist eine Art Altar. In einer Ecke ist ein kleines Loch im Boden, das in absolute Dunkelheit fuehrt. +Es sieht nicht so aus, als ob du da je wieder rauskaemst. + + + +>READ BOOK +Commandment #12592 +12592.Gebot + +Oh ye who go about saying unto each: "Hello sailor": +Dost thou know the magnitude of thy sin before the gods? +Yea, verily, thou shalt be ground between two stones. +Shall the angry gods cast thy body into the whirlpool? +Surely, thy eye shall be put out with a sharp stick! +Even unto the ends of the earth shalt thou wander and Unto the land of the dead shalt thou be sent at last. +Surely thou shalt repent of thy cunning. +" Oh Ihr, die Ihr zueinander sagt:"Gegruesset seist Du, Seemann" +Seid Ihr Euch der Groesse Eurer Suenden vor den Goettern bewusst? +Es steht geschrieben, dass Ihr zwischen Steinen zermalmt werden sollt. +Sollen die zornigen Goetter Eure Ueberreste in das Kneippbecken werfen? +Wahrhaftig Eure Augen sollten mit einem spitzen Stock geblendet werden! +Bis ans Ende dieser Erde sollt Ihr wandern,. und in denHades am Ende Eurer Tage sollt Ihr verbannt werden. +Wahrhaftig Ihr sollt buessen fuer eure Schlauheit." +>HELLO SAILOR +Nothing happens here. + +>PRAY +Forest +This is a forest, with trees in all directions. To the east, there appears to be sunlight. + +>E +Forest Path +You hear in the distance the chirping of a song bird. + +>S +North of House + +>E +Behind House + +>W +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: +Eine painting + +>PUT COFFIN IN TROPHY CASE +Done. + +>GET COFFIN +Taken. + +>E +Kitchen + +>E +Behind House + +>E +Clearing + +>E +Canyon View + +>D +Rocky Ledge + +>D +Canyon Bottom + +>N +End of Rainbow + +>OPEN COFFIN +Opening die gold coffin reveals eine sceptre. + +>GET SCEPTRE + +Taken. + +>WAVE SCEPTRE +Suddenly, the rainbow appears to become solid and, probably, walkable (the giveaway seems to be the stairs and bannister) +A shimmering pot of gold appears at the end of the rainbow. +"Ploetzlich wird der Regenbogen zu einer Art Strasse und erscheint begehbar +(Treppen mit Gelaendererweckendiesen Eindruck). +Ein glitzernder goldener Topf erscheint am Ende des Regenbogens." + +>GET GOLD +Your load is too heavy. + +>SW +Canyon Bottom + +>U +Rocky Ledge + +>U +Canyon View + +>W +Forest + +>E +The rank undergrowth prevents eastward movement. +"Undurchdringliches Unterholz versperrt den Weg nach Osten." + +>N +Clearing + +>W +Behind House + +>W +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: +Eine painting + +>PUT COFFIN IN TROPHY CASE +Done. + +>E +Kitchen + +>E +Behind House + +>E +Clearing + +>E +Canyon View + +>D +Rocky Ledge + +>D +Canyon Bottom + +>N +End of Rainbow +At the end of the rainbow is a pot of gold. + +>GET GOLD + +Taken. + +>SW +Canyon Bottom + +>U +Rocky Ledge + +>U +Canyon View + +>W +Forest + +>N +Clearing + +>W +Behind House + +>W +Kitchen + +>PUT GOLD IN TROPHY CASE +You can't see any trophy case here! + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: +Eine gold coffin +Eine painting + +>PUT GOLD IN TROPHY CASE +Done. + +>I +You are carrying: +Eine sceptre +Eine torch (providing light) +Eine brass lantern + +>OOPS TROPHY +Done. + +>D +The trap door is closed. + +>OPEN DOOR +Welche door meinst du, die wooden door or die trap door? + +>TRAP DOOR +The door reluctantly opens to reveal a rickety staircase descending into darkness. +"Die Tuer oeffnet sich muehsam, und bringt eine baufaellige Treppe zum Vorschein, die in die Dunkelheit fuehrt." + +>D +Cellar + +>N +The Troll Room +There is eine bloody axe here. + +>E +East-West Passage + +>E +Round Room + +>E +Loud Room +This is a large room with a ceiling which cannot be detected from the ground. There is a narrow passage from east to west and a stone stairway leading upward. +"Das laute Zimmer +Dies ist ein riesiges Zimmer, in dem man die Decke nicht von unten erkennen kann. Hier ist ein enger Durchgang von Osten nach Westen und eine Steintreppe fuehrt nach oben." +The room is deafeningly loud with an undetermined rushing sound. The sound seems to reverberate from all of the walls, making it difficult even to think. +"Der Raum ist mit ohrenbetaeubendem Laermgefuellt. Das Getoese scheint, von allen Waenden widerzuhallen. Es ist unmoeglich, hier auch nur zu denken. +,On the ground is a large platinum bar. +"Auf dem Boden liegt ein Platinbarren." + +>TAKE BAR +bar bar ... + +>ECHO +The acoustics of the room change subtly. +"Die Akustik in dem Raum aendert sich ein bisschen." + +Loud Room +On the ground is a large platinum bar. + +>GET PLATINUM BAR + +Taken. + +>DROP BAR +Dropped. + +>E +Damp Cave +This cave has exits to the west and east, and narrows to a crack toward the south. The earth is particularly damp here. +"Feuchte Hoehle +Diese Hoehle hat Ausgaenge nach Westen und Osten und verengt sich nach Sueden zu einer Ritze. Der Boden ist hier besonders feucht." + +>E +White Cliffs Beach +You are on a narrow strip of beach which runs along the base of the White Cliffs. There is a narrow path heading south along the Cliffs and a tight passage leading west into the cliffs themselves. +"Weisse Felsen Strand +du bist aneinem schmalen Strand, der am Fusse der Weissen Felsen entlanglaeuft. Es gibt hier einen schmalen Pfad, der entlang der Felsen nach Sueden laeuft und einen engen Durchgang, der nach West mitten in die Klippen hineinfuehrt." + +>S +White Cliffs Beach +You are on a rocky, narrow strip of beach beside the Cliffs. A narrow path leads north along the shore. + +>N +White Cliffs Beach + +>W +Damp Cave + +>W +Loud Room +On the ground is a large platinum bar. + +>W +Round Room + +>N +North-South Passage +This is a high north-south passage, which forks to the northeast. +"Nord-Sueddurchgang +Hier ist ein Nord-Sueddurchgang, der sich nach Nordosten gabelt." + +>N +Chasm +A chasm runs southwest to northeast and the path follows it. You are on the south side of the chasm, where a crack opens into a passage. +"Spalte +Eine Spalte verlaeuft von Suedwesten nach Nordosten, und der Pfad folgt ihr. du bist auf der Suedseite der Spalte, wo eine schmale Oeffnung in einen Durchgang fuehrt." + +>NE +Reservoir South +You are in a long room on the south shore of a large lake, far too deep and widefor crossing. +There is a path along the stream to the east or west, a steep pathway climbingsouthwest along the edge of a chasm, and a path leading into a canyon to the southeast. +"Reservoir Sued +du bist in einem laenglichen Raum am Suedufer eines grossen Sees, der viel zu tief und zu breit zum Ueberqueren ist. +AmBsvh entlang zieht sich ein Pfad nach Osten oder Westen, einSteilpfad, der suedwestlich am Rand der Spalte entlang ansteigt. Ein Pfad fuehrt in eine Schlucht nach Suedosten." + +>W +Stream View +You are standing on a path beside a gently flowing stream. The path follows the stream, which flows from west to east. +"Blick auf den Bach +du stehst auf einem Pfad bei einem plaetschernden Bach. Der Pfad folgt dem Bach, der von Westen und nach Osten fliesst." + +>E +Reservoir South + +>SE +Deep Canyon +You are on the south edge of a deep canyon. Passages lead off to the east, northwest and southwest. A stairway leads down. You can hear the sound of flowing water from below. +"Tiefe Schlucht +du bist am Suedrand einer tiefen Schlucht. Durchgaenge fuehren nach Osten, Nordwesten und Suedwesten. Eine Treppe fuehrt nach unten. Du kannst von unten herauf das Rauschen von Wasser hoeren." + +>E +Dam +You are standing on the top of the Flood Control Dam #3, which was quite a tourist attraction in times far distant. There are paths to the north, south, and west, and a scramble down. +The sluice gates on the dam are closed. Behind the dam, there can be seen a wide reservoir. Water is pouring over the top of the now abandoned dam. +There is a control panel here, on which a large metal bolt is mounted. +Directly above the bolt is a small green plastic bubble. +"Damm +du stehst oben auf dem Hochwasserschutzdamm Nr.3.Er war wohl zu seiner Zeit eine grosse Sehenswuerdigkeit. Es gibt hier Pfade nach Norden, Sueden und Westen, und eine steile Abkuerzung. +Die des Dammes sind geschlossen. Hinter dem Damm kann man ein grosses Reservoir sehen. Wasser fliesst wild ueber den jetzt seit langem unbenutzten Damm. Es gibt hier eine Schalttafel, auf der eine angebracht ist. Direkt ueber der Schraube ist eine + +>GET ALL +dam: A valiant attempt. +green bubble: It is an integral part of the control panel. bolt: +It is an integral part of the control panel. + +>N +Dam Lobby +This room appears to have been the waiting room for groups touring the dam. +There are open doorways here to the north and east marked "Private", and there is a path leading south over the top of the dam. +Some guidebooks entitled "Flood Control Dam #3" are on the reception desk. +There is a matchbook whose cover says "Visit Beautiful FCD#3" here. +"Eingangshalle zum Damm +Dieser Raum scheint, der Warteraum fuer Besuchergruppen gewesen zu sein. +Es gibt hier offene Tueren, die nach Norden und Osten fuehren. Sie haben die Aufschrift "Privat", und ein Pfad fuehrt nach Sueden ueber den oberen Damm. +Einige Prospekte mit dem Titel: Hochwasserschutzdamm No.3 liegen bei der Rezepzion. Eine Streichholzschachtel mit der Auffschrift:"Visit Beautiful FCD#3"liegt hier." +>N +Maintenance Room +This is what appears to have been the maintenance room for Flood Control Dam #3. +"Wartungsraum +Dies muss der Wartungsraum fuer den Hochwasserschutzdamm No.3 gewesen sein." +Apparently, this room has been ransacked recently, for most of the valuable equipment is gone. On the wall in front of you is a group of buttons colored blue, yellow, brown, and red. There are doorways to the west and south. +There is eine wrench here. +There is an object which looks like a tube of toothpaste here. +There is eine screwdriver here. +There is eine group of tool chests here. +"Scheinbar ist dieser Raum vor Kurzem gepluendert worden, denn die meisten wertvollen Geraete sind weg. An der Wand vor dir haengen blaue, gelbe, braune und rote Knoepfe. Tueren fuehren nach Westen und Sueden. + +>GET ALL +wrench: Taken. +tube: Taken. +screwdriver: Taken. +group of tool chests: The chests are so rusty and corroded that they crumble when you touch them +"Reihe von Werkzeugkaesten:" Die Kaesten sind so rostig und verrottet, das sie zerfallen, wenn du sie anfasst." + +>PRESS YELLOW BUTTON +Click. + +>LOOK AT BUTTON +Welche button meinst du, die blue button, die red button, die brown button, or +die yellow button? + +>BLUE +There's nothing special about die blue button. + +>S +Dam Lobby +Some guidebooks entitled "Flood Control Dam #3" are on the reception desk. +There is a matchbook whose cover says "Visit Beautiful FCD#3" here. + +>GET MATCHBOOK +Taken. + +>LOOK AT MATCHBOOK +The matchbook isn't very interesting, except for what's written on it. + +>READ MATCHBOOK + +(Close cover before striking) + +YOU too can make BIG MONEY in the exciting field of PAPER SHUFFLING! +Auch DU kannst das GROSSE LOS in der interessanten Branche des PAPIERKRIEGES gewinnen!" + +Mr. Anderson of Muddle, Mass. says: "Before I took this course I was a lowly bit twiddler. Now with what I learned at GUE Tech I feel really important and can obfuscate and confuse with the best." +"Herr Superschlau aus Hack sagt: "Bevor ich in diese Vorlesung ging war ich ein mickeriger Bit-Mischer. Jetzt, mit dem, was ich an der Hacker T.U gelernt habe, fuehle ich mich wichtig und kann mit den Besten interfacen und verrueckt spielen." + +Dr. Blank had this to say: "Ten short days ago all I could look forward to was a dead-end job as a doctor. Now I have a promising future and make really big Zorkmids." +"Herr Dr. Leer hatte folgendes zu sagen: "Vor nur zehn kurzen Tagen hatte ich nur die Aussicht auf eine chancenlose Stelle als Doktor. Jetzt habe ich eine vielversprechende Zukunft und mache wirkliche Zorkkohle." + +GUE Tech can't promise these fantastic results to everyone. But when you earn your degree from GUE Tech, your future will be brighter. +"Die Technische Uni Hack kann diese fantastischen Resultate nicht jedem versprechen. Aber, einen Doktortitel von der Hack TU malt auch deine Zukunft rosiger aus." +>S +Dam +You are standing on the top of the Flood Control Dam #3, which was quite tourist attraction in times far distant. There are paths to the north, south, and west, and a scramble down. +The sluice gates on the dam are closed. Behind the dam, there can be seen a wide reservoir. Water is pouring over the top of the now abandoned dam. +There is a control panel here, on which a large metal bolt is mounted. Directly above the bolt is a small green plastic bubble which is glowing serenely. + +>TURN BOLT +Your bare hands don't appear to be enough. + +>TURN BOLT WITH WRENCH +The sluice gates open and water pours through the dam. + +>DROP WRENCH +Dropped. + +>Z +Time passes... + +>Z +Time passes... + +>W +Reservoir South +You are in a long room, to the north of which was formerly a lake. However, with the water level lowered, there is merely a wide stream running through the center of the room. +There is a path along the stream to the east or west, a steep pathway climbing southwest along the edge of a chasm, and a path leading into a canyon to the southeast. +"du bist in einem laenglichen Zimmer. Nach Norden lag frueher ein See. Aber, nachdem der Wasserstand gemindert wurde, gibt es hier bloss einen breiten Srom der durch die Mitte des Raumes fliesst. +Es gibt einen Pfad den Strom entlang nach Osten oder Westen, einen steilen Pfad, der nach Suedwesten den Rand einer Spalte entlang laeuft, und einen Pfad, der in eine Schlucht nach Suedosten fuehrt." + +>N +Reservoir +You are on what used to be a large lake, but which is now a large mud pile There are "shores" to the north and south. +Lying half buried in the mud is an old trunk, bulging with jewels. +"Reservoir +du stehst da, wo einmal ein grosser See war, aber der ist jetzt ein grosser Schlammhaufen. Es gibt hier "Ufer" nach Norden und Sueden. +Halbvergraben im Schlamm ist ein alter Koffer, vollgepfropft mit Juwelen." + +>LOOK AT JEWELS +There are lots of jewels in there. + +>N +Reservoir North +You are in a large cavernous room, the south of which was formerly a lake. +However, with the water level lowered, there is merely a wide stream running through there. +There is a slimy stairway leaving the room to the north. +There is eine hand-held air pump here. +"Nordreservoir +du bist in einem grottenartigen Raum. Sein Suedteil war einmal ein See. +Aber, mit dem geminderten Wasserstand, gibt es hier nur noch einen breiten Strom, der hier durchfliesst. +Eine schleimige Treppe verlaesst den Raum nach Norden. +"Es gibt hier eine Fahrradpumpe. + +>GET PUMP +Taken. + +>S +Reservoir +Lying half buried in the mud is an old trunk, bulging with jewels. + +>S +Reservoir South + +>E +Dam +There is eine wrench here. + +>E +Dam Base +You are at the base of Flood Control Dam #3, which looms above you and to the north. The river Frigid is flowing by here. Along the river are the White Cliffs which seem to form giant walls stretching from north to south along the shores of the river as it winds its way downstream. +There is a folded pile of plastic here which has a small valve attached. +" Am Fuss des Dammes +du bist am Fuss des No. 3, der ueber dir und nach Norden hin tauert. Der Fluss Gletsch fliesst hier vorbei. Den Fluss entlang stehen die Weissen Felsen, die eine gigantische Wand von Norden nach Sueden den sich abwaertswindenden Fluss entlang zu formen scheinen. +Hier gibt es einen Haufen Plastik, an dem ein kleines Ventil befestigt ist." +>LOOK AT PLASTIC +There's nothing special about die pile of plastic. + +>LOOK AT VALVE +There's nothing special about die pile of plastic. + +>PUMP UP THE PILE OF PLASTIC +The boat inflates and appears seaworthy. +A tan label is lying inside the boat. + +>LOOK AT LABEL +!!!!FROBOZZ MAGIC BOAT COMPANY!!!! +? +Hello, Sailor! +"Gruess dich, Seeman! + +Instructions for use: +"Gebrauchsanweisung" + +To get into a body of water, say "Launch". +To get to shore, say "Land" or the direction in which you want to maneuver the boat. +" Um ins Wasser zu gehen, sage: "Abstossen". +Um zum Land zurueckzukehen, sage: "Landen" oder gibt die Richtung, in der du das Boot steuern moechtest, an". + +Warranty: + +This boat is guaranteed against all defects for a period of 76 milliseconds from date of purchase or until first used, whichever comes first. +Dieses Boot hat eine Garantie mit einer Laufzeit von 76 mm Sekunden, die mit dem Kaufsdatum oder dem Datum der ersten Benutzung beginnt." +Warning: +This boat is made of thin plastic. +Good Luck! +"Warnung: +" Dieses Boot ist aus duennem Plastik. +Gott helfe dir!" + +>L +Dam Base +You are at the base of Flood Control Dam #3, which looms above you and to the north. The river Frigid is flowing by here. Along the river are the White Cliffs which seem to form giant walls stretching from north to south along the shores of the river as it winds its way downstream. +There is eine magic boat here. +Die magic boat contains: +Eine tan label + +>GET IN BOAT +You are now in der magic boat. +"du bist jetzt in dem Zauberboot". + +>LAUNCH +(die magic boat) +Frigid River, in der magic boat +You are on the Frigid River in the vicinity of the Dam. The river flows quietly here. There is a landing on the west shore. +"auf dem Gletsch im Zauberboot +du bist auf dem Gletsch bei dem Damm. Der Fluss fliesst ruhig hier. Es gibt einen Landungssteg am Westufer." +Die magic boat contains: +Eine tan label + +>Z +Time passes... +The flow of the river carries you downstream. +"Zeit vergeht +Die Stroemung traegt dich flussabwaerts" + +Frigid River, in der magic boat +The river turns a corner here making it impossible to see the Dam. The White Cliffs loom on the east bank and large rocks prevent landing on the west. +"Der Fluss fliesst hier um eine Biegung, die es unmoeglich macht den Damm zu sehen. Die Weissen Felsen tauern ueber dem Ostufer und grosse Steine versperren die Landung am Westufer." +Die magic boat contains: +Eine tan label + +>Z +Time passes... + +>Z +Time passes... +The flow of the river carries you downstream. + +Frigid River, in der magic boat +The river descends here into a valley. There is a narrow beach on the west shore below the cliffs. In the distance a faint rumbling can be heard. +"Der Fluss fliesst hier in ein Tal. Es gibt einen schmalen Strand an der Westkueste unter den Felsen. In der Ferne kann man ein Rauschen hoeren." +Die magic boat contains: +Eine tan label + +>Z +Time passes... +The flow of the river carries you downstream. +"Die Stroemung fuehrt dich flussabwaerts" + +Frigid River, in der magic boat +The river is running faster here and the sound ahead appears to be that of rushing water. On the east shore is a sandy beach. A small area of beach can also be seen below the cliffs on the west shore. +There is a red buoy here (probably a warning). +"Der Fluss stroemt hier schneller, und das Geraeusch vor dir scheint,das von..brausendem Wasser zu sein.An dem Ostufer ist ein sandiger Strand. Ein bisschen Strand kann auch unter den Felsen an dem Westufer gesehen werden. +Es gibt hier eine rote Markierungsboje (Wahrscheinlich eine Warnung)." +Die magic boat contains: +Eine tan label + +>GET BUOY +Taken. + +>E +Die magic boat comes to a rest on the shore. + +Sandy Beach, in der magic boat +You are on a large sandy beach on the east shore of the river, which is flowing quickly by. A path runs beside the river to the south here, and a passage is partially buried in sand to the northeast. +"Sandiger Strand im Zauberboot +du bist auf einem grossen sandigen Strand am Ostufer des Flusses. Dieser fliesst schnell vorbei. Ein Pfad verlaeuft den Fluss entlang nach Sueden hier und ein Durchgang ist halb im Sand nach Nordosten vergraben." +There is eine shovel here. (outside der magic boat) +"Da liegt eine Schaufel (ausserhalb des Bootes)." +Die magic boat contains: +Eine tan label + +>GET SHOVEL +Taken. + +>NE +Read the label for the boat's instructions. +"Lies die Anweisungen fuer das Boot." + +>GET OUT OF BOAT +You are on your own feet again. +"du stehst wieder auf eigenen Fuessen." + +>NE +Sandy Cave +This is a sand-filled cave whose exit is to the southwest. +"Sandige Hoehle +Dies ist eine sandgefuellte Hoehle, deren Ausgang nach Suedwesten geht." + +>DIG IN SAND +Digging with der pair of hands is slow and tedious. +"Mit den Haenden im Sand graben ist langsam und muehsam." + +>DIG IN SAND WITH SHOVEL +You seem to be digging a hole here. +"du scheinst hier, ein Loch zu graben." + +>AGAIN +The hole is getting deeper, but that's about it. +"Das Loch wird immer tiefer, aber sonst nichts." + +>AGAIN +You are surrounded by a wall of sand on all sides. +" du bist auf allen Seiten von Sand umgeben." + +>SAVE +To file (SS:2): 3..1Ok. + +>AGAIN +To file (SS:3): 3..2Ok. + +>DIG IN SAND WITH SHOVEL +You can see a scarab here in the sand. +"du siehst hier einen Skarabaeus im Sand." + +>GET SCARAB +Your load is too heavy. + +>DROP SHOVEL +Dropped. + +>GET SCARAB + +Taken. + +>LOOK AT SCARAB +There's nothing special about die beautiful jeweled scarab. + +>SW +Sandy Beach +There is eine magic boat here. +Die magic boat contains: +Eine tan label + +>S +Shore +You are on the east shore of the river. The water here seems somewhat treacherous. A path travels from north to south here, the south end quickly turning around a sharp corner. +"Ufer +du bist an dem Ostufer des Flusses. Das Wasser ist hier leicht gefaehrlich. Ein Pfad fuerhrt von Norden nach Sueden hier, das Suedende geht schnell um eine scharfe Kurve." + +>S +Aragain Falls +You are at the top of Aragain Falls, an enormous waterfall with a drop of about 450 feet. The only path here is on the north end. +A solid rainbow spans the falls. +"Wiedermalfaelle +du bist oben auf den Wiedermal Faellen. Ein gigantischer Wasserfall mit einem Abgrund von 15 Metern. Der einzige Pfad hier ist am Nordende." + +>W +On the Rainbow +You are on top of a rainbow (you probably thought you'd never would walk on a rainbow), with a magnificent view of the Falls. The rainbow travels east-west here. +"Auf dem Regenbogen +du bist hier auf dem Regenbogen (sicherlich hast du angenommen, dass du niemals auf einem Regenbogen laufen koenntest). du hast einen tollen Blick auf die Faelle. Der Regenbogen fuehrt ostwestlich hier." +>W +End of Rainbow + +>SW +Canyon Bottom + +>U +Rocky Ledge + +>U +Canyon View + +>W +Forest + +>N +Clearing + +>W +Behind House + +>W +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: +Eine sceptre +Eine pot of gold +Eine gold coffin +Eine painting + +>I +You are carrying: +Eine beautiful jeweled scarab +Eine red buoy +Eine hand-held air pump +Eine matchbook +Eine screwdriver +Eine tube +Eine torch (providing light) +Eine brass lantern + +>OPEN BUOY + +Opening die red buoy reveals eine large emerald. + +>GET EMERALD +Taken. + +>PUT EMERALD IN TROPHY CASE +Done. + +>PUT SCARAB IN CASE +Done. + +>I +You are carrying: +Eine red buoy +Eine hand-held air pump +Eine matchbook +Eine screwdriver +Eine tube +Eine torch (providing light) +Eine brass lantern + +>DROP SCREWDRIVER,PUMP,TUBE +screwdriver: Dropped. +hand-held air pump: Dropped. +tube: Dropped. + +>D +Cellar + +>S +East of Chasm + +>E +Gallery +There is eine brown sack here. +Die brown sack contains: +Eine clove of garlic + +>N +Studio +There is eine nasty knife here. +There is eine ZORK owner's manual here. + +>S +Gallery +There is eine brown sack here. +Die brown sack contains: +Eine clove of garlic + +>W +East of Chasm + +>N +Cellar + +>N +The Troll Room +There is eine bloody axe here. + +>E +East-West Passage + +>E +Round Room + +>E +Loud Room +This is a large room with a ceiling which cannot be detected from the ground. There is a narrow passage from east to west and a stone stairway leading upward. +The room is eerie in its quietness. +"Der Raum ist in seiner Stille unheimlich." + +>W +Round Room + +>SE +Engravings Cave +There are old engravings on the walls here. + +>E +Dome Room + +>D +Torch Room + +>S +Temple +There is eine brass bell here. + +>GET BELL +Taken. + +>S +Altar +On the two ends of the altar are burning candles. +On the altar is a large black book, open to page 569. + +>GET ALL +pair of candles: Taken. +black book: Taken. + +>D +Cave +This is a tiny cave with entrances west and north, and a dark, forbidding staircase leading down. +"Dies ist eine winzige Hoehle mit Eingaengen im Westen und Osten, und einem angsterregenden Treppenhaus nach unten." + +>D +Entrance to Hades +You are outside a large gateway, on which is inscribed + +Abandon every hope all ye who enter here! + +The gate is open; through it you can see a desolation, with a pile of mangled bodies in one corner. Thousands of voices, lamenting some hideous fate, can be heard. +The way through the gate is barred by evil spirits, who jeer at your attempts to pass. +"Eingang zur Unterwelt. +du bist ausserhalb eines riesigen Totes mit der Aufschrift: +Gebt auf jegliche Hoffnung Ihr, die Ihr hier eintretet! +Das Tor ist geoeffnet. Eine grosse Trostlosigkeit mit einem Haufen von zerquetschten Koerpern in einer Ecke. Tausende von Stimmen von einem schrecklichen Schicksal klagend koennen gehoert werden. +Der Eintritt durch das Tor ist von boesen Geistern versperrt, die nur grinsen, wenn du versuchst, Eintritt zu gewinnen. +>SAVE +To file (SS:3): 3..4Ok. + +>DROP CANDLES +Dropped. + +>RING BELL +The bell suddenly becomes red hot and falls to the ground. The wraiths, as if paralyzed, stop their jeering and slowly turn to face you. On their ashen faces, the expression of a long-forgotten terror takes shape. +"Laeute die Glocke +Die Glocke wird ploetzlich gluehend heiss und faellt zu Boden. Die Gespenster, als waeren sie erstarrt, hoeren mit dem Gejammer auf und drehen sich dir zu. Auf ihren aschenen Gesichtern formt sich der Ausdruck einer langvergessenen Furcht." + +>HOLD CANDLE +Taken. +The flames flicker wildly and appear to dance. The earth beneath your feet trembles, and your legs nearly buckle beneath you. The spirits cower at your unearthly power. +"Die Flammen flackern wild und scheinen, zu tanzen. Die Erde unter dir zittert, und deine Kniee drohen aufzugeben. Die Geister verzweifeln an deiner unirdischen Kraft." + +>READ BOOK +Each word of the prayer reverberates through the hall in a deafening confusion. As the last word fades, a voice, loud and commanding, speaks: +"Begone, fiends!" A heart-stopping scream fills the cavern, and the spirits, sensing a greater power, flee through the walls. +"Lies das Buch +Jedes Wort des Gebetes hallt durch den Saal in einer ohrenbetaeubenden Verwirrung. Als die letzten Warte verhallen, spricht eine laute und beeindruckende Stimme: "Weg mit Euch, Ihr Biester!" Ein herzzerreissender Schrei fuellt die Hoehle und die Geister, die eine hoehere Macht verspueren, fliehen durch die Waende. +>S +Land of the Dead +You have entered the Land of the Living Dead. Thousands of lost souls can be heard weeping and moaning. In the corner are stacked the remains of dozens of previous adventurers less fortunate than yourself. A passage exits to the north. Lying in one corner of the room is a beautifully carved crystal skull. It +appears to be grinning at you rather nastily. +"Das Land der Toten +du bist in das Land der lebendigen Toten geraten. Tausende von verlorenen Seelen can man weinen und Schluchzen hoeren. In der Ecke sind die Ueberreste von Dutzenden von vormaligen Abenteuerern, die weniger Glueck hatten als du, aufgestappelt. Ein Duchgang fuehrt nach Norden heraus. + + + +>GET KRISTALL + +Taken. + +>I +You are carrying: +Eine kristallen Hirnschale +Eine pair of candles (providing light) +Eine black book +Eine red buoy +Eine matchbook +Eine torch (providing light) +Eine brass lantern + +>LOOK AT BODIES +There's nothing special about die pile of bodies. + +>N +Entrance to Hades +On the ground is a red hot bell. + +>GET BELL +The bell is very hot and cannot be taken. + +>DROP BOOK, BUOY, MATCHES, CANDLES +black book: Dropped. +red buoy: Dropped. +matchbook: Dropped. +pair of candles: Dropped. + +>I +You are carrying: +Eine kristallen Hirnschale +Eine torch (providing light) +Eine brass lantern + +>U +Cave + +>N +Mirror Room +You are in a large square room with tall ceilings. On the south wall is an enormous mirror which fills the entire wall. There are exits on the other three sides of the room. +"Spiegelzimmer +du bist in einem viereckigen Zimmer mit hohen Decken. An der Suedwand ist ein riesiger Spiegel, der die ganze Wand einnimmt Es gibt Ausgaenge an den anderen drei Seiten des Zimmers." + +>LOOK IN MIRROR +There is an ugly person staring back at you. +"Eine haessliche Person starrt aus dem Spiegel zurueck." + +>TALK TO MIRROR +You can't talk to der mirror! +"du kannst nicht mit dem Spiegel sprechen.! + +>FEEL MIRROR +There is a rumble from deep within the earth and the room shakes. +>; +[RENATA: I WAS TRANSPORTED TO A DIFFERENT MIRROR ROOM TO THE NORTH.] +W +Twisting Passage +This is a winding passage. It seems that there are only exits on the east and north. +Ein Durchgang, der sich windet. +Dies ist ein Durchgang, der sich windet. Es scheint, als ob es nur Ausgaenge auf der Ost-und Nordseite gibt." + +>E +Cave +This is a tiny cave with entrances west and north, and a staircase leading down. +>S +Atlantis Room +This is an ancient room, long under water. There is an exit to the south and a staircase leading up. +On the shore lies Poseidon's own crystal trident. +"Atlantiszimmer +Dies ist ein uraltes Zimmer, schon lang unter Wasser . Es gibt einen Ausgang nach dem Sueden und eine Treppe, die nach oben fuehrt. +Am Ufer liegt Poseidons eigener Dreizack aus Kristall. + +>GET TRIDENT + +Taken. + +>S +Reservoir North + +>S +Reservoir + +>S +Reservoir South + +>SW +Chasm + +>S +North-South Passage + +>S +Round Room + +>W +East-West Passage + +>W +The Troll Room +There is eine bloody axe here. + +>S +Cellar + +>U +Living Room +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine screwdriver here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine beautiful jeweled scarab + Eine large emerald + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>I +You are carrying: + Eine crystal trident + Eine kristallen Hirnschale + Eine torch (providing light) + Eine brass lantern + +>PUT TRIDENT, HIRNSCHALE IN CASE +crystal trident: Done. +kristallen Hirnschale: Done. + +>D +Cellar + +>N +The Troll Room +There is eine bloody axe here. + +>E +East-West Passage + +>N +Chasm + +>U +East-West Passage + +>N +Chasm + +>I +You are carrying: + Eine clove of garlic + Eine torch (providing light) + Eine brass lantern + +>L +Chasm +A chasm runs southwest to northeast and the path follows it. You are on the south side of the chasm, where a crack opens into a passage. + +>S +North-South Passage + +>N +Chasm + +>NE +Reservoir South + +>N +Reservoir + +>N +Reservoir North + +>N +Atlantis Room + +>U +Cave + +>N +Mirror Room +You are in a large square room with tall ceilings. On the south wall is an enormous mirror which fills the entire wall. There are exits on the other three sides of the room. + +>N +Cold Passage +This is a cold and damp corridor where a long east-west passageway turns into a southward path. +Kalter Durchgang +Dies ist ein kalter und feuchter Flur, wo ein langer Ost-Westdurchgang in einen Pfad nach Suedwesten muendet. +>I +You are carrying: + Eine screwdriver + Eine clove of garlic + Eine torch (providing light) + Eine brass lantern + +>W +Slide Room +This is a small chamber, which appears to have been part of a coal mine. On the south wall of the chamber the letters "Granite Wall" are etched in the rock. To the east is a long passage, and there is a steep metal slide twisting downward. +To the north is a small opening. +"Schuettenzimmer +Dies ist ein kleiner Raum, der Teil einer Kohlengrube gewesen sein muss. Auf dessen Suedwand sind die Buchstaben:"Granitwand" in den Fels eingraviert. Nach Osten gibt es einen langen Durchgang,und dort ist auch eine steile Metalschuette, die sich nach unten windet." + +>N +Mine Entrance +You are standing at the entrance of what might have been a coal mine. The shaft enters the west wall, and there is another exit on the south end of the room. +"Grubeneingang +du stehst an einem Eingang zu, was vielleicht mal eine Grube gewesen ist. Der Schacht fuehrt in die Westwand, und es gibt dort noch einen Ausgang nach dem Suedende des Raumes." + +>W +Squeaky Room +You are in a small room. Strange squeaky sounds may be heard coming from the passage at the north end. You may also escape to the east. +"Quietschzimmer +du bist in einem kleinen Zimmer. Eigentuemliche quietschende Geraeusche koennen von dem Durchgang am Nordende gehoert werden. du kannst auch nach Osten entfliehen." + +>N +Bat Room +You are in a small room which has doors only to the east and south. +There is an exquisite jade figurine here. +In the corner of the room on the ceiling is a large vampire bat who is obviously deranged and holding his nose. +"Fledermauszimmer +du bist in einem kleinen Zimmer, das nur eine Tuer nach Osten und Sueden hat. +Es gibt hier eine sehr feine Jade-Figur. +In der Ecke des Zimmers an der Decke ist eine grosse Blutsaugerfledermaus, +die offensichtlich nicht alle fuenf auf der Latte hat und sich die Nase zuhaelt." + +>; +;[NOTE: HOLDING HIS NOSE BECAUSE OF THE GARLIC.] +(Note: holding die Nase because of smelly root) +LOOK AT BAT +There's nothing special about die bat. + +>E +Shaft Room +This is a large room, in the middle of which is a small shaft descending through the floor into darkness below. To the west and the north are exits from this room. Constructed over the top of the shaft is a metal framework to which a heavy iron chain is attached. At the end of the chain is a basket. + +Dies ist ein grosser Raum, in dessen Mitte sich ein kleiner durch den Fussboden nach unten in die Dunkelheit verlaufender Schaft ist. Nach Westen und Norden gibt es Ausgaenge von diesem Zimmer. Ueber dem Schacht hat man ein Metalgehaeuse gebaut, an dem eine schwere eiserne Kette befestigt ist. An dem anderen Ende der Kette haengt ein Korb." + + +>PUT SCREWDRIVER, TORCH IN BASKET +screwdriver: Done. +torch: Done. + +>LIGHT LAMP +Die brass lantern is now on. + +>N +Smelly Room +This is a small nondescript room. However, from the direction of a small descending staircase a foul odor can be detected. To the south is a narrow tunnel. + + + +>D +Gas Room +This is a small room which smells strongly of coal gas. There is a short climb up some stairs and a narrow tunnel leading east. +There is eine sapphire-encrusted bracelet here. + + + +>E +Coal Mine +This is a nondescript part of a coal mine. + +>NE +Coal Mine +This is a nondescript part of a coal mine. +There is eine ZORK owner's manual here. +There is eine sword here. + +>SE +Coal Mine +This is a nondescript part of a coal mine. + +>SW +Coal Mine +This is a nondescript part of a coal mine. + +>D +Ladder Top +This is a very small room. In the corner is a rickety wooden ladder, leading downward. It might be safe to descend. There is also a staircase leading upward. + + + +>D +Ladder Bottom +This is a rather wide room. On one side is the bottom of a narrow wooden ladder. +To the west and the south are passages leaving the room. + + + +>S +Dead End +You have come to a dead end in the mine. +There is eine small pile of coal here. + +>GET COAL +Taken. + +>N +Ladder Bottom + +>U +Ladder Top + +>U +Coal Mine + +>N +Coal Mine + +>E +Coal Mine +There is eine ZORK owner's manual here. +There is eine sword here. + +>S +Coal Mine + +>N +Gas Room +There is eine sapphire-encrusted bracelet here. + +>U +Smelly Room + +>S +Shaft Room +At the end of the chain is a basket. +Die basket contains: + Eine torch (providing light) + Eine screwdriver + +>PUT COAL IN BASKET +Done. + +>LOOK AT BASKET +Die basket contains: + Eine small pile of coal + Eine torch (providing light) + Eine screwdriver + +>LOWER THE BASKET +The basket is lowered to the bottom of the shaft. + +>I +You are carrying: + Eine clove of garlic + Eine brass lantern (providing light) + +>N +Smelly Room + +>D +Gas Room +There is eine sapphire-encrusted bracelet here. + +>E +Coal Mine + + +>NE +Coal Mine +There is eine ZORK owner's manual here. +There is eine sword here. + +>SE +Coal Mine + +>SW +Coal Mine + +>D +Ladder Top + +>D +Ladder Bottom + +>I +You are carrying: + Eine clove of garlic + Eine brass lantern (providing light) + +>W +Timber Room +This is a long and narrow passage, which is cluttered with broken timbers. A wide passage comes from the east and turns at the west end of the room into a very narrow passageway. From the west comes a strong draft. +There is eine broken timber here. + + + +>DROP ALL +clove of garlic: Dropped. +brass lantern: Dropped. + +>W +Drafty Room +This is a small drafty room in which is the bottom of a long shaft. To the south is a passageway and to the east a very narrow passage. In the shaft can be seen a heavy iron chain. At the end of the chain is a basket. + + +Die basket contains: + Eine small pile of coal + Eine torch (providing light) + Eine screwdriver + +>GET ALL FROM BASKET +small pile of coal: +Taken. +torch: +Taken. +screwdriver: +Taken. + +>S + +Machine Room +This is a large, cold room whose sole exit is to the north. In one corner there is a machine which is reminiscent of a clothes dryer. On its face is a switch which is labelled "START". The switch does not appear to be manipulable by any human hand (unless the fingers are about 1/16 by 1/4 inch). On the front of the machine is a large lid, which is closed. + + + +>LOOK AT MACHINE +Die machine is closed. + +>OPEN MACHINE +The lid opens. + +>PUT COAL IN MACHINE +Done. + +>CLOSE MACHINE +The lid closes. + +>LOOK AT SWITCH +There's nothing special about die switch. + +>TURN SWITCH WITH SCREWDRIVER +The machine comes to life (figuratively) with a dazzling display of colored lights and bizarre noises. After a few moments, the excitement abates. +"Die Maschine wird lebendig (im uebertragenen Sinne), indem sich faszinierende Lichter und haarstraeubende Geraeusche ergeben. Nach ein paar Sekunden hoert der Zauber auf." + +>OPEN MACHINE +The lid opens, revealing eine huge diamond. + +>GET DIAMOND + +Taken. + +>I +You are carrying: + Eine huge diamond + Eine screwdriver + Eine torch (providing light) + +>PUT DIAMOND AND TORCH IN BASKET +huge diamond: You can't see any basket here! +torch: You can't see any basket here! + +>N +Drafty Room +At the end of the chain is a basket. + +>PUT DIAMOND AND TORCH IN BASKET +huge diamond: +Done. +torch: +Done. + +>E + +You cannot fit through this passage with that load. + +>I + +You are carrying: + Eine screwdriver + +>DROP DRIVER + +Dropped. + +>E + +Timber Room +There is a brass lantern (battery-powered) here. +There is eine clove of garlic here. +There is eine broken timber here. + +>GET ALL +brass lantern: Taken. +clove of garlic: Taken. +broken timber: Taken. + +>DROP TIMBER +Dropped. + +>E +Ladder Bottom + +>W +Timber Room +There is eine broken timber here. + +>E +Ladder Bottom + +>U +Ladder Top + +>U +Coal Mine + +>N +Coal Mine + +>E +Coal Mine +There is eine ZORK owner's manual here. +There is eine sword here. + +>S +Coal Mine + +>N +Gas Room +There is eine sapphire-encrusted bracelet here. + +>GET BRACELET + +Taken. + +>U +Smelly Room + +>I +You are carrying: + Eine sapphire-encrusted bracelet + Eine clove of garlic + Eine brass lantern (providing light) + +>S +Shaft Room +From the chain is suspended a basket. + +>L IN BASKET +The basket is at the other end of the chain. + +>RAISE BASKET +The basket is raised to the top of the shaft. + +>LOOK IN BASKET +Die basket contains: + Eine torch (providing light) + Eine huge diamond + +>GET ALL FROM BASKET +torch: Taken. +huge diamond: Taken. + +>I +You are carrying: + Eine huge diamond + Eine torch (providing light) + Eine sapphire-encrusted bracelet + Eine clove of garlic + Eine brass lantern (providing light) + +>W +Bat Room +There is an exquisite jade figurine here. +In the corner of the room on the ceiling is a large vampire bat who is obviously deranged and holding his nose. + +>GET JADE + +Taken. + +>DROP GARLIC +Dropped. + +>S +Squeaky Room + +>E +Mine Entrance + +>S +Slide Room + +>D +Cellar + +>I +You are carrying: + Eine jade figurine + Eine huge diamond + Eine torch (providing light) + Eine sapphire-encrusted bracelet + Eine brass lantern (providing light) + +>U +Living Room +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine large emerald + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL BUT LAMP AND TORCH IN TROPHY CASE +jade figurine: Done. +huge diamond: Done. +sapphire-encrusted bracelet: Done. + +>SCORE +Your score is 247 (total of 350 points), in 485 moves. +This gives you the rank of Adventurer. + +>I +You are carrying: + Eine torch (providing light) + Eine brass lantern (providing light) + +>E +Kitchen + +>W +Living Room +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine sapphire-encrusted bracelet + Eine huge diamond + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine large emerald + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>D +Cellar + +>S +East of Chasm + +>E +Gallery +There is eine brown sack here. + +>N +Studio +There is eine nasty knife here. + +>GET KNIFE +Taken. + +>S +Gallery +There is eine brown sack here. + +>GET FOOD +You can't see any food here! + +>GET SACK +Taken. + +>LOOK IN SACK +Die brown sack is empty. + +>W +East of Chasm + +>N +Cellar + +>N +The Troll Room +There is eine bloody axe here. + +>W +Maze +This is part of a maze of twisty little passages, all alike. + +>W +Maze +This is part of a maze of twisty little passages, all alike. + +>W +Maze +This is part of a maze of twisty little passages, all alike. + +>U +Maze +This is part of a maze of twisty little passages, all alike. A skeleton, probably the remains of a luckless adventurer, lies here. +Beside the skeleton is a rusty knife. +The deceased adventurer's useless lantern is here. +There is eine skeleton key here. Renata had to add different pun. +An old leather bag, bulging with coins, is here. + Ein Knochengeruest, wahrscheinlich die Ueberreste eines ungluecklichen Abenteurers, liegt hier. + + + + + +>GET SKELETON KEY, BAG OF COINS +skeleton key: Taken.change in German +leather bag of coins: +Taken. + +>SW +Maze +This is part of a maze of twisty little passages, all alike. + +>E +Maze +This is part of a maze of twisty little passages, all alike. + +>S +Maze +This is part of a maze of twisty little passages, all alike. + +>SE +Cyclops Room +This room has an exit on the northwest, and a staircase leading up. +A cyclops, who looks prepared to eat horses (much less mere adventurers), blocks the staircase. From his state of health, and the bloodstains on the walls, you gather that he is not very friendly, though he likes people. + + + +>SAVE +To file (SS:4): 5..1Ok. + +>I +You are carrying: + Eine leather bag of coins + Eine skeleton key + Eine brown sack + Eine nasty knife + Eine torch (providing light) + Eine brass lantern (providing light) + +>TALK TO CYCLOPS +Die cyclops pauses for a moment, perhaps thinking that you should reread the manual. + +>LOOK AT CYCLOPS +A hungry cyclops is standing at the foot of the stairs. + +>U +The cyclops doesn't look like he'll let you past. + +>ODYSSEUS +The cyclops, hearing the name of his father's deadly nemesis, flees the room by knocking down the wall on the east of the room. + + +>E +Strange Passage +This is a long passage. To the west is one entrance. On the east there is an old wooden door, with a large opening in it (about cyclops sized). + + + +>E +Living Room +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine sapphire-encrusted bracelet + Eine huge diamond + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine large emerald + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET DIAMOND, EMERALD +huge diamond: Taken. +large emerald: Taken. + +>GET JADE +You're holding too many things already! + + +>I +You are carrying: + Eine large emerald + Eine huge diamond + Eine leather bag of coins + Eine skeleton key + Eine brown sack + Eine nasty knife + Eine torch (providing light) + Eine brass lantern (providing light) + +>DROP SACK +Dropped. + +>LOOK IN SACK +Die brown sack is empty. + +>TURN OFF LAMP +Die brass lantern is now off. + +>W +Strange Passage + +>W +Cyclops Room + +>U +You hear a scream of anguish as you violate the robber's hideaway. Using passages unknown to you, he rushes to its defense. +The thief gestures mysteriously, and the treasures in the room suddenly vanish. + + +Treasure Room +This is a large room, whose east wall is solid granite. A number of discarded bags, which crumble at your touch, are scattered about on the floor. There is an exit down a staircase. + + +There is a suspicious-looking individual, holding a large bag, leaning against one wall. He is armed with a deadly stiletto. +There is a silver chalice, intricately engraved, here. +A quick thrust pinks your left arm, and blood starts to trickle down. + + + +>SAVE +To file (SS:5): 6..1Ok. + +>GIVE DIAMOND TO MAN +The thief is taken aback by your unexpected generosity, but accepts the die huge diamond and stops to admire its beauty. + + +>GIVE DIAMOND TO THIEF +You don't have the huge diamond. + +>GIVE EMERALD TO THIEF +The thief is taken aback by your unexpected generosity, but accepts the die large emerald and stops to admire its beauty. + +>I +You are carrying: + Eine leather bag of coins + Eine skeleton key + Eine nasty knife + Eine torch (providing light) + Eine brass lantern +The stiletto flashes faster than you can follow, and blood wells from your leg. + +>GIVE COINS TO THIEF +The thief is taken aback by your unexpected generosity, but accepts the die leather bag of coins and stops to admire its beauty. + +>SAVE +To file (SS:6): 7..1Ok. + +>KILL THIEF +(with der nasty knife) +The thief is staggered, and drops to his knees. + +Die thief slowly regains his feet. + +>AGAIN +(with der nasty knife) +Your stroke lands, but it was only the flat of the blade. +The thief draws blood, raking his stiletto across your arm. + + +>OOPS NASTY +It's curtains for the thief as your nasty knife removes his head. Almost as soon as die thief breathes his last breath, a cloud of sinister black fog envelops him, and when the fog lifts, the carcass has disappeared. As the thief dies, the power of his magic decreases, and his treasures reappear: + Eine huge diamond + Eine large emerald + Eine leather bag of coins + Eine stiletto + Eine trunk of jewels + Eine platinum bar + Eine jewel-encrusted egg, with eine golden clockwork canary +The chalice is now safe to take. + +>GET ALL +huge diamond: Taken. +large emerald: Taken. +leather bag of coins: Your load is too heavy, especially in light of your condition. +stiletto: Your load is too heavy, especially in light of your condition. +trunk of jewels: Your load is too heavy, especially in light of your condition. +platinum bar: Your load is too heavy, especially in light of your condition. +jewel-encrusted egg: Your load is too heavy, especially in light of your +condition. +chalice: Your load is too heavy, especially in light of your condition. + +>DIAGNOSE +You have several wounds, which will be cured after 88 moves. +You can be killed by a serious wound. +Diagnose + + + +>D +Cyclops Room + +>E +Strange Passage + +>E +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL IN TROPHY CASE +large emerald: Done. +huge diamond: Done. +skeleton key: Done. +nasty knife: Done. +torch: Done. +brass lantern: Done. + +>GET TORCH +Taken. + +>W +Strange Passage + +>W +Cyclops Room + +>U +Treasure Room +An old leather bag, bulging with coins, is here. +There is eine stiletto here. +There is an old trunk here, bulging with assorted jewels. +On the ground is a large platinum bar. +There is eine jewel-encrusted egg here. +There is a golden clockwork canary nestled in the egg. It has ruby eyes and a silver beak. Through a crystal window below its left wing you can see intricate machinery inside. It appears to have wound down. "There is a silver chalice, intricately engraved, here." + +>GET ALL +leather bag of coins: Taken. +stiletto: Taken. +trunk of jewels: Your load is too heavy, especially in light of your condition. platinum bar: Taken. jewel-encrusted egg: Your load is too heavy, especially in light of your condition. chalice: Your load is too heavy, especially in light of your condition. + +>I +You are carrying: + Eine platinum bar + Eine stiletto + Eine leather bag of coins + Eine torch (providing light) + +>D +Cyclops Room + +>E +Strange Passage + +>E +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL BUT TORCH IN CASE +platinum bar: Done. +stiletto: Done. +leather bag of coins: Done. + +>LOOK AT TORCH +The torch is burning. + +>W +Strange Passage + +>W +Cyclops Room + +>U +Treasure Room +There is an old trunk here, bulging with assorted jewels. +There is eine jewel-encrusted egg here. +There is a golden clockwork canary nestled in the egg. It has ruby eyes and a silver beak. Through a crystal window below its left wing you can see intricate machinery inside. It appears to have wound down. +There is a silver chalice, intricately engraved, here. + +>GET ALL +trunk of jewels: +Taken. +jewel-encrusted egg: Taken. +chalice: Your load is too heavy, especially in light of your condition. + +>D +Cyclops Room + +>E +Strange Passage + +>E +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL BUT TORCH IN CASE +jewel-encrusted egg: Done. +golden clockwork canary: That's easy for you to say since you don't even have die golden clockwork canary trunk of jewels: Done. + +>I +You are carrying: + Eine torch (providing light) + +>W +Strange Passage + +>W +Cyclops Room + +>U +Treasure Room +There is a silver chalice, intricately engraved, here. + +>GET CHALICE + +Taken. + +>LOOK AT CHALICE +It looks pretty much like a die chalice. + +>D +Cyclops Room + +>E +Strange Passage + +>E +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine trunk of jewels + Eine jewel-encrusted egg +There is a golden clockwork canary nestled in the egg. It has ruby eyes and a silver beak. Through a crystal window below its left wing you can see intricate machinery inside. It appears to have wound down. + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>I +You are carrying: + Eine chalice + Eine torch (providing light) + +>PUT CHALICE IN TROPHY CASE +Done. + +>E +Kitchen + +>E +Behind House + +>N +North of House + +>N +Forest Path +You hear in the distance the chirping of a song bird. + +>I +You are carrying: + Eine torch (providing light) +You hear in the distance the chirping of a song bird. + +>S +North of House + +>S +The windows are all boarded. + +>E +Behind House + +>W +Kitchen + +>W +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine chalice + Eine trunk of jewels + Eine jewel-encrusted egg +There is a golden clockwork canary nestled in the egg. It has ruby eyes and a silver beak. Through a crystal window below its left wing you can see intricate machinery inside. It appears to have wound down. + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET EGG +Taken. + +>LOOK AT EGG +Die jewel-encrusted egg contains: + Eine golden clockwork canary + +>E +Kitchen + +>E +Behind House + +>N +North of House + +>N +Forest Path +You hear in the distance the chirping of a song bird. + +>U +Up a Tree +Beside you on the branch is a small bird's nest. + +>SAVE +To file (SS:7): 8..1Ok. + +>I +You are carrying: + Eine jewel-encrusted egg + Die jewel-encrusted egg contains: + Eine golden clockwork canary + Eine torch (providing light) + +>GET CANARY + +Taken. +You hear in the distance the chirping of a song bird. + +>LOOK AT CANARY +There's nothing special about die golden clockwork canary. + +>WIND THE CLOCKWORK CANARY +The canary chirps, slightly off-key, an aria from a forgotten opera. From out of the greenery flies a lovely songbird. It perches on a limb just over your head and opens its beak to sing. As it does so a beautiful brass bauble drops from its mouth, bounces off the top of your head, and lands glimmering in the grass. +As the canary winds down, the songbird flies away. + + +>LOOK AT BAUBLE +You can't see any bauble here! + +>D +Forest Path +There is eine beautiful brass bauble here. +You hear in the distance the chirping of a song bird. + +>GET BRASS BAUBLE + +Taken. + +>S +North of House + +>E +Behind House + +>W +Kitchen + +>W +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL IN CASE +beautiful brass bauble: Done. +golden clockwork canary: Done. +jewel-encrusted egg: Done. +torch: Done. + +>LOOK ON CASE +Look on einer trophy case??? + +>LOOK AT CASE +Your collection of treasures consists of: + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET TREASURE +Welche treasure meinst du, die torch, die jewel-encrusted egg, die golden clockwork canary, die beautiful brass bauble, die chalice, die trunk of jewels, die leather bag of coins, die platinum bar, die huge diamond, die large emerald, +die sapphire-encrusted bracelet, die jade figurine, die crystal trident, die beautiful jeweled scarab, die sceptre, die pot of gold, die gold coffin, or die painting? +>I +You are empty-handed. + +>GET LAMP +Taken. + +>TURN LAMP ON +Die brass lantern is now on. + +>I +You are carrying: + Eine brass lantern (providing light) + +>LOOK AT TREASURE +Welche treasure meinst du, die torch, die jewel-encrusted egg, die goldenclockwork canary, die beautiful brass bauble, die chalice, die trunk of jewels,die leather bag of coins, +die platinum bar, +die huge diamond, +die large emerald, +die sapphire-encrusted bracelet, +die jade figurine, +die crystal trident, +die beautiful jeweled scarab, +die sceptre, +die pot of gold, +die gold coffin, +or die painting? + +>WHERE IS KRISTALL +Die in der trophy case. + +>WHERE IS PARCHMENT +You can't see any parchment here! + +>GET KRISTALL +Taken. + +The lamp appears a bit dimmer. + +>E +Kitchen + +>LOOK AT TREASURE +You can't see any treasure here! + +>I +You are carrying: + Eine kristallen Hirnschale + Eine brass lantern (providing light) + +>W +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>TURN OFF TORCH +(Taken) +You nearly burn your hand trying to extinguish the flame. + + +>I +You are carrying: + Eine torch (providing light) + Eine kristallen Hirnschale + Eine brass lantern (providing light) + +>PUT ALL BUT LAMP IN CASE +torch: Done. +kristallen Hirnschale: Done. + +>L AT PARCHMENT +You can't see any parchment here! + +>I +You are carrying: + Eine brass lantern (providing light) + +>LOOK AT MAP +You can't see any map here! + +>Z +Time passes... + +>I +You are carrying: + Eine brass lantern (providing light) + +>I +You are carrying: + Eine brass lantern (providing light) + +>L +Living Room +You are in the living room. There is a doorway to the east. To the west is a cyclops-shaped opening in an old wooden door, above which is some strange gothic lettering, a trophy case, and a rug lying beside an open trap door. +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>LOOK AT MAP +You can't see any map here! + +>L +Living Room +You are in the living room. There is a doorway to the east. To the west is a cyclops-shaped opening in an old wooden door, above which is some strange gothic lettering, a trophy case, and a rug lying beside an open trap door. +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET STILETTO,KNIFE +stiletto: Taken. +nasty knife: Taken. + +>L +Living Room +You are in the living room. There is a doorway to the east. To the west is a cyclops-shaped opening in an old wooden door, above which is some strange gothic lettering, a trophy case, and a rug lying beside an open trap door. +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine platinum bar + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET KEY +Taken. + +>L +Living Room +You are in the living room. There is a doorway to the east. To the west is a cyclops-shaped opening in an old wooden door, above which is some strange gothic lettering, a trophy case, and a rug lying beside an open trap door. +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine platinum bar + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>CLOSE TROPHY CASE +Closed. + +>LOOK AT MAP +You can't see any map here! + +>SAVE +To file (SS:8): 9..1Ok. + +>Q +Your score is 350 (total of 350 points), in 636 moves. +This gives you the rank of Master Adventurer. diff --git a/g.things b/g.things new file mode 100644 index 0000000..d11636e --- /dev/null +++ b/g.things @@ -0,0 +1,487 @@ + + +GENDER.SCRIPTHier beginnt eine gedruckte Kopie von: +ZORK I: Das Grosse Unterweltreich +Infocom dialogfaehig Prose - eine Phantasiegeschichte +Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986 Infocom, Inc. +Alle Rechte vorbehalten. ZORK ist ein eingetragenes Markenzeichen +der Infocom, Inc. +BETA RELEASE # 1 +Veroeffentlichung 6 / Seriennummer 880114 / Interpreter 1 Version C + +>TESTIT +Dass ich zu spaet komme. +Oeffne den Uebermensch. Aepfel sind schoen. +Er sagt, >>Und ueber den Mann.<< + +Der Wald ist gut. +Das Wasser ist gut. +Das Paar Haende ist gut. +Der Nagel ist gut. +Die Schalttafel ist gut. +Die Jade-Figur ist gut. +Die Fackel ist gut. +Das Pepperoni-Brot ist gut. +Die Streichholzschachtel ist gut. +Der Abenteurer ist gut. +Der Kristalldreizack ist gut. +Die uralte Landkarte ist gut. +Das Kerzenpaar ist gut. +Das Gitter ist gut. +Der Altar ist gut. +Die blutige Axt ist gut. +Der Weg ist gut. +No Gender: ZORK owner's manual +Der Schornstein ist gut. +Der Abenteuer ist gut. +No Gender: F +Das Leck ist gut. +Das Tor ist gut. +Die sie ist gut. +Der Teppich ist gut. +Der Singvogel ist gut. +Das hoelzerne Gelaender ist gut. +Die Ketter ist gut. +Das Seil ist gut. +Der Regenbogen ist gut. +Die kleine Kohlenhalde ist gut. +Der es ist gut. +Der gelbe Knopf ist gut. +Das weisse Haus ist gut. +Das es ist gut. +No Gender: punctured boat +Die Fledermaus ist gut. +Das Gebet ist gut. +Der Durchgang ist gut. +Der Zettel ist gut. +Das Brett ist gut. +Das Marmorpodest ist gut. +Der goldene Kanarienvogel ist gut. +Die Messingglocke ist gut. +No Gender: Einmeisselung +Der Holzleiter ist gut. +Die nutzlose Laterne ist gut. +Das shoene Gemaelde ist gut. +Der grosse Sack ist gut. +Der Schluessel ist gut. +Der Ledersack voll Muenzen ist gut. +Der Fels ist gut. +Der braune Sack ist gut. +Die Holztuer ist gut. +Der Schalter ist gut. +Der kleine Fluss ist gut. +Der weisse Fels ist gut. +Das juwelenbesetzte Ei ist gut. +Die Spalte ist gut. +Der Baum ist gut. +Der Korb ist gut. +Die Fahrradpumpe ist gut. +Das steinerne Huegelgrab ist gut. +Der Schraubenzieher ist gut. +No Gender: broken jewel-encrusted egg +Das Zorkknete ist gut. +Der Berg ist gut. +Der grosse Smaragd ist gut. +Die Haustuer ist gut. +Der Seemann ist gut. +No Gender: beautiful jeweled scaraben Skarabaeus +Das Sand ist gut. +Die Schaufel ist gut. +Die schoene Flitterkugel ist gut. +Das Vogelnest ist gut. +No Gender: viscous material +Die Flasche ist gut. +Der Kristalschaedel ist gut. +Die Kuppel ist gut. +Der er ist gut. +Die Schlacke ist gut. +Das Haufen von Koerpern ist gut. +Die batteriengespeiste Messingleuchte ist gut. +No Gender: broken clockwork canary +Der Troll ist gut. +Der braune Knopf ist gut. +Der Topf voll Gold ist gut. +Das Blaetterhaufen ist gut. +Die Luft ist gut. +Die Farbe ist gut. +Die kaputte Leuchte ist gut. +Das Dieb ist gut. +Das aussenhende Messer ist gut. +Die rotgluehende Glocke ist gut. +Der KuechenTisch ist gut. +Das lauernde Greuel ist gut. +Die Treppe ist gut. +Der reingoldene Sarg ist gut. +Das beige Schildchen ist gut. +Das Gebaelk ist gut. +Der riesige Spiegel ist gut. +Die rote Markierungsboje ist gut. +Die Wassermenge ist gut. +Der Grund ist gut. +Die Steintuer ist gut. +Der riesige Diamanten ist gut. +Das Ding ist gut. +No Gender: tube +Das schwarze Buch ist gut. +Der Trophaeenschrank ist gut. +Die Nummer ist gut. +Der Zyklop ist gut. +Die gruene Plastikblase ist gut. +Die Platinbarren ist gut. +Der Korb ist gut. +Das Zepter ist gut. +Das Skelett ist gut. +Die Maschine ist gut. +Das Zauberboot ist gut. +Die Metallschraube ist gut. +Die Geisterzahl ist gut. +Der rote Knopf ist gut. +Das Fenster ist gut. +Die Tuer ist gut. +No Gender: sapphire-encrusted bracelet +Der Prospekt ist gut. +Die Knoblauchzehe ist gut. +Die Haufen Plastik ist gut. +Die Ritze ist gut. +Der Damm ist gut. +Der blaue Knopf ist gut. +Der Fluss Gletsch ist gut. +Das Elfenschwert ist gut. +Der Juwelenkoffer ist gut. +Der kleine Briefkasten ist gut. +Die Rampe ist gut. +Das rostige Messer ist gut. +Das Gebiss ist gut. +Der riesige Spiegel ist gut. +Der Schraubenschuessel ist gut. +Die Reihe von Werkzeugkaesten ist gut. +Der Wand ist gut. +Die Falltuer ist gut. +Der Silberkelch ist gut. +Das Gas ist gut. +Das Fenster ist gut. +Das Stilett ist gut. +No Gender: lake +Der Tisch ist gut. +Das nach ist gut. + +End of test. + +>UNSCRIPT +Hier endet eine gedruckte Kopie von: +ZORK I: Das Grosse Unterweltreich +Infocom dialogfaehig Prose - eine Phantasiegeschichte +Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986 Infocom, Inc. +Alle Rechte vorbehalten. ZORK ist ein eingetragenes Markenzeichen +der Infocom, Inc. +BETA RELEASE # 1 +Veroeffentlichung 6 / Seriennummer 880114 / Interpreter 1 Version C diff --git a/german.chars b/german.chars new file mode 100644 index 0000000000000000000000000000000000000000..76e89835e6d26178f8ca42da3642b3dafb52b79e GIT binary patch literal 89 zcmZQjVP{a_;9$TBDqNguoLnj#R2UeXoSf_!fV7R1lMR%%1=2uausBc{EN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> +> + + + + \ No newline at end of file diff --git a/globals.zap b/globals.zap new file mode 100644 index 0000000..6760e86 --- /dev/null +++ b/globals.zap @@ -0,0 +1,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 diff --git a/globals.zil b/globals.zil new file mode 100644 index 0000000..e286887 --- /dev/null +++ b/globals.zil @@ -0,0 +1,454 @@ + "Generic GLOBALS file for + The ZORK Trilogy + started on 7/28/83 by MARC + + -- GERMAN EDITION " + +"SUBTITLE GLOBAL OBJECTS" + + + + + +;"Yes, this synonym for LOCAL-GLOBALS needs to exist... sigh" + + + + + +;"adjs. make ps?direction work for 'walk to east'" + + +; + + + + + + + + + + + > + + ) + ( + ) + (T + + >)> + ;"Here is the default 'cant see any' printer" + > + > + + + ; + ; + ;) + (T + ; + Ich sehe das hier nicht!%<" CR> + ; + ;)> + > + +;)> + )>) + (.PRSO? + <>>) + (T + <>>)>> + +> + +"Objects shared by all three Zorks go here" + + + + + +; + + + + + )>> + + + + + > + > + ) + ( + % + '> + + )>) + (ELSE T)> + ) + ( + > + % + '> + 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." CR> + + ) + (<==? ,HERE ,FLATHEAD-OCEAN> + ) + (T + )>) + (T )>) + (T + '> + ) + (<0? > + ) + (T + )>)>)>> + + + + + > + + ) + % + '( + )) + (T + '( + ))> + ( + )>> + + + + + ) + ( + ) + ( + )>> + + + + + + + > + > + ) + ( + > + + ) + ( + ) + ( + ) + ( + > + ) + (T + )>) + ( + + )>) + ( + ) + ( + + '( > + )) + (<==? ,ZORK-NUMBER 3> + '(,INVIS + )) + (T + '( ))> + (T + % + ') + (ELSE + ')>)>)>> + + + + + + + ) + ( + + )>> + + + + + ) + ( + )>> + + + +;"status line stuff" + + + + + + + + + + + + + + + + + + + "Host machine." + "Width of screen in chars." +; "Center of screen." + "Pixel width of characters." + "Pixel height of characters." + +> + > + ,CWIDTH>> + + + )> + ; 1>> + > + + > + + ;> + + + ;> + + + ; ;"This semi by Jeff" + ;> + + + + + + )> ;"ren: JEFF - if Zuegen printed then needs" + ; ;"to start one char to left, 65" + + + > + +> "status line constructed here" +> + + +; + + + ;> + + + > + + ; ; "Screen off." + ; "Table on." + + ; "Table off." + ; ; "Screen on." + + ; "Erase old HERE desc" + > ; "Print new HERE desc." + + )> + + ;"in case score g%os down, move 1 col. to left and print space" + + + + ) + (T + + + + ;"in case score g%os down, one col. to left and print space" + 2 ;1>>> + )> + + ;"Back to main screen." + > + +> 0> + ) + (T + )>> + > + + + ) + (T + + + >> + >)>)> + > \ No newline at end of file diff --git a/hints.zabstr b/hints.zabstr new file mode 100644 index 0000000..8c7d6d8 --- /dev/null +++ b/hints.zabstr @@ -0,0 +1,304 @@ + + +> +> + + +> +> + + + + + + + + + + + > > < +LTABLE 3 "Wozu ist das rostige Messer?" +"Wenn du dein Schwert gehabt haettest, als du es genommen hast, haette das flackernde blendende Licht als Warnung gedient." +"Versuche das Messer zu werfen oder jemanden damit anzugreifen."> > > > < +PLTABLE "Der Fluss" < +LTABLE 3 "Was besaenftigt den Flussgott?" +"Was hast du versucht, in den Fluss zu werfen?" +"Es gibt keinen Flussgott. Was jemals reingeworfen wird, ist fuer immer verloren." +> +> > > < +LTABLE 3 "Wer ist \"der andere Bewohner\"?" "\"Der von der grossen Tuete.\"" +"Der Dieb, natuerlich."> Tag, Seeman%<. Seid Ihr Euch der Gr%o%se Eurer S%unden vor den G%ottern bewu%st? ... Wahrhaftig Ihr sollt b%ussen f%ur eure Schlauheit.\"" +"Nirgends. (Man hat dich gewarnt.)">> + >>> + + + + +> \ No newline at end of file diff --git a/hints.zap b/hints.zap new file mode 100644 index 0000000..fba5f5a --- /dev/null +++ b/hints.zap @@ -0,0 +1,267 @@ + + + .FUNCT V-HINT:ANY:0:0,CHR,MAXC,C,Q,WHO +?FCN: PRINTR "Hints are not in this version." +?PRG9: INPUT 1 >CHR + EQUAL? CHR,81,113 \?CCL13 + SET 'Q,TRUE-VALUE + JUMP ?REP10 +?CCL13: EQUAL? CHR,78,110 \?CCL15 + EQUAL? CHAPT-NUM,MAXC /?PRG9 + ICALL1 ERASE-CURSOR + INC 'CUR-POS + INC 'CHAPT-NUM + ICALL1 NEW-CURSOR + SET 'QUEST-NUM,1 + JUMP ?PRG9 +?CCL15: EQUAL? CHR,80,112 \?CCL19 + EQUAL? CHAPT-NUM,1 /?PRG9 + ICALL1 ERASE-CURSOR + DEC 'CUR-POS + DEC 'CHAPT-NUM + ICALL1 NEW-CURSOR + SET 'QUEST-NUM,1 + JUMP ?PRG9 +?CCL19: EQUAL? CHR,13,10 \?PRG9 + ICALL1 PICK-QUESTION +?REP10: ZERO? Q /?FCN + SPLIT 0 + CLEAR -1 + ICALL1 INIT-STATUS-LINE + RETURN 2 + + + .FUNCT PICK-QUESTION:ANY:0:0,CHR,MAXQ,Q +?FCN: ICALL2 INIT-HINT-SCREEN,FALSE-VALUE + ICALL LEFT-LINE,3,STR?407,18 + ICALL RIGHT-LINE,3,STR?408,13 + GET HINTS,CHAPT-NUM + GET STACK,0 + SUB STACK,1 >MAXQ + CURSET 5,1 + ICALL1 PUT-UP-QUESTIONS + SUB QUEST-NUM,1 >CUR-POS + ICALL1 NEW-CURSOR +?PRG1: INPUT 1 >CHR + EQUAL? CHR,81,113 \?CCL5 + SET 'Q,TRUE-VALUE + JUMP ?REP2 +?CCL5: EQUAL? CHR,78,110 \?CCL7 + EQUAL? QUEST-NUM,MAXQ /?PRG1 + ICALL1 ERASE-CURSOR + INC 'CUR-POS + INC 'QUEST-NUM + ICALL1 NEW-CURSOR + JUMP ?PRG1 +?CCL7: EQUAL? CHR,80,112 \?CCL11 + EQUAL? QUEST-NUM,1 /?PRG1 + ICALL1 ERASE-CURSOR + DEC 'CUR-POS + DEC 'QUEST-NUM + ICALL1 NEW-CURSOR + JUMP ?PRG1 +?CCL11: EQUAL? CHR,13,10 \?PRG1 + ICALL1 DISPLAY-HINT +?REP2: ZERO? Q /?FCN + RFALSE + + + .FUNCT ERASE-CURSOR:ANY:0:0,?TMP1 + GET LINE-TABLE,CUR-POS >?TMP1 + GET COLUMN-TABLE,CUR-POS + SUB STACK,2 + CURSET ?TMP1,STACK + PRINTC 32 + RTRUE + + + .FUNCT NEW-CURSOR:ANY:0:0,?TMP1 + GET LINE-TABLE,CUR-POS >?TMP1 + GET COLUMN-TABLE,CUR-POS + SUB STACK,2 + CURSET ?TMP1,STACK + PRINTC 62 + RTRUE + + + .FUNCT INVERSE-LINE:ANY:0:0,CENTER-HALF + HLIGHT H-INVERSE + GETB 0,33 + ICALL2 PRINT-SPACES,STACK + HLIGHT H-NORMAL + RTRUE + + + .FUNCT DISPLAY-HINT:ANY:0:0,H,MX,CNT,CHR,FLG,N,?TMP1 + SET 'CNT,2 + SET 'FLG,TRUE-VALUE + SPLIT 0 + CLEAR -1 + SPLIT 3 + SCREEN S-WINDOW + CURSET 1,1 + ICALL1 INVERSE-LINE + ICALL CENTER-LINE,1,STR?409,16 + CURSET 3,1 + ICALL1 INVERSE-LINE + ICALL LEFT-LINE,3,STR?410 + ICALL RIGHT-LINE,3,STR?411,17 + HLIGHT H-BOLD + GET HINTS,CHAPT-NUM >?TMP1 + ADD QUEST-NUM,1 + GET ?TMP1,STACK >H + GET H,1 + ICALL CENTER-LINE,2,STACK + HLIGHT H-NORMAL + GET H,0 >MX + SCREEN S-TEXT + CRLF +?PRG1: ZERO? FLG /?CND3 + SUB MX,CNT + ADD STACK,1 >N + PRINTC 91 + PRINTN N + PRINTI " hint" + EQUAL? N,1 /?CND5 + PRINTC 115 +?CND5: PRINTI " left.]" + CRLF + CRLF + PRINTI " -> " + SET 'FLG,FALSE-VALUE +?CND3: INPUT 1 >CHR + EQUAL? CHR,81,113 /TRUE + EQUAL? CHR,13,10 \?PRG1 + GRTR? CNT,MX /?PRG1 + SET 'FLG,TRUE-VALUE + GET H,CNT + PRINT STACK + CRLF + CRLF + IGRTR? 'CNT,MX \?PRG1 + SET 'FLG,FALSE-VALUE + PRINTI "[Final hint]" + CRLF + JUMP ?PRG1 + + + .FUNCT PUT-UP-QUESTIONS:ANY:0:0,ST,MXQ,MXL,?TMP1 + SET 'ST,1 + GET HINTS,CHAPT-NUM + GET STACK,0 + SUB STACK,1 >MXQ + GETB 0,32 + SUB STACK,1 >MXL +?PRG1: GRTR? ST,MXQ /TRUE + SUB ST,1 + GET LINE-TABLE,STACK >?TMP1 + SUB ST,1 + GET COLUMN-TABLE,STACK + SUB STACK,1 + CURSET ?TMP1,STACK + PRINTC 32 + GET HINTS,CHAPT-NUM >?TMP1 + ADD ST,1 + GET ?TMP1,STACK + GET STACK,1 + PRINT STACK + INC 'ST + JUMP ?PRG1 + + + .FUNCT PUT-UP-CHAPTERS:ANY:0:0,ST,MXC,MXL,?TMP1 + SET 'ST,1 + GET HINTS,0 >MXC + GETB 0,32 + SUB STACK,1 >MXL +?PRG1: GRTR? ST,MXC /TRUE + SUB ST,1 + GET LINE-TABLE,STACK >?TMP1 + SUB ST,1 + GET COLUMN-TABLE,STACK + SUB STACK,1 + CURSET ?TMP1,STACK + PRINTC 32 + GET HINTS,ST + GET STACK,1 + PRINT STACK + INC 'ST + JUMP ?PRG1 + + + .FUNCT INIT-HINT-SCREEN:ANY:0:1,THIRD,WID,LEN + ASSIGNED? 'THIRD /?CND1 + SET 'THIRD,TRUE-VALUE +?CND1: GETB 0,33 >WID + SPLIT 0 + CLEAR -1 + GETB 0,32 + SUB STACK,1 + SPLIT STACK + SCREEN S-WINDOW + CURSET 1,1 + ICALL1 INVERSE-LINE + CURSET 2,1 + ICALL1 INVERSE-LINE + CURSET 3,1 + ICALL1 INVERSE-LINE + ICALL CENTER-LINE,1,STR?409,16 + ICALL LEFT-LINE,2,STR?774 + ICALL RIGHT-LINE,2,STR?775,12 + ZERO? THIRD /FALSE + ICALL LEFT-LINE,3,STR?776 + CALL RIGHT-LINE,3,STR?777,16 + RSTACK + + + .FUNCT CENTER-LINE:ANY:2:4,LN,STR,LEN,INV + ASSIGNED? 'INV /?CND1 + SET 'INV,TRUE-VALUE +?CND1: ZERO? LEN \?CND3 + DIROUT D-TABLE-ON,DIROUT-TBL + PRINT STR + DIROUT D-TABLE-OFF + GET DIROUT-TBL,0 >LEN +?CND3: GETB 0,33 + SUB STACK,LEN + DIV STACK,2 + CURSET LN,STACK + ZERO? INV /?CND5 + HLIGHT H-INVERSE +?CND5: PRINT STR + ZERO? INV /FALSE + HLIGHT H-NORMAL + RTRUE + + + .FUNCT LEFT-LINE:ANY:2:3,LN,STR,INV + ASSIGNED? 'INV /?CND1 + SET 'INV,TRUE-VALUE +?CND1: CURSET LN,1 + ZERO? INV /?CND3 + HLIGHT H-INVERSE +?CND3: PRINT STR + ZERO? INV /FALSE + HLIGHT H-NORMAL + RTRUE + + + .FUNCT RIGHT-LINE:ANY:2:4,LN,STR,LEN,INV + ASSIGNED? 'INV /?CND1 + SET 'INV,TRUE-VALUE +?CND1: ZERO? LEN \?CND3 + DIROUT 3,DIROUT-TBL + PRINT STR + DIROUT -3 + GET DIROUT-TBL,0 >LEN +?CND3: GETB 0,33 + SUB STACK,LEN + CURSET LN,STACK + ZERO? INV /?CND5 + HLIGHT H-INVERSE +?CND5: PRINT STR + ZERO? INV /FALSE + HLIGHT H-NORMAL + RTRUE + + .ENDI diff --git a/hints.zil b/hints.zil new file mode 100644 index 0000000..d051373 --- /dev/null +++ b/hints.zil @@ -0,0 +1,685 @@ +"HINTS for GERMAN ZORK - (VIA SHERLOCK) +(c) Copyright 1987 Infocom, Inc. All Rights Reserved." + + + +> + +> + +) Q WHO) + + + + ) + ( + + + )> + > + + + + > + ; + ; + + ;"> + > + %> + + ) + ( %> + > + + > + > + + )>) + ( %> + > + + > + > + + )>) + ( + ; + + )>> + + ;"AGAIN does whole routine?")> + ; + ; + ; + + + + > + +)) + > + > + > + 0> 1>> + + + > + ; + ; + + ;"> + > + %> + + ) + ( %> + > + + > + > + )>) + ( %> + > + + > + > + )>) + ( + + )>> + + )>> + +;"zeroth (first) element is 5" +> + +;"zeroth (first) element is 4" +> + +;"four and nineteen are where the text of questions start" + + ;"determines where to place the highlight cursor + Can go up to 34, that is 17 slots in each row" + + ;"shows in HINT-TBL ltable which QUESTION it's on" + + ;"shows in HINT-TBL ltable which CHAPTER it's on" + + + <- 2 ;1>> + ;"erase previous highlight cursor"> + +;"go back 2 spaces from question text, print cursor and flash is between +the cursor and text" + + + <- 2 ;1>> + "> ;"print the new cursor"> + +)) + + > + > + + + + + + + + > + + + ;)> + + > + + <+ ,QUEST-NUM 1>>> + > + + > + ; ;"instead of CRLF" + + + 1>> ;"added +1 - Jeff" + + > + )> + "> + >)> + > + %> + ; + ;> + ) + ( + > + ;".cnt starts as 2" + > + + + > + ; 1> 2> + ;"3rd = line 7, 4th = line 9, ect" + + > + + ; 1>)>)>)>>> + + 0> 1>> + 1>> + + ; + ) + (T ;"zeroth" + > + <- > 1>>) + ;( + + >)> + <+ .ST 1>> 1>> + ; ;"above curset will do the trick?" + >>> + +> + 1>> + + ; + ) + (T ;"zeroth" + > + <- > 1>>) + ;( + + >)> + 1 ;,HINT-QUEST>> + ; ;"above curset will do the trick?" + >>> + + + + + + + + + + + + + + + + + + > + + + + + > + + + + + + > + + + + + + + > + + + + + + + + > + + + + + + + + + > + + + + + + + + + + > + + > + + + + + + + + + + Tag, Seeman%<. Seid Ihr Euch der Gr%o%se Eurer S%unden vor den G%ottern bewu%st? ... Wahrhaftig Ihr sollt b%ussen f%ur eure Schlauheit.\"" + "Nirgends. (Man hat dich gewarnt.)">> + + + + + + + + + + + >>> + +;<"Loesung mit Goldsngalten gib's auf" +"Warum ist der Raum wohl zugig?" +"Hast du dir mal ueberlegt, runterrunter drohen" +"Vorsicht ist die Mutter der Porzellankiste." +"Sobald du einen Ausgang findest, der nicht der Kamin ist, dann wird sich die Falltuere nicht hinter dir schliessen. allen h" +"Waehrend du Punkte sammelst, wird du zu einem besseren Gegner." "mit nn hauszuhalten., ist so fairn ,besuchs hastInsassemitMehr f unterwegs. wahrscheinlich wahrscheinlichsund" +"Du kannst den Inhalt des Sackes bekommen, indem du ihn in einem Gefecht besiegst." +"irgstzu wirklichendu feststeckst. du feststeckst.wurde" +"Aegyptisches Zepter -4-6 - im Sarg" +"Topf mit Goldversucht zu en? beschaedigt hereinzulegen?"> + +> + + + 1>> + + + + + + + + + + > + + + >)>> + +; +; +; +; +; + +; + 39> + )> + > + +;> + + + + + + >)> + .LEN> 2>> + )> + + )>> + + + )> + + )>> + + + + + + >)> + .LEN>> + )> + + )>> + +> diff --git a/loop.zabstr b/loop.zabstr new file mode 100644 index 0000000..bfb44f5 --- /dev/null +++ b/loop.zabstr @@ -0,0 +1,19 @@ + + +> +> + + +> +> + + + + + + + + +> + + \ No newline at end of file diff --git a/loop.zap b/loop.zap new file mode 100644 index 0000000..ab99c74 --- /dev/null +++ b/loop.zap @@ -0,0 +1,286 @@ + + + .FUNCT MAIN-LOOP:ANY:0:0,TRASH +?PRG1: CALL1 MAIN-LOOP-1 >TRASH + JUMP ?PRG1 + + + .FUNCT MAIN-LOOP-1:ANY:0:0,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,O,I + SET 'CNT,0 + SET 'OBJ,FALSE-VALUE + SET 'PTBL,TRUE-VALUE + CALL1 PARSER >P-WON + ZERO? P-WON /?CCL3 + GET P-PRSI,P-MATCHLEN >ICNT + GET P-PRSO,P-MATCHLEN >OCNT + ZERO? P-IT-OBJECT /?PRD7 + CALL2 ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK \?CCL5 +?PRD7: ZERO? P-HIM-OBJECT /?PRD10 + CALL2 ACCESSIBLE?,P-HIM-OBJECT + ZERO? STACK \?CCL5 +?PRD10: ZERO? P-HER-OBJECT /?CND4 + CALL2 ACCESSIBLE?,P-HER-OBJECT + ZERO? STACK /?CND4 +?CCL5: SET 'TMP,FALSE-VALUE +?PRG15: IGRTR? 'CNT,ICNT /?REP16 + GET P-PRSI,CNT + EQUAL? STACK,IT \?CCL22 + ZERO? P-IT-OBJECT /?CCL22 + PUT P-PRSI,CNT,P-IT-OBJECT + SET 'TMP,TRUE-VALUE + JUMP ?REP16 +?CCL22: GET P-PRSI,CNT + EQUAL? STACK,HIM \?CCL26 + ZERO? P-HIM-OBJECT /?CCL26 + PUT P-PRSI,CNT,P-HIM-OBJECT + SET 'TMP,TRUE-VALUE + JUMP ?REP16 +?CCL26: GET P-PRSI,CNT + EQUAL? STACK,HER \?PRG15 + ZERO? P-HER-OBJECT /?PRG15 + PUT P-PRSI,CNT,P-HER-OBJECT + SET 'TMP,TRUE-VALUE +?REP16: ZERO? TMP \?CND32 + SET 'CNT,0 +?PRG34: IGRTR? 'CNT,OCNT /?CND32 + GET P-PRSI,CNT + EQUAL? STACK,IT \?CCL41 + ZERO? P-IT-OBJECT /?CCL41 + PUT P-PRSI,CNT,P-IT-OBJECT + JUMP ?CND32 +?CCL41: GET P-PRSI,CNT + EQUAL? STACK,HIM \?CCL45 + ZERO? P-HIM-OBJECT /?CCL45 + PUT P-PRSI,CNT,P-HIM-OBJECT + JUMP ?CND32 +?CCL45: GET P-PRSI,CNT + EQUAL? STACK,HER \?PRG34 + ZERO? P-HER-OBJECT /?PRG34 + PUT P-PRSI,CNT,P-HER-OBJECT +?CND32: SET 'CNT,0 +?CND4: ZERO? OCNT \?CCL53 + SET 'NUM,OCNT + JUMP ?CND51 +?CCL53: GRTR? OCNT,1 \?CCL55 + SET 'TBL,P-PRSO + ZERO? ICNT \?CCL58 + SET 'OBJ,FALSE-VALUE + JUMP ?CND56 +?CCL58: GET P-PRSI,1 >OBJ +?CND56: SET 'NUM,OCNT + JUMP ?CND51 +?CCL55: GRTR? ICNT,1 \?CCL60 + SET 'PTBL,FALSE-VALUE + SET 'TBL,P-PRSI + GET P-PRSO,1 >OBJ + SET 'NUM,ICNT + JUMP ?CND51 +?CCL60: SET 'NUM,1 +?CND51: ZERO? OBJ \?CND61 + EQUAL? ICNT,1 \?CND61 + GET P-PRSI,1 >OBJ +?CND61: EQUAL? PRSA,V?WALK \?CCL67 + ZERO? P-WALK-DIR /?CCL67 + CALL PERFORM,PRSA,PRSO >V + JUMP ?CND65 +?CCL67: ZERO? NUM \?CCL71 + GETB P-SYNTAX,P-SBITS + BAND STACK,P-SONUMS + ZERO? STACK \?CCL74 + CALL2 PERFORM,PRSA >V + SET 'PRSO,FALSE-VALUE + JUMP ?CND65 +?CCL74: ZERO? LIT \?CCL76 + PRINTI "Es ist zu dunkel, um etwas zu sehen." + CRLF + JUMP ?CND65 +?CCL76: ICALL1 REFERRING + SET 'V,FALSE-VALUE + JUMP ?CND65 +?CCL71: SET 'P-NOT-HERE,0 + SET 'P-MULT,FALSE-VALUE + GRTR? NUM,1 \?CND77 + SET 'P-MULT,TRUE-VALUE +?CND77: SET 'TMP,FALSE-VALUE +?PRG79: IGRTR? 'CNT,NUM \?CCL83 + GRTR? P-NOT-HERE,0 \?CCL86 + PRINTI "The " + EQUAL? P-NOT-HERE,1 \?CCL89 + PRINTI "Das" + JUMP ?CND87 +?CCL89: PRINTI "Die" +?CND87: EQUAL? P-NOT-HERE,NUM /?CND90 + PRINTI " andere " +?CND90: PRINTI "Ding" + EQUAL? P-NOT-HERE,1 /?CND92 + PRINTC 101 +?CND92: PRINTI " von dem du sprichst, " + EQUAL? P-NOT-HERE,1 /?CCL96 + PRINTI "sind" + JUMP ?CND94 +?CCL96: PRINTI "ist" +?CND94: PRINTI " nicht hier." + CRLF + JUMP ?CND65 +?CCL86: ZERO? TMP \?CND65 + PRINTI "Es gibt hier nichts, das man wegnehmen kann." + CRLF + JUMP ?CND65 +?CCL83: ZERO? PTBL /?CCL100 + GET P-PRSO,CNT >OBJ1 + JUMP ?CND98 +?CCL100: GET P-PRSI,CNT >OBJ1 +?CND98: ZERO? PTBL /?CCL103 + SET 'O,OBJ1 + JUMP ?CND101 +?CCL103: SET 'O,OBJ +?CND101: ZERO? PTBL /?CCL106 + SET 'I,OBJ + JUMP ?CND104 +?CCL106: SET 'I,OBJ1 +?CND104: GRTR? NUM,1 /?CCL108 + GET P-ITBL,P-NC1 + GET STACK,0 + EQUAL? STACK,W?ALLES \?CND107 +?CCL108: LOC WINNER >V + EQUAL? O,NOT-HERE-OBJECT \?CCL113 + INC 'P-NOT-HERE + JUMP ?PRG79 +?CCL113: EQUAL? PRSA,V?TAKE \?CCL115 + ZERO? I /?CCL115 + GET P-ITBL,P-NC1 + GET STACK,0 + EQUAL? STACK,W?ALLES \?CCL115 + IN? O,I \?PRG79 +?CCL115: EQUAL? P-GETFLAGS,P-ALL \?CCL121 + EQUAL? PRSA,V?TAKE \?CCL121 + LOC O + EQUAL? STACK,WINNER,HERE,V /?PRD126 + LOC O + EQUAL? STACK,I /?PRD126 + LOC O + FSET? STACK,SURFACEBIT \?PRG79 +?PRD126: FSET? O,TAKEBIT /?CCL121 + FSET? O,TRYTAKEBIT \?PRG79 +?CCL121: EQUAL? OBJ1,IT \?CCL134 + ICALL DPRINT,P-IT-OBJECT,FALSE-VALUE + JUMP ?CND132 +?CCL134: EQUAL? OBJ1,HIM \?CCL136 + ICALL DPRINT,P-HIM-OBJECT,FALSE-VALUE + JUMP ?CND132 +?CCL136: EQUAL? OBJ1,HER \?CCL138 + ICALL DPRINT,P-HER-OBJECT,FALSE-VALUE + JUMP ?CND132 +?CCL138: ICALL DPRINT,OBJ1,FALSE-VALUE +?CND132: PRINTI ": " +?CND107: SET 'PRSO,O + SET 'PRSI,I + SET 'TMP,TRUE-VALUE + CALL PERFORM,PRSA,PRSO,PRSI >V + EQUAL? V,M-FATAL \?PRG79 +?CND65: EQUAL? V,M-FATAL /?CND141 + LOC WINNER + GETP STACK,P?ACTION + CALL STACK,M-END >V +?CND141: EQUAL? V,M-FATAL \?CND1 + SET 'P-CONT,FALSE-VALUE + JUMP ?CND1 +?CCL3: SET 'P-CONT,FALSE-VALUE +?CND1: ICALL1 NULL-F + ZERO? P-WON /FALSE + EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?TELL /TRUE + EQUAL? PRSA,V?HINT,V?SAVE,V?VERBOSE /TRUE + EQUAL? PRSA,V?QUIT,V?VERSION,V?HINTS-OFF /TRUE + EQUAL? PRSA,V?SCRIPT,V?SCORE,V?RESTART /TRUE + EQUAL? PRSA,V?RESTORE,V?UNSCRIPT /TRUE + CALL1 CLOCKER >V + RETURN V + + + .FUNCT PERFORM:ANY:1:3,A,O,I,V,OA,OO,OI + SET 'OA,PRSA + SET 'OO,PRSO + SET 'OI,PRSI + ZERO? P-WALK-DIR \?CND1 + EQUAL? IT,I,O \?CND1 + ZERO? P-IT-OBJECT /?CTR6 + CALL2 ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK \?CCL7 +?CTR6: ICALL1 REFERRING + RETURN 2 +?CCL7: EQUAL? IT,O \?CCL13 + SET 'O,P-IT-OBJECT + JUMP ?CND1 +?CCL13: EQUAL? IT,I \?CND1 + SET 'I,P-IT-OBJECT +?CND1: ZERO? P-WALK-DIR \?CND15 + EQUAL? HIM,I,O \?CND15 + ZERO? P-HIM-OBJECT /?CTR20 + CALL2 ACCESSIBLE?,P-HIM-OBJECT + ZERO? STACK \?CCL21 +?CTR20: ICALL1 REFERRING + RETURN 2 +?CCL21: EQUAL? HIM,O \?CCL27 + SET 'O,P-HIM-OBJECT + JUMP ?CND15 +?CCL27: EQUAL? HIM,I \?CND15 + SET 'I,P-HIM-OBJECT +?CND15: ZERO? P-WALK-DIR \?CND29 + EQUAL? HER,I,O \?CND29 + ZERO? P-HER-OBJECT /?CTR34 + CALL2 ACCESSIBLE?,P-HER-OBJECT + ZERO? STACK \?CCL35 +?CTR34: ICALL1 REFERRING + RETURN 2 +?CCL35: EQUAL? HER,O \?CCL41 + SET 'O,P-HER-OBJECT + JUMP ?CND29 +?CCL41: EQUAL? HER,I \?CND29 + SET 'I,P-HER-OBJECT +?CND29: SET 'PRSA,A + SET 'PRSI,I + SET 'PRSO,O + EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CCL45 + CALL1 NOT-HERE-OBJECT-F >V + ZERO? V \?CND43 +?CCL45: SET 'O,PRSO + SET 'I,PRSI + ICALL2 THIS-IS-IT,PRSO + ICALL2 THIS-IS-IT,PRSI + GETP WINNER,P?ACTION + CALL STACK >V + ZERO? V \?CND43 + LOC WINNER + GETP STACK,P?ACTION + CALL STACK,M-BEG >V + ZERO? V \?CND43 + GET PREACTIONS,A + CALL STACK >V + ZERO? V \?CND43 + ZERO? I /?CCL56 + GETP I,P?ACTION + CALL STACK >V + ZERO? V \?CND43 +?CCL56: ZERO? O /?CCL60 + EQUAL? A,V?WALK /?CCL60 + LOC O + ZERO? STACK /?CCL60 + LOC O + GETP STACK,P?CONTFCN + CALL STACK >V + ZERO? V \?CND43 +?CCL60: ZERO? O /?CCL66 + EQUAL? A,V?WALK /?CCL66 + GETP O,P?ACTION + CALL STACK >V + ZERO? V \?CND43 +?CCL66: GET ACTIONS,A + CALL STACK >V + ZERO? V /?CND43 +?CND43: SET 'PRSA,OA + SET 'PRSO,OO + SET 'PRSI,OI + RETURN V + + .ENDI diff --git a/loop.zil b/loop.zil new file mode 100644 index 0000000..e49eaef --- /dev/null +++ b/loop.zil @@ -0,0 +1,403 @@ + "Generic MAIN file for + The ZORK Trilogy + started on 7/28/83 by MARC + -- GERMAN EDITION" + + + +> + +> + + + + + +> + +> + + + + + + + + + + + + + +;"GO now lives in SPECIAL.ZIL" + +>>> + + + > + + > + > + > + > + > + >> + > + > .ICNT> + ) + (T + ,IT> + ,P-IT-OBJECT> + + + ) + ( ,HIM> + ,P-HIM-OBJECT> + + + ) + ( ,HER> + ,P-HER-OBJECT> + + + )>)>> + + + > .OCNT> + ) + (T + ,IT> + ,P-IT-OBJECT> + + ) + ( ,HIM> + ,P-HIM-OBJECT> + + ) + ( ,HER> + ,P-HER-OBJECT> + + )>)>>)> + )> + .OCNT) + ( + + >) + (T >)> + .OCNT) + ( + > + + > + .ICNT) + (T 1)>> + <1? .ICNT>> >)> + + >> + >) + (<0? .NUM> + ,P-SONUMS>> + > + >) + ( + ) + (T + + >)>) + (T + + > + )> + > + > .NUM> + + + ;"Das andere Ding, von dem du sprichst, ist nicht hier." + + ) + (T + )> + > + )> + + > + )> + + > + ) + (T )> + ) + ( + )> + ) + (T + >) + (T >)> + > + > + +;"multiple exceptions" + + 0> ,W?ALLES>> + > + + > + ) + ( + .I + 0> ,W?ALLES> + >> + ) + ( + + ,WINNER ,HERE .V>> + .I>> + ,SURFACEBIT>>> + + >>>> + ) + (ELSE + + ) + ( + ) + ( + ) + (T + )> + )>)> + +;"end multiple exceptions" + + + + > + )>)>>)> + > + ; ,PRSO> + >)> + ,P?ACTION> ,M-END>>)> + ; T) + (T + + + )> + >)>) + (T + >)> + % + ' + >>> + )>) + (ELSE ')> + T) + (T >)>)>> + +> + + + +% + +') (I <>) "AUX" V OA OO OI) + ; + % ') + (T ' 1>>>)> + >> + )> + )> + )> + + + + + > + + >> + + ) + ( + ) + ( + )>)> + + > + + >> + + ) + ( + ) + ( + )>)> + + > + + >> + + ) + ( + ) + ( + )>)> + ; )> + ; )> + ;> + >> + )> + + + + + >> .V) + (T + + + ;"ala Stationfall" + + >> .V) + ( ,P?ACTION> ,M-BEG>> .V) + (>> .V) + (>>> .V) + (> + + ,P?CONTFCN>>>> + .V) + (> + >>> + .V) + (>> .V)>)> + + + + .V>) + (T + +'> + +) (I <>) "AUX" V OA OO OI) + #DECL ((A) FIX (O) (I) (V) ANY) + >> .V) + (T + + + ;"ala Staionfall" + + >> .V) + ( ,P?ACTION> + ,M-BEG>> .V) + (>> .V) + (>>> .V) + (> + + ,P?CONTFCN> + + ,P?CONTFCN>>>> + .V) + (> + >>> + .V) + ( + >> .V)>)> + + + + .V> + + <>) + (T + + " CR>) + (T ">)>)> + + ) + (T )>> + + + ) + ( + ) + (T )>)> + .RES)>> + +)) + )> + > +>)> + diff --git a/old-hints.zil b/old-hints.zil new file mode 100644 index 0000000..7b02549 --- /dev/null +++ b/old-hints.zil @@ -0,0 +1,334 @@ +"HINTS for GERMAN ZORK - (VIA SHERLOCK) +(c) Copyright 1987 Infocom, Inc. All Rights Reserved." + + + +> + +> + +) Q WHO) + + ) + ( + + + )> + > + + + + > + ; + ; + + ;"> + > + %> + + ) + ( %> + > + + > + > + + )>) + ( %> + > + + > + > + + )>) + ( + ; + + )>> + + ;"AGAIN does whole routine?")> + ; + ; + ; + + + + > + +)) + > + > + > + 0> 1>> + + + > + ; + ; + + ;"> + > + %> + + ) + ( %> + > + + > + > + )>) + ( %> + > + + > + > + )>) + ( + + )>> + + )>> + +;"zeroth (first) element is 5" +> + +;"zeroth (first) element is 4" +> + +;"four and nineteen are where the text of questions start" + + ;"determines where to place the highlight cursor + Can go up to 34, that is 17 slots in each row" + + ;"shows in HINT-TBL ltable which QUESTION it's on" + + ;"shows in HINT-TBL ltable which CHAPTER it's on" + + + <- 2 ;1>> + ;"erase previous highlight cursor"> + +;"go back 2 spaces from question text, print cursor and flash is between +the cursor and text" + + + <- 2 ;1>> + "> ;"print the new cursor"> + +)) + + > + > + + + + + + + + > + + + ;)> + + > + + <+ ,QUEST-NUM 1>>> + > + + > + ; ;"instead of CRLF" + + + 1>> ;"added +1 - Jeff" + + > + )> + "> + >)> + > + %> + ; + ;> + ) + ( + > + ;".cnt starts as 2" + > + + + > + ; 1> 2> + ;"3rd = line 7, 4th = line 9, ect" + + > + + ; 1>)>)>)>>> + + 0> 1>> + 1>> + + ; + ) + (T ;"zeroth" + > + <- > 1>>) + ;( + + >)> + <+ .ST 1>> 1>> + ; ;"above curset will do the trick?" + >>> + +> + 1>> + + ; + ) + (T ;"zeroth" + > + <- > 1>>) + ;( + + >)> + 1 ;,HINT-QUEST>> + ; ;"above curset will do the trick?" + >>> + +;"longest hint topic can be 17 chars" + + > + > + > + >>> + +> + + + 1>> + + + + + + + + + + > + + + >)>> + +; +; +; +; +; + +; + 39> + )> + > + +;> + + + + + + >)> + .LEN> 2>> + )> + + )>> + + + )> + + )>> + + + + + + >)> + .LEN>> + )> + + )>> + +> diff --git a/parser.cmp b/parser.cmp new file mode 100644 index 0000000..055bb67 --- /dev/null +++ b/parser.cmp @@ -0,0 +1,2111 @@ + +;COMPARISON OF SS:GPARSER.ZIL.37 AND SS:PARSER.ZIL.273 +;OPTIONS ARE /3 + +**** FILE SS:GPARSER.ZIL.37, 1-1 (0) + "Generic PARSER file for + The ZORK Trilogy + started on 7/28/83 by MARC" +;"WHICH and TRAP retrofixes installed" +"Parser global variable convention: All parser globals will + begin with 'P-'. Local variables are not restricted in any + way. +" + + + +> + +> +> + + + + + + + + + + + + + + + + + ;> +;"INBUF - Input buffer for READ" + + + ;> +;"Parse-cont variable" + +> + +> +;"Orphan flag" + +> + +> +> + +> + +> +;"Parser variables and temporaries" + + + + + + +;"Byte offset to # of entries in LEXV" + +;"Word offset to start of LEXV entries" + + +;"Number of words per LEXV entry" + + + + +;"Offset to parts of speech byte" + + +;"Offset to first part of speech" + + +;"First part of speech bit mask in PSOFF byte" + + + + + +> + +> + +> + + + + + + + + + + + + + + + + + + + + + + +> +" Grovel down the input finding the verb, prepositions, and noun clauses. + If the input is or , fall out immediately + setting PRSA to ,V?WALK and PRSO to . Otherwise, perform + all required orphaning, syntax checking, and noun clause lookup." +) + LEN (DIR <>) (NW 0) (LW 0) NUM SCNT (CNT -1)) + > ,P-ITBLLEN> ) + (T )>> + > + > +**** FILE SS:PARSER.ZIL.273, 1-1 (0) +"PARSER for + MAGE + (c) Copyright 1985 Infocom, Inc. All Rights Reserved" +;"Parser global variable convention: All parser globals will begin +with 'P-'. Local variables are not restricted in any way." + +> +> +> +> + + + +> +;"pointers used by CLAUSE-COPY (source/destination beginning/end pointers)" + + + + + + + ;> + ;> + ;> +> + + ;> ;"INBUF - Input buffer for READ" + + ;> + <> <> <>>> + "word pointer to unknown token in P-LEXV" + "word pointer to sentence start in P-LEXV" + "byte length of unparsed tokens in P-LEXV" + "byte pointer to first free byte in OOPS-INBUF" +> ;"Parse-cont variable" +> +> +> ;"Orphan flag" +> +> +> +> +> +> +;"Parser variables and temporaries" + ;"Byte offset to # of entries in LEXV" + ;"Word offset to start of LEXV entries" + ;"Number of words per LEXV entry" + + ;"Offset to parts of speech byte" + ;"Offset to first part of speech" + ;"First part of speech bit mask in PSOFF byte" + +> +> +> +> + + + + + + + + + + + +> +;> +> +" Grovel down the input finding the verb, prepositions, and noun clauses. + If the input is or , fall out immediately + setting PRSA to ,V?WALK and PRSO to . Otherwise, perform + all required orphaning, syntax checking, and noun clause lookup." +) (OF-FLAG <>) + OWINNER OMERGED LEN (DIR <>) (NW 0) (LW 0) (CNT -1)) + > ,P-ITBLLEN> ) + (T + + >)> + )>> + + + > + > + > +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-14 (2751) + > + ; ,VEHBIT>> + >)> + >)> + + + + >> +**** FILE SS:PARSER.ZIL.273, 2-20 (3570) + ,VEHBIT>> + >)> + >)> + + + > + )> + > + >) + (,P-CONT + + > +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-31 (3297) + )> +**** FILE SS:PARSER.ZIL.273, 2-41 (4262) + )> +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-35 (3438) + )> + + > + + + PARSER.ZIL.273, 2-45 (4395) + + + )> + > ,W?OOPS> + > + ,W?PERIOD ,W?COMMA> + > + >)> + > + + ) + ( + + > + ,W?QUOTE>> + + ) + ( + )> + + >> + ;"maybe fix oops vs. chars.?" + 6>> + 7>> + <+ <* ,P-LEXELEN> 3>> + + > + > + ) + (T + > + + )>) + (T + > + > + )> + >)> + ,W?AGAIN ,W?G> + > + + ) + (,P-OFLAG + + ) + ( + + ) + ( + > + ,W?PERIOD ,W?COMMA ,W?THEN> + > + ,W?AND>> + >> + 2>>) + (T + + )>) + (T + > + 1>>)> + 0> + + ) + (T + >)> + ;> + + + + + + + ) + (T >)>>) + (T + + + + > + >>>> + > + >>> + > + + ;> + + + GPARSER.ZIL.37, 3-44 (3687) + (> + >> + + > + ) + ( + + ;"Last NOT added 7/3"> + + + )> + + > + + PARSER.ZIL.273, 2-143 (7882) + (> + ) + (T >>)> + + + ;"next clause added 8/20/84 by JW to + enable TELL MY NAME TO BEAST" + >>> + + ) + ( + + + > + + ) + (ELSE + + + )>)> + + + + ,W?QUOTE> + > + >>> + + > + ) + (ELSE + )>) + (,QUOTE-FLAG +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-65 (4450) + (> + ,ACT?WALK> + + + > + >> +**** FILE SS:PARSER.ZIL.273, 2-189 (9388) + (>>> + ,ACT?WALK ;,ACT?FLY> + + + > + GPARSER.ZIL.37, 3-87 (5106) + + ,W?THEN>)> +**** FILE SS:PARSER.ZIL.273, 2-210 (10028) + + ,W?THEN>)> +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-93 (5264) + (> +**** FILE SS:PARSER.ZIL.273, 2-215 (10179) + (>>> +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-100 (5514) + 2>>>> + >>) + (> + + + > + >> + + > + ,W?OF> + + >>) + (> + + > + ,W?THEN ,W?PERIOD>>> +**** FILE SS:PARSER.ZIL.273, 2-224 (10459) + 2>>>> + >>) + (>>> + + >> + >>> + >> + + + + > + >> + ) + (> + + >> + +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-128 (6429) +**** FILE SS:PARSER.ZIL.273, 2-254 (11451) + +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-133 (6578) + () + ( + > + +**** FILE SS:PARSER.ZIL.273, 2-260 (11629) + ( + + > + + ) + (T + >)>) + (>>) + ( + >> + ;"Next expr added to fix FORD, TELL ME WHY" + ;"NOT taken out of said expr to fix fix" + > + +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-147 (6961) + >> +**** FILE SS:PARSER.ZIL.273, 2-283 (12351) + >>)> + > +*************** + +**** FILE SS:GPARSER.ZIL.37, 3-151 (7064) + + )> + > + )> + > + T)>> +> +;"Check whether word pointed at by PTR is the correct part of speech. + The second argument is the part of speech (,PS?). The + 3rd argument (,P1?), if given, causes the value + for that part of speech to be returned." +PARSER.ZIL.273, 2-288 (12486) + > + + ) + (ELSE + )> + > + > + + + + > + T)>)>> +> +> +) "AUX" (WRD <>)) + > + > + >> + .WRD> + + > +> +> +;"For AGAIN purposes, put contents of one LEXV table into another." +> + > + > + 2>> + > + 3>> + > + > + + )>>> +;"Put contents of one INBUF into another" + 1>> + > + )>>> +;"Put the word in the positions specified from P-INBUF to the end of +OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV" +> + ) + (T + >> + >>>)> + > + >> + > + )>> + + .LEN>> +;"Check whether word pointed at by PTR is the correct part of speech. + The second argument is the part of speech (,PS?). The + 3rd argument (,P1?), if given, causes the value + for that part of speech to be returned." +GPARSER.ZIL.37, 4-11 (7937) + +) (FIRST?? T) NW (LW 0)) +**** FILE SS:PARSER.ZIL.273, 2-370 (15234) +) (1ST? T) NW (LW 0)) +*************** + +**** FILE SS:GPARSER.ZIL.37, 4-21 (8388) + ,W?THE ,W?A ,W?AN> +**** FILE SS:PARSER.ZIL.273, 2-379 (15678) + ,W?THE ,W?A ,W?AN> + ,W?$BUZZ>> +*************** + +**** FILE SS:GPARSER.ZIL.37, 4-27 (8642) + > + >> + ) + (T >>)> + ) + ( +**** FILE SS:PARSER.ZIL.273, 2-386 (15980) + > + ) + (T >>)> + + >> + + > + ) + (ELSE )>) + ( ) + ( +*************** + +**** FILE SS:GPARSER.ZIL.37, 4-37 (9081) + + + ;"ADDED 4/27 FOR TURTLE,UP" + >> +**** FILE SS:PARSER.ZIL.273, 2-401 (16609) + >> + + ;"ADDED 4/27 FOR TURTLE,UP" + >> +*************** + +**** FILE SS:GPARSER.ZIL.37, 4-46 (9379) + ( + +**** FILE SS:PARSER.ZIL.273, 2-410 (16918) + ;"This next clause was 2 clauses further down" + ;"This attempts to fix EDDIE, TURN ON COMPUTER" + ( 0>> + > + ,W?THEN> + >) + (>> + +*************** + +**** FILE SS:GPARSER.ZIL.37, 4-51 (9530) + ( + > + >) +**** FILE SS:PARSER.ZIL.273, 2-424 (17469) + ;"next clause makes 'give troll red book' + have only one noun clause. careful!" + (>> + > + + >>) + ( + > + T) +*************** + +**** FILE SS:GPARSER.ZIL.37, 4-64 (9926) + (PARSER.ZIL.273, 2-443 (18105) + ;"next clause replaced by following on from games + with characters" + ;(GPARSER.ZIL.37, 4-69 (10105) + ( + >> + > + ,W?THEN> + >) + ( T) +**** FILE SS:PARSER.ZIL.273, 2-450 (18372) + (>> + >>>) + (>> T) +*************** + +**** FILE SS:GPARSER.ZIL.37, 4-81 (10470) + > + >>> +)) +**** FILE SS:PARSER.ZIL.273, 2-458 (18647) + > + >>> +GPARSER.ZIL.37, 4-91 (10797) + + + ) + ( ) +**** FILE SS:PARSER.ZIL.273, 2-468 (18961) + ) +*************** + +**** FILE SS:GPARSER.ZIL.37, 4-99 (11059) + + ) + (.TIM + >) + ( )> + >>)> +**** FILE SS:PARSER.ZIL.273, 2-473 (19145) + + + )> +*************** + +**** FILE SS:GPARSER.ZIL.37, 4-110 (11319) + + )> +;"New ORPHAN-MERGE for TRAP Retrofix 6/21/84" +) WRD) + > + 0> ,PS?ADJECTIVE ,P1?ADJECTIVE> + )> +**** FILE SS:PARSER.ZIL.273, 2-481 (19280) +> + + > + > + >> + + + ) + (> ,W?QUOTE> + + ) + (.1ST? + > + T) + ( + >) + (ELSE + + > + + )>) + (ELSE ;"was " + ) + ;(ELSE )> + > + >>> +) "AUX" QPTR WRD) + + > + + ) + (>> + )> + + .WRD> + + >> + )> + )> + >> + .WRD> +>> + > + )> + > + > + > + + ) + (ELSE )>) + ( + >> + ) + ( )> + > + > + >> + > +> 2>> + )> + > 3>> + + + > + > 0> + >) + (ELSE + > + > + >)> + > + )>>> + 2 #BYTE !\x #BYTE !\1 0 0 + 2 #BYTE !\x #BYTE !\2 0 0 + 2 #BYTE !\x #BYTE !\3 0 0 + 2 #BYTE !\x #BYTE !\4 0 0 + 2 #BYTE !\x #BYTE !\5 0 0 + 2 #BYTE !\x #BYTE !\6 0 0 + 2 #BYTE !\x #BYTE !\7 0 0 + 2 #BYTE !\x #BYTE !\8 0 0 + 2 #BYTE !\x #BYTE !\9 0 0 + 3 #BYTE !\x #BYTE !\1 #BYTE !\0 #BYTE 0 0 + 3 #BYTE !\x #BYTE !\1 #BYTE !\1 #BYTE 0 0 + 3 #BYTE !\x #BYTE !\1 #BYTE !\2 #BYTE 0 0 ;"TIME-CUBE" + 0 0 0 0 0 ;"EARTH" + 0 0 0 0 0 ;"WATER" + 0 0 0 0 0 ;"AIR" + 0 0 0 0 0 ;"FIRE" + 0 0 0 0 0 ;"DARK" + 0 0 0 0 0 ;"MIND" + 0 0 0 0 0 ;"LIGHT" + 0 0 0 0 0 ;"LIFE" + 0 0 0 0 0 ;"DEATH" + 0 0 0 0 0 ;"CHANGE" + 0 0 0 0 0 ;"MAGIC" + 0 0 0 0 0 ;"CONNECTIVITY" + 0 >> +> +) WRD) + > + 0>> + ,PS?VERB ,P1?VERB> + > + >>> + ) + (>> + > + + + > + > + )> +*************** + +**** FILE SS:GPARSER.ZIL.37, 5-19 (12012) + >) + (T + > + >)>) +**** FILE SS:PARSER.ZIL.273, 3-28 (23566) + > + >)> + )>) + (T + >)> + >) +*************** + +**** FILE SS:GPARSER.ZIL.37, 5-30 (12388) + >)> +**** FILE SS:PARSER.ZIL.273, 3-41 (24035) + > + >)>)> +*************** + +**** FILE SS:GPARSER.ZIL.37, 5-35 (12565) + (> +**** FILE SS:PARSER.ZIL.273, 3-47 (24262) + (,P-ACLAUSE +*************** + +**** FILE SS:GPARSER.ZIL.37, 5-50 (13054) + ,PS?ADJECTIVE> + >> + ) + ( ,PS?OBJECT> + > + > + ) + (T )>)> +**** FILE SS:PARSER.ZIL.273, 3-62 (24737) + ,PS?ADJECTIVE> ;"same as WT?" + >> + ) + ( + + ) + ( ,PS?OBJECT> + + ) + (T + )> + )> +*************** + +**** FILE SS:GPARSER.ZIL.37, 5-64 (13526) +**** FILE SS:PARSER.ZIL.273, 3-80 (25270) + > + > + > + + + ; 0>> > +*************** + +**** FILE SS:GPARSER.ZIL.37, 5-71 (13684) +;"New ACLAUSE-WIN for TRAP retrofix 6/21/84" +> + + .ADJ> +**** FILE SS:PARSER.ZIL.273, 3-93 (25665) +> + + > + + > + +*************** + +**** FILE SS:GPARSER.ZIL.37, 5-81 (13977) +;"Print undefined word in input. + PTR points to the unknown word in P-LEXV" +**** FILE SS:PARSER.ZIL.273, 3-104 (26036) + + + + > + + 0>> > + > + > +;"Print undefined word in input. + PTR points to the unknown word in P-LEXV" +*************** + +**** FILE SS:GPARSER.ZIL.37, 6-9 (14225) + + + )> +**** FILE SS:PARSER.ZIL.273, 4-9 (26592) + +*************** + +**** FILE SS:GPARSER.ZIL.37, 6-16 (14476) + + > + >> + + + )> +**** FILE SS:PARSER.ZIL.273, 4-14 (26795) + + > + >> +GPARSER.ZIL.37, 6-32 (14950) + the verb and adjectives for this input. Returns false if no + syntax matches, and does it's own orphaning. If return is true, + the syntax is saved in P-SYNTAX." + + + + + + + + + + + + + + + + + + + + + + +) (DRIVE2 <>) PREP VERB TMP) +**** FILE SS:PARSER.ZIL.273, 4-27 (27189) + the verb and adjectives for this input. Returns false if no + syntax matches, and does it's own orphaning. If return is true, + the syntax is saved in P-SYNTAX." + + + + + + + + + + + +) (DRIVE2 <>) PREP VERB TMP) +*************** + +**** FILE SS:GPARSER.ZIL.37, 7-22 (16227) + > +**** FILE SS:PARSER.ZIL.273, 5-22 (28407) + > +*************** + +**** FILE SS:GPARSER.ZIL.37, 7-28 (16396) + +**** FILE SS:PARSER.ZIL.273, 5-28 (28579) + +*************** + +**** FILE SS:GPARSER.ZIL.37, 7-48 (17021) + ( + + ) + (> + ) +**** FILE SS:PARSER.ZIL.273, 5-47 (29180) + ( + + ) + (> + + ) +*************** + +**** FILE SS:GPARSER.ZIL.37, 7-57 (17318) + ) +**** FILE SS:PARSER.ZIL.273, 5-57 (29512) + + ) +*************** + +**** FILE SS:GPARSER.ZIL.37, 7-64 (17546) + )> +**** FILE SS:PARSER.ZIL.273, 5-65 (29749) + + )> +*************** + +**** FILE SS:GPARSER.ZIL.37, 7-69 (17735) + )>> + + > + + +**** FILE SS:PARSER.ZIL.273, 5-71 (29946) + )>> + + + + )> + > + > + > +*************** + +**** FILE SS:GPARSER.ZIL.37, 8-8 (18077) + )> + > )> +**** FILE SS:PARSER.ZIL.273, 6-11 (30435) + + + + + + )> + > + + + + + )> +*************** + +**** FILE SS:GPARSER.ZIL.37, 8-15 (18360) + )>> + + .THE?>> + +) WRD (FIRST?? T) (PN <>)) +**** FILE SS:PARSER.ZIL.273, 6-28 (31070) + )>> + + + + + + + + + + + + > +) "AUX" BEG END) + > + >) + (ELSE + > + >)> + > +) (Q? <>)) +*************** + +**** FILE SS:GPARSER.ZIL.37, 8-24 (18667) + >) + (T )> + > ,W?PERIOD> + ) + (T + .CP> + )> + ) +**** FILE SS:PARSER.ZIL.273, 6-57 (31882) + > + T) + ( + ) + (.NOSP >) + (ELSE )> + + ) + ( + + ) + ( + + ) + ( + + ) + (T + .CP> + )> + + > + 0>>) + (ELSE )>) +*************** + +**** FILE SS:GPARSER.ZIL.37, 8-36 (19069) + + >)> + >)>)> + >>> +> + + > + )>> + +) "AUX" BEG END) + > + > + PARSER.ZIL.273, 6-85 (32756) + > + )> + + > + )>)> + >)>)> + >>> + )> + + >> + ) + ( + )> + >>> + + > + ) + (T + )>> + + >) + (T + > 32>> + 1> <+ 1>>)>> +> + + + ) + (T + > + )>)>> +) "AUX" BEG END) + >> + >> + +*************** + +**** FILE SS:GPARSER.ZIL.37, 8-56 (19648) + ,P-LEXELEN> +**** FILE SS:PARSER.ZIL.273, 6-135 (34208) + + + ,P-LEXELEN> +*************** + +**** FILE SS:GPARSER.ZIL.37, 8-66 (19941) + >>> +PARSER.ZIL.273, 6-146 (34524) + >>> +GPARSER.ZIL.37, 9-6 (20132) + > + +PARSER.ZIL.273, 7-6 (34712) + > +GPARSER.ZIL.37, 9-13 (20365) + >>)>>> + + + >> + + + + +**** FILE SS:PARSER.ZIL.273, 7-13 (34940) + >>)>>> + + >> + + +*************** + +**** FILE SS:GPARSER.ZIL.37, 9-30 (20848) + > ,ME> + )> + + > +**** FILE SS:PARSER.ZIL.273, 7-30 (35413) + > + + > + > +*************** + +**** FILE SS:GPARSER.ZIL.37, 9-37 (21089) + + ) + (T + )>)> + > + )> + .OBJ)>) + (T )>> + +> 0>> + > + ,P-PRSO> > + > + >>)> + > 0>> + > + ,P-PRSI> > + >> + 1> + >) + (T >)>)>)> + > +PARSER.ZIL.273, 7-37 (35648) + + + ) + (ELSE + )> + ) + (ELSE + )> + .OBJ)>) + (T )>> + + > 0>> + > + ,P-PRSI> >)> + > 0>> + > + ,P-PRSO> >)> + >> + > + >)> + + >>> + >)>)> + > +% ">) + (ELSE + > + > + )> + >)>>> +GPARSER.ZIL.37, 10-15 (22488) + .NTBL> + +> + +> + +> +> + +> + +> + +> + +> + +> + + + + + + + + + + +> +> +> +) LEN WV WRD NW) + + + + > + +**** FILE SS:PARSER.ZIL.273, 8-15 (37304) + .NTBL> +> +> +> +> +>> +>> +>> +>> +>> + + + + + +) LEN WV WRD NW (WAS-ALL <>)) + > + + )> + +*************** + +**** FILE SS:GPARSER.ZIL.37, 11-16 (23268) + >>) + (T + > + +**** FILE SS:PARSER.ZIL.273, 9-11 (37951) + + >> + )> + ) + (T + > + ) + (T >)> + +*************** + +**** FILE SS:GPARSER.ZIL.37, 11-41 (24102) + () +**** FILE SS:PARSER.ZIL.273, 9-41 (38932) + (>>) +*************** + +**** FILE SS:GPARSER.ZIL.37, 11-46 (24263) + (> + > +**** FILE SS:PARSER.ZIL.273, 9-46 (39107) + (>>> + > + ;"make 'learn ' work (pdl 5/7/85)" +*************** + +**** FILE SS:GPARSER.ZIL.37, 11-55 (24559) + )>>> + + + + + + + + + + + + + + +) (OLEN 0) OBJ) +**** FILE SS:PARSER.ZIL.273, 9-59 (39495) + )>>> + + + + + + + + +) (OLEN 0) OBJ) +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-8 (24990) + ,P-ADJ> + + + >) + % + '(> + > + + + + ))>>)> +**** FILE SS:PARSER.ZIL.273, 9-82 (39973) + + ,P-ADJ + >>> + + >)> +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-26 (25514) + )> +**** FILE SS:PARSER.ZIL.273, 9-92 (40254) + )> +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-38 (25880) +**** FILE SS:PARSER.ZIL.273, 9-103 (40580) + ,VEHBIT> + ,OPENBIT>>> + ,SOG ,SIR>)> +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-41 (26003) + ) +**** FILE SS:PARSER.ZIL.273, 9-109 (40842) + ;>>) +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-46 (26198) + + > + )> +**** FILE SS:PARSER.ZIL.273, 9-114 (41068) + "?)" CR>)> +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-61 (26658) + > + + ) + ( +**** FILE SS:PARSER.ZIL.273, 9-127 (41494) + + + ,P?GENERIC>> + % "]" CR>)>> + + ,P?GENERIC> + .TBL + .LEN>> + %)>> + >> + + + + + > + > + ) + (ELSE + + > + > + )>) + (>> + + > + > + ) + (> +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-74 (27028) + )> +**** FILE SS:PARSER.ZIL.273, 9-177 (42819) + )> +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-81 (27239) + ;"next added 1/2/85 by JW" + + PARSER.ZIL.273, 9-183 (42990) + + > +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-91 (27550) + > + ) + (T )>)> +**** FILE SS:PARSER.ZIL.273, 9-192 (43298) + ) + (T + )>)> +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-103 (27864) +; +**** FILE SS:PARSER.ZIL.273, 9-204 (43578) + + + +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-114 (28161) + > 0> + )> + > 0> + )> + > 1> + >)> +**** FILE SS:PARSER.ZIL.273, 9-217 (43925) + + + > 1> + >) + ( + ,P?GENERIC>> + % "]" CR>)>> + + ,P?GENERIC> + .TBL + .LEN>> + + + %)>>)>)> + > +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-124 (28466) +;> +**** FILE SS:PARSER.ZIL.273, 9-244 (44594) +> +> +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-131 (28630) + + ) + ( + >) + (T >)> +**** FILE SS:PARSER.ZIL.273, 9-252 (44779) + + + >) + (ELSE + >)> +*************** + +**** FILE SS:GPARSER.ZIL.37, 12-140 (28939) + + + > )> + ) + ( )> +**** FILE SS:PARSER.ZIL.273, 9-265 (45102) + + + > + )> + ) + ( + )> +*************** + +**** FILE SS:GPARSER.ZIL.37, 13-2 (29201) +PARSER.ZIL.273, 10-2 (45374) +GPARSER.ZIL.37, 13-11 (29580) + > + 4> 1>> + + >> + 1>>> +**** FILE SS:PARSER.ZIL.273, 10-11 (45752) + > + > + + >> + + >>>> + + ) + (ELSE >)> + + >> +*************** + +**** FILE SS:GPARSER.ZIL.37, 13-24 (30041) + ) + ( )>>)> +**** FILE SS:PARSER.ZIL.273, 10-31 (46442) + )> + > + > )>>)> +*************** + +**** FILE SS:GPARSER.ZIL.37, 13-31 (30287) + > + > + )>)>> + +PARSER.ZIL.273, 10-39 (46723) + ;> + > + )>)>> +GPARSER.ZIL.37, 13-43 (30751) + (T )>)>> + + + + + + + +PARSER.ZIL.273, 10-51 (47186) + (T )>)>> + + + +GPARSER.ZIL.37, 13-61 (31253) + > + + >> + + ,P-SRCALL) + ( + ,P-SRCALL) + (T ,P-SRCTOP)>>>)> + >) (T )>>)>> + +> + .OBJ> + >> + +> + >>> +) + > + + >> + > 0> ) + (T + >> + )> + > + >> + + + ) + (> + >) + ( + > T>> + >) + (T )> + + > + + + )> + + + + ) + ( + > + )>)>)>>) + (T)>> + +) TMP) +**** FILE SS:PARSER.ZIL.273, 10-69 (47669) + >> + + > + + > + ,P-SRCALL) + (T ,P-SRCTOP)>>>)>)> + >) (T )>>)>> +> + .OBJ> + >> +> + >>> +> + + >> + > 0> + ) + (T + >> + + > + + ) + (T + )>)> + + > + T) + (T + + + ) + (> + + >> + >) + ( + > T>> + >) + (T + )> + > + > + + ) + ( + + ) + ( + ) + (T + + )> + + + ) + (ELSE + )> + + + ) + ( + + >> + )>)>)>>) + (T)>> +) TMP) +*************** + +**** FILE SS:GPARSER.ZIL.37, 14-50 (33507) + + )> + + > + ) +**** FILE SS:PARSER.ZIL.273, 10-160 (50337) + + + )> + + > + + ) +*************** + +**** FILE SS:GPARSER.ZIL.37, 14-61 (33895) + (T)>> + +PARSER.ZIL.273, 10-173 (50743) + (T)>> +GPARSER.ZIL.37, 14-68 (34101) + > ) + ( )>>> +> ) + ( )>>> + +> +)) + > + )> +**** FILE SS:PARSER.ZIL.273, 10-180 (50945) + > + >>) + ( )>>> +> + ) + ( + )>>> +)) +*************** + +**** FILE SS:GPARSER.ZIL.37, 15-17 (34628) + ) +**** FILE SS:PARSER.ZIL.273, 11-15 (51420) + ) + ( + > + ) +*************** + +**** FILE SS:GPARSER.ZIL.37, 15-27 (34938) + + 0> )>)> + + + .LIT> + +;> 0> ,W?IT>> + ) + (T <>>)>> +;> 0> ,W?IT>> + ) + (T <>>)>> +;"former CRUFTY routine, re-written by SWG" +PARSER.ZIL.273, 11-28 (51827) + ,VEHBIT> + ,OPENBIT>>> + 1 1>)> + + 0> + >)>)> + + > + )> + + + .LIT> +;"former CRUFTY.ZIL routine" +GPARSER.ZIL.37, 15-62 (35997) +)) ;"can player TOUCH object?" + ;"revised 5/2/84 by SEM and SWG" + + ) + ;( + + ) + (T + )>) + ( + ) + ( + ) + ( + > + ) + ( ,HERE >> + ) + (> + ) + ( + > + ) + (T + )>> + + ) + ( + )> + + ) + (T + >)>>> +**** FILE SS:PARSER.ZIL.273, 11-58 (52699) +> + > + > + + + > + )>) + ( + + > + )>) + ( + + > + )>) + ( + + + >> + )>> +*************** diff --git a/parser.zabstr b/parser.zabstr new file mode 100644 index 0000000..6f62af8 --- /dev/null +++ b/parser.zabstr @@ -0,0 +1,152 @@ + +"> +> +> +> + + + +> + + + + + + + + + +> + +> +> +> +> +> + <> <> <>>> + + + + +> +> +> +> +> +> + + + + + + + + +> +> +> +> + + + + + + + + + + + +> +> + +> +> +> + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> + + + + +> +> +> +> +> +> +> +> + + + + + +> + + + + + + + + + +> +> + + + + + + + + + + + + + +> + + + + \ No newline at end of file diff --git a/parser.zap b/parser.zap new file mode 100644 index 0000000..1ad3502 --- /dev/null +++ b/parser.zap @@ -0,0 +1,1745 @@ + + + .FUNCT PARSER:ANY:0:0,PTR,WRD,VAL,VERB,OF-FLAG,OWINNER,OMERGED,LEN,DIR,NW,LW,CNT,?TMP2,?TMP1 + SET 'PTR,P-LEXSTART + SET 'CNT,-1 +?PRG1: IGRTR? 'CNT,P-ITBLLEN /?REP2 + ZERO? P-OFLAG \?CND6 + GET P-ITBL,CNT + PUT P-OTBL,CNT,STACK +?CND6: PUT P-ITBL,CNT,0 + JUMP ?PRG1 +?REP2: SET 'OWINNER,WINNER + SET 'OMERGED,P-MERGED + SET 'P-ADVERB,FALSE-VALUE + SET 'P-MERGED,FALSE-VALUE + SET 'P-END-ON-PREP,FALSE-VALUE + PUT P-PRSO,P-MATCHLEN,0 + PUT P-PRSI,P-MATCHLEN,0 + PUT P-BUTS,P-MATCHLEN,0 + ZERO? QUOTE-FLAG \?CND8 + EQUAL? WINNER,PLAYER /?CND8 + SET 'WINNER,PLAYER + CALL2 META-LOC,PLAYER >HERE + CALL2 LIT?,HERE >LIT +?CND8: ZERO? RESERVE-PTR /?CCL14 + SET 'PTR,RESERVE-PTR + ICALL STUFF,RESERVE-LEXV,P-LEXV + ZERO? SUPER-BRIEF \?CND15 + EQUAL? PLAYER,WINNER \?CND15 + CRLF +?CND15: SET 'RESERVE-PTR,FALSE-VALUE + SET 'P-CONT,FALSE-VALUE + JUMP ?CND12 +?CCL14: ZERO? P-CONT /?CCL20 + SET 'PTR,P-CONT + ZERO? SUPER-BRIEF \?CND21 + EQUAL? PLAYER,WINNER \?CND21 + EQUAL? PRSA,V?SAY /?CND21 + CRLF +?CND21: SET 'P-CONT,FALSE-VALUE + JUMP ?CND12 +?CCL20: SET 'WINNER,PLAYER + SET 'QUOTE-FLAG,FALSE-VALUE + LOC WINNER + FSET? STACK,VEHBIT /?CND26 + LOC WINNER >HERE +?CND26: CALL2 LIT?,HERE >LIT + ZERO? SUPER-BRIEF \?PRG30 + CRLF +?PRG30: ICALL1 UPDATE-STATUS-LINE + PRINTC 62 + PUTB P-INBUF,1,0 + READ P-INBUF,P-LEXV +?CND12: GETB P-LEXV,P-LEXWORDS >P-LEN + ZERO? P-LEN \?CND32 + PRINTI "Bitte?" + CRLF + RFALSE +?CND32: GET P-LEXV,PTR >WRD + EQUAL? WRD,W?ACH \?CCL36 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?PERIOD,W?COMMA \?CND37 + ADD PTR,P-LEXELEN >PTR + DEC 'P-LEN +?CND37: GRTR? P-LEN,1 /?CCL41 + PRINTI "Das war tolpatschig." + CRLF + RFALSE +?CCL41: GET OOPS-TABLE,O-PTR + ZERO? STACK /?CCL43 + GRTR? P-LEN,2 \?CCL46 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?QUOTE \?CCL46 + PRINTI "Es tut mir leid, aber Fehler im vorgegebenen Text lassen sich nicht korrigieren." + CRLF + RFALSE +?CCL46: GRTR? P-LEN,2 \?CND44 + PRINTI "Warnung: nur das erste Wort nach ACH kann gelten." + CRLF +?CND44: GET OOPS-TABLE,O-PTR >?TMP1 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + PUT AGAIN-LEXV,?TMP1,STACK + SET 'WINNER,OWINNER + MUL PTR,P-LEXELEN + ADD STACK,6 + GETB P-LEXV,STACK >?TMP2 + MUL PTR,P-LEXELEN + ADD STACK,7 + GETB P-LEXV,STACK >?TMP1 + GET OOPS-TABLE,O-PTR + MUL STACK,P-LEXELEN + ADD STACK,3 + ICALL INBUF-ADD,?TMP2,?TMP1,STACK + ICALL STUFF,AGAIN-LEXV,P-LEXV + GETB P-LEXV,P-LEXWORDS >P-LEN + GET OOPS-TABLE,O-START >PTR + ICALL INBUF-STUFF,OOPS-INBUF,P-INBUF + JUMP ?CND34 +?CCL43: PUT OOPS-TABLE,O-END,FALSE-VALUE + PRINTI "Hier gab es kein Wort zu ersetzen!" + CRLF + RFALSE +?CCL36: EQUAL? WRD,W?WIEDER /?CND50 + SET 'P-NUMBER,0 +?CND50: PUT OOPS-TABLE,O-END,FALSE-VALUE +?CND34: GET P-LEXV,PTR + EQUAL? STACK,W?WIEDER \?CCL54 + GETB OOPS-INBUF,1 + ZERO? STACK \?CCL57 + PRINTI "Bitte?" + CRLF + RFALSE +?CCL57: ZERO? P-OFLAG /?CCL59 + PRINTI "Gespr%achsfetzen wiederholen ist schwierig." + CRLF + RFALSE +?CCL59: ZERO? P-WON \?CCL61 + PRINTI "Das w%urde den Fehler nur wiederholen." + CRLF + RFALSE +?CCL61: GRTR? P-LEN,1 \?CCL63 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?PERIOD,W?COMMA,W?DANN /?CTR65 + ADD PTR,P-LEXELEN + GET P-LEXV,STACK + EQUAL? STACK,W?UND \?CCL66 +?CTR65: ADD PTR,4 >PTR + GETB P-LEXV,P-LEXWORDS + SUB STACK,2 + PUTB P-LEXV,P-LEXWORDS,STACK + JUMP ?CND55 +?CCL66: PRINTI "Dieser Satz ist nicht verstanden worden." + CRLF + RFALSE +?CCL63: ADD PTR,P-LEXELEN >PTR + GETB P-LEXV,P-LEXWORDS + SUB STACK,1 + PUTB P-LEXV,P-LEXWORDS,STACK +?CND55: GETB P-LEXV,P-LEXWORDS + GRTR? STACK,0 \?CCL71 + ICALL STUFF,P-LEXV,RESERVE-LEXV + SET 'RESERVE-PTR,PTR + JUMP ?CND69 +?CCL71: SET 'RESERVE-PTR,FALSE-VALUE +?CND69: SET 'WINNER,OWINNER + SET 'P-MERGED,OMERGED + ICALL INBUF-STUFF,OOPS-INBUF,P-INBUF + ICALL STUFF,AGAIN-LEXV,P-LEXV + SET 'CNT,-1 + SET 'DIR,AGAIN-DIR +?PRG72: IGRTR? 'CNT,P-ITBLLEN /?CND52 + GET P-OTBL,CNT + PUT P-ITBL,CNT,STACK + JUMP ?PRG72 +?CCL54: ICALL STUFF,P-LEXV,AGAIN-LEXV + ICALL INBUF-STUFF,P-INBUF,OOPS-INBUF + PUT OOPS-TABLE,O-START,PTR + MUL 4,P-LEN + PUT OOPS-TABLE,O-LENGTH,STACK + GETB P-LEXV,P-LEXWORDS + MUL P-LEXELEN,STACK + ADD PTR,STACK + MUL 2,STACK >LEN + SUB LEN,1 + GETB P-LEXV,STACK >?TMP1 + SUB LEN,2 + GETB P-LEXV,STACK + ADD ?TMP1,STACK + PUT OOPS-TABLE,O-END,STACK + SET 'RESERVE-PTR,FALSE-VALUE + SET 'LEN,P-LEN + SET 'P-DIR,FALSE-VALUE + SET 'P-NCN,0 + SET 'P-GETFLAGS,0 +?PRG77: DLESS? 'P-LEN,0 \?CCL81 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND52 +?CCL81: GET P-LEXV,PTR >WRD + ZERO? WRD \?CTR82 + CALL2 NUMBER?,PTR >WRD + ZERO? WRD /?CCL83 +?CTR82: ZERO? P-LEN \?CCL88 + SET 'NW,0 + JUMP ?CND86 +?CCL88: ADD PTR,P-LEXELEN + GET P-LEXV,STACK >NW +?CND86: EQUAL? WRD,W?ZU \?CCL91 + EQUAL? VERB,ACT?SAG \?CCL91 + SET 'WRD,W?QUOTE + JUMP ?CND89 +?CCL91: EQUAL? WRD,W?DANN \?CND89 + GRTR? P-LEN,0 \?CND89 + ZERO? VERB \?CND89 + ZERO? QUOTE-FLAG \?CND89 + EQUAL? LW,0,W?PERIOD \?CCL101 + SET 'WRD,W?DER + JUMP ?CND89 +?CCL101: PUT P-ITBL,P-VERB,ACT?SAG + PUT P-ITBL,P-VERBN,0 + SET 'WRD,W?QUOTE +?CND89: EQUAL? WRD,W?DANN,W?PERIOD,W?QUOTE \?CCL104 + EQUAL? WRD,W?QUOTE \?CND105 + ZERO? QUOTE-FLAG /?CCL109 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND105 +?CCL109: SET 'QUOTE-FLAG,TRUE-VALUE +?CND105: ZERO? P-LEN /?PEN110 + ADD PTR,P-LEXELEN >P-CONT +?PEN110: PUTB P-LEXV,P-LEXWORDS,P-LEN + JUMP ?CND52 +?CCL104: CALL WT?,WRD,16,3 >VAL + ZERO? VAL /?CCL113 + EQUAL? VERB,FALSE-VALUE,ACT?GEH \?CCL113 + EQUAL? LEN,1 /?CTR112 + EQUAL? LEN,2 \?PRD119 + EQUAL? VERB,ACT?GEH /?CTR112 +?PRD119: EQUAL? NW,W?DANN,W?PERIOD,W?QUOTE \?PRD122 + LESS? LEN,2 \?CTR112 +?PRD122: ZERO? QUOTE-FLAG /?PRD125 + EQUAL? LEN,2 \?PRD125 + EQUAL? NW,W?QUOTE /?CTR112 +?PRD125: GRTR? LEN,2 \?CCL113 + EQUAL? NW,W?COMMA,W?UND \?CCL113 +?CTR112: SET 'DIR,VAL + EQUAL? NW,W?COMMA,W?UND \?CND131 + ADD PTR,P-LEXELEN + PUT P-LEXV,STACK,W?DANN +?CND131: GRTR? LEN,2 /?CND79 + SET 'QUOTE-FLAG,FALSE-VALUE + JUMP ?CND52 +?CCL113: CALL WT?,WRD,64,1 >VAL + ZERO? VAL /?CCL136 + ZERO? VERB \?CCL136 + SET 'VERB,VAL + PUT P-ITBL,P-VERB,VAL + PUT P-ITBL,P-VERBN,P-VTBL + PUT P-VTBL,0,WRD + MUL PTR,2 + ADD STACK,2 >CNT + GETB P-LEXV,CNT + PUTB P-VTBL,2,STACK + ADD CNT,1 + GETB P-LEXV,STACK + PUTB P-VTBL,3,STACK + JUMP ?CND79 +?CCL136: CALL WT?,WRD,8,0 >VAL + ZERO? VAL \?CTR139 + EQUAL? WRD,W?ALLES /?CTR139 + EQUAL? WRD,W?EIN,W?EINE,W?EINER /?CTR139 + EQUAL? WRD,W?EINEM,W?EINEN /?CTR139 + CALL WT?,WRD,32 + ZERO? STACK \?CTR139 + CALL WT?,WRD,128 + ZERO? STACK /?CCL140 +?CTR139: GRTR? P-LEN,1 \?CCL149 + EQUAL? NW,W?VOLL \?CCL149 + ZERO? VAL \?CCL149 + EQUAL? WRD,W?ALLES /?CCL149 + EQUAL? WRD,W?EIN,W?EINE,W?EINER /?CCL149 + EQUAL? WRD,W?EINEM,W?EINEN /?CCL149 + SET 'OF-FLAG,TRUE-VALUE + JUMP ?CND79 +?CCL149: ZERO? VAL /?CCL158 + ZERO? P-LEN /?CTR157 + EQUAL? NW,W?DANN,W?PERIOD \?CCL158 +?CTR157: SET 'P-END-ON-PREP,TRUE-VALUE + LESS? P-NCN,2 \?CND79 + PUT P-ITBL,P-PREP1,VAL + PUT P-ITBL,P-PREP1N,WRD + JUMP ?CND79 +?CCL158: EQUAL? P-NCN,2 \?CCL166 + PRINTI "Der Satz hatte zu viele Substantive." + CRLF + RFALSE +?CCL166: INC 'P-NCN + SET 'P-ACT,VERB + CALL CLAUSE,PTR,VAL,WRD >PTR + ZERO? PTR /FALSE + LESS? PTR,0 \?CND79 + SET 'QUOTE-FLAG,FALSE-VALUE +?CND52: PUT OOPS-TABLE,O-PTR,FALSE-VALUE + ZERO? DIR /?CCL186 + SET 'PRSA,V?WALK + SET 'PRSO,DIR + SET 'P-OFLAG,FALSE-VALUE + SET 'P-WALK-DIR,DIR + SET 'AGAIN-DIR,DIR + RETURN AGAIN-DIR +?CCL140: EQUAL? WRD,W?VOLL \?CCL172 + ZERO? OF-FLAG /?CTR174 + EQUAL? NW,W?PERIOD,W?DANN \?CCL175 +?CTR174: ICALL2 CANT-USE,PTR + RFALSE +?CCL175: SET 'OF-FLAG,FALSE-VALUE +?CND79: SET 'LW,WRD + ADD PTR,P-LEXELEN >PTR + JUMP ?PRG77 +?CCL172: CALL WT?,WRD,4 + ZERO? STACK \?CND79 + EQUAL? VERB,ACT?SAG \?CCL180 + CALL WT?,WRD,64,1 + ZERO? STACK /?CCL180 + EQUAL? WINNER,PLAYER \?CCL180 + PRINTI "Bitte lies die Anleitung zum Spiel, um die richtige Anrede zu finden, die man f%ur andere Leute oder Biester benutzt." + CRLF + RFALSE +?CCL180: ICALL2 CANT-USE,PTR + RFALSE +?CCL83: ICALL2 UNKNOWN-WORD,PTR + RFALSE +?CCL186: ZERO? P-OFLAG /?CND187 + ICALL1 ORPHAN-MERGE +?CND187: SET 'P-WALK-DIR,FALSE-VALUE + SET 'AGAIN-DIR,FALSE-VALUE + CALL1 SYNTAX-CHECK + ZERO? STACK /FALSE + CALL1 SNARF-OBJECTS + ZERO? STACK /FALSE + CALL1 MANY-CHECK + ZERO? STACK /FALSE + CALL1 TAKE-CHECK + ZERO? STACK \TRUE + RFALSE + + + .FUNCT STUFF:ANY:2:3,SRC,DEST,MAX,PTR,CTR,BPTR + ASSIGNED? 'MAX /?CND1 + SET 'MAX,29 +?CND1: SET 'PTR,P-LEXSTART + SET 'CTR,1 + GETB SRC,0 + PUTB DEST,0,STACK + GETB SRC,1 + PUTB DEST,1,STACK +?PRG3: GET SRC,PTR + PUT DEST,PTR,STACK + MUL PTR,2 + ADD STACK,2 >BPTR + GETB SRC,BPTR + PUTB DEST,BPTR,STACK + MUL PTR,2 + ADD STACK,3 >BPTR + GETB SRC,BPTR + PUTB DEST,BPTR,STACK + ADD PTR,P-LEXELEN >PTR + IGRTR? 'CTR,MAX \?PRG3 + RTRUE + + + .FUNCT INBUF-STUFF:ANY:2:2,SRC,DEST,CNT + GETB SRC,0 + SUB STACK,1 >CNT +?PRG1: GETB SRC,CNT + PUTB DEST,CNT,STACK + DLESS? 'CNT,0 \?PRG1 + RTRUE + + + .FUNCT INBUF-ADD:ANY:3:3,LEN,BEG,SLOT,DBEG,CTR,TMP,?TMP1 + GET OOPS-TABLE,O-END >TMP + ZERO? TMP /?CCL3 + SET 'DBEG,TMP + JUMP ?CND1 +?CCL3: GET OOPS-TABLE,O-LENGTH >TMP + GETB AGAIN-LEXV,TMP >?TMP1 + ADD TMP,1 + GETB AGAIN-LEXV,STACK + ADD ?TMP1,STACK >DBEG +?CND1: ADD DBEG,LEN + PUT OOPS-TABLE,O-END,STACK +?PRG4: ADD DBEG,CTR >?TMP1 + ADD BEG,CTR + GETB P-INBUF,STACK + PUTB OOPS-INBUF,?TMP1,STACK + INC 'CTR + EQUAL? CTR,LEN \?PRG4 + PUTB AGAIN-LEXV,SLOT,DBEG + SUB SLOT,1 + PUTB AGAIN-LEXV,STACK,LEN + RTRUE + + + .FUNCT WT?:ANY:2:3,PTR,BIT,B1,OFFS,TYP + ASSIGNED? 'B1 /?CND1 + SET 'B1,5 +?CND1: SET 'OFFS,P-P1OFF + GETB PTR,P-PSOFF >TYP + BTST TYP,BIT \FALSE + GRTR? B1,4 /TRUE + EQUAL? BIT,128 /TRUE + BAND TYP,P-P1BITS >TYP + EQUAL? TYP,B1 /?CND11 + INC 'OFFS +?CND11: GETB PTR,OFFS + RSTACK + + + .FUNCT CLAUSE:ANY:3:3,PTR,VAL,WRD,OFF,NUM,ANDFLG,FIRST??,NW,LW,?TMP1 + SET 'FIRST??,TRUE-VALUE + SUB P-NCN,1 + MUL STACK,2 >OFF + ZERO? VAL /?CCL3 + ADD P-PREP1,OFF >NUM + PUT P-ITBL,NUM,VAL + ADD NUM,1 + PUT P-ITBL,STACK,WRD + ADD PTR,P-LEXELEN >PTR + JUMP ?CND1 +?CCL3: INC 'P-LEN +?CND1: ZERO? P-LEN \?CND4 + DEC 'P-NCN + RETURN -1 +?CND4: ADD P-NC1,OFF >NUM + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,NUM,STACK + GET P-LEXV,PTR + EQUAL? STACK,W?DER,W?DIE,W?DAS /?CCL7 + GET P-LEXV,PTR + EQUAL? STACK,W?EIN,W?EINE,W?EINEM /?CCL7 + GET P-LEXV,PTR + EQUAL? STACK,W?EINEN,W?EINER \?PRG11 +?CCL7: GET P-ITBL,NUM + ADD STACK,4 + PUT P-ITBL,NUM,STACK +?PRG11: DLESS? 'P-LEN,0 \?CND13 + ADD NUM,1 >?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + RETURN -1 +?CND13: GET P-LEXV,PTR >WRD + ZERO? WRD \?CTR16 + CALL2 NUMBER?,PTR >WRD + ZERO? WRD /?CCL17 +?CTR16: ZERO? P-LEN \?CCL22 + SET 'NW,0 + JUMP ?CND20 +?CCL22: ADD PTR,P-LEXELEN + GET P-LEXV,STACK >NW +?CND20: EQUAL? WRD,W?UND,W?COMMA \?CCL25 + SET 'ANDFLG,TRUE-VALUE + JUMP ?CND15 +?CCL25: EQUAL? WRD,W?ALLES /?CTR26 + EQUAL? WRD,W?EIN,W?EINE,W?EINER /?CTR26 + EQUAL? WRD,W?EINEM,W?EINEN \?CCL27 +?CTR26: EQUAL? NW,W?VOLL \?CND15 + DEC 'P-LEN + ADD PTR,P-LEXELEN >PTR + JUMP ?CND15 +?CCL27: EQUAL? WRD,W?DANN,W?PERIOD /?CTR33 + CALL WT?,WRD,8 + ZERO? STACK /?CCL34 + GET P-ITBL,P-VERB + ZERO? STACK /?CCL34 + ZERO? FIRST?? \?CCL34 +?CTR33: INC 'P-LEN + ADD NUM,1 >?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + SUB PTR,P-LEXELEN + RSTACK +?CCL34: CALL WT?,WRD,128 + ZERO? STACK /?CCL41 + GRTR? P-LEN,0 \?CCL44 + EQUAL? NW,W?VOLL \?CCL44 + EQUAL? WRD,W?ALLES /?CCL44 + EQUAL? WRD,W?EIN,W?EINE,W?EINER /?CCL44 + EQUAL? WRD,W?EINEM,W?EINEN \?CND15 +?CCL44: CALL WT?,WRD,32 + ZERO? STACK /?CCL51 + ZERO? NW /?CCL51 + CALL WT?,NW,128 + ZERO? STACK \?CND15 +?CCL51: ZERO? ANDFLG \?CCL56 + EQUAL? NW,W?ABER,W?AUSSER,W?AU%SER /?CCL56 + EQUAL? NW,W?UND,W?COMMA /?CCL56 + ADD NUM,1 >?TMP1 + ADD PTR,2 + MUL STACK,2 + ADD P-LEXV,STACK + PUT P-ITBL,?TMP1,STACK + RETURN PTR +?CCL56: SET 'ANDFLG,FALSE-VALUE + JUMP ?CND15 +?CCL41: ZERO? P-MERGED \?PRD62 + ZERO? P-OFLAG \?PRD62 + GET P-ITBL,P-VERB + ZERO? STACK /?CCL60 +?PRD62: CALL WT?,WRD,32 + ZERO? STACK \?CND15 + CALL WT?,WRD,4 + ZERO? STACK \?CND15 +?CCL60: ZERO? ANDFLG /?CCL69 + CALL WT?,WRD,16 + ZERO? STACK \?CTR68 + CALL WT?,WRD,64 + ZERO? STACK /?CCL69 +?CTR68: SUB PTR,4 >PTR + ADD PTR,2 + PUT P-LEXV,STACK,W?DANN + ADD P-LEN,2 >P-LEN +?CND15: SET 'LW,WRD + SET 'FIRST??,FALSE-VALUE + ADD PTR,P-LEXELEN >PTR + JUMP ?PRG11 +?CCL69: CALL WT?,WRD,8 + ZERO? STACK \?CND15 + ICALL2 CANT-USE,PTR + RFALSE +?CCL17: ICALL2 UNKNOWN-WORD,PTR + RFALSE + + + .FUNCT NUMBER?:ANY:1:1,PTR,CNT,BPTR,CHR,SUM,TIM,?TMP1 + MUL PTR,2 + ADD P-LEXV,STACK + GETB STACK,2 >CNT + MUL PTR,2 + ADD P-LEXV,STACK + GETB STACK,3 >BPTR +?PRG1: DLESS? 'CNT,0 /?REP2 + GETB P-INBUF,BPTR >CHR + EQUAL? CHR,58 \?CCL8 + SET 'TIM,SUM + SET 'SUM,0 + JUMP ?CND6 +?CCL8: GRTR? SUM,10000 /FALSE + LESS? CHR,58 \FALSE + GRTR? CHR,47 \FALSE + MUL SUM,10 >?TMP1 + SUB CHR,48 + ADD ?TMP1,STACK >SUM +?CND6: INC 'BPTR + JUMP ?PRG1 +?REP2: PUT P-LEXV,PTR,W?INTNUM + GRTR? SUM,1000 /FALSE + ZERO? TIM /?CND15 + LESS? TIM,8 \?CCL21 + ADD TIM,12 >TIM + JUMP ?CND19 +?CCL21: GRTR? TIM,23 /FALSE +?CND19: MUL TIM,60 + ADD SUM,STACK >SUM +?CND15: SET 'P-NUMBER,SUM + RETURN W?INTNUM + + + .FUNCT ORPHAN-MERGE:ANY:0:0,CNT,TEMP,VERB,BEG,END,ADJ,WRD,?TMP1 + SET 'CNT,-1 + SET 'P-OFLAG,FALSE-VALUE + GET P-ITBL,P-VERBN + GET STACK,0 >WRD + CALL WT?,WRD,64,1 >?TMP1 + GET P-OTBL,P-VERB + EQUAL? ?TMP1,STACK /?CTR2 + CALL WT?,WRD,32 + ZERO? STACK /?CCL3 +?CTR2: SET 'ADJ,TRUE-VALUE + JUMP ?CND1 +?CCL3: CALL WT?,WRD,128,0 + ZERO? STACK /?CND1 + ZERO? P-NCN \?CND1 + PUT P-ITBL,P-VERB,0 + PUT P-ITBL,P-VERBN,0 + ADD P-LEXV,2 + PUT P-ITBL,P-NC1,STACK + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK + SET 'P-NCN,1 +?CND1: GET P-ITBL,P-VERB >VERB + ZERO? VERB /?CCL11 + ZERO? ADJ \?CCL11 + GET P-OTBL,P-VERB + EQUAL? VERB,STACK \FALSE +?CCL11: EQUAL? P-NCN,2 /FALSE + GET P-OTBL,P-NC1 + EQUAL? STACK,1 \?CCL18 + GET P-ITBL,P-PREP1 >TEMP + GET P-OTBL,P-PREP1 + EQUAL? TEMP,STACK /?CTR20 + ZERO? TEMP \FALSE +?CTR20: ZERO? ADJ /?CCL26 + ADD P-LEXV,2 + PUT P-OTBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND27 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND27: ZERO? P-NCN \?CND24 + SET 'P-NCN,1 + JUMP ?CND24 +?CCL26: GET P-ITBL,P-NC1 + PUT P-OTBL,P-NC1,STACK +?CND24: GET P-ITBL,P-NC1L + PUT P-OTBL,P-NC1L,STACK + JUMP ?CND9 +?CCL18: GET P-OTBL,P-NC2 + EQUAL? STACK,1 \?CCL32 + GET P-ITBL,P-PREP1 >TEMP + GET P-OTBL,P-PREP2 + EQUAL? TEMP,STACK /?CTR34 + ZERO? TEMP \FALSE +?CTR34: ZERO? ADJ /?CND38 + ADD P-LEXV,2 + PUT P-ITBL,P-NC1,STACK + GET P-ITBL,P-NC1L + ZERO? STACK \?CND38 + ADD P-LEXV,6 + PUT P-ITBL,P-NC1L,STACK +?CND38: GET P-ITBL,P-NC1 + PUT P-OTBL,P-NC2,STACK + GET P-ITBL,P-NC1L + PUT P-OTBL,P-NC2L,STACK + SET 'P-NCN,2 + JUMP ?CND9 +?CCL32: ZERO? P-ACLAUSE /?CND9 + EQUAL? P-NCN,1 /?CCL45 + ZERO? ADJ \?CCL45 + SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?CCL45: GET P-ITBL,P-NC1 >BEG + ZERO? ADJ /?CND48 + ADD P-LEXV,2 >BEG + SET 'ADJ,FALSE-VALUE +?CND48: GET P-ITBL,P-NC1L >END +?PRG50: GET BEG,0 >WRD + EQUAL? BEG,END \?CCL54 + ZERO? ADJ /?CCL57 + ICALL2 ACLAUSE-WIN,ADJ + JUMP ?CND9 +?CCL57: SET 'P-ACLAUSE,FALSE-VALUE + RFALSE +?CCL54: ZERO? ADJ \?CCL59 + GETB WRD,P-PSOFF + BTST STACK,32 /?CTR58 + EQUAL? WRD,W?ALLES /?CTR58 + EQUAL? WRD,W?EIN,W?EINE,W?EINER /?CTR58 + EQUAL? WRD,W?EINEM,W?EINEN \?CCL59 +?CTR58: SET 'ADJ,WRD +?CND52: ADD BEG,P-WORDLEN >BEG + ZERO? END \?PRG50 + SET 'END,BEG + SET 'P-NCN,1 + SUB BEG,4 + PUT P-ITBL,P-NC1,STACK + PUT P-ITBL,P-NC1L,BEG + JUMP ?PRG50 +?CCL59: EQUAL? WRD,W?EIN,W?EINE,W?EINER /?CTR66 + EQUAL? WRD,W?EINEM,W?EINEN \?CCL67 +?CTR66: ICALL2 ACLAUSE-WIN,ADJ + JUMP ?CND9 +?CCL67: GETB WRD,P-PSOFF + BTST STACK,128 \?CND52 + EQUAL? WRD,P-ANAM \?CCL73 + ICALL2 ACLAUSE-WIN,ADJ + JUMP ?CND9 +?CCL73: ICALL1 NCLAUSE-WIN +?CND9: GET P-OVTBL,0 + PUT P-VTBL,0,STACK + GETB P-OVTBL,2 + PUTB P-VTBL,2,STACK + GETB P-OVTBL,3 + PUTB P-VTBL,3,STACK + PUT P-OTBL,P-VERBN,P-VTBL + PUTB P-VTBL,2,0 +?PRG76: IGRTR? 'CNT,P-ITBLLEN \?CCL80 + SET 'P-MERGED,TRUE-VALUE + RTRUE +?CCL80: GET P-OTBL,CNT + PUT P-ITBL,CNT,STACK + JUMP ?PRG76 + + + .FUNCT ACLAUSE-WIN:ANY:1:1,ADJ + GET P-OTBL,P-VERB + PUT P-ITBL,P-VERB,STACK + PUT P-CCTBL,CC-SBPTR,P-ACLAUSE + ADD P-ACLAUSE,1 + PUT P-CCTBL,CC-SEPTR,STACK + PUT P-CCTBL,CC-DBPTR,P-ACLAUSE + ADD P-ACLAUSE,1 + PUT P-CCTBL,CC-DEPTR,STACK + ICALL CLAUSE-COPY,P-OTBL,P-OTBL,ADJ + GET P-OTBL,P-NC2 + ZERO? STACK /?PEN1 + SET 'P-NCN,2 +?PEN1: SET 'P-ACLAUSE,FALSE-VALUE + RTRUE + + + .FUNCT NCLAUSE-WIN:ANY:0:0 + PUT P-CCTBL,CC-SBPTR,P-NC1 + PUT P-CCTBL,CC-SEPTR,P-NC1L + PUT P-CCTBL,CC-DBPTR,P-ACLAUSE + ADD P-ACLAUSE,1 + PUT P-CCTBL,CC-DEPTR,STACK + ICALL CLAUSE-COPY,P-ITBL,P-OTBL + GET P-OTBL,P-NC2 + ZERO? STACK /?PEN1 + SET 'P-NCN,2 +?PEN1: SET 'P-ACLAUSE,FALSE-VALUE + RTRUE + + + .FUNCT WORD-PRINT:ANY:2:3,CNT,BUF,CAP?,DID-CAP +?PRG1: DLESS? 'CNT,0 /TRUE + ZERO? DID-CAP \?CCL8 + ZERO? CAP? /?CCL8 + SET 'DID-CAP,TRUE-VALUE + GETB P-INBUF,BUF + SUB STACK,32 + PRINTC STACK + JUMP ?CND6 +?CCL8: GETB P-INBUF,BUF + PRINTC STACK +?CND6: INC 'BUF + JUMP ?PRG1 + + + .FUNCT UNKNOWN-WORD:ANY:1:1,PTR,BUF,?TMP1 + PUT OOPS-TABLE,O-PTR,PTR + EQUAL? PRSA,V?SAY \?CND1 + PRINTI "Hier passiert garnichts." + CRLF + RFALSE +?CND1: PRINTI "Das Wort %>" + MUL PTR,2 >BUF + ADD P-LEXV,BUF + GETB STACK,2 >?TMP1 + ADD P-LEXV,BUF + GETB STACK,3 + ICALL WORD-PRINT,?TMP1,STACK + PRINTI "%< kann nicht von dem Spielvokabular verstanden werden." + CRLF + SET 'QUOTE-FLAG,FALSE-VALUE + SET 'P-OFLAG,FALSE-VALUE + RETURN P-OFLAG + + + .FUNCT CANT-USE:ANY:1:1,PTR,BUF,?TMP1 + EQUAL? PRSA,V?SAY \?CND1 + PRINTI "Hier passiert garnichts." + CRLF + RFALSE +?CND1: PRINTI "Du hast das Wort %>" + MUL PTR,2 >BUF + ADD P-LEXV,BUF + GETB STACK,2 >?TMP1 + ADD P-LEXV,BUF + GETB STACK,3 + ICALL WORD-PRINT,?TMP1,STACK + PRINTI "%< so gebraucht, da%s ich es nicht verstehen kann." + CRLF + SET 'QUOTE-FLAG,FALSE-VALUE + SET 'P-OFLAG,FALSE-VALUE + RETURN P-OFLAG + + + .FUNCT SYNTAX-CHECK:ANY:0:0,SYN,LEN,NUM,OBJ,DRIVE1,DRIVE2,PREP,VERB,TMP,THE-PREP,?TMP2,?TMP1 + GET P-ITBL,P-VERB >VERB + ZERO? VERB \?CND1 + PRINTI "In diesem Satz fehlt das Verb!" + CRLF + RFALSE +?CND1: SUB 255,VERB + GET VERBS,STACK >SYN + GETB SYN,0 >LEN + INC 'SYN +?PRG3: GETB SYN,P-SBITS + BAND STACK,P-SONUMS >NUM + GRTR? P-NCN,NUM /?CND5 + LESS? NUM,1 /?CCL9 + ZERO? P-NCN \?CCL9 + GET P-ITBL,P-PREP1 >PREP + ZERO? PREP /?CTR8 + GETB SYN,P-SPREP1 + EQUAL? PREP,STACK \?CCL9 +?CTR8: SET 'DRIVE1,SYN + JUMP ?CND5 +?CCL9: GETB SYN,P-SPREP1 >?TMP1 + GET P-ITBL,P-PREP1 + EQUAL? ?TMP1,STACK \?CND5 + EQUAL? NUM,2 \?CCL18 + EQUAL? P-NCN,1 \?CCL18 + SET 'DRIVE2,SYN +?CND5: DLESS? 'LEN,1 \?CCL24 + ZERO? DRIVE1 \?REP4 + ZERO? DRIVE2 \?REP4 + PRINTI "Das Spiel erkennt diesen Satz nicht." + CRLF + RFALSE +?CCL18: GETB SYN,P-SPREP2 >?TMP1 + GET P-ITBL,P-PREP2 + EQUAL? ?TMP1,STACK \?CND5 + ICALL2 SYNTAX-FOUND,SYN + RTRUE +?CCL24: ADD SYN,P-SYNLEN >SYN + JUMP ?PRG3 +?REP4: ZERO? DRIVE1 /?CCL32 + SET 'GWIM-PRSO?,TRUE-VALUE + ZERO? GWIM-PRSO? /?CCL32 + GETB DRIVE1,P-SFWIM1 >?TMP2 + GETB DRIVE1,P-SLOC1 >?TMP1 + GETB DRIVE1,P-SPREP1 + CALL GWIM,?TMP2,?TMP1,STACK >OBJ + ZERO? OBJ /?CCL32 + PUT P-PRSO,P-MATCHLEN,1 + PUT P-PRSO,1,OBJ + CALL2 SYNTAX-FOUND,DRIVE1 + RSTACK +?CCL32: ZERO? DRIVE2 /?CCL37 + CALL1 SET-GWIM-PRSO? + ZERO? STACK /?CCL37 + GETB DRIVE2,P-SFWIM2 >?TMP2 + GETB DRIVE2,P-SLOC2 >?TMP1 + GETB DRIVE2,P-SPREP2 + CALL GWIM,?TMP2,?TMP1,STACK >OBJ + ZERO? OBJ /?CCL37 + PUT P-PRSI,P-MATCHLEN,1 + PUT P-PRSI,1,OBJ + CALL2 SYNTAX-FOUND,DRIVE2 + RSTACK +?CCL37: EQUAL? VERB,ACT?FIND \?CCL42 + PRINTI "Diese Frage kann nicht beantwortet werden." + CRLF + RFALSE +?CCL42: EQUAL? WINNER,PLAYER /?CCL44 + CALL1 CANT-ORPHAN + RSTACK +?CCL44: ICALL ORPHAN,DRIVE1,DRIVE2 + GET P-OTBL,P-VERBN >TMP + SET 'P-OFLAG,TRUE-VALUE + ZERO? DRIVE1 /?CCL47 + ZERO? TMP \?CCL50 + PRINTI "Was?!" + CRLF + RFALSE +?CCL50: GETB P-VTBL,2 + ZERO? STACK \?CCL52 + GET TMP,0 + ICALL2 CAPITALIZE,STACK + JUMP ?CND48 +?CCL52: GETB TMP,2 >?TMP1 + GETB TMP,3 + ICALL WORD-PRINT,?TMP1,STACK,TRUE-VALUE + PUTB P-VTBL,2,0 +?CND48: GETB DRIVE1,P-SPREP1 >THE-PREP + CALL NON-SEP?,VERB,THE-PREP + ZERO? STACK /?CCL55 + GETB DRIVE1,P-SPREP1 + ICALL2 PREP-PRINT,STACK + PRINTI " was" + JUMP ?CND45 +?CCL55: PRINTI " was" + GETB DRIVE1,P-SPREP1 + ICALL2 PREP-PRINT,STACK + JUMP ?CND45 +?CCL47: ZERO? DRIVE2 /?CCL57 + PRINTI "Na ja," + GETB DRIVE2,P-SPREP2 + ICALL2 PREP-PRINT,STACK + PRINTI " was" + JUMP ?CND45 +?CCL57: PRINTI "Na ja, " + ZERO? TMP \?CCL60 + PRINTI "was?" + CRLF + RFALSE +?CCL60: GETB P-VTBL,2 + ZERO? STACK \?CCL62 + GET TMP,0 + PRINTB STACK + JUMP ?CND58 +?CCL62: GETB TMP,2 >?TMP1 + GETB TMP,3 + ICALL WORD-PRINT,?TMP1,STACK + PUTB P-VTBL,2,0 +?CND58: PRINTI " was" +?CND45: PRINTC 63 + CRLF + RFALSE + + + .FUNCT NON-SEP?:ANY:2:2,VERB,THE-PREP + EQUAL? VERB,ACT?TRINK,ACT?SPRING,ACT?GRAB /TRUE + EQUAL? VERB,ACT?ISS,ACT?TRITT,ACT?UNTERSUCH /TRUE + EQUAL? VERB,ACT?SUCH,ACT?SCHWIMM /TRUE + EQUAL? VERB,ACT?HOER \?PRD8 + EQUAL? THE-PREP,W?NACH /TRUE +?PRD8: EQUAL? VERB,ACT?SCHAU \?PRD11 + EQUAL? THE-PREP,W?AN \TRUE +?PRD11: EQUAL? VERB,ACT?STEIG \?PRD14 + EQUAL? THE-PREP,W?AUF,W?DURCH /TRUE +?PRD14: EQUAL? VERB,ACT?GEH \FALSE + EQUAL? THE-PREP,W?DURCH,W?IN,W?AUF /TRUE + RFALSE + + + .FUNCT CANT-ORPHAN:ANY:0:0 + PRINTI "%>Ich verstehe das nicht! Worauf beziehst du dich?%<" + CRLF + RFALSE + + + .FUNCT ORPHAN:ANY:2:2,D1,D2,CNT + SET 'CNT,-1 + ZERO? P-MERGED \?CND1 + PUT P-OCLAUSE,P-MATCHLEN,0 +?CND1: GET P-VTBL,0 + PUT P-OVTBL,0,STACK + GETB P-VTBL,2 + PUTB P-OVTBL,2,STACK + GETB P-VTBL,3 + PUTB P-OVTBL,3,STACK +?PRG3: IGRTR? 'CNT,P-ITBLLEN /?REP4 + GET P-ITBL,CNT + PUT P-OTBL,CNT,STACK + JUMP ?PRG3 +?REP4: EQUAL? P-NCN,2 \?CND8 + PUT P-CCTBL,CC-SBPTR,P-NC2 + PUT P-CCTBL,CC-SEPTR,P-NC2L + PUT P-CCTBL,CC-DBPTR,P-NC2 + PUT P-CCTBL,CC-DEPTR,P-NC2L + ICALL CLAUSE-COPY,P-ITBL,P-OTBL +?CND8: LESS? P-NCN,1 /?CND10 + PUT P-CCTBL,CC-SBPTR,P-NC1 + PUT P-CCTBL,CC-SEPTR,P-NC1L + PUT P-CCTBL,CC-DBPTR,P-NC1 + PUT P-CCTBL,CC-DEPTR,P-NC1L + ICALL CLAUSE-COPY,P-ITBL,P-OTBL +?CND10: ZERO? D1 /?CCL14 + GETB D1,P-SPREP1 + PUT P-OTBL,P-PREP1,STACK + PUT P-OTBL,P-NC1,1 + RTRUE +?CCL14: ZERO? D2 /FALSE + GETB D2,P-SPREP2 + PUT P-OTBL,P-PREP2,STACK + PUT P-OTBL,P-NC2,1 + RTRUE + + + .FUNCT THING-PRINT:ANY:1:2,PRSO?,THE?,BEG,END + ZERO? PRSO? /?CCL3 + GET P-ITBL,P-NC1 >BEG + GET P-ITBL,P-NC1L >END + JUMP ?CND1 +?CCL3: GET P-ITBL,P-NC2 >BEG + GET P-ITBL,P-NC2L >END +?CND1: CALL BUFFER-PRINT,BEG,END,THE? + RSTACK + + + .FUNCT BUFFER-PRINT:ANY:3:3,BEG,END,CP,NOSP,WRD,FIRST??,PN,Q?,?TMP1 + SET 'NOSP,TRUE-VALUE + SET 'FIRST??,TRUE-VALUE +?PRG1: EQUAL? BEG,END /TRUE + GET BEG,0 >WRD + EQUAL? WRD,W?COMMA \?CCL8 + PRINTI ", " + JUMP ?CND6 +?CCL8: ZERO? NOSP /?CCL10 + SET 'NOSP,FALSE-VALUE + JUMP ?CND6 +?CCL10: PRINTC 32 +?CND6: EQUAL? WRD,W?PERIOD,W?COMMA \?CCL13 + SET 'NOSP,TRUE-VALUE + JUMP ?CND3 +?CCL13: EQUAL? WRD,W?MICH \?CCL15 + PRINTD ME + SET 'PN,TRUE-VALUE + JUMP ?CND3 +?CCL15: EQUAL? WRD,W?INTNUM \?CCL17 + PRINTN P-NUMBER + SET 'PN,TRUE-VALUE + JUMP ?CND3 +?CCL17: ZERO? FIRST?? /?CND18 + ZERO? PN \?CND18 + ZERO? CP /?CND18 + PRINTI "the " +?CND18: ZERO? P-OFLAG \?CTR24 + ZERO? P-MERGED /?CCL25 +?CTR24: PRINTB WRD + JUMP ?CND23 +?CCL25: EQUAL? WRD,W?ER,W?IHN,W?IHM \?CCL29 + CALL2 ACCESSIBLE?,P-HIM-OBJECT + ZERO? STACK /?CCL29 + PRINTD P-HIM-OBJECT + JUMP ?CND23 +?CCL29: EQUAL? WRD,W?SIE,W?IHR \?CCL33 + CALL2 ACCESSIBLE?,P-HER-OBJECT + ZERO? STACK /?CCL33 + PRINTD P-HER-OBJECT + JUMP ?CND23 +?CCL33: EQUAL? WRD,W?ES,W?IHM \?CCL37 + CALL2 ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK /?CCL37 + PRINTD P-IT-OBJECT + JUMP ?CND23 +?CCL37: GETB BEG,2 >?TMP1 + GETB BEG,3 + ICALL WORD-PRINT,?TMP1,STACK +?CND23: SET 'FIRST??,FALSE-VALUE +?CND3: ADD BEG,P-WORDLEN >BEG + JUMP ?PRG1 + + + .FUNCT PREP-PRINT:ANY:1:2,PREP,CAP?,WRD + ZERO? PREP /FALSE + CALL2 PREP-FIND,PREP >WRD + ZERO? CAP? /?CCL5 + CALL2 CAPITALIZE,WRD + RSTACK +?CCL5: PRINTC 32 + PRINTB WRD + RTRUE + + + .FUNCT CAPITALIZE:ANY:1:1,PTR,?TMP1 + GETB PTR,3 + GETB P-INBUF,STACK + SUB STACK,32 + PRINTC STACK + GETB PTR,2 + SUB STACK,1 >?TMP1 + GETB PTR,3 + ADD STACK,1 + CALL WORD-PRINT,?TMP1,STACK + RSTACK + + + .FUNCT CLAUSE-COPY:ANY:2:3,SRC,DEST,INSRT,BEG,END,?TMP1 + GET P-CCTBL,CC-SBPTR + GET SRC,STACK >BEG + GET P-CCTBL,CC-SEPTR + GET SRC,STACK >END + GET P-CCTBL,CC-DBPTR >?TMP1 + GET P-OCLAUSE,P-MATCHLEN + MUL STACK,P-LEXELEN + ADD STACK,2 + ADD P-OCLAUSE,STACK + PUT DEST,?TMP1,STACK +?PRG1: EQUAL? BEG,END \?CCL5 + GET P-CCTBL,CC-DEPTR >?TMP1 + GET P-OCLAUSE,P-MATCHLEN + MUL STACK,P-LEXELEN + ADD STACK,2 + ADD P-OCLAUSE,STACK + PUT DEST,?TMP1,STACK + RTRUE +?CCL5: ZERO? INSRT /?CND6 + GET BEG,0 + EQUAL? P-ANAM,STACK \?CND6 + ICALL2 CLAUSE-ADD,INSRT +?CND6: GET BEG,0 + ICALL2 CLAUSE-ADD,STACK + ADD BEG,P-WORDLEN >BEG + JUMP ?PRG1 + + + .FUNCT CLAUSE-ADD:ANY:1:1,WRD,PTR + GET P-OCLAUSE,P-MATCHLEN + ADD STACK,2 >PTR + SUB PTR,1 + PUT P-OCLAUSE,STACK,WRD + PUT P-OCLAUSE,PTR,0 + PUT P-OCLAUSE,P-MATCHLEN,PTR + RTRUE + + + .FUNCT PREP-FIND:ANY:1:1,PREP,CNT,SIZE + GET PREPOSITIONS,0 + MUL STACK,2 >SIZE +?PRG1: IGRTR? 'CNT,SIZE /FALSE + GET PREPOSITIONS,CNT + EQUAL? STACK,PREP \?PRG1 + SUB CNT,1 + GET PREPOSITIONS,STACK + RSTACK + + + .FUNCT SYNTAX-FOUND:ANY:1:1,SYN + SET 'P-SYNTAX,SYN + GETB SYN,P-SACTION >PRSA + RETURN PRSA + + + .FUNCT SET-GWIM-PRSO?:ANY:0:0 + SET 'GWIM-PRSO?,FALSE-VALUE + RTRUE + + + .FUNCT GWIM:ANY:3:3,GBIT,LBIT,PREP,OBJ,VERB,THE-PREP + EQUAL? GBIT,KLUDGEBIT \?CND1 + RETURN ROOMS +?CND1: SET 'P-GWIMBIT,GBIT + SET 'P-SLOCBITS,LBIT + GET P-ITBL,P-VERB >VERB + PUT P-MERGE,P-MATCHLEN,0 + CALL GET-OBJECT,P-MERGE,FALSE-VALUE + ZERO? STACK /?CCL5 + SET 'P-GWIMBIT,0 + GET P-MERGE,P-MATCHLEN + EQUAL? STACK,1 \FALSE + GET P-MERGE,1 >OBJ + PRINTC 40 + ZERO? PREP /?CCL11 + ZERO? P-END-ON-PREP \?CCL11 + CALL2 PREP-FIND,PREP >THE-PREP + ZERO? GWIM-PRSO? /?CCL16 + EQUAL? VERB,ACT?SAG,ACT?FRAG /?CTR18 + EQUAL? THE-PREP,W?MIT,W?NACH,W?AUS /?CTR18 + EQUAL? THE-PREP,W?ZU,W?VON \?CCL19 +?CTR18: CALL NON-SEP?,VERB,THE-PREP + ZERO? STACK /?CCL25 + PRINTB THE-PREP + PRINTC 32 + ICALL2 DER-DAT-PRINT,OBJ + JUMP ?CND17 +?CCL25: ICALL2 DER-DAT-PRINT,OBJ + PRINTC 32 + PRINTB THE-PREP + JUMP ?CND17 +?CCL19: CALL NON-SEP?,VERB,THE-PREP + ZERO? STACK /?CCL27 + PRINTB THE-PREP + PRINTC 32 + ICALL2 DER-ACC-PRINT,OBJ + JUMP ?CND17 +?CCL27: ICALL2 DER-ACC-PRINT,OBJ + PRINTC 32 + PRINTB THE-PREP +?CND17: SET 'GWIM-PRSO?,FALSE-VALUE + JUMP ?CND14 +?CCL16: EQUAL? THE-PREP,W?MIT,W?AUS,W?ZU /?CTR28 + EQUAL? THE-PREP,W?VON,W?NACH \?CCL29 +?CTR28: PRINTB THE-PREP + PRINTC 32 + ICALL2 DER-DAT-PRINT,OBJ + JUMP ?CND14 +?CCL29: PRINTB THE-PREP + PRINTC 32 + ICALL2 DER-ACC-PRINT,OBJ +?CND14: PRINTC 41 + CRLF + CRLF + RETURN OBJ +?CCL11: EQUAL? VERB,ACT?SAG,ACT?FRAG /?CTR32 + EQUAL? THE-PREP,W?MIT,W?NACH,W?AUS /?CTR32 + EQUAL? THE-PREP,W?ZU,W?VON \?CCL33 +?CTR32: ICALL2 DER-DAT-PRINT,OBJ + PRINTC 41 + CRLF + CRLF + RETURN OBJ +?CCL33: ICALL2 DER-ACC-PRINT,OBJ + PRINTC 41 + CRLF + CRLF + RETURN OBJ +?CCL5: SET 'P-GWIMBIT,0 + RFALSE + + + .FUNCT SNARF-OBJECTS:ANY:0:0,OPTR,IPTR,L + PUT P-BUTS,P-MATCHLEN,0 + GET P-ITBL,P-NC2 >IPTR + ZERO? IPTR /?CND1 + GETB P-SYNTAX,P-SLOC2 >P-SLOCBITS + GET P-ITBL,P-NC2L + CALL SNARFEM,IPTR,STACK,P-PRSI + ZERO? STACK /FALSE +?CND1: GET P-ITBL,P-NC1 >OPTR + ZERO? OPTR /?CND5 + GETB P-SYNTAX,P-SLOC1 >P-SLOCBITS + GET P-ITBL,P-NC1L + CALL SNARFEM,OPTR,STACK,P-PRSO + ZERO? STACK /FALSE +?CND5: GET P-BUTS,P-MATCHLEN + ZERO? STACK /TRUE + GET P-PRSO,P-MATCHLEN >L + ZERO? OPTR /?CND11 + CALL2 BUT-MERGE,P-PRSO >P-PRSO +?CND11: ZERO? IPTR /TRUE + ZERO? OPTR /?CCL14 + GET P-PRSO,P-MATCHLEN + EQUAL? L,STACK \TRUE +?CCL14: CALL2 BUT-MERGE,P-PRSI >P-PRSI + RTRUE + + + .FUNCT BUT-MERGE:ANY:1:1,TBL,LEN,BUTLEN,CNT,MATCHES,OBJ,NTBL + SET 'CNT,1 + GET TBL,P-MATCHLEN >LEN + PUT P-MERGE,P-MATCHLEN,0 +?PRG1: DLESS? 'LEN,0 /?REP2 + GET TBL,CNT >OBJ + CALL ZMEMQ,OBJ,P-BUTS + ZERO? STACK \?CND3 + ADD MATCHES,1 + PUT P-MERGE,STACK,OBJ + INC 'MATCHES +?CND3: INC 'CNT + JUMP ?PRG1 +?REP2: PUT P-MERGE,P-MATCHLEN,MATCHES + SET 'NTBL,P-MERGE + SET 'P-MERGE,TBL + RETURN NTBL + + + .FUNCT SNARFEM:ANY:3:3,PTR,EPTR,TBL,BUT,LEN,WV,WRD,NW,WAS-ALL + SET 'P-AND,FALSE-VALUE + EQUAL? P-GETFLAGS,P-ALL \?CND1 + SET 'WAS-ALL,TRUE-VALUE +?CND1: SET 'P-GETFLAGS,0 + PUT TBL,P-MATCHLEN,0 + GET PTR,0 >WRD +?PRG3: EQUAL? PTR,EPTR \?CCL7 + ZERO? BUT /?PRD10 + PUSH BUT + JUMP ?PEN8 +?PRD10: PUSH TBL +?PEN8: CALL2 GET-OBJECT,STACK >WV + ZERO? WAS-ALL \?CCL12 + RETURN WV +?CCL12: SET 'P-GETFLAGS,P-ALL + RETURN WV +?CCL7: ADD PTR,P-WORDLEN + EQUAL? EPTR,STACK \?CCL15 + SET 'NW,0 + JUMP ?CND13 +?CCL15: GET PTR,P-LEXELEN >NW +?CND13: EQUAL? WRD,W?ALLES \?CCL18 + SET 'P-GETFLAGS,P-ALL + EQUAL? NW,W?VOLL \?CND5 + ADD PTR,P-WORDLEN >PTR + JUMP ?CND5 +?CCL18: EQUAL? WRD,W?ABER,W?AUSSER,W?AU%SER \?CCL22 + ZERO? BUT /?PRD27 + PUSH BUT + JUMP ?PEN25 +?PRD27: PUSH TBL +?PEN25: CALL2 GET-OBJECT,STACK + ZERO? STACK /FALSE + SET 'BUT,P-BUTS + PUT BUT,P-MATCHLEN,0 + JUMP ?CND5 +?CCL22: EQUAL? WRD,W?EIN,W?EINE,W?EINEM /?CTR28 + EQUAL? WRD,W?EINEN,W?EINER \?CCL29 +?CTR28: ZERO? P-ADJ \?CCL34 + SET 'P-GETFLAGS,P-ONE + EQUAL? NW,W?VOLL \?CND5 + ADD PTR,P-WORDLEN >PTR + JUMP ?CND5 +?CCL34: SET 'P-NAM,P-ONEOBJ + ZERO? BUT /?PRD41 + PUSH BUT + JUMP ?PEN39 +?PRD41: PUSH TBL +?PEN39: CALL2 GET-OBJECT,STACK + ZERO? STACK /FALSE + ZERO? NW \?CND5 + RTRUE +?CCL29: EQUAL? WRD,W?UND,W?COMMA \?CCL45 + EQUAL? NW,W?UND,W?COMMA /?CCL45 + SET 'P-AND,TRUE-VALUE + ZERO? BUT /?PRD52 + PUSH BUT + JUMP ?PEN50 +?PRD52: PUSH TBL +?PEN50: CALL2 GET-OBJECT,STACK + ZERO? STACK \?CND5 + RFALSE +?CCL45: CALL WT?,WRD,4 + ZERO? STACK \?CND5 + EQUAL? WRD,W?UND,W?COMMA /?CND5 + EQUAL? WRD,W?VOLL \?CCL56 + ZERO? P-GETFLAGS \?CND5 + SET 'P-GETFLAGS,P-INHIBIT + JUMP ?CND5 +?CCL56: CALL WT?,WRD,32 + ZERO? STACK /?CCL60 + ZERO? P-ADJ \?CCL60 + SET 'P-ADJ,WRD + JUMP ?CND5 +?CCL60: CALL WT?,WRD,128,0 + ZERO? STACK /?CND5 + SET 'P-NAM,WRD + SET 'P-ONEOBJ,WRD +?CND5: EQUAL? PTR,EPTR /?PRG3 + ADD PTR,P-WORDLEN >PTR + SET 'WRD,NW + JUMP ?PRG3 + + + .FUNCT GET-OBJECT:ANY:1:2,TBL,VRB,BITS,LEN,XBITS,TLEN,GCHECK,OLEN,OBJ + ASSIGNED? 'VRB /?CND1 + SET 'VRB,TRUE-VALUE +?CND1: SET 'XBITS,P-SLOCBITS + GET TBL,P-MATCHLEN >TLEN + BTST P-GETFLAGS,P-INHIBIT /TRUE + ZERO? P-NAM \?CND5 + ZERO? P-ADJ /?CND5 + CALL WT?,P-ADJ,128,0 + ZERO? STACK /?CCL11 + SET 'P-NAM,P-ADJ + SET 'P-ADJ,FALSE-VALUE +?CND5: ZERO? P-NAM \?CND13 + ZERO? P-ADJ \?CND13 + EQUAL? P-GETFLAGS,P-ALL /?CND13 + ZERO? P-GWIMBIT \?CND13 + ZERO? VRB /FALSE + PRINTI "In diesem Satz scheint ein Substantiv zu fehlen!" + CRLF + RFALSE +?CCL11: CALL WT?,P-ADJ,16,3 >BITS + ZERO? BITS /?CND5 + SET 'P-ADJ,FALSE-VALUE + PUT TBL,P-MATCHLEN,1 + PUT TBL,1,INTDIR + SET 'P-DIRECTION,BITS + RTRUE +?CND13: EQUAL? P-GETFLAGS,P-ALL \?CCL22 + ZERO? P-SLOCBITS \?CND21 +?CCL22: SET 'P-SLOCBITS,-1 +?CND21: SET 'P-TABLE,TBL +?PRG25: ZERO? GCHECK /?CCL29 + ICALL2 GLOBAL-CHECK,TBL + JUMP ?CND27 +?CCL29: ZERO? LIT /?CND30 + FCLEAR PLAYER,TRANSBIT + ICALL DO-SL,HERE,SOG,SIR + FSET PLAYER,TRANSBIT +?CND30: ICALL DO-SL,PLAYER,SH,SC +?CND27: GET TBL,P-MATCHLEN + SUB STACK,TLEN >LEN + BTST P-GETFLAGS,P-ALL /?CND32 + BTST P-GETFLAGS,P-ONE \?CCL35 + ZERO? LEN /?CCL35 + EQUAL? LEN,1 /?CND38 + RANDOM LEN + GET TBL,STACK + PUT TBL,1,STACK + PRINTC 40 + GET TBL,1 + PRINTD STACK + PRINTI "?)" + CRLF +?CND38: PUT TBL,P-MATCHLEN,1 + JUMP ?CND32 +?CCL35: GRTR? LEN,1 /?CCL40 + ZERO? LEN \?CND32 + EQUAL? P-SLOCBITS,-1 /?CND32 +?CCL40: EQUAL? P-SLOCBITS,-1 \?CCL47 + SET 'P-SLOCBITS,XBITS + SET 'OLEN,LEN + GET TBL,P-MATCHLEN + SUB STACK,LEN + PUT TBL,P-MATCHLEN,STACK + JUMP ?PRG25 +?CCL47: ZERO? LEN \?CND48 + SET 'LEN,OLEN +?CND48: EQUAL? WINNER,PLAYER /?CCL52 + ICALL1 CANT-ORPHAN + RFALSE +?CCL52: ZERO? VRB /?CCL54 + ZERO? P-NAM /?CCL54 + ICALL WHICH-PRINT,TLEN,LEN,TBL + EQUAL? TBL,P-PRSO \?CCL59 + SET 'P-ACLAUSE,P-NC1 + JUMP ?CND57 +?CCL59: SET 'P-ACLAUSE,P-NC2 +?CND57: SET 'P-AADJ,P-ADJ + SET 'P-ANAM,P-NAM + ICALL ORPHAN,FALSE-VALUE,FALSE-VALUE + SET 'P-OFLAG,TRUE-VALUE + JUMP ?CND50 +?CCL54: ZERO? VRB /?CND50 + PRINTI "In diesem Satz scheint ein Substantiv zu fehlen!" + CRLF +?CND50: SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RFALSE +?CND32: ZERO? LEN \?CCL63 + ZERO? GCHECK /?CCL63 + ZERO? VRB /?CND66 + SET 'P-SLOCBITS,XBITS + ZERO? LIT \?CTR69 + EQUAL? PRSA,V?TELL \?CCL70 +?CTR69: ICALL OBJ-FOUND,NOT-HERE-OBJECT,TBL + SET 'P-XNAM,P-NAM + SET 'P-XADJ,P-ADJ + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RTRUE +?CCL70: PRINTI "Es ist zu dunkel, um das zu sehen." + CRLF +?CND66: SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RFALSE +?CCL63: ZERO? LEN \?CND61 + SET 'GCHECK,TRUE-VALUE + JUMP ?PRG25 +?CND61: SET 'P-SLOCBITS,XBITS + SET 'P-NAM,FALSE-VALUE + SET 'P-ADJ,FALSE-VALUE + RTRUE + + + .FUNCT WHICH-PRINT:ANY:3:3,TLEN,LEN,TBL,OBJ,RLEN + SET 'RLEN,LEN + PRINTI "Welche" + INC 'TLEN + GET TBL,TLEN >OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTC 114 + JUMP ?CND1 +?CCL3: FSET? OBJ,DASBIT \?CND1 + PRINTC 115 +?CND1: ZERO? P-OFLAG \?CTR6 + ZERO? P-MERGED \?CTR6 + ZERO? P-AND /?CCL7 +?CTR6: ZERO? P-NAM /?CCL13 + PRINTC 32 + PRINTB P-NAM + JUMP ?CND5 +?CCL13: ZERO? P-ADJ /?CND5 + PRINTC 32 + PRINTB P-ADJ + JUMP ?CND5 +?CCL7: PRINTC 32 + EQUAL? TBL,P-PRSO /?PRD15 + PUSH 0 + JUMP ?PRD16 +?PRD15: PUSH 1 +?PRD16: ICALL2 THING-PRINT,STACK +?CND5: PRINTI " meinst du, " +?PRG17: ICALL2 DER-ACC-PRINT,OBJ + INC 'TLEN + GET TBL,TLEN >OBJ + EQUAL? LEN,2 \?CCL21 + EQUAL? RLEN,2 /?CND22 + PRINTC 44 +?CND22: PRINTI " or " + JUMP ?CND19 +?CCL21: GRTR? LEN,2 \?CND19 + PRINTI ", " +?CND19: DLESS? 'LEN,1 \?PRG17 + PRINTR "?" + + + .FUNCT GLOBAL-CHECK:ANY:1:1,TBL,LEN,RMG,RMGL,CNT,OBJ,OBITS,FOO + GET TBL,P-MATCHLEN >LEN + SET 'OBITS,P-SLOCBITS + GETPT HERE,P?GLOBAL >RMG + ZERO? RMG /?CND1 + PTSIZE RMG + DIV STACK,2 + SUB STACK,1 >RMGL +?PRG3: GET RMG,CNT >OBJ + CALL THIS-IT?,OBJ,TBL + ZERO? STACK /?CND5 + ICALL OBJ-FOUND,OBJ,TBL +?CND5: IGRTR? 'CNT,RMGL \?PRG3 +?CND1: GET TBL,P-MATCHLEN + EQUAL? STACK,LEN \FALSE + SET 'P-SLOCBITS,-1 + SET 'P-TABLE,TBL + ICALL DO-SL,GLOBAL-OBJECTS,1,1 + SET 'P-SLOCBITS,OBITS + GET TBL,P-MATCHLEN + ZERO? STACK \FALSE + EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH,V?EXAMINE \FALSE + CALL DO-SL,ROOMS,1,1 + RSTACK + + + .FUNCT DO-SL:ANY:3:3,OBJ,BIT1,BIT2,BTS + ADD BIT1,BIT2 + BTST P-SLOCBITS,STACK \?CCL3 + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCALL + RSTACK +?CCL3: BTST P-SLOCBITS,BIT1 \?CCL6 + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCTOP + RSTACK +?CCL6: BTST P-SLOCBITS,BIT2 \TRUE + CALL SEARCH-LIST,OBJ,P-TABLE,P-SRCBOT + RSTACK + + + .FUNCT SEARCH-LIST:ANY:3:3,OBJ,TBL,LVL,FLS,NOBJ + FIRST? OBJ >OBJ \FALSE +?PRG4: EQUAL? LVL,P-SRCBOT /?CND6 + GETPT OBJ,P?SYNONYM + ZERO? STACK /?CND6 + CALL THIS-IT?,OBJ,TBL + ZERO? STACK /?CND6 + ICALL OBJ-FOUND,OBJ,TBL +?CND6: ZERO? LVL \?PRD14 + FSET? OBJ,SEARCHBIT /?PRD14 + FSET? OBJ,SURFACEBIT \?CND11 +?PRD14: FIRST? OBJ >NOBJ \?CND11 + FSET? OBJ,OPENBIT /?CCL12 + FSET? OBJ,TRANSBIT \?CND11 +?CCL12: FSET? OBJ,SURFACEBIT \?CCL23 + PUSH P-SRCALL + JUMP ?CND21 +?CCL23: FSET? OBJ,SEARCHBIT \?CCL25 + PUSH P-SRCALL + JUMP ?CND21 +?CCL25: PUSH P-SRCTOP +?CND21: CALL SEARCH-LIST,OBJ,TBL,STACK >FLS +?CND11: NEXT? OBJ >OBJ /?PRG4 + RTRUE + + + .FUNCT OBJ-FOUND:ANY:2:2,OBJ,TBL,PTR + GET TBL,P-MATCHLEN >PTR + ADD PTR,1 + PUT TBL,STACK,OBJ + ADD PTR,1 + PUT TBL,P-MATCHLEN,STACK + RTRUE + + + .FUNCT TAKE-CHECK:ANY:0:0 + GETB P-SYNTAX,P-SLOC1 + CALL ITAKE-CHECK,P-PRSO,STACK + ZERO? STACK /FALSE + GETB P-SYNTAX,P-SLOC2 + CALL ITAKE-CHECK,P-PRSI,STACK + RSTACK + + + .FUNCT ITAKE-CHECK:ANY:2:2,TBL:TABLE,IBITS:FIX,PTR:FIX,OBJ:OBJECT,TAKEN:ANY + GET TBL,P-MATCHLEN >PTR + ZERO? PTR /TRUE + BTST IBITS,SHAVE /?PRG8 + BTST IBITS,STAKE \TRUE +?PRG8: DLESS? 'PTR,0 /TRUE + ADD PTR,1 + GET TBL,STACK >OBJ + EQUAL? OBJ,HIM \?CCL15 + CALL2 ACCESSIBLE?,P-HIM-OBJECT + ZERO? STACK \?CCL18 + ICALL1 REFERRING + RFALSE +?CCL18: SET 'OBJ,P-HIM-OBJECT + JUMP ?CND13 +?CCL15: EQUAL? OBJ,HER \?CCL20 + CALL2 ACCESSIBLE?,P-HER-OBJECT + ZERO? STACK \?CCL23 + ICALL1 REFERRING + RFALSE +?CCL23: SET 'OBJ,P-HER-OBJECT + JUMP ?CND13 +?CCL20: EQUAL? OBJ,IT \?CND13 + CALL2 ACCESSIBLE?,P-IT-OBJECT + ZERO? STACK \?CCL27 + ICALL1 REFERRING + RFALSE +?CCL27: SET 'OBJ,P-IT-OBJECT +?CND13: CALL2 HELD?,OBJ + ZERO? STACK \?PRG8 + EQUAL? OBJ,HANDS,ME /?PRG8 + SET 'PRSO,OBJ + FSET? OBJ,TRYTAKEBIT \?CCL34 + SET 'TAKEN,TRUE-VALUE + JUMP ?CND32 +?CCL34: EQUAL? WINNER,ADVENTURER /?CCL36 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND32 +?CCL36: BTST IBITS,STAKE \?CCL38 + CALL2 ITAKE,FALSE-VALUE + EQUAL? STACK,TRUE-VALUE \?CCL38 + SET 'TAKEN,FALSE-VALUE + JUMP ?CND32 +?CCL38: SET 'TAKEN,TRUE-VALUE +?CND32: ZERO? TAKEN /?CCL43 + BTST IBITS,SHAVE \?CCL43 + EQUAL? WINNER,ADVENTURER \?CCL43 + EQUAL? OBJ,NOT-HERE-OBJECT \?CND47 + PRINTI "Das hast du nicht!" + CRLF + RFALSE +?CND47: PRINTI "Du hast " + ICALL2 DER-ACC-PRINT,OBJ + PRINTI " nicht." + CRLF + RFALSE +?CCL43: ZERO? TAKEN \?PRG8 + EQUAL? WINNER,ADVENTURER \?PRG8 + PRINTC 40 + ICALL2 DER-ACC-CAP-PRINT,OBJ + PRINTI " erst nehmen)" + CRLF + JUMP ?PRG8 + + + .FUNCT REFERRING:ANY:0:0 + PRINTR "Es ist nicht klar, worauf du dich beziehst." + + + .FUNCT MANY-CHECK:ANY:0:0,LOSS,TMP,?TMP1 + GET P-PRSO,P-MATCHLEN + GRTR? STACK,1 \?CCL3 + GETB P-SYNTAX,P-SLOC1 + BTST STACK,SMANY /?CCL3 + SET 'LOSS,1 + JUMP ?CND1 +?CCL3: GET P-PRSI,P-MATCHLEN + GRTR? STACK,1 \?CND1 + GETB P-SYNTAX,P-SLOC2 + BTST STACK,SMANY /?CND1 + SET 'LOSS,2 +?CND1: ZERO? LOSS /TRUE + PRINTI "Man kann mehrere " + EQUAL? LOSS,2 \?CCL14 + PRINTI "Dative" + JUMP ?CND12 +?CCL14: PRINTI "Akkusitiv" +?CND12: PRINTI " nicht mit %>" + GET P-ITBL,P-VERBN >TMP + ZERO? TMP \?CCL17 + PRINTI "das" + JUMP ?CND15 +?CCL17: ZERO? P-OFLAG \?CTR18 + ZERO? P-MERGED /?CCL19 +?CTR18: GET TMP,0 + PRINTB STACK + JUMP ?CND15 +?CCL19: GETB TMP,2 >?TMP1 + GETB TMP,3 + ICALL WORD-PRINT,?TMP1,STACK +?CND15: PRINTI "%< gebrauchen." + CRLF + RFALSE + + + .FUNCT ZMEMQ:ANY:2:3,ITM,TBL,SIZE,CNT + ASSIGNED? 'SIZE /?CND1 + SET 'SIZE,-1 +?CND1: SET 'CNT,1 + ZERO? TBL /FALSE + LESS? SIZE,0 /?CCL7 + SET 'CNT,0 + JUMP ?PRG8 +?CCL7: GET TBL,0 >SIZE +?PRG8: GET TBL,CNT + EQUAL? ITM,STACK \?CCL12 + MUL CNT,2 + ADD TBL,STACK + RSTACK +?CCL12: IGRTR? 'CNT,SIZE \?PRG8 + RFALSE + + + .FUNCT LIT?:ANY:1:2,RM,RMBIT,OHERE,LIT + ASSIGNED? 'RMBIT /?CND1 + SET 'RMBIT,TRUE-VALUE +?CND1: ZERO? ALWAYS-LIT /?CND3 + EQUAL? WINNER,PLAYER /TRUE +?CND3: SET 'P-GWIMBIT,ONBIT + SET 'OHERE,HERE + SET 'HERE,RM + ZERO? RMBIT /?CCL9 + FSET? RM,ONBIT \?CCL9 + SET 'LIT,TRUE-VALUE + JUMP ?CND7 +?CCL9: PUT P-MERGE,P-MATCHLEN,0 + SET 'P-TABLE,P-MERGE + SET 'P-SLOCBITS,-1 + EQUAL? OHERE,RM \?CND12 + ICALL DO-SL,WINNER,1,1 + EQUAL? WINNER,PLAYER /?CND12 + IN? PLAYER,RM \?CND12 + ICALL DO-SL,PLAYER,1,1 +?CND12: ICALL DO-SL,RM,1,1 + GET P-TABLE,P-MATCHLEN + GRTR? STACK,0 \?CND7 + SET 'LIT,TRUE-VALUE +?CND7: SET 'HERE,OHERE + SET 'P-GWIMBIT,0 + RETURN LIT + + + .FUNCT THIS-IT?:ANY:2:2,OBJ,TBL,SYNS + FSET? OBJ,INVISIBLE /FALSE + ZERO? P-NAM /?CCL5 + GETPT OBJ,P?SYNONYM >SYNS + PTSIZE SYNS + DIV STACK,2 + SUB STACK,1 + CALL ZMEMQ,P-NAM,SYNS,STACK + ZERO? STACK /FALSE +?CCL5: ZERO? P-ADJ /?CCL9 + GETPT OBJ,P?ADJECTIVE >SYNS + ZERO? SYNS /FALSE + PTSIZE SYNS + DIV STACK,2 + SUB STACK,1 + CALL ZMEMQ,P-ADJ,SYNS,STACK + ZERO? STACK /FALSE +?CCL9: ZERO? P-GWIMBIT /TRUE + FSET? OBJ,P-GWIMBIT /TRUE + RFALSE + + + .FUNCT ACCESSIBLE?:ANY:1:1,OBJ,L,?TMP1 + ZERO? OBJ /FALSE + LOC OBJ >L + ZERO? L /FALSE + FSET? OBJ,INVISIBLE /FALSE + ZERO? L /FALSE + EQUAL? L,GLOBAL-OBJECTS /TRUE + EQUAL? L,LOCAL-GLOBALS \?CCL14 + CALL GLOBAL-IN?,OBJ,HERE + ZERO? STACK \TRUE +?CCL14: CALL2 META-LOC,OBJ >?TMP1 + LOC WINNER + EQUAL? ?TMP1,HERE,STACK \FALSE + LOC WINNER + EQUAL? L,WINNER,HERE,STACK /TRUE + FSET? L,OPENBIT \FALSE + CALL2 ACCESSIBLE?,L + ZERO? STACK /FALSE + RTRUE + + + .FUNCT META-LOC:ANY:1:1,OBJ +?PRG1: ZERO? OBJ /FALSE + IN? OBJ,GLOBAL-OBJECTS \?CND3 + RETURN GLOBAL-OBJECTS +?CND3: IN? OBJ,ROOMS \?CCL9 + RETURN OBJ +?CCL9: LOC OBJ >OBJ + JUMP ?PRG1 + + .ENDI diff --git a/parser.zil b/parser.zil new file mode 100644 index 0000000..aab34ad --- /dev/null +++ b/parser.zil @@ -0,0 +1,1623 @@ + "Generic PARSER file for + The ZORK Trilogy + started on 7/28/83 by MARC + + -- GERMAN VIA , pdl's revision" + +;"ein, eine, ect. replaces w?one in all cases" + +"> + +> +> +> + + + + + +> +;"pointers used by CLAUSE-COPY (source/destination beginning/end pointers)" + + + + + + ;"zilch automatically sticks number of last obj here" + + + + + + + ;> + ;> + ;> +> + +;"INBUF - Input buffer for READ" + + + ;> + + ;> + <> <> <>>> + "word pointer to unknown token in P-LEXV" + "word pointer to sentence start in P-LEXV" + "byte length of unparsed tokens in P-LEXV" + "byte pointer to first free byte in OOPS-INBUF" + +;"Parse-cont variable" + +> + +;> + +;"Orphan flag" + +> +> +> +> +> +;"Parser variables and temporaries" + +;"Byte offset to # of entries in LEXV" + + ;"Word offset to start of LEXV entries" + ;"Number of words per LEXV entry" + + ;"Offset to parts of speech byte" + + + ,PLUS-MODE> 6) (T 4)>> + "Offset to parts of speech byte" + ,PLUS-MODE> 7) (T 5)>> + "Offset to first part of speech" + +; ;"Offset to first part of speech" +; ;"First part of speech bit mask in PSOFF byte" + + + +> +> +> +> + + + + + + + + + + + + + + +> +> + +" Grovel down the input finding the verb, prepositions, and noun clauses. + If the input is or , fall out immediately + setting PRSA to ,V?WALK and PRSO to . Otherwise, perform + all required orphaning, syntax checking, and noun clause lookup." + +) (OF-FLAG <>) + OWINNER OMERGED LEN (DIR <>) (NW 0) (LW 0) (CNT -1)) + > ,P-ITBLLEN> ) + (T + + >)> + )>> + + + > + > + > + + + + > + + > + ; ,VEHBIT>> + >)> + >)> + + + + > + )> + > + >) + (,P-CONT + + + + >> + )> + >) + (T + + > + ,VEHBIT>> + >)> + > + + )> + % ,PLUS-MODE> + ' + ">>) + (T + '">)> + + )> + > + )> + > ,W?ACH> + > + ,W?PERIOD ,W?COMMA> + > + >)> + > + + ) + ( + + > + ,W?QUOTE>> + + ) + ( + )> + + >> + ;"maybe fix oops vs. chars.?" + 6>> + 7>> + <+ <* ,P-LEXELEN> 3>> + + > + > + ) + (T + > + + )>) + (T + > + )> + >)> + ,W?WIEDER> + > + + ) + (,P-OFLAG + + ) + ( + + ) + ( + > + ,W?PERIOD ,W?COMMA ,W?DANN> + > + ,W?UND>> + >> + 2>>) + (T + + )>) + (T + > + 1>>)> + 0> + + ) + (T + >)> + ;> + + + + + + + ) + (T >)>>) + (T + + + + > + >>>> + > + >>> + > + + > + + + > 0> + > + ) + (> + >> + ) + (T >>)> + + > + ) + ( + + + ;"Last NOT added 7/3"> + + ) + (ELSE + + + )>)> + + + >) + (T )>)> + + >> + + ) + (> + ,ACT?GEH> + + + > + + >> + + > + + >>> + + + + ,W?DANN>)> + > + > + )>) + (> + > + + + + + 2>>>> + >>) + (> + + + + > + + ;"JEFF 'VOLL' FOR BAG OF COINS" + + + > + > + ;>> + ) + (> + + >> + + + + )>) + ( + + ) + (T + > + + > + > + + > + )>)>) + ( + + > + + ) + (T + >)>) + () + ( + + > + + ) + (T + + )>) + (T + + )> + + >>)> + > + + + > + + ) + (ELSE + )> + > + > + + + + > + T)>)>> + +> +> +> + +;"For AGAIN purposes, put contents of one LEXV table into another." +> + > + > + 2>> + > + 3>> + > + > + + )>>> + +;"Put contents of one INBUF into another" + 1>> + > + )>>> + +;"Put the word in the positions specified from P-INBUF to the end of +OOPS-INBUF, leaving the appropriate pointers in AGAIN-LEXV" +> + ) + (T + >> + >>>)> + > + >> + > + )>> + + .LEN>> + +;"Check whether word pointed at by PTR is the correct part of speech. + The second argument is the part of speech (,PS?). The + 3rd argument (,P1?), if given, causes the value + for that part of speech to be returned." + +> .BIT> + ) + ( 1) ;"NEW-VOC" + (T + > + > >)> + )>)>> + +;" Scan through a noun clause, leave a pointer to its starting location" + +) (FIRST?? T) NW (LW 0)) + 2>> + > + > .VAL> + .WRD> + >) + (T >)> + > )> + > >> + ,W?DER ,W?DIE ,W?DAS> + ,W?EIN ,W?EINE ,W?EINEM> + ,W?EINEN ,W?EINER>> + 4>>)> + > 0> + >> + )> + > + >> + ) + (T >>)> + ) + ( + > + + > + >)>) + ( + + + ;"ADDED 4/27 FOR TURTLE,UP" + >> + > + + >> + >) + ( + + + > + >> + T) + ( + ;"semi ala BZork and elsewhere" + > + >) + ( + > + >> + + 2>>> + ) + (T >)>) + ( 0>>> + + >>) + ( + >> + > + ,W?DANN> + >) + ( T) + (T + + )>) + (T )> + + > + >>> + +)) + > 2>> + > 3>> + > 0> ) + (T + > + + + ) + ( ) + ( > + <- .CHR 48>>>) + (T )> + >)>> + + ) + (.TIM + >) + ( )> + >>)> + + ,W?INTNUM> + + + +> + + +;"New ORPHAN-MERGE for TRAP Retrofix 6/21/84" + +) WRD) + > + 0>> + ,PS?VERB ,P1?VERB> + > + >>> + ) + (>> + > + + + > + > + )> + >>> + + >>> + ) + ( ) + ( 1> + > + > + > + > + > + >)> + )>) + (T + >)> + >) + (T )>) + ( 1> + > + > + > + > + > + >)>)> + > + > + ) + (T )>) + (> + > > + > + ) + (T + > + > >)> + > + > + + ) + (T > )>) + ( + + ,PS?ADJECTIVE> + + >> + ) + (; + + + ) + ( ,PS?OBJECT> + + ) + (T + )> + )> + > + + + + > + )>>)>)> + > + > + > + + + > ,P-ITBLLEN> + + ) + (T >)>> + T> + +;"New ACLAUSE-WIN for TRAP retrofix 6/21/84" + +> + + > + + > + + 0>> > + > + > + + + + + > + + 0>> > + > + > + +;"Print undefined word in input. + PTR points to the unknown word in P-LEXV" + +) "AUX" (DID-CAP <>)) + ) + (ELSE + + .CAP?> + + 32>>) + (T + >)> + >)>>> + + + + + )> + ;"> + "> + >> 2> + 3>> + + ; + > + >> + + + + )> + ; + "> + >> 2> + 3>> + + > + >> + +;" Perform syntax matching operations, using P-ITBL as the source of + the verb and adjectives for this input. Returns false if no + syntax matches, and does it's own orphaning. If return is true, + the syntax is saved in P-SYNTAX." + + + + + + + + + + + + + + + +) (DRIVE2 <>) PREP VERB TMP THE-PREP) + >> + + )> + >> + > + > + ,P-SONUMS>> + T) + (> + + >> + >>> + ) + ( > + > + ) + ( + > + + )>)> + + ) + (T + + )>) + (T >)>> + + + + >>> + + + ) + ( + + + >>> + + + ) + ( + + ) + (> + ) + (T + + > + + + + ) + (> + <;PRINTB CAPITALIZE >) + (T + T>;"cap" + )> + ; + ;"REMEMBER: THE FIRST SYNTAX IN SYNTAX FILE THAT'S + FOUND WILL BE THE ONE ORPHANED - but player CAN + type only verb and a specific prep" + ;"etc., ie, is verb a non-sep? eg, SEH IN OBJ" + > + + > + ) + (T + + >)>) + (.DRIVE2 ;"syntax needs an second prep and object" + ;"eg, Mit was?" + + ;"will not CAPITALIZE a prep, somehow - thus T semied" + ;T> + ) + (T + ;"perhaps this ELSE can't happen" + + + ) + (> + >) + (T + > + )> + )> + + )>> + + + + > + + >> + + > + + >> + ) + (T + )>> + +Ich verstehe das nicht! Worauf beziehst du dich?%<" CR> + > + + + )> + > + > + > + ) + (T >)>> + + + + + + )> + > + + + + + )> + > + ) + (.D2 + > + )>> + +; .THE?>> + +) "AUX" BEG END) + > + >) + (ELSE + > + >)> + > + +) (Q? <>)) + ) + (T + > + T) + ( + ) + (.NOSP >) + (ELSE )> + + ) + ( + + ) + ( + + ) + (T + .CP> + )> + ) + ( + > + ) + ( + > + ) + ( + > + ) + (T + + >)> + >)>)> + >>> + +;"in, e.g. Wishbringer, for preps longer that 6 letters, special case to print" +) "AUX" WRD) + + )> + > + ) + (T + + )>> + + ;"e.g., suspect has no this clause" + >)> ;"semied to print, Mit was?" + > 32>> + 1> <+ 1>>> + +) "AUX" BEG END) + >> + >> + + ,P-LEXELEN> 2>>> + + + ,P-LEXELEN> + 2>>> + ) + (T + >> + )> + >)> + >>> + + 2>> + .WRD> + + > + + 2>> + ) + ( .PREP> + >>)>>> + + + >> + + + +> + +> + > + +;"it seems most direct objects are in the acc. case and all indirect objects + are in the dative case; ie, for GWIMing just look at PRSO or PRSI to determine + case - except for 'talk with troll', listen for bird, listen to bird" + + )> + + + > + + > + + 1> + > + + > + > + > + ; + )> + ; + + > + + + + ) + (T + + + )>) + ;"acc prep for prso" + ( + + + ) + (T + + + )> + >) + ;"GWIM-PRSI" + ( + + + ) + (T + + + )> + ; + ) + (T + )> + ) + ;ELSE + ( + > + ) + (T + )> + .OBJ)>) + (T )>> + + + > 0>> + > + ,P-PRSI> >)> + > 0>> + > + ,P-PRSO> >)> + >> + > + >)> + + >>> + >)>)> + > + +> + + ) + (> ,P-BUTS>) + (T + .OBJ> + >)> + >> + + + + .NTBL> + +> +> +> +;> +> +> +> +> +> + + + + + + + +> + +) LEN WV WRD NW (WAS-ALL <>)) + > + + )> + + + > + + >> + )> + ) + (T + > + ) + (T >)> + + + + >)>) + ( + > > + + ) + ( + + + + >)>) + (T + + > > + >)>) + ( + >> + + > > + T) + () + () + ( + + )>) + (> + ;"below replacement line via BZork" + + > + + ;) + ( + + )>)> + > + > + )>>> + + + + + + + + + +) (OLEN 0) OBJ) + + > + )> + ,P-ADJ> + + + >) + ;"added by JEFF or Z3 to make 'go to dir' work" + (> + > + + + + )>)> + + + > + > + )> + )> + > > + )> + + ) + (T + + + )> + )> + .TLEN>> + ) + ( + >> + > + >> + + > + )> + ) + ( + >>> + + + + .LEN>> + ) + (T + )> + > + + ) + ( + + ,P-NC1) + (T ,P-NC2)>> + + + <>> + ) + (.VRB + )> + > + > + )>)> + .GCHECK> + + > + ;"Changed 6/10/83 - MARC" + + + + ; + > + > + ;> + ) + (T )>)> + > + > + ) + ( )> + + > + > + >> + +> +> +;> + +;"If the possible matching syns for an object are all the same gender, +then you could just check gender of the first object found to determine +'Welcher, Welches, or Welche'" + + + > + > + 1> + + ) + (; 3> + + )> + ; + + + ) + (,P-ADJ + + ) + ;(ELSE )>) + (ELSE + + >)> + + + > ;"this and next line used above TELL" + > + + > )> + ) + ( )> + > 1> + + )>>> + +> + + > + 2> 1>> + > .TBL> + )> + )>>)> + ;> + 4> 1>> + + >> + 1>>> + 5>> + > + > + + ) + ( )>>)> + .LEN> + + + + + > + > + )>)>> + +> + ) + (T + + ) + ( + ) + (T )>)>> + + + + + +> + > + + > + )> + > + + > + > + + >> + + ,P-SRCALL) + ( + ,P-SRCALL) + (T ,P-SRCTOP)>>>)> + >) (T )>>)>> + +> + .OBJ> + >> + +> + >>> + +) + > + + >> + > 0> ) + (T + >> + + > + + ) + (T + )>) + ( + > + + ) + (T + )>) + ( + > + + ) + (T + )>)> + > + >> + + + ) + (> + >) + ( + > T>> + >) + (T )> + + > + + + )> + + ; + ; + ; + ) + ( + > + ; + )>)>)>>) + (T)>> + +> + +) TMP) + 1> + ,SMANY>>> + ) + ( 1> + ,SMANY>>> + )> + + + ) + (T + )> + "> + > + ) + ( + >) + (T + >)> + + ) + (T)>> + + )> + > ) + (ELSE >)> + > + >>) + ( )>>> + +;> + ) + ( + )>>> + +> + +)) + > + )> + + + + > + ) + (T + + + + + + > + > + )>)> + + 0> )>)> + + + .LIT> + +;> 0> ,W?ES>> + ) + (T <>>)>> + +;> 0> ,W?ES>> + ) + (T <>>)>> + +;"old zork1 version w/ switch" + ) + (> + <- 2> 1>>>> + ) + (>> + ; 1>>> + ,PLUS-MODE> + '>) + (T + '>)>>>> + ) + (> >> + )> + > + + + ) + (T + >)> + + ) + ( + ) + ;( + + ) + (T + )>) + ( + ) + ( + ) + ( + > + ) + ( ,HERE >> + ) + (> + ) + ( + > + ) + (T + )>> + + + ) + ( + )> + + ) + (T + >)>>> diff --git a/pre-umlaut-dungeon.zil b/pre-umlaut-dungeon.zil new file mode 100644 index 0000000..52ec7b6 --- /dev/null +++ b/pre-umlaut-dungeon.zil @@ -0,0 +1,2618 @@ +"1DUNGEON for + Zork I: The Great Underground Empire + (c) Copyright 1983 Infocom, Inc. All Rights Reserved. + -- GERMAN EDITION" + + + +> + +"SUBTITLE OBJECTS" + + + + + + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +;"ren: check sp. of Troph- throughout" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + )>> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Frobozz Magic Gunk Company <---| + All-Purpose Gunk")> + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"SUBTITLE ROOMS" + +"SUBTITLE CONDITIONAL EXIT FLAGS" + +> +> +> +> +> +> +> +> +> +> +> + +"SUBTITLE FOREST AND OUTSIDE OF HOUSE" + + + + + + + + + + + + + + + + + + + + + + + + + + + ,GRATING-ROOM) + (T + + + )>) + (T )>> + + + + +"SUBTITLE HOUSE" + + + + + + + + + +"SUBTITLE CELLAR AND VICINITY" + + + + + + + + + + + + + + + + + +"SUBTITLE MAZE" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) + (T + )>> + + + + + + + + + + + + + + +"SUBTITLE CYCLOPS AND HIDEAWAY" + + + + + + + + +"SUBTITLE RESERVOIR AREA" + + + + + + + + + + + + + + + +"SUBTITLE MIRROR ROOMS AND VICINITY" + + + + + + + + + + + + + + + + + + + + +"SUBTITLE ROUND ROOM AND VICINITY" + + + + + + + + + + + + + + + + +"SUBTITLE HADES ET AL" + + + + + + + + +"SUBTITLE DOME, TEMPLE, EGYPT" + + + + + + + + + + + + + + + +"SUBTITLE FLOOD CONTROL DAM #3" + + + + + + + + +"SUBTITLE RIVER AREA" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > + + )>> + + +"SUBTITLE COAL MINE AREA" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +"SUBTITLE COAL MINE" + + + + + + + + + + + +;"RANDOM TABLES FOR WALK-AROUND" + +> + +> + +> + +> + +;"The GO routine must live here." + +> ;"ints as in original - and -NE QUEUE" + + ;> + > + + ;> + + ;> + + > + > + > + > + > + > + + + + + + > + + )> + + + + + + + > \ No newline at end of file diff --git a/pre-umlaut-syntax.zil b/pre-umlaut-syntax.zil new file mode 100644 index 0000000..25d9ff4 --- /dev/null +++ b/pre-umlaut-syntax.zil @@ -0,0 +1,770 @@ + "Generic SYNTAX file for + The ZORK Trilogy + started on 7/21/83 by SEM + -- GERMAN EDITION" + + + +;"ren" + + +; +;"DURCH - BY MEANS OF" + + +;"'IN' ALWAYS WITH ACCUSATIVE" + +; + +;"'AUF' WITH ACC." + + + + + +; +;"'UNTER' WITH ACC MOTION, WITH DATIVE NO MOTION" + + + + + + + + + + ;"DOWN" + + ;"UP" + + + + + + + + + + + + + + + + + + ;"same word" + + + + + + + + + +;"*FANG WIEDER AN" + + +;"*SPEICHERE UM" + + +;"*DATEN SICHER" + + + +;"SCHREIB TEXT" + + +;"IMPROVISIERE" + +;"VERSION" + +;"KLARSTELLEN" + +;"IRGENDEIN OBJEKT" + +;"BEFEHLAKTE" + +;"*LISTE" + + + +; + +;"Real Verbs" + + + + + + + + + + + + + + +;"AN is sep prefix at end" + +;"ren: greif is attack and take? ANGREIFEN TO ATTACK , GREIF TO SIEZE" + + + + +; + + +; + + + + + +;"AUF is sep prefix at end" + + +; +; + + + + + + + + +; + + + + + +;"AN is sep prefix at end of stecke" + + + + + +; +; + + +; + + + + + + +; + + + +; + + + +; + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ;"ie, BREAK IN THE HOUSE" + + + + + + + + + + +; + ;"'steig in' is climb in etc." + + + + + + + + + +;"LASS OBJ-ACC OBJ-ACC HERUNTERFALLEN = drop obj. down object." + + +; +; + + + + + + + +; + + + + + + + + + + + + + + + + +;"was ist object" + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + + + + + + + + +; +; + + + + ;"JUMP ACROSS" + + + ;"DUMMY SYNTAX SO HERAB IS A PREP" + + + + +; + +; + + + + + + + + + + + + + + + + +; + + +; + +; + +; + + + + + +; + + + +; + + + + + + + +; + + + + + + + +; +; + + + + + + + + + + + + + +; + + +; +; + + + + + + + + + + + + + + + + + + +; ;"ren: as in pick a lock?" + + + + + + + + + +; + + + + +; + + +; + +; + + + + + + + + + + +;"next syntax handled by above" +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ;"ie, to repair" + + +; +;"ren: HEB AUF OBJECT is pick-up and raise -- depends on context?" + +; + + +; +; + + + +; + + + + + + + + + + + + + + + + + + + + + +; + + + + + + + +; +; + + + + + + + + + + + + + + + + + + + + + +; +; + + + + + + +;"v-swing also v-wave. same ger. word" + + + + + + + +; +; +; +; + + + +; + +;"ren: greif is attack and take? ANGREIFEN TO ATTACK , GREIF TO SIEZE" + + ;"Note: trage can mean take or wear" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + +; + + + ;"on its side" + + + + + + + + + + + + + + + + + + + + +; +; + + + + + + + + + + + + + + + + + + +;"see syntax schwinge" +; +; +; +; + + +; ;"TIP MEANS HINT ALSO" + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/rmode.init b/rmode.init new file mode 100644 index 0000000000000000000000000000000000000000..71fe5914d881ea314a9285e87af576dc30a5369a GIT binary patch literal 4999 zcmeHJ`)}LU750L)MTizd`$M;kNp_@Q(Zl2|FDXhkB@32q(Wa+|sYmTtkpV@f9Qh$d zFE|Z~`Cs36uH@9ox?#UBge~$u&g(nhIrrY3ezg|ctyhnNN_j7)#m>hx8qeuwd_Elf zLi4x784ZTl5iLg7(QHP)j2Cn@8sF0G+umG_deex`$HUQu_P94X$ET7XjHegToaSSi zMrMC}^Nw{4=P|95>ts7_C)05{c1Kc2h%rg8FcE_VK8x||!R$?c8ujLpew&~t3rT~C zTz|5j!PkdN5(`@!j(Rtdr`a->-f(lqhHX6-KfKZ$C!4mV;~2KJ={^?Xha=6&xM{iJ zZW?mK&hZp>ZD!JT#AwlV@|ejFGdm4_7dy>E78e`|A@Gp*I*Kx@XU9ec=*K-1r3z{^?;VIdM}w z9UqZ7aTjhPq4Dyy>82+x!cAI(+3k3GuBTnY8m2C3VjE&Lb(@I4n7C>8GC|tJF~qui zzd(~5hVovPy0G-CHnA_syN1r_g3OF}1#Qk1CN_sOk+12)dUlbatTD;FroX_S576rs zu-}|y@|yR0VN?J0`a~`qXj+#D0Y)eG*q%rHcPSQpuBr z8>a{cVe)EteXZYiWjE7x5wB7J4audUT;F?dr|ft%aTd>Pj#h}tO*WB86g7HEztQ&Y z>$NqluvNU9;VmsIld&>Vv_-Wl_B6|Ho;9lVMp@Sev+-;m^~VgilLd}mGzZfoof4Yg zq{e=^)q17JYn1ex2jyV@prxDmEbkuFD?zQ?)KjKR`OW2bg1)`mhCMA^4Qc_k%DeS6 z`C#q>6_ISuP!iOPt_Pt1Xx#$Hd$?(P!*yr zX`_JIAB$cd3y4M1-|gcfK07wH;sLI8@|!!mjdH0~*2(reOTUiq*Q>nekU~*~*3f>L zGy#nzQZJJH=0~J}5lNu*F$A3s&VF8M@CvbJjQjw$LupDo7cY|lIOd)(#M#dYsyB7e zb@^b2gZ1At^`t?dPtD}TwLk5469@=zw(I$>;}rVE1+B2!f!Uph<6VO11}}J z0V?ow;GZy{HRk#ueyYT|S4)0(1q{RWkDyY~kEv^S5tUsCrS~I7vIsK}lid}%0PST) zLBs(|zgeq??VzO}uL4GHs>)umEgFEh;m0fHnO_dE2d)0Oo-ZN<(J<_)IQ=O3 zn=XdBXgF8|l}x5mFglMwmicfzqTAv8?RYV#U^H0_r^9GwP&Drg#dF?V)q`5A+^FHT zSFW|FS~}6uj@qA$zr7=Dtwpy~0Runk?9Hw~PobeBf`P#|s2Z;T+KC-Pv~3XrIfg*y zvdFlCQ4N_h03^_KAe;0_nbiV(V=22Da?!OQ!J)jq%77B>EPFGp;%f`Sq!Sbm;g8vZv`_9v<=1EJcc zNR`a21qmLklqqMOHiF|>BNPsM?{IZ`1t4vcGIoqr#}xS@f7plGL|<}%s=fF6LRi{F zd5=x3VtvEk^4qoDR#2}o&tTnI&!CEJ8uu>HWKb9h7Fkg*ifb%vMMaKvgCYb$*QbW-D_DH0qlm@RtFC! z94A0+X&Cq*-K#Fi0Q{K&I8s+Ks=v96`g4x{$Ve}*X=(Jck%GbEvl2j{v#Ah{Jrx=U z*tXgdg~%OGK|^W|&e2O6}e1IGee-E{lX#fZ1 zzk}KecbtjEk4MJ-11|LFs5k9hOndL%QnE50U*X<9p3*kW#?+gsJ2@`nGhD52Y4MJl z{ps+{>JoAY$o}?~Is(K(ywN%<@LMsi;?ABc;Tf8yW<7dq_>G+T@@`jA@rly^T_-NqHPz|C_NQE3 zz=^L{)*<|@U|@za5C8UxB!N(Y7ed=~^SJ$O`z1n1p=Am$UsO#4t4qjUCi(5@T+CeX z7Plv;Nod+?$33Wg75EHP#^pbO3LpJuX^$^Zx}P*d_v7eTDfT#9p=F$|hte-8tIGkr z<;I5F@=E$x<5*E{aJsPXu$vsNjZh$r&qsGYlgP=<@tiZ7X-c_@PC28zX0pc BQD*=E literal 0 HcmV?d00001 diff --git a/script.actions b/script.actions new file mode 100644 index 0000000..ffef10a --- /dev/null +++ b/script.actions @@ -0,0 +1,1706 @@ + +LOOK (NOTE: THIS IS IN "WEST OF HOUSE" AT END OF GAME) +" A secret path leads southwest into the forest." + + +ENTER HOUSE +"The boards are securely fastened." + + +BRUSH MY TEETH +"Dental hygiene is highly recommended, but it's not clear what you +want to brush them with." + + +BRUSH MY TEETH WITH (THING) +"A nice idea, but with a (THING)?" + + +FIND WALL +"The west wall is solid granite here." + + +TAKE WALL +"It's solid granite." + + +READ WALL +"It only SAYS "Granite Wall."" + + +LOOK AT WALL +"The wall isn't granite." +"Die Wand ist nicht aus festem Stein." + +LOOK AT WALL +"There is no granite wall here." +"Hier gibt es keine Wand aus Stein." + +FIND SONGBIRD +"The songbird is not here but is probably nearby." + + +FOLLOW SONGBIRD +"It can't be followed." + +LOOK AT SONGBIRD +"You can't see any songbird here." + + +FIND HOUSE (NOTE: WHEN IT'S RIGHT HERE) +"Why not find your brains?" + + +FIND HOUSE +"It seems to be to the west." + + +FIND HOUSE +"It was here just a minute ago...." + + +ENTER HOUSE +"You're not at the house." + + +FIND HOUSE +"It's right here! Are you blind or something?" + + +GET INTO THE HOUSE +"The window is closed." + + +GET INTO THE HOUSE +"It's not clear how you could get in from here." + + +BURN THE HOUSE +"You must be joking." + + +WALK AROUND FOREST +"You aren't even in the forest." + + +LEAVE THE FOREST +"You will have to specify a direction." + + +FIND THE FOREST +"You cannot see the forest for the trees." + + +LISTEN TO THE FOREST +"The pines and the hemlocks seem to be murmuring." + + +CLIMB THE MOUNTAIN RANGE +"Don't you believe me? The mountains are impassable!" + + +DROP THE WATER +"There is now a puddle in the bottom of the (THING)." + + +POUR THE WATER IN THE THING +"The water leaks out of the (THING) and evaporates immediately." + + +TAKE THE WATER FROM BOTTLE +"The bottle is closed." + + +FILL BOTTLE WITH WATER +"The bottle is now full of water." + + +TAKE WATER +"The water slips through your fingers." + + +TAKE THE WATER +"It's in the bottle. Perhaps you should take that instead." + + +DROP WATER +"The water spills to the floor and evaporates immediately." + + +THROW WATER +"The water splashes on the walls and evaporates immediately." +"Das Wasser spritzt auf die Waende und verdampft sofort." + +LOOK AT WINDOW +"The window is slightly ajar, but not enough to allow entry." +"Das Fenster ist einen Spalt offen, aber nicht genug, um Eintritt zu gewaehren. + +LOOK IN WINDOW +"You can see a clear area leading towards a forest." +"Du kannst einen Kahlschlag sehen, der nach dem Wald fuehrt." + +LOOK IN WINDOW +"You can see what appears to be a kitchen." +"Du kannst einen Raum sehen, der aussieht wie eine Kueche + +TALK TO SPIRITS +"The spirits jeer loudly and ignore you." +"Die Geister johlen laut und beachten dich nicht." + +EXORCISE THE SPIRITS +"Only the ceremony itself has any effect." +"Nur das Zeremoniell hinterlaesst einen Eindruck." + +ATTACK THE SPIRITS +"How can you attack a spirit with material objects?" +"Wie kannst du einen Geist mit fuer Menschen bestimmten Waffen angreifen?" + +GIVE SOMETHING TO SPIRITS +"You seem unable to interact with these spirits." +"Es scheint dir unmoeglich mit diesen Geistern zu kommunizieren." + +RAISE THE BASKET +"The basket is raised to the top of the shaft." +"Der Korb ist zum oberen Ende des Schachts hinaufgezogen." + +LOWER THE BASKET +"The basket is lowered to the bottom of the shaft." +"Der Korb ist zum unteren Ende des Schacht hinabgelassen." + +LOOK +"It is now pitch black." +"Es ist jetzt stockdunkel." + +LOOK AT BASKET +"The basket is at the other end of the chain." +"Der Korb ist am anderen Ende der Kette." + +TAKE THE BASKET (NOTE: I.E., THE CAGE) +"The cage is securely fastened to the iron chain." +"Der Kaefig ist fest an der Kette angebracht." + +TAKE BAT +"You can't reach him; he's on the ceiling." +"Die kannst du nicht erreichten, die haengt von der Decke." + +(NOTE: IF YOU ENTER THE BAT-ROOM WITHOUT THE GARLIC) +"The bat grabs you by the scruff of your neck and lifts you away...." +"Die Fledermaus ergreift dich am Kragen und hebt dich hoch....." + +(NOTE: THE NOISE OF THE BAT) +" Fweep!" +"Huiiiiii!" + +RING THE BELL +"Ding, dong." +"Bim,bam." + +TAKE BELL +"The bell is very hot and cannot be taken." +"Die Glocke ist sehr heiss und kann nicht angefasst werden." + +TOUCH THE BELL WITH LEAFLET +"The leaflet burns and is consumed." +"Der Zettel faengt Feuer und verbrennt." + +TOUCH BELL +"The bell is too hot to touch." +"Die Glocke ist zu heiss zum Anfassen." + +SMELL or KICK THE BELL +"The heat from the bell is too intense." +"Die Hitze, die die Glocke ausstroemt ist zu stark." + +POUR WATER ON BELL +"The water cools the bell and is evaporated." +"Das Wasser kuehlt die Glocke und verdampft." + +RING BELL +"The bell is too hot to reach." +"Die Glocke ist zu heiss, um dranzufassen." + +BREAK THE WINDOW +"You can't break the windows open." +"Du kannst die Fenster nicht zerschlagen, um sie zu oeffnen." + +REMOVE NAILS +"The nails, deeply imbedded in the door, cannot be removed." +"Die Naegel, die tief in der Tuer eingebettet sind, koennen nicht entfernt werden." + +GET INTO THE CRACK (NOTE: THIS IS THE CRACK IN THE DAMP CAVE AND "SPALTE") +"You can't fit through the crack." +"Du kannst durch diese Spalte nicht durch." + +CLIMB THE STAIRS +"There are no stairs leading down." +"Es gibt keine Treppe nach unten." + +(NOTE: THIS IS THE LAST MOVE OF THE GAME) +"Inside the Barrow| +As you enter the barrow, the door closes inexorably behind you. +Around you it is dark, but ahead is an enormous cavern, brightly lit. Through its center runs a wide stream. Spanning the stream is a small woodenfootbridge, and beyond a path leads into a dark tunnel. Above the bridge, floating in the air, is a large sign. It reads: All ye who +stand before this bridge have completed a great and perilous adventure which has tested your wit and courage. You have mastered +the first part of the ZORK trilogy. Those who pass over this bridge must be prepared to undertake an even greater adventure that will severely test your skill and bravery!| + +|"In dem Huegelgrab +Wenn du das Huegelgrab betrittst, schliesst sich die Tuer fuer immer hinter dir. Um dich herum ist es finster, aber vor dir ist eine enorme Oeffnung, die hell erleuchtet ist. Durch ihr Mitte fliesst ein breiter Strom. Ueber den Strom spannt sich eine hoelzerne Fussgaengerbruecke. In der Luft schwebt ein grosses Schild. Darauf steht: Ihr alle, die ihr vor dieser Bruecke steht, habt eingrosses und beschwerliches Abenteuer hinter euch, das eure Intelligenz und euren Mut geprueft hat. Ihr habt den ersten Teil der drei Zorkspiele geschafft. Diejenigen, die ueber diese Bruecke schreiten muessen bereit sein ein noch groesseres Abenteuer zu erleben, das eure Leistung und Tapferkeit ernstlich pruefen wird!" +The ZORK trilogy continues with "ZORK II: The Wizard of Frobozz" and +is completed in "ZORK III: The Dungeon Master." +Das dreiteilige ZORKspiel geht weiter mit "ZORK II: Der Zauberer(Hexenmeister?? depends on contents) of Frobozz" und endet mit "ZORK III: Der Kerkermeister." + + +OPEN THE DOOR (NOTE: OF THE STONE BARROW) +"The door is too heavy." +"Die Tuer ist zu schwer." + +TAKE TROPHY CASE +"The trophy case is securely fastened to the wall." +"Der Trophaenschrank ist unverrueckbar an der Wand befestigt." + +(NOTE: THIS IS IN LIVING ROOM) +"To the west is a cyclops-shaped opening in an old wooden door, above which is some strange gothic lettering..." +"Nach Westen gibt es eine zyklopenfoermige Oeffnung in einer alten Tuer darueber gibt es einige uralte Runen." + +"...and a rug lying beside an open trap door." +"...and a closed trap door at your feet." +"...and an open trap door at your feet." +" und ein Teppich liegt neben einer Falltuer." +" und eine geschlossene Falltuere bei deinen Fuessen." +" und eine offene Falltuer bei deinen Fuessen." + +LOOK UNDER TRAPDOOR +"You see a rickety staircase descending into darkness." +"Du siehst eine wackelige Treppe, die in die Dunkelheit fuehrt." + +LOOK AT TRAPDOOR +"It's closed." +"Sie ist geschlossen." + +OPEN THE TRAPDOOR (NOTE: FROM THE CELLAR) +"The door is locked from above." +"Die Tuer ist von oben abgeschlossen." + +CLOSE THE TRAPDOOR +"The door closes and locks." +"Die Tuer geht zu und und verschliesst sich." + +LOOK AT CHIMNEY +"The chimney leads upward, and looks climbable." +"The chimney leads downward, and looks climbable." +"Der Kamin geht nach oben und sieht erklimmbar aus. +"Der Kamin geht nach unten und sieht erklimmbar aus." + +CLIMB UP CHIMNEY +"Going up empty-handed is a bad idea." +"Mit leeren Haenden nach oben gehen ist keine gute Idee." + +DOWN +"The trap door is closed." +"Die Falltuer ist geschlossen." + +RAISE THE RUG +"The rug is too heavy to lift, but in trying to take it you have noticed an irregularity beneath it." +"Der Teppich ist zu schwer, um ihn aufzuheben, aber beim Versuchen hast du gemerkt, dass darunter eine Unebenheit ist." + +TAKE RUG +"The rug is extremely heavy and cannot be carried." +"Der Teppich ist aeusserst schwer und man kann ihn nicht tragen." + +SIT ON RUG +"As you sit, you notice an irregularity underneath it. Rather than be uncomfortable, you stand up again." +"Waehrend du da sitzt bemerkst du eine Unebenheit darunter. Um nicht unbequem zu sitzen, stehst du wieder auf. + +SIT ON RUG +"I suppose you think it's a magic carpet?" +"Ich nehme an, dass du denkst, es waere ein fliegender Teppich?" + +TAKE KNIFE +The theif swings the knife out of your reach. +"Der Dieb schwingt das Messer ausser Reichweite." + +TAKE STILLETO +"The stilleto seems white-hot. You can't hold on to it." +"Das Stilett scheint gluehend heiss. Du kannst es nicht in der Hand halten." + +TALK TO TROLL +"The troll isn't much of a conversationalist." +"Der Troll ist nicht der ideale Gespraechspartner." + +LOOK AT TROLL +"The troll, angered and humiliated, recovers his weapon. He appears to have an axe to grind with you." +"Der Troll holt sich seine Waffe zurueck. Er ist boese und beschaemt. Er scheint mit dir Scheren schleifen zu wollen." + +LOOK AT TROLL +"The troll, disarmed, cowers in terror, pleading for his life in the guttural tongue of the trolls." +"Der jetzt entwaffnete Troll kriecht vor Furcht in die Ecke und bittet mit heiserer Trollstimme um sein Leben." + +LOOK AT TROLL +"The troll stirs, quickly resuming a fighting stance." +"Der Troll ruehrt sich und nimmt schnell eine Kampfstellung ein." + +LOOK AT TROLL +"The troll scratches his head in confusion, then takes the axe." +"Der Troll kratzt sich verwirrt am Kopf, dann nimmt er die Axt auf." + +GIVE AXE TO TROLL +"You would have to get the first ??????, and that seems unlikely." +"Du muesstest den ersten Schlag fuehren, aber das scheint unmoeglich." + +THROW THE BAG AT THE TROLL +"The troll, who is remarkably coordinated, catches the knife +and eats it hungrily. Poor troll, he dies from an internal hemorrhage and his carcass disappears in a sinister black fog." +"Der Troll, der ungemein sportlich ist, faengt das Messer und frisst es mit Appetit. Armer Troll, er stirbt an einer inneren Blutung und sein Gerippe verschwindet in einem boesen schwarzen Nebel." + +GIVE BAG TO TROLL +"The troll, who is not overly proud, graciously accepts the gift and eats it." +"Der Troll, der keinen grossen Stolz hat, akzeptiert das Geschenk und frisst es." + +GIVE (THING) TO TROLL +"The troll accepts the (THING) and, being for the moment sated, ??seated? (throws the (THING) back. Fortunately, the troll has poor control, and the (THING) falls to the floor. He does not look pleased." +"Der Troll nimmt den (DING), und da er momentan sitzt wirft er den(DING) zurueck. Gott sei Dank hat der Troll kein Wurftalent und den (DING) faellt auf die Erde. Er sieht nicht sehr gluecklich aus.". + +GIVE (THING) TO TROLL +"He accepts it and not having the most discriminating tastes, gleefully eats it." +"Er nimmt es an, und da er kein grosser Feinschmecker ist, frisst er es gierig."" + + +MOVE THE TROLL +"The troll spits in your face, grunting "Better luck next time" in a rather barbarous accent." +"Der Troll spuckt dir ins Gesicht, zischt in einem recht primitiven Dialekt:"Naechstes Mal mehr Glueck." + +HIT THE TROLL +"The troll laughs at your puny gesture." +"Der Troll lacht ueber deine hilflose Geste". + +LISTEN TO THE TROLL +"Every so often the troll says something, probably uncomplimentary, in his guttural tongue." +"Hier und da sagt der Troll mit seiner heiseren Trollstimme etwas, das wohl beleidigend ist + + +TROLL, HELLO +"Unfortunately, the troll can't hear you." +"Leider kann der Troll dich nicht hoeren." + +LOOK +"With the leaves moved, a grating is revealed." +"Als die Blaetter aus dem Weg sind, zeigt sich ein Gitter." + +COUNT LEAVES +"There are 69,105 leaves here." +Es gibt hier 69.105 Blaetter. + +BURN LEAVES +"The leaves burn." +"Die Blaetter brennen." + +CUT LEAVES WITH KNIFE +"You rustle the leaves around, making quite a mess." +"Du stocherst in den Blaettern herum und machst eine beachtliche Schweinerei." + +MOVE LEAVES +"Done." +"Underneath the pile of leaves is a grating. As you release the leaves, the grating is once again concealed from view." +"Geschafft." +"Unter dem Blaetterhaufen ist ein Gitter. Wenn due die Blaetter fallen laesst, ist das Gitter wieder versteckt." + +LOOK +"There is an open grating, descending into darkness." +"Da befindet sich ein offenes Gitter, das in die Dunkelheit hinabfuehrt." + +LOOK +"There is a grating securely fastened into the ground." +"Da ist ein Gitter, das Fest im Boden befestigt ist." + +LOOK +"You are in a small room near the maze. There are twisty passages in the immediate vicinity." +"Du bist in einem kleinen Zimmer bei dem Irrgarten. Es gibt hier in der Naehe kleine verwirrende Gaenge . + +LOOK +"Above you is an open grating with sunlight pouring in." +"Ueber dir ist ein offenes Gitter, von wo das Sonnenlicht hereinflutet." +LOOK +"Above you is a grating." +"Ueber dir ist ein Gitter." + +LOOK +"Above you is a grating locked with a skull-and-crossbones lock." +"Ueber dir ist ein Gitter, das mit einem Schloss aus einem Totenschaedl und Gebeinen gemacht verschlossen ist." + +LOCK GRATING +"The grate is locked." +"Das Gitter ist verschlossen." + +LOCK GRATING +"You can't lock it from this side." +"Du kannst es von innen nicht verschliessen." + +UNLOCK GRATING +"The grate is unlocked." +"Das Gitter ist nicht verschlossen." + +UNLOCK GRATING +"You can't reach the lock from here." +"Du kannst das Schloss von hier aus nicht erreichen." + +UNLOCK GRATING WITH KNIFE +"Can you unlock a grating with a knife?" +"Du kannst das Gitter nicht mit einem Messer aufschliessen." + +PICK THE LOCK +"You can't pick the lock." +"Du kannst das Schloss nicht knacken." + +OPEN THE GRATING +"A pile of leaves falls onto your head and to the ground." +"Ein Haufen Blaetter faellt auf deinen Kopf und auf die Erde." + +OPEN THE GRATING +"The grating is locked." +"Das Gitter ist verschlossen." + +PUT SWORD THROUGH GRATING +"It won't fit through the grating." +"Es passt nicht durch das Gitter." + +PUT THE (THING) THROUGH GRATING +"The (THING) goes through the grating into the darkness below." +"Der (Ding) verschwindet durch das Gitter in die Dunkelheit, die darunter herrscht." + +GO DOWN +"You won't be able to get back up to the tunnel you are going through when it gets to the next room." + +CORRECTED ONE: +"Wenn dieser Tunnel das naechste Zimmer erreicht kannst du ihn nicht mehr +als R%uckweg benutzen." + +TAKE RUSTY KNIFE +"As you touch the rusty knife, your sword gives a single pulse of blinding blue light." +"Als du das rostige Messer anfasst, blitzt dein Schwert kurz mit einem einem blendenden blauen Licht auf." + +TAKE THE SKELETON +"A ghost appears in the room and is appalled at your desecration of the remains of a fellow adventurer. He casts a curse on your valuables and banishes them to the Land of the Living Dead. The ghost leaves, muttering obscenities." +"Ein Gespenst erscheint in dem Zimmer und ist entsetzt ueber deine Schaendung der Leiche eines Abenteuererkollegen. Es verflucht deine Wertsachen, und verbannt sie in das Land der lebendigen Toten. Das Gespenst verschwindet unter einem Schwall von ordinaeren Ausdruecken. " + +LOOK AT TORCH +,"The torch is burning." +"Die Fackel brennt. + +POUR WATER ON TORCH +"The water evaporates before it gets close." +"Das Wasser verdampft bevor es mit der Fackel in Beruehrung kommt." + +LOOK +"Unfortunately, the mirror has been destroyed by your recklessness." +"Leider ging der Spiegel durch deine Bloedheit kaputt. + +TOUCH THE MIRROR WITH THE (THING) +"You feel a faint tingling transmitted through the (THING)." +"Du fuehlst ein leichtes Kribbeln, das von dem (DING) ausgeht." + +(NOTE: YOU WILL BE TRANSPORTED TO OTHER MIRROR ROOM) +"There is a rumble from deep within the earth and the room shakes." +"Ein Grollen ertoent aus der Tiefe, so dass der Raum bebt." + +LOOK AT MIRROR +"The mirror is broken into many pieces." +"Der Spiegel ist in viele Scherben zerbrochen." + +TAKE MIRROR +"The mirror is many times your size. Give up." +"Der Spiegel ist mehrmals so gross wie du. Gib's auf!" + +HIT MIRROR +"You have broken the mirror. I hope you have a seven years' supply of good luck handy." +"Du hast den Spiegel zerbrochen. Ich hoffe, du hast sieben Jahre Glueck zur Hand." + +HIT MIRROR +"Haven't you done enough damage already?" +"Hast du denn nicht schon genug Schaden angerichtet?" + +LOOK +"A piece of rope descends from the railing above, ending some five feet above your head." +"Ein Seil haengt von dem Gelaender runter und endet 3 Meter ueber deinem Kopf. (copy exact wording from Script.full.) + +LOOK +"Hanging down from the railing is a rope which ends about ten feet from the floor below." +"Von dem Gelaender haengt ein Seil, das etwa 3 Meter ueber dem Boden endet." (find correct wording in script.full) + +GO EAST +"As you enter the dome you feel a strong pull as if from a wind drawing you over the railing and down. +"Wenn du in die Kuppel trittst, fuehlst du einen starken Sog, wie von einem Wind, der dich ueber das Gelaender und nach unten reisst." +EXORCISE THE SPIRITS (NOTE: NOT HOLDING BELL, BOOK AND CANDLE) +"You must perform the ceremony." +"Du musst diese Zeremonie durchfuehren." + +EXORICISE THE SPIRITS +"You aren't equipped for an exorcism." +"Fuer eine Austreibung bist du nicht vorbereitet." + +RING BELL +"In your confusion, the candles drop to the ground (and they are out)." +"In deiner Verwirrung fallen die Kerzen auf den Boden (und sie sind aus)." + +(NOTE: IF YOU TAKE TOO MUCH TIME) +"The tension of this ceremony is broken, and the wraiths, amused but shaken at your clumsy attempt, resume their hideous jeering." +"Der Bann dieser Zeremonie ist gebrochen, und die Geister, die zwar amuesiert, aber doch von deinem tolpatschigen Versuch gestoert sind, nehmen ihr schreckliches Geheule wieder auf." + +LOOK +"The bell appears to have cooled down." +"Die Glocke scheint sich abgekuehlt zu haben." + +LOOK +"The water level behind the dam is low: The sluice gates have been opened. Water rushes through the dam and downstream." +"Der Wasserstand hinter dem Damm ist niedrig. Die Schleusentore sind geoeffnet worden. Das Wasser braust durch den Damm flussabwaerts." + +LOOK +"The sluice gates are open, and water rushes through the dam. The water level behind the dam is still high." +"Die Schleusentore sind geoeffnet. Wasser braust durch den Damm. Der Wasserstand hinter dem Damm ist immer noch hoch." + +LOOK +"The sluice gates are closed. The water level in the reservoir is quite low, but the level is rising quickly." +"Die Schleusentore sind geschlossen. Der Wasserstand in dem Reservoir ist niedrig, aber er steigt schnell." + +TURN THE BOLT +"The sluice gates close and water starts to collect behind the dam." +"Die Schleusentore schliessen sich, und Wasser sammelt sich hinter dem Damm an." + +TURN THE BOLT +"The sluice gates open and water pours through the dam." +"Die Schleusentore oeffnen sich, und Wasser stroemt durch den Damm." + +TURN THE BOLT +"The bolt won't turn with your best effort." +"Die Schraube laesst sich trotz aller Versuche nicht drehen." + +TURN THE BOLT WITH THE (THING) +"The bolt won't turn using the (THING)." +"Die Schraube laesst sich mit dem (Ding) nicht drehen." + +OIL THE BOLT +"Hmm. It appears the tube contained glue, not oil. Turning the bolt won't get any easier...." +"O nein! Es sieht so aus, als ob die Tube nicht Oel, sondern Klebstoff enthalten hat. Das Schrauben wird dadurch nicht einfacher." + +TAKE THE BOLT or TAKE THE BUBBLE +"It is an integral part of the control panel." +"Es ist ein wichtiger Bestandteil der Schalttafel." + +(NOTE: IF YOU FILL THE RESERVOIR AND GET INTO BOAT) +"The boat lifts gently out of the mud and is now floating on the reservoir." +"Das Boot hebt sich leicht aus demSchlamm und treibt auf dem Wasser des Reservoirs." + +(NOTE: YOU'RE IN DEEP CANYON WHEN WATER FLOWS) +"A sound, like that of flowing water, starts to come from below." +"Ein Geraeusch, wie das von fliessendem Wasser kann von unten gehoert werden." + +(NOTE: IF YOU'RE IN LOUD ROOM) +"All of a sudden, an alarmingly loud roaring sound fills the room. Filled with fear, you scramble away." +"Ploetzlich fuellt ein alarmierend lautes Gebruell den Raum. Voller Furcht kriechst du davon." + +(NOTE: IF YOU'RE NEXT TO RESERVOIR) +"You notice that the water level has risen to the point that it is impossible to cross." +"Du merkst, dass der Wasserstand so hoch ist, dass man nicht mehr zu Fuss weiterkommt." + +(NOTE: WATER GOING OUT OF THE RESERVOIR) +"The water level has dropped to the point at which the boat can no longer stay afloat. It sinks into the mud." +"Der Wasserstand hat sich so weit gemindert, dass das Boot nicht mehr weiter schwimmen kann. Es sinkt in den Schlamm." + +(NOTE: DITTO) +"The roar of rushing water is quieter now." +"Das Getoese von dem brausenden Wasser ist jetzt ruhiger." +(NOTE: DITTO) +"The water level is now quite low here and you could easily cross over to the other side." +"Der Wasserstand ist hier recht niedrig, und du koenntest hier leicht auf die andere Seite kommen. + +READ THE BUTTONS (IN THE DAM MAINTENANCE ROOM) +"They're greek to you." should be Greek +"Das kommt dir alles Spanisch vor." the German uses Spanish! + +PUSH THE BLUE BUTTON (NOTE: IT FLOODS THE PLACE) +"There is a rumbling sound and a stream of water appears to burst from the east wall of the room (apparently, a leak has occurred in a pipe)." +"Da ist ein grollendes Geraeusch, und ein Strom von Wasser scheint von der Ostwand in das Zimmer hereinzubrechen (scheinbar ein Rohr bruch). + +PUSH THE BLUE BUTTON +"The blue button appears to be jammed." +"Der blaue Knopf scheint, blockiert zu sein. ." + +PUSH RED BUTTON +"The lights within the room shut off." +"Die Lichter im Raum gehen aus." + +PUSH RED BUTTON +"The lights within the room come on." +"Die Lichter im Raum gehen an." + +PUSH BROWN BUTTON +"Click." +"Klick" + +EXAMINE CHESTS +"The chests are all empty." +"Die Werkzeugkaesten sind alle leer." + +OPEN CHESTS +"The chests are already open." +"Die Werkzeugkaesten sind schon offen." + +(NOTE: THE ROOM IS FLOODING) +"The water level here is now ... +"Das Wasser steht hier jetzt +(NOTE: TRANSLATE EACH OF THE FOLLOWING) ... +"up to your ankles" +"up to your shin." +"up to your knees." +"up to your hips." +"up to your waist." +"up to your chest." +"up to your neck." +"over your head." +"high in your lungs." +"bis an deine Knoechel." +"bis andein Kinn." +"bis an deine Knie." +"bis an deine Taille." +"bis an deine Brust." +"bis an deinen Hals." +"ueber deinen Kopf." + + +APPLY PUTTY ON LEAK +"By some miracle of Zorkian technology, you have managed to stop the leak in the dam." +"Durch ein Wunder der Zorkschen Technologie ist es dir gelungen, das Leck im Damm zu beheben. + +OIL THE (THING) +"The all-purpose gunk isn't a lubricant." +"Das Allzweckschmierzeug dient nicht als Schmieroel." + +PUT (THING) IN TUBE +"The tube refuses to accept anything." +"Die Tube nimmt einfach nichts auf." + +SQUEEZE TUBE +"The viscous material oozes into your hand." +"Das widerliche Zeug quillt ueber deine ganze Hand." + +SQUEEZE TUBE +"The tube is apparently empty." +"Die Tube ist scheinbar leer." + +SQUEEZE TUBE +"The tube is closed." +"Die Tube ist zu." + +OPEN THE DAM +"Sounds reasonable, but this isn't how." +"Das klingt annehmbar, aber so geht es nicht." + +PLUG THE DAM WITH MY FINGER +"Are you the little Dutch boy, then? Sorry, this is a big dam." +"Bist du der kleine Gernegross, ja? Zu dumm, das ist ein grosser Damm." + +PLUG THE DAM WITH THE (THING) +"With a (THING)? Do you know how big this dam is? You could only stop a tiny leak with that." +"Mit einem (Ding)? Weisst du wie gross der Damm ist? Du koenntest hoechstens ein winziges Leck damit stopfen." + +LOOK (NOTE: IN RESERVOIR SOUTH) +"You are in a long room. To the north is a large lake, too deep to cross. You notice, however, that the water level appears to be dropping at a rapid rate. Before long, it might be possible to cross to the other side from here." +"Du bist in einem laenglichen Zimmer. Nach Norden liegt ein grosser See. Er ist zu tief, ihn zu ueberqueren. Du merkst aber, dass der Wassterstand sich rapide senkt. Es wird nicht lange dauern, bis du den See ueberqueren kannst." + +(NOTE: DITTO) +"You are in a long room, to the north of which is a wide area which was formerly a reservoir, but now is merely a stream. You notice, however, that the level of the stream is rising quickly and that before long it will be impossible to cross here." +"Du bist in einem laenglichen Zimmer. Nach Norden gibt es eine weite Flaeche, die frueher ein Reservoir war, aber jetzt nur noch ein Fluss ist. Du bemerkst aber, dass der Wasserstand des Flusses sich rapide hebt, und dass es bald unmoeglich sein wird, ihn zu ueberqueren. + +(NOTE: IN THE RESERVOIR) +"You notice that the water level here is rising rapidly. The currents are also becoming stronger. Staying here seems quite perilous!" +"Du bemerkst, dass der Wasserstand sich hier rapide hebt. Die Stroemungen werden auch staerker. Hier zu bleiben, erscheint recht gefaehrlich." + +LOOK (NOTE: WHILE IN THE BOAT) +"You are on the lake. Beaches can be seen north and south. Upstream a small stream enters the lake through a narrow cleft in the rocks. The dam can be seen downstream." +"Du bist auf dem See. Nach Norden und Sueden kann man Straende sehen. Flussaufwaerts fliesst ein kleiner Fluss durch eine enge Rinne in den Felsen in den See hinein. Flussabwaerts kann man den Damm sehen." + +LOOK (NOTE: RESERVOIR NORTH) +"You are in a large cavernous area. To the south is a wide lake, whose water level appears to be falling rapidly." +"Du bist in einer weiten grottenartigen Gegend. Nach Sueden ist ein grosser See, dessen Wasserstand rapide zu fallen scheint." + +LOOK (NOTE: RESERVOIR NORTH) +"You are in a cavernous area, to the south of which is a very wide stream. The level of the stream is rising rapidly, and it appears that before long it will be impossible to cross to the other side." +"Du bist in einer grottenartigen Gegend. Nach Sueden ist ein sehr breiter Strom. Der Wasserstand des Stroms steigt rapide, und es scheint, dass es bald unmoeglich sein wird auf die andere Seite zu kommen." + + +(DITTO) +"You are in a large cavernous room, north of a large lake." +"Du bist in einem grottenartigen Raum auf der Nordseite eines grossen Sees." + +THROW THE BOTTLE +"The bottle hits the far wall and shatters." +"Die Flasche trifft die gegenueberliegende Wand und zerschellt." + +BREAK THE BOTTLE +"A brilliant maneuver destroys the bottle." +"The water spills to the floor and evaporates." +"Das Wasser spritzt auf den Boden und verdampft." + +TALK TO CYCLOPS +"No use talking to him. He's fast asleep." +"Es hat keinen Sinn mit ihm zu sprechen. Er schlaeft fest." + +TALK TO CYCLOPS +"The cyclops prefers eating to making conversation." +"Der Zyklop zieht das Essen der Unterhaltung vor." + +EXAMINE CYCLOPS +"The cyclops is sleeping like a baby, albeit a very ugly one." +"Der Zyklop schlaeft wie ein Engel, wenn auch ein haesslicher." + +WAKE UP CYCLOPS +"The cyclops yawns and stares at the thing that woke him up." +"Der Zyklop gaehnt und starrt das Ding an, das ihn aufgeweckt hat." + +EXAMINE CYCLOPS +"A hungry cyclops is standing at the foot of the stairs." +"Der hungrige Zyklop steht am Fuss der Treppe." + +GIVE LUNCH TO CYCLOPS +"The cyclops says ""Mmm Mmm. I love hot peppers! But oh, could I use a drink. Perhaps I could drink the blood of that thing."" From the gleam in his eye, it could be surmised that you are "that thing"." +"Der Zyklop sagt:"Ei,ei. Ich liebe scharfe Pepperoni! Aber, oooh, ich koennte ich erst mal was zu Trinken brauchen. Vielleicht koennte ich das Blut von "diesem Ding" trinken".Aus dem listigen Aufleuchten seiner Augen kannst du schliessen, dass du gemeint bist." + +GIVE WATER TO CYCLOPS +"The cyclops takes the bottle, checks that it's open, and drinks the water. A moment later, he lets out a yawn that nearly blows you over, and then falls fast asleep (what did you put in that drink, anyway?)." +"Der Zyklop nimmt die Flasche, prueft ihren Inhalt und trinkt das Wasser. Einen Augenblick spaeter oeffnet er seinen Mund zu einem Gaehnen, mit dem er dich beinahe verschluckt, dann schlaeft er fest ein.(Was hast du ihm denn bloss in das Wasser geschmuggelt?) + +GIVE WATER TO CYCLOPS +"The cyclops apparently is not thirsty and refuses your generous offer." +"Scheinbar ist der Zyklop nicht durstig und lehnt dein grosszuegiges Angebot ab." + +GIVE GARLIC TO CYCLOPS +"The cyclops may be hungry, but there is a limit." +"Vielleicht ist der Zyklop hungrig, aber auch er kennt seine Grenzen." + +GIVE (THING) TO CYCLOPS +"The cyclops is not so stupid as to eat THAT!" +"Der Zyklop ist nicht so dumm, dass er DAS essen wuerde!" + +HIT THE CYCLOPS +""Do you think I'm as stupid as my father was?"", he says, dodging." +""Meinst du, dass ich so dumm bin, wie mein Vater war?' sagt er, als er dir ausweicht. + +HIT CYCLOPS +"The cyclops shrugs but otherwise ignores your pitiful attempt." +"Der Zyklop zuckt die Achseln und beachtet deinen armseligen Versuch nicht weiter." + +HOLD CYCLOPS +"The cyclops doesn't take kindly to being grabbed." +"Es gefaellt dem Zyklopen nicht, dass du ihn angreifst." + +TIE UP THE CYCLOPS +"You cannot tie the cyclops, though he is fit to be tied." +"Du kannst den Zyklopen nicht fesseln, obwohl er gefesselt zu sein scheint." + +LISTEN TO CYCLOPS +"You can hear his stomach rumbling." +"Du kannst seinen Magen knurren hoeren." + +LOOK +"The cyclops is sleeping blissfully at the foot of the stairs." +"Der Zyklop schlaeft seig am Fusse der Treppe." + +LOOK (NOTE: AFTER CYCLOPS HAS RUN AWAY) +"The east wall, previously solid, now has a cyclops-sized opening in it." +"Die Ostwand, die frueher ganz war, zeigt jetzt eine zyklopenfoermige Oeffnung." + +LOOK +"The cyclops is standing in the corner, eyeing you closely. I don't think he likes you very much. He looks extremely hungry, even for a cyclops." +"Der Zyklop steht in der Ecke und beobachtet dich scharf. Ich glaube nicht, dass er dich mag. Er sieht sogar fuer einen Zyklopen ausgesprochen hungrig aus." + +LOOK +"The cyclops, having eaten the hot peppers, appears to be gasping. His enflamed tongue protrudes from his man-sized mouth." +"Der Zyklop scheint, nachdem er die scharfen Pepperoni gefressen hat, nach Atem zu ringen. Seine flammenrote Zunge haengt aus seinem menschengrossen Maul." Jeff, we have to discuss whether we want to put the pepers back in, or do it with sour apples??? I've put the peppers into this, now we have to do it with full script. + +LOOK (NOTE: IN LOUD ROOM) +"It is unbearably loud here, with an ear-splitting roar seeming to come from all around you. There is a pounding in your head which won't stop. With a tremendous effort, you scramble out of the room." +"Es ist unertraeglich laut hier. Eine ohrenbetaeubendes Gebruell, kommt von allen Seiten auf dich zu Dein Kopf droehnt ununterbrochen. Mit groesster Anstrengung verlaesst du dich den Raum." + +(NOTE: IF YOU TYPE MORE THAN ONE COMMAND IN THE LOUD ROOM) +"The rest of your commands have been lost in the noise." +"Deine anderen Befehle sind in dem Gebruell verloren gegangen." + +(NOTE: IF YOU TYPE NOTHING) +"I beg your pardon?" +"Bitte?" + +LOOK (NOTE: IN DEEP CANYON) +" You can hear a loud roaring sound, like that of rushing water, from below." +"Du kannst ein lautes Getoese, wie das Brausen von Wasser von unten hoeren." + +(NOTE: THE THIEF APPEARS) +"Your opponent, determining discretion to be the better part of valor, decides to terminate this little contretemps. With a rueful nod of his head, he steps backward into the gloom and disappears." +"Dein Gegner,der entscheidet, dass Bescheidenheit auch eine Zier ist, entscheidet diesen kleinen Zwischenfall abzubrechen. Mit einem beschaemten Kopfnicken tritt er zurueck ins Dunkel und verschwindet." + +(NOTE: HE LEAVES) +"The holder of the large bag just left, looking disgusted. Fortunately, he took nothing." +"Der, der den grossen Sack traegt, ist gerade abgehauen. Er hatte die Nase voll. Gott sei Dank hat er nichts mitgenommen." + + +(NOTE: DITTO) +"A seedy-looking individual with a large bag just wandered through the room. On the way through, he quietly abstracted some valuables ... from the room, ...mumbling something about "Doing unto others before..."" +(NOTE: ALSO TRANSLATE "... from your possession ..." in place of "... from the room ...") +"Ein uebelaussehender Typ mit einem grossen Sack ist gerade durchs Zimmer gelatscht. Auf dem Weg hat er ganz ruhig ein paar Wertgegenstaende aus dem Zimmer mitgehen lassen,....dabei hat er etwas gemurmelt wie ...."Diene deinem Naechsten bevor...... +"....aus deinem Besitz" "anstatt.......or statt des"........aus dem Zimmer, or von dem Zimmer" + +(NOTE: DITTO) +"The thief just left, still carrying his large bag. You may not have noticed that he robbed you blind first." +"Der Dieb ist gerade abgehauen, natuerlich trug er immer noch seinen grossen Sack. Du hast es vielleicht nicht bemerkt, aber er hat dich restlos ausgeraubt." + +(NOTE: DITTO) +"You may not have noticed that he appropriated the valuables in the room." +"Du hast vielleicht nicht gemerkt, dass er die Wertsachen im Zimmer abgestaubt hat." + +(NOTE: DITTO) +"The thief, finding nothing of value, left disgusted." +"Der Dieb, der nichts Wertvolles finden konnte, ist veraergert abgehauen. + +(NOTE: DITTO) +"A "lean and hungry" gentleman just wandered through, carrying a large bag. Finding nothing of value, he left disgruntled." +"Ein hagerer, hungrigaussehender Herr latschte hier gerade durch. Er trug einen grossen Sack. Als er nichts Wertvolles finden konnte, zog er veraergert ab." + +(NOTE: DITTO) +"The thief, finding nothing of value, left disgusted." +"Der Dieb, der nichts Wertvolles finden konnte, zog wuetend ab." + +(NOTE: IF HE STEALS YOU IVORY TORCH) +"The thief seems to have left you in the dark." +"Der Dieb hat dich offensichtlich im Dunkeln gelassen + +(NOTE: THIEF STEALS SOMETHING IN MAZE) +"You hear, off in the distance, someone saying "My, I wonder what this fine (THING) is doing here."" +"Irgendwo in der Ferne hoerst du jemanden sagen" Meine Guete, was dieses schoene (DING) hier wohl tut?"" + +TALK TO THIEF +"The thief is a strong, silent type." +"Der Dieb ist einer von den Starken und Schweigsamen." + +THIEF, HELLO +"The thief, being temporarily incapacitated, is unable to acknowledge your greeting with his usual graciousness." +"Der Dieb, der momentan behindert ist, ist nicht in der Lage, deinen Gruss mit der ihm angeborenen Hoeflichkeit zu erwidern." + +THROW KNIFE AT THIEF +"You evidently frightened the robber, though you didn't hit him. He flees, but the contents of his bag fall on the floor." +"Du musst dem Raeuber Angst eingejagt haben, obwohl du ihn nicht getroffen hast. Er flieht, aber der Inhalt seines Sackes faellt auf den Boden." + +THROW KNIFE AT THIEF +"You missed. The thief makes no attempt to take the knife, though it would be a fine addition to the collection in his bag. He does seem angered by your attempt." +"Du hast nicht getroffen. Der Dieb macht keine Anstalten das Messer zu nehmen, obwohl es eine schoene Zugabe zu der Sammlung in seinem Sack waere. Er scheint, ueber deinen Versuch veraergert zu sein." + +THROW (THING) AT THIEF (NOTE: WHILE HE'S UNCONSCIOUS) +"Your proposed victim suddenly recovers consciousness." +"Dein Opfer kommt ploetzlich zu sich." + +GIVE (THING) TO THIEF +"The thief places the (THING) in his bag and thanks you politely." +"Der Dieb steckt das (DING) in seinen Sack und dankt dir hoeflich." + +GRAB THIEF +"Once you got him, what would you do with him?" +"Was willst du mit ihm machen, wenn du ihn hast?" + +EXAMINE THIEF +"The thief is a slippery character with beady eyes that flit back and forth. He carries, along with an unmistakable arrogance, a large bag over his shoulder and a vicious stiletto, whose blade is aimed menacingly in your direction. I'd watch out if I were you." +"Der Dieb ist ein schleimiger Geselle mit Eidechsenaugen die hin und her aeugeln. Mit unmissverstaendlicher Arroganz schleppt er einen grossen Sack mit sich herum. Ausserdem hat er ein gefaehrlich aussehendes Stilett, dessen Spitze bedrohlich gegen dich gerichtet ist. An deiner Stelle waere ich auf der Hut." +LISTEN TO THIEF +"The thief says nothing, as you have not been formally introduced." +"Der Dieb schweigt, denn ihr seid einander ja noch nicht offiziell vorgestellt worden." + +(NOTE: WHILE FIGHTING THIEF) +"The robber, somewhat surprised at this turn of events, nimbly retrieves his stiletto." +"Der Raeuber, von dieser Wendung der Dinge etwas ueberrascht, holt sich sein Stillett leichtfuessig zurueck." + +(NOTE: THIEF HAS DIED) +"The chalice is now safe to take." +"Jetzt kannst du dir den Pokal ohne Gefahr nehmen." +KILL THIEF +"As the thief dies, the power of his magic decreases, and his treasures reappear:" +"Als der Dieb stirbt, schwindet seine Zauberkraft und seine Schaetze werden wieder sichtbar." + + +(NOTE: HIS STOLEN TREASURES REMAIN) +"His booty remains." +"Seine Beute bleibt zurueck." + +(NOTE: HE ESCAPES) +"The robber revives, briefly feigning continued unconsciousness, and, when he sees his moment, scrambles away from you." +"Der Raeuber kommt zu sich. Fuer eine Weile taeuscht er weiterhin Bewusstlosigkeit vor, dann als er die passende Gelegenheit findet, kriecht er weg von dir." + +TAKE THE LARGE BAG +"Sadly for you, the robber collapsed on top of the bag. Trying to take it would wake him." +"Zu deinem Nachteil ist der Raeuber auf dem Sack zusammengebrochen. Wenn du jetztversuchtest, den Sack wegzunehmen, wuerdest du ihn wecken." + +TAKE THE LARGE BAG (NOTE: HE'S HEALTHY NOW) +"The bag will be taken over his dead body." +"Der Sack wird auch ueber seine Leiche genommen." + +PUT (THING) IN LARGE BAG +"It would be a good trick." +"Das waere ein toller Trick." + +OPEN THE LARGE BAG +"Getting close enough would be a good trick." +"Nahe genug heranzukommen, waere ein toller Trick." + +EXAMINE THE LARGE BAG (NOTE: WHILE HE'S ON IT) +"The bag is underneath the thief, so one can't say what, if anything, is inside." +"Der Sack liegt unter dem Dieb, daher kann man nicht sagen, was darin ist, wenn ueberhaupt was drin ist." +TAKE CHALICE FROM THIEF +"You'd be stabbed in the back first." +"Du wuerdest von hinten erstochen." + +PUT (THING) IN CHALICE +"You can't. It's not a very good chalice, is it?" +"Das gelingt dir nicht. Es ist kein guter Pokal, nicht wahr?" + +(NOTE: IF ANY TREASURE IS HERE) +"The thief gestures mysteriously, and the treasures in the room suddenly vanish." +"Der Dieb fuehrt einige mysterioese Gesten aus, und die Schaetze im Zimmer verschwinden." + +OPEN FRONT DOOR +"The door cannot be opened." +"Die Tuer kann nicht geoeffnet werden." + +BURN FRONT DOOR +"You cannot burn this door." +"Du kannst die Tuer nicht verbrennen." + +BREAK THE DOOR +"You can't seem to damage the door." +"Du kannst die Tuer nicht beschaedigen." + +LOOK BEHIND DOOR +"It won't open." +"Sie laesst sich nicht oeffnen." + +TAKE DEAD BODIES (NOTE: IN HADES) +"A force keeps you from taking the bodies." +"Eine magische Kraft hindert dich am Mitnehmen der Leichen." + +OPEN BLACK BOOK +"The book is already open to page 569." +"Das Buch ist schon auf Seite 569 augfgeschlagen." + +CLOSE BLACK BOOK +"As hard as you try, the book cannot be closed." +"Trotz aller Kraftanwendung kannst du das Buch nicht schliessen." + +TURN THE PAGE +"Beside page 569, there is only one other page with any legible printing on it. Most of it is unreadable, but the subject seems to be the banishment of evil. Apparently, certain noises, lights, and prayers are efficacious in this regard." +"Ausser der Seite 569 gibt es nur noch eine Seite mit lesbarem Druck darauf. Fast alles ist unleserlich, aber das Thema scheint die Bannung des Boesen zu sein. Scheinbar sind gewisse Geraeusche, Lichter und Gebete in dieser Beziehung von Nutzen." + +DESTROY THE PAINTING +"Congratulations! Unlike the other vandals, who merely stole the artist's masterpieces, you have destroyed one." +"Gratuliere!Im Gegensatz zu den anderen Verbrechern, die lediglich die Meisterwerke des Kuenstlers gestohlen haben, hast du eines zerstoert." + +THROW THE LAMP +"The lamp has smashed into the floor, and the light has gone out." +"Die Lampe liegt am Fussboden zerschmettert, und das Licht ist aus." + +TURN ON LAMP +"A burned-out lamp won't light." +"Eine ausgebrannte Lample laesst sich nicht anzuenden." + +TURN OFF LAMP +"The lamp has already burned out." +"Die Lampe ist schon ausgebrannt." + +LOOK AT LAMP +"The lamp has burned out." +"Die Lampe ist ausgebrannt." + +EXAMINE LAMP +"The lamp is on." +"Die Lampe ist an." + +TAKE MAILBOX +"It is securely anchored." +"Er ist fest angebracht." Check other translation, I like this one. R. + +LIGHT A MATCH +"Unfortunately, you've run out of matches." +"Leider sind dir die Streichhoelzer ausgegangen." +LIGHT A MATCH (NOTE: IN DRAFTY ROOM) +"This room is drafty, and the match goes out instantly." +"Dieser Raum ist zugig, und das Streichholz geht sofort aus." + +LIGHT A MATCH +"One of the matches starts to burn." +"Eines der Streichhoelzer beginnt zu brennen." + +BLOW OUT MATCH +"The match is out." +"It's pitch black in here!" +"Das Streichholz ist aus." +"Es ist stockdunkel hier!" + +OPEN THE MATCHBOOK +"You have 5 matches." +"You have no matches" +"Du hast 5 Streichhoelzer." +"Du hast keine Streichhoelzer." + +EXAMINE MATCH +"The match is burning." +"Das Streichholz brennt." + +LOOK AT MATCHBOOK +"The matchbook isn't very interesting, except for what's written on it." +"Ausser der Beschriftung ist an dem Streichholzschaechtelchen nichts Interessantes zu bemerken." +LOOK +"The match has gone out." +"Das Streichholz ist ausgegangen." + +LOOK (NOTE: IF CANDLES ARE DIM) +"You'd better have more light than from the candles." +"Du brauchst mehr Licht, als nur Kerzen." + +LIGHT THE CANDLES +"Alas, there's not much left of the candles. Certainly not enough to burn." +"O je, Von den Kerzen.ist nicht mehr viel uebrig. Bestimmt nicht genug zum Brennen." + +LIGHT THE CANDLES (NOTE: NOT HOLDING LIT MATCH) +"You should say what to light them with." +"Du solltest sagen, mit was man sie anzuenden soll." + +LIGHT CANDLES +"The candles are already lit." +"Die Kerzen sind schon angezuendet." + +LIGHT CANDLES +"The candles are lit." +"Die Kerzen sind angezuendet." + +LIGHT CANDELS WITH TORCH +"You realize, just in time, that the candles are already lighted." +"Du bemerkst noch rechtzeitig, dass die Kerzen schon angezuendet sind." + +LIGHT CANDLES WITH TORCH +"The heat from the torch is so intense that the candles are vaporized." +"Die Hitze die von der Fackel ausgeht, ist so stark, dass die Kerzen schmelzen." +LIGHT CANDLES WITH TORCH (NOTE: TORCH IS NOT LIT) +"You have to light them with something that's burning, you know." +"Du musst sie mit etwas anzuenden, das brennt, verstehst du." + +COUND PAIR OF CANDLES +"Let's see, how many objects in a pair? Don't tell me, I'll get it." +"Mal sehen wieviele Dinge in einem Paar sind? Nicht verraten.Ich schaff das schon alleine." + +BLOW OUT CANDLES +"The flame is extinguished." +" It's really dark in here...." +"Die Flamme ist aus." +"Es ist wirklich dunkel hier drin...." + +BLOW OUT CANDLES +"The candles are not lighted." +"Die Kerzen sind nicht an." + +PUT THE CANDLES IN TORCH +"That wouldn't be smart." +"Das waere ungklug." + +EXAMINE CANDLES +"The candles are burning." +"Die Kerzen brennen." + +EXAMINE CANDLES +"The candles are out." +"Die Kerzen sind aus." + +(NOTE: IN DRAFTY ROOM) +"A gust of wind blows out your candles!" +"It is now completely dark." +"Ein Windstoss blaest die Kerzen aus!" +"Jetzt ist es restlos dunkel." + +LIGHT TORCH WITH MATCHES +"How sad for an aspiring adventurer to light a torch in a room which reeks of gas. Fortunately, there is justice in the world. +"Wie traurig fuer einen ehrgeizigen Abenteurer, dass er eine Fackel in einem Raum anzuendet, der nach Gas riecht. Gluecklicherweise gibt es Gerechtigkeit auf dieser Welt. + +** BOOOOOOOOOOOM **" +"Bum, bum, bum." + +(NOTE: ENTER GAS ROOM WITH FLAME) +"Oh dear. It appears that the smell coming from this room was coal gas. I would have thought twice about carrying flaming objects in here." +"Ach du lieber Himmel. Es scheint, als ob der Geruch der von diesem Zimmer kommt, Kohlenoxyd ist. Ich haette mir zweimal ueberlegt, ob ich hier einen brennenden Gegenstand hineintrage." + +(NOTE: IF NOT CARRYING GARLIC) +"A large vampire bat, hanging from the ceiling, swoops down at you!" +"Eine grosse Vampirfledermaus haengt von der Decke, rauscht auf dich nieder." + +TAKE MACHINE +"It is far too large to carry." +"Das ist viel zu gross zum Tragen." + +OPEN MACHINE +"The lid opens, revealing a (THING)." +"Der Deckel oeffnet sich, bringt ein (DING) zum Vorschein." + +OPEN MACHINE +"The lid opens." +"Der Deckel oeffnet sich." + +CLOSE LID +"The lid closes." +"Der Deckel schliesst sich." + +TURN MACHINE SWITCH +"It's not clear how to turn it on with your bare hands." +"Es ist nicht klar, wie man sie mit den nackten Haenden aufmacht." + +TURN MACHINE SWITCH +"The machine doesn't seem to want to do anything." +"Die Maschine scheint sich nicht ruehren zu wollen. + +TURN SWITCH WITH (THING) -- (NOTE: THING IS NOT SCREWDRIVER) +"It seems that a (THING) won't do." +"Es scheint, dass ein (DING) nicht ausreicht." + +LOOK AT GUNG +"The slag was rather insubstantial, and crumbles into dust at your touch." +"Die Schlacke war poroes und zerkruemelt bei der Beruehrung zu Staub." + +WAVE THE SCEPTRE (NOTE: AFTER DOING IT ONCE ALREADY AT END OF RAINBOW) +"The rainbow seems to have become somewhat run-of-the-mill." +"Der Regenbogen scheint seine Ungewoehnlichkeit verloren zu haben." + +WAVE THE SCEPTERE +"A dazzling display of color briefly emanates from the sceptre." +"Eine verwirrende Farbenpracht strahlt kurz von dem Zepter aus." + +LOOK +"A solid rainbow spans the falls." +"Ein voller Regenbogen steht ueber den Faellen." + +LOOK +"A beautiful rainbow can be seen over the falls and to the west." +"Ein wundervoller Regenbogen kann ueber den Faellen und nach Westen gesehen werden." + +CROSS RAINBOW (NOTE: FROM CANYON VIEW) +"From here?!?" +"Von hier aus?!?" + +CROSS RAINBOW +"You'll have to say which way..." +"Du musst sagen, in welcher Richtung..." + +LOOK UNDER RAINBOW +"The Frigid River flows under the rainbow." +"Der Gletsch fliesst unter dem Regenbogen." + +INFLATE THE BOAT +"No chance. Some moron punctured it." +"Unmoeglich. Irgendsoein Schwachkopf hat es durchloechert." + +APPLY PUTTY TO BOAT +"Well done. The boat is repaired." +"Grossartig. Das Boot ist repariert." + +PUT BOAT IN RIVER +"You should get in the boat then launch it." +"Du solltest in das Boot steigen, dann abstossen. (check this with other occurence of similar text). + +PUT (THING) IN RIVER +"The (THING) floats for a moment, then sinks." + + +PUT (THING IN RIVER +"The (THING) splashes into the water and is gone forever." + + +JUMP INTO RIVER +"A look before leaping reveals that the river is wide and dangerous, with swift currents and large, half-hidden rocks. You decide to forgo your swim." + + +LAUNCH BOAT +"You are already on the reservoir, or have you forgotten?" + + +LAUNCH BOAT +"You can't launch it here." + check other + +PUT KNIFE IN BOAT +"It seems that the knife didn't agree with the boat, as evidenced by the loud hissing noise issuing therefrom. With a pathetic sputter, the boat deflates, leaving you without." +(horrible English) + +LAUNCH BOAT +"You're not in the boat!" + + +GET IN BOAT +"Oops! Something sharp seems to have slipped and punctured the boat. The boat deflates to the sounds of hissing, sputtering, and cursing." + + +INFLATE BOAT +"Inflating it further would probably burst it." + + +DEFLATE BOAT +"You can't deflate the boat while you're in it." + + + +DEFLATE BOAT +"The boat must be on the ground to be deflated." + + +DEFLATE BOAT +"The boat deflates." + + +INFLATE BOAT +"The boat must be on the ground to be inflated." + + +INFLATE BOAT WITH PUMP +"The boat inflates and appears seaworthy." +"A tan label is lying inside the boat." + compare with full.script. + +INFLATE BOAT WITH LUNGS +"You don't have enough lung power to inflate it." + + +INFLATE BOAT WITH (THING) +"With a (THING)? Surely you jest!" +" + +(NOTE: HINT THAT THERE'S A EMERALD INSIDE) +"You notice something funny about the feel of the buoy." + + +LOOK (NOTE: WHERE YOU'RE UP A TREE) +"On the ground below you can see: ..." + + +DROP NEST +"The nest falls to the ground, and the egg spills out of it, seriously damaged." + + +DROP EGG +"The egg falls to the ground and springs open, seriously damaged." + + +DROP (THING) +"The (THING) falls to the ground." + + +OPEN EGG +"The egg is already open." + + +OPEN EGG WITH HANDS +"I doubt you could do that without damaging it." + + +OPEN EGG WITH SCREWDRIVER +"The egg is now open, but the clumsiness of your attempt has seriously compromised its esthetic appeal." + + +OPEN EGG WITH KNIFE +"Not to say that using the knife isn't original too..." +"Und erst die Idee, ein Messer zu benutzen... Du uebertriffst dich geradzu an originellen Einfaellen. +OPEN EGG WITH (THING) +"The concept of using a (THING) is certainly original." + + +SIT ON THE EGG +"There is a noticeable crunch from beneath you, and inspection reveals that the egg is lying open, badly damaged." +"Du fuehlst ein Krachen unter deinen Fuessen.und beim Nachsehen entdeckst du, dass das Ei offen daliegt und schweren Schaden gelitten hat.". + +THROW THE EGG +"Your rather indelicate handling of the egg has caused it some damage, although you have succeeded in opening it." +"Es ist dir zwar gelungen, das Ei zu oeffnen, aber du hast es mit deinen rauhen Methoden beschaedigt." +WIND THE CANARY +"The canary chirps blithely, if somewhat tinnily, for a short time." +"Der Kanarienvogel zwitschert fuer eine kurze Zeit munter, wenn auch etwas blechern." + +WIND THE CANARY (NOTE: IT'S BROKEN) +"There is an unpleasant grinding noise from inside the canary." +"Aus dem Innern des Kanarienvogels laesst sich ein unangenehmes mahlenes Geraeusch vernehmen.." + +CLIMB UP CLIFF +"The cliff is too steep for climbing." +"Der Felsvorsprung ist zu steil zum Erklettern." + +JUMP OFF CLIFF +"That would be very unwise. Perhaps even fatal." +"Das waere sehr gewagt. Vielleicht sogar toedlich." + +THROW (THING) OFF CLIFF +"The (THING) tumbles into the river and is seen no more." +"Das (DING) rollt in den Fluss und gluck-gluck weg ist es." + +TIE ROPE TO (THING) +"You can't tie the rope to that." +"Daran kannst du das Seil nicht binden." + +TIE ROPE TO RAILING +"The rope is already tied to it." +"Das Seil ist schon darangebunden." + +TIE UP THE TROLL (NOTE: HE'S UNCONSCIOUS) +"Your attempt to tie up the troll awakens him." +"Dein Versuch den Troll zu fesseln, weckt ihn auf." + +TIE UP THIEF +"The thief struggles and you cannot tie him up." +"Der Dieb wehrt sich, und du kannst ihn nicht fesseln." + +TIE UP (THING) +"Why would you tie up a (THING) ?" +"Warum wuerdest du ein Ding fesseln?" zusammenbinden??? + +UNTIE ROPE +"The rope is now untied." +"Das Seil ist jetzt aufgebunden." + +UNTIE ROPE +"It is not tied to anything." +"Es ist an nichts gebunden." + +DROP ROPE (NOTE: FROM DOME ROOM TO TORCH ROOM) +"The rope drops gently to the floor below." +"Das Seil faellt sanft nach unten auf die Erde." + +TAKE ROPE +"The rope is tied to the railing." +"Das Seil ist an das Gelaender gebunden." + +UNTIE ROPE FROM (THING) +"It's not attached to that!" +"Es ist nicht daran gebunden." + +GO DOWN THE SLIDE +"You tumble down the slide...." +"Du stolperst die Rutschbahn runter." + +PUT (THING) DOWN THE SLIDE +"The (THING) falls into the slide and is gone." +"Das (DING) faellt auf die Rutschbahn und ist weg." + +SMELL SANDWICH +"It smells of hot peppers." +"Es riecht nach scharfen Pepperoni" ????? + +(NOTE: THE FOLLOWING SEVERAL RESPONSES ARE WHEN THE PLAYER IS DEAD -- I.E., + A DISEMBODIED SPIRIT + +WEST +"You cannot enter in your condition." +"In Deinem Zustand kannst du hier nicht rein." + +ATTACK (PERSON) +"All such attacks are vain in your condition." +"In deinem Zustand sind deine Angriffe sinnlos." + +OPEN SOMETHING +"Even such an action is beyond your capabilities." +Sogar das uebersteigt deine Faehigkeiten." + +WAIT +"Might as well. You've got an eternity." +"Warum nicht.? Du hast eine ganze Ewigkeit." + +TURN ON LAMP +"You need no light to guide you." +"Du brauchst kein Licht, das dir den Weg leuchtet." + +SCORE +"You're dead! How can you think of your score?" +"Du bist tot! Wie kannst du da an den Stand des Spieles denken?" + +TAKE (THING) +"Your hand passes through its object." +"Deine Hand geht durch das Ding direkt hindurch." + +INVENTORY +"You have no possessions." +"Du besitzt garnichts." + +DIAGNOSE +"You are dead." +"Du bist tot." + +LOOK +"The room looks strange and unearthly and objects appear indistinct." +"Der Raum sieht fremd und unirdisch aus, und die Dinge erscheinen unwirklich." + +"Although there is no light, the room seems dimly illuminated." +"Obwohl es hier keine Lichtquelle gibt, erscheint der Raum doch einigermassen beleuchtet." + +PRAY (NOTE: AT THE ALTER; IT TRANSPORTS YOU TO THE FOREST) +"From the distance the sound of a lone trumpet is heard. The room becomes very bright and you feel disembodied. In a moment, the brightness fades and you find yourself rising as if from a long sleep, deep in the woods. In the distance you can faintly hear a songbird and the sounds of the forest." +"Aus der Ferne ertoent der Schall einer einsamen Trompete. Der Raum wird sehr hell und du fuehlst dich koerperlos. In einem Moment weicht die Helligkeit, und du fuehlst dich, als ob du dich von einem langen Schlaf im Walde erhebst. Aus der Ferne hoerst du den schwachen Gesang eines Singvogels und das Rauschen des Waldes." + + +PRAY (NOTE: ELSEWHERE) +"Your prayers are not heard." +"Deine Gebete werden nicht erhoert." + +(NOTE: DO WHATEVER) +"You can't even do that." +"Sogar das kannst du nicht." + +LOOK AT LAKE +"There's not much lake left...." +"Von dem See ist nicht viel uebrig.." + +CROSS LAKE +"It's too wide to cross." +"Er ist zu breit zum Ueberqueren." + +GET INTO THE LAKE +"You can't swim in this lake." +"Du kannst in diesem See nicht schwimmen." + +SWIM IN STREAM +"You can't swim in the stream." +"Du kannst in dem Fluss nicht schwimmen." + +CROSS STREAM +"The other side is a sheer rock cliff." +"Die andere Seite ist eine abrupte Felswand." + +JUMP OF CHASM +"You look before leaping, and realize that you would never survive." +"Du siehst dich um, bevor du springst, und erkennst, dass du nie ueberleben wuerdest." + +CROSS CHASM +"It's too far to jump, and there's no bridge." +"Es ist zu weit zum Springen, und es gibt keine Bruecke." + +PUT (THING) IN CHASM +"The (THING) drops out of sight into the chasm." +"Das (DING) faellt ausser Sichtweite in die Spalte." + +OPEN GATE +"The gate is protected by an invisible force. It makes your teeth ache to touch it." +"Das Tor ist von einer unsichtbaren Kraft geschuetzt. Deine Zaehne schmerzen, wenn du es beruehrst." + +OPEN DOOR +"The door won't budge." +"Die Tuer gibt nicht nach." + +SCRAPE PAINT (NOTE: IN STUDIO) +"Some paint chips away, revealing more paint." +"Ein bisschen Farbe splittert weg, zeigt mehr Farbe." + +BLOW GAS AWAY +"There is too much gas to blow away." +"Hier gibt es mehr Gas, als man wegblasen kann.". + +SMELL GAS +"It smells like coal gas in here." +"Es riecht hier nach Kohlenoxyd." + +(NOTE: DURING A FIGHT) +"The VILLAIN slowly regains his feet." +"Der Dieb gewinnt langsam die Kontrolle ueber seine Fuesse" + +(NOTE: DITTO) +"Fortunately, you still have a WEAPON." +"Gluecklicherweise hast du noch einen Weapon." + +(NOTE: DITTO) +"You are still recovering from that last blow, so your attack is ineffective." +"Du erholst dich immer noch von dem letzten Hieb, so dass dein Angriff keine Wirkung hat." + +(NOTE: DITTO) +"Attacking the VILLAIN is pointless." +"Den Dieb angreifen ist sinnlos." + +ATTACK VILLAIN +"The VILLAIN, who is unconscious, cannot defend himself: He dies." +"Der Dieb, der bewusstlos ist, kann sich nicht wehren. Er stirbt." + +(NOTE: FIGHTING) +"Your sword has begun to glow very brightly." +"Dein Schwert leuchtet hell auf." + +(NOTE: FIGHTING) +"Your sword is glowing with a faint blue glow." +"Dein Schwert leuchtet mit einem schwachen blauen Schimmer." + +(NOTE: FIGHTING) +"The robber, rummaging through his bag, dropped a few items he found valueless." +"Der Raeuber, der seinen Sack durchsucht, laesst ein paar Dinge, die er fuer wertlos haelt, fallen." + +(NOTE: THIEF STEALS SOMETHING) +"You suddenly notice that the (THING) vanished." +"Ploetzlich bemerkst du, dass das (DING) verschwunden ist." + +DIAGONSE +"You are in perfect health." +"Du bist kerngesund." + +DIAGONSE +"Du hast ..." +"... a light wound," +"... a serious wound," +"... several wounds," +"... serious wounds," +" which will be cured after 20 moves." +"..eine leichte Verletzung." +..eine ernste Verletzung." +..mehrere Verletzungen." +..ernste Verletzungen." + +"You can ... " +"... expect death soon." +"... be killed by one more light wound." +"... be killed by a serious wound." +"... survive one serious wound." +"... survive several wounds." +"Du kannst... +"..bald den Tod erwarten." +"..von einer weiteren leichten Verletzung getoetet werden." +"..von einer schweren Verletzung getoetet werden." +"..eine schwere Verletzung ueberleben" +" mehrere Verletzungen ueberleben." + + +"You have been killed ..." +"... once." +"... twice." +"Du bist getoetet worden..." + Du bist einmal.getoetet worden..." + Du bist zweimal.getoetet worden..." + + +"Your score is 87 (total of 350 points), in 120 moves." +"Dein Spielstand ist 87 (aus 350 Gesamtpunkten), in 120 Zuegen." (OLD) +(BETTER: +;"ren: check" +"Du hast 87 Punkte in 120 Zuegen erreicht (von insqesaunt(?) 350 Punkten)." + + +"This gives you the rank of ..." +"... Master Adventurer" +"... Wizard" +"... Master" +"... Adventurer" +"... Junior Adventurer" +"... Novice Adventurer" +"... Amateur Adventurer" +"... Beginner" +"Damit bist du ein " +" Meisterabenteurer" +" Hexenmeister" +" Meister" +" Abenteurer"] +" Jungabenteurer" +" Anfaengerabenteurer" +" Amateurabenteurer" +" Anfaenger" + + +(NOTE: SOMETHING UNLUCKY HAPPENS) +"Bad luck, huh?" +"Pech gehabt,was?" + +(NOTE: IF YOU DIE MORE THAN 2 TIMES) +"You clearly are a suicidal maniac. We don't allow psychotics in the cave, since they may harm other adventurers. Your remains will be installed in the Land of the Living Dead, where your fellow adventurers may gloat over them."d +"Du bist eindeutig ein lebensmueder Narr. Wir verbieten Psychopaten den Eintritt zur Hoehle, da sie die anderen Abenteurer gefaehrden. Deine leiblichen Ueberreste werden dem Land der lebendigen Toten uebergeben, wo deine Mitabenteurer sich an ihnen ergoetzen koennen." + +(NOTE: IF YOU DIE FEWER THAT 3 TIMES, YOU GET TRANSPORTED TO FOREST) +"As you take your last breath, you feel relieved of your burdens. The feeling passes as you find yourself before the gates of Hell, where the spirits jeer at you and deny you entry. Your senses are disturbed. The objects in the dungeon appear indistinct, bleached of color, even unreal." +"Waehrend du deinen letzten Atemzug tust, fuehlst du dich all deiner Buerden entledigt. Dieses Gefuehl verlaesst dich, als du dich vor den Toren der Hoelle befindest, wo die Geister dich anheulen und dir den Eintritt verwehren. Deine Sinne sind getruebt. Die Dinge in dem Kerker scheinen nicht wahrnehmbar, farblos, sogar unrealistisch." + +"Now, let's take a look here... Well, you probably deserve another chance. +We can't quite fix you up completely, but you can't have everything." +"Na, lass uns noch mal sehen.....Na ja, wir sollten Dir vielleicht noch eine Chance geben. +Wir koennen es fuer dich nicht alles in Ordnung bringen, aber man kann ja nicht alles haben." + + + +OPEN THE (THING) (NOTE: (ITEMS) STANDS FOR ANY PLURAL) +"The (ITEMS) are safely inside; there's no need to do that." +"Die (DINGLE) befinden sich darin in Sicherheit. Es besteht kein Grund dazu, das zu tun." +LOOK INSIDE THE (THING) +"There are lots of (ITEMS) in there." +"Da sind viele Dinge darin." + +PUT AN OBJECT IN THE BAG OF COINS +"Don't be silly. It wouldn't be a bag of coins anymore." +"Sei nicht albern. Dann waere es ja nicht mehr ein Sack voll Muenzen." + +LOOK INSIDE THING +"You can't do that." +"Das geht nicht." + +EXAMINE THING +"It looks pretty much like a (THING)." +"Es sieht eigentlich wie ein (Ding) aus." + +EAT THE GARLIC +"What the heck! You won't make friends this way, but nobody around here is too friendly anyhow. Gulp!" +"Zur Hoelle! Auf diese Weise kannst du zwar keine Freunde gewinnen, aber hier ist sowieso niemand besonders freundlich. Also schluck's" + +TAKE THE CHAIN +"The chain remains secure." +"Die Kette loest sich nicht." +RAISE THE CHAIN +"Perhaps you should do that to the basket." +"Vielleicht solltest du das mit dem Korb machen." + +EXAMINE THE CHAIN +"The chain secures a basket within the shaft." +"Die Kette haelt einen Korb innerhalb eines Schachtes." +:>? ox#{^ /c/i2q2y{!{(}}w@ X +?@Lp$g`a} NOY*+{{{{{{{{{{{{{{{{{{{{{{{+5Kbcm /0=W~ -RSa]^n"{{{{{{{{{{{{{{{{{{{{{{{"3V(D )IJUy !-HcdoT{{{{{{{{{{{{{{{{{{{{{{{TUh 3d  / E l m ! F G X + +" +# +3 +^{{{{{{{{{{{{{{{{{{{{{{{ +^ + + +) +\ + $ Z  / e   4 u - . I a w x +{{{{{{{{{{{{{{{{{{{{{{{ + +2 +W +X +c + +4 +5 +DJKVTUaYZi'xy{{{{{{{{{{{{{{{{{{{{{{{y={| 7qr,_`u STggh4v{{{{{{{{{{{{{{{{{{{{{{{vw8st9tuz/0?n@s"#,X{{{{{{{{{{{{{{{{{{{{{{{XJQRo| %01;g$%Af{{{{{{{{{{{{{{{{{{{{{{{;cd{$YZmIJTt !2V"_34{{{{{{{{{{{{{{{{{{{{{{{4"NO`'(Rf&>>kl D! !9!W!X!Y"{{{{{{{{{{{{{{{{{{{{{{{"""6"7"H"|";"<"[#L#;#<#k$$>$n$&$W$X$l%$%e%f%w{{{{{{{{{{{{{{{{{{{{{{{%w%%%%H%i&&&$&A&o&p&&1&d''O'P'a''B'C'H'c{{{{{{{{{{{{{{{{{{{{{{{'c((((x(p(q(z).)p)q)|)f*V*W*b* *N*O*Z++:+;+I{{{{{{{{{{{{{{{{{{{{{{{+I++O+P+^, +,A,B,P,7-.-/-=-"...!.X...).j///0{{{{{{{{{{{{{{{{{{{{{{{/0/B//L/M/h0%0 1e1f1x1G22202|3E3F3]404444{{{{{{{{{{{{{{{{{{{{{{{44r5[5\5j55A5B5V6366666J6u6v6{7+7g7h7u773{{{{{{{{{{{{{{{{{{{{{{{73747@7S7k7l887888899 9999M::::U: : {{{{{{{{{{{{{{{{{{{{{{{: ::o;Y;Z;_;;a;f<<<<"2>3>M>v>3>4>B>]????Q???"?;?Z{{{{{{{{{{{{{{{{{{{{{{{?Z?[?u@@<@=@]@@r@s@{AaAVAWAhB@B+B,B>C%D7D8DFD_{{{{{{{{{{{{{{{{{{{{{{{D_DtDuE E6EzE{EEEE|E}FF\FFFRGGSGTGcG G<G=GI{{{{{{{{{{{{{{{{{{{{{{{GIGxH/H0H;HHfHgHrIIRISIXI2J(J)J.JJ{J|KKkKrL1{{{{{{{{{{{{{{{{{{{{{{{L1LRL{L|LL9LlLmLwM?M +M M-N0NgNhNmOODOEOJOCPKPL{{{{{{{{{{{{{{{{{{{{{{{PLPQP>Q5Q6Q;Q*RRR%RjR;R<RJSSHSISWSSBSCSbT TC{{{{{{{{{{{{{{{{{{{{{{{TCTDTQT/U2U3UTUU7U8UlV9VVV?WWQWRWqWZX9X:X^X7{{{{{{{{{{{{{{{{{{{{{{{X7YYY9Y(ZZ Z.ZZZZ#Z~[b[c[[D\\\4\C]Q]R]g]{{{{{{{{{{{{{{{{{{{{{{{]]@]A]Q]x^^^*^P^p^q^^ ^^^$^@^f^g^s__:_;_X{{{{{{{{{{{{{{{{{{{{{{{_X_y__B_V_i_}``$`8`K`]`s` ``4`K`a`wa a +aa"ay{{{{{{{{{{{{{{{{{{{{{{{ayaWaXahbbHbIb]bb)b*b7bdccc'cGcfcgctc +ccc+{{{{{{{{{{{{{{{{{{{{{{{c+cTddd d`d)d*dHe&eee6fgggh iii3j9jHjI{{{{{{{{{{{{{{{{{{{{{{{jIjhkl_l`l}lpmompm nVo$o%o&o.ojo7o8oIovp7p8pIpu{{{{{{{{{{{{{{{{{{{{{{{pup%pWpXphqqOqPq`qqHqIqYrrXrYrir'rkrlr|s6sfsg{{{{{{{{{{{{{{{{{{{{{{{sgs}tIuPuQugv9w=w>wTwwowpxx:xxxxIyyyyYy1{{{{{{{{{{{{{{{{{{{{{{{y1y2y>yzTzUzbzzOzPzc{{k{l{~{#{L{M{R||B|C|k|5{{{{{{{{{{{{{{{{{{{{{{{|5}}} }~;~<~A~=!j)*e^_{6{{{{{{{{{{{{{{{{{{{{{{{6QRm3mhijxL&   " # 1{{{{{{{{{{{{{{{{{{{{{{{ 1 | +Q +R +` + +b +c +q m +  P   7 g   F +{{{{{{{{{{{{{{{{{{{{{{{#I~ !6Y"#Y9:QX{{{{{{{{{{{{{{{{{{{{{{{XYdFGU[!e=>[3"#:]oMN{{{{{{{{{{{{{{{{{{{{{{{NOs&':3RSfANO{'YZs-.Ao{{{{{{{{{{{{{{{{{{{{{{{o#$S%'Mqr ;yzlFGWt-J{{{{{{{{{{{{{{{{{{{{{{{Jqr  & O P a r   6 b!! !0!X! ! !!N"""{{{{{{{{{{{{{{{{{{{{{{{"#$$$$ %%%*%m%2%3%@%a&&&(&K&n&o&|&&4&5{{{{{{{{{{{{{{{{{{{{{{{&5&B&T&h&i&v''Y'Z'h''F'k($(b(c(q((E(F(U(i)) {{{{{{{{{{{{{{{{{{{{{{{) );)<)O)e){))7)8)F)^)x)y* *T*5*:*T*w*x++N+x+y{{{{{{{{{{{{{{{{{{{{{{{+y+ +W,,,-,],,<,=,K,j----5-T-U-n-1-y-z..[.,{{{{{{{{{{{{{{{{{{{{{{{.,.^/ /^/_/u/:000(0E0e0{0"0#040S0o0p1 1#18191I{{{{{{{{{{{{{{{{{{{{{{{1I1d1z1{1 1"191:1Q1z22>2]2^2w2v3"3#383I3J3l4x53{{{{{{{{{{{{{{{{{{{{{{{53545S55f5g5t668696F6l6(6)666G6b6c6m677717j{{{{{{{{{{{{{{{{{{{{{{{7j7-7.7B7u8*8+8h8 8;8<8I99\9]9%9b:&:':9:z:;:<:A{{{{{{{{{{{{{{{{{{{{{{{:A:d;;;;];2;3;Z;i;{;|< +<,9>:>O>~>6>7>K??E?F?V?m@@@+@fA {{{{{{{{{{{{{{{{{{{{{{{A A!A-AIAA ABLCGCHCTCnCCCDD:D;DHDxE9E:EGEx{{{{{{{{{{{{{{{{{{{{{{{ExE@EAEBEOFF8F9FFF[FzF{FF9FrFsG +G5G]G"G#G;GmH#{{{{{{{{{{{{{{{{{{{{{{{H#H$H>HaHHH:HsI!I"IFImIIIIlJDJEJNJJ]J^JkK{{{{{{{{{{{{{{{{{{{{{{{KK0K1K:KUKoKpKK5LLLLLzL{MMGM-MCM{N:N;NJN={{{{{{{{{{{{{{{{{{{{{{{N=OJOKOYOLP3PCPP^P_QQCQ#Q$Q3QZR R RRLRRRRS{{{{{{{{{{{{{{{{{{{{{{{RSSSS$SFSoSpSS&SJSKSvT&TZT[ThTTQTRTaUU<U=UH{{{{{{{{{{{{{{{{{{{{{{{UHUbUUUU.UKULU{V'VXVYVcVV0V1VIVfWWWW8W^W_{{{{{{{{{{{{{{{{{{{{{{{W_WzW*W^W_WnX +X:X;XX#X$X)XOX~XYY>YoYpYY2Y]Y^{{{{{{{{{{{{{{{{{{{{{{{Y^YcZ Z9Z:ZGZiZZZ$ZT[[[#[J[|[}[["[:[;[D[T[c{{{{{{{{{{{{{{{{{{{{{{{[c[d[i\/\~\\?]]]V^_D_E_F_]_{` `!`5`O`l`m`z`{{{{{{{{{{{{{{{{{{{{{{{``A`B`M`ga +a aa<agahawaaAaBaOawb%b&b4bybPbQb]{{{{{{{{{{{{{{{{{{{{{{{b]c cFcGc\c cBcCcMd"dddd*dFdGdfeeKeLeZee3e4{{{{{{{{{{{{{{{{{{{{{{{e4e>eaffffBf~ff f5fdfefsgBggg,gRgtguhhGh +{{{{{{{{{{{{{{{{{{{{{{{h +h hhJhlhmh~i.ikili}iNj3j4jSjj@jAjJjgj}j~kk{{{{{{{{{{{{{{{{{{{{{{{kk*kAkWkmkk1kLkek}k~l +l&lOlsll2l@l[mmJmqmm{{{{{{{{{{{{{{{{{{{{{{{mmm3m?mLminn6n7n8npn1n2nSnknxooo.oFo_onoo{{{{{{{{{{{{{{{{{{{{{{{oo.o;oLo`oyppp p!pCpTpgphpqtrrrIsiu;u<uuM{{{{{{{{{{{{{{{{{{{{{{{uMv)vvv v +vAv~wXwpww3w4wVxxVxWxix~xxxxFxp{{{{{{{{{{{{{{{{{{{{{{{xpxqyygyoypyzz9zIzuz'z(z:zi{!{{{{{{{{{{{{{{{^z!{!a +Kdl$e)W.h59o>D6IP5V\g` dl rgybj& +US$m(-1w6B;BARFmKzQSVZ}_MdZi4mprxoz!  +   +@@@@@@@ @!@"@#@$@%@&@'@(@)@*@+@,@-@./{(w+"T +^ +yvX4"%w'c+I/0473: =y?ZD_GIL1PLTCX7]_Xayc+jIpusgy1|56 1XNoJ"&5) +y.,1I537j:A=6A ExH#KN=RSUHW_Y^[c`b]e4h +kmouMxp{!xyz{|}~  +   + !"#$%&'()*+,-./0123456789:;<=>? +ef \ No newline at end of file diff --git a/script.deaths b/script.deaths new file mode 100644 index 0000000..aba9444 --- /dev/null +++ b/script.deaths @@ -0,0 +1,339 @@ + +*** BELOW ARE THE SEVERAL WAYS TO DIE IN ZORK I *** + +>BRUSH TEETH WITH GUNK +"Well, you seem to have been brushing your teeth with some sort of glue. As a result, your mouth gets glued together (with your nose) and you die of respiratory failure." +"Na ja, du scheinst deine Zaehne mit irgendwelchem Klebstoff geputzt zu haben. Die natuerliche Folge davon ist ein zusammengeklebter Mund(mit der Nase), und du stirbst an Atemversagen." + +>BURN LEAVES +"The leaves burn, and so do you." +"Die Blaetter stehen in Flammen, und du mit." + +>KILL THIEF WITH KNIFE +"As the knife approaches its victim, your mind is submerged by an +overmastering will. Slowly, your hand turns, until the rusty blade +is an inch from your neck. The knife seems to sing as it savagely +slits your throat."strange phrase in English???? +"Als das Messer sich seinem Opfer naehert, wird dein Gehirn von einem Willen ueberwaeltigt, den du nicht meisterst. Langsam dreht sich deine Hand bis die rostige Schneide 2 cm von deinem Hals entfernt ist. Das Messer scheint zu singen, als es auf brutalste Weise deinen Hals durchschneidet." + +>JUMP OF CLIFF +"It's a shame the leap you just attempted has done you in." +"Wie tragisch! Der Sprung, den du gerade gewagt hast, bringt dich um." + +(NOTE: IN THE BOAT) +"You are lifted up by the rising river! You try to swim, but the +currents are too strong. You come closer, closer to the awesome +structure of Flood Control Dam #3. The dam beckons to you. +The roar of the water nearly deafens you, but you remain conscious +as you tumble over the dam toward your certain doom among the rocks at its base." +"Du wirst von dem steigenden Fluss in die Hoehe gehoben! Du versuchst, zu schwimmen, aber die Stroemung ist zu stark. Du geraetst naeher und naeher an die ueberwaeltigende Masse des Hochwasserschutzdammes #3. Der Damm winkt dir zu. Das Getoese des Wassers macht dich fast taub, aber du bleibst bei Bewusstsein, als du ueber den Damm stuerzt und deinem sicheren Tode zwischen den Steinen auf seinem Grund entgegen siehst. + + +"Unfortuneately, you have drowned yourself." +"Leider hast du dich ertraenkt." + +"The rising water carries the boat over the dam, down the river, and over the falls. Tsk, tsk." +"Das steigende Wasser traegt das Boot ueber den Damm, flussabwaerts und ueber die Faelle. Sowas Dummes." +>LOOK AT CYCLOPS +"The cyclops, tired of all of your games and trickery, grabs you firmly. +As he licks his chops, he says \"Mmm. Just like Mom used to make 'em.\" +"Der Zyklop, der deiner listigen Spielchen ueberdruessig ist, zerquetscht dich zwischen seinen Fingern. Waehrend ihm das Wasser im Mund zusammenlaeuft, sagt er:\"Das schmeckt wie bei Muttern. Mmmh."\" +It's nice to be appreciated." +"Es ist angenehm, geschaetzt zu werden." + +>BURN THE BODIES (IN HADES) +"The voice of the guardian of the dungeon booms out from the darkness, \"Your disrespect costs you your life!\" and places your head on a sharp pole." +"Die Stimme des Kerkermeisters droehnt aus dem Dunkel\"Deine Nichtachtung wird dir dein Leben kosten\", und er steckt deinen Kopf auf einen spitzen Stock." + +>BURN THE BLACK BOOK +"A booming voice says \"Wrong, cretin!\" and you notice that you have +turned into a pile of dust. How, I can't imagine." +"Eine donnernde Stimme sagt:\"Falsch gedacht, Schwachkopf!"\ und du bemerkst, dass du dich in eine Staubmasse verwandelt hast. Wie, kann ich mir einfach nicht vorstellen." + + +>WALK NORTH (INTO THE GAS ROOM) + +** BOOOOOOOOOOOM ** + + +(NOTE: THE RAINBOW GIVES WAY) +"The structural integrity of the rainbow is severely compromised, leaving you hanging in midair, supported only by water vapor. Bye." +"Die Tragfaehigkeit des Regenbogens laesst sehr zu wuenschen uebrig, was dich schwebend in der Luft haengen laesst. Du bist nur von Wasserdampf gestuetzt. Auf Wiedersehen." + +>PUT MYSELF IN RIVER +"You splash around for a while, fighting the current, then you drown." +"Du planschst fuer eine Weile wild im Wasser rum, um dich gegen die Stroemung zu halten, dann ertrinkst du." + +... +"Unfortunately, the magic boat doesn't provide protection from +the rocks and boulders one meets at the bottom of waterfalls. +Including this one." +"Leider gewaehrt das Zauberboot keinen Schutz gegen Steine und Felsbloecke, die man unten am Wasserfall trifft. Auch gegen diesen nicht." + +THE BOAT DEFLATES... +"Another pathetic sputter, this time from you, heralds your drowning." +"Ein weiteres armseliges Ausblasen, diesmal kommt es aus dir +bestaetigt dein Ertrinken." + +THE BOAT DEFLATES... +"In other words, fighting the fierce currents of the Frigid River. You +manage to hold your own for a bit, but then you are carried over a +waterfall and into some nasty rocks. Ouch!" +"Mit anderen Worten, gegen die toedlichen Stroemungen des Gletsch kaempfen. Du haelst dich eine Weile ueber Wasser, aber dann wirst du ueber einen Wasserfall in gefaehrliche Felsen gezogen. Auuuuu!" + +(NOTE: IF YOU DIG TOO DEEP) +"The hole collapses, smothering you." +"Das Loch bricht zusammen, du erstickst." + +DITTO +"That was just a bit too far down." +"Das war wohl ein wenig zu weit unten." + + +FIGHTING A VILLAIN... +"It appears that that last blow was too much for you. I'm afraid you +are dead." +"Es scheint, als ob der letzte Hieb dir den Rest gegeben hat. Es tut mir leid, aber du bist tot." + +DITTO +"Well, you really did it that time. Is suicide painless?" +"Na ja, diesmal hast du es endlich geschafft. Ist Selbstmord schmerzlos?" + + +>THROW THING AT ME +"The THING hits you squarely in the head. Normally, this wouldn't do much damage, but by incredible mischance, you fall over backwards trying to duck, and break your neck, justice being swift and merciful in the Great Underground Empire." copy from text. + + +>WALK NORTH +"Oh, no! You have walked into a den of hungry grues and it's dinner time!" copy + +DITTO +"Oh, no! You have walked into the slavering fangs of a lurking grue!"copy + +>ATTACK MYSELF +"If you insist.... Poof, you're dead!" +"Wenn du darauf bestehst.........Bum! Du bist tot." + + +*** BELOW ARE SOME MORE MISCELLANEOUS TEXT STRINGS *** + +>TAKE THE SWORD AND THE LAMP +"Those things aren't here!" +"Diese Dinge sind nicht hier!" + +>LOOK AT THE THING +"You can't see that here!" (RENATA: does the word 'that' depend on gender?) no +"Das kannst du hier nicht sehen!" +>PERSON, TAKE THE SWORD +"The PERSON seems confused. ""I don't see that here!"" +"Der PERSON scheint verwirrt""Ich sehe das hier nicht!"" + +>CLIMB STAIRS +"You should say whether you want to go up or down." +"Du musst sagen, ob du nach oben oder unten gehen willst." + +>SAILOR, GO AWAY +"You can't talk to the sailor that way." +"So kannst du mit dem Seemann nicht sprechen." + +>LOOK AT SAILOR +"There is no sailor to be seen." +"Hier ist kein Seemann zu sehen." + +>HELLO, SAILOR +"You seem to be repeating yourself." +"Du wiederholst dich." + +>HELLO, SAILOR +"I think that phrase is getting a bit worn out." +"Dieser Satz wird langsam langweilig." + +>HELLO, SAILOR +"Nothing happens here." +"Hier passiert garnichts." + +>DIG IN GROUND +"The ground is too hard for digging here." +"Hier ist der Boden zu hart zum Graben." + +>LOOK AT GRUE +"There is no grue here, but I'm sure there is at least one lurking in the darkness nearby. It would be wise keep an eye on your light source!" +"Hier ist kein Greuel, aber ich bin sicher, das mindestens eines hier in der Naehe im Dunkeln auf der Lauer liegt. Es waere schon klug, +auf die Lichtquelle zu achten." + +>LISTEN TO GRUE +"It makes no sound but is always lurking in the darkness nearby." +"Es gibt keinen Ton von sich, aber es liegt immer in der Naehe im Dunkeln." + +>TALK TO MYSELF +"Talking to yourself is said to be a sign of impending mental collapse."copy + +>WAKE MYSELF UP +"You're already wide awake!" +"Du bist schon hellwach!" + +>EAT MYSELF +"Auto-cannibalism is not the answer." +"Selbst-Kanibalismus ist nicht die Loesung." + +>KILL MYSELF +"Suicide is not the answer." +"Selbstmord ist nicht die Loesung." + +>THROW MYSELF AT THE TROLL +"Why don't you just walk like normal people?" +"Warum laeufst du nicht wie normale Menschen?" + +>TAKE ME +"How romantic!" +"Ach, wie romantisch!" + +>LOOK AT MYSELF +"Your image in the mirror looks tired." +"Dein Spiegelbild sieht muede aus." + +>LOOK AT MYSELF +"That's difficult unless your eyes are prehensile." +"Das ist schwierig, ausser wenn deine Augen rausnehmbar sind." + +>WHAT IS A ZORKMID +"The zorkmid is the unit of currency of the Great Underground Empire." +"Zorkknete ist die Waehrung des Grossen Unterweltreiches." + +>FIND ZORKMID +"The best way to find zorkmids is to go out and look for them." +"Man findet Zorkknete am besten, indem man rausgeht, und sie sucht." + +*** BELOW ARE RESPONSES GIVEN WHEN YOU INPUT IS UNCLEAR *** +(GENERAL NOTES: IN THE GAME, IF YOU MISSPELL A WORD, THE GAME WILL TELL YOU +IT'S DOESN'T KNOW THE WORD. BUT THEN YOU MAY TYPE >OOPS "WORD", SPELLING IT CORRECTLY, SO YOU WON'T HAVE TO RETYPE THE WHOLE INPUT.) + + +(NOTE: IF YOU TYPE NOTHING, AND JUST HIT RETURN) +"I beg your pardon?" +"Bitte ?" + +(NOTE: IF YOU TYPE A PERIOD AND THEN A RETURN WITH NO WORDS) +"I can't help your clumsiness." +"Das war tolpatschig." + +(NOTE: IF YOU TYPE >OOPS SOMETHING AND THE SOMETHING WAS IN A QUOTE) +"Sorry, you can't correct mistakes in quoted text." +"Es tut mir leid, aber Fehler im vorgegebenen Text lassen sich nicht korrigieren." + +(NOTE: IF YOU TYPE ">OOPS WORD1 WORD2") +"Warning: only the first word after OOPS is used." +"Warnung: nur das erste Wort nach HOPPLA kann gelten." + +(NOTE: IF YOU TYPE "OOPS" AFTER YOU DIDN'T MISSPELL SOMETHING) +"There was no word to replace!" +"Hier gab es kein Wort zu ersetzen!" + +(NOTE: IF YOU TYPE "OOPS" AFTER AN INCOMPLETE INPUT GAME) +"It's difficult to repeat fragments." +"Gespraechsfetzen wiederholen ist schwierig." + +(NOTE: IF YOU TYPE "AGAIN" AFTER A BAD SENTENCE INPUT) +"That would just repeat a mistake." +"Das wuerde den Fehler nur wiederholen." + + +"That sentence was not understood." +"Dieser Satz ist nicht verstanden worden." + + +"There were too many nouns in that sentence." +"Der Satz hatte zu viele Substantive ." + + +"Please consult your manual for the correct way to talk to other people or creatures." +"Bitte lies die Anleitung zum Spiel, um die richtige Anrede zu finden, die man fuer andere Leute oder Biester benutzt. +>LOOK AT THING +"The word is not in the story's vocabulary of understanding." +"Dieses Wort kann nicht von dem Spielvokabular verstanden werden." + +>LOOK AT THE DIG (NOTE: DIG IS RECOGNIZED ONLY AS A VERB) +"You used the word "dig" in a way that I don't understand." +"Du hast das Wort "graben" so gebraucht, dass ich es nicht verstehen kann." + +>DOG THE TROLL +"There was no verb in that sentence!" +"In diesem Satz fehlt das Verb!" + + +"That sentence isn't recognized by the story." +"Das Spiel erkennt diesen Satz nicht." + +>WHO IS TROLL +"That question can't be answered." +"Diese Frage kann nicht beantwortet werden." + +>TROLL, LOOK AT THE BUTTON +"I don't understand! What are you referring to?" +"Ich verstehe das nicht! Worauf beziehst du dich?" + +>LOOK AT THE RED +"There seems to be a noun missing in that sentence!" +"In diesem Satz scheint ein Substantiv zu fehlen!" + +"It's too dark to see!" +"Es ist zu dunkel, um das zu sehen." + +>DROP SWORD +"You don't have that!" +"Das hast du nicht!" + +"You don't have the SWORD." +"Du hast den SCHWERT nicht." + +>READ THE LEAFLET +(taking the leaflet first) +(Das Blatt erst nehmen) + +The leaflet says... ect. +"Auf dem Blatt steht.......etc. " We might have to talk about the syntax here??? Jeff. + + +>LOOK AT THE RED +It's not clear what you're referring to." +"Es ist nicht klar, worauf du dich beziehst." + + +>LOOK AT THE SWORD AND LAMP +You can't use multiple direct objects with "look." +"Man kann mehrere Akkusative nicht mit "ansehen" gebrauchen." +I need more feedback on that, R. Yes, Hildegunde also! + + +>HIT THE TROLL WITH SWORD AND KNIFE +You can't use multiple indirect objects with "hit." +need mor feedback. + +>LOOK +"It's too dark to see." +"Es ist zu dunkel, um etwas zu sehen." + +>TAKE THE SWORD AND LAMP +Sword: Taken. +The other object that you mentioned is not here. +"Schwert: genommen." +Das andere Ding, von dem du sprichst, ist nicht hier." + +>TAKE ALL +"There's nothing here you can take." +"Es gibt hier nichts, das man wegnehmen kann." +:>?*****************************( uUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT0**************>M',x}[_^c11 }}}}}w@ J,-aby$^_l<=TYLq{wsssssoosssssssssskqr=ZUj    > _ ` +@ +) +:  K{{{{{{{{{{ws{{{{{ww{{w K  2 [ \ x + ++ +, +A:fgi  + >D{wwwwsswwwwswwwwwwwwoDqrN;<@=R\]r9v(o2^%{wwwswwwww{wwwwwwwwww{%&Bh=efg}BM/06p:;<ON{{{{{{{{{{{{{w{{{w{{{sNOP\,-3}~ 4hij!"?[z{^{{{w{{w{{{{{{{{{{{{{w{{P  +LBqr#EFUz!Ryz{{{{{{{{{{{{{{{{{{{{{{{z !<=Lw !/>Ffgw9cdt+{{{{{{{{{ww{{{{w{{w{{{{+,8^  6 Z [ v $ S T ] m!!!!=!a!b!r!&{{{{{{{{{{{{{{{{{{{{{{{!&!e!f!y"@"{"|" +"J###L#$$$$P$e$o$p$-$M$e{{{w{{{{{{{ws{{{{{{{{{$e$f%+%_%2%3%[&&E&F&&%&J&K''-'['\''7'`'a'b{w{w{{{{{{{{{{{{{{{s{{'b((1(2(3(a( ( +( (b)Z)i)')j)k*%*a*-*.*=*c++{{{{{w{{ss{{{{{{s{{{{{+++5+\+]+k++;+<+W,,;,<,M,,5,6,N,s,t---,--{{{{{{{{{{{{{{w{{{{{{{{---I-f-g-y--,---F....0.Z.. . +.&.Y//N/O/P{{{{{{{{w{{{{{{{{{ss{{/P/t/(/;/</B/Z0000)0Z0o0&0'010V1{{{{{{{{{{{{{{{{{^01j +iw!J'1,0@@@ 1 cq KD%Nz+!&$e'b+--/P1defghijklmnopqr +ef \ No newline at end of file diff --git a/script.defaults b/script.defaults new file mode 100644 index 0000000..29a4bac --- /dev/null +++ b/script.defaults @@ -0,0 +1,928 @@ + +>wake up the troll-object (Note: after it's unconscious) +The troll-object is rudely awakened. + + +>wake up the troll-object +The troll-object is already awake, or haven't you noticed. + + +>wake up the mailbox-object +The mailbox-object isn't sleeping! + + +>reply +Nobody seems to be awaiting your answer. + + +>attack the mailbox-object +Only a deranged individual would attack an mailbox-object. + + +>attack the troll-object with my hands +Trying to attack a troll-object with your bare hands is suicidal. + + +>attack the troll-object with the knife +You arn't even holding the knife-object. + +>attack the troll-object with sandwich +Trying to attack a troll-object with a sandwich is suicidal. +"Einen Troll mit einem belegten Brot anzugreifen ist Selbstmord." +>get in the boat-object +The boat-object must be on the ground to be boarded. +"Der Boot muss da sein, wenn man einsteigen will." + +>get in the boat-object +You are alread in the boat-object. +"Du bist schon in dem Boot" + +>get in the mailbox-object +You have a theory on how to board a mailbox-object, perhaps? +"Du hast also eine Idee, wie man in einen Briefkasten einsteigt?" +>get in the boat-object +You are now in the boat-object. +"Du bist jetzt in dem Boot." + +>brush the chalice +If you wish, but only heaven knows why. +"Wenn du willst, aber um Himmels Willen, warum?" + +>burn the log-object +You didn't say with what! +"Du hast nicht gesagt mit was!" + +>burn the object with the fork-object +With the fork-object?!? +"Mit dem Gabel etwa?!?" + +>burn the boat-object +The boat-object catches fire. Unfortunately, you were in it at the time. +[You have died.] +"Der Boot faengt Feuer. Dummerweise warst du gerade darin. (Du bist darin umgekommen.)" + +>burn the log-object +The boat-object catches fire. Unfortunately, your were holding it at the time. +"Der Boot faengt Feuer. Dummerweise hast du ihn gerade festgehalten." + +>burn the leaflet-object +The leaflet object catches fire and is consumed. +"Der Zettel faengt Feuer und verbrennt ." + +>burn the fork-object +You can't burn the fork-object. +"Du kannst der Gabel nicht verbrennen." + +>climb onto the mailbox-object +You can't climb onto the mailbox-object. +"Du kannst nicht auf den Briefkasten steigen." + +>climb up the mailbox-object +The mailbox-object doesn't lead upward. +"Der Briefkasten fuehrt nicht nach oben." + +>climb down the mailbox-object +The mailbox-object doesn't lead downward. +"Der Briefkasten fuehrt nicht nach unten." + +>climb up the stairs +The stairs don't lead upward. +"Die Treppe fuehrt nicht nach oben." + +>climb down the stairs +The stairs don't lead downward. +"Die Treppe fuehrt nicht nach unten. + +>climb +You can't go that way. +"In diese Richtung kannst du nicht gehen." + +>climb the walls +Climbing the walls is to no avial. +"Die Waende raufzuklettern ist sinnlos." + +>close the leaflet-object +It's utterly impossible to close a leaflet-object. +"Es ist ist einfach unmoeglich einen Zettel zu schliessen." + +>close the mailbox-object +Closed. +"Geschlossen." + +>close the door-object +The door-object is now closed. +"Der Tuer ist jetzt geschlossen." + +>close the door-object +the door object is already closed. +"DerTuer ist schon geschlossen." + +>close the log-object (der Stamm in German) +You cannot close that. +"Du kannst das da nicht schliessen.": + +>command the troll-object +The troll-object pays no attention. +DER-NOM-CAP reagiert nicht." +>command the mailbox-object +You cannont talk to that! +"Damit kannst man nicht sprechen. + +>count my blessings [Renata: The player is blessed if he prays at the alter.] >"danke meinem Schoepfer. +Well, for one, you are playing Zork... +"Vergiss nicht, du spielst Zork." + +>count the mailbox-object +You have lost your mind. +"Du bist verrueckt." + +>cut the boat-object with the knife +Not a bright idea, since you're in it. Your skillfull boatsmanship slices +boat into inumerable slivers which blow away. +"Nicht die kluegste Idee, denn du bist drin. Deine raffinierte Navigation zermalmt den Boot in unzaehlbare Splitter, die wegfliegen." + +>cut the log with the chalice-object +The "cutting edge" of the chalice is hardly adequate. +"* must find computer lingo term:attempt by Renata and Hildegunde: +"Die scharfen Kanten des Kelches haben keinen Schneid." +>cut the mailbox-object +Strange concept, cutting the mailbox-object +"Eine eigenartige Idee, den Briefkasten zu zerschneiden." + +>deflate the mailbox-object +Come on, now! +"So ein Quatsch!" + +>dig in the ground with the shovel +There's no reason to be diggin here +"Hier gibt es wahrlich keinen Grund zum Graben." + +>dig in ground with the knife-object +Digging with the knife-object is slow and tedious. +"Mit dem Messer zu graben ist langsam und muehsam." +>dig in ground with sandwich-object +Digging with the sandwich-object is silly. +"Mit dem belegten Brot zu graben ist bloedsinnig." + +>get out of the mailbox-object +You're not in that! +"Da bist du doch gar nicht drin!" + +>get out of the boat-object +You are on your own feet again. +"Du stehst wieder auf eigenen Fuessen." + +>get out of the boat-object [Renata: Eg, when it's on the river] +You realize that getting ou here would be fatal. +Du begreifst, dass es deinen Tod bedeuten wuerde, wenn du hier ausstiegest." + +>drink from mailbox-object +How peculiar! +"Wie eigenartig!" + +>drop the knife-object +Dropped. +"Fallen gelassen." +>eat the sandwich-object +You're not holding that. +"Das hast du doch gar nicht in der Hand." + +>drink the sandwich-object +How can you drink that? +"Wie in aller Welt willst du den denn trinken?" + +>drink the water-object +You don't have any to drink. anything? +"Du hast doch garnichts zu trinken." +>drink the water-object +You have to be holding the bottle-object first. +"Erst musst du doch den Flasche in der Hand halten." + +>drink the water-object +You have to open the bottle-object first. +"Erst musst du doch den Flasche oeffnen." + +[Note: if the theif steals your lighted lamp.] +You are left in the dark. +"Du tappst im Dunkeln." + +>look at boat-object +There's nothing speacial about the boat-object. +"Da ist nichts Besonderes an dem Boot." + +>exorcise the mailbox-object +What a bizarre concept! +"Was fuer eine Schnappsidee!" + +>fill the chalice-object +There's nothing to fill it with. [Note: ie, no water] +"Da ist nichts, mit dem man ihn fuellen koennte." + +>find me +You're around here somewhere... + + +>find air-object +You can find that yourself. + + +>find the knife-object +You have it. + + +>find the mailbox +It's right here. +"Er ist hier." + +>find the ax-object +The troll-object has it. +DER-NOM-CAP hat ihn." + +>find the sandwich-object +It's on the table-object. +"Er ist auf dem Tisch." +>find the thief +Beats me. +"Da bist du bei mir an der falschen Adresse." + +>follow the mailbox +You're nuts! +"Du bist narrisch!" +>FROBOZZ +The FROBOZZ Corporation created, owns, and operates this dungeon. +?????????????????????? +Die FROBOZZ FIRMA gruendete, besitzt und leitet diesen Kerker." +>give the sandwich-object to the troll-object +That's easy for you to say since you don't even have the sandwich object. +"Das kannst du leicht sagen, denn du besitzt ja nicht einmal den belegten Brot." + +>give the leaflet-object to the mailbox-object +You can't give a leaflet-object to a mailbox-object! +"Du kannst einem Briefkasten doch keinen Zettel geben!" + +>give the stone-object to the troll-object +The troll-object politely refuses the stone object. + + +>troll-object, hello +The troll-object bows his head to you in greeting. + +>hello, mailbox +It's a well known fact that only schizophrenics say "Hello" to a +mailbox-object. + + +>inflate the mailbox-object +How can you inflate that? + +>kiss troll-object +You'd sooner kiss a pig. + + +>knock on the door +Nobody's home. + + +>knock on the mailbox-object +Why knock on a mailbox-object + + +>turn off the lamp-object +The lamp-object is already off. + + +>turn off the lamp-object +Okay, the lamp-object is now off. +"O.k. der Lampe ist jetzt aus." + +It is now pitch black. + + +>turn off mailbox-object +You can't turn that off. + + +>turn on lamp-object +It is already on. + + +>light the leaflet-object [Note: leaflet-object is burnable object] +If you wish to burn the leaflet-object, you should say so. + + +>turn on the mailbox-object +You can't turn that on. + + +>launch the boat +You can't launch that by saying "launch. + +>launch the mailbox +That's pretty weird. + + +>lean on the tree-object +Getting tired? + + +>jump over the troll-object +The troll-object is too big to jump over. + + +>jump over the mailbox +That would be a good trick. + + +>jump down [Note: off the cliff] +That was not a very safe place to try jumping. + + +>jump down [Note: you are up the tree] +In a feat of unaccustomed daring, you manage to land on your feet without killing yourself. + + + +[Note: these are printed right before you jump and die from the fall] +"You should have looked before you leaped." +"In the movies, your life would be passing before your eyes." +"Geronimo..." ???????? + + + +>listen to the mailbox-object +At the moment, the mailbox-object makes no sound. + + + +>lock the mailbox-object +It doesn't seem to work. + + +>look behind the mailbox-object +There is nothing behind the mailbox-object. + + +>look inside the door-object +"The door-object is open, but you can't tell what's +beyond it. + + + +>look inside the door-object +The door-object is closed. + + +>look inside the troll +There is nothing special to be seen. + + +>look on the table-object +There is nothing on the table-object. + + +>look inside the mailbox-object +The mailbox object is empty. + + +>look inside the mailbox-object +The mailbox object is closed. + + +>look inside the log-object +You can look inside a log-object. + + +>look on the sandwich-object +Look on a sandwich-object??? + +>look under the mailbox-object +There is nothing but dust there. + + +>make a coin-object +You can't do that. + + +>melt the gold-object +It's not clear that gold-object can be melted. + + +>move the sandwich-object [Note: you are holding the object] +You aren't an accomplished enough juggler. + +>move the leaflet-object +Moving leaflet-object reveals nothing. + + +>move the mailbox-object +You can't move the mailbox-object. + + +>break the mailbox-object +Trying to destroy the mailbox-object with your bare hands is futile. + + +>break the mailbox-object with the knife-object +Trying to destroy the mailbox-object with the knife-object hands is futile. + + +>break the mailbox-object +Nice try. + + +>odysseus [Note: getting rid of the cyclops] +The cyclops, hearing the name of his father's deadly nemesis, flees the roomby knocking down the wall on the east of the room + + +>oddysseus [Note: if the cyclops isn't here] +Wasn't he a sailor? + + +>oil the mailbox-object +You probably put spinach in your gas tank, too. + + +>open the mailbox-object +It is already open. + + +>open the mailbox-object +Opened. + + +>open the mailbox-object +The mailbox-object opens. + + +>open the chalice-object +You cannot seem to open the chalice-object. + + +>pick the mailbox-object (Note: You CAN try to 'pick a lock' in the game.) +You can't pick that. + + +>play the troll-object +You become so engrossed in the role of the troll-object that you kill yourself, just as he might have done! + +>play the mailbox-object +That's silly. + + +>plug the mailbox-object (Note: You can try to PLUG A LEAK in the game.) +This has no effect. + + +>pour water on the torch-object +The torch-object is extinquished. + + +>pour water on the rock-object +The water pours over the rock-object, to the floor, and evaporates. + + +>pour the rainbow-object on the torch. +You can't pour that. + + +>pray (Note: If you pray at the alter, you're let out of the dungeon.) +If you pray enough, your prayers may be answered. + + +>push the rock to the machine-object. +You can't push things to that. + + +>put the rock-object in the ground. +You can't do that. + + +>put the leaflet in the mailbox-object +The mailbox-object isn't open. + + +>put the leaflet-object into the leaflet-object +How can you do that? + + +>put the leaflet-object into the mailbox-object +The leaflet-object is already in the mailbox-object. + + +>put the leaflet-object into the mailbox-object +There's no room. [Note: In other words, the mailbox is already full.] + + +>put the leaflet-object into the mailbox-object +You don't have the leaflet-object. + + +>put the leaflet-object into the mailbox-object +Done. + + +>put the chalice-object behind the table +That hiding place is too obvious. + + +>put the chalice on the rock-object +There's no good surface on the rock-object. + +>put the chalice under the rock +You can't do that. + +>read the leaflet +It is impossible to read in the dark. + + +>read the leaflet through the chalice-object +How does one look through a chalice-object. + + +>read the rock-object +How does one read the rock-object? + +>repent (Note: Usually input in Hades.) +It could very well be too late! + + +>reply +It is hardly likely that troll-object is interested. + + +>ring the chalice-object (Note: you CAN ring the bell.) +How, exactly, can you ring that? + + +>say "hello" [Note: If a person is in the room.] + +To speak to characters, type: +PERSON, HELLO or +PERSON, DROP THE AX (etc.) + + +>say "hello" +Talking to yourself is a sign of impending mental collapse. + + +>search the room +You find nothing unusual. + + +>send for the troll-object +Why would you send for the troll-object? + + +>send for the chalice +That doesn't make sense. + + +>shake the troll-object +This seems to have no effect. + + +>shake the mailbox +You can't take it; thus, you can't shake it. + + +>shake the bag-object +The content of the bag-object spill out and disappears. + + +>shake the bag-object +The content of the bag-object spill to the ground. +"Der Inhalt des Tuete faellt + +>shake the leaflet +Shaken. + +>shake the box-object (Note: the box is closed) +It sounds like there's something inside the box-object. + + +>shake the box-object (Note: it's empty) +The box-object sounds empty. +"Der Schachtel hoert sich leer an." + +>jump up +"Very good. Now you can go to the second grade." (Note: 4 possible responses) +"Are you enjoying yourself?" +"Wheeeeeeeeee!!!!!" +"Do you expect me to applaud?" + + +>smell the mailbox-object +It smells just like a mailbox-object. + + +>spin the mailbox-object +You can't spin that! + + +>squeeze the troll-object +The troll-object does not understand this. + + +>squeeze the mailbox-object +How singularly useless. + + +>stab the troll-object (Note: without a knife) +No doubt you propose to stab the troll-object with your pinky? + + +>stand up +You are already standing, I think. + +>stay +You don't move a muscle. + + +>strike the troll-object +Since you aren't versed in hand-to-hand combat, you'd better attack the troll-object with a weapon. + + +>swim +Swimming isn't usually allowed in the dungeon. + + +>Swimm (Note: with no water around.) +Go jump in a lake! + + +>swing the sword-object +Whoosh! + + +>take the shirt-object +You are already wearing the shirt-object. + + +>take the leaflet +You already have that! + + +>take the leaflet (Note: it's in the close mailbox) +You can't reach something that's inside a closed container. + + +>take the leaflet from the mailbox +The leaflet-object isn't in the mailbox-object. + + +>take the shirt +You are now wearing the shirt-object. + +>take the leaflet-object. +Taken. +"Genommen." + +>talk to troll +The troll-object pauses for a moment, perhaps thinking that you should reread the manual. + + +>talk to mailbox +You can't talk to the mailbox-object. + + +>get into the mailbox +You hit your head against the mailbox-object as you attempt this feat. + + +>get into the table-object +You can't do that! + + +>get into the chalice-object (Note: you are holding it.) +That would involve quite a contortion. + + +>throw the knife-object at me +A terrific throw! The knife-object hits you squarely in the head. Normally, this wouldn't do much damage, but by incredible mischance, you fall over backwards trying to duck, and break your neck, justice being swift and merciful in the Great Underground Empire. +"Ein toller Wurf! Den Messer trifft dich genau in den Kopf. Normalerweise wuerde daraus nicht viel Schaden entstehen, aber du hast das unsagbare Pech, hintenueberzufallen, als du dich ducken willst und brichst dir das Genick. Die Gerechtigkeit kommt schnell und gnadenreich im Grossen Land der Unterwelt." ???? + +>throw the knife-object at the troll-object +The troll-object ducks as knife-object flies by and crashes to the ground. + + +>throw the knife-object. +Thrown. + + +>throw the knife-object off the table (Note: rather that off the cliff, ect) +You can't throw anything off of that! +"Von dort kann man nichts runterwerfen!" + +>tie the rope to myself +You can't tie anything to yourself. +"Du kannst nichts an dir selber festbinden." + +>tie the rope-object to the rock +You can't tie the rope-object to that. +"Daran kannst du das Seil nicht festbinden." + +>tie up the troll-object with the rubber-boat +You could certainly never tie the troll with that! +"Den Troll kannst du damit bestimmt nicht fesseln!" + +>turn the screw +Your bare hands don't appear to be enough. +"Mit nackten Haenden kommst du hier nicht weiter." +>turn the mailbox-object +You can't turn that! +"Den kannst du nicht umdrehen!" + +>turn the leaflet +This has no effect. +"Erfolglos." + +>tie the boat-object +The boat-object cannot be tied, so it cannot be untied! +"Den Boot kann nicht festgebunden werden, also kann er auch nicht losgebunden werden!" + +>wait +Time passes... +"Zeit vergeht..." + +>go south +You can't go that way. +"In die Richtung kannst du nicht gehen." + +>go north +The door-object is closed. +"Der Tuer ist geschlossen." + +>walk north (Note: it's dark) +Oh, no! You have walked into a den of hungry grues and it's dinner time! +"O nein! Du bist in eine Hoehle von hungrigen Greulen geraten und es ist Essenszeit!" + +>walk north (ditto) +Oh, no! You have walked into the slavering fangs of a lurking grue! +"O nein! Du bist in die lechzenden Faenge eines lauernden Greuls geraten!" + + +>walk around +Use compass directions for movement. +"Benutze einen Kompass fuer die Richtung." + +>walk to the mailbox-object +The mailbox-object is here! +"Der Briefkasten ist hier!" + +>walk to the dog +You should supply a direction! +"Du musst eine Richtung angeben!" + +>wear the knife-object +You can't wear the knife-object +"Du kannst den Messer nicht tragen." + +>win +Naturally! +"Logo! Klar!" + +>wind the mailbox-object (Note: you can wind a clock) +You cannot wind up the mailbox-object +"Du kannst den Briefkasten nicht aufziehen." +>wish +With luck, your wish will come true. +"Mit viel Glueck, wird dein Wunsch sich erfuellen." + +>yell +Aaaarrrrgggghhhh! +AAAUUUUUU!" + +>zork +At your service! +"Zu deinen Diensten!" + +>look +It is pitch black. +You are likely to be eaten by a grue. +"Es ist stockdunkel. +"Die Wahrscheinlichkeit, dass du von einem Greul gefressen wirst, ist ziemlich gross." + +>look +Only bats can see in the dark. And you're not one. +"Nur Fledermaeuse koennen im Dunkeln sehen. Und du bist keine." + +>look +There is a mailbox-object here. +There is a torch here. +"Hier ist eine Fackel." + +>inventory +You are carrying: +"Du traegst: + +A shirt (being worn). +"Ein Hemd auf dem Leib." + +>look +Your collection of treasures consists of: +"Deine Schatzsammlung besteht aus: + +[Etc., etc.] + +>look +Sitting on the table-object is: +"Auf dem Tisch sind:" + +[Etc., etc.] + +>look +It appears the troll-object is holding: +"DER-NOM-CAP scheint das Folgende zu halten:" + +[Etc., etc.] + +>look +It appears the box-object contains: +"Der Schachtel scheint das Folgende zu enthalten:" + +[Etc., etc.] + +>look at treasures [Note: after you have collected all the treasures.] +An almost inaudible voice whispers in your ear, "Look to your treasures +for the final secret. +"Eine fast unvernehmbare Stimme fluestert dir zu: "Suche unter den Schaetzen nach dem letzten Geheimnis." + +>take the chalice [Note: you are a disembodied spirit, ie dead.] +Your hand passes through its object. +"Deine Hand greift durch das Objekt hindurch." + +>take the chalice +Your load is too heavy. +"Deine Last ist zu schwer." + +>take the chalice +Your load is too heavy, especially in light of your condition. +"Deine Last ist zu schwer, aber du nimmst es leicht." +>take the chalice +You're holding too many things already! +"Du hast deine Haende schon zu voll!" + +>drop the leaflet-object +You're not carrying the leaflet-object. +"Du traegst den Zettel nicht." + +>drop the leaflet [Note: it's in a closed box] +The box-object is closed. +"Der Schachtel ist geschlossen." + +>wave the chalice-object +The chalice-object isn't here! +"Der Kelch ist nicht hier!" + + +[Note: this sentence is for variety. One string from A and B are chosen +randomly to form the sentence. "Fiddling with" is when you 'rub' something. +"Playing in this way..." is when you 'lower' something.] + +A) "Kicking " / "Playing in this way with" / "Pushing " / + "Fiddling with " / "Waving " +"A) "mit dem Fuss treten" /..........runterlassen"./."Schieben"./."mit .........reiben."/."mit ..........wedeln." + +B) "the OBJECT" +"B) "der OBJEKT" + +B) " doesn't seem to work." / " isn't notably helpful." / " has no effect." +B)" scheint nicht zu funktionieren." /."ist nicht hilfreich."./."erfolglos." + +>go north +You can't go there in the boat-object. +"Mit dem Boot kannst du da nicht hin." + +>go south +You can't go there without a vehicle. (Note: eg, a boat) + + +>hello (Note: If no one is around.) + + + +"Good day." +"Nice weather we've been having lately." +"Goodbye". + + +." + + +[Note: these are responses to really silly inputs.] +"A valiant attempt." +"Ein beachtlicher Versuch." +"You can't be serious." +"Das kann doch nicht dein Ernst sein." +"An interesting idea..." +"Eine interessante Idee...." +"What a concept!" +"Geniale Idee!" + +[Note: if you, eg, type 'get out of boat' when your not in it.] + "Look around." + "Too late for that." + "Have your eyes checked." +"Schau dich um." +"Dazu ist es zu spaet." +"Lass dir mal die Augen checken." \ No newline at end of file diff --git a/script.fight b/script.fight new file mode 100644 index 0000000..ca62b58 --- /dev/null +++ b/script.fight @@ -0,0 +1,93 @@ + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + +> + + + + + + \ No newline at end of file diff --git a/script.full b/script.full new file mode 100644 index 0000000..5286623 --- /dev/null +++ b/script.full @@ -0,0 +1,3223 @@ +West of House +You are standing in an open field west of a white house, with a boarded front door. +Westlich vom Haus +"du stehst auf freiem Feld westlich von einem weissen Haus, dessen Haustuer mit Brettern vernagelt ist." +There is eine small mailbox here. (Renata: E.g., don't bother translating this sentence) + +>EXAMINE THE WHITE HOUSE +"Untersuche das weisse Haus genau" + +The house is a beautiful colonial house which is painted white. It is clear that the owners must have been extremely wealthy. +"Das Haus ist ein schoenes altes Herrenhaus, das weiss verputzt ist. Man sieht, dass die Besitzer enorm reich gewesen sein mussten.". + +>OPEN THE MAILBOX +Opening die small mailbox reveals eine leaflet. +"der Zettel" + +>TAKE LEAFLET +Taken. + +>READ LEAFLET +"WELCOME TO ZORK! +"Willkommen in Zork!" + +ZORK is a game of adventure, danger, and low cunning. In it you will explore some of the most amazing territory ever seen by mortals. No computer should be without one!" +"Zork ist ein Spiel voller Abenteuer, Gefahren und gemeiner Schlauheit Beim Spielen wirst du einige der wundersamsten Welten entdecken, die irgend ein Sterblicher gesehen hat . Kein Heimcomputer sollte ohne dieses Spiel sein." +>GO NORTH +"Geh nach Norden" +North of House +"Noerdlich vom Haus" +You are facing the north side of a white house. There is no door here, and all the windows are boarded up. To the north a narrow path winds through the trees. +"Du stehst vor der Nordseite eines weissen Hauses. Es gibt hier keine Tuer, und alle Fenster sind mit Brettern vernagelt. Nach Norden windet sich ein schmaler Pfad durch die Baeume.". +>N +Forest Path +This is a path winding through a dimly lit forest. The path heads north-south +here. One particularly large tree with some low branches stands at the edge of the path. +"Dieser Pfad windet sich durch den duesteren Wald. Er verlaeuft von Norden nach Sueden. Ein besonders grosser Baum mit einigen niederen Aesten steht am Rande des Pfades." + +>CLIMB TREE +Up a Tree +You are about 10 feet above the ground nestled among some large branches. The nearest branch above you is above your reach. +Beside you on the branch is a small bird's nest. +"Du bist ungefaehr 3 Meter ueber dem Boden umgeben von grossen Aesten Du kannst den naechsten Zweig ueber dir unmoeglich erreichen. +Neben dir auf dem Ast ist ein kleines Vogelnest." + +In the bird's nest is a large egg encrusted with precious jewels, apparently scavenged by a childless songbird. The egg is covered with fine gold inlay, and ornamented in lapis lazuli and mother-of-pearl. Unlike most eggs, this one is hinged and closed with a delicate looking clasp. The egg appears extremely fragile. +"In dem Vogelnest ist ein grosses mit kostbaren Juwelen besetztes Ei, das . scheinbar von einem kinderlosen Singvogel geraubtwaurde. Das Ei ist von einer feinen Goldschicht ueberzogen und mit Lapislazuli und Perlmutter geschmueckt.. Im Gegensatz zu einem gewoehnlichen Ei, hat dieses ein Scharnier und ist mit einem eleganten Verschluss versehen. Das Ei sieht sehr zerbrechlich aus. +>TAKE EGG + +Taken. + +>EXAMINE EGG +Die jewel-encrusted egg is closed. +geschlossen + +>OPEN EGG +You have neither the tools nor the expertise. +"du hast weder das Werkzeug noch das Geschick." +>D +Forest Path + +>N +Clearing +You are in a clearing, with a forest surrounding you on all sides. A path leads south. +On the ground is a pile of leaves. + +"du stehst auf einer Lichtung, und ein Wald umgibt dich von allen Seiten. Ein Pfad fuehrt nach Sueden. +Auf dem Boden liegt ein Blaetterhaufen." + +>TAKE LEAVES +In disturbing the pile of leaves, a grating is revealed. +"Beim Stoebern im Blaetterhaufen kommt ein Gitter zum Vorschein." +Taken. + +>EXAMINE GRATING +Die grating is closed. +"Das Gitter ist geschlossen." + +>E +Forest +This is a dimly lit forest, with large trees all around. +"Dies ist ein duesterer Wald mit grossen Baeumen rundherum." + +>E +Forest +The forest thins out, revealing impassable mountains. +"Der Wald lichtet sich und unueberwindliche Bergekommen zum Vorsacheint." + +>W +Forest +You hear in the distance the chirping of a song bird. +"In der Ferne hoerst du das Zwitschern eines Singvogels." + +>LISTEN TO SONG BIRD +You can't hear the songbird now. +"Jetzt kannst du den Singvogel nicht hoeren." + +>W +Forest Path + +>S +North of House + +>E +Behind House +You are behind the white house. A path leads into the forest to the east. In one corner of the house there is a small window which is slightly ajar. +"DLu bist hinter dem weissen Haus. Nach Osten fuehrt in Pfad in den Wald.. An einem Ende der Hauswand befindet sich ein kleines Fenster, das einen Spalt offen steht." +>E +Clearing +You are in a small clearing in a well marked forest path that extends to the east and west. +"Du stehst aufeiner kleinen Lichtung auf einem wohlmarkierten Waldpfad, der sich nach Osten und Westen erstreckt." + +>S +Forest +This is a dimly lit forest, with large trees all around. + +>N +Clearing +>E +Canyon View +You are at the top of the Great Canyon on its west wall. From here there is a marvelous view of the canyon and parts of the Frigid River upstream. Across the canyon, the walls of the White Cliffs join the mighty ramparts of the Flathead Mountains to the east. Following the Canyon upstream to the north, Aragain Falls may be seen, complete with rainbow. The mighty Frigid River flows out from a great dark cavern. To the west and south can be seen an immense forest, stretching for miles around. A path leads northwest. It is possible to climb down into the canyon from here. +"Blick auf Schlucht +du bist am oberen Rand derGross-Schlucht, auf dem Gipfel der Westwand. Von hier hat man einen wunderbaren Blick auf die Schlucht und flussaufwaerts auf den FlussGletsch. Gegenueber der Schlucht schliessen die Weissen Felsen de Gipfel der Hohlkopfberge nach Osten hin an. Verfolgt man die Schlucht flussaufwaerts nach Norden, dann kann man die Wiedermal Faelle, aus denen ein Regenbogen heraufsteigt, sehen. . Der maechtige Fluss Gletsch fliesst aus einer grossen dunklen Hoehle. Nach Westen und Sueden kann man einen enormen Wald sehen, der sich auf Kilometer hinzieht. Ein Pfad fuehrt nach Nordwesten. Es ist moeglich, von hier in die Schlucht hinunterzuklettern." +>D +Rocky Ledge +You are on a ledge about halfway up the wall of the river canyon. You can see from here that the main flow from Aragain Falls twists along a passage which it is impossible for you to enter. Below you is the canyon bottom. Above you is more cliff, which appears climbable. +Felsvorsprung + +"du bist auf einem Vorsprung, der ungefaehr auf halber Hoehe auf der Wand der Flusschlucht liegt. du kannst von hier sehen, dass sich der groesste Teil der Wiedermal Faelle sich durch einen Durchgang windet, den du nicht passieren kannst. Unter dir ist derAbgrund Ueber dir gibt es weitereFelsen, dieerklimmbar scheinen." + +>D +Canyon Bottom +You are beneath the walls of the river canyon which may be climbable here. The lesser part of the runoff of Aragain Falls flows by below. To the north is a narrow path. +"Auf dem Grund der Schlucht +du bist der Flusschlucht, die hier eher zu erklettern sind. Der geringere Teil des Ablaufs der Wiedermal Faelle fliesst unter dir vorbei. Nach Norden fuehrt ein schmaler Pfad. " + +>N +End of Rainbow +You are on a small, rocky beach on the continuation of the Frigid River past the Falls. The beach is narrow due to the presence of the White Cliffs. The river canyon opens here and sunlight shines in from above. A rainbow crosses over the falls to the east and a narrow path continues to the southwest. +"Am Ende des Regenbogens +du bist am unteren Gletsch hinter den Wasserfaellen an einem schmalen steinigen Ufer . Das Ufer is wegen der Weissen Felsen schmal. Die Flusschlucht oeffnet sich hier, und Sonnenstrahlen fallen von oben.herein. Ein Regenbogen weist ueber die Faelle nach Osten, und ein schmaller Pfad fuehrt weiter nach Suedwesten." + +>WALK ON RAINBOW +Can you walk on water vapor? +"Kannst du auf Wasserdaempfen wandeln?" + +>SW +Canyon Bottom + +>U +Rocky Ledge + +>U +Canyon View + +>NW +Clearing + +>W +Behind House + +>S +South of House +You are facing the south side of a white house. There is no door here, and all the windows are boarded. +"Suedlich vom Haus +du stehst auf der Suedseite des weissen Hauses. Es gibt hier keine Tuer, und alle Fenster sind vernagelt." + +>N +The windows are all boarded. +"Die Fenster sind alle vernagelt." + +>OPEN WINDOWS +The windows are boarded and can't be opened. +"Die Fenster sind vernagelt und lassen sich nicht oeffnen." + +>E +Behind House + +>N +North of House + +>E +Behind House + +>OPEN WINDOW +With great effort, you open the window far enough to allow entry. +" Mit grosser Anstrengung oeffnest du das Fenster weit genug, um einzusteigen." + +>CLIMB THROUGH WINDOW + +Kitchen +You are in the kitchen of the white house. A table seems to have been used recently for the preparation of food. A passage leads to the west and a dark staircase can be seen leading upward. A dark chimney leads down and to the east is a small window which is open. +A bottle is sitting on the table. +Die glass bottle contains: +Eine quantity of water +On the table is an elongated brown sack, smelling of hot peppers. +"Kueche +du bist in der Kueche des weissen Hauses. Ein Tisch muss vor Kurzem zur Bereitung einer Mahlzeit benutzt worden sein. Ein Durchgang fuehrt nach Westen, und man kann eine dunkle Treppe sehen, die nach oben fuehrt. Ein dunkler Kamin fuehrt nach unten. Nach Osten ist ein kleines Fenster, das offen steht. +Auf dem Tischt steht eine Flasche +"Auf dem Tisch ist ein laenglicher brauner Sack. Er riecht nach Aepfeln." + +>TAKE SACK +Taken. + +>LOOK AT SACK +Die brown sack is closed. +"zugebunden" + +>OPEN SACK +Opening die brown sack reveals eine clove of garlic, and eine lunch. +"Der geoeffnete Sack enthaelt eine Knoblauchzehe und ein belegtes Brot." + +>SMELL GARLIC +Die smells like einer clove of garlic. + +>LOOK AT WATER +There's nothing special about die quantity of water. +"Es gibt nichts Auffallendes an der Wassermenge." + +>OPEN BOTTLE +Opened. + +>DRINK WATER +You have to be holding die glass bottle first. +"du musst die Glassflasche erst in der Hand halten." + +>GET BOTTLE +Taken. + +>DRINK WATER +It goes down well, quelling whatever thirst you might have had. +"Es tut gut, loescht jeglichen Durst, den du eventuell vrspuert hast." + +>U +You have moved into a dark place. +It is pitch black. You are likely to be eaten by a grue. +"Du bist in einem dunklen Ort gelandet. +Es ist stockdunkel. Es besteht die Moeglichkeit, dass du von einem Greuel gefressen wirst." + +>WHAT IS A GRUE +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. +"Was ist ein Greuel +Das Greuel ist ein boesartiges lauerndes Wesen in den dunklen Orten dieser Welt. Sein Lieblingsfressen besteht aus Abenteurern, aber sein unersaettlicher Appetit ist von seiner Furcht vor Licht gemaessigt Kein Greuel ist je bei Tageslicht gesehen worden, und nur wenige haben seine fuerchterlichen Krallen ueberlebt, um von dem grauenhaften Wesen zu erzaehlen." + +>D +Kitchen + +>W +Living Room +You are in the living room. There is a doorway to the east, a wooden door with strange gothic lettering to the west, which appears to be nailed shut, a trophy case, and a large oriental rug in the center of the room. +Above the trophy case hangs an elvish sword of great antiquity. +A battery-powered brass lantern is on the trophy case. + + +"Wohnzimmer +du bist im Wohnzimmer. Da sind eine Tuer nach Osten, eine vernagelte Holztuer mit fremden Runen, ein Trophaeenschrank und ein Perserteppich in der Mitte . Ueber dem Trophaeen Schrank haengt ein Elfenschwert aus dem Altertum. Eine batteriengespeiste Messingleuchte ist auf dem Trophaeenschrank ." + +>GET SWORD +Taken. + +>GET LAMP +Your load is too heavy. +"Last ist zu schwer." + +>LOOK AT LAMP +The lamp is turned off. +"Die Leuchte ist nicht an." + +>LOOK AT SWORD +There's nothing special about die sword. +"Es gibt nichts Besonderes an diesem Schwert." + +>E +Kitchen + +>TURN ON LAMP +You can't see any lamp here! +"du siehst hier keine Leuchte." + +>W +Living Room +A battery-powered brass lantern is on the trophy case. + +>I +You are carrying: +Eine sword +Eine glass bottle +Eine brown sack +Die brown sack contains: +Eine clove of garlic +Eine lunch +Eine pile of leaves +Eine jewel-encrusted egg +Eine leaflet + +>DROP FOOD, BOTTLE +lunch: Dropped. +glass bottle: Dropped. + +>GET LAMP +Taken. + +>E +Kitchen + +>U +You have moved into a dark place. +It is pitch black. You are likely to be eaten by a grue. + +>TURN ON LAMP +Die brass lantern is now on. +"Die Messingleuchte ist nun an." + +Attic +This is the attic. The only exit is a stairway leading down. +A large coil of rope is lying in the corner. +On a table is a nasty-looking knife. +"Speicher +Dies ist der Speicher. Der einzige Ausgang ist ein Treppenhaus nach unten. +Ein dickes aufgerolltes Seil liegt in der Ecke. +Auf einem Tisch liegt ein gefaehrlich aussehendes Messer." +>TAKE ROPE +Your load is too heavy. + +>I +You are carrying: +Eine brass lantern (providing light) +Eine sword +Eine brown sack +Die brown sack contains: +Eine clove of garlic +Eine pile of leaves +Eine jewel-encrusted egg +Eine leaflet + +>DROP LEAVES +Dropped. + +>DROP LEAFLET +Dropped. + +>GET ROPE +Taken. + +>L +Attic +This is the attic. The only exit is a stairway leading down. +A small leaflet is on the ground. +On the ground is a pile of leaves. +On a table is a nasty-looking knife. + +>GET KNIFE +Taken. + +>I +You are carrying: +Eine nasty knife +Eine rope +Eine brass lantern (providing light) +Eine sword +Eine brown sack +Die brown sack contains: +Eine clove of garlic +Eine jewel-encrusted egg + +>D +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +"Ein Pepperoni-Brot liegt hier." +>LOOK UNDER RUG +Underneath the rug is a closed trap door. As you drop the corner of the rug, the trap door is once again concealed from view. +"Unter dem Teppich ist eine geschlossene Falltuer. Wenn du den Teppich loslaesst, ist die Falltuer wieder versteckt." + +>MOVE THE RUG +With a great effort, the rug is moved to one side of the room, revealing the dusty cover of a closed trap door. +"Zieh am Teppich +Mit groesster Anstrengung ist der Teppich aus dem Weg gezerrt. Die staubige Oberflaeche einer geschlossenen Falltuere kommt zum Vorschein." + +>MOVE THE RUG +Having moved the carpet previously, you find it impossible to move it again. +"Nachdem du vorher den Teppich weggezogen hast, findest du es jetzt unmoeglich ihn zurueckzuziehen." + +>OPEN TRAP DOOR +The door reluctantly opens to reveal a rickety staircase descending into darkness. +"Die Tuer oeffnet sich muehsam, und bringt eine baufaellige Treppe zum Vorschein, die nach unten in die Dunkelheit fuehrt." + +>D +The trap door crashes shut, and you hear someone barring it. +Die Falltuer kracht zu, und du hoerst, dass jemand sie verriegelt." + +Cellar +You are in a dark and damp cellar with a narrow passageway leading north, and a crawlway to the south. On the west is the bottom of a steep metal ramp which is unclimbable. +Your sword is glowing with a faint blue glow. +"Keller +du bist in einem dunklen und muffigen Keller mit einem schmalen Durchgang nach Norden und einem niedrigen Tunnel nach Sueden. Im Westen ist das Ende einer steilen Metallrampe, die nicht erklimmbar ist. +>CLIMB UP RAMP +You try to ascend the ramp, but it is impossible, and you slide back down. +"du versuchst die Rampe hinaufzuklettern, aber das ist unmoeglich. du rutschst wieder runter." + +>S +East of Chasm +You are on the east edge of a chasm, the bottom of which cannot be seen. A narrow passage goes north, and the path you are on continues to the east. Your sword is no longer glowing. + +"du bist am oestlichen Rand einer Spalte, deren Grund nicht zu sehen ist. Ein enger Durchgang geht nach Norden, und der Pfad, auf dem du bist, fuehrt nach Osten weiter. +dein Schwert leuchtet nicht mehr.". + +>E +Gallery +This is an art gallery. Most of the paintings have been stolen by vandals with exceptional taste. The vandals left through either the north or west exits. Fortunately, there is still one chance for you to be a vandal, for on the far wall is a painting of unparalleled beauty. +"Galerie +Dies ist eine Kunstgalerie. +Die meisten Gemaelde sind von Gangstern mit aussergewoehnlich gutem Geschmack gestohlen worden. Die Gangster sind entweder durch den Nord -oder den Westausgang abgehauen. Gluecklicherweise bleibt dir noch eine Chance auch ein Gangster zu werden, denn an der anderen Wand haengt ein Gemaelde von einmaliger Schoenheit." + +>TAKE PAINTING +Your load is too heavy. + +>N +Studio +This appears to have been an artist's studio. The walls and floors are splattered with paints of 69 different colors. Strangely enough, nothing of value is hanging here. At the south end of the room is an open door (also covered with paint). A dark and narrow chimney leads up from a fireplace; although you might be able to get up it, it seems unlikely you could get back down. +Loosely attached to a wall is a small piece of paper. +"Atelier +Dies scheint, ein Kuenstleratelier gewesen zu sein. Die Waende und Fussboeden sind mit Spritzern von 69 verschiedenen Farben bekleckst. Seltsamererweise haengt hier nichts Wertvolles. Am suedlichen Ende des Zimmers ist eine offene Tuer (auch mit Farbe bekleckst). Ein dunkler und schmaler Schornstein fuehrt vom Kamin hinauf. Es waere wahrscheinlich einfach fuer dich, dort hinaufzuklettern, aber die Chancen, dass du wieder runterkommst, sind gering. . +Lose an der Wand haengt ein kleines Stueck Papier." +>READ PAPER +(Taken) +Congratulations! + +You are the privileged owner of ZORK I: The Great Underground Empire, self-contained and self-maintaining universe. If used and maintained in accordance with normal operating practices for small universes, ZORK will provide many months of trouble-free operation. + +"Herzlichen Glueckwunsch! +du bist der priveligierte Besitzer von ZORK I: Das Grosse Unterirdische Imperium, ein unabhaengiges selbstversorgendes Universum Wenn es gemaess den Operationsregelnfuer kleine Universe benutzt und erhalten wird, dann wird ZORK auch viele Monate problemlos operieren." + + +>U +You can't get up there with what you're carrying. +"Mit dem, was du da schleppst, kannst du da nicht hinauf." + +>DROP ALL BUT SWORD,LAMP +ZORK owner's manual: Dropped. +nasty knife: Dropped. +rope: Dropped. +brown sack: Dropped. +jewel-encrusted egg: Dropped. + +>U +Kitchen + +>D +Only Santa Claus climbs down chimneys. +"Nur der Schornsteinfeger krabbelt in Schornsteine." + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. + +>OPEN TRAP DOOR +The door reluctantly opens to reveal a rickety staircase descending into darkness. + +>D +The trap door crashes shut, and you hear someone barring it. + +Cellar +Your sword is glowing with a faint blue glow. +"dein Schwert leuchtet mit einem schwachen blauen Schimmer." + +>N +The Troll Room +This is a small room with passages to the east and south and a forbidding hole leading west. Bloodstains and deep scratches (perhaps made by an axe) mar the walls. +"Das Trollzimmer +Dies ist ein kleines Zimmer mit Durchgaengen nach Osten und Sueden und einem furchterregenden Loch nach Westen.. Blutspuren und tiefe Kratzer (vielleicht von einer Axt) verschandeln die Waende." + +A nasty-looking troll, brandishing a bloody axe, blocks all passages out of the room. +Your sword has begun to glow very brightly. +The troll's swing almost knocks you over as you barely parry in time. + +"Ein widerlicher Troll, der eine blutige Axt schwingt, blockiert alle Ausgaenge aus dem Zimmer." +Dein Schwert leuchtet jetzt ganz hell . +Die geschwungene Axt haut dich bald um, denn du kannst sie kaum parieren." +" +>SAVE +To file (SAVE): 1..1Ok. + +>LOOK AT TROLL +A nasty-looking troll, brandishing a bloody axe, blocks all passages out of the room. +The flat of the troll's axe hits you delicately on the head, knocking you out. +"Die flache Seite der Axt trifft dich leicht am Kopf, und du wirst bewusstlos." + +>HIT TROLL WITH SWORD +You charge, but the troll jumps nimbly aside. +The axe crashes against the rock, throwing sparks! +"du greifst an, aber der Troll huepft leichtfuessig zu Seite. +Die Axt schmettert so hart gegen den Stein, dass Funken spruehen." + +>KILL TROLL WITH SWORD +A quick stroke, but the troll is on guard. +The axe sweeps past as you jump aside. +"Ein schneller Schlag, aber der Troll ist auf der Hut. +Die Axt streift vorbei, als du zur Seite springst." + +>KILL TROLL +(with der sword) +A good slash, but it misses the troll by a mile. +The flat of the troll's axe hits you delicately on the head, knocking you out. +"Guter Hieb, aber leider hat er den Troll um etwa einen Kilometer verpasst. +"Die flache Seite der Axt trifft dich leicht am Kopf, und du wirst bewusstlos." + +>KILL TROLL +(with der sword) +"(mit Schwert)" +It's curtains for the troll as your sword removes his head. +Almost as soon as die troll breathes his last breath, a cloud of sinister black fog envelops him, and when the fog lifts, the carcass has disappeared. +Your sword is no longer glowing. + +"Der Troll beisst ins Grass, als ihm dein Schwert den Kopf abschlaegt. Fast gleichzeitig mit dem letzten Atemzug des Trolls verhuellt ihn eine Wolke aus gespenstigem schwarzem Nebel, und wenn der Nebel sich hebt, ist die Leiche verschwunden. +dein Schwert leuchtet nicht mehr." + +>LOOK AT TROLL +You can't see any troll here! +"Hier gibt es keinen Troll mehr!" + +>DROP ALL BUT LAMP +sword: Dropped. + +>I +You are carrying: +Eine brass lantern (providing light) + +>S +Cellar + +>S +East of Chasm + +>E +Gallery +Fortunately, there is still one chance for you to be a vandal, for on the far wall is a painting of unparalleled beauty. + +>GET PAINTING + +Taken. + +>LOOK AT PAINTING +There's nothing special about die painting. + +>N +Studio +There is eine brown sack here. +Die brown sack contains: +Eine clove of garlic +There is eine rope here. +There is eine nasty knife here. +There is eine ZORK owner's manual here. +Someone carrying a large bag is casually leaning against one of the walls here. +He does not speak, but it is clear from his aspect that the bag will be taken only over his dead body. +"Jemand, der einen grossen Sack traegt, lehnt hier gegen eine Wand. +Er spricht kein Wort, aber es besteht kein Zweifel, dass er sich nur ueber seine eigene Leiche von dem Sack trennen wird." + +>U +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. + +>OPEN TROPHY CASE +Opened. + +>PUT PAINTING IN CASE +Done. + +>OPEN TRAP +The door reluctantly opens to reveal a rickety staircase descending into darkness. + +>D +The trap door crashes shut, and you hear someone barring it. + +Cellar + +>S +East of Chasm + +>E +Gallery + +>N +Studio +There is eine brown sack here. +Die brown sack contains: +Eine clove of garlic +There is eine rope here. +There is eine nasty knife here. +There is eine ZORK owner's manual here. + +>GET ROPE +Taken. + +>S +Gallery + +>W +East of Chasm + +>N +Cellar + +>N +The Troll Room +There is eine sword here. +There is eine bloody axe here. + +>E + +East-West Passage +This is a narrow east-west passageway. There is a narrow stairway leading down at the north end of the room. + +>E +Round Room +This is a circular stone room with passages in all directions. Several of them have unfortunately been blocked by cave-ins. +"Rundes Zimmer +Dies ist ein rundes turmartiges Zimmer mit Durchgaengen inalleRichtungen. Einige sind leider durch Einsturz blockiert ". + +>SE +Engravings Cave +You have entered a low cave with passages leading northwest and east. +There are old engravings on the walls here. +"Hoehle mit Einmeisselungen +du bist in eine Hoehle getreten, die Durchgaenge nach Norwesten und Osten hat. +Dort gibt es alte Einmeisselungen an den Waenden." + +>E +Dome Room +You are at the periphery of a large dome, which forms the ceiling of another room below. Protecting you from a precipitous drop is a wooden railing which circles the dome. +"Kuppelzimmer +du bist am Rand einer grossen Kuppel, die die Decke eines Raumes darunter formt. Ein hoelzernes Gelaender, das die Kuppel umgibt, beschuetzt dich vor dem Herunterfallen in eine steilen Abgrund." + +>TIE ROPE TO RAILING +The rope drops over the side and comes within ten feet of the floor. +"Das Seil faellt ueber die Seite und reicht bis zu 3 Metern ueber dem Boden." + +>CLIMB DOWN ROPE +Torch Room +This is a large room with a prominent doorway leading to a down staircase. Above you is a large dome. Up around the edge of the dome (20 feet up) is a wooden railing. In the center of the room sits a white marble pedestal. +A piece of rope descends from the railing above, ending some five feet above your head. +Sitting on the pedestal is a flaming torch, made of ivory. +"Fackelzimmer +Dies ist ein grosser Raum mit einem imponierenden Eingang, der zu einem nTreppenhaus fuehrt, das nach unten geht. Oben um den Rand der Kuppel (6.5 Meter ueber dir ist ein hoelzernes Gelaender. In der Mitte dieses Zimmers ruht ein + +Auf dem Podest ist eine brennende Fackel aus Elfenbein ." + +>GET TORCH + +Taken. + +>TURN OFF LAMP +Die brass lantern is now off. + +>I +You are carrying: +Eine torch (providing light) +Eine brass lantern + +>S +Temple +This is the north end of a large temple. On the east wall is an ancient inscription, probably a prayer in a long-forgotten language. Below the prayer is a staircase leading down. The west wall is solid granite. The exit to the north end of the room is through huge marble pillars. +There is eine brass bell here. +" Dies ist das Nordende eines grossen Tempels. Auf der Ostwand siehst du eine antike Inschrift, die wahrscheinlich ein Gebet in einer laengst vergessenen Sprache ist. Unter dem Gebet fuehrt ein Treppenhaus nach unten. Die Westwand ist aus Granit. Der Ausgang im Norden des Raumes fuehrt durch riesige Marmorsaeulen. +Es befindet sich hier eine Messingglocke." + +>E +Egyptian Room +This is a room which looks like an Egyptian tomb. There is an ascending staircase to the west. +The solid-gold coffin used for the burial of Ramses II is here. +"Dieser Raum sieht aus wie ein aegyptisches Grab. Im Westen ist eine Treppe nach oben.Der reingoldene Sarg, den man fuer das Begraebnis von Ramses II. benutzt hat ist hier." + +>GET COFFIN + +Taken. + +>LOOK AT COFFIN +Die gold coffin is closed. + +>W +Temple +There is eine brass bell here. + +>S +Altar +This is the south end of a large temple. In front of you is what appears to be an altar. In one corner is a small hole in the floor which leads into darkness You probably could not get back up it. +On the two ends of the altar are burning candles. +On the altar is a large black book, open to page 569. +"Dies ist das Suedende eines grossen Tempels. Vor dir ist eine Art Altar. In einer Ecke ist ein kleines Loch im Boden, das in absolute Dunkelheit fuehrt. +Es sieht nicht so aus, als ob du da je wieder rauskaemst. +Auf beiden Seiten des Altars stehen brennende Kerzen. +Auf dem Altar liegt ein grosses schwarzes Buch. Es ist bei Seite 569 aufgeschlagen." + +>READ BOOK +Commandment #12592 +12592.Gebot + +Oh ye who go about saying unto each: "Hello sailor": +Dost thou know the magnitude of thy sin before the gods? +Yea, verily, thou shalt be ground between two stones. +Shall the angry gods cast thy body into the whirlpool? +Surely, thy eye shall be put out with a sharp stick! +Even unto the ends of the earth shalt thou wander and Unto the land of the dead shalt thou be sent at last. +Surely thou shalt repent of thy cunning. +" Oh Ihr, die Ihr zueinander sagt:"Gegruesset seist Du, Seemann" +Seid Ihr Euch der Groesse Eurer Suenden vor den Goettern bewusst? +Es steht geschrieben, dass Ihr zwischen Steinen zermalmt werden sollt. +Sollen die zornigen Goetter Eure Ueberreste in das Kneippbecken werfen? +Wahrhaftig Eure Augen sollten mit einem spitzen Stock geblendet werden! +Bis ans Ende dieser Erde sollt Ihr wandern,. und in denHades am Ende Eurer Tage sollt Ihr verbannt werden. +Wahrhaftig Ihr sollt buessen fuer eure Schlauheit." +>HELLO SAILOR +Nothing happens here. + +>PRAY +Forest +This is a forest, with trees in all directions. To the east, there appears to be sunlight. + +>E +Forest Path +You hear in the distance the chirping of a song bird. + +>S +North of House + +>E +Behind House + +>W +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: +Eine painting + +>PUT COFFIN IN TROPHY CASE +Done. + +>GET COFFIN +Taken. + +>E +Kitchen + +>E +Behind House + +>E +Clearing + +>E +Canyon View + +>D +Rocky Ledge + +>D +Canyon Bottom + +>N +End of Rainbow + +>OPEN COFFIN +Opening die gold coffin reveals eine sceptre. + +>GET SCEPTRE + +Taken. + +>WAVE SCEPTRE +Suddenly, the rainbow appears to become solid and, probably, walkable (the giveaway seems to be the stairs and bannister) +A shimmering pot of gold appears at the end of the rainbow. +"Ploetzlich wird der Regenbogen zu einer Art Strasse und erscheint begehbar +(Treppen mit Gelaendererweckendiesen Eindruck). +Ein glitzernder goldener Topf erscheint am Ende des Regenbogens." + +>GET GOLD +Your load is too heavy. + +>SW +Canyon Bottom + +>U +Rocky Ledge + +>U +Canyon View + +>W +Forest + +>E +The rank undergrowth prevents eastward movement. +"Undurchdringliches Unterholz versperrt den Weg nach Osten." + +>N +Clearing + +>W +Behind House + +>W +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: +Eine painting + +>PUT COFFIN IN TROPHY CASE +Done. + +>E +Kitchen + +>E +Behind House + +>E +Clearing + +>E +Canyon View + +>D +Rocky Ledge + +>D +Canyon Bottom + +>N +End of Rainbow +At the end of the rainbow is a pot of gold. + +>GET GOLD + +Taken. + +>SW +Canyon Bottom + +>U +Rocky Ledge + +>U +Canyon View + +>W +Forest + +>N +Clearing + +>W +Behind House + +>W +Kitchen + +>PUT GOLD IN TROPHY CASE +You can't see any trophy case here! + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: +Eine gold coffin +Eine painting + +>PUT GOLD IN TROPHY CASE +Done. + +>I +You are carrying: +Eine sceptre +Eine torch (providing light) +Eine brass lantern + +>OOPS TROPHY +Done. + +>D +The trap door is closed. + +>OPEN DOOR +Welche door meinst du, die wooden door or die trap door? + +>TRAP DOOR +The door reluctantly opens to reveal a rickety staircase descending into darkness. +"Die Tuer oeffnet sich muehsam, und bringt eine baufaellige Treppe zum Vorschein, die in die Dunkelheit fuehrt." + +>D +Cellar + +>N +The Troll Room +There is eine bloody axe here. + +>E +East-West Passage + +>E +Round Room + +>E +Loud Room +This is a large room with a ceiling which cannot be detected from the ground. There is a narrow passage from east to west and a stone stairway leading upward. +"Das laute Zimmer +Dies ist ein riesiges Zimmer, in dem man die Decke nicht von unten erkennen kann. Hier ist ein enger Durchgang von Osten nach Westen und eine Steintreppe fuehrt nach oben." +The room is deafeningly loud with an undetermined rushing sound. The sound seems to reverberate from all of the walls, making it difficult even to think. +"Der Raum ist mit ohrenbetaeubendem Laermgefuellt. Das Getoese scheint, von allen Waenden widerzuhallen. Es ist unmoeglich, hier auch nur zu denken. +,On the ground is a large platinum bar. +"Auf dem Boden liegt ein Platinbarren." + +>TAKE BAR +bar bar ... + +>ECHO +The acoustics of the room change subtly. +"Die Akustik in dem Raum aendert sich ein bisschen." + +Loud Room +On the ground is a large platinum bar. + +>GET PLATINUM BAR + +Taken. + +>DROP BAR +Dropped. + +>E +Damp Cave +This cave has exits to the west and east, and narrows to a crack toward the south. The earth is particularly damp here. + +Diese Hoehle hat Ausgaenge nach Westen und Osten und verengt sich nach Sueden zu einer Ritze. Der Boden ist hier besonders feucht." + +>E +White Cliffs Beach +You are on a narrow strip of beach which runs along the base of the White Cliffs. There is a narrow path heading south along the Cliffs and a tight passage leading west into the cliffs themselves. +"Weisse Felsen Strand +du bist aneinem schmalen Strand, der am Fusse der Weissen Felsen entlanglaeuft. Es gibt hier einen schmalen Pfad, der entlang der Felsen nach Sueden laeuft und einen engen Durchgang, der nach West mitten in die Klippen hineinfuehrt." + +>S +White Cliffs Beach +You are on a rocky, narrow strip of beach beside the Cliffs. A narrow path leads north along the shore. + +>N +White Cliffs Beach + +>W +Damp Cave + +>W +Loud Room +On the ground is a large platinum bar. + +>W +Round Room + +>N +North-South Passage +This is a high north-south passage, which forks to the northeast. +"Nord-Sueddurchgang +Hier ist ein Nord-Sueddurchgang, der sich nach Nordosten gabelt." + +>N +Chasm +A chasm runs southwest to northeast and the path follows it. You are on the south side of the chasm, where a crack opens into a passage. +"Spalte +Eine Spalte verlaeuft von Suedwesten nach Nordosten, und der Pfad folgt ihr. du bist auf der Suedseite der Spalte, wo eine schmale Oeffnung in einen Durchgang fuehrt." + +>NE +Reservoir South +You are in a long room on the south shore of a large lake, far too deep and widefor crossing. +There is a path along the stream to the east or west, a steep pathway climbingsouthwest along the edge of a chasm, and a path leading into a canyon to the southeast. +"Reservoir Sued +du bist in einem laenglichen Raum am Suedufer eines grossen Sees, der viel zu tief und zu breit zum Ueberqueren ist. +AmBsvh entlang zieht sich ein Pfad nach Osten oder Westen, einSteilpfad, der suedwestlich am Rand der Spalte entlang ansteigt. Ein Pfad fuehrt in eine Schlucht nach Suedosten." + +>W +Stream View +You are standing on a path beside a gently flowing stream. The path follows the stream, which flows from west to east. +"Blick auf den Bach +du stehst auf einem Pfad bei einem plaetschernden Bach. Der Pfad folgt dem Bach, der von Westen und nach Osten fliesst." + +>E +Reservoir South + +>SE +Deep Canyon +You are on the south edge of a deep canyon. Passages lead off to the east, northwest and southwest. A stairway leads down. You can hear the sound of flowing water from below. +"Tiefe Schlucht +du bist am Suedrand einer tiefen Schlucht. Durchgaenge fuehren nach Osten, Nordwesten und Suedwesten. Eine Treppe fuehrt nach unten. Du kannst von unten herauf das Rauschen von Wasser hoeren." + +>E +Dam +You are standing on the top of the Flood Control Dam #3, which was quite a tourist attraction in times far distant. There are paths to the north, south, and west, and a scramble down. +The sluice gates on the dam are closed. Behind the dam, there can be seen a wide reservoir. Water is pouring over the top of the now abandoned dam. +There is a control panel here, on which a large metal bolt is mounted. +Directly above the bolt is a small green plastic bubble. +"Damm +du stehst oben auf dem Hochwasserschutzdamm Nr.3.Er war wohl zu seiner Zeit eine grosse Sehenswuerdigkeit. Es gibt hier Pfade nach Norden, Sueden und Westen, und eine steile Abkuerzung. +Die Schleusentore des Dammes sind geschlossen. Hinter dem Damm kann man ein grosses Reservoir sehen. Wasser fliesst wild ueber den jetzt seit langem unbenutzten Damm. Es gibt hier eine Schalttafel, auf der eine grosse Metallschraube angebracht ist. Direkt ueber der Schraube ist eine kleine gruene Plastikblase." + +>GET ALL +dam: A valiant attempt. +green bubble: It is an integral part of the control panel. bolt: +It is an integral part of the control panel. + +>N +Dam Lobby +This room appears to have been the waiting room for groups touring the dam. +There are open doorways here to the north and east marked "Private", and there is a path leading south over the top of the dam. +Some guidebooks entitled "Flood Control Dam #3" are on the reception desk. +There is a matchbook whose cover says "Visit Beautiful FCD#3" here. +"Eingangshalle zum Damm +Dieser Raum scheint, der Warteraum fuer Besuchergruppen gewesen zu sein. +Es gibt hier offene Tueren, die nach Norden und Osten fuehren. Sie haben die Aufschrift "Privat", und ein Pfad fuehrt nach Sueden ueber den oberen Damm. + +Einige Prospekte mit dem Titel: Hochwasserschutzdamm No.3 liegen bei der Rezepzion. Eine Streichholzschachtel mit der Auffschrift:"Visit Beautiful FCD#3"liegt hier." +>N +Maintenance Room +This is what appears to have been the maintenance room for Flood Control Dam #3. +"Wartungsraum +Dies muss der Wartungsraum fuer den Hochwasserschutzdamm No.3 gewesen sein." +Apparently, this room has been ransacked recently, for most of the valuable equipment is gone. On the wall in front of you is a group of buttons colored blue, yellow, brown, and red. There are doorways to the west and south. +There is eine wrench here. +There is an object which looks like a tube of toothpaste here. +There is eine screwdriver here. +There is eine group of tool chests here. +"Scheinbar ist dieser Raum vor Kurzem gepluendert worden, denn die meisten wertvollen Geraete sind weg. An der Wand vor dir haengen blaue, gelbe, braune und rote Knoepfe. Tueren fuehren nach Westen und Sueden. + +>GET ALL +wrench: Taken. +tube: Taken. +screwdriver: Taken. +group of tool chests: The chests are so rusty and corroded that they crumble when you touch them +"Reihe von Werkzeugkaesten:Die Kaesten sind so rostig und verrottet, das sie zerfallen, wenn du sie anfasst." + +>PRESS YELLOW BUTTON +Click. + +>LOOK AT BUTTON +Welche button meinst du, die blue button, die red button, die brown button, or +die yellow button? + +>BLUE +There's nothing special about die blue button. + +>S +Dam Lobby +Some guidebooks entitled "Flood Control Dam #3" are on the reception desk. +There is a matchbook whose cover says "Visit Beautiful FCD#3" here. + +>GET MATCHBOOK +Taken. + +>LOOK AT MATCHBOOK +The matchbook isn't very interesting, except for what's written on it. + +>READ MATCHBOOK + +(Close cover before striking) + +YOU too can make BIG MONEY in the exciting field of PAPER SHUFFLING! +Auch DU kannst das GROSSE LOS in der interessanten Branche des PAPIERKRIEGES gewinnen!" + +Mr. Anderson of Muddle, Mass. says: "Before I took this course I was a lowly bit twiddler. Now with what I learned at GUE Tech I feel really important and can obfuscate and confuse with the best." +"Herr Superschlau aus Hack sagt: "Bevor ich in diese Vorlesung ging war ich ein mickeriger Bit-Mischer. Jetzt, mit dem, was ich an der Hacker T.U gelernt habe, fuehle ich mich wichtig und kann mit den Besten interfacen und verrueckt spielen." + +Dr. Blank had this to say: "Ten short days ago all I could look forward to was a dead-end job as a doctor. Now I have a promising future and make really big Zorkmids." +"Herr Dr. Leer hatte folgendes zu sagen: "Vor nur zehn kurzen Tagen hatte ich nur die Aussicht auf eine chancenlose Stelle als Doktor. Jetzt habe ich eine vielversprechende Zukunft und mache wirkliche Zorkkohle." + +GUE Tech can't promise these fantastic results to everyone. But when you earn your degree from GUE Tech, your future will be brighter. +"Die Technische Uni Hack kann diese fantastischen Resultate nicht jedem versprechen. Aber, einen Doktortitel von der Hack TU malt auch deine Zukunft rosiger aus." +>S +Dam +You are standing on the top of the Flood Control Dam #3, which was quite tourist attraction in times far distant. There are paths to the north, south, and west, and a scramble down. +The sluice gates on the dam are closed. Behind the dam, there can be seen a wide reservoir. Water is pouring over the top of the now abandoned dam. +There is a control panel here, on which a large metal bolt is mounted. Directly above the bolt is a small green plastic bubble which is glowing serenely. + +>TURN BOLT +Your bare hands don't appear to be enough. + +>TURN BOLT WITH WRENCH +The sluice gates open and water pours through the dam. + +>DROP WRENCH +Dropped. + +>Z +Time passes... + +>Z +Time passes... + +>W +Reservoir South +You are in a long room, to the north of which was formerly a lake. However, with the water level lowered, there is merely a wide stream running through the center of the room. +There is a path along the stream to the east or west, a steep pathway climbing southwest along the edge of a chasm, and a path leading into a canyon to the southeast. +"du bist in einem laenglichen Zimmer. Nach Norden lag frueher ein See. Aber, nachdem der Wasserstand gemindert wurde, gibt es hier bloss einen breiten Bach, der durch die Mitte des Raumes fliesst. +Den Bach entlang fuehrt ein Pfad nach Osten oder Westen, ein steiler Pfad, nach Suedwesten den Rand einer Spalte entlang und ein Pfad fuehrt in eine Schlucht nach Suedosten.." + +>N +Reservoir +You are on what used to be a large lake, but which is now a large mud pile There are "shores" to the north and south. +Lying half buried in the mud is an old trunk, bulging with jewels. +"Reservoir +du stehst da, wo einmal ein grosser See war, aber der ist jetzt ein grosser Schlammhaufen. Es gibt hier "Ufer" nach Norden und Sueden. +Halbvergraben im Schlamm ist ein alter Koffer, vollgepfropft mit Juwelen." + +>LOOK AT JEWELS +There are lots of jewels in there. + +>N +Reservoir North +You are in a large cavernous room, the south of which was formerly a lake. +However, with the water level lowered, there is merely a wide stream running through there. +There is a slimy stairway leaving the room to the north. +There is eine hand-held air pump here. +"Nordreservoir +du bist in einem grottenartigen Raum. Sein Suedteil war einmal ein See. +"Aber, mit dem geminderten Wasserstand, gibt es hier nur noch einen breiten Bach, der hier durchfliesst. +Eine schleimige Treppe fuehrt aus Raum nach Norden." +Es gibt hier eine Fahrradpumpe." + +>GET PUMP +Taken. + +>S +Reservoir +Lying half buried in the mud is an old trunk, bulging with jewels. + +>S +Reservoir South + +>E +Dam +There is eine wrench here. + +>E +Dam Base +You are at the base of Flood Control Dam #3, which looms above you and to the north. The river Frigid is flowing by here. Along the river are the White Cliffs which seem to form giant walls stretching from north to south along the shores of the river as it winds its way downstream. +There is a folded pile of plastic here which has a small valve attached. +" Am Fuss des Dammes +"du bist am Fuss des Hochwasserkontrolldammes No. 3, der ueber dir und nach Norden hin aufragt. Der Fluss Gletsch fliesst hier vorbei. Den Fluss entlang tuermen sich die Weissen Felsen, die sich flussabwaerts wie eine gigantische Wand von Norden nach Sueden erstrecken." +Hier gibt es einen Haufen Plastik, an dem ein kleines Ventil befestigt ist." +>LOOK AT PLASTIC +There's nothing special about die pile of plastic. + +>LOOK AT VALVE +There's nothing special about die pile of plastic. + +>PUMP UP THE PILE OF PLASTIC +The boat inflates and appears seaworthy. +A tan label is lying inside the boat. + +>LOOK AT LABEL +!!!!FROBOZZ MAGIC BOAT COMPANY!!!! +? +Hello, Sailor! +"Gruess dich, Seeman! + +Instructions for use: +"Gebrauchsanweisung" + +To get into a body of water, say "Launch". +To get to shore, say "Land" or the direction in which you want to maneuver the boat. + + +Warranty: + +This boat is guaranteed against all defects for a period of 76 milliseconds from date of purchase or until first used, whichever comes first. + +Warning: +This boat is made of thin plastic. +Good Luck! +"Warnung: + + +>L +Dam Base +You are at the base of Flood Control Dam #3, which looms above you and to the north. The river Frigid is flowing by here. Along the river are the White Cliffs which seem to form giant walls stretching from north to south along the shores of the river as it winds its way downstream. +There is eine magic boat here. +Die magic boat contains: +Eine tan label + +>GET IN BOAT +You are now in der magic boat. +"du bist jetzt in dem Zauberboot". + +>LAUNCH +(die magic boat) +Frigid River, in der magic boat +You are on the Frigid River in the vicinity of the Dam. The river flows quietly here. There is a landing on the west shore. +"auf dem Gletsch im Zauberboot +du bist auf dem Gletsch bei dem Damm. Der Fluss fliesst ruhig hier. Es gibt einen Landungssteg am Westufer." +Die magic boat contains: +Eine tan label + +>Z +Time passes... +The flow of the river carries you downstream. +"Zeit vergeht +Die Stroemung traegt dich flussabwaerts" + +Frigid River, in der magic boat +The river turns a corner here making it impossible to see the Dam. The White Cliffs loom on the east bank and large rocks prevent landing on the west. +"Der Fluss fliesst hier um eine Biegung, die es unmoeglich macht, den Damm zu sehen. Die Weissen Felsen ragen ueber dem Ostufer auf und grosse Steine verhindern die Landung am Westufer." +Die magic boat contains: +Eine tan label + +>Z +Time passes... + +>Z +Time passes... +The flow of the river carries you downstream. + +Frigid River, in der magic boat +The river descends here into a valley. There is a narrow beach on the west shore below the cliffs. In the distance a faint rumbling can be heard. + +Die magic boat contains: +Eine tan label + +>Z +Time passes... +The flow of the river carries you downstream. +"Die Stroemung fuehrt dich flussabwaerts" + +Frigid River, in der magic boat +The river is running faster here and the sound ahead appears to be that of rushing water. On the east shore is a sandy beach. A small area of beach can also be seen below the cliffs on the west shore. +There is a red buoy here (probably a warning). +"Der Fluss stroemt hier staerker , und das Geraeusch vor dir scheint,das von.brausendem Wasser zu sein.An dem Ostufer ist ein Sandstrand. Ein bisschen Strand luft auch unter den Felsen an dem Westufer hervor." +Es gibt hier eine rote Markierungsboje (Wahrscheinlich eine Warnung)." +Die magic boat contains: +Eine tan label + +>GET BUOY +Taken. + +>E +Die magic boat comes to a rest on the shore. + +Sandy Beach, in der magic boat +You are on a large sandy beach on the east shore of the river, which is flowing quickly by. A path runs beside the river to the south here, and a passage is partially buried in sand to the northeast. +"Sandiger Strand im Zauberboot + +There is eine shovel here. (outside der magic boat) +"Da liegt eine Schaufel (ausserhalb des Bootes)." +Die magic boat contains: +Eine tan label + +>GET SHOVEL +Taken. + +>NE +Read the label for the boat's instructions. +"Lies die Anweisungen fuer das Boot." + +>GET OUT OF BOAT +You are on your own feet again. +"du stehst wieder auf eigenen Fuessen." + +>NE +Sandy Cave +This is a sand-filled cave whose exit is to the southwest. +"Sandige Hoehle +Dies ist eine sandgefuellte Hoehle, deren Ausgang nach Suedwesten geht." + +>DIG IN SAND +Digging with der pair of hands is slow and tedious. +"Mit den Haenden im Sand graben ist langsam und muehsam." + +>DIG IN SAND WITH SHOVEL +You seem to be digging a hole here. +"du scheinst hier ein Loch zu graben." + +>AGAIN +The hole is getting deeper, but that's about it. +"Das Loch wird immer tiefer, aber sonst nichts." + +>AGAIN +You are surrounded by a wall of sand on all sides. +" du bist auf allen Seiten von Sand umgeben." + +>SAVE +To file (SS:2): 3..1Ok. + +>AGAIN +To file (SS:3): 3..2Ok. + +>DIG IN SAND WITH SHOVEL +You can see a scarab here in the sand. +"du siehst hier einen Skarabaeus im Sand." + +>GET SCARAB +Your load is too heavy. + +>DROP SHOVEL +Dropped. + +>GET SCARAB + +Taken. + +>LOOK AT SCARAB +There's nothing special about die beautiful jeweled scarab. + +>SW +Sandy Beach +There is eine magic boat here. +Die magic boat contains: +Eine tan label + +>S +Shore +You are on the east shore of the river. The water here seems somewhat treacherous. A path travels from north to south here, the south end quickly turning around a sharp corner. +"Ufer + + +>S +Aragain Falls +You are at the top of Aragain Falls, an enormous waterfall with a drop of about 450 feet. The only path here is on the north end. +A solid rainbow spans the falls. + + +>W +On the Rainbow +You are on top of a rainbow (you probably thought you'd never would walk on a rainbow), with a magnificent view of the Falls. The rainbow travels east-west here. + +>W +End of Rainbow + +>SW +Canyon Bottom + +>U +Rocky Ledge + +>U +Canyon View + +>W +Forest + +>N +Clearing + +>W +Behind House + +>W +Kitchen + +>W +Living Room +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: +Eine sceptre +Eine pot of gold +Eine gold coffin +Eine painting + +>I +You are carrying: +Eine beautiful jeweled scarab +Eine red buoy +Eine hand-held air pump +Eine matchbook +Eine screwdriver +Eine tube +Eine torch (providing light) +Eine brass lantern + +>OPEN BUOY + +Opening die red buoy reveals eine large emerald. + +>GET EMERALD +Taken. + +>PUT EMERALD IN TROPHY CASE +Done. + +>PUT SCARAB IN CASE +Done. + +>I +You are carrying: +Eine red buoy +Eine hand-held air pump +Eine matchbook +Eine screwdriver +Eine tube +Eine torch (providing light) +Eine brass lantern + +>DROP SCREWDRIVER,PUMP,TUBE +screwdriver: Dropped. +hand-held air pump: Dropped. +tube: Dropped. + +>D +Cellar + +>S +East of Chasm + +>E +Gallery +There is eine brown sack here. +Die brown sack contains: +Eine clove of garlic + +>N +Studio +There is eine nasty knife here. +There is eine ZORK owner's manual here. + +>S +Gallery +There is eine brown sack here. +Die brown sack contains: +Eine clove of garlic + +>W +East of Chasm + +>N +Cellar + +>N +The Troll Room +There is eine bloody axe here. + +>E +East-West Passage + +>E +Round Room + +>E +Loud Room +This is a large room with a ceiling which cannot be detected from the ground. There is a narrow passage from east to west and a stone stairway leading upward. +The room is eerie in its quietness. +"Der Raum ist in seiner Stille unheimlich." + +>W +Round Room + +>SE +Engravings Cave +There are old engravings on the walls here. + +>E +Dome Room + +>D +Torch Room + +>S +Temple +There is eine brass bell here. + +>GET BELL +Taken. + +>S +Altar +On the two ends of the altar are burning candles. +On the altar is a large black book, open to page 569. + +>GET ALL +pair of candles: Taken. +black book: Taken. + +>D +Cave +This is a tiny cave with entrances west and north, and a dark, forbidding staircase leading down. + + +>D +Entrance to Hades +You are outside a large gateway, on which is inscribed + +Abandon every hope all ye who enter here! + +The gate is open; through it you can see a desolation, with a pile of mangled bodies in one corner. Thousands of voices, lamenting some hideous fate, can be heard. +The way through the gate is barred by evil spirits, who jeer at your attempts to pass. + +>SAVE +To file (SS:3): 3..4Ok. + +>DROP CANDLES +Dropped. + +>RING BELL +The bell suddenly becomes red hot and falls to the ground. The wraiths, as if paralyzed, stop their jeering and slowly turn to face you. On their ashen faces, the expression of a long-forgotten terror takes shape. +"Laeute die Glocke +"Die Glocke wird ploetzlich gluehend heiss und faellt zu Boden. Die Gespenster, als waeren sie versteinert, hoeren mit dem Gejammer auf und drehen sich dir zu. Auf ihren fahlen Gesichtern formt sich der Ausdruck einer langvergessenen Furcht." + +>HOLD CANDLE +Taken. +The flames flicker wildly and appear to dance. The earth beneath your feet trembles, and your legs nearly buckle beneath you. The spirits cower at your unearthly power. + + +>READ BOOK +Each word of the prayer reverberates through the hall in a deafening confusion. As the last word fades, a voice, loud and commanding, speaks: +"Begone, fiends!" A heart-stopping scream fills the cavern, and the spirits, sensing a greater power, flee through the walls. +"Lies das Buch + + +>S +Land of the Dead +You have entered the Land of the Living Dead. Thousands of lost souls can be heard weeping and moaning. In the corner are stacked the remains of dozens of previous adventurers less fortunate than yourself. A passage exits to the north. Lying in one corner of the room is a beautifully carved crystal skull. It +appears to be grinning at you rather nastily. +"Das Land der Toten +>GET KRISTALL + +Taken. + +>I +You are carrying: +Eine kristallen Hirnschale +Eine pair of candles (providing light) +Eine black book +Eine red buoy +Eine matchbook +Eine torch (providing light) +Eine brass lantern + +>LOOK AT BODIES +There's nothing special about die pile of bodies. + +>N +Entrance to Hades +On the ground is a red hot bell. + +>GET BELL +The bell is very hot and cannot be taken. + +>DROP BOOK, BUOY, MATCHES, CANDLES +black book: Dropped. +red buoy: Dropped. +matchbook: Dropped. +pair of candles: Dropped. + +>I +You are carrying: +Eine kristallen Hirnschale +Eine torch (providing light) +Eine brass lantern + +>U +Cave + +>N +Mirror Room +You are in a large square room with tall ceilings. On the south wall is an enormous mirror which fills the entire wall. There are exits on the other three sides of the room. +"Spiegelzimmer + + +>LOOK IN MIRROR +There is an ugly person staring back at you. +"Eine haessliche Person starrt aus dem Spiegel zurueck." + +>TALK TO MIRROR +You can't talk to der mirror! +"du kannst nicht mit dem Spiegel sprechen.! + +>FEEL MIRROR +There is a rumble from deep within the earth and the room shakes. +>; +[RENATA: I WAS TRANSPORTED TO A DIFFERENT MIRROR ROOM TO THE NORTH.] +W +Twisting Passage +This is a winding passage. It seems that there are only exits on the east and north. +"Ein Durchgang, der sich windet. +Dies ist ein Durchgang, der sich windet. Es scheint, als ob es nur Ausgaenge auf der Ost-und Nordseite gibt." + +>E +Cave +This is a tiny cave with entrances west and north, and a staircase leading down. +>S +Atlantis Room +This is an ancient room, long under water. There is an exit to the south and a staircase leading up. +On the shore lies Poseidon's own crystal trident. +"Atlantiszimmer +"Dies ist ein uraltes Zimmer, seit langem unter Wasser . Es gibt einen Ausgang nach Sueden und eine Treppe, die nach oben fuehrt. +Am Ufer liegt Poseidons ureigener Dreizack aus Kristall." + +>GET TRIDENT + +Taken. + +>S +Reservoir North + +>S +Reservoir + +>S +Reservoir South + +>SW +Chasm + +>S +North-South Passage + +>S +Round Room + +>W +East-West Passage + +>W +The Troll Room +There is eine bloody axe here. + +>S +Cellar + +>U +Living Room +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine screwdriver here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine beautiful jeweled scarab + Eine large emerald + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>I +You are carrying: + Eine crystal trident + Eine kristallen Hirnschale + Eine torch (providing light) + Eine brass lantern + +>PUT TRIDENT, HIRNSCHALE IN CASE +crystal trident: Done. +kristallen Hirnschale: Done. + +>D +Cellar + +>N +The Troll Room +There is eine bloody axe here. + +>E +East-West Passage + +>N +Chasm + +>U +East-West Passage + +>N +Chasm + +>I +You are carrying: + Eine clove of garlic + Eine torch (providing light) + Eine brass lantern + +>L +Chasm +A chasm runs southwest to northeast and the path follows it. You are on the south side of the chasm, where a crack opens into a passage. + +>S +North-South Passage + +>N +Chasm + +>NE +Reservoir South + +>N +Reservoir + +>N +Reservoir North + +>N +Atlantis Room + +>U +Cave + +>N +Mirror Room +You are in a large square room with tall ceilings. On the south wall is an enormous mirror which fills the entire wall. There are exits on the other three sides of the room. + +>N +Cold Passage +This is a cold and damp corridor where a long east-west passageway turns into a southward path. + + +>I +You are carrying: + Eine screwdriver + Eine clove of garlic + Eine torch (providing light) + Eine brass lantern + +>W +Slide Room +This is a small chamber, which appears to have been part of a coal mine. On the south wall of the chamber the letters "Granite Wall" are etched in the rock. To the east is a long passage, and there is a steep metal slide twisting downward. +To the north is a small opening. + + +>N +Mine Entrance +You are standing at the entrance of what might have been a coal mine. The shaft enters the west wall, and there is another exit on the south end of the room. +"Grubeneingang + + +>W +Squeaky Room +You are in a small room. Strange squeaky sounds may be heard coming from the passage at the north end. You may also escape to the east. +"Quietschzimmer +du bist in einem kleinen Zimmer. Eigentuemliche quietschende Geraeusche koennen von dem Durchgang am Nordende gehoert werden. du kannst auch nach Osten entfliehen." + +>N +Bat Room +You are in a small room which has doors only to the east and south. +There is an exquisite jade figurine here. +In the corner of the room on the ceiling is a large vampire bat who is obviously deranged and holding his nose. +"Fledermauszimmer +"du bist in einem kleinen Zimmer, das nur eine Tuer nach Osten und Sueden hat." +"In der Ecke des Zimmers haengt eine grosse Vampirfledermaus an der Decke, die offensichtlich nicht alle fuenf auf der Latte hat und sich die Nase zuhaelt." + +>; +;[NOTE: HOLDING HIS NOSE BECAUSE OF THE GARLIC.] +(Note: holding die Nase because of smelly root) +LOOK AT BAT +There's nothing special about die bat. + +>E +Shaft Room +This is a large room, in the middle of which is a small shaft descending through the floor into darkness below. To the west and the north are exits from this room. Constructed over the top of the shaft is a metal framework to which a heavy iron chain is attached. At the end of the chain is a basket. +"Schachtzimmer +Dies ist ein grosser Raum, in dessen Mitte sich ein kleiner Schacht befindet,der durch den Fussboden in die Dunkelheit verschwindet. Nach Westen und Norden gibt es Ausgaenge von diesem Zimmer. Ueber dem Schacht hat man ein Metallgehaeuse gebaut, an dem eine schwere, eiserne Kette befestigt ist. An dem anderen Ende der Kette haengt ein Korb." + + +>PUT SCREWDRIVER, TORCH IN BASKET +screwdriver: Done. +torch: Done. + +>LIGHT LAMP +Die brass lantern is now on. + +>N +Smelly Room +This is a small nondescript room. However, from the direction of a small descending staircase a foul odor can be detected. To the south is a narrow tunnel. +"Stinkendes Zimmer +Dies ist ein kleines unscheinbares Zimmer. Aber aus der Richtung einer kleinen, nach unten fuehrenden Treppe stroemt ein uebler Gestank . Nach Sueden verlaeuft ein schmaler Tunnel." + +>D +Gas Room +This is a small room which smells strongly of coal gas. There is a short climb up some stairs and a narrow tunnel leading east. +There is eine sapphire-encrusted bracelet here. +"Gaszimmer +Dies ist ein kleiner Raum, der stark nach Kohlendioxyd stinkt. Es gibt dort einen kurzen Treppenaufgang nach oben und einen schmalen Tunnel nach Osten." + +>E +Coal Mine +This is a nondescript part of a coal mine. + +>NE +Coal Mine +This is a nondescript part of a coal mine. +There is eine ZORK owner's manual here. +There is eine sword here. + +>SE +Coal Mine +This is a nondescript part of a coal mine. + +>SW +Coal Mine +This is a nondescript part of a coal mine. + +>D +Ladder Top +This is a very small room. In the corner is a rickety wooden ladder, leading downward. It might be safe to descend. There is also a staircase leading upward. +"Oberteil der Leiter +Dies ist ein sehr kleiner Raum. In der Ecke befindet sich einewackelige Holzleiter, die nach unten fuehrt. Sie macht einen relativ sicheren Eindruck Es gibt auch noch eine Treppe, die nach oben fuehrt. " + +>D +Ladder Bottom +This is a rather wide room. On one side is the bottom of a narrow wooden ladder. +To the west and the south are passages leaving the room. +"Am Fusse der Leiter +Dies ist ein ziemlich breiter Raum. Auf einer Seite sieht man das Unterteil einer schmalen Holzleiter." + +>S +Dead End +You have come to a dead end in the mine. +There is eine small pile of coal here. + +>GET COAL +Taken. + +>N +Ladder Bottom + +>U +Ladder Top + +>U +Coal Mine + +>N +Coal Mine + +>E +Coal Mine +There is eine ZORK owner's manual here. +There is eine sword here. + +>S +Coal Mine + +>N +Gas Room +There is eine sapphire-encrusted bracelet here. + +>U +Smelly Room + +>S +Shaft Room +At the end of the chain is a basket. +Die basket contains: + Eine torch (providing light) + Eine screwdriver + +>PUT COAL IN BASKET +Done. + +>LOOK AT BASKET +Die basket contains: + Eine small pile of coal + Eine torch (providing light) + Eine screwdriver + +>LOWER THE BASKET +The basket is lowered to the bottom of the shaft. + +>I +You are carrying: + Eine clove of garlic + Eine brass lantern (providing light) + +>N +Smelly Room + +>D +Gas Room +There is eine sapphire-encrusted bracelet here. + +>E +Coal Mine + + +>NE +Coal Mine +There is eine ZORK owner's manual here. +There is eine sword here. + +>SE +Coal Mine + +>SW +Coal Mine + +>D +Ladder Top + +>D +Ladder Bottom + +>I +You are carrying: + Eine clove of garlic + Eine brass lantern (providing light) + +>W +Timber Room +This is a long and narrow passage, which is cluttered with broken timbers. A wide passage comes from the east and turns at the west end of the room into a very narrow passageway. From the west comes a strong draft. +There is eine broken timber here. +"Balkenzimmer +Dies ist ein langer und schmaler Durchgang, der mit zerbrochenen Balken vollgestopft. Ein breiter Durchgang kommt von Osten und muendet am Westende des Raumes in einen sehr engen Durchgang. Von Westen kommt ein starker Durchzug." + +>DROP ALL +clove of garlic: Dropped. +brass lantern: Dropped. + +>W +Drafty Room +This is a small drafty room in which is the bottom of a long shaft. To the south is a passageway and to the east a very narrow passage. In the shaft can be seen a heavy iron chain. At the end of the chain is a basket. +"Zugiges Zimmer +Dies ist ein kleines, zugiges Zimmer, in dem sich das untereEnde eines langen Schachtes befindet Nach Sueden fuehrt ein Durchgang und nach Osten ein sehr schmaler Durchgang. In dem Schacht kann man eine schwere Eisenkette sehen. Am Ende der Kette haengt ein Korb." +Die basket contains: + Eine small pile of coal + Eine torch (providing light) + Eine screwdriver + +>GET ALL FROM BASKET +small pile of coal: +Taken. +torch: +Taken. +screwdriver: +Taken. + +>S + +Machine Room +This is a large, cold room whose sole exit is to the north. In one corner there is a machine which is reminiscent of a clothes dryer. On its face is a switch which is labelled "START". The switch does not appear to be manipulable by any human hand (unless the fingers are about 1/16 by 1/4 inch). On the front of the machine is a large lid, which is closed. +"Maschinenraum +Dies ist ein grosser kalter Raum, dessen einziger Ausgang nach Norden fuehrt. In einer Ecke steht eine die an einen Waeschetrockner erinnert. Vorne ist ein Schalter, mit der Aufschrift "EIN". Der Schalter scheint nicht fuer Menschenhaende gebaut zu sein (ausser, wenn die Finger 1/2cm mal 1cm waeren). Vorne an der Maschine ist eine grosse Klappe, die geschlossen ist." + +>LOOK AT MACHINE +Die machine is closed. + +>OPEN MACHINE +The lid opens. + +>PUT COAL IN MACHINE +Done. + +>CLOSE MACHINE +The lid closes. + +>LOOK AT SWITCH +There's nothing special about die switch. + +>TURN SWITCH WITH SCREWDRIVER +The machine comes to life (figuratively) with a dazzling display of colored lights and bizarre noises. After a few moments, the excitement abates. +"Die Maschine erwacht zum Leben(im uebertragenen Sinne):Sie laesst bunte Lichter aufflackern und gibt haarstraeubende Geraeusche von sich. Nach ein paar Sekunden hoert der Zauber auf." + +>OPEN MACHINE +The lid opens, revealing eine huge diamond. + +>GET DIAMOND + +Taken. + +>I +You are carrying: + Eine huge diamond + Eine screwdriver + Eine torch (providing light) + +>PUT DIAMOND AND TORCH IN BASKET +huge diamond: You can't see any basket here! +torch: You can't see any basket here! + +>N +Drafty Room +At the end of the chain is a basket. + +>PUT DIAMOND AND TORCH IN BASKET +huge diamond: +Done. +torch: +Done. + +>E + +You cannot fit through this passage with that load. + +>I + +You are carrying: + Eine screwdriver + +>DROP DRIVER + +Dropped. + +>E + +Timber Room +There is a brass lantern (battery-powered) here. +There is eine clove of garlic here. +There is eine broken timber here. + +>GET ALL +brass lantern: Taken. +clove of garlic: Taken. +broken timber: Taken. + +>DROP TIMBER +Dropped. + +>E +Ladder Bottom + +>W +Timber Room +There is eine broken timber here. + +>E +Ladder Bottom + +>U +Ladder Top + +>U +Coal Mine + +>N +Coal Mine + +>E +Coal Mine +There is eine ZORK owner's manual here. +There is eine sword here. + +>S +Coal Mine + +>N +Gas Room +There is eine sapphire-encrusted bracelet here. + +>GET BRACELET + +Taken. + +>U +Smelly Room + +>I +You are carrying: + Eine sapphire-encrusted bracelet + Eine clove of garlic + Eine brass lantern (providing light) + +>S +Shaft Room +From the chain is suspended a basket. + +>L IN BASKET +The basket is at the other end of the chain. + +>RAISE BASKET +The basket is raised to the top of the shaft. + +>LOOK IN BASKET +Die basket contains: + Eine torch (providing light) + Eine huge diamond + +>GET ALL FROM BASKET +torch: Taken. +huge diamond: Taken. + +>I +You are carrying: + Eine huge diamond + Eine torch (providing light) + Eine sapphire-encrusted bracelet + Eine clove of garlic + Eine brass lantern (providing light) + +>W +Bat Room +There is an exquisite jade figurine here. +In the corner of the room on the ceiling is a large vampire bat who is obviously deranged and holding his nose. + +>GET JADE + +Taken. + +>DROP GARLIC +Dropped. + +>S +Squeaky Room + +>E +Mine Entrance + +>S +Slide Room + +>D +Cellar + +>I +You are carrying: + Eine jade figurine + Eine huge diamond + Eine torch (providing light) + Eine sapphire-encrusted bracelet + Eine brass lantern (providing light) + +>U +Living Room +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine large emerald + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL BUT LAMP AND TORCH IN TROPHY CASE +jade figurine: Done. +huge diamond: Done. +sapphire-encrusted bracelet: Done. + +>SCORE +Your score is 247 (total of 350 points), in 485 moves. +This gives you the rank of Adventurer. + +>I +You are carrying: + Eine torch (providing light) + Eine brass lantern (providing light) + +>E +Kitchen + +>W +Living Room +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine sapphire-encrusted bracelet + Eine huge diamond + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine large emerald + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>D +Cellar + +>S +East of Chasm + +>E +Gallery +There is eine brown sack here. + +>N +Studio +There is eine nasty knife here. + +>GET KNIFE +Taken. + +>S +Gallery +There is eine brown sack here. + +>GET FOOD +You can't see any food here! + +>GET SACK +Taken. + +>LOOK IN SACK +Die brown sack is empty. + +>W +East of Chasm + +>N +Cellar + +>N +The Troll Room +There is eine bloody axe here. + +>W +Maze +This is part of a maze of twisty little passages, all alike. + +>W +Maze +This is part of a maze of twisty little passages, all alike. + +>W +Maze +This is part of a maze of twisty little passages, all alike. + +>U +Maze +This is part of a maze of twisty little passages, all alike. A skeleton, probably the remains of a luckless adventurer, lies here. +Beside the skeleton is a rusty knife. +The deceased adventurer's useless lantern is here. +There is eine skeleton key here. Renata had to add different pun. +An old leather bag, bulging with coins, is here. + +"Irrgarten: Dies ist ein Teil eines Irrgartens: kleine, verwirrende +Gaenge, die sich alle aehnlich sehen. In einer Ecke liegt ein Skelett. + +Daneben steht die nutzlose Laterne des +toten Abenteurers, und auch ein rostiges Messer ist hier. + +>GET SKELETON KEY, BAG OF COINS +skeleton key: Taken.change in German +leather bag of coins: +Taken. + +>SW +Maze +This is part of a maze of twisty little passages, all alike. + +>E +Maze +This is part of a maze of twisty little passages, all alike. + +>S +Maze +This is part of a maze of twisty little passages, all alike. + +>SE +Cyclops Room +This room has an exit on the northwest, and a staircase leading up. +A cyclops, who looks prepared to eat horses (much less mere adventurers), blocks the staircase. From his state of health, and the bloodstains on the walls, you gather that he is not very friendly, though he likes people. +"Zyklopenzimmer +Dieser Raum hat einen Ausgang nach Nordwesten, und eine Treppe fuehrt nach oben. Ein Zyklope, der seinen Appetit gerade auf ein paar Gaeule eingestellt hat (Abenteurer weniger auf simple Abenteurer ), blockiert die Treppe. Aus seinem Gesundheitszustand und den Blutspuren an den Waenden kannst du schliessen, dass er nicht sehr freundlich ist. Ansonsten mag er Menschen." + +>SAVE +To file (SS:4): 5..1Ok. + +>I +You are carrying: + Eine leather bag of coins + Eine skeleton key + Eine brown sack + Eine nasty knife + Eine torch (providing light) + Eine brass lantern (providing light) + +>TALK TO CYCLOPS +Die cyclops pauses for a moment, perhaps thinking that you should reread the manual. + +>LOOK AT CYCLOPS +A hungry cyclops is standing at the foot of the stairs. + +>U +The cyclops doesn't look like he'll let you past. + +>ODYSSEUS +The cyclops, hearing the name of his father's deadly nemesis, flees the room by knocking down the wall on the east of the room. +"Als der Zyklop von der toedlichen Strafe seines Vaters hoert, durchbricht er die Ostwand des Zimmers und flieht." + +>E +Strange Passage +This is a long passage. To the west is one entrance. On the east there is an old wooden door, with a large opening in it (about cyclops sized). +"Eigentuemlicher Durchgang +Dies ist ein langer Durchgang. Nach Westen ist ein Eingang. Auf der Ostseite befindet sich eine Holztuer mit einer grossen Oeffnung darin (ungefaehr in der Form eines Zyklopen). + +>E +Living Room +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine sapphire-encrusted bracelet + Eine huge diamond + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine large emerald + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET DIAMOND, EMERALD +huge diamond: Taken. +large emerald: Taken. + +>GET JADE +You're holding too many things already! + + +>I +You are carrying: + Eine large emerald + Eine huge diamond + Eine leather bag of coins + Eine skeleton key + Eine brown sack + Eine nasty knife + Eine torch (providing light) + Eine brass lantern (providing light) + +>DROP SACK +Dropped. + +>LOOK IN SACK +Die brown sack is empty. + +>TURN OFF LAMP +Die brass lantern is now off. + +>W +Strange Passage + +>W +Cyclops Room + +>U +You hear a scream of anguish as you violate the robber's hideaway. Using passages unknown to you, he rushes to its defense. +The thief gestures mysteriously, and the treasures in the room suddenly vanish. +"Du hoerst einen Schreckensschrei, als du in das Versteck des Raeubers eindringst. Auf dir unbekannten Wegen eilt er herbei, sein Versteck zu verteidigen. +Der Raeuber gestikuliert mit geheimnisvollen Gebaerden und ploetzlich sind alle Schaetze verschwunden." + +Treasure Room +This is a large room, whose east wall is solid granite. A number of discarded bags, which crumble at your touch, are scattered about on the floor. There is an exit down a staircase. +"Schatzzimmer +Dies ist ein grosser Raum, dessen Ostwand aus Granit ist. Eine Menge weggeworfener Tueten, die bei der kleinsten Beruehrung zerfallen, sind auf dem Fussboden verstreut." +There is a suspicious-looking individual, holding a large bag, leaning against one wall. He is armed with a deadly stiletto. +There is a silver chalice, intricately engraved, here. +A quick thrust pinks your left arm, and blood starts to trickle down. + +"Ein verdaechtig aussehender Kerl, mit einr Tuete in der Hand steht an die Wand,gelehnt. Er ist mit einem toedlichen Stilett bewaffnet. +Da ist ein silberner Pokal, der elegant graviert ist. +Ein schneller Stich trifft deinen linken Arm, und Blut troepfelt herab." + +>SAVE +To file (SS:5): 6..1Ok. + +>GIVE DIAMOND TO MAN +The thief is taken aback by your unexpected generosity, but accepts the die huge diamond and stops to admire its beauty. +"Der Dieb ist voellig perplex ueber deine unerwartete Grosszuegigkeit, aber er ..... + +>GIVE DIAMOND TO THIEF +You don't have the huge diamond. + +>GIVE EMERALD TO THIEF +The thief is taken aback by your unexpected generosity, but accepts the die large emerald and stops to admire its beauty. + +>I +You are carrying: + Eine leather bag of coins + Eine skeleton key + Eine nasty knife + Eine torch (providing light) + Eine brass lantern +The stiletto flashes faster than you can follow, and blood wells from your leg. +"Das Stilett sticht schneller, als du gucken kannst , und Blut stroemt aus deinem Bein." +>GIVE COINS TO THIEF +The thief is taken aback by your unexpected generosity, but accepts the die leather bag of coins and stops to admire its beauty. + +>SAVE +To file (SS:6): 7..1Ok. + +>KILL THIEF +(with der nasty knife) +The thief is staggered, and drops to his knees. +"Der Dieb ist total fertig und faellt auf die Kniee." +Die thief slowly regains his feet. + +>AGAIN +(with der nasty knife) +Your stroke lands, but it was only the flat of the blade. +The thief draws blood, raking his stiletto across your arm. +"Der Dieb ritzt mit seinem Stilettstich deinen Arm blutig ." + +>OOPS NASTY +It's curtains for the thief as your nasty knife removes his head. Almost as soon as die thief breathes his last breath, a cloud of sinister black fog envelops him, and when the fog lifts, the carcass has disappeared. As the thief dies, the power of his magic decreases, and his treasures reappear: + Eine huge diamond + Eine large emerald + Eine leather bag of coins + Eine stiletto + Eine trunk of jewels + Eine platinum bar + Eine jewel-encrusted egg, with eine golden clockwork canary +The chalice is now safe to take. + +>GET ALL +huge diamond: Taken. +large emerald: Taken. +leather bag of coins: Your load is too heavy, especially in light of your condition. +stiletto: Your load is too heavy, especially in light of your condition. +trunk of jewels: Your load is too heavy, especially in light of your condition. +platinum bar: Your load is too heavy, especially in light of your condition. +jewel-encrusted egg: Your load is too heavy, especially in light of your +condition. +chalice: Your load is too heavy, especially in light of your condition. + +>DIAGNOSE +You have several wounds, which will be cured after 88 moves. +You can be killed by a serious wound. +"Diagnose +Du hast mehrere Wunden, die nach 88 Spielrunden geheilt sein werden. +Eine ernsthafte Verletzung kann dich toeten." + +>D +Cyclops Room + +>E +Strange Passage + +>E +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL IN TROPHY CASE +large emerald: Done. +huge diamond: Done. +skeleton key: Done. +nasty knife: Done. +torch: Done. +brass lantern: Done. + +>GET TORCH +Taken. + +>W +Strange Passage + +>W +Cyclops Room + +>U +Treasure Room +An old leather bag, bulging with coins, is here. +There is eine stiletto here. +There is an old trunk here, bulging with assorted jewels. +On the ground is a large platinum bar. +There is eine jewel-encrusted egg here. +There is a golden clockwork canary nestled in the egg. It has ruby eyes and a silver beak. Through a crystal window below its left wing you can see intricate machinery inside. It appears to have wound down. There is a silver chalice, intricately engraved, here. + +>GET ALL +leather bag of coins: Taken. +stiletto: Taken. +trunk of jewels: Your load is too heavy, especially in light of your condition. platinum bar: Taken. jewel-encrusted egg: Your load is too heavy, especially in light of your condition. chalice: Your load is too heavy, especially in light of your condition. + +>I +You are carrying: + Eine platinum bar + Eine stiletto + Eine leather bag of coins + Eine torch (providing light) + +>D +Cyclops Room + +>E +Strange Passage + +>E +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL BUT TORCH IN CASE +platinum bar: Done. +stiletto: Done. +leather bag of coins: Done. + +>LOOK AT TORCH +The torch is burning. + +>W +Strange Passage + +>W +Cyclops Room + +>U +Treasure Room +There is an old trunk here, bulging with assorted jewels. +There is eine jewel-encrusted egg here. +There is a golden clockwork canary nestled in the egg. It has ruby eyes and a silver beak. Through a crystal window below its left wing you can see intricate machinery inside. It appears to have wound down. +There is a silver chalice, intricately engraved, here. + +>GET ALL +trunk of jewels: +Taken. +jewel-encrusted egg: Taken. +chalice: Your load is too heavy, especially in light of your condition. + +>D +Cyclops Room + +>E +Strange Passage + +>E +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL BUT TORCH IN CASE +jewel-encrusted egg: Done. +golden clockwork canary: That's easy for you to say since you don't even have die golden clockwork canary trunk of jewels: Done. + +>I +You are carrying: + Eine torch (providing light) + +>W +Strange Passage + +>W +Cyclops Room + +>U +Treasure Room +There is a silver chalice, intricately engraved, here. + +>GET CHALICE + +Taken. + +>LOOK AT CHALICE +It looks pretty much like a die chalice. + +>D +Cyclops Room + +>E +Strange Passage + +>E +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine trunk of jewels + Eine jewel-encrusted egg +There is a golden clockwork canary nestled in the egg. It has ruby eyes and a silver beak. Through a crystal window below its left wing you can see intricate machinery inside. It appears to have wound down. + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>I +You are carrying: + Eine chalice + Eine torch (providing light) + +>PUT CHALICE IN TROPHY CASE +Done. + +>E +Kitchen + +>E +Behind House + +>N +North of House + +>N +Forest Path +You hear in the distance the chirping of a song bird. + +>I +You are carrying: + Eine torch (providing light) +You hear in the distance the chirping of a song bird. + +>S +North of House + +>S +The windows are all boarded. + +>E +Behind House + +>W +Kitchen + +>W +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine chalice + Eine trunk of jewels + Eine jewel-encrusted egg +There is a golden clockwork canary nestled in the egg. It has ruby eyes and a silver beak. Through a crystal window below its left wing you can see intricate machinery inside. It appears to have wound down. + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET EGG +Taken. + +>LOOK AT EGG +Die jewel-encrusted egg contains: + Eine golden clockwork canary + +>E +Kitchen + +>E +Behind House + +>N +North of House + +>N +Forest Path +You hear in the distance the chirping of a song bird. + +>U +Up a Tree +Beside you on the branch is a small bird's nest. + +>SAVE +To file (SS:7): 8..1Ok. + +>I +You are carrying: + Eine jewel-encrusted egg + Die jewel-encrusted egg contains: + Eine golden clockwork canary + Eine torch (providing light) + +>GET CANARY + +Taken. +You hear in the distance the chirping of a song bird. + +>LOOK AT CANARY +There's nothing special about die golden clockwork canary. + +>WIND THE CLOCKWORK CANARY +The canary chirps, slightly off-key, an aria from a forgotten opera. From out of the greenery flies a lovely songbird. It perches on a limb just over your head and opens its beak to sing. As it does so a beautiful brass bauble drops from its mouth, bounces off the top of your head, and lands glimmering in the grass. +As the canary winds down, the songbird flies away. +"Der Kanarienvogel schmettert eine Arie, aus einer laengstvergessenen Oper. Er singt reichlich schraege . Aus dem Gruenen kommt ein lieblicher Singvogel geflogen. . Er laesst sich auf einem Zweig direkt ueber deinem Kopf nieder und oeffnet den Schnabel zum Singen. Gerade will er loslegen, da faellt eine schoene goldene Flitterkugel aus dem Schnabel, prallt auf deinen Kopf und landet schliesslich glitzernd im Gras." + +>LOOK AT BAUBLE +You can't see any bauble here! + +>D +Forest Path +There is eine beautiful brass bauble here. +You hear in the distance the chirping of a song bird. + +>GET BRASS BAUBLE + +Taken. + +>S +North of House + +>E +Behind House + +>W +Kitchen + +>W +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>PUT ALL IN CASE +beautiful brass bauble: Done. +golden clockwork canary: Done. +jewel-encrusted egg: Done. +torch: Done. + +>LOOK ON CASE +Look on einer trophy case??? + +>LOOK AT CASE +Your collection of treasures consists of: + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine brass lantern + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine kristallen Hirnschale + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET TREASURE +Welche treasure meinst du, die torch, die jewel-encrusted egg, die golden clockwork canary, die beautiful brass bauble, die chalice, die trunk of jewels, die leather bag of coins, die platinum bar, die huge diamond, die large emerald, +die sapphire-encrusted bracelet, die jade figurine, die crystal trident, die beautiful jeweled scarab, die sceptre, die pot of gold, die gold coffin, or die painting? +>I +You are empty-handed. + +>GET LAMP +Taken. + +>TURN LAMP ON +Die brass lantern is now on. + +>I +You are carrying: + Eine brass lantern (providing light) + +>LOOK AT TREASURE +Welche treasure meinst du, die torch, die jewel-encrusted egg, die goldenclockwork canary, die beautiful brass bauble, die chalice, die trunk of jewels,die leather bag of coins, +die platinum bar, +die huge diamond, +die large emerald, +die sapphire-encrusted bracelet, +die jade figurine, +die crystal trident, +die beautiful jeweled scarab, +die sceptre, +die pot of gold, +die gold coffin, +or die painting? + +>WHERE IS KRISTALL +Die in der trophy case. + +>WHERE IS PARCHMENT +You can't see any parchment here! + +>GET KRISTALL +Taken. + +The lamp appears a bit dimmer. + +>E +Kitchen + +>LOOK AT TREASURE +You can't see any treasure here! + +>I +You are carrying: + Eine kristallen Hirnschale + Eine brass lantern (providing light) + +>W +Living Room +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>TURN OFF TORCH +(Taken) +You nearly burn your hand trying to extinguish the flame. +"Bei dem Versuch die Flamme zu loeschen, verbrennst du dir beinahe die Hand." + +>I +You are carrying: + Eine torch (providing light) + Eine kristallen Hirnschale + Eine brass lantern (providing light) + +>PUT ALL BUT LAMP IN CASE +torch: Done. +kristallen Hirnschale: Done. + +>L AT PARCHMENT +You can't see any parchment here! + +>I +You are carrying: + Eine brass lantern (providing light) + +>LOOK AT MAP +You can't see any map here! + +>Z +Time passes... + +>I +You are carrying: + Eine brass lantern (providing light) + +>I +You are carrying: + Eine brass lantern (providing light) + +>L +Living Room +You are in the living room. There is a doorway to the east. To the west is a cyclops-shaped opening in an old wooden door, above which is some strange gothic lettering, a trophy case, and a rug lying beside an open trap door. +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>LOOK AT MAP +You can't see any map here! + +>L +Living Room +You are in the living room. There is a doorway to the east. To the west is a cyclops-shaped opening in an old wooden door, above which is some strange gothic lettering, a trophy case, and a rug lying beside an open trap door. +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine stiletto + Eine platinum bar + Eine nasty knife + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET STILETTO,KNIFE +stiletto: Taken. +nasty knife: Taken. + +>L +Living Room +You are in the living room. There is a doorway to the east. To the west is a cyclops-shaped opening in an old wooden door, above which is some strange gothic lettering, a trophy case, and a rug lying beside an open trap door. +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine platinum bar + Eine skeleton key + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>GET KEY +Taken. + +>L +Living Room +You are in the living room. There is a doorway to the east. To the west is a cyclops-shaped opening in an old wooden door, above which is some strange gothic lettering, a trophy case, and a rug lying beside an open trap door. +There is eine brown sack here. +There is an object which looks like a tube of toothpaste here. +There is eine hand-held air pump here. +There is eine glass bottle here. +A hot pepper sandwich is here. +Your collection of treasures consists of: + Eine kristallen Hirnschale + Eine torch (providing light) + Eine jewel-encrusted egg + Eine golden clockwork canary + Eine beautiful brass bauble + Eine chalice + Eine trunk of jewels + Eine leather bag of coins + Eine platinum bar + Eine huge diamond + Eine large emerald + Eine sapphire-encrusted bracelet + Eine jade figurine + Eine crystal trident + Eine beautiful jeweled scarab + Eine sceptre + Eine pot of gold + Eine gold coffin + Eine painting + +>CLOSE TROPHY CASE +Closed. + +>LOOK AT MAP +You can't see any map here! + +>SAVE +To file (SS:8): 9..1Ok. + +>Q +Your score is 350 (total of 350 points), in 636 moves. +This gives you the rank of Master Adventurer. +Do you wish to leave the game? (Y is affirmative): >Y +:>?, denn die meisten wertvollen Geraete sind we1RyLyS}}w@ Hyz=uv<~AH +NE +DE={{{{{{{{{{{{{{{{{{{{{{{=>Eqr~  njRSl(Xe{{{{{{{{{{{{{{{{{{{{{{{eft{| +  2 3 ] +A +K +] +l  Y \ h 6 + +; +< +H{{{{{{{{{{{{{{{{{{{{{{{ +H +RN56uv 9EFP~.1=>A{{{{{{{{{{{{{{{{{{{{{{{AJ!DO7`an'krs:;>E~;<?F{{{{{{{{{{{{{{{{{{{{{{{F|FGJQABWx&'*67:IJMZo{{{{{{{{{{{{{{{{{{{{{{{"~qru|569BEQ%ADP`n 1 2 5 C{{{{{{{{{{{{{{{{{{{{{{{ C!l!";"<"?"N#}#$V$W$h%%-%.%2%@%A%D%P%Q%T%`%a{{{{{{{{{{{{{{{{{{{{{{{%a%e%n%o%r%%%%%z&&y&z&}&&=&>&L&y'5'6'9'F'G{{{{{{{{{{{{{{{{{{{{{{{'G'J'Y'Z']'j'k'x':( +( (!("(*)3)U)p))I)Q++%+o+p{{{{{{{{{{{{{{{{{{{{{{{+p+{++++++8+9+D, ,R,S,a,, ,,M------$-S{{{{{{{{{{{{{{{{{{{{{{{-S-- ----*-j.2.3.6.X..9///&0:0N18191<1D1E{{{{{{{{{{{{{{{{{{{{{{{1E1H1T2-2m3$304X4Y4d4k4l4v44$4%434K4h4i4x5!5P5Q{{{{{{{{{{{{{{{{{{{{{{{5Q5T5\5]5k55(5)5,585o5p5s666"626K6`6k666%6&{{{{{{{{{{{{{{{{{{{{{{{6&696I6`6a6k6r6s6v6~677$7]7^7l7 7*7+717n88@8K{{{{{{{{{{{{{{{{{{{{{{{8K88G99 +9%9&9)9;9`9k9{99)9=9V9c9d9q9z9{: ::{{{{{{{{{{{{{{{{{{{{{{{:::$:%:(:.:k: :0:U:V:a:h:i:l:~;;;>;I;Y;r;; {{{{{{{{{{{{{{{{{{{{{{{; ;!;$;,;-;0;<;];|<<-<+=!="=0= =1>=>>>L>>~>?{{{{{{{{{{{{{{{{{{{{{{{??b?_?`?c@"@f@g@nAAIAQBB*BuBTBUBXBfCDFDjDkDn{{{{{{{{{{{{{{{{{{{{{{{DnDvE +EE0FsFtGGGGG&H!HWH`J(J\JhJpKKL +L L%{{{{{{{{{{{{{{{{{{{{{{{L%M3M4M5M8MjM%M&M?M]MsNNN5N6N9NANBNENlN!N"N%N1{{{{{{{{{{{{{{{{{{{{{{{N1NRNqNrOOUOVOYOOOOLP P +P +PPBPSQQQmRR_R`{{{{{{{{{{{{{{{{{{{{{{{R`RARiS5S7S=SUSVSeS;T +TZT[TqTTRUUSUTUkUU=UtV({{{{{{{{{{{{{{{{{{{{{{{V(V)V5VFVwVFWWcWdWpWWWMXdXXYyYYY,YJYlYmZ{{{{{{{{{{{{{{{{{{{{{{{ZZZZZ&ZKZLZOZVZWZZZhZiZlZtZmZnZ|Z}[[[[C[D{{{{{{{{{{{{{{{{{{{{{{{[D[G[N[m[[[4[T[|\L\3\w]r]s]v]~]]]]/]N]O]a]i{{{{{{{{{{{{{{{{{{{{{{{]i]j^^^^^f^g^j^'^(^/^0^3^A^B^E^M^N^Q^X^w__%{{{{{{{{{{{{{{{{{{{{{{{_%_>_^_______$_%_(_6_7_:_A_B_E_T_n` +```{{{{{{{{{{{{{{{{{{{{{{{``$````!aa-a'a(a,a<bb.bJbbMbNbQb[ccdYdZ{{{{{{{{{{{{{{{{{{{{{{{dZdod4eeeee~fVff glh&h'h2h3h:h;hJhhhihlh~h{{{{{{{{{{{{{{{{{{{{{{{hh.h/h2h9iRiqk.kZk[k^klkKl l:l;lGlHlOlPl`l{l|l{{{{{{{{{{{{{{{{{{{{{{{lmm%m&m)m/mun'n]nxo2oho=o>oIo\oiojp pYppFp{qh{{{{{{{{{{{{{{{{{{{{{{{qhqqRrr\r$rmsXs ss0s1s7s>tttt)t_t`tctrtstv{{{{{{{{{{{{{{{{{{{{{{{tvtttttttt@t_u uuu3u9u:uFuMuNuQuYuZu]uj{{{{{{{{{{{{{{{{{{{{{{{ujukunuwuxu{uuu uuuu)u*u-u<u=uJuxuyvvvv{{{{{{{{{{{{{{{{{{{{{{{vvvvVw"wRwwww7w8w<wJwKwNwZw[w^wjwkwnwuwvwy{{{{{{{{{{{{{{{{{{{{{{{wyx*xgxhxkxtxuxxxxx xxxx!xBxay yyy5y;y<y?{{{{{{{{{{{{{{{{{{{{{{{y?yGyHyKyXyYy\yeyfyiyuyvyyyyy yyyy*yVyWyayb{{{{{{{{{{{{{{{{{{{{{{{ybyiyjyny|y}zz z +zzzz z'z(z+z4z5z8zEzFzIzQzR{{{{{{{{{{{{{{{{{{{{{{{zRzkzzzzz@z_{ {{({){B{H{I{L{^{k{{{{){/{0{{{{{{{{{{{{{{{{{{{{{{{{0{3{L{M{X||||p|a|b|e|l|m|p|}}}"}4}5}8}C}D{{{{{{{{{{{{{{{{{{{{{{{}D}G}Q}p~~0K`01;GHNw,-7^_qry{{{{{{{{{{{{{{{{{{{{{{{yz +#'(+>{{{{{{{{{{{{{{{{{{{{{{{(),6]^almpFZ &09abf{{{{{{{{{{{{{{{{{{{{{{{fvTz + 1 2 5 A 8 L +F +G +J +Z +[ +_ +k  + l m p{{{{{{{{{{{{{{{{{{{{{{{ p t - A B H<=F^ MNQ['(s7O1{{{{{{{{{{{{{{{{{{{{{{{1WZk<JxRrnox( xy{{{{{{{{{{{{{{{{{{{{{{{&u >?BL[\krsMN^_}~C{{{{{{{{{{{{{{{{{{{{{{{CaUVUV] @T n o z % & = t u!{{{{{{{{{{{{{{{{{{{{{{{!! ! !!!!"!1!2!5!E!u"#b$$$$$$$]$h%o%:%;{{{{{{{{{{{{{{{{{{{{{{{%;%K%n%o%r&&M&)&b' ''`'I'( (!(+(2(3(6(@((({{{{{{{{{{{{{{{{{{{{{{{((((((:(;(>(G)c*,*B+P++.+a+b+q,$,%,B,k,,{{{{{{{{{{{{{{{{{{{{{{{,,!,D,F,U,k,l----C--F.4.5.?.@.N/c/l///$/M{{{{{{{{{{{{{{{{{{{{{{{/M/c/d/g/p1 1*1C1R1S1`11"1#1+1<1\2X2x2e2~3 +33{{{{{{{{{{{{{{{{{{{{{{{33 3N3\333&4=4x55 5!5$5354575F5t5u56'6I6b6q{{{{{{{{{{{{{{{{{{{{{{{6q6r6u7727\7]7}8I8x9J99*999:9D9K9L9O9|9}::d;{{{{{{{{{{{{{{{{{{{{{{{;;Q<<7 >E>F>_>>*>+>2>c????O?}?~??$?%?,?L?M?f{{{{{{{{{{{{{{{{{{{{{{{?f@ +@8@9@E@]@^@k@t@u@@@ @ +@@V@W@[@gAAA.A/A2{{{{{{{{{{{{{{{{{{{{{{{A2A8AiAoBBBB'C)CJC\ChDDDD)DKD_E:E=ELEMEQE_{{{{{{{{{{{{{{{{{{{{{{{E_E`EcEoEpEsEFFF +F FFFFF(F)F,F4F5F8FDFeF{{{{{{{{{{{{{{{{{{{{{{{FF.F;FLF]FkFlFoGGG-GEGTGeGoG GG G+G,G]G^GkGr{{{{{{{{{{{{{{{{{{{{{{{GrGsHHHH*H0H1H4HFHTHlH{H HH3HFHGHcHyII%I&I){{{{{{{{{{{{{{{{{{{{{{{I)I0I1I4IBICIFINImIIIII&IFInIoIrIzJJ2JGJHJK{{{{{{{{{{{{{{{{{{{{{{{JKJYJZJ]JdJeJhJwJJJJ,J-J0J;J<J?JIKhK K8K9K<KG{{{{{{{{{{{{{{{{{{{{{{{KGKHKLK\LL L LLLL%L&L)L0LOLPLZLaLbLeLkLLSLT{{{{{{{{{{{{{{{{{{{{{{{LTL]LuMM M MMsMaMbMeMwN.N/NYNZN~OUOnO*ObP0Q)Q/{{{{{{{{{{{{{{{{{{{{{{{Q/QOQPQ^QgQhQsRIR\SNSOS\ScT T3T4T?UMUKUZWWW(X_{{{{{{{{{{{{{{{{{{{{{{{X_X X!Z;ZIZJZQZRZUZgZZ)Z9ZGZVZs[[[[I[J[M[_[{{{{{{{{{{{{{{{{{{{{{{{[[[ [5[6[Y[n\\\/\0\3\E\`\}\\\\\\\)]W]g{{{{{{{{{{{{{{{{{{{{{{{]g^^ ^0^]^^^'^E^q^r^_B_E_ +_ __r````` +`\{{{{{{{{{{{{{{{{{{{{{{{`\`_`maRaabbObPb]b^bebfbibybzb}bbb bbb b&{{{{{{{{{{{{{{{{{{{{{{{b&b'b*b>b?bBbMbNbQbcbdbgbvcccc c!c$c0cocc6cW{{{{{{{{{{{{{{{{{{{{{{{cWcvd dBdYdjddd&d'd*d<dSdpee$e%eFe]eze{e~ee{{{{{{{{{{{{{{{{{{{{{{{ee ee7e8e;eMeNeQeWeXe[emeneqewexe{f +f$fCfXfYf\{{{{{{{{{{{{{{{{{{{{{{{f\fbfkflfogggg +ggg"g#g&g0g1g4gDgEgHgVgWgZg_{{{{{{{{{{{{{{{{{{{{{{{g_g`gcgohhh!h.hh!iii&i9iPioiiiijj$j5kB{{{{{{{{{{{{{{{{{{{{{{{kBkCkFkTlrlm,m-m0m=mEmVn{n|nnnLnvofoyoHopp p {{{{{{{{{{{{{{{{{{{{{{{p ppApqp}q$q%q(q3r`rpsIsJsKsmtt +ttt7t8t;tGtc{{{{{{{{{{{{{{{{{{{{{{{tctwu.u/u2u;v;vkvvwwwwwHwIwMwWww*wDwEwIwSw~{{{{{{{{{{{{{{{{{{{{{{{w~wxx +x8x9x<xGxex{yGyHyKyYz*zczzzczdzgzp{{@{A{{{{{{{{{{{{{{{{{{{{{{{{A{K{R{S{V{d{e{h{s{t{w{{{{{{{{E{_{`{c{m{n{{{{{{{{{{{{{{{{{{{{{{{{n{q{z|*|+|.|:|;|>|I|n||"|5|6|J|P|Q|a|v}}/}B}C{{{{{{{{{{{{{{{{{{{{{{{}C}U}}} }}4}[}\}_}k}l}o}x~(~)~,~6~7~8~<~F~n~{{{{{{{{{{{{{{{{{{{{{{{~~ ~ ~~~~&~'~*~5~6~9~G~H~K~]~t+$2{{{{{{{{{{{{{{{{{{{{{{{2$>VWZf@P\q *=>Show~ {{{{{{{{{{{{{{{{{{{{{{{% +BCQ`av|} -WX{{{{{{{{{{{{{{{{{{{{{{{Xv  C D R ~       * > Q p q + +? +e +f +i +u{{{{{{{{{{{{{{{{{{{{{{{ +u + + +< +K +Q +Y +_ +` +c +d     / B C P Q Z [ ^ _{{{{{{{{{{{{{{{{{{{{{{{ _ k  @ b c l   0 1 > G H K Y Z ] i     {{{{{{{{{{{{{{{{{{{{{{{  ! , - 0 : ; > H I L V ~ + + + +& +' +* +3 +c +d +r +s{{{{{{{{{{{{{{{{{{{{{{{ +s +z +{ +~ + + +  + +  +C +Z67Dqr./?T{{{{{{{{{{{{{{{{{{{{{{{Ts+@ADVj ,Cjknw!${{{{{{{{{{{{{{{{{{{{{{{$%2;<?LMP^_bmnqxy|#7Vy {{{{{{{{{{{{{{{{{{{{{{{ !$0o7V8Zq,>?j67>{{{{{{{{{{{{{{{{{{{{{{{>u 2Qxy|Sz:d 6Un{{{{{{{{{{{{{{{{{{{{{{{n'8Mbtux<=@Gghsz{{{{{{{{{{{{{{{{{{{{{{{z{~%&0MNX_`n $%(7V{{{{{{{{{{{{{{{{{{{{{{{VWZ_ %bcfk(),14Z R g{{{{{{{{{{{{{{{{{{{{{{{g,CJKOTWX[`"/sP`T{{{{{{{{{{{{{{{{{{{{{{{TU[{|  - A S f  , - >!!!%!]!^!a!!!{{{{{{{{{{{{{{{{{{{{{{{!"""""&#6#Q$$$$$R$y$$9$c%%%5%T%m%%&{{{{{{{{{{{{{{{{{{{{{{{%&%7%L%a%s%t& +&&5&6&@&h&i&j&m&&&(&D&X&j&}''C{{{{{{{{{{{{{{{{{{{{{{{'C'D'O'X'Y'g''''.'/'2'B'C'F'S'T'W(S(#)>)&)')5{{{{{{{{{{{{{{{{{{{{{{{)5*k*z+$+!+X,,&,\-%-&-,-L-M-b-[.0.1.H.i.j..{.|{{{{{{{{{{{{{{{{{{{{{{{.|.//-/A/T/s//X020G0I0J0P0p0q0}11D1{111&1={{{{{{{{{{{{{{{{{{{{{{{1=1w232p2q2}3'3:3N3i3x44!4^444 4445 5R5"5o68{{{{{{{{{{{{{{{{{{{{{{{686C6 6 66S6y77I7w7x7{77 7 777 7,7K8 +818R8q{{{{{{{{{{{{{{{{{{{{{{{8q88@8W8v9919B9W9l9~999,9@9T9g9t: : +:::: {{{{{{{{{{{{{{{{{{{{{{{: :0:1:4:A:B:E:S::!:[;;*<0=p=y=='>(>)>,>>>R>b{{{{{{{{{{{{{{{{{{{{{{{>b>~???!?.?/?2?B?C?F?R?q?0?W?x@@A@X@m@@@0@U{{{{{{{{{{{{{{{{{{{{{{{@U@lA A$AFAWAlAAAA/ACASAoApABBBB)B*B-B:B;{{{{{{{{{{{{{{{{{{{{{{{B;B>BLBB.C}C4C5C>CPCWCsD;D<D?DLDMDPD`DaDdDpDDN{{{{{{{{{{{{{{{{{{{{{{{DNDuEE5E_E}EE%E<EQEgE}FF9FPFoFF*F;FPFeFwFxG{{{{{{{{{{{{{{{{{{{{{{{GG.G/G0G3GEGdGeGhGxGyG|H H +H +HHRHSH`HaHhHiHzH#{{{{{{{{{{{{{{{{{{{{{{{H#H$H'H4H5H8HHHIHLHXHwI6I]I~IIGI`I}JLJjJ|KK)K>{{{{{{{{{{{{{{{{{{{{{{{K>KTKjKK&K=K\KuLL(L=LRLdLeLhLzL L(L)LELKLLLOLW{{{{{{{{{{{{{{{{{{{{{{{LWLXL[LhLiLlL{L|LM MAMBMEMWMvM,M-M0M?M@MCM`MaMd{{{{{{{{{{{{{{{{{{{{{{{MdMqMrMuM}M~NN +N,NkNN3NRN|O +O&OCPP0PBPXPoPP{{{{{{{{{{{{{{{{{{{{{{{PP0PGPlQQ"Q;Q]QnQQQ*Q+Q4Q;Q<QIQkR +R RRRR{{{{{{{{{{{{{{{{{{{{{{{RR'R(R+R:R;R>RJRRRRR?R@RFRfRgRjR|SS;S\S{S|{{{{{{{{{{{{{{{{{{{{{{{S|SS SSFSGSWTTT.UlUWBWCWSWrWsWvWW-WcWdWvWw{{{{{{{{{{{{{{{{{{{{{{{WwW~WXXXXX"X#X&X.X/X2X>X]XXCXdYY-Y>YWYuY{{{{{{{{{{{{{{{{{{{{{{{YYY4YIY_YuZ Z1ZHZgZZ"Z3ZHZ]ZoZp[[[>[Y[f[g[u{{{{{{{{{{{{{{{{{{{{{{{[u[[[![K[j\\$\B\Q\h\\\(\=\P\d\x] +]0]E]b]y]{{{{{{{{{{{{{{{{{{{{{{{]](];]N]^]_]m^X_____#_*_+_9_V_W_Z_l```&`Y{{{{{{{{{{{{{{{{{{{{{{{`Y`k`~aa4aHa]a|a +aa.a?a@aSakalbb"b#b1b8b9bXbY{{{{{{{{{{{{{{{{{{{{{{{bYb\bdbebwbbbb.bKbrbsbvcc!c`cc(cGcqdd/dPdp{{{{{{{{{{{{{{{{{{{{{{{dpddd8dJd`due e!e8e]ete e/e@eUeje|e}f +ffOff{{{{{{{{{{{{{{{{{{{{{{{ff"f4fSfpggg2g?g\g]gmgggg%gLgMgZgvgwgzh h +{{{{{{{{{{{{{{{{{{{{{{{h +h +hhFhGhJh\hhhhiuiiSizjj:jdjj$jAjbkk{{{{{{{{{{{{{{{{{{{{{{{kk,kJk\krkkk3kJkolllAlRlgl|llll8l9l<lHm*{{{{{{{{{{{{{{{{{{{{{{{m*mInn/nPnonn8nYnvoo7oHoaooo'o<oRohop$p;pT{{{{{{{{{{{{{{{{{{{{{{{pTpvppp1pCpDpXpip}p~qq +qorrMrtrr4r^r}ss;s\{{{{{{{{{{{{{{{{{{{{{{{s\s|s s&sDsZsptttBtYtrtt%t:tOtatbtktrtstvuud{{{{{{{{{{{{{{{{{{{{{{{udvvBviv +v)vSvrww0wQwqwww9wOwew|x!x8xQxsxx{{{{{{{{{{{{{{{{{{{{{{{xx.x@xAxTx\x]xjyyy +y-y.y1yhyyL{{{{{{{{{{{{{{{{stv^xLyL Ha"1$(Q-X3h6l9h>_EtL]Q`WZ|^>aNg2n2suxy4{ey +1L #(c.$4 9>OA'EeGyI?LbS3ZI^Ba>dfHkrq{vIz|_   +rqN,$a.X4o9 +>/AEwH}LEP]RFWC[(`cpfvkgo}uBxL@@@@@@@@@ @ +@ @ @ +@@@@@@@@@@@@@@@@@ @!@"@#@$@%@&@'@()*@+@,@-@.@/01@2@3@4@56@7@8@9:;<=>@@@A@C@D@E@FGHIJKL@MN@OP@QRSTUySt=e +HAF C%a'G+p-S1E5Q6&8K:; ?DnL%N1R`V(Z[D]i_%`dZhlqhtvujvwyy?ybzR{0}Dyf p1C!%;(,/M36q;=I?fA2E_FGrI)JKKGLTQ/X_[]g`\b&cWef\g_kBp tcw~{A{n}C~2X +u _  +sT$ >nzVgT!%&'C)5.|1=688q: >b@UB;DNGH#K>LWMdPRS|WwY[u]`YbYdpfh +km*pTs\udxyLuvwxyz{|}~  +   + !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} +ef \ No newline at end of file diff --git a/script.globals b/script.globals new file mode 100644 index 0000000..84eeb57 --- /dev/null +++ b/script.globals @@ -0,0 +1,65 @@ +>TAKE THE SWORD AND THE LAMP +"Those things aren't here!" + +>LOOK AT THE THING +"You can't see that here!" (RENATA: does the word 'that' depend on gender?) + +>PERSON, TAKE THE SWORD +"The PERSON seems confused. ""I don't see that here!"" + +>CLIMB STAIRS +"You should say whether you want to go up or down." + +>SAILOR, GO AWAY +"You can't talk to the sailor that way." + +>LOOK AT SAILOR +"There is no sailor to be seen." + +>HELLO, SAILOR +"You seem to be repeating yourself." + +>HELLO, SAILOR +"I think that phrase is getting a bit worn out." + +>HELLO, SAILOR +"Nothing happens here." + +>DIG IN GROUND +"The ground is too hard for digging here." + +>LOOK AT GRUE +"There is no grue here, but I'm sure there is at least one lurking in the darkness nearby. It would be wise keep an eye on your light source!" + +>LISTEN TO GRUE +"It makes no sound but is always lurking in the darkness nearby." + +>TALK TO MYSELF +"Talking to yourself is said to be a sign of impending mental collapse." + +>WAKE MYSELF UP +"You're already wide awake!" + +>EAT MYSELF +"Auto-cannibalism is not the answer." + +>KILL MYSELF +"Suicide is not the answer." + +>THROW MYSELF AT THE TROLL +"Why don't you just walk like normal people?" + +>TAKE ME +"How romantic!" + +>LOOK AT MYSELF +"Your image in the mirror looks tired." + +>LOOK AT MYSELF +"That's difficult unless your eyes are prehensile." + +>WHAT IS A ZORKMID +"The zorkmid is the unit of currency of the Great Underground Empire." + +>FIND ZORKMID +"The best way to find zorkmids is to go out and look for them." diff --git a/script.input b/script.input new file mode 100644 index 0000000..0d70b9d --- /dev/null +++ b/script.input @@ -0,0 +1,832 @@ + "Generic SYNTAX file for + The ZORK Trilogy + started on 7/21/83 by SEM + -- GERMAN EDITION" + + + + + + +"ANTWORTE" + +"ANTWORTE WITH DATIVE " + +"ERWIDERN" + + +"BENUTZE OBJEKT FUER OBJEKT" + + +"GREIF DEN OBJEKT MIT DEM OBJEKT AN" + +"GREIF AN, KAEMPFE, VERLETZE, SCHLAG" + + + +'ZURUECK" + + +"EXPLODIERE" + + +"BLAS AUS" BLAS DEN OBJEKT AUS " + + +"BLAS DEN OBJEKT AUF" + +"ATME EIN" ATME DEN OBJEKT EIN" + + +"STEIG EIN" STEIG IN OBJEKT EIN" + + +"PUTZ DIE OBJEKT" + + +"PUTZ " + + + + + + +"BRENNE, VERBRENNE, ANSTECKE.SEP" + + + +"KOTZE" + + +"KLETTER DEN OBJEKT HINAUF" + + + +"KLETTER DEN OBJEKT HINUNTER" + + +"BESTEIGE" OBJEKT" + +"STEIG IN OBJEKT EIN" + +"STEIG AUF OBJEKT" + +"STEIG DURCH OBJEKT" + +"SITZ" +"SETZ DICH AN OBJEKT(TISCH)" + + +"MACH ZU" MACH OBJEKT ZU" + + +"BEFIEHL OBJEKT" + +"ZAEHL OBJEKT" + + +"UEBERQUERE DEN OBJEKT" + + + + +"SCHNEIDE DAS OJEKT MIT DEM OBJEKT" + +"SCHNEIDE, ZERSCHNEIDE, STICH DAS OBJEKT DURCH" + + +"FLUCHE" + +"VERFLUCHE DEN PERSON" + +"VERFLUCHT, SCHEISSE, VERDAMMT, VERSCHISSEN" + + +"LASS DIE LUFT RAUS" LASS DIE LUFT AUS DEM OBJEKT AB." + + +"ZERSTOERE DEN + MIT DEM + +"ZERSTOERE UNTEREN OBJEKT + MIT DEM + +"ZERSTOERE IM OBJEKT + +"ZERSTOERE, VERLETZTE, ZERBRECHE, BLOCKIERE, ZERSCHMETTERE" + + + +"GRABE IM OBJEKT" +"GRABE MIT DEM OBJEKT" + + MIT DEM OBJEKT" + + +"STEIGE AUS DEM OBJEKT AUS +STEIGE AUS" + + + + +"TESTE IHN" + + +"TRINK DEN OBJEKT +TRINK" + +"TRINKE AUS DEM OBJEKT" + +"TRINKE, SCHLUERFE, SCHLUCKE" + + + + + +; +"LASS DEN OBJEKT FALLEN +"LASS DEN OBJEKT RUNTERFALLEN +"LASS DEN OBJEKT REINFALLEN +"LASS DEN OBJEKT AUF DEN OBJEKT FALLEN +"LASS FALLEN, LASS LOS" + + + +"ISS DEN OBJEKT + ISS +ISS, VERZEHRE, SCHMECKE, BEISSE " + + +"ECHO" + +"BEZAUBERE DEN OBJEKT" + +"BETRETE " + +"BETRETE DEN OBJEKT DURCH" + +"GEH RAUS" + +"GEH AUS DEM OBJEKT RAUS" + + +"UNTERSUCHE DEN OBJEKT" + + "Sieh in den OBJEKT" + ??? is this right, Renata?? +"Sieh auf den Objekt" + +"Betrachte, Beschreibe, UNTERSUCHE " + + +"TREIBE DEN OBJEKT AUS" + +"TREIBE DEN OBJEKT AUS DEM OBJEKT AUS" + +"TREIBE DEN OBJEKT WEG" + +"TREIBE AUS, VERTREIBE, VERBANNE, WERFE, TREIBE, MAERZE AUS" + + +Z"MACHE DEN OBJEKT AUS" + +"LOESCHE DEN OBJEKT" + + + +"FUELLE DEN OBJEKT + FUELLE DEN OBJEKT + FUELLE DEN OBJEKT MIT DEM OBJEKT " + + +"FINDE DEN OBJEKT" + +"FINDE, WO , SUCHE, SIEH" + + + + +"FOLGE +FOLGE DEM OBJEKT +FOLGE, VERFOLGE JAGE KOMM" + + +???????? + +"GIB +GIB DEN OBJEKT" +"GIB DEM OBJEKT DEN OBJEKT" VERBS THAT TAKE DATIVE:GEBEN, + /ERZAEHLEN =RECIPIENT IN + IN DATIVE, OBJECT IN ACC. +"GIB DEN OBJEKT + +"GIB, SCHENKE, OFFERIERE, FUETTERE" + + > +"GIB DEM OBJEKT DIE HAND + + +"BRUETE DEN OBJEKT" + + + + +"HALLO +HALLO, FRITZ +HALLO, GRUESS DICH" + + + + +"TIP +TIP GEBEN UEBER DEN OBJEKT +TIP, WINK, TIPS, HILFE" + + + +"ZAUBER +ZAUBERGESANG" + + +"BLAS DEN OBJEKT AUF MIT DEM OBJEKT AUF" + + + + +"SPRING +SPRING UEBER DEN OBJEKT +SPRING QUER UEBER DEN OBJEKT" + +"SPRING IN DEN OBJEKT" + +"SPRING VON DEM OBJEKT" + +"SPRING AB VON DEM OBJEKT" + +"SPRING, HUEPFE," + + + +"TRITT DEN OBJEKT" +TRITT, TRITT MIT DEM FUSS" + + + +"TOETE DEN OBJEKT + MIT DEM OBJEKT +TOETE, ERMORDE, BRINGE UM, BESEITIGE" + + + +"ERSTECHE DEN OBJEKT + MIT DEM OBJEKT" + + +"KUESSE DEN OBJEKT" + + + + + +"KLOPFE AN DEM OBJEKT +KLOPFE AUF DEM OBJEKT +SCHLAGE DEN OBJEKT NIEDER +"KLOPFE AN" + +"DEN OBJEKT VON STAPEL LAUFEN LASSEN" + + +"LEHN DICH AUF DEN OBJEKT" + + + +"LASS LIEGEN +LASS DEN OBJEKT LIEGEN" + + +"MACH DIE LAMPE AN + NIMM DEN OBJEKT" + +"ZUENDE DEN OBJEKT AN + MIT DEM OBJEKT" + + +"HOERE DEM OBJEKT ZU +LAUSCHE DEM OBJEKT" + + +"VERSCHLIESSE DEN OBJEKT + MIT DEM OBJEKT + + +"SCHAU" + +"SCHAU DICH IM OBJEKT UM" + +"SCHAU AM OBJEKT HINAUF + +"SCHAU AM OBJEKT HINUNTER" + +"UNTERSUCHE DEN OBJEKT" + +"SCHAU AUF DEN OBJEKT" + +"SCHAU MIT DEM OBJEKT IN DEN OBJEKT " + +"SCHAU UNTER DEN OBJEKT" + +"SCHAU HINTER DEN OBJEKT" + +"SCHAU IN DEN OBJEKT + +"UNTERSUCHE DEN OBJEKT + MIT DEM OBJEKT" + +"FINDE DEN OBJEKT" + +"SCHAU, STARRE, BLICKE" + + +"LASS DEN OBJEKT HINUNTER" + + + +"SCHMIERE DEN OBJEKT MIT DEM OBJEKT +SCHMIEREN, OELEN, FETTEN" + + +"MACHE DEN OBJEKT" + + + LIQUEFY +"SCHMELZE DEN OBJEKT + MIT DEM OBJEKT +SCHMELZE, VERFLUESSIGE + + +"BEWEGE DEN OBJEKT" + +"SCHIEBE DEN OBJEKT NACH DEM OBJEKT" + + + + + +"ROLLE DEN OBJEKT AUF " + +"MACH EINE ROLLE AUS DEM OBJEKT" + + + +"MURMLE +MURMLE, SEUFZE" + + +"NR." + + + +"ODYSSEUS +ODYSSEUS, ULYSSES" + + +"OEFFNE DEN OBJEKT" + +"MACH DEN OBJEKT AUF +MACH AUF" + +"OEFFNE DEN OBJEKT MIT DEM OBJEKT + DEN OBJEKT" + + + +"WAEHLE DEN OBJEKT +WAEHLE DEN OBJEKT MIT DEM OBJEKT" + +"HEB DEN OBJEKT AUF" + + +"SPIELE DEN OBJEKT" + + +"STOPFE DEN OBJEKT MIT DEM OBJEKT ZU" + +"STOPFE ZU , KLEBE ZU, FLICKEN, REPARIEREN, IN STAND SETZEN" + + ?????? + + + +"STOSSE DEN OBJEKT MIT DEM OBJEKT" + +"DURCHLOECHERE +DURCHLOECHERE DEN OBJEKT MIT DEM OBJEKT" + + + + + +"SCHUETTE DEN OBJEKT AUS +SCHUETTE DEN OBJEKT IN DEN OBJEKT +SCHUETTE DEN OBJEKT AUF DEN OBJEKT +GIESSE DEN OBJEKT VON DEM OBJEKT" + +"VERSCHUETTE " + + +"BETE" + + + + + +"ZIEH DEN OBJEKT +ZIEH AN DEM OBJEKT +ZIEH DEN OBJEKT HOCH +ZIEHEN, ZERREN, REISSEN" + + + +"PUMPE DEN OBJEKT AUF +PUMPE DEN OBJEKT MIT DEM OBJEKT AUF" + + + + + + + + +"STOSSE DEN OBJEKT NACH OBJEKT +STOSSE DEN OBJEKT ZU DEM OBJEKT +STOSSE DEN OBJEKT +SCHIEBE AN DEM OBJEKT +SCHIEBE DEN OBJEKT UNTER DEN OBJEKT +STOSSE, SCHIEBE, DRUECKE" DRUECKE DEN BUTTON + + +"LEGE DEN OBJEKT IN DEN OBJEKT" ANY ITEM THAT DOES NOT STAND UP +"STELLEN DEN OBJEKT IN DEN OBJEKT" ITEMS THAT STAND UP + +"LEGE DEN OBJEKT AUF DEN OBJEKT" LAY ON +"STELLE DEN OBJEKT AUF DEN OBJEKT" STAND UP + +"LASS DEN OBJEKT FALLEN " + +"LEGE DEN OBJEKT UNTER DEN OBJEKT" LAY +"STELLE DEN OBJEKT UNTER DEN OBJEKT" STAND UP + +"MACHE DEN OBJEKT AUS" + NIMM" + +"ZIEH DEN OBJEKT AN" + +"LEGE DEN OBJEKT HINTER DEN OBJEKT" LAY +"STELLE DEN OBJEKT HINTER DEN OBJEKT" + +"SETZE, STELLE, LEGE, STOPFE, LEGE EIN, VERSTECKE" + + +"HEBE DEN OBJEKT HOCH" + +"HEBE DEN OBJEKT AUF" + +"HEBE AUF, HEBE HOCH" + + +"VERGELWALTIGE DEN OBJEKT" + +"VERGEWALTIGE, BELAESTIGE" + + +"LIES DEN OBJEKT" + "LIES" + + +"LIES IN DEM OBJEKT" + +"LIES DEN OBJEKT" + +"BLAETTERE" + + +"BEREUE" + + + + +"LAEUTE DEN OBJEKT" +"LAEUTE MIT DER GLOCKE" +"LAEUTEN, KLINGELN" + + + + +"REIBE DEN OBJEKT" +"REIBE DEN OBJEKT MIT DEM OBJEKT" +"REIBE, FUEHLE, STREICHLE, LIEBKOSE" + + +"SAGE DEM OBJEKT" + +"SAGE" + + + + +"SUCHE DEN OBJEKT" +"SUCHE IN DEM OBJEKT" +"FINDE DEN OBJEKT" + + +"SENDE NACH DEM OBJEKT" + + +"SCHUETTLE DEN OBJEKT" + + + +"SPRINGEN +SPRINGEN, HUEPFEN" + +; + + + +"SCHUBSE DEN OBJEKT +SCHUBSE DEN OBJEKT UNTER DEN OBJEKT +SCHUBSE DEN OBJEKT NACH DEM OBJEKT +SCHUBSE DEN OBJEKT ZU DEM OBJEKT" + + + +"RIECHE DEN OBJEKT +RIECHE, SCHNUEFFLE" + + +"WIRBLE DEN OBJEKT HERUM" + + + +"SPRUEHE DEN OBJEKT AUF DEN OBJEKT +"SPRUEHE DEN OBJEKT MIT DEM OBJEKT" + + + +"PRESSE DEN OBJEKT +PRESSE DEN OBJEKT AUF DEN OBJEKT" + + + +"STEHE" +"STELL DEN OBJEKT AUF" + + +"BLEIBE" + + + +"SCHLAGE DEN OBJEKT MIT DEM OBJEKT +"SCHLAGE DEN OBJEKT " + + + + + +"SCHWIMME" +"SCHWIMME IN DEM OBJEKT" +"SCHWIMME UEBER DEN OBJEKT" +"SCHWIMMEN, BADEN, WATEN" + + + + +"SCHWINGE DEN OBJEKT" +"SCHWINGE DEN OBJEKT NACH DEM OBJEKT" +"SCHWINGE, STOSSE" + + +"NIMM DEN OBJEKT" + +"NIMM DEN OBJEKT AUF" + +"NIMM DEN OBJEKT HERAUS" + +??????? + +"STELL DEN OBJEKT AUF" + +"NIMM DEN OBJEKT" + AUS DEM OBJEKT HERAUS" + +"LEG DEN OBJEKT AB" LIKE TAKE OFF HAT +OR"NIMM DEN OBJEKT VON DEM OBJEKT WEG LIKE FROM TABLE + + +"NIMM DEN OBJEKT +NIMM DEN OBJEKT VON DEM OBJEKT +"NIMM, HOLE, HALTE, TRAGE, ENTFERNE, GREIFE, FANGE" + + ERZAEHLE DEM OBJEKT + +"ERZAEHLE DEM OBJEKT UEBER DEN OBJEKT VON DEM OBJEKT + +"SAGE, ERZAEHLE, FRAGE(DEN OBJEKT) + + + +"WERFE DEN OBJEKT + AUF DEN OBJEKT +WERFE DEN OBJEKT + MIT DEM OBJEKT" + +"WERFE DEN OBJEKT UEBER DEN OBJEKT" + + +"WERFE DEN OBJEKT IN DEN OBJEKT +WERFE DEN OBJEKT AUF DEN OBJEKT" + +"WERFE DEN OBJEKT VON DEM OBJEKT" + +"WERFE DEN OBJEKT UEBER DEN OBJEKT" + +"WERFE, SCHLEUDERE, SCHMEISSE, WIRF HOCH" +W + + +"BINDE DEN OBJEKT AN DEN OBJEKT" + + +"BINDE DEN OBJEKT MIT DEM OBJEKT ZU + BINDE ZU +"BINDEN, FESTMACHEN, ZUMACHEN, ANBINDEN" + + + +"SCHATZ +"SCHATZTEMPEL" + + +"DREHE DEN OBJEKT DREHE DEN OBJEKT UM (ON ITS SIDE)" + +"MACH DEN OBJEKT AN" + +"MACH DEN OBJEKT MIT DEM OBJEKT AN" + +"MACH DEN OBJEKT AUS + NIMM DEN OBJEKT WEG" + + +; + +"DREHE DEN OBJEKT ZU DEM OBJEKT +"DREHE DEN OBJEKT FUER DEN OBJEKT +"DREHE DEN OBJEKT UM" +"DREHE, DREHE AN, DREHE UM, MACHE AUS, MACHE AN" + + +"SCHLIESSE DEN OBJEKT MIT DEM OBJEKT AUF" + + + + +"MACHE DEN OBJEKT AUF' +MACHE AUF, BEFREIE, KNOEPFE AUF, ENTFERNE, ENTHAKE" + + + +"WARTE" + + + + +"WECKE DEN OBJEKT" +"WECKE DEN OBJEKT AUF" +"WECKE, WACHE AUF, SEI UEBERRASCHT, SEI ERSTAUNT" + + +"GEH HERUM" + +"GEH MIT DEM OBJEKT" + +"GEH VON DEM OBJEKT WEG" + +"GEH DURCH DEN OBJEKT" + +"GEH MIT DEM OBJEKT DURCH DEN OBJEKT" + +"GEH AUF DEM OBJEKT DURCH DEN OBJEKT" + +"SPRING UEBER DEN OBJEKT" + +"GEH ZU DEM OBJEKT" + +"GEH UM DEN OBJEKT HERUM" + +"GEH DEN OBJEKT HINAUF" + +"GEH DEN OBJEKT HINUNTER" + +"GEH, LAUFE, RENNE, DRINGE VOR, TRETE" + + + + + +""SCHWINGE DEN OBJEKT" +"SCHWINGE GEGEN DEN OBJEKT" +"GREIFE DEN OBJEKT AN" +"FUCHTELE MIT DEM OBJEKT" +"SCHWINGEN, FUCHTELN" + + +"TRAGE DEN OBJEKT" + + + VICTORY +"GEWINNE" +"GEWINN, SIEG" + + + +"ZIEH DEN OBJEKT AUF" +"ZIEH DEN OBJEKT AUF" + + +"WUENSCHE" + + + +"SCHREIE, +"SCHREIE, RUFE LAUT, SCHREIE LAUT" + + + +"JA" + +"WINGE NACH OBJEKT" +"SCHWINGE, STOS" \ No newline at end of file diff --git a/script.parser b/script.parser new file mode 100644 index 0000000..68ddb50 --- /dev/null +++ b/script.parser @@ -0,0 +1,74 @@ +(NOTE: IF YOU TYPE NOTHING, AND JUST HIT RETURN) +"I beg your pardon?" + +(NOTE: IF YOU TYPE A PERIOD AND THEN A RETURN WITH NO WORDS) +"I can't help your clumsiness." + +(NOTE: IF YOU TYPE >OOPS SOMETHING AND THE SOMETHING WAS IN A QUOTE) +"Sorry, you can't correct mistakes in quoted text." + +(NOTE: IF YOU TYPE ">OOPS WORD1 WORD2") +"Warning: only the first word after OOPS is used." + +(NOTE: IF YOU TYPE "OOPS" AFTER YOU DIDN'T MISSPELL SOMETHING) +"There was no word to replace!" + +(NOTE: IF YOU TYPE "OOPS" AFTER AN INCOMPLETE INPUT GAME) +"It's difficult to repeat fragments." + +(NOTE: IF YOU TYPE "AGAIN" AFTER A BAD SENTENCE INPUT) +"That would just repeat a mistake." + + +"That sentence was not understood." + + +"There were too many nouns in that sentence." + + +"Please consult your manual for the correct way to talk to other people or creatures." + +>LOOK AT THING +"The word is not in the story's vocabulary of understanding." + +>LOOK AT THE DIG (NOTE: DIG IS RECOGNIZED ONLY AS A VERB) +"You used the word "dig" in a way that I don't understand." + +>DOG THE TROLL +"There was no verb in that sentence!" + + +"That sentence isn't recognized by the story." + +>WHO IS TROLL +"That question can't be answered." + +>TROLL, LOOK AT THE BUTTON +"""I don't understand! What are you referring to?""" + +>LOOK AT THE RED +"There seems to be a noun missing in that sentence!" + +"It's too dark to see!" + +>DROP SWORD +"You don't have that!" + +"You don't have the SWORD." + +>READ THE LEAFLET +(taking the leaflet first) + +The leaflet says... ect. + + +>LOOK AT THE RED +It's not clear what you're referring to." + + +>LOOK AT THE SWORD AND LAMP +You can't use multiple direct objects with "look." + + +>HIT THE TROLL WITH SWORD AND KNIFE +You can't use multiple indirect objects with "hit." \ No newline at end of file diff --git a/script.things b/script.things new file mode 100644 index 0000000..a5dfdd1 --- /dev/null +++ b/script.things @@ -0,0 +1,507 @@ + + + + \. \, \" HIER DER DIE DAS DEN DEM EIN EINE EINEN EINEM EINER> + +; +;"DURCH - BY MEANS OF" + + +;"'IN' ALWAYS WITH ACCUSATIVE" + + + + + + + + + +; +;"'UNTER' WITH ACC MOTION, WITH DATIVE NO MOTION" + + + + + + + + + + ;"DOWN" + + ;"UP" + + + + + + + + + + + + + + + + + + ;"same word" + + + + + + + + + +;"*FANG WIEDER AN" + + +;"*SPEICHERE UM" + + +;"*DATEN SICHER" + + + +;"SCHREIB TEXT" + + +;"IMPROVISIERE" + +;"VERSION" + +;"KLARSTELLEN" + +;"IRGENDEIN OBJEKT" + +;"BEFEHLAKTE" + +;"*LISTE" + + + +; + +;"Real Verbs" + + + + + + + + + + + + + + + +;"AN is sep prefix at end" + +;"ren: greif is attack and take? ANGREIFEN TO ATTACK , GREIF TO SIEZE" + + + + + + + +; + + +; + + + + + +;"AUF is sep prefix at end" + + +; +; + + + + + + + + +; + + + + + +;"AN is sep prefix at end of stecke" + + + + + +; +; + + +; +; + + + + + +; + + + +; + + + +; + + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + ;"ie, BREAK IN THE HOUSE" + + + + + + + + + + +; + ;"'steig in' is climb in etc." + + + + + + + + +;"LASS OBJ-ACC OBJ-ACC HERUNTERFALLEN = drop obj. down object." + + +; + +; +; + + + + + + + +; + + + + + + + + + + + + + + + + +;"was ist object" + +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + + + + + + + + +; +; + + + + ;"JUMP ACROSS" + + + ;"DUMMY SYNTAX SO HERAB IS A PREP" + + + + +; + +; + + + + + + + + + + + + + + + + + +; + + +; + +; + + + + + + + + + + + +; + + + +; + + + + + +; +; + + + + + + + + +; +; + + + + + + + + + + + + + +; + + +; +; + + + + + + + + + + + + + + + + + + +; ;"ren: as in pick a lock?" + + + + + + + + + +; + + + + +; + + +; + +; + + + + + + + + + + +;"next syntax handled by above" +; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ;"ie, to repair" + + +; +;"ren: HEB AUF OBJECT is pick-up and raise -- depends on context?" + +; + + +; +; + + + +; + + + + + + + + + + + + + + + + + + + + + +; + + + + + + + +; +; + + + + + + + + + + + + + + + + + + + + + +; +; + + + + + + +;"v-swing also v-wave. same ger. word" + + + + + + + +; +; +; +; + + + +; + +;"ren: greif is attack and take? ANGREIFEN TO ATTACK , GREIF TO SIEZE" + + ;"Note: trage can mean take or wear" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +; + +; + + + ;"on its side" + + + + + + + + + + + + + + + + + + + + +; +; + + + + + + + + + + + + + + + + + + +;"see syntax schwinge" +; +; +; +; + + +; ;"TIP MEANS HINT ALSO" + +; + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tells.zabstr b/tells.zabstr new file mode 100644 index 0000000..eba8391 --- /dev/null +++ b/tells.zabstr @@ -0,0 +1,60 @@ + + + + + D * > N * C * DER-NOM * DER-NOM-CAP * DER-ACC * < +DER-ACC-PRINT .X> DER-ACC-CAP * DER-DAT * EIN-NOM * EIN-NOM-CAP * EIN-ACC * + EIN-ACC-CAP * EIN-DAT * < +EIN-DAT-PRINT .X> PRONOUN-NOM * PRONOUN-NOM-CAP * < +PRONOUN-NOM-CAP-PRINT .X> PRONOUN-ACC * > + + + + + + + + + + + + + + + +> +> +> +> + ) ( < +NTH .OO 2>) (ELSE )>>)> < +RETURN>)> >
>>) (ELSE .ATM)>>) (ELSE . +ATM)> !.L)> > 3> )>> !.L>)>>> >> +> +> +> + ) (<==? .X FSET?> ) ( +ELSE )>>)> > > < +SET O ( .ATM) (ELSE )>> +!.O)>>> + >> + ) (ELSE >)>> + + + +> +> + >> + >> + ) (T .NUM)>> + ,PLUS-MODE> 2> 1>) (T 1>)>> \ No newline at end of file diff --git a/tells.zap b/tells.zap new file mode 100644 index 0000000..8598901 --- /dev/null +++ b/tells.zap @@ -0,0 +1,237 @@ + + + .FUNCT DO-CURSET:ANY:2:2,Y,X + EQUAL? 1,CWIDTH,CHEIGHT \?CCL3 + CURSET Y,X + RFALSE +?CCL3: MUL X,CWIDTH >X + MUL Y,CHEIGHT + CURSET STACK,X + RFALSE + + + .FUNCT DPRINT:ANY:2:2,OBJ,CASE + GETP OBJ,P?ADJDESC + ZERO? STACK /?CND1 + GETP OBJ,P?ADJDESC + PRINT STACK + EQUAL? CASE,W?DER,W?DEN,W?DEM \?CCL5 + EQUAL? CASE,W?DER /?CTR7 + EQUAL? CASE,W?DEN \?CCL8 + FSET? OBJ,DERBIT /?CCL8 +?CTR7: PRINTC 101 + JUMP ?CND3 +?CCL8: PRINTI "en" + JUMP ?CND3 +?CCL5: FSET? OBJ,DERBIT \?CCL14 + PRINTI "er" + JUMP ?CND3 +?CCL14: FSET? OBJ,DASBIT \?CCL16 + EQUAL? CASE,W?EINEM /?CCL16 + PRINTI "es" + JUMP ?CND3 +?CCL16: FSET? OBJ,DIEBIT \?CCL20 + EQUAL? CASE,W?EINEM \?CCL20 + PRINTC 101 + JUMP ?CND3 +?CCL20: PRINTI "en" +?CND3: PRINTC 32 +?CND1: PRINTD OBJ + RTRUE + + + .FUNCT DER-NOM-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTI "der " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CCL5 + PRINTI "die " + JUMP ?CND1 +?CCL5: FSET? OBJ,DASBIT \?CND1 + PRINTI "das " +?CND1: CALL DPRINT,OBJ,W?DER + RSTACK + + + .FUNCT DER-NOM-CAP-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTI "Der " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CCL5 + PRINTI "Die " + JUMP ?CND1 +?CCL5: FSET? OBJ,DASBIT \?CND1 + PRINTI "Das " +?CND1: CALL DPRINT,OBJ,W?DER + RSTACK + + + .FUNCT DER-ACC-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTI "den " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CCL5 + PRINTI "die " + JUMP ?CND1 +?CCL5: FSET? OBJ,DASBIT \?CND1 + PRINTI "das " +?CND1: CALL DPRINT,OBJ,W?DEN + RSTACK + + + .FUNCT DER-ACC-CAP-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTI "Den " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CCL5 + PRINTI "Die " + JUMP ?CND1 +?CCL5: FSET? OBJ,DASBIT \?CND1 + PRINTI "Das " +?CND1: CALL DPRINT,OBJ,W?DEN + RSTACK + + + .FUNCT DER-DAT-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT /?CTR2 + FSET? OBJ,DASBIT \?CCL3 +?CTR2: PRINTI "dem " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CND1 + PRINTI "der " +?CND1: CALL DPRINT,OBJ,W?DEM + RSTACK + + + .FUNCT EIN-NOM-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT /?CTR2 + FSET? OBJ,DASBIT \?CCL3 +?CTR2: PRINTI "ein " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CND1 + PRINTI "eine " +?CND1: CALL DPRINT,OBJ,W?EIN + RSTACK + + + .FUNCT EIN-NOM-CAP-PRINT:ANY:1:1,OBJ + FSET? OBJ,DASBIT /?CTR2 + FSET? OBJ,DERBIT \?CCL3 +?CTR2: PRINTI "Ein " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CND1 + PRINTI "Eine " +?CND1: CALL DPRINT,OBJ,W?EIN + RSTACK + + + .FUNCT EIN-ACC-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTI "einen " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CCL5 + PRINTI "eine " + JUMP ?CND1 +?CCL5: FSET? OBJ,DASBIT \?CND1 + PRINTI "ein " +?CND1: CALL DPRINT,OBJ,W?EINEN + RSTACK + + + .FUNCT EIN-ACC-CAP-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTI "Einen " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CCL5 + PRINTI "Eine " + JUMP ?CND1 +?CCL5: FSET? OBJ,DASBIT \?CND1 + PRINTI "Ein " +?CND1: CALL DPRINT,OBJ,W?EINEN + RSTACK + + + .FUNCT EIN-DAT-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT /?CTR2 + FSET? OBJ,DASBIT \?CCL3 +?CTR2: PRINTI "einem " + JUMP ?CND1 +?CCL3: FSET? OBJ,DIEBIT \?CND1 + PRINTI "einer " +?CND1: CALL DPRINT,OBJ,W?EINEM + RSTACK + + + .FUNCT PRONOUN-NOM-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTI "er" + RTRUE +?CCL3: FSET? OBJ,DASBIT \?CCL5 + PRINTI "es" + RTRUE +?CCL5: FSET? OBJ,DIEBIT \?CCL7 + PRINTI "sie" + RTRUE +?CCL7: PRINTI "es" + RTRUE + + + .FUNCT PRONOUN-NOM-CAP-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTI "Er" + RTRUE +?CCL3: FSET? OBJ,DIEBIT \?CCL5 + PRINTI "Sie" + RTRUE +?CCL5: PRINTI "Es" + RTRUE + + + .FUNCT PRONOUN-ACC-PRINT:ANY:1:1,OBJ + FSET? OBJ,DERBIT \?CCL3 + PRINTI "ihn" + RTRUE +?CCL3: FSET? OBJ,DIEBIT \?CCL5 + PRINTI "sie" + RTRUE +?CCL5: PRINTI "es" + RTRUE + + + .FUNCT ZPROB:ANY:1:1,BASE + ZERO? LUCKY /?CCL3 + RANDOM 100 + GRTR? BASE,STACK /TRUE + RFALSE +?CCL3: RANDOM 300 + GRTR? BASE,STACK /TRUE + RFALSE + + + .FUNCT RANDOM-ELEMENT:ANY:1:1,FROB + GET FROB,0 + RANDOM STACK + GET FROB,STACK + RSTACK + + + .FUNCT PICK-ONE:ANY:1:1,FROB,L,CNT,RND,MSG,RFROB + GET FROB,0 >L + GET FROB,1 >CNT + DEC 'L + ADD FROB,2 >FROB + MUL CNT,2 + ADD FROB,STACK >RFROB + SUB L,CNT + RANDOM STACK >RND + GET RFROB,RND >MSG + GET RFROB,1 + PUT RFROB,RND,STACK + PUT RFROB,1,MSG + INC 'CNT + EQUAL? CNT,L \?CND1 + SET 'CNT,0 +?CND1: PUT FROB,0,CNT + RETURN MSG + + .ENDI diff --git a/tells.zil b/tells.zil new file mode 100644 index 0000000..f3b63c0 --- /dev/null +++ b/tells.zil @@ -0,0 +1,332 @@ +"TELLS (formerly GMACROS) for + The Zork Trilogy + (c) Copyright 1983 Infocom, Inc. All Rights Reserved + -- GERMAN EDITION" + + + + + + + D * > + N * + C * + DER-NOM * + DER-NOM-CAP * + DER-ACC * + DER-ACC-CAP * + DER-DAT * + + EIN-NOM * + EIN-NOM-CAP * + EIN-ACC * + EIN-ACC-CAP * + EIN-DAT * + + PRONOUN-NOM * + PRONOUN-NOM-CAP * + PRONOUN-ACC * > + +;"German character names. For non-C64 machines, the font is switched to +font-3 then these chars. below are printed, then, the font is switched +back to font-1, the default font." + +;"I could have special umlaut-descs and no pure strings in the game -- but +still there would have to be this switching of fonts WITHIN a word. Which +must be done in some funny TELL routine." + +;"Or I could be REALLY REALLY disgusting and have 3 descs for an object -- +the first half of the word, the flavor of umlaut, then the last half +of the word." + + + + ) + (T + > + .X> + )>> + +;"CASE : DER = NOM / DEN = ACC / DEM = DAT + EIN = NOM / EINEN = ACC / EINEM = DAT" + + + > + + + + ; ,W?DER> + >>> + ) + (T + )>) + ;"is an Ein-word" + (; ,W?DER> + + ) + ( ,W?DAS> + + >> + ) + ( ,W?DIE> + + > + ) + (T + )> + )> + > + +;> + >> + ) + (T + )>> + + + ) + ( + ) + ( + )> + > + + + ) + ( + ) + ( + )> + > + + + ) + ( + ) + ( + )> + > + + + ) + ( + ) + ( + )> + > + + + > + ) + ( + )> + > + + + > + ) + ( + )> + > + + + > + ) + ( + )> + > + + + ) + ( + ) + ( + )> + > + + + ) + ( + ) + ( + )> + > + + + > + ) + ( + )> + > + + + ) + ( + ) + ( + ) + (T + )>> + + + ) + ( + ) + (T + )>> + + + ) + ( + ) + (T + )>> + +> + +> + +> + +> + + + ) + ( ) + (ELSE )>>)> + )> + > + + + >>) + (ELSE .ATM)>>) + (ELSE .ATM)> + !.L)> + > + 3> )>> + !.L>)>>> + >> + +> + +> + +> + + + ) + (<==? .X FSET?> ) + (ELSE )>>)> + > + > + .ATM) + (ELSE )>> + !.O)>>> + + >> + + ) + (ELSE >)>> + +>) + (ELSE >)>> + +>>> + + CNT ; RND MSG RFROB) + > + > + > + > + >> + >> + > + > + + > + )> + + .MSG> + +> + +> + + + >> + + + >> + + ) + (T .NUM)>> + + ,PLUS-MODE> + 2> 1>) + (T 1>)>> + +; ,PLUS-MODE> + ) + (T )>> + +; ,PLUS-MODE> + ) + (T )>> + +;)) + ,PLUS-MODE> + + ) + (T )>) + (T + + ) + (T )>)>> \ No newline at end of file diff --git a/verbs.zabstr b/verbs.zabstr new file mode 100644 index 0000000..98a5187 --- /dev/null +++ b/verbs.zabstr @@ -0,0 +1,247 @@ + +> +> +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> +> + + + +> + + + + + + + + +> + + +> +> + +> + + + + + + + + + + + + + + + + + + + + +> + + + + + + + + + + +> +> +> + + >)> +> +> +> \ No newline at end of file diff --git a/verbs.zap b/verbs.zap new file mode 100644 index 0000000..a23b48d --- /dev/null +++ b/verbs.zap @@ -0,0 +1,2453 @@ + + + .FUNCT V-VERBOSE:ANY:0:0 + SET 'VERBOSE,TRUE-VALUE + SET 'SUPER-BRIEF,FALSE-VALUE + PRINTR "Maximum verbosity." + + + .FUNCT V-BRIEF:ANY:0:0 + SET 'VERBOSE,FALSE-VALUE + SET 'SUPER-BRIEF,FALSE-VALUE + PRINTR "Brief descriptions." + + + .FUNCT V-SUPER-BRIEF:ANY:0:0 + SET 'SUPER-BRIEF,TRUE-VALUE + PRINTR "Superbrief descriptions." + + + .FUNCT V-INVENTORY:ANY:0:0 + FIRST? WINNER \?CCL3 + CALL2 PRINT-CONT,WINNER + RSTACK +?CCL3: PRINTR "Dein H%ande sind leer." + + + .FUNCT FINISH:ANY:0:0,WRD + ICALL1 V-SCORE +?PRG1: CRLF + PRINTI "M%ochtest du das Spiel neu anfangen, einen gespeicherten Zug wiederherstellen, einen Tip erhalten oder diese Spielrunde beenden? +(Tippe: NEUBEGINN ,WIEDERHERSTELLEN, TIP oder AUFHOEREN: >" + PUTB P-INBUF,1,0 + READ P-INBUF,P-LEXV + GET P-LEXV,P-LEXSTART >WRD + EQUAL? WRD,W?NEUBEGINN \?CCL5 + RESTART + PRINTI "Verfehlt." + CRLF + JUMP ?PRG1 +?CCL5: EQUAL? WRD,W?WIEDERHERSTELLUNG \?CCL7 + RESTORE + ZERO? STACK /?CCL10 + PRINTI "Ok." + CRLF + JUMP ?PRG1 +?CCL10: PRINTI "Verfehlt." + CRLF + JUMP ?PRG1 +?CCL7: EQUAL? WRD,W?AUFHOEREN \?CCL12 + QUIT + JUMP ?PRG1 +?CCL12: EQUAL? WRD,W?TIPS,W?TIP,W?HILFE \?PRG1 + ICALL1 V-HINT + JUMP ?PRG1 + + + .FUNCT V-QUIT:ANY:0:0,SCOR + ICALL1 V-SCORE + PRINTI "M%ochtest du aufh%oren zu spielen. (J wenn: Ja): " + CALL1 YES? + ZERO? STACK /?CCL3 + QUIT + RTRUE +?CCL3: PRINTR "Ok." + + + .FUNCT V-RESTART:ANY:0:0 + ICALL2 V-SCORE,TRUE-VALUE + PRINTI "M%ochtest du neu anfangen? (J wenn: Ja): " + CALL1 YES? + ZERO? STACK /FALSE + PRINTI "Neuanfang." + CRLF + RESTART + PRINTR "Verfehlt." + + + .FUNCT V-RESTORE:ANY:0:0 + RESTORE + ZERO? STACK /?CCL3 + SET 'OHERE,FALSE-VALUE + PRINTI "Ok." + CRLF + CALL1 V-FIRST-LOOK + RSTACK +?CCL3: PRINTR "Verfehlt." + + + .FUNCT V-SAVE:ANY:0:0,SV,FLG + SAVE >SV + EQUAL? SV,1 \?CCL3 + PRINTR "Ok." +?CCL3: EQUAL? SV,2 \?CCL5 + SET 'OHERE,FALSE-VALUE + PRINTI "Ok." + CRLF + CLEAR -1 + ICALL1 INIT-STATUS-LINE + CRLF + ICALL1 V-LOOK + RTRUE +?CCL5: PRINTR "Verfehlt." + + + .FUNCT V-SCRIPT:ANY:0:0 + PRINTI "Hier beginnt eine gedruckte Kopie von: " + CRLF + CRLF + ICALL1 V-VERSION + DIROUT D-PRINTER-ON + RTRUE + + + .FUNCT V-UNSCRIPT:ANY:0:0 + PRINTI "Hier endet eine gedruckte Kopie von: " + CRLF + CRLF + ICALL1 V-VERSION + DIROUT D-PRINTER-OFF + RTRUE + + + .FUNCT V-$ID:ANY:0:0 + PRINTI "Interpreter " + GETB 0,30 + PRINTN STACK + PRINTI " Version " + GETB 0,31 + PRINTC STACK + CRLF + RTRUE + + + .FUNCT V-VERSION:ANY:0:0,CNT + SET 'CNT,17 + PRINTI "ZORK I: Das Gro%se Unterweltreich +Infocom dialogf%ahig Prose - eine Phantasiegeschichte +Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986" + PRINTI " Infocom, Inc. +Alle Rechte vorbehalten. ZORK ist ein eingetragenes Markenzeichen +der Infocom, Inc. +BETA RELEASE # 1 +Ver%offenlichtung " + GET 0,1 + BAND STACK,2047 + PRINTN STACK + PRINTI " / Seriennummer " +?PRG1: IGRTR? 'CNT,23 /?REP2 + GETB 0,CNT + PRINTC STACK + JUMP ?PRG1 +?REP2: PRINTI " / " + ICALL1 V-$ID + RTRUE + + + .FUNCT V-VERIFY:ANY:0:0 + PRINTI "Diskette pr%ufen..." + CRLF + VERIFY \?CCL3 + PRINTR "Die Diskette ist in Ordnung." +?CCL3: CRLF + PRINTR "** Diskettenfehler **" + + + .FUNCT V-COMMAND-FILE:ANY:0:0 + DIRIN 1 + RTRUE + + + .FUNCT V-RANDOM:ANY:0:0 + EQUAL? PRSO,INTNUM /?CCL3 + PRINTR "Illegal call to #RND." +?CCL3: SUB 0,P-NUMBER + RANDOM STACK + RTRUE + + + .FUNCT V-RECORD:ANY:0:0 + DIROUT 4 + RTRUE + + + .FUNCT V-UNRECORD:ANY:0:0 + DIROUT -4 + RTRUE + + + .FUNCT V-ADVENT:ANY:0:0 + PRINTR "A hollow voice says %>Fool%<." + + + .FUNCT V-ALARM:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + GETP PRSO,P?STRENGTH + LESS? STACK,0 \?CCL6 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " wird grob geweckt." + CRLF + CALL2 AWAKEN,PRSO + RSTACK +?CCL6: ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " ist schon wach, falls du das noch nicht gemerkt hast." +?CCL3: EQUAL? PRSO,ROOMS \?CCL8 + ICALL PERFORM,V?ALARM,ME + RTRUE +?CCL8: ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " schl%aft nicht!" + + + .FUNCT V-ANSWER:ANY:0:0 + PRINTI "Keiner wartet auf deine Antwort." + CRLF + SET 'P-CONT,FALSE-VALUE + SET 'QUOTE-FLAG,FALSE-VALUE + RTRUE + + + .FUNCT V-ATTACK:ANY:0:0,X + FSET? PRSO,ACTORBIT /?CCL3 + PRINTI "Nur ein Verr%uckter w%urde " + ICALL2 EIN-ACC-PRINT,PRSO + PRINTR " angreifen." +?CCL3: ZERO? PRSI \?CCL5 + CALL FIND-IN,ADVENTURER,WEAPONBIT >X + ZERO? X /?CCL5 + PRINTI "(mit " + ICALL2 DER-DAT-PRINT,X + PRINTC 41 + CRLF + CRLF + ICALL PERFORM,V?ATTACK,ADVENTURER,X + RTRUE +?CCL5: ZERO? PRSI /?CTR8 + EQUAL? PRSI,HANDS \?CCL9 +?CTR8: ICALL2 EIN-ACC-CAP-PRINT,PRSO + PRINTR " mit den nackten H%anden anzugreifen ist Selbstmord." +?CCL9: IN? PRSI,WINNER /?CCL13 + PRINTI "Du h%alst noch nicht einmal " + ICALL2 DER-ACC-PRINT,PRSI + PRINTR " in der Hand." +?CCL13: FSET? PRSI,WEAPONBIT /?CCL15 + ICALL2 EIN-ACC-CAP-PRINT,PRSO + PRINTI " mit " + ICALL2 EIN-DAT-PRINT,PRSI + PRINTR " anzugreifen ist Selbstmord." +?CCL15: CALL1 HERO-BLOW + RSTACK + + + .FUNCT V-BACK:ANY:0:0 + PRINTR "Sorry, my memory is poor. Please give a direction." + + + .FUNCT V-BLAST:ANY:0:0 + PRINTR "You can't blast anything by using words." + + + .FUNCT PRE-BOARD:ANY:0:0,AV + LOC WINNER >AV + CALL1 NULL-F + ZERO? STACK \TRUE + FSET? PRSO,VEHBIT \?CCL5 + IN? PRSO,HERE /?CCL8 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " mu%s auf der Erde sein, um bestiegen zu werden." + CRLF + RETURN 2 +?CCL8: FSET? AV,VEHBIT \FALSE + PRINTI "Du bist schon in " + ICALL2 DER-DAT-PRINT,AV + PRINTC 33 + CRLF + RETURN 2 +?CCL5: EQUAL? PRSO,WATER,GLOBAL-WATER \?CCL12 + ICALL PERFORM,V?SWIM,PRSO + RTRUE +?CCL12: PRINTI "Du hast also eine Idee, wie man in " + ICALL2 EIN-ACC-PRINT,PRSO + PRINTI " einsteigt?" + CRLF + RETURN 2 + + + .FUNCT V-BOARD:ANY:0:0,AV + PRINTI "Du bist jetzt in " + ICALL2 DER-DAT-PRINT,PRSO + PRINTC 46 + CRLF + SET 'OHERE,FALSE-VALUE + MOVE WINNER,PRSO + GETP PRSO,P?ACTION + ICALL STACK,M-ENTER + RTRUE + + + .FUNCT V-BRUSH:ANY:0:0 + PRINTR "Wenn du willst, aber um Himmels Willen, warum?" + + + .FUNCT TELL-NO-PRSI:ANY:0:0 + PRINTR "Du hast nicht gesagt mit was!" + + + .FUNCT PRE-BURN:ANY:0:0 + ZERO? PRSI \?CCL3 + CALL1 TELL-NO-PRSI + RSTACK +?CCL3: FSET? PRSI,FLAMEBIT \?CCL5 + FSET? PRSI,ONBIT /FALSE +?CCL5: PRINTI "Mit " + ICALL2 EIN-DAT-PRINT,PRSI + PRINTR " etwa?!?" + + + .FUNCT V-BURN:ANY:0:0 + CALL1 NULL-F + ZERO? STACK \FALSE + FSET? PRSO,BURNBIT \?CCL5 + IN? PRSO,WINNER /?CTR7 + IN? WINNER,PRSO \?CCL8 +?CTR7: ICALL2 REMOVE-CAREFULLY,PRSO + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " f%angt Feuer. Dummerweise " + IN? WINNER,PRSO \?CCL13 + PRINTI "warst du gerade darin" + JUMP ?CND11 +?CCL13: PRINTI "hast du ihn gerade festgehalten" +?CND11: PRINTC 46 + RTRUE +?CCL8: ICALL2 REMOVE-CAREFULLY,PRSO + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " f%angt Feuer und verbrennt." +?CCL5: PRINTI "Du kannst " + ICALL2 EIN-ACC-PRINT,PRSO + PRINTR " nicht verbrennen." + + + .FUNCT V-CHOMP:ANY:0:0 + PRINTR "Preposterous!" + + + .FUNCT V-CLIMB-DOWN:ANY:0:0 + CALL V-CLIMB-UP,P?RUNTER,PRSO + RSTACK + + + .FUNCT V-CLIMB-FOO:ANY:0:0 + CALL V-CLIMB-UP,P?RAUF,PRSO + RSTACK + + + .FUNCT V-CLIMB-ON:ANY:0:0 + FSET? PRSO,VEHBIT \?CCL3 + ICALL PERFORM,V?BOARD,PRSO + RTRUE +?CCL3: PRINTI "Du kannst nicht auf " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " steigen." + + + .FUNCT V-CLIMB-UP:ANY:0:2,DIR,OBJ,X,TX + ASSIGNED? 'DIR /?CND1 + SET 'DIR,P?RAUF +?CND1: ZERO? OBJ /?CND3 + EQUAL? PRSO,ROOMS /?CND3 + SET 'OBJ,PRSO +?CND3: GETPT HERE,DIR >TX + ZERO? TX /?CCL9 + ZERO? OBJ /?CND10 + PTSIZE TX >X + EQUAL? X,NEXIT /?CCL13 + EQUAL? X,CEXIT,DEXIT,UEXIT \?CND10 + GET TX,0 + CALL GLOBAL-IN?,PRSO,STACK + ZERO? STACK \?CND10 +?CCL13: ICALL2 DER-NOM-CAP-PRINT,OBJ + PRINTI " f%uhrt nicht nach " + EQUAL? DIR,P?RAUF \?CCL20 + PRINTI "oben" + JUMP ?CND18 +?CCL20: PRINTI "unten" +?CND18: PRINTR "." +?CND10: ICALL2 DO-WALK,DIR + RTRUE +?CCL9: ZERO? OBJ /?CCL22 + GETPT PRSO,P?SYNONYM >X + PTSIZE X + DIV STACK,2 + SUB STACK,1 + CALL ZMEMQ,W?WAND,X,STACK + ZERO? STACK /?CCL22 + PRINTR "Die W%ande raufzuklettern ist sinnlos." +?CCL22: EQUAL? HERE,PATH /?CCL26 + EQUAL? OBJ,FALSE-VALUE,TREE \?CCL26 + CALL GLOBAL-IN?,TREE,HERE + ZERO? STACK /?CCL26 + PRINTR "There are no climbable trees here." +?CCL26: EQUAL? OBJ,FALSE-VALUE,ROOMS \?CCL31 + PRINTR "In diese Richtung kannst du nicht gehen." +?CCL31: PRINTR "You can't do that!" + + + .FUNCT V-CLOSE-OR-LOCK:ANY:0:0 + FSET? PRSO,CONTBIT /?PRD4 + FSET? PRSO,DOORBIT \?CND1 +?PRD4: FSET? PRSO,SURFACEBIT /?CND1 + FSET? PRSO,OPENBIT \?CCL9 + ICALL PERFORM,V?CLOSE,PRSO + RTRUE +?CCL9: ICALL PERFORM,V?LOCK,PRSO,HANDS + RTRUE +?CND1: ICALL PERFORM,V?CLOSE,PRSO + RTRUE + + + .FUNCT V-CLOSE-OR-UNLOCK:ANY:0:0 + FSET? PRSO,CONTBIT /?PRD4 + FSET? PRSO,DOORBIT \?CND1 +?PRD4: FSET? PRSO,SURFACEBIT /?CND1 + FSET? PRSO,OPENBIT \?CCL9 + ICALL PERFORM,V?CLOSE,PRSO + RTRUE +?CCL9: ICALL PERFORM,V?UNLOCK,PRSO,HANDS + RTRUE +?CND1: ICALL PERFORM,V?CLOSE,PRSO + RTRUE + + + .FUNCT V-CLOSE:ANY:0:0 + FSET? PRSO,CONTBIT /?CCL3 + FSET? PRSO,DOORBIT /?CCL3 + PRINTI "Es ist ist einfach unm%oglich " + ICALL2 EIN-DAT-PRINT,PRSO + PRINTR " zu schlie%sen." +?CCL3: FSET? PRSO,SURFACEBIT /?CCL7 + GETP PRSO,P?CAPACITY + ZERO? STACK /?CCL7 + FSET? PRSO,OPENBIT \?CCL12 + FCLEAR PRSO,OPENBIT + PRINTI "Geschlo%sen." + CRLF + ZERO? LIT /TRUE + CALL2 LIT?,HERE >LIT + ZERO? LIT \TRUE + PRINTR "Es ist jetzt stockdunkel." +?CCL12: ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTR " ist schon geschlo%sen." +?CCL7: FSET? PRSO,DOORBIT \?CCL18 + FSET? PRSO,OPENBIT \?CCL21 + FCLEAR PRSO,OPENBIT + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " ist jetzt geschlo%sen." +?CCL21: ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTR " ist schon geschlo%sen." +?CCL18: PRINTR "Du kannst das da nicht schlie%sen." + + + .FUNCT V-COMMAND:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " reagiert nicht." +?CCL3: PRINTR "Damit kann man nicht sprechen." + + + .FUNCT V-COUNT:ANY:0:0 + PRINTR "Du bist verr%uckt." + + + .FUNCT V-CROSS:ANY:0:0 + PRINTR "Hier kannst du nicht %uberqueren." + + + .FUNCT V-CURSES:ANY:0:0 + ZERO? PRSO /?CCL3 + FSET? PRSO,ACTORBIT \?CCL6 + PRINTR "Auf Unh%oflichkeiten dieser Art pflegen wir nicht zu reagieren." +?CCL6: PRINTR "Was?!" +?CCL3: PRINTR "Wir benutzen gew%ohnlich eine gepflegtere Sprache." + + + .FUNCT V-CUT:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + CALL PERFORM,V?ATTACK,PRSO,PRSI + RSTACK +?CCL3: FSET? PRSO,BURNBIT \?CCL5 + FSET? PRSI,WEAPONBIT \?CCL5 + IN? WINNER,PRSO \?CND8 + PRINTR "Nicht die kl%ugste Idee, denn du bist drin." +?CND8: ICALL2 REMOVE-CAREFULLY,PRSO + PRINTI "Nicht die kl%ugste Idee, denn du bist drin. Deine raffinierte Navigation zermalmt " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " in unz%ahlbare Splitter, die wegfliegen." +?CCL5: FSET? PRSI,WEAPONBIT /?CCL11 + PRINTR "Die scharfen Kanten haben keinen Schneid." +?CCL11: PRINTI "Eine eigenartige Idee, " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " zu zerschneiden." + + + .FUNCT V-DEFLATE:ANY:0:0 + EQUAL? PRSO,LUNGS \?CCL3 + CALL2 ACCESSIBLE?,INFLATED-BOAT + ZERO? STACK /?CCL3 + ICALL PERFORM,V?DEFLATE,INFLATED-BOAT + RTRUE +?CCL3: PRINTR "So ein Quatsch!" + + + .FUNCT V-DIG:ANY:0:0 + ZERO? PRSI \?CND1 + SET 'PRSI,HANDS +?CND1: EQUAL? PRSI,SHOVEL \?CND3 + PRINTR "Hier gibt es wahrlich keinen Grund zum Graben." +?CND3: FSET? PRSI,TOOLBIT \?CCL7 + PRINTI "Mit " + ICALL2 DER-DAT-PRINT,PRSI + PRINTR " zu graben ist langsam und m%uhsam." +?CCL7: PRINTI "Mit " + ICALL2 EIN-DAT-PRINT,PRSI + PRINTR " zu graben ist bl%odsinnig." + + + .FUNCT V-DIG-WITH:ANY:0:0 + ICALL PERFORM,V?DIG,GROUND,SHOVEL + RTRUE + + + .FUNCT V-DISEMBARK:ANY:0:0 + EQUAL? PRSO,ROOMS \?CCL3 + LOC WINNER + FSET? STACK,VEHBIT \?CCL3 + LOC WINNER + ICALL PERFORM,V?DISEMBARK,STACK + RTRUE +?CCL3: LOC WINNER + EQUAL? STACK,PRSO /?CCL7 + PRINTI "Da bist du doch gar nicht drin!" + CRLF + RETURN 2 +?CCL7: FSET? HERE,RLANDBIT \?CCL11 + SET 'OHERE,FALSE-VALUE + PRINTI "Du stehst wieder auf eigenen F%u%sen." + CRLF + MOVE WINNER,HERE + RTRUE +?CCL11: PRINTI "Du begreifst, da%s es deinen Tod bedeuten w%urde, wenn du hier ausstiegest." + CRLF + RETURN 2 + + + .FUNCT V-DISENCHANT:ANY:0:0 + PRINTR "Hier passiert garnichts." + + + .FUNCT V-DRINK:ANY:0:0 + CALL1 V-EAT + RSTACK + + + .FUNCT V-DRINK-FROM:ANY:0:0 + PRINTR "Wie eigenartig!" + + + .FUNCT PRE-DROP:ANY:0:0 + LOC WINNER + EQUAL? PRSO,STACK \FALSE + ICALL PERFORM,V?DISEMBARK,PRSO + RTRUE + + + .FUNCT V-DROP:ANY:0:0 + CALL1 IDROP + ZERO? STACK /FALSE + PRINTR "Fallen gelassen." + + + .FUNCT V-EAT:ANY:0:0,EAT?,DRINK?,NOBJ + FSET? PRSO,FOODBIT /?PRD4 + PUSH 0 + JUMP ?PRD5 +?PRD4: PUSH 1 +?PRD5: SET 'EAT?,STACK + ZERO? EAT? /?CCL3 + IN? PRSO,WINNER /?CCL8 + LOC PRSO + IN? STACK,WINNER /?CCL8 + PRINTI "Das hast du doch gar nicht in der Hand." + CRLF + JUMP ?CND6 +?CCL8: EQUAL? PRSA,V?DRINK \?CCL12 + PRINTI "Wie in aller Welt willst du " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " denn trinken?" +?CCL12: PRINTI "Es tut gut, l%oscht jeglichen Durst, den du eventuell versp%urt hast." + ICALL2 REMOVE-CAREFULLY,PRSO +?CND6: CRLF + RTRUE +?CCL3: FSET? PRSO,DRINKBIT \?CCL14 + SET 'DRINK?,TRUE-VALUE + LOC PRSO >NOBJ + IN? PRSO,GLOBAL-OBJECTS /?CTR16 + CALL GLOBAL-IN?,GLOBAL-WATER,HERE + ZERO? STACK /?CCL17 +?CTR16: CALL1 HIT-SPOT + RSTACK +?CCL17: ZERO? NOBJ /?CTR20 + CALL2 ACCESSIBLE?,NOBJ + ZERO? STACK \?CCL21 +?CTR20: PRINTR "Du hast doch garnichts zu trinken." +?CCL21: CALL2 ACCESSIBLE?,NOBJ + ZERO? STACK /?CCL25 + IN? NOBJ,WINNER /?CCL25 + PRINTI "Erst mu%st du doch " + ICALL2 DER-ACC-PRINT,NOBJ + PRINTR " in der Hand halten." +?CCL25: FSET? NOBJ,OPENBIT /?CCL29 + PRINTI "Erst mu%st du doch " + ICALL2 DER-ACC-PRINT,NOBJ + PRINTR " %offnen." +?CCL29: CALL1 HIT-SPOT + RSTACK +?CCL14: ZERO? EAT? \FALSE + ZERO? DRINK? \FALSE + PRINTI "Ich glaube nicht, da%s dir " + ICALL2 DER-NOM-PRINT,PRSO + PRINTI " bekommt." + RTRUE + + + .FUNCT HIT-SPOT:ANY:0:0 + EQUAL? PRSO,WATER \?CND1 + CALL GLOBAL-IN?,GLOBAL-WATER,HERE + ZERO? STACK \?CND1 + ICALL2 REMOVE-CAREFULLY,PRSO +?CND1: PRINTR "Es tut gut, l%oscht jeglichen Durst, den du eventuell versp%urt hast." + + + .FUNCT V-ECHO:ANY:0:0,LST,MAX:FIX,ECH:FIX,CNT:FIX,?TMP1 + GET P-LEXV,P-LEXWORDS + GRTR? STACK,0 \?CCL3 + GET P-LEXV,P-LEXWORDS + MUL STACK,P-WORDLEN + ADD P-LEXV,STACK >LST + GET LST,0 >?TMP1 + GET LST,1 + ADD ?TMP1,STACK + SUB STACK,1 >MAX +?PRG4: IGRTR? 'ECH,2 \?CCL8 + PRINTR "..." +?CCL8: GET LST,1 + SUB STACK,1 >CNT +?PRG9: IGRTR? 'CNT,MAX /?REP10 + GET P-INBUF,CNT + PRINTC STACK + JUMP ?PRG9 +?REP10: PRINTC 32 + JUMP ?PRG4 +?CCL3: PRINTR "Echo Echo ..." + + + .FUNCT V-ENCHANT:ANY:0:0 + ICALL1 NULL-F + CALL1 V-DISENCHANT + RSTACK + + + .FUNCT REMOVE-CAREFULLY:ANY:1:1,OBJ,OLIT + EQUAL? OBJ,P-IT-OBJECT \?CND1 + SET 'P-IT-OBJECT,FALSE-VALUE +?CND1: EQUAL? OBJ,P-HER-OBJECT \?CND3 + SET 'P-HER-OBJECT,FALSE-VALUE +?CND3: EQUAL? OBJ,P-HIM-OBJECT \?CND5 + SET 'P-HIM-OBJECT,FALSE-VALUE +?CND5: SET 'OLIT,LIT + REMOVE OBJ + CALL2 LIT?,HERE >LIT + ZERO? OLIT /TRUE + EQUAL? OLIT,LIT /TRUE + PRINTR "Du tappst im Dunkeln." + + + .FUNCT V-ENTER:ANY:0:0 + CALL2 DO-WALK,P?HINEIN + RSTACK + + + .FUNCT V-EXAMINE:ANY:0:0 + GETP PRSO,P?TEXT + ZERO? STACK /?CCL3 + GETP PRSO,P?TEXT + PRINT STACK + CRLF + RTRUE +?CCL3: FSET? PRSO,CONTBIT /?CTR4 + FSET? PRSO,DOORBIT \?CCL5 +?CTR4: CALL1 V-LOOK-INSIDE + RSTACK +?CCL5: PRINTI "Da ist nichts Besonderes an " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR "." + + + .FUNCT V-EXIT:ANY:0:0 + EQUAL? PRSO,FALSE-VALUE,ROOMS \?CCL3 + LOC WINNER + FSET? STACK,VEHBIT \?CCL3 + LOC WINNER + ICALL PERFORM,V?DISEMBARK,STACK + RTRUE +?CCL3: ZERO? PRSO /?CCL7 + IN? WINNER,PRSO \?CCL7 + ICALL PERFORM,V?DISEMBARK,PRSO + RTRUE +?CCL7: CALL2 DO-WALK,P?RAUS + RSTACK + + + .FUNCT V-EXORCISE:ANY:0:0 + PRINTR "Was f%ur eine Schnappsidee!" + + + .FUNCT PRE-FILL:ANY:0:0,TX + ZERO? PRSI \?CND1 + GETPT HERE,P?GLOBAL >TX + ZERO? TX /?CCL5 + PTSIZE TX + DIV STACK,2 + SUB STACK,1 + CALL ZMEMQ,GLOBAL-WATER,TX,STACK + ZERO? STACK /?CCL5 + ICALL PERFORM,V?FILL,PRSO,GLOBAL-WATER + RTRUE +?CCL5: LOC WINNER + IN? WATER,STACK \?CCL9 + ICALL PERFORM,V?FILL,PRSO,WATER + RTRUE +?CCL9: PRINTI "Da ist nichts, mit dem man " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " f%ullen k%onnte." +?CND1: EQUAL? PRSI,WATER /FALSE + EQUAL? PRSI,GLOBAL-WATER /FALSE + ICALL PERFORM,V?PUT,PRSI,PRSO + RTRUE + + + .FUNCT V-FILL:ANY:0:0 + ZERO? PRSI \?CCL3 + CALL GLOBAL-IN?,GLOBAL-WATER,HERE + ZERO? STACK /?CCL6 + ICALL PERFORM,V?FILL,PRSO,GLOBAL-WATER + RTRUE +?CCL6: LOC WINNER + IN? WATER,STACK \?CCL8 + ICALL PERFORM,V?FILL,PRSO,WATER + RTRUE +?CCL8: PRINTI "Da ist nichts, mit dem man " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " f%ullen k%onnte." +?CCL3: PRINTR "You may know how to do that, but I don't." + + + .FUNCT V-FIND:ANY:0:0,L + LOC PRSO >L + EQUAL? PRSO,HANDS,LUNGS \?CCL3 + PRINTR "Within six feet of your head, assuming you haven't left that somewhere." +?CCL3: EQUAL? PRSO,ME \?CCL5 + PRINTR "Du bist doch hier irgendwo in der N%ahe." +?CCL5: EQUAL? L,GLOBAL-OBJECTS \?CCL7 + PRINTI "Du findest " + ICALL2 PRONOUN-ACC-PRINT,PRSO + PRINTR "." +?CCL7: IN? PRSO,WINNER \?CCL9 + PRINTI "Du hast " + ICALL2 PRONOUN-ACC-PRINT,PRSO + PRINTR "." +?CCL9: IN? PRSO,HERE /?CTR10 + CALL GLOBAL-IN?,PRSO,HERE + ZERO? STACK /?CCL11 +?CTR10: ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTR " ist hier." +?CCL11: FSET? L,ACTORBIT \?CCL15 + ICALL2 DER-NOM-CAP-PRINT,L + PRINTI " hat " + ICALL2 PRONOUN-ACC-PRINT,PRSO + PRINTR "." +?CCL15: FSET? L,SURFACEBIT \?CCL17 + ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTI " ist auf " + ICALL2 DER-DAT-PRINT,L + PRINTR "." +?CCL17: FSET? L,CONTBIT \?CCL19 + ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTI " in " + ICALL2 DER-DAT-PRINT,L + PRINTR "." +?CCL19: PRINTR "Da bist du bei mir an der falschen Adresse." + + + .FUNCT V-FOLLOW:ANY:0:0 + PRINTR "Du bist narrisch!" + + + .FUNCT V-FROBOZZ:ANY:0:0 + PRINTR "Die FROBOZZ FIRMA gr%undete, besitzt und leitet diesen Kerker." + + + .FUNCT PRE-GIVE:ANY:0:0 + CALL2 HELD?,PRSO + ZERO? STACK \FALSE + PRINTI "Das kannst du leicht sagen, denn du besitzt ja nicht einmal " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR "." + + + .FUNCT V-GIVE:ANY:0:0 + FSET? PRSI,ACTORBIT /?CCL3 + PRINTI "Du kannst " + ICALL2 EIN-DAT-PRINT,PRSI + PRINTI " doch nicht " + ICALL2 EIN-ACC-PRINT,PRSO + PRINTI " geben!" + RTRUE +?CCL3: ICALL2 DER-NOM-CAP-PRINT,PRSI + PRINTI " lehnt " + ICALL2 PRONOUN-ACC-PRINT,PRSI + PRINTR " h%oflich ab." + + + .FUNCT V-HATCH:ANY:0:0 + PRINTR "Bizarre!" + + + .FUNCT V-HELLO:ANY:0:0 + ZERO? PRSO /?CCL3 + EQUAL? PRSO,ROOMS /?CCL3 + FSET? PRSO,ACTORBIT \?CCL8 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " gr%u%st dich mit einem Kopfnicken." +?CCL8: PRINTI "Es ist eine alte Suppe, da%s nur Verr%uckte zu " + ICALL2 EIN-DAT-PRINT,PRSO + PRINTR ": %>Guten Tag%< sagen." +?CCL3: CALL2 PICK-ONE,HELLOS + PRINT STACK + CRLF + RTRUE + + + .FUNCT V-HINTS-OFF:ANY:0:0 + PRINTI "Tips sind f%uer diese Runde abgestellt." + CRLF + SET 'HINTS-OFF,TRUE-VALUE + RETURN HINTS-OFF + + + .FUNCT V-INCANT:ANY:0:0 + PRINTI "The incantation echoes back faintly, but nothing else happens." + CRLF + SET 'QUOTE-FLAG,FALSE-VALUE + SET 'P-CONT,FALSE-VALUE + RTRUE + + + .FUNCT V-INFLATE:ANY:0:0 + CALL2 ACCESSIBLE?,PUMP + ZERO? STACK /?CCL3 + EQUAL? PRSO,INFLATED-BOAT /?CTR2 + EQUAL? PRSO,INFLATABLE-BOAT /?CTR2 + EQUAL? PRSO,PUNCTURED-BOAT \?CCL3 +?CTR2: PRINTI "(mit " + ICALL2 DER-DAT-PRINT,PUMP + PRINTC 41 + CRLF + CRLF + ICALL PERFORM,V?INFLATE,PRSO,PUMP + RTRUE +?CCL3: PRINTR "Wie willst du das denn aufblasen?" + + + .FUNCT V-KICK:ANY:0:0 + ICALL2 DER-ACC-CAP-PRINT,PRSO + PRINTR " mit dem Fu%s treten, scheint nicht zu funktionieren." + + + .FUNCT V-KISS:ANY:0:0 + PRINTR "Da w%urdest du lieber einen Ochs zwischen den H%ornern k%ussen." + + + .FUNCT V-KNOCK:ANY:0:0 + FSET? PRSO,DOORBIT \?CCL3 + PRINTR "Niemand zu Hause." +?CCL3: PRINTI "Warum an " + ICALL2 EIN-ACC-PRINT,PRSO + PRINTR " klopfen?" + + + .FUNCT V-LAMP-OFF:ANY:0:0 + FSET? PRSO,LIGHTBIT \?CCL3 + FSET? PRSO,ONBIT /?CCL6 + ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTR " ist schon aus." +?CCL6: FCLEAR PRSO,ONBIT + ZERO? LIT /?CND7 + CALL2 LIT?,HERE >LIT +?CND7: PRINTI "O.K. " + ICALL2 DER-NOM-PRINT,PRSO + PRINTI " ist jetzt aus." + CRLF + ZERO? LIT \TRUE + PRINTR "Es ist jetzt stockdunkel." +?CCL3: PRINTR "Das kannst du nicht ausmachen." + + + .FUNCT V-LAMP-ON:ANY:0:0 + FSET? PRSO,LIGHTBIT \?CCL3 + FSET? PRSO,ONBIT \?CCL6 + ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTR " ist schon an." +?CCL6: FSET PRSO,ONBIT + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " ist nun an." + CRLF + ZERO? LIT \TRUE + CALL2 LIT?,HERE >LIT + CRLF + ICALL1 V-LOOK + RTRUE +?CCL3: FSET? PRSO,BURNBIT \?CCL10 + PRINTI "Wenn du " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " verbrennen willst, mu%st du's sagen." +?CCL10: PRINTR "Das kannst du nicht anmachen." + + + .FUNCT V-LAUNCH:ANY:0:0 + FSET? PRSO,VEHBIT \?CCL3 + PRINTI "Du kannst das nicht absto%sen, in dem du %>Absto%sen%< sagst." + RTRUE +?CCL3: PRINTR "Das ist ziemlich absurd." + + + .FUNCT V-LEAN-ON:ANY:0:0 + PRINTR "Bist du m%ude?" + + + .FUNCT V-LEAP:ANY:0:0,TX,S + ZERO? PRSO /?CCL3 + IN? PRSO,HERE \?CCL6 + FSET? PRSO,ACTORBIT \?CCL9 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " ist zu gro%s, um %uber ihn zu springen." +?CCL9: CALL1 V-SKIP + RSTACK +?CCL6: PRINTR "Das w%are ein toller Trick." +?CCL3: GETPT HERE,P?RUNTER >TX + ZERO? TX /?CCL11 + PTSIZE TX >S + EQUAL? S,3 /?CTR13 + EQUAL? S,5 \?CCL14 + GETB TX,1 + VALUE STACK + ZERO? STACK \?CCL14 +?CTR13: PRINTI "Das war nicht der sicherste Platz f%ur den Absprung." + CRLF + CALL2 PICK-ONE,JUMPLOSS + CALL2 JIGS-UP,STACK + RSTACK +?CCL14: EQUAL? HERE,UP-A-TREE \?CCL20 + PRINTI "In einem Anflug von ungew%ohnlicher Waghalsigkeit, hast du es geschafft, auf beiden F%u%sen zu landen, ohne dich umzubringen." + CRLF + CRLF + ICALL2 DO-WALK,P?RUNTER + RTRUE +?CCL20: CALL1 V-SKIP + RSTACK +?CCL11: CALL1 V-SKIP + RSTACK + + + .FUNCT V-LEAVE:ANY:0:0 + EQUAL? PRSO,ROOMS \?CCL3 + CALL2 DO-WALK,P?RAUS + RSTACK +?CCL3: ICALL PERFORM,V?DROP,PRSO + RTRUE + + + .FUNCT V-LISTEN:ANY:0:0 + PRINTI "Im Moment gibt " + ICALL2 DER-NOM-PRINT,PRSO + PRINTR " keinen Laut von sich." + + + .FUNCT V-LOCK:ANY:0:0 + PRINTR "Das scheint nicht zu funktionieren." + + + .FUNCT V-LOOK:ANY:0:0 + CALL2 DESCRIBE-ROOM,TRUE-VALUE + ZERO? STACK /FALSE + CALL2 DESCRIBE-OBJECTS,TRUE-VALUE + RSTACK + + + .FUNCT V-LOOK-BEHIND:ANY:0:0 + PRINTI "Da ist nichts hinter " + ICALL2 DER-DAT-PRINT,PRSO + PRINTR "." + + + .FUNCT V-LOOK-INSIDE:ANY:0:0 + FSET? PRSO,DOORBIT \?CCL3 + FSET? PRSO,OPENBIT \?CCL6 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " ist ge%offnet, aber du kannst nicht sehen, was dahinter ist." +?CCL6: ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " ist geschlo%sen." +?CCL3: FSET? PRSO,CONTBIT \?CCL8 + FSET? PRSO,ACTORBIT \?CCL11 + PRINTR "Da gibt's nichts Besonderes zu sehen." +?CCL11: CALL2 SEE-INSIDE?,PRSO + ZERO? STACK /?CCL13 + FIRST? PRSO \?CCL16 + CALL2 PRINT-CONT,PRSO + ZERO? STACK \TRUE +?CCL16: CALL1 NULL-F + ZERO? STACK \TRUE + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " ist leer." +?CCL13: ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " ist geschlo%sen." +?CCL8: PRINTI "Du kannst nicht in " + ICALL2 EIN-DAT-PRINT,PRSO + PRINTR " hineingucken." + + + .FUNCT V-LOOK-ON:ANY:0:0 + FSET? PRSO,SURFACEBIT \?CCL3 + ICALL PERFORM,V?LOOK-INSIDE,PRSO + RTRUE +?CCL3: PRINTR "Weird." + + + .FUNCT V-LOOK-UNDER:ANY:0:0 + PRINTR "Da gibt es nichts als Staub." + + + .FUNCT V-LOWER:ANY:0:0 + PRINTI "So mit " + ICALL2 DER-DAT-PRINT,PRSO + PRINTR " zu spielen, ist nicht hilfreich." + + + .FUNCT V-MAKE:ANY:0:0 + PRINTR "Das kannst du nicht." + + + .FUNCT V-MELT:ANY:0:0 + PRINTI "Es ist nicht gesagt, da%s man " + ICALL2 EIN-NOM-PRINT,PRSO + PRINTR " schmelzen kann." + + + .FUNCT PRE-MOVE:ANY:0:0 + CALL2 HELD?,PRSO + ZERO? STACK /FALSE + PRINTR "Deine Jonglierk%unste sind nicht gut genug daf%ur." + + + .FUNCT V-MOVE:ANY:0:0 + FSET? PRSO,TAKEBIT \?CCL3 + PRINTI "Wenn man " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " wegnimmt, kommt nichts zum Vorschein." +?CCL3: ICALL2 DER-ACC-CAP-PRINT,PRSO + PRINTR " kann man nicht aus dem Weg schieben." + + + .FUNCT V-MUMBLE:ANY:0:0 + PRINTR "You'll have to speak up if you expect me to hear you!" + + + .FUNCT PRE-MUNG:ANY:0:0 + CALL1 NULL-F + ZERO? STACK \TRUE + ZERO? PRSI /?CCL5 + FSET? PRSI,WEAPONBIT /FALSE +?CCL5: PRINTI "Es ist sinnlos, " + ICALL2 DER-ACC-PRINT,PRSO + PRINTI " mit " + ZERO? PRSI \?CCL10 + PRINTI "blo%sen F%austen" + JUMP ?CND8 +?CCL10: ICALL2 EIN-DAT-PRINT,PRSI +?CND8: PRINTR " zerst%oren zu wollen." + + + .FUNCT V-MUNG:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + ICALL PERFORM,V?ATTACK,PRSO + RTRUE +?CCL3: PRINTR "Gutgemeinter Versuch..." + + + .FUNCT V-NO:ANY:0:0 + CALL1 V-YES + RSTACK + + + .FUNCT V-ODYSSEUS:ANY:0:0 + EQUAL? HERE,CYCLOPS-ROOM \?CCL3 + IN? CYCLOPS,HERE \?CCL3 + ZERO? CYCLOPS-FLAG \?CCL3 + CALL2 INT,I-CYCLOPS + PUT STACK,0,0 + SET 'CYCLOPS-FLAG,TRUE-VALUE + PRINTI "Als der Zyklop von der t%odlichen Strafe seines Vaters h%ort, entflieht er aus dem Zimmer, indem er die Ostwand des Zimmers niederrennt." + CRLF + SET 'MAGIC-FLAG,TRUE-VALUE + FCLEAR CYCLOPS,FIGHTBIT + CALL2 REMOVE-CAREFULLY,CYCLOPS + RSTACK +?CCL3: PRINTR "War er nicht ein Seemann?" + + + .FUNCT V-OIL:ANY:0:0 + PRINTR "Du bist wohl auch so einer, der Spinat ins Auto tankt?" + + + .FUNCT V-OPEN:ANY:0:0,F,STR + EQUAL? PRSO,ROPE \?CCL3 + ICALL PERFORM,V?UNTIE,ROPE + RTRUE +?CCL3: FSET? PRSO,CONTBIT \?CCL5 + GETP PRSO,P?CAPACITY + ZERO? STACK /?CCL5 + FSET? PRSO,OPENBIT \?CCL10 + ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTR " ist schon offen." +?CCL10: FSET PRSO,OPENBIT + FSET PRSO,TOUCHBIT + FIRST? PRSO \?CTR12 + FSET? PRSO,TRANSBIT \?CCL13 +?CTR12: PRINTR "Ge%offnet." +?CCL13: FIRST? PRSO >F \?CCL17 + NEXT? F /?CCL17 + FSET? F,TOUCHBIT /?CCL17 + GETP F,P?FDESC >STR + ZERO? STR /?CCL17 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " l%a%st sich %offnen." + CRLF + PRINT STR + CRLF + RTRUE +?CCL17: ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI ", der ge%offnet ist, enth%alt " + ICALL2 PRINT-CONTENTS,PRSO + PRINTR "." +?CCL5: FSET? PRSO,DOORBIT \?CCL23 + FSET? PRSO,OPENBIT \?CCL26 + ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTR " ist schon offen." +?CCL26: ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " %offnet." + CRLF + FSET PRSO,OPENBIT + RTRUE +?CCL23: PRINTI "Du scheinst " + ICALL2 EIN-ACC-PRINT,PRSO + PRINTR " nicht %offnen zu k%onnen." + + + .FUNCT V-OVERBOARD:ANY:0:0,LOCN + EQUAL? PRSI,TEETH \?CCL3 + LOC WINNER >LOCN + FSET? LOCN,VEHBIT \?CCL6 + LOC LOCN + MOVE PRSO,STACK + PRINTI "Ahoy -- " + ICALL DPRINT,PRSO,FALSE-VALUE + PRINTR " %uber Bord!" +?CCL6: PRINTR "You're not in anything!" +?CCL3: LOC WINNER + FSET? STACK,VEHBIT \?CCL8 + ICALL PERFORM,V?THROW,PRSO + RTRUE +?CCL8: PRINTR "Huh?" + + + .FUNCT V-PICK:ANY:0:0 + PRINTR "Das kannst du nicht knacken." + + + .FUNCT V-PLAY:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + PRINTI "Du spielst die Rolle so echt, da%s du dich selber umbringst, genau wie er es h%atte tun k%onnen." + CRLF + CALL2 JIGS-UP,STR?200 + RSTACK +?CCL3: PRINTR "Das ist bl%od." + + + .FUNCT V-PLUG:ANY:0:0 + PRINTR "Erfolglos." + + + .FUNCT V-POUR-ON:ANY:0:0 + EQUAL? PRSO,WATER \?CCL3 + ICALL2 REMOVE-CAREFULLY,PRSO + FSET? PRSI,FLAMEBIT \?CCL6 + FSET? PRSI,ONBIT \?CCL6 + ICALL2 DER-NOM-CAP-PRINT,PRSI + PRINTI " ist schon aus." + CRLF + ICALL1 NULL-F + FCLEAR PRSI,ONBIT + FCLEAR PRSI,FLAMEBIT + RTRUE +?CCL6: PRINTI "Das Wasser flie%st %uber " + ICALL2 DER-ACC-PRINT,PRSI + PRINTR " auf den Fu%sboden und verdampft." +?CCL3: EQUAL? PRSO,PUTTY \?CCL10 + CALL PERFORM,V?PUT,PUTTY,PRSI + RSTACK +?CCL10: PRINTR "Das l%a%st sich nicht gie%sen." + + + .FUNCT V-PRAY:ANY:0:0 + EQUAL? HERE,SOUTH-TEMPLE \?CCL3 + CALL2 GOTO,FOREST-1 + RSTACK +?CCL3: PRINTR "Wenn du gen%ugend betest, dann werden deine Gebete vielleicht erh%ort." + + + .FUNCT V-PUMP:ANY:0:0 + ZERO? PRSI /?CCL3 + EQUAL? PRSI,PUMP /?CCL3 + PRINTI "Pump" + ICALL2 PRONOUN-ACC-PRINT,PRSO + PRINTI " up with " + ICALL2 EIN-DAT-PRINT,PRSI + PRINTR "?" +?CCL3: IN? PUMP,WINNER \?CCL7 + CALL PERFORM,V?INFLATE,PRSO,PUMP + RSTACK +?CCL7: PRINTR "It's really not clear how." + + + .FUNCT V-PUSH:ANY:0:0 + ICALL2 DER-ACC-CAP-PRINT,PRSO + PRINTR " schieben ist erfolglos." + + + .FUNCT V-PUSH-TO:ANY:0:0 + PRINTR "Dahin kann man nichts schieben." + + + .FUNCT PRE-PUT:ANY:0:0 + CALL1 NULL-F + ZERO? STACK \FALSE + CALL1 PRE-GIVE + RSTACK + + + .FUNCT V-PUT:ANY:0:0,?TMP1,?TMP2,?TMP3 + FSET? PRSI,OPENBIT /?CND1 + FSET? PRSI,DOORBIT /?CND1 + FSET? PRSI,CONTBIT /?CND1 + FSET? PRSI,VEHBIT /?CND1 + PRINTR "Das geht nicht." +?CND1: FSET? PRSI,OPENBIT /?CCL9 + ICALL2 DER-NOM-CAP-PRINT,PRSI + PRINTI " ist nicht offen." + CRLF + CALL2 THIS-IS-IT,PRSI + RSTACK +?CCL9: EQUAL? PRSI,PRSO \?CCL11 + PRINTR "Wie willst du das denn anstellen?" +?CCL11: IN? PRSO,PRSI \?CCL13 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " ist schon " + ICALL2 DER-DAT-PRINT,PRSI + PRINTR "." +?CCL13: CALL2 WEIGHT,PRSI >?TMP3 + CALL2 WEIGHT,PRSO + ADD ?TMP3,STACK >?TMP2 + GETP PRSI,P?SIZE + SUB ?TMP2,STACK >?TMP1 + GETP PRSI,P?CAPACITY + GRTR? ?TMP1,STACK \?CCL15 + PRINTR "Da ist wirklich kein Platz mehr." +?CCL15: CALL2 HELD?,PRSO + ZERO? STACK \?CCL17 + FSET? PRSO,TRYTAKEBIT \?CCL17 + PRINTI "Du hast " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " ja gar nicht." +?CCL17: CALL2 HELD?,PRSO + ZERO? STACK \?CCL21 + CALL1 ITAKE + ZERO? STACK /TRUE +?CCL21: MOVE PRSO,PRSI + FSET PRSO,TOUCHBIT + ICALL2 SCORE-OBJ,PRSO + PRINTR "Geschafft." + + + .FUNCT V-PUT-BEHIND:ANY:0:0 + PRINTR "Das Versteck ist nicht sicher." + + + .FUNCT V-PUT-ON:ANY:0:0 + EQUAL? PRSI,GROUND \?CCL3 + ICALL PERFORM,V?DROP,PRSO + RTRUE +?CCL3: FSET? PRSI,SURFACEBIT \?CCL5 + CALL1 V-PUT + RSTACK +?CCL5: ICALL2 DER-NOM-CAP-PRINT,PRSI + PRINTR " hat keine gute Oberfl%ache." + + + .FUNCT V-PUT-UNDER:ANY:0:0 + PRINTR "You can't do that." + + + .FUNCT V-RAISE:ANY:0:0 + CALL1 V-LOWER + RSTACK + + + .FUNCT PRE-READ:ANY:0:0 + ZERO? LIT \?CCL3 + PRINTR "Es ist unm%oglich im Dunkeln zu lesen." +?CCL3: ZERO? PRSI /FALSE + FSET? PRSI,TRANSBIT /FALSE + PRINTI "Wie kann man durch " + ICALL2 EIN-ACC-PRINT,PRSI + PRINTR " hindurchsehen?" + + + .FUNCT V-READ:ANY:0:0 + FSET? PRSO,READBIT /?CCL3 + PRINTI "Wie kann man " + ICALL2 EIN-ACC-PRINT,PRSI + PRINTR " lesen?" +?CCL3: GETP PRSO,P?TEXT + PRINT STACK + CRLF + RTRUE + + + .FUNCT V-READ-PAGE:ANY:0:0 + ICALL PERFORM,V?READ,PRSO + RTRUE + + + .FUNCT V-REPENT:ANY:0:0 + PRINTR "Es k%onnte m%oglicherweise schon zu sp%at sein." + + + .FUNCT V-REPLY:ANY:0:0 + PRINTI "Es ist unwahrscheinlich, da%s sich " + ICALL2 DER-NOM-PRINT,PRSO + PRINTI " daf%ur interesiert." + CRLF + SET 'P-CONT,FALSE-VALUE + SET 'QUOTE-FLAG,FALSE-VALUE + RTRUE + + + .FUNCT V-RING:ANY:0:0 + PRINTR "Wie, um Himmels Willen, soll man damit klingeln?" + + + .FUNCT V-RUB:ANY:0:0 + PRINTI "Den Tisch reiben ist nicht hilfreich." + RTRUE + + + .FUNCT V-SAY:ANY:0:0,V + ZERO? P-CONT \?CND1 + PRINTR "Was?" +?CND1: SET 'QUOTE-FLAG,FALSE-VALUE + CALL FIND-IN,HERE,ACTORBIT >V + ZERO? V /?CCL5 + PRINTI "Um zu den Personen zu sprechen, tippe: +>PERSON, TAG +oder +>PERSON, LASS DER AXT FALLEN +(usw.) +" + SET 'P-CONT,FALSE-VALUE + RTRUE +?CCL5: GET P-LEXV,P-CONT + EQUAL? STACK,W?HALLO /TRUE + SET 'P-CONT,FALSE-VALUE + PRINTR "Selbstgespr%ache deuten auf einen bevorstehenden Nervenzusammenbruch hin." + + + .FUNCT V-SEARCH:ANY:0:0 + PRINTR "Du findest nichts Ungew%ohnliches." + + + .FUNCT V-SEND:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + PRINTI "Warum w%urdest du " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " rufen lassen?" +?CCL3: PRINTR "Das ist Unsinn." + + + .FUNCT V-SCHENKE:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + ICALL PERFORM,V?GIVE,PRSI,PRSO + RTRUE +?CCL3: FSET? PRSI,ACTORBIT \?CCL5 + ICALL PERFORM,V?GIVE,PRSO,PRSI + RTRUE +?CCL5: ICALL PERFORM,V?DROP,PRSO,PRSI + RTRUE + + + .FUNCT PRE-SGIVE:ANY:0:0 + FSET? PRSI,ACTORBIT \?CCL3 + ICALL PERFORM,V?GIVE,PRSO,PRSI + RTRUE +?CCL3: ICALL PERFORM,V?GIVE,PRSI,PRSO + RTRUE + + + .FUNCT V-SGIVE:ANY:0:0 + PRINTR "Foo!" + + + .FUNCT V-SHAKE:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + PRINTR "Das scheint keinen Zweck zu haben." +?CCL3: FSET? PRSO,TAKEBIT /?CCL5 + PRINTI "Du kannst " + ICALL2 PRONOUN-ACC-PRINT,PRSO + PRINTI " nicht wegnehmen, also kannst du " + ICALL2 PRONOUN-ACC-PRINT,PRSO + PRINTR " auch nicht sch%utteln." +?CCL5: FSET? PRSO,CONTBIT \?CCL7 + FSET? PRSO,OPENBIT \?CCL10 + FIRST? PRSO \?CCL13 + ICALL1 SHAKE-LOOP + PRINTI "Der Inhalt f%allt " + FSET? HERE,RLANDBIT /?CCL16 + PRINTI "heraus und verschwindet" + JUMP ?CND14 +?CCL16: PRINTI "auf die Erde" +?CND14: PRINTR "." +?CCL13: PRINTR "Geschafft." +?CCL10: FIRST? PRSO \?CCL19 + PRINTI "Es h%ort sich an, als w%are da etwas in " + ICALL2 DER-DAT-PRINT,PRSO + PRINTR "." +?CCL19: ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " h%ort sich leer an." +?CCL7: PRINTR "Shaken." + + + .FUNCT SHAKE-LOOP:ANY:0:0,X +?PRG1: FIRST? PRSO >X \TRUE + FSET X,TOUCHBIT + EQUAL? HERE,UP-A-TREE \?CCL8 + PUSH PATH + JUMP ?CND6 +?CCL8: FSET? HERE,RLANDBIT /?CCL10 + PUSH STREAM + JUMP ?CND6 +?CCL10: PUSH HERE +?CND6: MOVE X,STACK + JUMP ?PRG1 + + + .FUNCT V-SKIP:ANY:0:0 + CALL2 PICK-ONE,WHEEEEE + PRINT STACK + CRLF + RTRUE + + + .FUNCT V-SMELL:ANY:0:0 + ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTI " riecht genau wie " + ICALL2 EIN-NOM-PRINT,PRSO + PRINTR "." + + + .FUNCT V-SPIN:ANY:0:0 + PRINTR "Den kannst du nicht rumwirbeln!" + + + .FUNCT V-SPRAY:ANY:0:0 + CALL1 V-SQUEEZE + RSTACK + + + .FUNCT V-SQUEEZE:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " versteht das nicht." +?CCL3: PRINTR "Wie einmalig sinnlos." + + + .FUNCT V-SSPRAY:ANY:0:0 + CALL PERFORM,V?SPRAY,PRSI,PRSO + RSTACK + + + .FUNCT V-STAB:ANY:0:0,W + CALL2 FIND-WEAPON,WINNER >W + ZERO? W /?CCL3 + ICALL PERFORM,V?ATTACK,PRSO,W + RTRUE +?CCL3: PRINTI "Du hast wohl vor, " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " mit dem kleinen Finger zu erdolchen." + + + .FUNCT V-STAND:ANY:0:0 + LOC WINNER + FSET? STACK,VEHBIT \?CCL3 + LOC WINNER + ICALL PERFORM,V?DISEMBARK,STACK + RTRUE +?CCL3: PRINTR "Du stehst schon." + + + .FUNCT V-STAY:ANY:0:0 + PRINTR "Du r%uhrst dich nicht." + + + .FUNCT V-SWIM:ANY:0:0 + CALL GLOBAL-IN?,GLOBAL-WATER,HERE + ZERO? STACK /?CCL3 + PRINTR "Schwimmen im Kerker ist gew%ohnlich verboten." +?CCL3: CALL1 NULL-F + ZERO? STACK \FALSE + PRINTR "Geh baden." + + + .FUNCT V-SWING:ANY:0:0 + ZERO? PRSI \?CCL3 + PRINTR "Huiiii!" +?CCL3: ICALL PERFORM,V?ATTACK,PRSI,PRSO + RTRUE + + + .FUNCT V-TRAGE:ANY:0:0 + CALL2 HELD?,PRSO + ZERO? STACK /?CCL3 + FSET? PRSO,WEARBIT \?CCL3 + ICALL PERFORM,V?WEAR,PRSO + RTRUE +?CCL3: ICALL PERFORM,V?TAKE,PRSO + RTRUE + + + .FUNCT PRE-TAKE:ANY:0:0 + IN? PRSO,WINNER \?CCL3 + FSET? PRSO,WEARBIT \?CCL6 + PRINTI "Du hast " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " doch schon an." +?CCL6: PRINTR "Das hast du doch schon!" +?CCL3: LOC PRSO + FSET? STACK,CONTBIT \?CCL8 + LOC PRSO + FSET? STACK,OPENBIT /?CCL8 + PRINTR "Was in einem geschlo%senen Beh%alter ist, kannst man nicht anfassen." +?CCL8: ZERO? PRSI /?CCL12 + EQUAL? PRSI,GROUND \?CND13 + SET 'PRSI,FALSE-VALUE + RFALSE +?CND13: ICALL1 NULL-F + LOC PRSO + EQUAL? PRSI,STACK /?CCL17 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " ist doch garnicht in " + ICALL2 DER-DAT-PRINT,PRSI + PRINTR "." +?CCL17: SET 'PRSI,FALSE-VALUE + RFALSE +?CCL12: LOC WINNER + EQUAL? PRSO,STACK \FALSE + PRINTR "Du bist drin." + + + .FUNCT V-TAKE:ANY:0:0 + CALL1 ITAKE + EQUAL? STACK,TRUE-VALUE \FALSE + FSET? PRSO,WEARBIT \?CCL6 + PRINTI "Jetzt hast du " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " an." +?CCL6: PRINTR "Genommen." + + + .FUNCT V-TELL:ANY:0:0 + FSET? PRSO,ACTORBIT \?CCL3 + ZERO? P-CONT /?CCL6 + SET 'WINNER,PRSO + LOC WINNER >HERE + RETURN HERE +?CCL6: ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTR " stutzt einen Moment. Vielleicht denkt er, da%s du die Spielanleitung noch mal durchlesen solltest." +?CCL3: PRINTI "Mit " + ICALL2 DER-DAT-PRINT,PRSO + PRINTI " l%a%st sich nicht reden!" + CRLF + SET 'QUOTE-FLAG,FALSE-VALUE + SET 'P-CONT,FALSE-VALUE + RETURN 2 + + + .FUNCT V-TEST-IT:ANY:0:0,NUM + SET 'NUM,1 + PRINTI "Da%s ich zu sp%at komme." + CRLF + PRINTI "%Offne den %Ubermensch. %Apfel sind sch%on." + CRLF + PRINTI "Er sagt, %>Und %uber den Mann.%<" + CRLF + CRLF +?PRG1: IN? NUM,ROOMS /?CCL5 + EQUAL? NUM,ROOMS /?CCL5 + FSET? NUM,DERBIT /?CTR4 + FSET? NUM,DASBIT /?CTR4 + FSET? NUM,DIEBIT \?CCL5 +?CTR4: ICALL2 DER-NOM-CAP-PRINT,NUM + PRINTI " ist gut." + CRLF + JUMP ?CND3 +?CCL5: IN? NUM,ROOMS /?CND3 + EQUAL? NUM,ROOMS /?CND3 + PRINTI "No Gender: " + ICALL DPRINT,NUM,FALSE-VALUE + CRLF +?CND3: GRTR? NUM,LAST-OBJECT /?REP2 + INC 'NUM + JUMP ?PRG1 +?REP2: CRLF + PRINTR "End of test." + + + .FUNCT V-THROUGH:ANY:0:1,OBJ:OBJECT,M + FSET? PRSO,DOORBIT \?CCL3 + CALL2 OTHER-SIDE,PRSO >M + ZERO? M /?CCL3 + ICALL2 DO-WALK,M + RTRUE +?CCL3: ZERO? OBJ \?CCL7 + FSET? PRSO,VEHBIT \?CCL7 + ICALL PERFORM,V?BOARD,PRSO + RTRUE +?CCL7: ZERO? OBJ \?CTR10 + FSET? PRSO,TAKEBIT /?CCL11 +?CTR10: ICALL1 NULL-F + PRINTI "Du st%o%st dir den Kopf an " + ICALL2 DER-DAT-PRINT,PRSO + PRINTR ", wenn du dieses Kunstst%uck ausprobierst." +?CCL11: IN? PRSO,WINNER \?CCL15 + PRINTR "Dazu mu%s man sich zu sehr verrenken." +?CCL15: CALL2 PICK-ONE,YUKS + PRINT STACK + CRLF + RTRUE + + + .FUNCT V-THROW:ANY:0:0 + CALL1 IDROP + ZERO? STACK /?CCL3 + EQUAL? PRSI,ME \?CCL6 + PRINTI "Ein toller Wurf! " + ICALL2 DER-NOM-CAP-PRINT,PRSO + SET 'WINNER,PLAYER + CALL2 JIGS-UP,STR?205 + RSTACK +?CCL6: ZERO? PRSI /?CCL8 + FSET? PRSI,ACTORBIT \?CCL8 + ICALL2 DER-NOM-CAP-PRINT,PRSI + PRINTI " duckt sich, als " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " vorbeisaust und zu Boden f%allt." +?CCL8: PRINTR "Geworfen." +?CCL3: PRINTR "Was?" + + + .FUNCT V-THROW-OFF:ANY:0:0 + PRINTR "Von dort kann man nichts runterwerfen!" + + + .FUNCT V-TIE:ANY:0:0 + EQUAL? PRSI,WINNER \?CCL3 + PRINTR "Du kannst nichts an dir selber festbinden." +?CCL3: PRINTI "Daran kannst du " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " nicht festbinden." + + + .FUNCT V-TIE-UP:ANY:0:0 + ICALL2 DER-ACC-CAP-PRINT,PRSO + PRINTR " kannst du damit bestimmt nicht fesseln!" + + + .FUNCT V-TREASURE:ANY:0:0 + EQUAL? HERE,NORTH-TEMPLE \?CCL3 + CALL2 GOTO,TREASURE-ROOM + RSTACK +?CCL3: EQUAL? HERE,TREASURE-ROOM \?CCL5 + CALL2 GOTO,NORTH-TEMPLE + RSTACK +?CCL5: PRINTR "Hier passiert garnichts." + + + .FUNCT PRE-TURN:ANY:0:0,X + EQUAL? PRSI,FALSE-VALUE,ROOMS \?CCL3 + EQUAL? PRSO,BOOK /?CCL3 + EQUAL? PRSI,ROOMS \?CND6 + EQUAL? PRSO,BOLT \?PRD11 + CALL2 HELD?,WRENCH >X + ZERO? X \?CCL7 +?PRD11: EQUAL? PRSO,MACHINE-SWITCH \?CND6 + CALL2 HELD?,SCREWDRIVER >X + ZERO? X /?CND6 +?CCL7: ICALL PERFORM,V?TURN,PRSO,X + RTRUE +?CND6: PRINTR "Mit nackten H%anden kommst du hier nicht weiter." +?CCL3: FSET? PRSO,TAKEBIT /FALSE + CALL PERFORM,V?MUNG,PRSO + RSTACK + + + .FUNCT V-TURN:ANY:0:0 + PRINTR "Erfolglos." + + + .FUNCT V-UNLOCK:ANY:0:0 + CALL1 V-LOCK + RSTACK + + + .FUNCT V-UNTIE:ANY:0:0 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " kann nicht festgebunden werden, also kann " + ICALL2 PRONOUN-NOM-PRINT,PRSO + PRINTR " auch nicht losgebunden werden!" + + + .FUNCT V-USE:ANY:0:0 + PRINTR "You must be more specific." + + + .FUNCT V-WAIT:ANY:0:1,NUM + ASSIGNED? 'NUM /?CND1 + SET 'NUM,3 +?CND1: PRINTI "Zeit vergeht..." + CRLF +?PRG3: DLESS? 'NUM,0 /?REP4 + CALL1 CLOCKER + ZERO? STACK /?PRG3 +?REP4: SET 'CLOCK-WAIT,TRUE-VALUE + RETURN CLOCK-WAIT + + + .FUNCT V-WALK:ANY:0:0,PT,PTS,STR,OBJ,RM + ZERO? P-WALK-DIR \?CCL3 + ICALL PERFORM,V?WALK-TO,PRSO + RTRUE +?CCL3: GETPT HERE,PRSO >PT + ZERO? PT /?CCL5 + PTSIZE PT >PTS + EQUAL? PTS,UEXIT \?CCL8 + GET PT,REXIT + CALL2 GOTO,STACK + RSTACK +?CCL8: EQUAL? PTS,NEXIT \?CCL10 + GET PT,NEXITSTR + PRINT STACK + CRLF + RETURN 2 +?CCL10: EQUAL? PTS,FEXIT \?CCL14 + GET PT,FEXITFCN + CALL STACK >RM + ZERO? RM /?CCL17 + CALL2 GOTO,RM + RSTACK +?CCL17: CALL1 NULL-F + ZERO? STACK \FALSE + RETURN 2 +?CCL14: EQUAL? PTS,CEXIT \?CCL23 + GETB PT,CEXITFLAG + VALUE STACK + ZERO? STACK /?CCL26 + GET PT,REXIT + CALL2 GOTO,STACK + RSTACK +?CCL26: GET PT,CEXITSTR >STR + ZERO? STR /?CCL28 + PRINT STR + CRLF + RETURN 2 +?CCL28: PRINTI "In die Richtung kannst du nicht gehen." + CRLF + RETURN 2 +?CCL23: EQUAL? PTS,DEXIT \FALSE + GET PT,DEXITOBJ >OBJ + FSET? OBJ,OPENBIT \?CCL37 + GET PT,REXIT + CALL2 GOTO,STACK + RSTACK +?CCL37: GET PT,DEXITSTR >STR + ZERO? STR /?CCL39 + PRINT STR + CRLF + RETURN 2 +?CCL39: ICALL2 DER-NOM-CAP-PRINT,OBJ + PRINTI " ist geschlo%sen." + CRLF + ICALL2 THIS-IS-IT,OBJ + RETURN 2 +?CCL5: ZERO? LIT \?CCL45 + RANDOM 100 + GRTR? 80,STACK \?CCL45 + EQUAL? WINNER,ADVENTURER \?CCL45 + FSET? HERE,NONLANDBIT /?CCL45 + ZERO? SPRAYED? /?CCL52 + PRINTI "There are odd noises in the darkness, and there is no exit in that direction." + CRLF + RETURN 2 +?CCL52: CALL1 NULL-F + ZERO? STACK \FALSE + CALL2 JIGS-UP,STR?206 + RSTACK +?CCL45: PRINTI "In die Richtung kannst du nicht gehen." + CRLF + RETURN 2 + + + .FUNCT V-WALK-AROUND:ANY:0:0 + PRINTR "Benutze einen Kompa%s f%ur die Richtung." + + + .FUNCT V-WALK-TO:ANY:0:0 + EQUAL? PRSO,INTDIR \?CCL3 + ICALL2 DO-WALK,P-DIRECTION + RTRUE +?CCL3: ZERO? PRSO /?CCL5 + IN? PRSO,HERE /?CTR4 + CALL GLOBAL-IN?,PRSO,HERE + ZERO? STACK /?CCL5 +?CTR4: ICALL2 PRONOUN-NOM-CAP-PRINT,PRSO + PRINTR " ist hier!" +?CCL5: PRINTR "Du mu%st eine Richtung angeben!" + + + .FUNCT V-WAVE:ANY:0:0 + ICALL2 DER-ACC-CAP-PRINT,PRSO + PRINTR " wedeln, scheint nicht zu funktionieren." + + + .FUNCT V-WEAR:ANY:0:0 + FSET? PRSO,WEARBIT /?CCL3 + PRINTI "Du kannst " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " nicht tragen." +?CCL3: ICALL PERFORM,V?TAKE,PRSO + RTRUE + + + .FUNCT V-WIN:ANY:0:0 + PRINTR "Logo! Klar!" + + + .FUNCT V-WIND:ANY:0:0 + PRINTI "Du kannst " + ICALL2 DER-ACC-PRINT,PRSO + PRINTR " nicht aufziehen." + + + .FUNCT V-WISH:ANY:0:0 + PRINTR "Mit viel Gl%uck, wird dein Wunsch sich erf%ullen." + + + .FUNCT V-YELL:ANY:0:0 + PRINTR "AAAUUUUUU!" + + + .FUNCT V-YES:ANY:0:0 + PRINTR "Ja?" + + + .FUNCT V-ZORK:ANY:0:0 + PRINTR "Zu deinen Diensten!" + + + .FUNCT V-FIRST-LOOK:ANY:0:0 + CALL1 DESCRIBE-ROOM + ZERO? STACK /FALSE + ZERO? SUPER-BRIEF \FALSE + CALL1 DESCRIBE-OBJECTS + RSTACK + + + .FUNCT DESCRIBE-ROOM:ANY:0:1,LOOK?,V?,STR,AV + ZERO? LOOK? /?PRD3 + SET 'V?,LOOK? + JUMP ?PEN1 +?PRD3: SET 'V?,VERBOSE +?PEN1: ZERO? LIT \?CND4 + PRINTI "Es ist stockdunkel." + ZERO? SPRAYED? \?CND6 + PRINTI " Es besteht die M%oglichkeit, da%s du von einem Greuel gefressen wirst." +?CND6: CRLF + ICALL1 NULL-F + RFALSE +?CND4: FSET? HERE,TOUCHBIT /?CND8 + FSET HERE,TOUCHBIT + SET 'V?,TRUE-VALUE +?CND8: CALL2 IN-MAZE?,HERE + ZERO? STACK /?CND10 + FCLEAR HERE,TOUCHBIT +?CND10: IN? HERE,ROOMS \?CND12 + ICALL DPRINT,HERE,FALSE-VALUE + LOC WINNER >AV + FSET? AV,VEHBIT \?CND14 + PRINTI ", in " + ICALL2 DER-DAT-PRINT,AV +?CND14: CRLF +?CND12: ZERO? LOOK? \?CCL17 + ZERO? SUPER-BRIEF \TRUE +?CCL17: LOC WINNER >AV + ZERO? V? /?CCL22 + GETP HERE,P?ACTION + CALL STACK,M-LOOK + ZERO? STACK \TRUE +?CCL22: ZERO? V? /?CCL26 + GETP HERE,P?LDESC >STR + ZERO? STR /?CCL26 + PRINT STR + CRLF + JUMP ?CND20 +?CCL26: GETP HERE,P?ACTION + ICALL STACK,M-FLASH +?CND20: EQUAL? HERE,AV /TRUE + FSET? AV,VEHBIT \TRUE + GETP AV,P?ACTION + ICALL STACK,M-LOOK + RTRUE + + + .FUNCT DESCRIBE-OBJECTS:ANY:0:1,V? + ZERO? LIT /?CCL3 + FIRST? HERE \FALSE + ZERO? V? /?PRD9 + SET 'V?,V? + JUMP ?PEN7 +?PRD9: SET 'V?,VERBOSE +?PEN7: CALL PRINT-CONT,HERE,V?,-1 + RSTACK +?CCL3: PRINTR "Nur Flederm%ause k%onnen im Dunkeln sehen. Und du bist keine." + + + .FUNCT DESCRIBE-OBJECT:ANY:3:3,OBJ,V?,LEVEL,STR,AV + SET 'DESC-OBJECT,OBJ + ZERO? LEVEL \?CCL3 + GETP OBJ,P?DESCFCN + CALL STACK,M-OBJDESC + ZERO? STACK \TRUE +?CCL3: ZERO? LEVEL \?CCL7 + FSET? OBJ,TOUCHBIT /?PRD11 + GETP OBJ,P?FDESC >STR + ZERO? STR \?CTR6 +?PRD11: GETP OBJ,P?LDESC >STR + ZERO? STR /?CCL7 +?CTR6: PRINT STR + JUMP ?CND1 +?CCL7: ZERO? LEVEL \?CCL15 + PRINTI "Hier ist " + ICALL2 EIN-NOM-PRINT,OBJ + FSET? OBJ,ONBIT \?CND16 + PRINTI " (beleuchtet)" +?CND16: PRINTC 46 + JUMP ?CND1 +?CCL15: GET INDENTS,LEVEL + PRINT STACK + ICALL2 EIN-NOM-CAP-PRINT,OBJ + FSET? OBJ,ONBIT \?CCL20 + PRINTI " (beleuchtet)" + JUMP ?CND1 +?CCL20: FSET? OBJ,WEARBIT \?CND1 + IN? OBJ,WINNER \?CND1 + PRINTI " (auf dem Leib)" +?CND1: ICALL1 NULL-F + ZERO? LEVEL \?CND24 + LOC WINNER >AV + ZERO? AV /?CND24 + FSET? AV,VEHBIT \?CND24 + PRINTI " (au%serhalb von " + ICALL2 DER-DAT-PRINT,AV + PRINTC 41 +?CND24: CRLF + CALL2 SEE-INSIDE?,OBJ + ZERO? STACK /FALSE + FIRST? OBJ \FALSE + CALL PRINT-CONT,OBJ,V?,LEVEL + RSTACK + + + .FUNCT PRINT-CONTENTS:ANY:1:1,OBJ,F,N,1ST?,IT?,TWO? + SET '1ST?,TRUE-VALUE + FIRST? OBJ >F \FALSE +?PRG4: NEXT? F >N /?BOGUS6 +?BOGUS6: ZERO? 1ST? /?CCL9 + SET '1ST?,FALSE-VALUE + JUMP ?CND7 +?CCL9: PRINTI ", " + ZERO? N \?CND7 + PRINTI "und " +?CND7: ICALL2 EIN-NOM-PRINT,F + ZERO? IT? \?CCL14 + ZERO? TWO? \?CCL14 + SET 'IT?,F + JUMP ?CND12 +?CCL14: SET 'TWO?,TRUE-VALUE + SET 'IT?,FALSE-VALUE +?CND12: SET 'F,N + ZERO? F \?PRG4 + ZERO? IT? /TRUE + ZERO? TWO? \TRUE + ICALL2 THIS-IS-IT,IT? + RTRUE + + + .FUNCT PRINT-CONT:ANY:1:3,OBJ,V?,LEVEL,Y,1ST?,SHIT,AV,STR,PV?,INV? + FIRST? OBJ >Y \TRUE + LOC WINNER >AV + ZERO? AV /?CCL5 + FSET? AV,VEHBIT /?CND3 +?CCL5: SET 'AV,FALSE-VALUE +?CND3: SET '1ST?,TRUE-VALUE + SET 'SHIT,TRUE-VALUE + LOC OBJ + EQUAL? WINNER,OBJ,STACK \?PRG11 + SET 'INV?,TRUE-VALUE +?CND8: FIRST? OBJ >Y /?PRG34 +?PRG34: ZERO? Y \?CCL38 + ZERO? PV? /?REP35 + ZERO? AV /?REP35 + FIRST? AV \?REP35 + INC 'LEVEL + ICALL PRINT-CONT,AV,V?,LEVEL +?REP35: ZERO? 1ST? /TRUE + ZERO? SHIT \FALSE + RTRUE +?PRG11: ZERO? Y /?CND8 + EQUAL? Y,AV \?CCL17 + SET 'PV?,TRUE-VALUE + JUMP ?CND13 +?CCL17: EQUAL? Y,WINNER /?CND13 + FSET? Y,INVISIBLE /?CND13 + FSET? Y,TOUCHBIT /?CND13 + GETP Y,P?FDESC >STR + ZERO? STR /?CND13 + FSET? Y,NDESCBIT /?CND23 + PRINT STR + CRLF + SET 'SHIT,FALSE-VALUE +?CND23: CALL2 SEE-INSIDE?,Y + ZERO? STACK /?CND13 + LOC Y + GETP STACK,P?DESCFCN + ZERO? STACK \?CND13 + FIRST? Y \?CND13 + CALL PRINT-CONT,Y,V?,0 + ZERO? STACK /?CND13 + SET '1ST?,FALSE-VALUE +?CND13: NEXT? Y >Y /?PRG11 + JUMP ?PRG11 +?CCL38: EQUAL? Y,AV,ADVENTURER /?CND36 + FSET? Y,INVISIBLE /?CND36 + ZERO? INV? \?CCL45 + FSET? Y,TOUCHBIT /?CCL45 + GETP Y,P?FDESC + ZERO? STACK \?CND36 +?CCL45: FSET? Y,NDESCBIT /?CCL53 + ZERO? 1ST? /?CND54 + CALL FIRSTER,OBJ,LEVEL + ZERO? STACK /?CND56 + LESS? LEVEL,0 \?CND56 + SET 'LEVEL,0 +?CND56: INC 'LEVEL + SET '1ST?,FALSE-VALUE +?CND54: LESS? LEVEL,0 \?CND60 + SET 'LEVEL,0 +?CND60: ICALL DESCRIBE-OBJECT,Y,V?,LEVEL + JUMP ?CND36 +?CCL53: FIRST? Y \?CND36 + CALL2 SEE-INSIDE?,Y + ZERO? STACK /?CND36 + INC 'LEVEL + ICALL PRINT-CONT,Y,V?,LEVEL + DEC 'LEVEL +?CND36: NEXT? Y >Y /?PRG34 + JUMP ?PRG34 + + + .FUNCT FIRSTER:ANY:2:2,OBJ,LEVEL + EQUAL? OBJ,TROPHY-CASE \?CCL3 + PRINTR "Deine Schatzsammlung besteht aus:" +?CCL3: EQUAL? OBJ,WINNER \?CCL5 + PRINTR "Du tr%agst:" +?CCL5: IN? OBJ,ROOMS /FALSE + GRTR? LEVEL,0 \?CND8 + GET INDENTS,LEVEL + PRINT STACK +?CND8: FSET? OBJ,SURFACEBIT \?CCL12 + PRINTI "Auf " + ICALL2 DER-DAT-PRINT,OBJ + CALL2 CCOUNT,OBJ + GRTR? STACK,1 \?CCL15 + PRINTR " ist: " +?CCL15: PRINTR " sind: " +?CCL12: FSET? OBJ,ACTORBIT \?CCL17 + ICALL2 DER-NOM-CAP-PRINT,OBJ + PRINTR " scheint das Folgende zu halten:" +?CCL17: ICALL2 DER-NOM-CAP-PRINT,OBJ + PRINTR " scheint das Folgende zu enthalten:" + + + .FUNCT SEE-INSIDE?:ANY:1:1,OBJ + FSET? OBJ,INVISIBLE /FALSE + FSET? OBJ,TRANSBIT /TRUE + FSET? OBJ,OPENBIT /TRUE + RFALSE + + + .FUNCT SCORE-UPD:ANY:1:1,NUM + ADD BASE-SCORE,NUM >BASE-SCORE + ADD SCORE,NUM >SCORE + EQUAL? SCORE,350 \TRUE + ZERO? WON-FLAG \TRUE + SET 'WON-FLAG,TRUE-VALUE + FCLEAR MAP,INVISIBLE + FCLEAR WEST-OF-HOUSE,TOUCHBIT + PRINTR "Eine fast unvernehmbare Stimme fl%ustert dir zu: %>Suche unter den Sch%atzen nach dem letzten Geheimnis.%<" + + + .FUNCT SCORE-OBJ:ANY:1:1,OBJ,TEMP + GETP OBJ,P?VALUE >TEMP + GRTR? TEMP,0 \FALSE + ICALL2 SCORE-UPD,TEMP + PUTP OBJ,P?VALUE,0 + RTRUE + + + .FUNCT YES?:ANY:0:0,WORD,VAL +?PRG1: PRINTC 62 + PUTB YES-INBUF,1,0 + READ YES-INBUF,YES-LEXV + GETB YES-LEXV,P-LEXWORDS + ZERO? STACK /?CND3 + GET YES-LEXV,P-LEXSTART >WORD + ZERO? WORD /?CND3 + CALL WT?,WORD,64,1 >VAL + EQUAL? VAL,ACT?JA /?CTR8 + EQUAL? WORD,W?J \?CCL9 +?CTR8: SET 'VAL,TRUE-VALUE + RETURN VAL +?CCL9: EQUAL? VAL,ACT?NEIN /?CTR12 + EQUAL? WORD,W?N \?CCL13 +?CTR12: SET 'VAL,FALSE-VALUE + RETURN VAL +?CCL13: EQUAL? VAL,ACT?NEUBEGINN \?CCL17 + ICALL1 V-RESTART + JUMP ?CND3 +?CCL17: EQUAL? VAL,ACT?WIEDERHERSTELLUNG \?CCL19 + ICALL1 V-RESTORE + JUMP ?CND3 +?CCL19: EQUAL? VAL,ACT?AUFHOEREN \?CND3 + ICALL1 V-QUIT +?CND3: PRINTI "[Please type YES or NO.]" + JUMP ?PRG1 + + + .FUNCT ITAKE:ANY:0:1,VB:ATOM,CNT:FIX,OBJ:OBJECT,?TMP1 + ASSIGNED? 'VB /?CND1 + SET 'VB,TRUE-VALUE +?CND1: ZERO? DEAD /?CCL5 + ZERO? VB /FALSE + PRINTI "Deine Hand greift durch das Objekt hindurch." + CRLF + RFALSE +?CCL5: FSET? PRSO,TAKEBIT /?CCL9 + ZERO? VB /FALSE + CALL2 PICK-ONE,YUKS + PRINT STACK + CRLF + RFALSE +?CCL9: CALL1 NULL-F + ZERO? STACK \FALSE + LOC PRSO + FSET? STACK,CONTBIT \?CCL15 + LOC PRSO + FSET? STACK,OPENBIT \FALSE +?CCL15: LOC PRSO + IN? STACK,WINNER /?CCL19 + CALL2 WEIGHT,PRSO >?TMP1 + CALL2 WEIGHT,WINNER + ADD ?TMP1,STACK + GRTR? STACK,LOAD-ALLOWED \?CCL19 + ZERO? VB /?PRG27 + PRINTI "Last ist zu schwer" + LESS? LOAD-ALLOWED,LOAD-MAX \?CCL26 + PRINTI ", aber du nimmst es leicht" + JUMP ?CND24 +?CCL26: PRINTC 46 +?CND24: CRLF +?PRG27: RETURN 2 +?CCL19: EQUAL? PRSA,V?TAKE \?CCL30 + CALL2 CCOUNT,WINNER >CNT + GRTR? CNT,FUMBLE-NUMBER \?CCL30 + MUL CNT,FUMBLE-PROB >?TMP1 + RANDOM 100 + GRTR? ?TMP1,STACK \?CCL30 + PRINTI "Du hast deine H%ande schon zu voll!" + CRLF + RFALSE +?CCL30: MOVE PRSO,WINNER + FCLEAR PRSO,NDESCBIT + FSET PRSO,TOUCHBIT + ICALL1 NULL-F + ICALL2 SCORE-OBJ,PRSO + RTRUE + + + .FUNCT IDROP:ANY:0:0 + IN? PRSO,WINNER /?CCL3 + LOC PRSO + IN? STACK,WINNER /?CCL3 + PRINTI "Du tr%agst " + ICALL2 DER-ACC-PRINT,PRSO + PRINTI " nicht." + CRLF + RFALSE +?CCL3: IN? PRSO,WINNER /?CCL7 + LOC PRSO + FSET? STACK,OPENBIT /?CCL7 + ICALL2 DER-NOM-CAP-PRINT,PRSO + PRINTI " ist geschlo%sen." + CRLF + RFALSE +?CCL7: LOC WINNER + MOVE PRSO,STACK + RTRUE + + + .FUNCT CCOUNT:ANY:1:1,OBJ,CNT,X + FIRST? OBJ >X /?PRG3 + RETURN CNT +?PRG3: FSET? X,WEARBIT /?CND5 + INC 'CNT +?CND5: NEXT? X >X /?PRG3 + RETURN CNT + + + .FUNCT WEIGHT:ANY:1:1,OBJ,CONT,WT + FIRST? OBJ >CONT \?CND1 +?PRG3: EQUAL? OBJ,PLAYER \?CCL7 + FSET? CONT,WEARBIT \?CCL7 + INC 'WT + JUMP ?CND5 +?CCL7: CALL2 WEIGHT,CONT + ADD WT,STACK >WT +?CND5: NEXT? CONT >CONT /?PRG3 +?CND1: GETP OBJ,P?SIZE + ADD WT,STACK + RSTACK + + + .FUNCT NO-GO-TELL:ANY:2:2,AV,WLOC + ZERO? AV /?CCL3 + ICALL2 EIN-DAT-PRINT,WLOC + PRINTR " kannst du da nicht hin." +?CCL3: PRINTR "Ohne ein Transportmittel kannst du da nicht hingehen." + + + .FUNCT GOTO:ANY:1:2,RM,V?,LB,WLOC,AV,OLIT,?LCL-OHERE + ASSIGNED? 'V? /?CND1 + SET 'V?,TRUE-VALUE +?CND1: SET 'OLIT,LIT + SET '?LCL-OHERE,HERE + LOC WINNER >WLOC + FSET? RM,RLANDBIT \?CND3 + SET 'LB,TRUE-VALUE +?CND3: FSET? WLOC,VEHBIT \?CND5 + GETP WLOC,P?VTYPE >AV +?CND5: ZERO? LB \?CCL9 + ZERO? AV \?CCL9 + ICALL NO-GO-TELL,AV,WLOC + RFALSE +?CCL9: ZERO? LB \?CCL13 + FSET? RM,AV /?CCL13 + ICALL NO-GO-TELL,AV,WLOC + RFALSE +?CCL13: FSET? HERE,RLANDBIT \?CCL17 + ZERO? LB /?CCL17 + ZERO? AV /?CCL17 + EQUAL? AV,RLANDBIT /?CCL17 + FSET? RM,AV /?CCL17 + ICALL NO-GO-TELL,AV,WLOC + RFALSE +?CCL17: FSET? RM,RMUNGBIT \?CCL24 + GETP RM,P?LDESC + PRINT STACK + CRLF + RFALSE +?CCL24: ZERO? LB /?CND25 + FSET? HERE,RLANDBIT /?CND25 + ZERO? DEAD \?CND25 + FSET? WLOC,VEHBIT \?CND25 + ICALL2 DER-NOM-CAP-PRINT,WLOC + PRINTI " stoppt am Ufer." + CRLF + CRLF +?CND25: ZERO? AV /?CCL33 + SET 'OHERE,FALSE-VALUE + MOVE WLOC,RM + JUMP ?CND31 +?CCL33: MOVE WINNER,RM +?CND31: SET 'HERE,RM + CALL2 LIT?,HERE >LIT + ZERO? OLIT \?CND34 + ZERO? LIT \?CND34 + RANDOM 100 + GRTR? 80,STACK \?CND34 + ZERO? SPRAYED? /?CCL41 + PRINTI "There are sinister gurgling noises in the darkness all around you!" + CRLF +?CND34: ZERO? LIT \?CND47 + EQUAL? WINNER,ADVENTURER \?CND47 + PRINTI "Du bist in einem dunklen Ort gelandet." + CRLF + SET 'P-CONT,FALSE-VALUE +?CND47: GETP HERE,P?ACTION + ICALL STACK,M-ENTER + ICALL2 SCORE-OBJ,RM + EQUAL? HERE,RM \TRUE + EQUAL? ADVENTURER,WINNER /?CCL55 + IN? ADVENTURER,?LCL-OHERE \?CCL55 + ICALL2 DER-NOM-CAP-PRINT,WINNER + PRINTR " verl%a%st das Zimmer." +?CCL41: CALL1 NULL-F + ZERO? STACK \FALSE + PRINTI "Meine G%ute! Ein lauerndes Greuel ist in " + LOC WINNER + FSET? STACK,VEHBIT \?CCL46 + LOC WINNER + ICALL2 DER-ACC-PRINT,STACK + JUMP ?CND44 +?CCL46: PRINTI "das Zimmer" +?CND44: ICALL2 JIGS-UP,STR?212 + RTRUE +?CCL55: EQUAL? HERE,?LCL-OHERE \?CCL59 + EQUAL? HERE,ENTRANCE-TO-HADES /TRUE +?CCL59: ZERO? V? /TRUE + EQUAL? WINNER,ADVENTURER \TRUE + ICALL1 V-FIRST-LOOK + RTRUE + + + .FUNCT LKP:ANY:2:2,ITM,TBL,CNT,LEN + GET TBL,0 >LEN +?PRG1: IGRTR? 'CNT,LEN /FALSE + GET TBL,CNT + EQUAL? STACK,ITM \?PRG1 + EQUAL? CNT,LEN /FALSE + ADD CNT,1 + GET TBL,STACK + RSTACK + + + .FUNCT DO-WALK:ANY:1:1,DIR + SET 'P-WALK-DIR,DIR + CALL PERFORM,V?WALK,DIR + RSTACK + + + .FUNCT GLOBAL-IN?:ANY:2:2,OBJ1,OBJ2,TX + GETPT OBJ2,P?GLOBAL >TX + ZERO? TX /FALSE + PTSIZE TX + DIV STACK,2 + SUB STACK,1 + CALL ZMEMQ,OBJ1,TX,STACK + RSTACK + + + .FUNCT FIND-IN:ANY:2:2,WHERE,WHAT,W + FIRST? WHERE >W /?BOGUS1 +?BOGUS1: ZERO? W /FALSE +?PRG4: FSET? W,WHAT \?CCL8 + EQUAL? W,ADVENTURER /?CCL8 + RETURN W +?CCL8: NEXT? W >W /?PRG4 + RFALSE + + + .FUNCT HELD?:ANY:1:1,CAN +?PRG1: LOC CAN >CAN + ZERO? CAN /FALSE + EQUAL? CAN,WINNER \?PRG1 + RTRUE + + + .FUNCT OTHER-SIDE:ANY:1:1,DOBJ,P,TX +?PRG1: NEXTP HERE,P >P + LESS? P,LOW-DIRECTION /FALSE + GETPT HERE,P >TX + PTSIZE TX + EQUAL? STACK,DEXIT \?PRG1 + GET TX,DEXITOBJ + EQUAL? STACK,DOBJ \?PRG1 + RETURN P + + + .FUNCT MUNG-ROOM:ANY:2:2,RM,STR + FSET RM,RMUNGBIT + PUTP RM,P?LDESC,STR + RTRUE + + + .FUNCT THIS-IS-IT:ANY:1:1,OBJ + ZERO? OBJ /TRUE + EQUAL? PRSA,V?WALK \?PRD6 + EQUAL? PRSO,OBJ /TRUE +?PRD6: EQUAL? OBJ,ADVENTURER /TRUE + EQUAL? OBJ,NOT-HERE-OBJECT,ME /TRUE + FSET? OBJ,DERBIT \?CCL11 + SET 'P-HIM-OBJECT,OBJ + RETURN P-HIM-OBJECT +?CCL11: FSET? OBJ,DASBIT \?CCL13 + SET 'P-IT-OBJECT,OBJ + RETURN P-IT-OBJECT +?CCL13: SET 'P-HER-OBJECT,OBJ + RETURN P-HER-OBJECT + + .ENDI diff --git a/verbs.zil b/verbs.zil new file mode 100644 index 0000000..947db26 --- /dev/null +++ b/verbs.zil @@ -0,0 +1,2552 @@ + "Generic VERBS file for + The ZORK Trilogy + started on 7/25/83 by SEM + -- GERMAN EDITION" + +;"*** General note: Most of this file consists of dull 'verb defaults', +that is, responses you get if there's nothing interesting to respond +to what was typed. Most sentences are of a very general nature, which +must be maintained since you can plug in any (THING) into the sentence. ***" + +;"Verb Functions for Game Commands" + +> +> +> + + + > + > + +> + > + > + + + > + +;"V-DIAGNOSE is in ACTIONS.ZIL" + + ) + (T )>> + + + + ;"> + "> + + + > + + + ) + ( + + ) + (T + )>) + ( + ) + ( + + )>>> + + + + + ) + (ELSE + )>> + + + + + + + )>> + + + > + + ) + (T + )>> + +> 1> + ; + ) + ( + > + + + + + ) + (T + )> + > + +; 4> + -5>> + )>> + +;"V-SCORE is in ACTIONS.ZIL" + + 1>> + + + + > + + + + ; -2>> + + > + + + > + + > + + > + + + ') + (<==? ,ZORK-NUMBER 2> + ') + (<==? ,ZORK-NUMBER 3> + ')> + + *3777*>> + + > 23> + ) + (T + >)>> + + + > + + + + ) + (T + )>> + + + > + +> + ) + (T + > + )>> + + + > + + + > + +;"Real Verb Functions" + +Fool%<." CR>> + +;)) + + ) + (T + > + > + )>)> + > + > + )>)> + >> + + ) + (T + )>)>> + + + + '( 0> + + )) + (T + '( ))> + (T + )>) + ( + + ) + (T + )>> + + + > + > + > + +> + ) + ;"for 'greif troll an'" + ( + >> + + + ) + ( + > + ) + (> + ) + (> + ; + ) + (T + % + ') + (T + ')>)>> + +> + +> + +> + + '( + )) + (T + '( ))> + ( + > + ; + ) + ( + ) + (T + )>) + ( + + ) + (T + )> + > + + + > + + ,M-ENTER> + > + +;> + +> + +> + + + ) + ( + ) + (T + )>> + + + '( ,RECEPTACLE> + + )) + (T + '( ))> + ( + + > + + + + ) + (T )> + ) + (T + + )>) + (T + )>> + +> + +> + + + ' + ,P?RUNTER) + (T ,P?RAUF)> + T>) + (ELSE + ')>> + + + % + ') + (ELSE + ')> + ) + (T + )>> + +) "AUX" X TX) + >> + )> + > + > + + + >>>> + + ;> + )> + ; + + ) + (T )> + + )>)> + + ) + (> + <- 2> 1>> + ;> >> + ) + (% + '> + ,TREE> + >) + (ELSE ')> + + ) + ( ,ROOMS> + ) + (T + )>> + + + > + >> + + + ) + (T ; + + )>)> + + > + + + > + >> + + + ) + (T ; + + )>)> + + > + +> + >> + ) + (> + 0>>> + + + + >>> + )> + ) + (T + )>) + ( + + + ) + (T + )>) + (T + )>> + + + ) + (T + )>> + + + )> + > + +> + + + ) + (T + )>) + (T + )>> + + + ) + ( + > + + ; + + )> + + ) + (> + ;cutting edge%< of " D ,PRSI " is hardly adequate." CR> + ) + (T + )>> + + ;"air" + > + + ) + (T + )>> + + + )> + % + ' + + )>) + (ELSE T)> + + ) + (T + )>> + + + > + + + ,VEHBIT>> + > + ) + ( ,PRSO>> + + ) + ( + > + + ) + (T + + )>> + + + '> + ) + ( + + > + + + ) + ( + ) + ( + ) + ( + ) + ( + ) + ( + )>)>) + ( + ) + ( + )>) + (T + ')>> + +> + +> + +> + + )>> + + + )>> + +) (DRINK? <>) (NOBJ <>)) + > + > + ,WINNER>>> + ) + ( + ) + (T + + )> + ) + ( + + > + + + ;> + ) + ( + >> + ) + ( + >> + + ;"Du mu%st die Gla%sflasche erst in der Hand halten.") + (> + ) + (T + )>) + (> + )>> + + + >> + )> + > + + (MAX CNT ECH) FIX) + % + ' 0> + ,P-WORDLEN>>> + > 1>> + > 2> + + ) + (T + 1>> + > .MAX> + ) + (T + >)>> + )>>) + (T )>) + (T + ')>> + + + ')>) + (T + ')> +% + ' + + )> + + + > + + ) + (T + )>) + ;( + ) + ( + ) + ( + + + + ) + ( + + + + + ) + (ELSE + )>) + ( + > + + > + )> + ) + ( + > + + + ) + (ELSE + > + )>) + (ELSE + > + )>) + (T + ')>> + + + >)> + + >)> + + >)> + + + > + >> + )> + T> + +> + + + CR>) + ( + > + ) + (T + )>> + + ,ROOMS> + ,VEHBIT>> + > + ) + (> + + ) + (ELSE + )>> + +> + + + > + 2> 1>>> + + ) + (> + + ) + (T + + )>)> + + ) + (> + + )>> + + + + + ) + (> + + ) + (T + )>) + (T + )>> + +> + + ) + ( + ) + ( + ) + ( + ) + ( + + ;> + ) + ( + ) + ( + ) + ( + ) + (T + )>> + +> + +> + +> + )>> + +> + ; + ) + (T + )>> + +> + + ;"counts occurences of HELLO, SAILOR" + +>> + + ) + (T + Guten Tag%< sagen." CR>)>) + (T + CR>)>> + + + > + + + ') + (,WAND-ON + + > + + >>> + > + ) + (T + )>) + (T + ')> + > + > + > + + + + + >> + + + ) + (T + )>> + +> + +> + + + ) + (T + )>> + + + > + ) + (T + + >)> + + + )>)>) + (T + )> + > + + + + ) + (T + + + + > + + )>)>) + ( + ) + (T + )> + > + + + ;launch% + Absto%sen%< +sagst.">) + (T + )>> + +> + + + + ) + (T + )>) + (T + )>) + (> + > + ;NEXIT + ;CEXIT + >>>> + + >) + % + '( + + + )) + (T '( T))> + (T + )>) + (T + )>> + +> + + + ) + (T + + )>> + +> + +> + + + )>> + +> + + + + ) + (T + )> + ) + ( + + ) + ( + + > + ) + % + '( + )) + (ELSE '( ))> + (T + )>) + (T + )>) + (T + )>> + + + + ) + (T + )>> + +> + +> + +> + +> + + + )>> + + + ) + (T + )>> + +> + + + '( + )) + (T + '( ))> + ( + >> + ; + + + ) + (T + )> + )>> + + + + ) + (T + )>> + +> + + + '( + + > + > + + + + + )) + (T + '( T))> + (T + )>> + +> + + + + ) + ( + 0>>> + + ) + (T + + + > > + ) + (> + > + > + >> + + ) + (T + + + )>)>) + ( + + ) + (T + + )>) + (T + )>> + + + '( + > ,VEHBIT> + > + ) + (T + )>)) + (T '( T))> + ( ,VEHBIT> + + ) + (T + )>> + +> + + + + ) + (ELSE )>> + +> + + + + + + % + ' + >)>) + (ELSE ')> + + ) + (T + )>) + % + '( + )) + (T + '( ))> + (T + )>> + + + '( + )) + (T + '( ))> + (T + )>> + + + '(>> + )) + (T + '( ))> + % + '( + )) + (T + '( ))> + (T + )>> + +> + +> + + + '( + )) + (T + '( + ))> + (T + )>> ;"That's easy for you to say" + + + + >) + (T + + )> + > + + ) + ( + ) + ( + ; + ) + ( > + > + > + ) + (> + > + + ) + (> + >> + ) + (T + + + + )>> + +> + + + + ) + ( + ) + (T + )>> + +> + +> + +;> + + + ) + (>> + )>> + +> + ;> + ) + (T + CR>)>> + + + > + +> + + + > + > + > + +> + +> + + + ' + + )>) + (<==? ,ZORK-NUMBER 3> + ' + ,W?FROTZ> + > ,W?OZMOO>> + > + + + ) + (T + )> + )>) + (T + ' + + )>)> + > + > + ; + PERSON, TAG| +oder| +>PERSON, LASS DER AXT FALLEN| +(usw.)|"> + >) + ( ;,W?HELLO ,W?HALLO>> + > + )> + > + +> + + + ) + (T + )>> + + + ) + ( + ) + (T + )> + > + + ;"gib es ihm" + + ) + (T ;"gib ihm es" + )> + > + +> + + + ) + (> + ) + ( + + + + + + ') + (ELSE + '>)> + ) + (T + )> + ) + (T + )>) + (T + + ) + (T + )>)>) + (T + )>> + +> + + + ' + ,PATH) + (> + ;,PSEUD-OBJECT ,STREAM) + (T + ,HERE)>) + (<==? ,ZORK-NUMBER 2> + ' + ,PSEUDO-OBJECT) + (> + ,PSEUDO-OBJECT) + (T + ,HERE)>) + (T + ' + ,IN-LAKE) + (T + ,HERE)>)>>) + (T + )>>> + + CR>> + +> + +> + +> + +> + + + ) + (T + )> + > + +> + +> + + ) + (T + )>> + + ,VEHBIT> + > + ) + (T + )>> + +> + +;"WAS USED FOR 'SCHLAG OBJECT'" +; + ; + ) + (T + + )>> + + + <==? ,ZORK-NUMBER 2>> + '( + + ;>> + ) + (T + )> + )) + (T + '( + ))> + % + '( + )) + (T + '( + ))> + (T + )>> + + + ) + (T + + )>> + + + > + + ) + (T + + )>> + + + + ) + (T + )>) + ( ,CONTBIT> + ,OPENBIT>>> + + ) + (,PRSI + + > + )> + % + ' + > + )>) + (ELSE + ')> + >> + ) + (T + > + )>) + (> + )>> + + T> + + ) + (T + )>)>> + + + + >) + (T + )>) + (T + + > + > + )>> + + + + Und %uber den Mann.%<" CR CR> + > + > + + + >> + ) + (> + >> + )> + + ) + (T + >)>> + + > + +; + + > + +) "AUX" M) + #DECL ((OBJ) (M) ) + + >> + + ) + ( > + + ) + (>> + % + '>> + + ) + ( + + ,SCOL-ROOM> + + ) + ( + > 1>>> + > + > + ) + (T + )> + ) + ( + + )>) + (ELSE ')> + ) + ( + ) + (T + CR>)>> + + + + + + ) + (> + + ;) + (T )>) + (ELSE )>> + +> + + + ) + (T + )>> + +> + + + '( + )) + (T + '( ))> + % + '( + )) + (T + '( ))> + (T + )>> + + + ' ,ROOMS> + > + + )>) + (ELSE T)> + + ' ,ROOMS> + >>) + (ELSE + ' ,ROOMS>)> + + + >> + + >>>> + + )> + ) + (> + ;"sto%s object mit object" + ;)>> + +> + +> + +> + +;"ren: translate" +> + + + > 0> ) + ( )>> + > + + + + ) + (> + > ,UEXIT> + >) + ( + CR> + ) + ( + >> + ) + % + '( ,CP-MOVED> + )) + (T + '( ))> + (T + )>) + ( + > ;"globals can getb" + >) ;"dir. props can't" + (> + + ) + (T + + )>) + ( + > ,OPENBIT> + >) + (> + + ) + (T + + + )>)>) + ( + + + >> + + ) + % + '( + )) + (T + '( + ))> + (T + )>) + (T + + )>> + +> + + + + ) + ( + >> + ) + (T + )>> + +> + +> + ) + (T + + )>> + +> + +> + + + ') + (T + ')>> + +> + +> + +> + +"Verb-Associated Routines" + +"Descriptions" + +> + +> + + + + )>)>> + +) "AUX" V? STR AV) + > + + + + )> + + % + ' + )>) + (T + ')> + )> + > + + )> + % + ' + )>) + (T + ')> + + ;"Was " + + > ,VEHBIT> + )> + )> + + ' >) + (ELSE + '>)> + > + ; + )> + ,M-LOOK>> + ) + (>> + ) + (T + ,M-FLASH>)> + > > + ,M-LOOK>)>)> + T> + +)) + + > -1>)>) + (T + )>> + +"DESCRIBE-OBJECT -- takes object and flag. if flag is true will print a +long description (fdesc or ldesc), otherwise will print short." + +> + +) AV) + + + ,M-OBJDESC>> + ) + ( + > + >> + >>> + ) + (<0? .LEVEL> + + + )> + ) + (T + > + + + ) + ( + > + )>)> + % + ' + > + )>) + (T + ')> + + > + > + )> + + > + )>> + +) (TWO? <>)) + > + > + >) + (ELSE + + )>)> + + > + ) + (ELSE + + >)> + + + > + )> + )>>)>> + +) (LEVEL 0) + "AUX" Y 1ST? SHIT AV STR (PV? <>) (INV? <>)) + >> )> + > > + T) + (ELSE >)> + + + > + ) + (ELSE + + '( + + <==? ,SPELL? ,S-FANTASIZE> + > + + " here." CR> + >)> + )) + (ELSE + '( + ))> + ( ) + () + (> + > + >> + > + + > + ;>)> + + ,P?DESCFCN>> + > + + >)>)>)> + >>)> + > + + > + > ;"not in Zork III" + )> + ) + () + (> + + >>> + > + + + )>)> + > + >)> + )> + ) + ( > + > ;"not in Zork III" + + > ;"not in Zork III")>)> + >> + ) (T )>> + + + '( + )) + (T + '( ))> + ( + ) + (> + + >)> + + + 1> + ) + (T + )>) + ( + ) + (T + )>)>> + +> + >>> + +"Scoring" + + + + + + + +> + +> + > + ; + % + ' + > + + + + Suche unter den Sch%atzen nach dem letzten Geheimnis.%<" CR>)>) + (T + ')> + T> + +> 0> + + )>> + +;"> + + ,W?YES ,W?Y> + ) + (T + )>> + +> +> + +"> + + + >> + >> + > + + > + + ) + ( + > + > + ) + ( + ) + ( + ) + ( + )>)> + > + .VAL> + +"Death" + +> + + + + + +;"JIGS-UP is in ACTIONS.ZIL" + +;"RANDOMIZE-OBJECTS is in ACTIONS.ZIL" + +;"KILL-INTERRUPTS is in ACTIONS.ZIL" + +"Object Manipulation" + + + + + + (CNT) FIX (OBJ) OBJECT) + + '(,DEAD + )> + )) + (T + '( + ))> + (> + CR>)> + ) + % + '( + > + + ) + (T + )> + )) + (T + '( + ))> + ( ,CONTBIT> + ,OPENBIT>>> + ;"Kludge for parser calling itake" + ) + ( ,WINNER>> + > ,LOAD-ALLOWED>> + + + ; + ) + (T + )> + )> + ) + ( + > ,FUMBLE-NUMBER> + >> + + ) + (T + + + + % + ' + + + )>)>) + (T + ')> + % + <==? ,ZORK-NUMBER 2>> + ') + (T + ')> + )>> + +> + ,WINNER>>> + + ) + (> + ,OPENBIT>>> + + ) + (T + > + )>> + +> + > + >)> + >> + )>>)> + .CNT> + +> + + > + >) + (T + >>)> + >> )>>)> + <+ .WT >> + +"Miscellaneous" +;"when these are referenced, GET (and not GETB) must be used, since it +takes TWO bytes to represent their values" + + + ,PLUS-MODE> 2) (T 1)>> + "Uncondl EXIT: (dir TO rm) = rm" + ,PLUS-MODE> 3) (T 2)>> + "Non EXIT: (dir ;SORRY string) = str-ing" + ,PLUS-MODE> 4) (T 3)>> + "Fcnl EXIT: (dir PER rtn) = rou-tine, 0" + ,PLUS-MODE> 5) (T 4)>> + "Condl EXIT: (dir TO rm IF f) = rm, f, str-ing" + ,PLUS-MODE> 6) (T 5)>> + "Door EXIT: (dir TO rm IF dr IS OPEN)= rm, dr, str-ing, 0" + + + + ,PLUS-MODE> 4) (T 1)>> "GET/B" + "GET" + "GET/B" + ,PLUS-MODE> 2) (T 1)>> "GET" + +> + +;)) + + > + ) + (.DATIVE? + CR>) + (T + CR>)>> + +) + (T + )> + > + +) WLOC + (AV <>) OLIT OHERE) + + ;"next three lines used to be 'aux' defaults" + > + + )> + + >)> + + > + + ) + ( + >> + + ) + ( + .LB + .AV + > + >> + + ) + ( + CR> + ) + (T + > + + > + % + ') + (<==? ,ZORK-NUMBER 2> + ' + ) + ( + )>) + (<==? ,ZORK-NUMBER 3> + ' + )>)>)> + > + ) + (T + )> + + > + + + > + ) + % + '( + )) + (T + '( + ))> + (T + ; + + ,VEHBIT> + >) + (T )> + + )>)> + + > + + >)> + ,M-ENTER> + + > ) + (> + > + ) + % + '( + ;"no double description" + > + )) + (ELSE + '( ))> + (> + )> + )>> + +> + > .LEN> + ) + ( .ITM> + ) + (T + >>)>)>>> + + + > + +;> + <- 2> 1>>> + +> + 2> 1>>)>> + +> + + )> + + >> + ) + (>> + >)>>> + + +; + >> + +> + ) + ( )>>> + +> ,LOW-DIRECTION> + >) + (ELSE + > + ,DEXIT> + .DOBJ>> + )>)>>> + + + ' + )>) + (ELSE T)> + + > + +> + +> + +> + + + + > ;"PRSO is a direction" + ;"is this necessary?" + > + ) + ( + ) + ( + ) + (T + )>> + + + >)> + +> + +> + +> \ No newline at end of file diff --git a/zap b/zap new file mode 100644 index 0000000000000000000000000000000000000000..0bd4044f83d86e0ef51a6b0582bcbb24958c3d06 GIT binary patch literal 266223 zcmd444Rn;(c`mxY(I5sf$b*oGOa&dpFvuVcDj^tLAS0C;F~KSk#Gx+7R}heW04o!s zaIj09;is;GeGQ>*4$F1D+#DZYuIr^Ll&Fpl%S-X~ayit;NAV?;x?G!3nJA8o6{16A zkmkG3^X~6&{s5=vbRB!4`M&-8?svcY{oC)}pRrCAMgIKX{ahK}tyXIG0##)c8IzS# zM)5(VK6g>6wa4&wT>ix;*2X%v?diaayfam;ZEsnWdCU&FNz+UpyT98x?5ySOph0DSvfS;#k`lo&s}DBe%Z! zhf2Ly&cA9Pmcp+wu_|da$D2w`(>&euG1C24?;ci0l21t`Wz_rU>*D5Hd|S92t=z-< z7sfUoZtOA#>h_|fVUC4k=2&-^3hY$AAwGw9PnoNN!H}wZNU8FSl!a}|x1T8u*H|W0 zZ?q_5O&|Ig4lF@qUonSOeCaaO3&pz3VfJ=WF}JSW95YAI>!4dZ!P-8Q-QcDL>(vUT zwkcKXrb@}8OlTSgRZ(4&IoO&3BT{`#O`s>VQO!20V=AzIU-!P9N|m*AnIlLWsgp4Z zG{ddRXiY3r@roxGrQ%b4L z52^IC^7IuvU67}?hm=_+PhUmaF?mWNtx}$L;c31+?ZMOIz|VKlTAVlp-3|bns;s`x zH1`(WFR(91&H%7FPz~s2_sj%z#Po_F(lAToK~M-=aL4@~>duh5O3yfQU&36(SCn&p zW26EZ;R;!WSL!z&=KRQ;Q9J}HAKT^c-uG3dnq=O7)wCPyf%QYg#RsDs4<}NXp|IqR z=F3Ho!Nw(aE!{e?x$>A`)9P{JIMXaB$~6=#k4aiaxq#1;mQikHrMJC6iS(h= zZrw|j8xNBQRXj!h z)k3VQZ5NpK{H}Ex$6d|6lLvJxl0HjDQt9F-tHo8i#ROWacmeQ8Kbl^C_$pS5=lz+N zo7&B@EdT!S#={u@+5Rq*@}VF6;H`x*v%k4_;tLxOueD@Jza>kWA8h`HNSU#0DI;TQ zC2aP3$7s7$5O6HTZ-De1-ivYnIUoth)3I3R!kFe1fj{-ue4ktot5O9}dqxbu%nkgd zx6Hc3NgrDB-9CgC$5zvxnL&@)X#TuKj_SqxnJQ={eb7WoC?DraB8G9%hWC>jxMH^tx@R@rU?3EV3emrxDIY#bx$(sJS41hMPVP`aOC=$i{>EPZ=W{jqFwN>5Ds5 z;wWZgQL+@HDHAwGS?(Ll*By?6ic{NF@!fIEtgmJNytpbkJElV5(r>YLWrtNemcRDh zsGC!>f2{?dMSCHK_C}jN_Iov)K(YoffszQ%*IwRucwq={0UNqVQ_=_VSN1tTH@97t ztCEU#^;@cJt<{Rve!yveB%8JcGnh%uy*~owki%momo&DU*FlBNGNV4s5+n@!{g<=r z^jfz|R40A06xQ5zyTld$y2HDC-TQ#kVzz>H$C}23;TF7M?qkw&LHbT({;*0sdR}8! zdQ9sSX~G7bB0V;;G`k8PgdTKb&u2u)YINtPOJZ@OCX>4VXNO_ zt4_Y~_RZ|I*_;0r(M;W5t^R)M>2H=7Dl1=BH+c#3V%C@i(jmL1##s7dAr6op%BCPv zF>BLONDm85`!%2YR?o)6%=zXUKkcLjJ8_AA+Xv1waY=HL=5ShF{Rvxq@508z)-&`dXcSm8=})XRV@y=*m@Br#hu_00Y)X&B z071of!&sf$M*JxSYr~SIW8_g2m+)`JewUXnTw-iVk3bgb-%v|R^VUgG7Y5<2k((|*4sQPxOs;-pY$!A z0*n%0Z%f*L&PaPt(kv>r%3YE);b^2asrxR|N-8qy-VFaN{X4p}mRXeN&AnEHYccHBry$9O3qhMJ(Fw=OV@>U* z!SU0|OfD2HLf!}Zg#(fn%NnkMtD#qLM96tn0x2rbv97de6~#j>De!cW_3I%~#SW?p zx2NH~(b5-kWHi(>X|CuA@6J4>=7Ot@S$zvHW_`iTSqCE6Xrc`RQ!-EgWas?1YqHjZ zY_*Zn*N~d;+4)yklUlG{bHL8AYZk(inWLS3=QJ(SHYI=kW9~a8>Hk@l`35^j|vuJ1N3caY98omkaByw^CVE7g>+C z?Cee}y;AgajB1MG_(0hiLZ3t4 zH81$sFM7L;djph}1`O~8!~P8IQj6H`xBI&96b^uqR0lC?STo=<(0$6;>f|DCtMp9> zbTt~fpLaG1RFxg}yN0qd)qG^*VZvz$XZcMqVatNwJ}2$eYkEVAQFuv?Nm`X%=C}69 zdr%;r>xI~%JaQf31RE?Gmb$%0H)iInMa#~rAlB^_qPfH5&%3Q^?qJse#q}E7(aO_0 zB_@>2H8lA_x6V4zKiX*5dDf8yLoI5ri|v;>9myh_bFVwR+mDeD@_Gf@>TLR;h#!V4_B zG3eNhIX)41uuC+LAcf(r)~0W~mtf444uK@sU18pH>sIf{Y*oE>8?BOyW^gojwlqIe zWl7K;R)4Q*CuOLJ;1E7~b5Ncp8Rtq;R^VkJBySU$S2=@ zx*#UOZ~b2ALb?3b*ra^@cBoME9AaOgJG zFf4NlE-O+k5PlS?{_lUnJoI#r=Y22U=SL*pYQfL4u|rrV>U7wTzbg---*dotFGsEJ z7dSUqtL2n;waDDulYh0OkEBnfkC^`SS^V<o) zo7dN*JvLb1!DmHQh;2+y5;ZXF9$9)8R>>?^>uT)LS{HPapgffcKI!Q^M6MNl!EMXd z<}6)3>b4>p;G36Ib*b#uqz$bR3Ou)H<4nFbY;O8TqY;&yc#{0X-{GfzAS+yOkmGO4 zS>Xc7%kI2bYvxn%2x;M;Ggh5t+uvDY!6JIG1&hBh53}`wJ4-}o6fYquOWJvwGth<| z8Q4p(^3|`C@PRS6yAjr6C!hZ2t>7}zhI@gFD$#Y|32;k(f4b}oEkP+CsFbDVheh62 z^r+%sNOlD)oqB1z2iCK({Wx`lPl28Pt;b~PU$+=j&WeI&LQP+Nd0^w=2zdlNvA{}w ztV^f=hhv`987>BF96EGyn>3m=^J$yb^36P;2^XAS1G$xi2eMl!ryb5OY3lxqkU;&P zZhmuMyIrcxpf2?J8&M^p-nbP|&$ubnm_fgnCk7+!@QWPv%+gZMXXS&k?jSEkX3DMv z)9);ilBMqaS#lfeK)0KtpA2Nnd}t(-w0?p)h~mv~-oyqD{ttUrx9z13Y&3hREUKxj z2K3qg!h|d()Om+Tx6I z5tI!RCuX0>DbSDkraVzM0i~E1BQbLrmfkS-v_?*H$8DF!3fYqylYl^#CqE~@!Kq#5jk{n2R9tS^4+svD|Jpk+H(6_5Y3b^b@Ox$L%)mnA z2)t|9=+2$5DGM^;H=fF{9BI9fM~L+zG<4jhHlx+SQ6Q5FrYz5Db%~{&1e6gGTk}qD zJKD;Nnc{!dJDPfrh?eHIVet28U;!k;B;b!;wlS>x_>|wX``9up@}T;p|&C zFRn_%3smW)6rM^xvsX=kCtviNKRFpuXz_Wj0@)=i;VAwzw(fAGDUm6g(#Z+8kWDTR zvP#}kHch}73dkl6-?tjwRjKFHT9vMDRGzKtHpa}K5q8E2(2j>&vsqJ_DU>a#VBN9==ojNE zt7tbrR^|Bn3sr%ZgN^eMK~_`|R~1P6m6|^13~HW809v8+61`%2rpFF&OAo{`QE*dq1mTJPT`Q4d9{LVPe9y9nI zEYJM>&e&_Mh)*SnN+;O(uq4r@e3B^Nia_*3Ii-}Wh%*DWtn#a}IsX6}f87~lNlYS8 zdLCzr$9noVmQW%y>3{dgOjl}Q24s&nzvmZYot~e@ZHg=)?Ld*4TCc1y6SU1;vudu8 z(%*7t06L?`ZZ&#y>9_QAc4>>!zMDh83C=m~A8UFKrtk$0ff4 zH#L>SA?{m;v{Hwv5IKe3|4nV5d^CaeS=c7Y@qH9-0h|@lE;$~H+qHz-#WtBBd$$pJ zE_U{DMF%b2>czQ~@QYPbWtT<_Z3r>GV_40ieNG*|3AFj`=v?~GvARkfEx@Aamp%nW zKlU3@+Y#@`F<&ogEkNjOZ0@6=Htcpnx)-Z5(s~x1Y2QyeS$qrqnvrAL#ACSl2hTb4y=x$1i)mRoN?ARa+AN>B2K! z!0P56wAaoL&_56m?bEBBt55Hf$=Q{JhM3O>v{ug})z}`pBDCx0dzyA})n1Q{3coVmM1o@<;g-3(Uk`}Mua^C;Jo_A}d9m$VD zV~?h;TejzTT&?!vXwT8vT^t)V$-X}5?!dXk^p^g@hC{q0pJyH&ZaT|SyOs1lH$7qNAv2N_VMpIwV$9&o zCMO~))hc((RSdsOp;asze()yLmY<8}_|7mhSsLgalWd&oxln6wrh%%M)_mUlZtMu> z`sDNZU~+Bw0&6`-nz5}P+$;Mnh5gexTKa$dhdkr??X2-!&)D%&Z+;hk-*xQItD7i^ z@wTkoPzL>qc5_FT_M~3)t^l@X)!mc_qV-u2J)8?sG#8@A*ppi0{J{zGTJt%fWKHFk z4fyKDn`8ebx@Fd`p&mhAsqh*`e`82p&!)#fo z`Supb)25zM6X~<8=wYNtMK5}bc=j6#c<2PTpV~{GXB~XYo>hy}9K9*0L7WHpXO`V1 zUcTLw!NM!nS-a=6G*>!gdHyowbZv&MCOasy`b%7k>C^KoTe<=goMtiN861QB!&))G zdV;oE{5kgd<$*kVgPjTJjq&H;vmxch?|8z-5@p%@2C4T6R|K^1Qaa-fS(og~=D|%7p zX~Yfbc&Hxb!;C||BX+Y<83~>(XyH5JwnD2?zLbKKSYo#V`WYj2cVx5ozJ#JIecf7r zl=N&bCD94kpY>T0U_HvOR~{ld3QFwEc#{mu%Cq+ra(0d^T}tMp;%Q><%L5)=%JSph zvb{TOELyAdG^w)UXm)$5TOtIGc9XK6hL$XI5Q28Dts7Er5HOHdD~^J?WuGgw%9}4f zkcUCfKGO4U6+FP=C|edTYB`|KdA8vs0M4e`vnW(;QT+>qApU};5Ur(sAFD?{-RW81 zph;>KUP<8YBIU%sg1!YFo4!N;hZknF^#o|^25F0!X%lU8Uk~_b5h)F|#OG~M?hB+` z(!$zD1MpNwND~Uw`0Moc<*k=ZK{pv^e(7-=x?t$I-Md9g#W&^9 zgFMfWy_m8s?lB)*x%qYvN}V5lZj_#*-f50(`}m_b?lws7O$1$DVy7VPgeVk!5_ux z5P|N(QQCjjn#fNp7qV?}aE&axA@o{iAI9SuTCK!C>XrEBU^vcrrF{8rntgVK5u?Q6 zo#MgH@2N28fy{>IbS6CNirY5Y%Y|n&U%s0Lc(}5~ADYKkBG%8H$KhQWkeTwE1K?Zt z67tFiv2F*Nb_YHCYSKd3^0sIi_(>MLD|zx7yzYd%vN3BTfMXc{hVXBYFyWv0F8+Cg z#DNg4vX0`cv7A1Sz++y1~ z=tuL!Pwd*1Dbucy_f~Z9lzFfTPstEvL&qA}>D;@TTE{t%)1!qYL4K;w(XXu&I5Td# zR&r|b9L>)=W8ISw=P-S-!1M=hjG7ybiG~-2#fW?I@E@CK9fUBK`b8I<>>e2dAcb%cta#tE)J@bT~Q1aBT z+4Ey*49^p$JC744i&h9}r;cO6%^RkiBp6O~-vJCw9!8mauwsT|);p=3E$Gw#?3cN9 zNhv)dF)-Xm9L8Gd4R-1FP>MG+$ezH|Kepka^=M-PZIEIMdlz!%5$DymzyTQ`EZ?lr zv@qfNP1~Rj>$R-4$EG)U#nr>q5nC&Yzlf2GZ*Ho`ubk=JmQqQRldM zO@4dKt8P2kU07uCh-<*09ZPi$P|dK?uOfZ7Jo`*OZ!d0FedhIGyE4t|UqOtB=o+u- znH9WL%Bh0ue&Ei4-D&4wbcpZf8Dlq1d~rA#6ZlYSmTHU^T}0UpHe7%u5V)d>%^NmE zR>}nPMs|D1!Td~m)jK~$h;OsCj{=rL4!zROlJnfX>KXCQe+pXXIeM$^#!p=reAcRq zn;U?I!u{shcoM7AJLzqgVpOL?18JFa#DBzJgndy`A5*12#<>!i#q>>PG3`$km_?j% zv1e9h5qO^%@#5V#AS zmOt%Uc1%YmxANdqM!atwxpDn`6*>Y8;?&S}(sUDKCh=iKXy{#_b&fwyVp?cn1N*VS zhp>t!X&S?BDg4^nJK6eO(L;is9<3Fj-qy5Gzz2MDdqm^vzh`g?;;PM+LAfz?xJ4#| zXUojS2s7I$xPNc)L^aEu`vNfM?B3`YeDLRqnBVD|6R1rdTr5WkpYSwK3FC;T#Ba2p zl|zAss-0?&eGmjTZL#J|9@7VC%~H zIpD;KaJz`3=#U~_{p0J%x%7P?P8Uuk~Y~`MUN$jJ~Yu@0_kq4D!eW9lnNr+FD2zf@|D%N z&_VLWZEn=6e6mmOofqGp+<7T;B1~=G;cLm67utAvd514be?{4P=vQI~I{MWNoN2;n zWVg!$lW|ST|KUx`H@IUk-n4j=j;xdU*70Vui3)o`2fu@*(8KEG~0B z7$f$O5=e62!Jot}3)x(UQqou(MuZ(W)pc;HGvsnOZ#dS{aHL^F9J~%^y}|89eQ3+< zLu(uKc;!^$Xlh^PxLuxsaeE<{AQ0fhTs8zqU$?%Uz38#n?f&b=r1se3*pM?0rTP>j zx%;>q9nn5)$3Cd$zHStyu))+(Qo#f@0tU+#SC!ZUmCaTl)_Hfj=s};4}yxI zhvEh^Li0hVQmTl(q0D;)A;bwp`;0;X+>m#8^?tF@w9M^LyOqX`XdGvHY~1w82#=uG z`3inC&7mT=fkt%dW1!jjD&Wq}2A!U&+pbE4qBC-V;YRB`*r-H|m&w`tQCSs~-(hgU zVo>xLIS_uu!g6J|)p}vPK43mz?lKRx9I!CD*r67$SJmBL%b^zDy%c{@V?y-0Nt#BC z(hLq7!`nO$2c0GH(k8Lv<&K6QR8UMFjPkDUp&W0SdzIZyz!(1c*}@+#Mf9tVe9^kj zYb%h0lXNjvWR7Dk%}Ss}{01ZRMKWeIAWu9E*ka|0&0F@Emy;uRG1~B%AkPKlC1e_a_bmQuw<=O z@5y+cZ*VkB;qkA6BADXZ+<`ij(P>`1t9QwpQUAKeXT}+-*8~SQfIsoul)aGwc@3=u zQ|qlF<+W_Ec6QrML{70y9W!P7z<%!_^wz7g*2zUmv09d?_;yBpTtz(J|4?PY`LK`5 zkXIvo@O94OY)E|4P{r%21n;GRVdb~p5$&MYRPO%3P1bf6-?PtaQ>VUt`D^SFTM*H7 z9EsS>hImnC+4@jcdNDjE_8lR!GGwaZFd%c#sz(q7hpCbHZWu91? zET7aFcOK@(RS9MYw~isI%|OgLAVMnvNN=Sk3C2(1y)mqJ)^O86H*k+}L@_2GbwE7N zuxgb#^KeQ{;yRGMus-(*y8&A`<=fPRoeQIv&}$%Hru)Jv{xY%hMfeObJiF%6W5ny3L^r_z!4{XZRPL zmECJBw(i}`#K970eM>afv^wv&aq4)p3ShiEZ864Y$1^Rx^jls`=LGFd=0Ke!pU#BATkWwEfaEB9Uhxg44*EQjc2eB2zPCV{7 z-ahI*wGVB!G>4}+K3S~ZQN$a35B}E?YaAnD0hPV-o@q( zll2L}f?ts=(-1wBY2_J9MB09g85|*e=U`2vehJp4z=;u*O}i#(WrQ2EU8VVPx9+J7 zZSz(i+?XP{n{r0tSdHgEC7zOtD2Jx)$c9M0D7+tM7t=%Xgwt^5E6~>7A+2XfrpF-r zT}!M6ZwownL}gC-1fZu?fq&`!37HR!Pg8AacsIun4A!W?;uPYJe87Q>inD0Xn@!;b zVvMlDsBbzqOv}kt(6DVA&yO8)y*RXtqfKFY_{*Gge}V890AaK6_Yx`VaQMrCJz*`nS1dlc^OevRErAXWc(x4_s)|#$;G)1-<{4D3_-KpF zWj4g3aBe%f30-y zf9dUA=5fB(*f>9|rDlo5Ig;WXtmeW>2Ij+h4qsiI7 z0rym!zvpuK-H7`|)RMQhd;bVL(SFGp)_PTdxX@ZYpsj?pFRQk^+8sBwd<~JVY0aP9 z=WFr*T$s94CH8j8@sD=}2W6iJ6#IV1`(uDCB-nq9oE^UJoRT7c9wUWcStaGm3yvpW z&sFFxr%i8b8NKJ0UWOUFt=`8e_q^Ejvt_ZIg3ue4?7L6bX&7q=X@;5%JcDwLD_sA) zt;p!4{M(^#r;~ko=l*)pZuE)P9kQRy6RiUM<7lruM%sEDBQuQMB6S|udFVmz@hz7q z0$tO&S^jb4iXN_eEMLO4jXTAA)7`uoz_?$>i|*K25BPTM?0yt$58nw;ZwVJcT3d(A z5BpUYlk1!lwmWvx?p)t3k;0Gfq$Xj*r~YLC6f`58CA>xkhJpnYeX%{MV3RN14VO5XXPr)IR=e@Oyz8b`3^l zjc}tq!tu8?H4)$CJDgP9lZT$5W3X;pQgb_v_3~X#siRVtdp@}oV_|T--P69@l}5ad zV`udC=~rfuE2C7fM>@pp$_^2pCRW{kOQ<7fq00}->gyeE&a&6RV?d+%BF5j!miyS9 zuY&Dx5p9M9vq{dr{auFgZa0l|W^qutrK9|Wo5x!z1^0jFrg_S5uv;(xp_~8S1-Yjt zUj8FD%~J=_8yceW|A+bdZu~8{6){oDWjaN8XmSbnuOam$UwyKG6Bw^7owleFtkppF79C zbng9QpuZAw?Zvzr`0|SW z9Rl=>l&XhjkBBh075{5`{GugewHfbNHHHE0NDQ$uD0^|?2m(9paiHYAfRj-@i_p8= z8N4I8a58JU<&9VD@>Wb7VG+C6>LHTTLy27jI39>#JfRu#6&=PH>1aud+kmqSfumf) zxakYCv5)?}5Krv&wD*ivR{eiF;nN!xtF;}`M4k~&Jme|A)t(vM7k892ZZc|Y^wd}+ z8deY*);W)cHO1VNK4+fh|LIrwKeVjQbSK_lm54!LMeNgn=yHp#d8;LFX$XUktL=W1 zrQUffe$Vb%+Xz4Hl&IrNHg&H8-+oO!giFdHBuFARvzuhJ~ z3VMH6^e(n~g#KzD?P%B*5e091&`bw>*v1E+Mm|=9c$3qzvuEoUy~VRM{Gf^cWO3hq z%y79g<~Zv6kg}B0!`N(IwP^P$H62Gs>7DSdZUggq4Lub@zFb3lDXTW1n|L+pM@lU*?4p)QuOX#$f zczVG6C8Co`li~iD`OBFpma?evZBQ6n)*4jr^)29r(3rgR$+LeMBdByouwG_76GG#V zhLDmKc)c#r@VQi;MK`FBFUr{56!##LlT0KgwC+$*ztF>N-F#1*HS(<6l#{S7j*NhY z0ILn(L%}Ui;2z|-1B18)zqgn&ojn29#ZSo2MczFN(d~KXR)z+a^l>F}MpPMk{7^8J zaoaC@WN$z1M9C3r&5oe#kX?2obPV8ql=YL7y|^tp<=|GLv@yfs@T1`90p1!Z#tXpAO3*TQ=mB-stB{p`u3f8R0__uI0>v;~MR9ilxNtK3SgSS9e zr}hNCY|1UaGm>HXElp0cZ~Y|~FkespuJG-9ZnK@TWQon^rT!VVkC6tFuu^?5S-F8^ z5O2o<^~$#l@t8}Op+s}CPI|sKRIk(4^!ZYlpCaTfO2#B_esZq-Rwq9%zcZ3^7rR42V*M z2(?NR2QfGP4q7rh^FVjM1qFO&0>!<_+48&6f^vxkb<7$?G#QcnS;=|wJ3YBjeoF~G zdLjpob>K$Z%D!7+z2zY0sIsvWt=^ek4KqmC#Z<3RXO-62X=Pz=8B)9|74Hw;e-QTJ?!Ozl$BXj3)d+Xsr?Q0ly5 z-|ABb4G~-%NPPud?ksZZ_H!(b%`Sdf3lBFry~K!0+6m%E7$605pB0iCH`v2-Kc@V^ zv3P-1ew!i35~nw`{6&tu{KabieSu#F#OT*1xArsdg*niY%jGmy`3oO(qJNf>^BaE; z-yla{eq8Fixvvm1C-)WII=)GRy}j~Ru+C#TW%elmt8^-7&nNN)CrSjG*`1Q3+kP>e z)Nh}5e3Y%_FBY_+a`2)1F79?A(<%76j6kp77S?NM>~ZFWSeJQ4=;>Ktv|N{(Gpt(z zT|KK)e$%m8wXJ@LnS$fY@qr{ubljwjV6Fb@12lW?UI)H&8g1>-7J-hC|9f3xw5}6c z&lvYpq-2%d3iNvM`k&sg?y%Iprw$$~*f!j261rTEC;A4%(7Y+R8;^jW4z1`?rIH^& zx=3K|U=*NT__?dR`xoUkHdkN_y?_0FwBHojARftkqAl1#Q}C|`tld?};--f!D8sOD zVRv&sO2>N(TF_lT}&Tm^qHC`-CZO-N^AUXK@QnqDM^U0tk>-73Ld(AqFgu*#Pp>=VUBt5U$D-is|N zEBo6efw7iD=?r04HhKu%ym9(BSr#U>3yjXv$s>qiC?1d|OVRZ}H2w=dQ!Qy1Rz4 z34t&rX&ScWEOOb3{rT>?`z-MB$gbd{en9rfE@&dM8xbjWz4Gukan^fu8*AGG%Dlb; zF_nlLj5AiSVm~a(Sh&dk&d|zKxJZAc2v14MiH6$7c&Pr)(Al`$g(3dkWPOeKriqXC@&Ap{I>FC*khMD z+xpvNjAlgtWzzpr$QjrKz^{GkwS&A9cl5}Y$ndMbM8OsD6j8*V9SE62l8hUFTxVtV``I+NFPl(Xs z_cx7Apto{z0QSxvMXGbvJ+)%*$`t$*#Qs%kP!;=+qD=Qb&;v{uydOM*XgkchRmQrx zQ>1o7Eww34@%*lvL>FHbAG^eqM`Ujx%fk0dTp7-Wvd15zFL)s^GIKj_Wg9_%@5GCqeBsQrRd{wFCh;{iTJ*Pf(1S!lRP9fRH ztedp3HZfbjbb2s2CP4OX{=UgiD&CF#(8j<7-dD}Ilbh->`MI-rCkybdD>) zw^+pwwpdi$U7C zswb4j5eG_LcVBj0@-rJ|ti5^-bJ&t_1z?8mpmT<;Xt6AO9wkMql8cNGH$ylN>r=|a zbJ`vYuo)7lzs24m^JDO=Af}hIn{Ea@UPp;CNfSPpzK3a`sq2`P#a@_kQ@Lru>=_AC z)3=3vXo0y@m^GTE(`R^2Yxa(J=|~hnC)7Cpd_)C`6i-{i|BJY%cWfVR0cy~R_CJW1L_Srz` zEtYlUaHjMYiTy6{JuG%2xTJ7`TGE?*D@yM%@Wi{s{!l9=2N9S~1Evk6PPB>DLyDsw z%vqarTHAu2o_~<1=T@=gvF<9~<7%1%E5>BJ(k6XdWkbDCK)trV8fr0;#mE^YEir-* zQmK+SbU1s-oGZ{S<-3`npTayT=iFH4%xG)3p?>Z10LXu3Dx%I3i%U=9Z^eG_)xezB z`DD+(j?uEDQ^xmrvwR}$T07j~2jt7CO-24GBf@TKKYMsu+X$SA9TJsJtW&Gn;g`Rv z!wl{RU?yZ)dCUG-cOCqMxc5X(MVOZho~QynY8$~?&9sEFwbdT6#a@mbZSFPSif)Hi z#R#}1bJwdt%??-~z3Dzkyag)IzwfTND!pr`Dpe(pP3c%Jn8!D8G9oCNL+xDX{_u3b z@0{NMV`>kGEwAH9Ut+p-GwDmH^L9+ekMjYzv*?r8pKFPo~V1@DkJgdN&i!|ctSkfAqD0L?X%Vs}Wy+72bM zp@;QgMN7I+>eJ|D7DtNN?N#*=<(*r!0dMLpD2p?hVOQsw$>s=ptN@2b99amKt!v2QziFomX-umt)>oec(Y5G5&@cqsvI+BXHhRdxu-D&}VO{6O+hwh$y$){m z&7Hkz&z-~SLHc`kD4T|Ce0!sX=GNxmxrX-d-H)QC5Al6=v{1l_77EyK7r1i|@*o#( z#76~T!G%I)-P15f)7SGJcimED%b^z9qL+csGRV(qNA>|z;4r!EyS8C&4_TObg|ZPU zO?>VK^fUujKJ@3gJ6)b2-;_utL!tp-=Nw-wNB{GZoXv*i^hSotWKUHB-jhU&8#bQ|tx*hn=Jo=(v5%b?piD+payKep^aB zj}k-cQ$Oiz<=5wkv6nG^oJSy}E!`Z!<_p+y4a@mZ#M()%hf#W#E;BPZ8D)Ndg`CNH z03{7Mhgh1NASG84f1nedDk`zk<|lD`6rh7X&R#z3^re)t;6V>eb5jgjiYGGqT5gV^ z%vd*C1*~DVj$iERV*TRz$i9s-dgFEW?J3zRt&H8Tb6-q=0xCLDvuWmbK+W@LD|J7K zdOaqj)asOwPFapV^$oX#(r)R2neFD7nU<0~dD&|;(c?6J24h?lew1`(Q?{mGOP;yA z3s`Hp8byZ@C=;!;q-FmGda$nA(xbo$s=T^zhoVj)x4nfL>lese$v1&M>`=*O`5Mtu zKt99zx@t7++c&0WOileROD+!sr}8apP~;|K>OM(bA@$$L=RXt9k>kbE+S}^o_{I5# z)oYWAy6x&F`MZj~o7M4xzUG|PNTsXSVs6T~_E)ds+F!jEYyX6BUEB`0x(U?QM9i;V zPF}ZqIqVshjbH4fB@;?{^FqvN(CL)etDB_VCJmSFqd%qfc~zu24K!rlqZXgb@5nn* zRP-@n{=tE_EwX$3MQ39}87!z&gKkgYX_CLIeuFWKjp`Y*wa(J#D8n?|x`$mw;=6z+ zQjh!>ohq&-Xc$oTT;LOhQw6KzUQF0!Z;2)O((vl#1>w(;9Ts;C)}6vi_mTILr$}sP zAZcKAJe~lKFl$;WC%Kl?WP2SVeR|zq*2F#3{KZ*P)B%oJidL_zSAH4XKF61PZ;nCl ziP#qMof^Ub-gk396#bT7iQ~8ZPWWZa7wx!FoFWZ^`tIfP%-xgbf=hoayx`+%aNmD9 z{{1eIh1yf*H%GRCqoeK!+rTJ_*Wnkk65bZ`1R=6lT+s&@k9d60y1**j+xFMp+zQHo z8n#rZPNdNz9iq8!pdSeZb2l#AvO!)`$DHN+X>oSU}x@y-x?kxJ zYZ$%k@wQ{7Q=i!sL%YE6AfSC*d|&60avmvG>i8^<*orRIITw-3d;9DXI`TNgQg!X- zFyX^p1s6f34`LkiM3Y%;K?qu>E=%m(xOd%Q4}@i22vN5hbuBH3W5>TC(8?^k24<~n zJutxe#6Pa=$35eMPsqFgeU9IolQU3re<3u~;g0vl)A`0bhHuA7oF8_21P@uG9eYvx z;**oh#Iw$gO!LIC#9ZS8n}EGJGooT zVO49@nq`$kN@jhO4N1?)k-O_oBW05V)u;mtRt7xhdffveazxGz^8sNkYDKM-hmO)87N~ETt3QY$g?Gr=HiyOePT8K zO4G^4!=O0atY^Mcu*Y0Y3An_ZL=Yvwp2JvQC6=8v-GTwGPqcadmfX8Pdo-kR(z?iF z!yLf##h7q(fm&`kc)tTD4}n*%gQ5@QyD04#;g}W}*P)Qrh;$}<*&qmE*@(JuTz74v2 z$fN?ic%u7daReQy>HFDMI#{Tkm@@J^oxl;>rIUr<$mv&q80_%WmN z94^InWv4h=uhXdOO8Xa7czuddpB%-6lLGI6J0I!OdOp%G34LruxdHsUNIHprR<|WQ zEQs~gtjCFy0~oJpAie6Xo16#9S!MJae8H`GirD#oDeQj7(_Sb1V$ z2xDEzbe!wCLabhaFF`2$5hsP`Nl+5G*wtsM-OhVeR@txGDLgX*D&iWKy+upQB{r<} zE4a}svwZCm2vM$z(2p?|o9g;g7M(GbF{${fq3kNeqhBM13zVzi0|(}aO`$@ZqsJWF zFZ_N4aeddmJr{cQy77-7f2+rN&xLrqqWj$z#M@OBij9A?rq62sPuyIgN6yUivco-s zSU?ME>$gfMvD2*~)ELrKYciTK9{qDSSMxNE#==P?V`TrATT*%^Eu57$zVGH>HzhVc zc!YC~wLXsZFg_?y{K&f=WG!H>jNOH32{G3n7m_lT_KN5v;uZX#vOwEcwN{)|01%B~ zm5G+C^?av{w#y1z89CC1oCv)@qEL%PJFtjUkoy8iEhkOjH}s`cHB#5AO5^|4IaRiF zLJdk)k>0u;U=HzLdVD$dM4|q1lYrI#)A$X7qg7db2an)=LyGc)kf5(h8!G02Ygjo} zswH^@YDe{UO^zz|O{lSUnmawIX5L3yvda2Iq`H{YD(i+^u%3&D@7Q ztB|W>IVsNNVOqu@y^87BRkL`Rv~dNxRebKl7Bv^v2Xo*6_83PEdCVOiwTrXaV&jMw zT5vYzS@S+?4k^EFoR+WRS_e0V+~|joRnInYR&G&WNav;(-GsmASdHZG4sUksMUjZm zI_=gmW}KyE%=`ET-8WL$w?KzyL|70yDN*43ujTL0fndd6_#v)qk3VMJy0LijQ`Q+9 zL@t%0&txe*fuS1h>kNhQ`~+jLl3TTpo;#}Cd)hu$kTP;8T=$7laGl^TM&fqz^X!3o zL`4@)9pc0o{`MDab5Hh3Mfl`GD*kwRzz?e&@jj)n93vfPCV)>lKf}2lcG%A}r$m!s-pU z=}GDFtUkt3S%2ZF54^bU@Is7u3Qjm;{JgbkY`5val|(dps#-zj>|3EB{9fQW;A)kd z&b`Ui8v@Tu5A}7B;;Ua+nEBg^s6M~dPY2HM;d~(UIH%>tp1|`m-lw>)MP4nwfn&O5 zNWf#t$N6Y#$IV^6LGGFtwZvEOgp#*Rafdp20J=z+W!=`Bb_bqAt?AJ9_k;JnM_jI^ z9@iEjZZ6o;A9oV~4{6Bvxrj5JgYOovz7Ugh#H%kXtmm2G)fc$GTCxYxt5S2$u$4;x z>jg%@686(!eQr(ews^*x`!}UmV(yeRBiCYt<2jj)O*qemZ_h(Bct&!cGoO-3fn`!6 zW;TM@hpYC&Ydxw?6tr-|?m-!U<)6#}(b#u*UaEn!o^26pif?j6nw7MkIaKi@H z2(WhqlwE4!;SHgZ=XHDpC}ddn&3c2IEKEb|EV(3_4K(E7y%ud;gN=C%&pMjb8|mrp za>64M^x9~QEWOA*SKM}%mfKxKUKSPOeTpjk3RXKjd-%pFD3sc(=&*K77 zXbxbPq72WR&kfjP(s;s%CtU`&(QkuzI}c1?_sVyinjSdZ;KIqkC(mYq8~UyDqnzW% zJ7MF$L>uW5Wjv1&;@+`s%6JA(_@4b1WgNnjPch0ih$nsfTP5y3(D$s^H><&~!kD~Z zJ!oP?*1;yx1OwRrM-1HRP2!J!4wm*1Ei{aI0JoliF3_%cLZT9Z@_vWL4`ysAF<)_? zwl+9T%|)pQe!ooKf;)FU&ohL;|C54$xv!AlAVBK_(yJf!-?r*orRIHxw9ZlqP^m4JmVAiM8=1TLB3BSIQbEupxRSjr(=g^ESsJ>uBCHUV6OpGCx>QhIhUHxB3NVr&!iX&hAx?oDv(@5KpGo zA`zF0aTL}i;fu;#hg^d;Js8tL`Q@g`)deaxVH1x~<2R}#1$jup`nTRH@OIXD!_DKx zZ|XNlkY~xY!96RH+AUVYd92iO(3d`OhaPx(yZ9N@;ECBC%7-_|RO<~qwU|702PLq1 zhCNF8t@sAhG&wC>f?oqzE*EHY{d=XSCgkWil#oYqT(>00X7jp8l-`Ng>i$}87P}5T z2lTo60%qtsPC#A3U%ZiO@Gndbk{%4E6!40ewR_~Li1&8^vWo?8LxH`Vi|K|B&9P`x z;?Ds0qA2@x&NVRpPevkmpRgC0;LfLsabxFu!cNGyX@CYZt6R;X4QNlf{V^T`awHw; z#NW|qCv>{Xc`4(IbNP=ReMo|N^xWgOV9OkdH&#ZXo@57XfOgqdNEYg-jDO?mcyo~2 z*6NFvE;1l;@ggOYl&zIpu*I^Rx0U6=k2E(&eCE7Eb)g7irbH_DyC*YpV?>%t!L+e! zDyt0_YuHC*&X%uXgKZ<7aiGOqY?*U&94gk`}fCAOew=& z%%c17mvHGbE6^RN16J4Vx-SGv0OjVMm=d}#Bu~(bri6}BgXon=^_LR+5d#ohwg1wg zRY+C-OWaNF3@12qjJMFxT65=0$D52J4c~m8aqM))vDPz=d%^;Jwf~*{-6v*Z9JdMm z8v=cIUg(eB68apjMD4TCS&G%`c3PS|<;pyf?jE^r-MO`G5imAGblMGQ&4=&{m$C*6 z>fAYJu3|#cA)3I zNQiA%QC3r}>_EfXm?VBVIT7|RXQ82J-SnDRK4|R!`Dl=`hCv}FXpIv4ctN@Q1tpbZ`z)Bz2ofX zN${%Zd0=9#o()TvA6&Q$kgwyI81)X$h?#=))cAU*5WZw}cZvN%oqKJJtzRHViJo6r zFLE)fW!l|Qmeno)vQW!xNy9S%u{!q5)yT~-o|$u~3^?#c<++ik;CZ>x&WLOit4ku6 z$Q6$7Ry{lqA!iz+7byRu7pi3(;Uqnns|Tl^SQeVZ2yS48x#0Y5QtrIOP^36!q{+By zVui+~af8#O(k99?7TH-9Iv4T6lFL;CSPp>mZ2bxGv7uo62>Fh8rX|jcKEk@acK}>- z#Npa2Et@42UQ`FZ0*ivX3E+x+lhYWZc%BNIQtQXifYYy9R>f=3#^4pC>?#mXLkjl7 z!Lw%)A-sA+*tct{9d&i-xa`aOFCCxLN4$l7PQ(?WiX@Mx(eNz!7Yfd94#%RegEY2g z2r?o9$ra!;scFp+X?)EfXxus7yJnCc0V`d6E(O<8PEW*7wr66^@a@-^b7uI)V)U%- zvsyF4G~-u*a`g7wAq}n>B@G&|9o8^P?qNwA5xT^!#cM_^I*ZqQC6g{?59>kF*_u(( z-kK48&Up=YTdL*DJImRw;Ea~Jl+p3*Ylh`*^aIO-z}2#51gixnK-LWNY&j_jnI>vefvJ>BTKaIgqU5lx_xXa)(SM7vdq-km_wwN;}(4rYo)IdkW};)#9&UZ z8GebenO$l!<0s%d_bEnvb0=TlsTM@u9bzf?U@5~(U1)rw)7+|`Q}|{T`dM*`H*v!5 z@KM_0E0eObZr%@R(kbc1x6xM)bz1kJ^{Cv+;Ya!fBUU!zdXldVaP|Q$9;KPefRcT6-!-kG#<{yQH=O{TCk+Ql-fJqw(c+} zNxnUM`;=tu0pPrZC8_WwZHc@pvpm*Tw2#_L{zT|?tP%Vfh>(WFgRUgA=C`PXcS#}Q z2$CR(70VmI#;~eO?bh&2f3)0VcbD?=N3VAZHG@{m@Dto@G`VuPV3(bC09d)$Mf&nedoHa$%5Z&8ST2NN240leky=awx)U-u!B{#Gpq zy)z;j9Ibxm*6dZ`9V-0&GoaV$^AebjC!4mbDzv;wd?ito)BeUPl&h3-Whhtalv~U_ zBi+aC`5Zhxj@N~T2ZT}wgoZDBXc#9!BRgpAU^ht`wE2Cxbdd99&{rgH0rr(tc#%`2#jXKQvZh7a)# zwF`S)@_Knllj)1J9R>b5S@4Ulf7e_u&+uB4+NUSn=7DIElCI{W@^c-{?v{0QF(d6s zou=iolw3D^FYx2j(F9rt5}bUIZ6J;UaDBQNbvb6VDGHu9uN^yC{&_99BjU+|EdeuC zUdj}&5h+u?kSP4Ors=LPD1Xh-$Wyp`M9Nwe=AJ);MW4$BXgStggsv%ZMR(mts@V(+ zqevxWZ$|Poma{Zho9As?ggJuMT0DeVl86Z2E8<9nG4KH3itl!G$X$$D&?)7xp+SMJ zheM|`LWFilg8Rmdsu|-9-}N2uJVQ1(wkO)iu;6NjwFQ?5#xOqeu9BC@$rBP6an}#A zW?yx9#(;36_k_Owo;H3ssrg* zJ9bNaB@M$COx^S^l20>l{zN=o$;hK;Vx#1NGa2uQe?UBh^M4!fuhWCLW=u}^EVl2D zNBYZBVOO(YlT{tc^7!R-i!HvmQ~)RAkY|T^h{c0{p$tg zTwX54wOE(1V^DF515p&PC;YMFoGZaqeEvy1HF|QO=^AHa@FuHT!F~^(s-b(?(dj1( z@`D00FtO+^#y*G#rDlW{Xw3+1!kS_2K}iIsp18~7L8+ltDjt-YVcUaJL%UPs_SGz0 zIX*f)KiY$mU<7`S2gO}~v}^$j{kmHU%JhOBBCk)V(1^S~p<9e7>$Vt|gZ&00I)D*v z#fZFnv@WlO#+B(!rx#}TB7Wg)ZD{?0#zo6QH9o8&d}(YIPIRw70N;##W~rpuQ1uo2 zmSG3qI=@pAQTRCVg~UPBC|Q31_tn)c3pHF_=GgZIeBsG#os8qGc(a(Ch&OZWrSAp1 zQ^Kun?!2JNNy*~Qc6tVPu3;)EWx;GOy}Un$KJe`$EeW>Imen|QUv|8EMGGK zt7uH5KzzZyH@JG_eeeT&?+6Jx47Z2mx0flbYSu5WeS+FIyU96KD z+2NKii)fq}(6u3%_DWAX2*u`6#Iai%5cE^-j_%FZ*Fs1J+IPmAdfYCa4VAAvPc*G9 zwQ;Z(p5?Jo@I?zJYfJHtTT<=!M|R=;{Kmst_Vf{l0}sOIa~XRv+G0t7%Zx$S%aUmc zoW>Uo9*}i;rP_^N(!PxIJE(~rGH@WJUa-q>tVqWWp{(3jelxzmAe-Ad9OPfi_ZNJh zuzS4FPRsfE{(}FWRoCk#ECq0@=G(C#+=Ix(|gMgHIo2Q3GEAFPPPf3Lshb8h9$Vac1W+&1FYXze+ zRQEn`qpesGquOF!81J3@{Xzm^et$mdwF{zmZ+ z(J|@AH0&OUxb|ieF$Y&cNM(Iv#IwQA!qZ0#F%F?6{B?QOmRx+^A^nzt$*2dD5%Js% zX=s2$jce#fCid7dvrEvr-)X%jqn(@?8P_LYf-)nJ9~$Z$YY@76?wtzx*T2_l!+n7X z(e2)W7Wc*G-e0~1YyNL>A`7$r%V#am!oXS|v{l~dGUntxF6CIGBc~K~dfd>YXVgRE zNWCSMFP=o6Ihwcj=F7%RXv?~AhW01(tkxy zIi7GEZ)eg4JyiMXFw)k+#Xr16-xIiL)|V`-eT=;NR@ircY9Ljkl3QO*VfQ`|^@E05 z!u%WFy$yfw-Q9-2@!b#M?>)O8#^1%eP5g~XTng+n^Ibj}*oQUG@#&5ic+-+R{S}_x z24(gq4j}5GCeghDe0}XI=oM9wq<)@#RR5M^e?fNspAY*#=-dc>kNQDvxPL#bncB!# zm1?IQUdwoF?5v2+WE8(b3%E8+iB?+!x<6#ji?|AY$!V6{Z&|4^ zA5qbS+^QOA{0sDZ&5eF25QCD}PYKOAC~+=jvHjZjZz6&R5O0dk2M0s%<7wV@ir!a7 z7MNov55O;0lbDA0vas*S0YpT7eFd}`qZL}tfrTZEeKN`<8n-mI-+K2Uq5z&IMBjYD z#zg@?XI@){kR*+s6euB-+}b157AZnYEn)r*cL=q02(@(xwRH%!$xY>1)TXZ8jM^d+ zCA@ak>_c@zZv`z7a2CH;dysEHag63YsN-En89Viv^UR1g+P0X3keZ-Wb7ItLTkkWiThyGifgCoA1s% zrREx&QQ!40`s{wK^Jn%g1(k%A@~(C<$HMcUt@ucHBYL6#*f4L<-&NkY#P|yO!Q8bV z2Yn2XQ={I5>F~mhpM>N`JObVgL|FBXzle8gAZ!=kcu2#>N>(CXp@`aKdOF^8ZKYDl zFtkm?Ji+1`(^{rwohj9q3?Xl#<2nGnAb{ z=c)atFx%z$Jz2Mx((}ey;PS0HN}bvpCpb1jZq<~#MKQB|DAO0@RVBZFA#<^55u6blvDeN^2e9KpLVoB@gp{<5eAHbK_O-NO;x< zr2-3K6X6$Hhm2Sy$;!Fi2AF#(PQQGc(Kvgo z`J%(r|Ev=y+u|;5V4gU09UK$r?S!`{eyPXj(KH%{bcbBLm zWv(yH8&KvnsqGW+1>rrh8(8Do>&+<3LaWItd)ix;XIXOBKT9TO^h-b9()F<$uN`T> zai+ih#_NUXLF#64g**^R?5E`y_!ppuCw-IF2mG zW~*z*jVHYAC1~5ZmpWI8C+JcqzEDs$8TTR-lB@7~SegJtSQ1RxA6f!?J+P+lr=9%2 z43vww31iKVe){d7emk|#diU|&c`I7;qtrg?MVgA8`-G~&s}PTY2t!({#jVgzNsWj~ z3CgMOci{zMwAw27PQP#*wk;w!bR>rrzv0Gl&}P7$7i@w13$^u#@W&0PwY9KyB`z_4 zw3%o&(409w=Zn{Vu?u_C*J(`)T=YZPcOfkmf7B@BBjuK#DwGy$kaSo3@3o{BE&c(n z72Jz~{>?X%<@VmAHIg3f-_mg@_PsaOoj~?YJUB~&$P(VkfN{CeD+T8)=PbO8M6?vG zokITFZ=-eXxNS)8O%gicJu8Fskn#2mSf%e^4!944J1)#Y%+P7;`(ZyrJXeGHGguTe z@brNBGn5U5;9+MJfh~4`cwEM7CCV*Sser8@~D!#&w+oQl; zm*VZR^EO{YrJ)2YgD6pkw?SZ{9rw`iwhzKJi+O+(_xgc)c)Dv;-zS5c18{@53gVYD z5WUr{9BEj2nRGxcfh)+-!;a%T|2Suu--WcEp#ef$jHjUiriXEt4@JsP*$s)U!)fXXcc}(xxB#Iw`|0GxL-ROKG3gc9He#w|*zg>`MPiN)*Ss z(zy8`J>G=X3n(TEbsdDx-JTw${+k|F6EP}i%O0Hkz#UmGPKZevCF*$Eh6Zl8jdXfq zVb?-e!Q(cZ?@LX}OGJCri^@-87Es+^wiCMHGhrVIykf%nWtHkRT0Dj>rbzvC^V7I<)9c%?3molrI zGRxTG`#7(ik18_#n)Ji$!R@+h`l8D7<-0^{pyiO0TBN_m*ESR`qK8r~c&J2v>)J|M z4tmPjU-Ank6+A&z*c*7T`5VdlBM0y$*V41NNBo2RXH$GXo61w`J$yCBANIAr5%xjH zd9C?t&G&<|vV}hme^vRb7lLm8U>m5s`5VojAQ~hjvfuL0{_i{vfs?16;MuC%`z;=1 zzFG&oo7W)gu9??o?nN9}8h>%0TEi7+QcWgqqQQ4N1NK~hoYdSAcW6`Zx)$boM{C4R z^VbABU&W5pLfr3B-Rf_OhyLlyr?CqcY>I#Jw0X6)v?<JsrF+3eqiik z{xN_5zdjU`an~RQ(AN|%t9&SQ;?Da|L;Ea|(OzjSZTWU%Dim(qS2i2BS^FB%yVW00 z)+|SVm<#%Xqwwc}ZP>)u zx;{<_Pg&CkI|z88)l=<1ntB)gJ#!FsCZbL>aqz3vy$9Q8g>hd2&b0e`Q;(GWGk*W# zsH_)2!uiyt9}3RJPOS0+o;0Fq4=nU$w?AJs9&K$zYS8*h=KhBk>v%b1tnsMb3hIw5 ztF8R4B+Xv#N5Eczj`f(#13l542jC@fbf-^RBR&G*GRBm&F3RW?w-a?J^k<+%rQoRy zZ^TjwM(W2%@eSTWSfW;&NIl~J3AiS`t$NQ|R=r935qKni>R*n;5Z$M>5O`i!Li)M> zWy>cGh(i_*b~8HADIH>I?VV=Z(yGfjLbAiaJ39iH^9u>;vwV6dxI`_0l@!DoW`ELX z^(Aqgk62N_xp2VE4@Km6*F%ft_dh_Rdk$aC@F#sJZP4@OQ>~%Q6wE8qp`(;I=?XE@ zr;ygOu*hCp^d;7)N7gnT4f`wNY6{8*DDPFOH3YbJQRlXx@*zKnw9S%MgReG691B!V z$&wzi!&Ca5(}D$yGi!?a&S~D7fqwxV+4#FD?53Qz*CTXRKVyrQoocQ6!6z#IyL-3U zt&kG~mp>T;Or;)*IM8+uEnL9bpO$BhgWm+%CTRj}!pOMu1qmN7vZ&%LuarI6*M;bgz*8NZba7|Fb)^hy%g;!v8KUAz&YU9zQ+4@%V z*Q&u|;b5KoozvY@+kD|Qi96e_IXu^;)?l!UZGzh3di)QSu=ijG7;;jaESH?I8a4n?S69Gtrs zxc2d#zSb21ScebNleR)m+%2r%*^GE=;I8huNGBo-MSt|v|8uEtP>z68mmKN5oZ{VP zkYX3bivpf_IV@)uEUF1(9_#+J^@J_Ez{g8Mq3%1|0*T7DYmKSa67cMh=Go-e$sJM> zIsh;m%%ca0jYr;lxr2W{yhrq>={)IkcbMx!o+7fEasLA6Q&v+a+s)G+m(f?P*Fy0SE}wl;+a z7om-3$djf$*3>@q#6tP1u&fXjJ3!bN{ffHn$=Z`C+>_F_=E~3$O*>T>`vZNr%c)Pr z?;FH>1n=F}`w-r1@cx4JF0rA;E|zRpMue1i-wuv&e9TaLtLsqKHFpREiNCiTwhD?=x+6N;Np(Chr!Dei3EH?r}`mi;GL zYVeWE$Ss-r7k43j{V6B)3R3H#ts)YR_a~87zZCldPCc@n@k{el8=u4puisjL^<(|w zE(B?D=#kTIi<@Is>hL318td7|W_;7R6*t<1wt}o}MM9`%6ot z+%WVZ=vSmHQkv6aKTejSWl&KSqag3D!oNyl>PxXzDbB;)Va7<_9qCXtzWKCj+o5R} zC;o)g=jlsE$+Mlf`{H0*nBVJsXvQ9+;aAwn!%5rCF~+&0k2ly>YZUdX<(r;Wk7bvs z3{SIrcA!+a8HpN3TuXF9bl)KVekmq@mr%RB`vm;~n`2zTr0{$rld)JMvR54M{iCEp zc@j>1^HyoChwXgSArSh=O>|EJ1$=4ILra|5zQoz?Fj^VOG}bNq z@Ar*7g6|tx)H&!-%75Y4PBQ87_eqaO!C}Xs4Phlmo900>;I8lmD%^0@o--}eK@VS` zl#3=9<3*!84(o1DHk)t#5qzCj=aN zBPD8_>w=sN6dzzdzIu1yk&&Q0KT_hCU&JY130vQlEDb@P1j5c2Crd+7!_HI7DQnz3 zwLG#f?Aw@fBAX}9ZBUhoeLMXRzN{*1mLoLsL}LFVo5KF>!Br_A_@^p@OTo3BoG|2xdt-JSnGdv6~V)wSh|E)Wn2F+_<$Ld+IX(I6rsB0=R_ zKm@{$UB)ZQDMt z&-U83*XQwhb3FKdzqxk-nxy;mxMRHg&nvCPUVE=S*Zf*@%{AxRyD%G?v)5qHhf#+Q zyeDVP|0;C6>8uYPusxu;xdGF`HK5gZY&>$%?*B5t0!oPnS1bLi7YeQK^~_)Q$#?~QhvElV-J-(o~uP0jBo5^#W_rB%Kh}J(^&0ztio}a=F&GFVOzKZk&=+rDAqE; zR=kY~<5@jg5vBQd!Xj_nG(K0}rN$X}AKv?gRR$tjGI!tKr$-5b(N6!JXu_7ANWPr0 z`Ac_kHz)W6x0PHZ4ZWW5Q#hK@BV^};c>HajXSs?ER`UBi_w3q{mhz#rPD&`#VoN+V z`#g+^=UTwsyNnP8VGo-sw2wX1Qjr~;rpI+~&Vy&lZ^9Ss2v&a&$aC+cB3t$4jr(`Y zM$l?aeq^%SWW?m|y9w4lCBC6+CL`{yXUT}`qwP`%=g%%8t zyTiAFO*fv&t$D}0WU%XLXFVSJS z`1n(va;GLW~AQe zZJLyh--$ZVn^6;i98v7_ySA^ghs{_yfzF$$K*>$KH$*{60c&20Q|ff(;{8 z$vD7tsqm6Jf9b6(8H)O#3LmN8>xVQE_uGdY#h$$(;qaC`$n|nh&D{gi8p+?-^uSJ* z?a-F1fq46KS4Zcni3$d;9TK^$xuf4~O4wDED7Qwm{v9farE3duMighgj_058zFpv{ z?ynH42KR=_U)SF75@Lz%rpB2;z2U!xY%jpb^`zH3y|=`Jf1@5l4k+5mH_}zEJZ=j; zYVc6I3v~VRKzu!Zk!zmPm&g69S^Z<=Zf`P2N^cr4<@>qgNq=@r-Q(ExPdkZYL{1)u zO$+T!!#9~e+`SmF5x&7Gkl8Gq^HJjr&bw3$LqD-m!Tp>s@j?HCjCK>z?n>N^-db3! zn`yok9zFr7C(uV2>;Qka;-*iFWFRRYH%Q%i_LvHt2z*NV&uq_Go3_^GmgZZ29e;fw zr;Gh^a#7$9&7%3 zUP*p1=Kj?h4{{1L#5}~O>Ie9QH@@}8L$|Ibt~$8N=Hu4#e*R zthL2Z>s?gmT4>cpYE{WZz>fcG`>Z)lIg}`uc;PEYDRwA;TSG<4x=yc-A8aGuvIh$NeT}?^6eQ z3-Qf{EcnjO>jxoeE3IQB^55K3d6;K;j9%O;!cYz=_tk9|uK?#rS_q6JqlUJZk^8vb z8;QG{(B2iZyxn;fGubG^Ly-LNbnIQbb3ykK+}47#zII<&)$?=jEO2@h{ziNE$uY26 zY=1y+U*Z?KRzLSE&jM6c#Da>#x#CHPXX4k_FGd8QRQ5qZYgnVohoO*G_&?Q<^yP=J zzJ&XO{}WiF{h#jk^`~Qf>EZs6Lx}u6PwG!cjk|x-lhOvc#=5MjPFwS=C7(aNnt-P=hI1b??`uDZ8X5hZ_Z6~6Mfsa)M#4qFl%rNIsd z;jSS#Q~m4t_FlfU8e>>-*WSVsbuXU2hb>rh?^}7u^S?OoU?s{HmWz)SVt@j>w2( z_#uCScir=OzrO5`;XMq<7h&%S_krTKFMi#6sOW<4fYzt5PQuFU*5sRE$`7k0U&d@r z9jSK^W%1$BzuZuB@s{istlsaJ`x@`gaPd%*4RrBHDcJBpi}eIGh(v`Tuq2YSNPo8tTfD}dyM;@$klXs+9c)q$1YrH?}r#0)OSz# ztr>a5y{*LUmU>iyGW-a*aTPBOyro=PZiVI@0d{Zmm&jc5`=QLfX|&s<(n==w^*g4& z-;G@*!?bz-a1ZUgz4xJXQJ%Jd0WINk_4T$1?~Fc*TtGmD>))UL;vTtx$nZWn`nk*_ zn3DXtzjwWF(7j4|ea_ZzTRcWU|4Sm#26pon)^M6DJ@^qVw_IZ(jocQT1;htwbTjb% z{6|aBxOBYhcv@|k!0RaY$9uD;5RdFG!OJhZqr_K!b-9^6WsmV0?yb}e>#2BO`rf7v zM&We*I|cpYn*LYRtNWw+=#RR!nLO>yFwP+S0Q?3G!2E<@PC4{rAL;-d(14h{e%`&^ z`#tKKlb0n2jIoAYiUEupV1$jsNaKjWdwbK;R@;&XWb202xgK1F7%_5f6#;#@EDgD= zfB~%%%ZC~nz+~hTJW8hFvexXT!H3h_Co0Sr=nv0+84;GZx|q{P z-W<6Bv=}yw8OCn{!=9F?Nf)m5wA2_`PxpOW*Otc){+AjtXbKOB%JS@p=e5!E$vw(`r(%3sgX8u{Dn55>I^!EWXk3BiL_M;=u^I%0d=g@}~Opgz_E~Z^wO!pSv<=h&u)$hB7o1vIpLH_X*;Wp7GeL z5Z|TeW;Nu@*lS<(%ZayD@owxTDECD!mHUW{_#u0CX*IaR_wIAQfsbfcf6nx0oM-gL z4cX9df$s@tOps8ZrvtOe*>&-dZaOtnr{@dgT6nP=fgeUdMgCCw*Sv+j#3-(8|lWU)?{T zYiJ2#UISqL_DC9qk>o$1Rbsg=ZS1EgPbq=4$_MTaNi0|R?IucZR!&#Vu+VnBPww0A z#gjNCLm#Br;G+llsP5x8*n~cHf2i;iF=J*Dz)w$%8c#%@-8x?lQe)=|C;KCB)R^DM zya%;lF9NUq-sli5bJ+r$G7-_sM;_)GB8|pKW!a58!?)QK$VUI-r zIAb=~O~&K*n+c`D4=pfGb@<2`Ax`c_%=Q{*ZcavzEggD~Vq-df8|MK$a0^m3)JkAH z*09-(Mmxv)p{|-+LCE^pJ^Ew)$i_F=eKTSQ?8~y=zcD!`c37?pZL3gb?9_zjc<9-C zyGzMk1Xjyynn+qgzKPbz*Xm2Cr$}hl?(G4 z@PA(syxsaCvCh2hOi%lLja-3bT@vjs;7}d54KIO?4)`>i>?*OrUQ<d=df_;!&F*h;dPT)tFzQtO!XGc z+E80+snc&&*$dd*?eO!f7aTJ$?wg%We4sKSw@uFh6huR_ZzO?3{nRLNyWGp;!5m#NVDWwrId zhyXQP`2&QOn?SC4z(r}ScWGQ}s5ezuqBX$O>TL~mWtK_8qDeLbkW{@?5^>N>4p1@{ zsCX%D(j-lhEQ1%(+E}xf%E^sOn5zmiv*)HJss!MxX~{Zo%a-9DtvHs&*fNwkSv;Jr zw6RldIMQ%(?35{hG06;hP13YUU_JlTS2eS$O|sX?X-JZ%D{5@~(`YN31ju8<&6CH5 zg_{Xzs+5sZPD44Ch4b_@^iW=Bs|6vU%~kf0zB~2X$C{%FMhZOrtI{n^(4QKuw4uBl z;;*-x$}F0xrp894GDib!4FJwFHEA_Q%ZHkfXB4{4YSA23wP3Z}k*TZWzYjJ?1frEL zb6D!3h^D^&oOjEGrFB&fhsEl|B@1k`vFTXzbNCu!te0c(tkhJaAB(C(ka_hMGbCw_ zRzi5+kr$32_ZpL(4T$>hx5~=QQkgb;{b+4`md!q1A-4OZNMaZ_qDFH@NUMu3_cq0t=Ss;{ZCT7oB_V}P)t2N{;5M-PNi?|_;>)WE`O3H=>7)+T}bTcF590K27f(Jug72PK=xjazj)6u{d-zg?^p2`UZ(d({2hY7Tky9RUw(Q`Z`rmt zydAeA^PRk%^}A;6j(Jz9LB?p4w9qPRy`|1UIn~p+LS#Be zAsdUS7KY7gu5#*%(U!(1R8dq~y#=?J#R&I{PCrRdFo$)hNm~)Cf?`-|v~t)fL-@uY zbKfKYQ(0=O(S_`^mrh+%wN=)t+J;)qR98{2YE4c3m8GUSE0kl>B(tU5)KKHl8cj6~ z7?RZ2`Ubn*R!7YPPK}njdNKEA)!(VJ1HIe+^XR9cmV6ORMDhM}6gZp{iaxA?Rb3Uw zM!kCIg!G^SX9fvOB>N23%IZ(nQUsxC||xZYCH$F&LS_s(LbY`~0Ww5_t1 z+qB>?4XQEa_wMNz%s|!{D%6i!l@-FTf&XRbW)nyg4dOR!kRi zn}FzVDfmJ|;N!5-lz|9iCI!w;luLs+y06_z?B zzJ%yat*HzK7Jd|!$Y@n#vQ{*}{m|enSnA76c8k_G($ySG9lRyXon|e`T2WI~Ur9uO zH@qBc4Y*+3T;D$go%i$s!Axhst*VEEf!S_seYDm;A5lEZXl82dH5O_WMCe!sGz81O zX@F;Be8Q0aO4CDs>r~%#R9a`ULZsp^z%r=53p&3-`%gGWud{F18t}{9H>w2#{IoG9 zC=JvQbyMHP0dN9~0;%VLlLLPbc5+;LPLj&a&P&1&w3v1OxXuFq#$ttcBNUqIRQ)om z1AdK6b1)6HRrU57ct2)sNrTM+Bi(0y`Ubt&UVYM6>2W!^lZ*+aU+t|n>m*ZYy{)DJ zF1c7ynoT(0P+WA_XPrr5Ei7%79g;RUp$6!neygJnegge4;H;(R#1ClT9HtF$-Qg6| zCqhdZvvRL;Hh@4dJ<)3a)+wd(tWH4~=#8x>%H>r}4G1LI>OdP83H{82W7$8T0oqnW z$HyjK9J(0jJcz;7T@8V!VccVA!s3=e^F_jjr>Xa+m4b@J?7r5t80rBOf+y%2(cnZg z6gpa`3gfb(4avdga`F=O(Sn;roD;m{t`PB4&>yTkJbC)qaO$aH1Fpaceozx8X?;pO zmad3WvQuA<*te`)>M+tmo48UjkV!CE$2;H=!l7aZ7>RVyQ^i9ddT8#Yqpi1e`q)}} zQbBxPa_|&-UYcVu-0WbWpEFQ7al!C4ycA6m6jD^N@1(Hf--8RNCbOAvoEQGE7`cTX<2hzd_rPU@|={^w7Kc?GBUHC&(6us z%b#Dcpip^*O$nbGF)ea>)Qr%O(X$tg86P;gXi_v(BKDcv{m6{M@4i0s=l=RL(JEFm z2;y0-7xf|i*CV!|{&;`=sV3A%ppJkLKLO`Z573WUMwFl))L)Or+m;ad>ifi8M?Ji+ zs-6x+eMWyha4+h!`|ClQQBUr#^X;`-dVl@dR@AdmH`pIQd<*-p$AMn0q`y9?3w5M6 zoS#W&P_K5@@aj3jL;S$`nLQ5m7o9aEG#sd}8c_cU^|t={ltR?k_t#_L!)tH!*QfNL z{&s(TDt3!&d;9CtE};Hle?9UN>IeJl(@Edq{`w3b)W7Pl$KOHy5B>G0S^wMq`g6^w z|FOUR%vsd`uD?F>O#iWQ6sujp5&7$jRRY!)+9kd2GDxX8draY46le@JZ?><9=8asaK&+{GT-N!^Udi4|qiWk9O$ST^=*q zbM5DiFZd|eSL2u;_dZKO_p<#pH3JkgL?cN1gDYUsC@G$Nc;c z1O9)-v4-#e#LFN8z>j}0>Yz*X;gV7JH}3xz)Cmv#6?l-N)Iqbm8#% zuA9l9|3|L}0*>$p^pihHTmV<<(WtXM#(}__g=5NNgmFF9s6(HmJ(AAy0p8M{ z`pEmyUh2g-CcUeS{>{eq;l}l9)cJv&IlcmII3_(`8}(&+9jSf2zZTSq59SH!|7Fzq zfn21{SOq_?8U1b4s|xLe{;fv+zZvb{G3xEc^}VPQKIAR%sE_>gD3xXge!!FTxj=vA zI>v!~t{CE61wExklL+;Z4zo1V3tTFog*|>hyxc*N@{hy8c|7p}O8FjRi56%m` ze>Lhy4SvDS3H<-dxDLIR`emaIJmm9=-v1ctA3vY#_m6oL$D|MApYX?E9LfiLCI7}a z=jTt1_G66e7?+ga7(?G&U=QT}Fys0`<9a0OgpWUR{W;_Me>dv!sFVNDNx4paV|(Bw z^$ep9eUrLV|8Sl9HfDiw9rwufMX2-hC!=oBtLmCjUyM51D$ptSQ~&q@ol*m20pZh{M?i4`f*2Kku@a!p^~g(f3xr$UqSG7!=Wogo(fHmLr^a? zJqbN!B+XZ$#%e7zGb=YWGb2ZZX2s1x|5*vreHQvhB{d;A6;Z%Y1_@OtdY_k+0a!Un z&!b?6DAHA^9xDvZO`V6fveYDc@x*_AW;O^Yls|Eai7GB9B{ex0e{w){QsQhC9|sEK z6Ef$i_{?k-pPQ4bumV6VQYFNtr%N$K%5apq2`MTeJqdIrWTvBeLT1(iG|Wyf=$U)sX~a9Q}jx> zO4VDWX3SQp8437i0lCzS+<0J+nw^xBo0*-YQgh;fS89RWpO!Z-OX(P6k)+Zy6V$x8 z>^UF}GRaf(G86I5%SoD)nvtAo9HytvOU=bGpv=olR~evcwv<^aBa>15>{I|C)sQsq z;~&z;2!9s1#^^AS(*Gpre-iaSXv}M=`XA{-PGsmOvh_cJkeicQn544ua#B#Bo=13j zVAb<^KrS2NhwQVH;u28^7?K|cm36WqJ1I9WJ40pbnhsGg>y$0Z1~wzEA#BP?$WDTC z<4-2kCWm7KijVj;{^TlM>vA&lcseT`9p~i5tK5|A%=s!WCtc;or2`OJrzS5@^TCr` zXgB^+xcHNmnInIIKWajdE|mhIt1u}$bG9m+&mqzG!3tDX^|A^!f~pcBli<=r>(k6q z#Ju!0N@+Fk;OaE5Qp>Cyt!Z-*MPrPFF__Y-iqVq0Vg80+#f*?e(-V9QJq+v$$7MCP zdSo)Z5H3SPl)12nf_=zYIV`ny1Xi#nry?7$P}7k_?9UmPcmU0Mi)AqZKSYX=<-#%@ zz1Jg8!#4dvAv=P#RY<4|zyc{i6XJA;3D%h{zYz`@&=k1@#Osh}8vX02$$(~hXkBmD zClKRcHUk*=`WUo zc7wi{`Cw``2_aL&ym$$*olxW`&5WyBD=hUP%y2`i5b8u=mqAeiX8K#AHY<=_9wHNm z#@S=`SaV3A3JfGhfkU1fYaSy1y_A<1t#?jz^bp<9d#NEtdmM3s%JuS+zp2b3QUy`Y z)H{2K`4XC8qFv9M3O*^Oy1Is1dnHiIv-ZW-jF`I~t9szPGsE&5mvk=w#sxh^qF+e0 zmf5WJ7;T7uf-6i@EdmOrWkA3gI_e*|MjWtj;5w7z7!!nN3!zH4*!G87+;JI%0SkDPrdWz96f}p2Ra2q!$Ld075Y^L{i#59qsWKZZ=ED|)0xxZ zUIZ#{82;rr9?bV(bdo=%mc9(o_^|P4i|rQ1?TFFp@pYUPW=CuD8Za;_O^DVyyI>Z; ztm(Ig;v~~ZeG1`>W;z>7j%k2W7_O0)o|=;j9uLS`MQa#9apr0S(;)@p{(3Fi3j<4e zK^bcrVD$Qu;PrB$@3gMb`bjhw{|@e&(T|s;^PK|%_5-${?+$<$b$&>@k}%^ZXF65r zuWa#v3WC;wAV6Oq!T+HWCe3lGp~0fR{tn8dPaXpX=s-Yvuo)&P9qth1kLbKUfJ5o# z@g$I+lo*#ArxH2o=zBw)Hj7#Wd*GCD7_H9m`Y=9#5AD>w0A?V#tw;LMqwMocWynL=kWkY<+=`*8IDO8i zvDSx%=2&V&W<$Tdo->N1#=yX(RgOxnUR)3}_EDH8fGuOq_>bK*^#hKW4kt<`JJM^) zQejeM_?l{~P$D0w%4{{ZI#pE#E3aok1||u~_hx%pxsDC&qzzkK^eh3+s%Gr0B5a@o z%;bFJye2CNf93->`W3Z~ybIYPzqDXPiI_?F;n z$F~h%#GEJZ$M-nCr|`XqFMi`b4DW*r8-Z^yzPL9m4c~lxOYwE!yBgn3`0mE{Q+)ph z-+#atG4!xMtJo=C_y*!T8Q&y)bMZyLQzW=6Tr(s{pw6XZk#J3pV7JSk7w0-#g zfbT!zdkx=S6&pDWU&P`g(KZq=BhC2M;@gPtN_;_YByf&Af$x98_Y%H{-zkeeHp4L7 zk#SmTwbY5>Z$KVaYzyXOJq2v5Th@04+YQQ)2UMxd(A722`Gui?OHd164-;DIz%ps~c=w#Q--Tmq08m&PTdk?e3OM!L=<`7D*s#gX zlG4gjPo4_$DitDdRFzl33#zl!f@CwdK3c8VjHC-$Ghkyc0O&~Pz8WoD<||}Yv5m=Q z#YPXaabYTakQ#18(A!O=3C1?3bYT9Q;Iis$4jU|~X0F2)yE*}j^&7TZ00y)xAt#j{ zKtq|M0Xo&Ufvyh?qc?rbL`*Z5E)kK=gXzwLDCfZp<6v5t^I(eeAl!K{)p-zs?R(ge zCvN3ZTLTnblGp>zVxKH+J+vJgSTKtE+nZ|WQ;SF5cQpqYa4cJ)Mg~wQ0)4}JIS(bT zhexe*p3<35H&pzHQg$ye6`He2S0j%#b-GF}1J#e~jzmzgC)Ax_yhW;!4 z6cJG0dFt@PJ(Xj2#FmE#+Nn6*zF^k>^+oI}AnSA$&>Qr%AHYBCgK)0OVKyqbKL|UX zVczSWykGUPFT6U6U5-ZuBatGG; zSZkQj@dIs4rPwW}68dkFJA?|0Zm1vJ6YJdY>0~dkbCPBB3^g}ck85OH|9RaJ!sbIz zDNAOZ-CBKRgF|S{b*}jPR+(4{m5KX=-7d5)12E+tSgfoY9zwsIBn~h!9NyxT=zeBZ z8FyL0>WIzdl0vsCP&k!hV}!@xx3e;k*@?1s7W0%4#+b}9ryUoa!j2=mCEA`>tzvsf7LNyljB z!q|-QFO!)*d17+!_uHm-;)(XnJY{^I!C&M96#tHT=y#({qSL-`S@p;z*~L$kce&B(|7#;^?{*V2{!w(x~hswhZbBmL7OroYPuH3rL~rT5F>U})`eh0 zU0G-dFHO_p%r*qTa%2rt&kMFX>{RD=Nog>35^v8PmpdsnN56w7=E0Mwv(=dT0fq5& zPJ>mOS5=0ULO(dYAGw^1O}W|F@N0GGaROBHtn^0f5%Q$Jj6g;erY38ZslO|9TLov2qF?jD1C9J(MzXNWnKyQ6=WYj=PVTXB+0302F8dVnxh}^Qb`iLoR@htNa#dkQaQTJv zhpQ`R64zlc!^(Ap8jUhgjX^n4jYFBNCZfzzAt=o-z{<5o0ae#V6^?Sfnu>CVia>c- zO-Fe`0e9C^Y8J}tDjwx+m4FQ|ZYmL_pGrm@lvfn8>2AN^ zRZGf!sKTt~9;mD+BNejh?pgRLE9Gv+zD?!cq!7Px?@)-exbIZRvAZ8qjVQlIoZ)7QHF6Jg-5hP*4-mky@E1BwWG{euc9ne z9VpG*3*u49jJ-#l+JLe{b)wv=HlaL(x56opBkB#5->R)BFQ_+BUQ=(Oyscns2fN`N za%!-T+J!Pe?M4}_-bERy_CluV)SSU-)SSU3$`z%9yNw1fS8gbKxKn8GQRRX1G=4%tmz9nwu*9nzyT;4FJ5hI}V5&lArf_lTjF2Ql>WCVa19GHM`Q9FJp5FZ`+^ z%6wAfRV?kBq&Bj3E! zIezh^6vnT24Y`4*p)h{EJLmy=3unBKktg2g$P@2hgfr`i?W049?V~}&_R(-+`)E8l z|7aF*ezb@$(eH`#qvwd{P_Z*Zvxw)=LgF@bA8{LcTqL`R zeGNU$zJ^|}6O8dl?o__`^i6hLsZXuo^-h)=ny1j`H4NJLKL&#B7yo~^y7T=L?Gv*CxY>s9rZ*6=c6a0IUhYy ztfrw{qkzQ|TU0d4-JFk}=uxpKkEuA6-*HxY;u>eACvK}GY!UQTX(%4z4CajU zWHe`-Cv(*jlqH;Ho-F75^5kaKgmRl&hH@`wmM6dE%<|+p&MZ$}=A826U9}dQAj3JE z_(gLz@k``9;+MvGWYBDK+pn11_7iLG*F`Pz+eS(G?WCjzfkGS~k~Tk3xBae4o14<+ zjf20nKJWaWeJSWgDP+LY`r0$LEB?NyrT0DO*T0DOrLh~O%%kLjRE9W0b zP4Ew*m*O9)#-fa%m*O9-#-og(hWIB_EBvuJ3uQKS!#@|fQ{`VwFU8+X-SDrbZur;G zWASfP&!JqdVo zOHZ94&!4)$k@D0Xa_p&IaxB1;91HLx#{vQ=i-2g#A|RflCLo;>2`HkK4k#xN1DeUh z0Q|}-%2v*#ZhMFWo+bbe0sE;50mrEc0pAiIw-4p&Ik|d+S9uG{p>nl{SDy~#)u*H6 zDtEop3=`*C|=}V-=?F)f}cQ7M_;Y~QB0tjc+ zM8X*rK{%r_2xn9w;fxZ0W0cGnqxKQbsKWy11mWPx55l=9ciob^?y}!!#AkkHC|f?` zNA5i{j@)zmTi%7|LvYtKS?u?jLiYO%e#Qpn4)Xt*LjvI>F?Ty9?axa4>(c%X+iO1T zQ43&?S|sn%a(Ne?y1-pp6Y+HWJKn2xDD;J=A=v(av={iA%(L1#Vx?WCOtovYhi?BQ zcl9dVH5zXULm5W+qmv1LbOGUyE+$>0>qyt=HH0v_o%fCwyFGdf^Q zYdEq3yEwAkt`l24-vVp{j}hBI8R>zi$$`L5>?@f_nrJh5vRl#UVY9TQAE$3#+Z z$D|Y6F$KhSjG5XyrkdD}5xpI=g?3=fL8YNQO#H{3ApT>1ApT=c5!*2rh%H_(20X{y zLug3_jo?fXBr`=&3~>%BB+fy0&J;n-v;#pcv;%H;Nk!0RQW4ZmZU-G8oKvaxQ&bL=pVva!L$c5FO{4BnXnY{%vj+p#6Yc5FGZ9otH5$8IIJ z$99w3V~>#AV~-R6u|E_4u{X)>ajv9doDaD@ZWJ*e7l!wSsc~tX>BeOd|8XU>X5*~H ze_V%}fpQz|*ti~AuyH3j-;Fy%3pVaN=eu#2Xu-z)qUI~#xoR7KnKR?~yZ9*+6+D8gw%`EHlELG+Y73soRag4L++{P@Y$-uwH{K zaV%ce1o7J^_)^LfCUQ(oNaUEBkVTE1kWXEmP(9c#ufoG491J8a(s-Hc>5&G;k(jMYQ+CzM( z`5_~y^C1zWIwXx$hvbv$5LugqR8s##tknFFX3`tdMS4T_Qs+ZXklv8*NN>nl(i`$K z=?%F^dPA;}(vaI6t&_YtS||CD>Pg|GcTyJVom9@bdy<{nK4}H%b;q4J?jkLd_R(XX z)WdmX(h1sUcif5NGjdhd4wLTD>V~?K(olcOIy8*34o#tT3e6(zq4}gYw1o7AS}ALH za1+PEu~6YysBjE#QX-tQ0_T#zxk|pFTkvhNFX7SLzD>SEzD>SIzJ>XbZ(*V2Rai866&6bk z2}>cb!m?>4!b+$i?uo=d%t1bcwR6r2+s-)%`z}0D?x*y_j*=GlbZIFops>r*<_$f!L8Ny|C^ExdK62gfnA)JUtYI4MKYH~!YXmXQW6>lwKKhH!Q5ctOg{%L`KMd06} zTq5og{r$vx^(_*QU(=y1zX=ZBXv?g+L+8T0ln#2sJZKGyR+e|_DGkrH*mjuv1NDJ#LqS?oPBjlD-^ zvB$_t_87UGvWwip9wWE2$H<-RF>)_^j6BG`A`dGKrARRHCrZ$L1AE5~81x=_m%N%T z(W>d)PYy)Yuzi%ok)qbH$EbF;kJ>?5L>-_Mq7IV} zQ9qIoQK!j=sEg!7)HU)U>JB*&b&niy-^*U`^ecLqF^;$)Q3<+cM6#C|+2r#KGkcj) zN4jP#XJ0ecv#%N32!FVz05elF*4%^a(l*E_BG=Y`NHj z#Z%4bH#(5~i4G-yq7&JBw9p%!O&p?2h=cnfX)m@Vx}A7N%X%|EALP}>wkQ<=vjCVD~_8<Sp7et0>dS^VzbRo83rEX15TN*_(;U?Cr#4_I}bk`vmcseU|jjzCwCu zUuWt5PlOqZ@D$1slwGXwDmI#MVhaf;Rz^x}JK@B35l-w*!in8W2(gDqW9$#4G4>j1 zjPs>5;{qwoI9WBsg_6>^S>z`kq5-{e;*-S5+99r$l8x&i)o}+&b=+Z=?$?Q1oU9q+ zE>gqe?vd*FVWc{K9I=fLCDri}#5P_cSMlYfI$k2B@vX!*UPfH}PGTFskJ!fd5Zm}4 zh;6(?cjGS+XZJho5znuK8}5JMaY6`>6XMx>LMeMskQvhhM>t+1SGN&|1evK54zl-z zqvTb>ckDeuq9_SJv-gBc>^I>i`%N6m9uot|r9|ORVj}sIm`(m97Lq54jpRw6nEK1o^rmG=keS(+NXre z`9wM2F6Rs6yp>v!vYZ@Fk$EkpgZhxNjoe7tO+KXTr#_?{CpS_gnwoNz{7kt)ex}?d zH&R`x1F4?Wfx)j6KAzu3zp3GrTB^ipQ}OOv96QM2)b)g%x{Z)icT!%dN66dM9|<}2 zw7@)14yRrv%+!12bDAr)E6tC*O&dj9nl_8xS6U)DoR%dz_AYzJ)6D2St(p3h)EijPb6p3v&flrGkKEUNZXsDB&$~?-Wq1>lj38o?5knc_c}QTAQB1EmqmrW_!^%;R zv4$(qjDs8n8HZIg%9D(yW}IOZBI7bwotYjg7G)$O?U~VxKV%j#@{qZPk%!E7#u+lV zGtQ8Cj1h*+pBQP+Ji`cT<~2qbGJj!IAq!6=fDeBpAF_NY*(_PPX9?|D1=P~48gd}3 zjvUBZPOZplqeQaSlMh+KfvoSy^Q^O^H0uf}&H9Dhetsx*@_AoU`h0-!{2$rZ^I`1k z`DAM2^I4Sp^VRI@c{?TkyhH|`ZzKHYWzKzGe2M4xauhs&lpKCua&yn$VZYg<$kps% z_Lv>Y9tU4zFWK?zCA)yVWJ^{qyOWxhy@fqy@1}gSWn5<;q|RrbVvpI9CCR?Zah-jG zlFh!&ezSY2X*nL$v>YGyo8!+hm=j2q&u0P9de7V^O{U$*Euc>3+KFwhjEmgmwG%yYYGpK}iq+uSq6Hdp4RT!|ax-le>T zK-=&REAd_P0?ETXiI?W3k%xKtFgZsfHPle`XMlGjP@BT?+&?_@5bKqhf!+ze&ksGD9#c2G<%KQcz=wSu(d%j}RZYw-DAq-ee$X_+5LTIPq6 zxASAk+xgj~WqvXBe10{xV!ng=Fkfc9`RmEs`TI%H{2xfs{8QwrS37%|f0?qIFImn4 z@o5Vrnq4rCJr+b!rUmiru^^3o6=aczUYmGtfmrMUiS`$)m-gZr7VIOQ1&4@Xf!OK- zvDF3Vh#LknxV>N$Ez*J@O5f`pLR%nS!~$7gEXb!8EfD*>pqy|P$hcnMpcXA?q!uk$ zLwXnNpad6m3*;jLSv=|mKTw(rE>M~au8{Txcd1tkdP#es8)aJPO^qt_r5p=2%CRtv zax9GJC@9RJ<`-5{nuRr#W?>WMSSa&*;Xc~8!b6O$6&|G=3-JUA%FB$k7T)2`mKP+S z_<|oNh!=twQ+*+XR_=vxnli5*QvE_Q`Ts%*XQ&ryILo}Sf;@i#zafQkGkN|(H+lZT zLF(-bhe`VjKTzT?{7eqKApX)L|3jeNCA6ZU^v#M!5N6RR&U!_`gj^I(ITpo`pGD#? z73C6Uk?g)GvJ!HUjEkaXLM~cEeim(~E*0&jyowG}UPUL!+oB)H+oChnuA&R%aM4wz zp}b2DFBA?h^x~*l=tG;ca0G46Bln2s!imIlVJtCRm`)5A781jSMbx5&vbJ3)Ih2JC z;=E8Y#S3L0#lrQ(dEq`{yRe&lSa_J&E<8p}@CNU2d`jTUN@}5Gz!%=7P8Pe8_F~CF z6ptgE;z(*#v8+IgGYFx$n7UMKC+)=&ohx2PdW*M^-r@tKw^$-e#ov15h}S%xs+U!du1dMxUiZa<{S9XA-qfACb z*=eQW_!4!a>=){W*^T;dPNDvr3#c1rGiMNU6SczJ%GuVupE_VZNr{`UQsNeGO58Gv z5`T0%F|CWSl5@9QAr+Rp zln#EY4bmwOrgX|>wOC$6>6ABd?3Z_vx^jt=lpmx1mw!)NT7H3)mR}*IG}2fRM2lJ>k?M+g>U@P{uPT~oQ7cwZ&nwoE>I%tTRct1`72D}IR_vi}SA0i{ zTJaNgyW%vn@D(@dJyzVI_gLvqU$HV#6`)M#W}PbcGRIVTm^r4( zlgu$y{=j{Jm3Np|s&eDrzp8QEiBT2Gyi!#pvq)8Kss-g1wFcz@?!Kt{iEnMHI?sK5 zRhPM!uj)GYU{u}aF21U}suN|e+6Zp{Pjb6@7-dl{JCv%$ORtu_N!1w~Db=~;e{~VZ zNOdXsUtLX}S6j*R>P}jl>TcTA>K<~t`iug%tIv_!)sh#emb^gqb=sWjTjX~2FSIs` z{mAphqiAOq2T{8ghmrG(6X~}vmeuRx0$Q8J)s({GEtJCI?Ucge9{P2Qf8b2F_yYBC z@ij_haW8F7jR$Q`%_z=#HBppNO$udHgQq1?;@vhV3n;0YVwR6#%-~o?UrifrNX<^# zkeY7VpPD1IAvHhJ!q=SQ_^P=@Zq#~FCu{wvjkOv_*<+v_#}VXbt;9cTCC^@4#CvPk z(EikJCqHZV2!tO6!g=0XdzoCVy+*Fq-l8Vg-X&M9+2p6SnEbR>Q+us-)Lv^7N2|4k zqt)6@ep970 zJ;QM~bzsQ};sd zb%&@wb>C5c9s_@Id|n{jqW!G9OE{0^@_fClEb1jHULV2p_2qWz^usG13sgG13r788rk`IzC?z zPD2cFZjha^4RwUp&`f9z>p4yv#20PYPiPGi=WIB_QP%Jsacj6F&?J}9aE~w>T`BQK z4@$hzkF!Q&fYMNoqO2P=jUE_eR-A)MzJX8XJj2V>@wZl=xxec2eYX zTH5yz+s5yurO@7Zo;+;4OddAgV#~(6#CEA0XQE|s0YOJga!r74ui z(mFz0+RA>1TczbzY1u$sZ zltP_pDj^*Fs3Ur5lIUnt2dQh47+2GN-rLkeoSTji=cbdCRMQ#qdH4!}iC>MunO;Iz z=E;7SNltcI0PkIfU)@0&M%tG}5Y963@RyZP?#t>3ZJA{KmbFn{%i1|Ymu;cEmdPH5 zWs)0OCULxF5>Hqr@q}hiO0an-Eobv6j@;%TrJ)R=G>5-J+?r#FTeIj-vzh#9b`a0z zcH-GAd$*duC7#V^h-b583YzZ`&llZT4&OpJFZvPAixPoik&B>c&fw zwRuVQmJI)x?OzIJ`xuJ<9mIKs z>_1#_SXxS+ZiS4X6}QRZ75B)`mBXlkD<$W$QgRBzzbCYn60=%aL})8z^}5nZ99GH* zS}AMTmD@?nN{L?$|D)V>m^iHbkvOkBFYRRnt?XsX7H?AB;>+G!0w~`WSyQw~{<(6%-d0cE)hc@fT4m(6%Bp<$zw)kDi3YSvG@#YaURovl*1DY1Y+Xkg zwMu5Wbv?P%x`SM5-9s+59_1Ks{gymw{gImAdXAdkdWo9fDr31-qJpa>D!5wg@aiDW zxx@d=-d9JF($yKHbagQ?UtLEWR<9@Kt7Z4gYS|aJ`XKvVEl)A5K1YeHmZun2U*lY` z`ZoJrEg9|AlF{}BM7&~D?BN>O;khQ7FxSMAqBRAiWsQ|E*T@QM%?iR<(?TlNtRpmE zjBp%pBZg}v8o%aSa&nDW{x#>xpEZ{Rn(V__D>3=C5|dvmp5)p9LR%X|ZmbQZ9atMh zKV4lNLv1+p!sVr$kpq-y3UPQ zt@EK)tQ$qF)=eZ<>msNd>m*XWPGM5E1?lC6^zsXPdD)Ykd|9F#FH4^NiS>l`awws_oFZ+6=P#E^ z%jMLZmph2V%Mwp}S)T8Bc|W=I@*#5R<&)&n%cnS|UOvY$^|Iv7UcO2Fd0C>PZL-d7 z^W^wy(>T7`LO8zK!s)-YMbUq5lYL5UDO``Vm2*AP*2a}@o5VWWc5wC4wx7Oq+hO|B zZIVrBJ4-LR?IOMCwyRumv|Xn!-FBP4blW|8(XY7Ci+)9(FMB1Fp7SfS=sCZVP0#ri zGb3-WRMKaD#liiGue8!be&skl}YkTx08rjq*5?vSgJ18wi1jM^pB-M*DN-!7T%_G6sC z+GUq1o={*fX9dD_%Dr8lrfHW9^{YPY@rk2s^J);=yc*5X`f4umd9{>RUtPg|U){of zUzJGgt0yV(SH)w0^&)M>t9RMstG$$ahZ}9_6WM#?jg#mgkAT5jf|FTgMIJ_8KgQ{srBD1f_VU_J_VU_ca_P0B(wBH>ubn0b zUX$lvUb`W^+#>$3^>U=Fccm28d$E`GBdGuDWtY_YXi~I3p5+s_2!DM(;jgbD&5=8mwnFbza`}Lrv&m@mQVae?v=eF8)UD@22b*EgY1IXAhd4?B~}|^c<%<; z(Y+yySZ$D}#x_XAdxM?0ZD^vrHnb3{4eQD64cjTN4SUG*4L!6N8@{7u+i;3@a)a3X z5#S?^ZxH`ZH*&jE=ABM&_SiX$cy^8;w>tyLhfdkc*BQgUI%QW$r|c@}EGN%9m$R=< ziLQ4_biMOiT87T=Ip=o%Nc+%vnjTcA%(k7km8KX5fo0g}$<^FOZ_d0M{b(6B%2TBq z6KNSXmeVq9tl=tqVyo{)UEfk(T@t(KI!8%$T_X3ou2V)`x5>AzUh-{| z7iF}`k22a6NEvMkBi}Z~l5d;RXjeBCk$ao0^f@;*k#Cz?$hS@F$hS?MGUE6=vE3x=)=l@Qv76;NvdxkO*et8y5h-lBS*+7$Ge^y4(e2GG z)a}iiS&qn(HnPgzEIVm8%Z#&Gc4=;w8E5ku@?rB;YSCtitG|w48CB|a$@jf3`M%c! z$&J_JsjIKcuD{pK=a<)e$c@*JDh=hgdW(6gQzoGBgw0+;t6b(*z(qL@@i`n$M{x>#&7MS z{%qYx?rl9nE!z4WwP>qEw6@+N58w2rC-bI89=;h)9=;hvje0YiJbcr^Ir`0R^6<@L z)T=jtBq!gzK~8SNBL*lXzrQV%GxZ3VX`B&Cw-rz~wv|$gwl$IJZ4%|!wwrc!+dh^f z-jMdP4%&8F+Mk#9m!#Z1a=B;er^;Qw@ddo~szEwlL zdP}_Aw`A4u)-hVAx6W{Uy(Q!8t()Z4hz|&7yBpzb_a}tyvL9)??DW_^ix_Ut=a}7I zNyyuqSdREa?&^@ccFSGe#CE$p6TMyX9ov7ByMC6tZW5pE_b9u!hl*ssB80aC3E}N1 z;{SFs;k=zeIB!c1>uuQ!`nK!^eS1A2_(5{Gx<~GkdFpK$S#SS9F1;0J9tGp%4%Bjcb3zVzq6N?{GI)@x(hGzMCr$; zT6Tq~Jd_es-4#P$ahK#5c4afau&bEy)m^3Z7kvy+G>!d-BBedlCbAPxj)zmrWb; zUJ0e}o|V?)J$c6YJ=quZUI*>!dz(2T-rLEs@Sf~@fA1K1{@%Cb`Fp3x?e{K{+wa{X zx8M7PR&=i?dA@fTZRuWrTG72h92a}TI797~y;6QP#Bi^S$GsiIaBmk!`d(R0@0BMF z_ewTouVh2^eot)o{zPp38sy$fr22jFqTlyW?l|@)ocH|*=Y5S9-T;O?aBLMUElBI9Q6Jc_Vxa5_VvERb>Ejg2JauDmcDtvN z1+uJ4-oGwA%HH^WViouK(MIhHBD8(U@ZDA2AG+6NL9{J@LQKJX=0AB-YaAH)*c2gw{kexDH92Sw!42X)kq z4>r>#e<06Fd~lS!`rrh4^}%W3(h+HYMcUsZKf5J{)-4`#x2)W|W#!%-LQJ|vi@IgK z++9lQx*Lg4x9k$^-b{SDWxsv5?6>b0pS=47HLCl2+E~Bu*kkv3_Sk)k7Q6cw_WPmq z`=LDP|DhlG;CG5GKMY~Z598VLLx~oC=pYpz%C5){yGX@{yD7~Ne#s_x)zV+`opL+26(9_sf$_`;QXxeu>lWmo?-5 zo79l~cLe4=O5r0{Qtfwi zNEyD!jA$$Ab%|J;e%e}`9Y2RIT*}) z4~CLU{x-HhDBjmW@iPyWvzLQbY2PaCCEj>&v$S6(?Zrz!D89tOpQQa+X)nIS!MlWy z!9n<|*!~ld)F&aN=o5(>d?J3!Clc%Xq?-4BQpdjh+ok_M6grHs=aiMjPmO zHn!&{rJ=k)8{2b-*7Z|=TGvm-Q~fl8*7ehLdj6l<>2G}6%=zxqHu@W%cG2JXbO-0Y zPY-d{`}7!Ry{FEQmQPQSmQSyc_D^q8nxEb!U56whaY$C>hh)#&p)k^TD2g;5N+ykm zWL17h-sN(rg_Is@XZh46LOvuKd*}#tJi+mqq7**!Bh1gj3G=CIyz4WG z^nNDZ?`L(q_p`0U=QD{hKJ`DOjbyk!lNj=60`oJ8X?%8tFb}&D=2L%W%flks!!iaB z&mx?|BFzB6#qkQ#et0W;IV`KW0E|E!OO)oY>_7h;FKxh&E_t!d=R*nMbK%M7qNSh9 zeENAL@&8WIKUBJhvwB_EC)B>W@C2>*yY z8F56OGddzqqa68#lKMjCj(`b-_J!nPz7XsBg;>`wvWfE-GNQkb9cW(^leYoWrM=AE zUv!ejFJvryu~XVhw)cxY#33L-T8dTq;xx~Eah?#qxK4V%xJ!DEdXwIxBS`PjK+=0u z_D3C+HS*D1j+dj2^hS=#Uge`(>5Uxi;Yc|up7~LUv>ZK8&-~~WdL~D2bL<@L<=FXh zsM1hobL@Os!nNL))f_=zHgg1h*+Kv0%Pky1U+$xS@?{VG_AifcG<|uJqv^|^IGVov znWO2;%N$K#-sEWd@)vrN$MAS2N^g#=W8oZG$CBw!9?PO9d8~w<6_B4_ zm6D%dSt;v)7kJlKt#a3Pxoap}nWpO;5vN#?^tvD`E zCI*xd+VN~cJ1&}hyou0`ZzZ(j@+{l&qr~C3YXy?~58-Bfly7BcIfg?|feZ83)63{5n#Lj;$ zdmg?%C2%ehpRaEb&I!pPosj)SC!z`AL>e(UQAh|UWUuUr_4JocY^HXdkmt@${6y_K zafaG;;x<l-Vz>zftSu5WfK4dp><*Eh$gUEj!C7ryzKI`+*i z>ex4Tsa+@KEj=eEQoByhqIR83pVkV+&j74w<3ukSOz=`%ou$$~odYC5CwC1pD2c7g93|zD&$_UP;V% z-b}l?Q}SN!6uY`p?CMU5G~FdWFzOdd-r+7cK3y}gazLrhP$sKhP%H>+3yw}?%u-I-vjhe z^R)c>68Zd*#07q|5B2aP@h$)8KvLNQZH$^Fg#6KRfjp1cessA&UQK>}BpF$IyjCE; zE0FgK6`eUSCw0h6Y zg6+GM;-1?Cr(_e|BkgsM~% z-n*DKdGE2b$$L-dzU)f?E{}9&Ii6G+&(40iX}gAKlyp!NvVHE>R;ep54KV>4@%C= zgOW4z;K9`PgGaFK9z2~ofADPT{J}Bm{6WdTdhm0!$p_`E!Gki2J}9H;gOW4z;4{?Z zgD+B(4@sWPLwnLbA6k^{jq9Pb&xe-KJ|9|1`+VqP+UG+XX`c_>!jbc#AJR%6+Da>Z z=;yT3hhE^kyt$E9x_M7p>1MtKDBFApXWq?6a^~H924~*Q!<>0HUqBz)=F2(rZoYvt z@8+B7$=Uop&b*s%&lcmli8Jr!t@NR7ewx0Whvmtf4|mbG^YEVZ?L7Qe`p_Oek{+Ii zPp2pC;g$6BJUmQ4&%+nehxYK5^z%G?Bjc(M|A5|}hd0xo_V82mr#<{zdVU^$iT<=L zUG%4InMeQ6mN(P?v*kegf3_S?|Ie0X^rvk(i~gT2E9w8)az6b(TP~$7(l{fyFXd5lroEl+0X2U~u@SnZbQ8LQp$B4f2bZe#}Ik9X&@*M7WrHjL{5 ze4fmY4`tr(k5A@PWqy2Gwg%U;`82j4ugk`8y_lK6Ki-&4;Cc_AGxOt}**aXGXKwJ; zCguij-ILFp*?J(KIkWX>K67U4>C6`1I>KkpY`rAA0N1baxoum&n_Y@y)Jn~!G_BN!@<0`o{+vHsQw%uvl+g``(p0GB2KZt!{+X?I= z+fFCuZQ>KyHq0?(+xf(~?JB`0nJwFH@VA%<#o>k ziGOT< zV*zK79s96{?szk=d&2JVeKC37aTtT!GV;t2fc2)TW91G#-vvN|8#NS+^+bNY{N zCC`t_c=A{iIo}I?Cd(d^G4`?j$=hQ~sn5sOQJ;@p&9-|?JYA2;3gNNm$?fCw$nE2M zQ>%|3NUc6D`8Io@cj3Ft)Q`(d{rCoAd;AjG)#F!F-p6kg47Uh|djx~5dmn#-?ee(n zXm(1T$xg}9+PN>~-6^xo&SjK$=LNj(g`S4*S5T`vSj0D-5D1SH{=-W+0Z{25o7i^|`fMlxrtXgn%z1rl z7WD@Jd|R~dP~SNg5n!5Tfua<&o)olYZ~q8J0aNhY^MNsvkO*Ta8XhqtND|iuIKZY(TIS!#?DX^R2UcP|C z{0ltwO{iJF5-;{+U7f4J3-HE75b_KuhI@wxN6by+S!&j-8Zb5F88wQ-4%8S9p%b>S zD-)~Tw=BzXxR0%WJu;71_u?Ix=6{13HLF({@|GXeti)@(2xR#o%s?LoS&U%eu2FLr z`2mN3Id`y6?&|h6>+M}VzUEw8v%uG^8Xp*^I`%d-O45B$V=)KrYz;@MjkC)03kfv=QIs zZ;G_hYEW@?n4}J_I2T3b1Nc9$4bFC?o*&t0Ek+v=9{UPJL7UUYEtb+s@MGHCz(~7? z->mE$0b)rf#_*~a=?UZ~t;0bBfV;_|fr&U=gLiWY7T7dk_V=UB#%!bILyzINcuAqj z%t?W-kd*JI;~<@1I&I7r{|}LXMYQ0+MTjTFscQE?9ilcK{aZH)`?)oCwhJF z$?=SpixjNUF~hBx;C(3I8NC3nd>yybH)qDYB{X{da2R)ZxFysv7 zI$m-dx*6op`HK{>aKoW_Wv|o*%Z&7lQOkBF86`}Qi$+K#Md+2#iJnuG^@deb4D*g$ zn}(IAv%0@PoAz=MX;^|3u-E>p;>2t6*-j z82>lUIS-q+GF!~hD&NnH_m{DPm{9{5x1=`KqWcbIH`K|e!;G(s-c^OV>tBB-)WfLd zM)kLN$3eI&uU35^6Ru~f;KX(A$l)Lx=o|{@YZbTZBcYYhV029e&f8N4Rk0<6Q zw0qDG#o!uC zk7J$Dd?c6s{WtjJSjWCIGSJI)32M4bjnWVIXr}K#+w_09vS`1sxytFs+4Iv5GQ)mf z+9FTO_FT4LFZ2PB$$Bodtu1rWeqoBuQFkNKFEKO9TWCq!S*DVU)Qw!^)7>Soyj0+Q z!CiPRs-L@^?7zc(Ye(c|k^w4Dc1Fkt&;auYM6*0Klm6JW6yC< z34J-V7c`*T3;&^1;JXsJ!u++6HTVVd&+v-!IR!AKa|&SK1rfCLlVH_E%(gjbW9S8@ zRQAH>oLtS@P(vw<^+r;t7F-Az(}HLbdf#0cTD4)V>jpX7=rRzMPTaS_ZxCga;Ot2a z(C_66VB8EFdSy&&LvKGUm>rX&DCELje5WgsaAbq*rc~aIPpb_j1+^hk#MFleH{d0s z=3Xtup%+_xyP>@{^vb)CSpz&WCQv#D!+OB*t(*KxDGqTvjzcdz^g>p$1bz;^*z*(N zS+rkR0BL^QI;!$oS(Etf74TqBjTMMn5|KKzVb&zFB%;Pl&A_U0X)%skSLRj@emz!! zyp9%mUN_vgd{D;y$e!&CQh76Bq?J!1JTM#mfKNTk00ylrAXQtL_rpHkiwk+iI2JS} zt!!E_#_V@!5r@tW4+4iHaOw@=sR1aSLvXI`kiUWY`*HCcQn~~Tea+-BDJgzKsn8Vs zN;tMU@Z+q7n)lWM&u&F-$3@8=tT*CE-cN0AcnWv!Q)lmP9Lg&1X$2QcfM>Zi?<^xs zHfUhP5F9Pcu4WuDay2w(s99%!r4%POWB$T32TUQ)s99zI#al36L`_45AtfoO`K_rL z2{q4~8b=5)&zTy&d7K3`&zPD%yN^Q6)2QjHWFxMR{^1W#85q8Bm0cGwTT#})<*=in z=cQWD0%P@Dd5gxgdVGc0AnIs8UCr49Uq5c@sAtqDekA+MwwD{=1RXr~t43r2IP)3J zPi1fLgPnHe^c+8gar^{7A}|G7O}`B=jD3ePI$%kechh+r%f1gb4rSfU;bH8qj zI%M}Q{tEcHB*zb796z^dEd49-%4if&=cs;&i~#sw4Wep{dZ{o*y=2Fz3A>#C!yjI< zV^q*;>wgF8d5bcfRKRZ=v#q^FRqo6xhaV3vzM!QL7$?Qg&AsNzmx!|jt@fJ=)>sY= zWaUP1_&Z3tzmqhB;N~~RlH4dNQuGK+6sei;m|wDEZ;-V8HYI6p1VDt$j?nE}w4~Wi zNcvq!`eiMtz*tG^Fb9R=Mq|{l@4)6wsoaWB_7v0ver8{z_{rh1cioPZ>YFt`mA%0a zc0m=4-JvfFjN@l7bFaA;`RN-$CqW5qvC@F5wyN6awRd22b zJqCW}XgqkgeXr?bUDxLHjIr>&2ZEowG(Q64^z4)*=!Wc?8~o7cknDrw*rf0#^iz&D zShu)XGHR^mhXxFHsnKT6ElP@5E zq-f`rGAL06ehly5S$1OcdV>a5L6itqv`>e>^>G5#%QS;0xM;-J2qfS^Vz#b;@a02Fp z6OS|s@h}_!G@hlso@)<7`)(A}>QX0t*~3Ipm{XSa9@)F(g!l0V5A$jKqi7jqbv-$l z%kf`_`Gwch4qtMrYeJ9b&+&ue=fopJYj~Jw>@^tc{)nF*<_`Qb%ls0qb^G%>V4B6o zeu;n7*tX=D1g&V5d-QS3PPHp)Pb=P2FF9)25vLw)s5*XPFU^TZ9(mj;7LkY94fkmM zEIIs$qi8QE9_F?9N6B@XZ*>LpX25juE>n(1DweDa7Goz~pN;uFqsk09arxOM`)Toe zIsnsEpRs0y6W`+Zbfac}f7d6OC8JnKOmElp{Mw-CA$m;m$(pKEiKU zr7WYbGR9+|>KN~~9z|QT4xe0SR`JeJI^9#sGH2?JP3Nu%pLuN<2Ap>eI|ZL5NPfgO zSh$Nl$(Ecp?3h`Hu|P$xsSWYzk*mbG${v{42FF%eb?1DQ+{+k#B0Oc8Gj;Hoc-Jma z0}s5rrqo@HPw$y5NSer;DZnH$XJSdGn>j;GP9<}u4r{ek=1c;Q%pN(}BU-8j*%qb+ z>3dQ$qq3IJIuT4+=1d)|X}Xy+lvmHN_z$J-YrN(x)AdukMhDC{1x9)tzo7;@sC?#3 z-Cd}eBy)zG>s}dUY=-Dt1K?2V&V$c9c&KQHHD}J$k#mcOxXLnT>ONI#=1hz^+3w)H zwA~{ZatWCkS*zT$TX1DOhGSLMka}nZ|md6TK!; z*4qIXGq%JqAyk`}!mjJ;u0)&qFp)@sF}$|S8PR}RA1(?(syr<_57xmemdc!oXPH#y zOo3Jy=Y2LfWzlnP)l426ajv@#@KWmjgCEc#Vu(tsK2A-}b)33tPL3Ux>u!V>WS3>m z2%m1i2P0MUc3eNbS*ZIt-`h`QV@guaAjW>cx$dV?mQENGoTT3ayp+2C;s@|Zv^~~X zDsv{5%iyV(*70~^enPv4`5p2W_i^CFf2=igrY^#)H0CpB>Zk#=3#giFhT7IeY$zp@j6HMf_HvMQwn3ZJ9IFwzkZw zc{^@Ida~BcnL6@m?;@Y3)U$_k><#_YwfnQsMfe^moFV7h4oMr-KaPvvpH_kS6TtYDaLf;}0MF-f2`k~q=BJxE6Z3;) zvcc8Md027|;e_hJoLf1r*E35<;j@iccRbl=$>JLN+DhRSBK5$E9z%j5<` zj%*AlL^-?n0dV9x|nC4Jm9Gg9_35~+AoydF!%o8mn_X@J%Pyn0&E zj*PznW(Ti;k$6+QLQBP);`uZcZ;IDHsd!V|FH-TQc%5)sBHk3wjH!52Jfnr^N#l`_ zozatlRbx|&p49*OD;+(l{~Vf%D<@mZq9^qm)6o-hu6tZ<(UZbmYBNI{^RXMd>#wJe zLQ4Hp{J?l9(UTaDh51i>az*5`)9YVE&15UIjrd)87|Nn2^?#F&UkIOS{DC%rSc+Mp zY2O$5k$p3b)qeD+Ve|t{YR#)% zZD^ecrYw3=zjgZ26UtkRo-~MOAlXkJ2fUO9ksoqlPh@Kr<5SkXzJ@s!lSEI*x$c!^ z(Ubb0PCt55PtF_gXG>Z1r2ZGRMo(hQ$#w_lrR^TU7)BdD$j@9`xP7;Hi}`EAkib-p zp2T`iMNc^X>$Xr*_&pE+wvE9l z3GMFZcgm~RNEXi(f+w-sfv2IybH_1er7<5p5e;aqRy(O}N56)*)fzpCXEa4Uv=?N_ zwO2{>q~SeNiJmlk71*Z~J&DJ<6KY#~uY_Z(n{M)tb~ z9Q_n@b-ng=3yk%3^ZB%)z!~Nappq6(T-sA@fN^n<#F?YmT0#V2!9~i~y+@$rzRh?o zo>P96<{3{Et{k%xJby#;EHIAe>)hS^Eb^?VGj8SXnxXG98e=$j!HyhtL~@RS^)=j@ zqfQuy2YiJx8TCDQ=F#01Qy=OZ=95PDz)3b071|2wXsd?5)6@mV;gMO{(Vvw1lZrZf zg)fkOVoXlf?!ov@h)I$9GoXHZj=GKkN&cThG#T|hzdH%_zTs6X5T@F5Q;zzYta9uD zpnk8WE-+4Z?pb{)Qg;snv8Um17O!Z%!8Z2dIbVmFI|E;!pXKLHpmDOj4$g7-6>xYq zINYo`6c~%AV*9p1Rpd}n|DmGZ;z{ERsISKXG*aJ|qYjN8i!q~NdyYC`9CeOszD!1a zZ;ld9cI&A$Hr!c?0YBp$U5@OJ9 zFhtGs91m$x=1I7ydCt^u46((HkYUU$M2cT`g_3k%cOyTc`5~;B@$GdubFL(P7LtA+ zlKxgpDlkscOEsRNq{Ut^&Tu?t9Vcm zvov7gR;z)-MY`SRXw2sOjCX>MT)S6(4Gyu6o^hn+P+%;F^||$GEgTj{q|q?8Osn1Z zJu7I8@5~AX?QS2Hx9>zw^QUK(6PH3RXg}Dqz&N=+9I&L;&&7Tk^t`WrR>Lffhy3)* zv%vR#Fvkzp5hq>%eoo8rLm0=8c+4HHTJ#K)Tf?@c-S6l?D~zdx zCC_;34ZiIMttsnW2A*#R&mYk|3ykCWv%KGxT6hjR+z&ZYPIkQyH~fr^t^wNpZq@wM z%>zH^tuwGf32iDcjvwqALaBwHH6R2N(K*%s@XM!i)CptpU_qnG^z?(H6>ee2RUFrK zVFgICnUf+n`k|+c4@y6M=RfD9Xn+(qK#D)pQV5Kb0&DkBYLP;nsxQx_OVeUp}Aver3R&+pCpE|NA+WIb5s zch@?2rbFcvj;nv4qfQt{eTT*~!N;1QBFvRR_CFp9ccq@Z#QE=!&(pG3#=jN^xst}jJ?itDj3s26+FVO>gN zdwI0}%M5IR4tt~KFncVkoQgScM$We*FpfhmNqni!VbIvXXm8*6IbwBoEn#k-@o~Ud zUrMmU!`OnBmd?6xBxm4E#NtfzT)|9rDq48PGg_+x<9Pn0yPKcYdB%^{Z)4zRTw$eH z;0$@jS5QMKPy>&UoK{8+cl}`}-VtVfXU~9n3NV<)gQR#CT#yty=}=%l!+r92ro(f7 z(aKx1%4x9j882u_1;$DG^?)TMDbe=A-DTzS%ZeFaw{j`Z32F+ha|CBb*E(IA7I@}E zoKSVd3%YgiM#0KykAdgkYn}zh@%#ggr`S3{WAE)z)LoOv&7eMVt|BSgAR{;LP_x^O+9tuAkH^_wND(x@%Pk;gZhn-3iFaH zsS^iru84u1@lX6@J^)V~#M!E;69;iFP3pt}^K5mNVCuv{I%9Lj<{Up;@t=|_b>g7@ zr+HeuAAJw~Ps#NQ{L{f2Q&J}m;v9z5iGw&V&S0DI@BDN+jB_(A%<~pTP8`Hp4XG0c zv8Ob3;vkORrcNBhas1SYgE+RHI&lz3lT#-S;wbRa<-_Lr^NSbrxlc%CLycLHEyi

$CcLqn@l0Q{3W>2IdrY?}_EZ+2WSxkSll)*M1FGT0r{|&N4K;37Y3whS90MqpT;GL#$#dTjvUxG1TWyd}?1x-|Hr!W} zFOfXUAkyi({7t4Wdu`ZVVA^L*sei z$F#YSg*N~)Qz>o`bnH+C}<;bmLcYFx@Q@v$*G)WXuKG`An^{h1Rm!jHtmja zBZg5e$hI*0fhM))RnCb&%Rp^wn6k4Bjh7-jYnty+qr4mt^QBStNy&ctc?a3JjNeR; zGj)wa_>>jCGxbLLu_igoK+biqEIZ54_$6d9P4h`mjpV!mf3}pJWoX=p6@E?cP>V4q z+Z~+iHchsB1Y;O&{5U^zZDCgzjo&a3Q1N8~Q}rxEtY?f`vbVxr!7`%}Qc2-6xTq7o zwoy{}vkV28lCunr-$t8G^GQ&m0cE{qXBiri?UQ;ER6NV1&N38eg*;e)mVvV9Ik)UA zL*s3LmqN>y-c;o*13Aa~#Fw(O42^eTFSX0gG6?}hgygjBgUdK=1k+Tf3#!_b)V!14yn{#+#enPvm?--sTuU-{cJl_*M zsnyO-WF*$~4mE00V^$htEZb102JAYD6w96j)%Y{a7d1TzDxT34_0V3BCD&dhXBirQ zGnKOpjduV$=aibC1Qm~Usk0363M6%wp)rz+n#D-_5H3?X%Rp^s-MrV7va<}0|Lq_f zALBR3jy3Ic&oWTkIs2*h1~)slG{UCTyFW<1+K5Cx)rdr1p`U-{6|+_0EW^weSZm@e zL#!WoT=CXjVo`lLk|K4MLG-5h@q>@SBTs^ou|oHh(3iV?Z-NGNdyx;w^`E@vX5odb z$+DU7P2&uL-v|JYymK?2Q&MLc;yI=EvkZ;@1Jb#(3^SWiLn-7*P;5snh3dHrouq7$ z-1&l%cc{&LJz6mF4mD~(=a8q)G8Aale3oJ6TwtH%EJIAa>@35~x1hZePlBR!yW%WE zjHm1@!_0Tcn#6Cf&^o*H9cq+Uui47ZGR!;#>#@W;)X1lvWm0Du;#S5TC^PrMg>z+< zy?Ft1$yo-x(JJ{4HFB=)khDRaURb|Js{%vW{7N|Hhgg8;J-GOlaBOwcJH%8CflSs&+M`h{jSYn0$=(pXB}(&GX$=v8@Kb z`ceBRzq;DRA#y$1yPx6bsDpC++z)LO44_04k76VBPmW>C`q$JAn6uJ3SURC z7J+e+%1XlFszp-858B?xlIk4}eu5t^2=VP0MruNa68ZTB__-*@kB;WN$opNH8b8N2 zO~TJA!_ct{Vtzh^)y&LGH9rDl^;4PSc;V+1`9WW;s-G36!Hz|2PwD5*tn#7V!Os_S z{1C?R^X94YvwC1~*u13Fy>F{}|AN)o=f#CqK2B?Ofu@dDK6|aaNA0+rR+$O*Az0kZ zztmC)jFaMYji(l^7J2SpJ0@>~1{SyWN>$?_%M*PwWw=jiYg?KNoL zQt`eX^2{iVluNS8=}W-#cQwxf<9NQ^LdwVV+ACPp`z}=+c52Mv&`z-LV@|2(uyPtW zyc`_)?d@10dXyeH&( zSj#0aR<1g%mqVGJT;qcy@)B_L3zQ76-Bx{vJq7d5a_jH~05d}nI#$|XM1IQJz`Db? zPL}KMMxL1;$g-2VbFGX~nuN6u9dA^XJ*+4_RYzK45l-#fLxgQ z!YnK>POeRp%e5-}Y%|JK3)<1I7AdeY6-jL?%lq}JkA5dFQj*$zcwhwbtjw~LkH|@S zJ|yMn_kxyGV63F|Gc*Qiiw#o4)oJp4?nl>-PO$4plS+HJH>;wCvcpzukv+8FDK{y( z4%GalvPa?w@2j0X5_>#S*&}frHkCaRd*_TEW{&fd9vEhi#PPvY_DJl#Ol6P6v9?t9 zNIFKwm7?MY>omPPPGygXkH3|7=`!;&{^#Y|h<`d*V@fJ}B=#DmvPa@bguyoR%l!1T zBEPYPxxvCn_DJkUN@b74{WO(567QE&*(0&%B$Yi9?+{bjBk}${l|2&gyAOA#7Z)$S z-eiWLhIt{(6}b^Lk{Kdn@0#FG4VfX$8=zHYhR6#n^>Z%E-VxSxz$={@(nODt^(U~c zG4@WH8PfE}0#nEgA?HCC7N#^aq;QvV)Y3A2F2pSI1_JLjpBTGuFID<{%eWG-_=ayxLG##JL%@95vQK0k=Vds5HW`-2*V!nbcIc?Z+qv_-- z)WMaGFB=py*~9bNcoH=-qop%LD4oVrmKoC2TRk&m<};SMWIhxmO=N}?U=o=jF^AL5 z4522ck{Qy3rA{g{B!OptU}o`N#~4P%*2VWlUmP{5HLrYeJ~JeSDa#CL8l8S-2<6rO zLkeWpPi6)w^wV_)0+PrVu76y2XyRy-%M5AS4KYuYRNha zHwDX#Mo1-v_lHv_dflR|*Jp+lU`jGWny#9DW{7A&dB4jtLz=FI#{(zSTsj{#CSLS- zmPuuX6ljI0qW7Xx7Cq;dWrj4tLuE?SVf+L?RpPMZT*qO{GDDhf!X9y#Wrhf!uA76A zvdoaCTZFow^C6d+9U>c3_QO$B@*K#y?x$s$Ax+;0yp*Qn_`x>i`+#DNr7}Zexh$U3 za(H5XLc6o?7@i@oUL#pNX9=FvYUiJ7%?zO?HD;wTpBW+=m}O}4T9z5obWg3BA@Pi+ zsE77~EV=e7$qZ@QF_p}argMOON|_+b&%-&OG*y(15P}@2CDaj0Jf*-TC%n;$TP8d~}Ch?GAwkl+XG(DHj42kuV z$_$C6NM(k^{P@8K+;RMoF@a-+?kS-!`^*q(K)06>uIbPDnVW?d+FyR3&J2m?lvHL& zJg3y286qQBE;FR*+u+A%hQv~+p1aVGT4<4}WQH_j21sRwG(iJ8BA?0(Ve98;)tnj9 z^bfdmlFX2pdRb;jb4NNegwpMb%#avQS!PIckE}^vw#*R9tJiF0nIX-uO=pIXPu+J? znIUm2;|`RjAMpaKtCAT~z+93U(){*xW(Yagc1YSFjMzrlqg8=BCbY*7osXd8gb?&$fR)+mftuCOjj}hiK2Xz_?hz;lif96k`)M zu!XTuqLWR0=2blY*Z>q^CW%+Zt-NB?oZQ4+g`9zBl`1d?`xm-Y{kT^N233SU!9-??H_{J*_02B)Sw!8hrSt>D&YF zyCRL04?p(Bz1lwfcy3Dh@MDiz%7-7XqbNVD>Q}sSuA~n?_T;2|`0+Y3<-?D?A}Jq! z+MCe?pRM92@;Rh@`1CXA-8%1wMPi0fc%r><%7-8Kuaplz-ZPR0XwB!<>o8ik@HfD` zj#sX=M9CFR49?K$PckLS~r4?mvcQa=26-bwlJMy!;eSE;EkX4ACR5ics?9+ zQ9qSoOPM#m`BSg7H@^8iur>v6eDkH^TP}Fx$+=$7!<8YAJVq^dWXLI1D?PtIE!?FR z$F#B7%h!B`Rb!032(f#wbo(68y|BxU2i-!ITdew^Y_rEiF29>Jo^JP3+>Rz9???v z6IOcAq}F`0bt0HDZ+!D@)AzF+6Te5~h`H(pv#c`B3?eh)&O=$)OiUhj=Bz?697oBwtC-gwc#6uj}xzf61M<5?!< zjW5s&o*eIur!0ETE%U}V|C;T_(){Q&A){GX*^l?`l5^cp%e?WknyEP!>4(&zc;jP@rM&U6To%t3etJAHKcU^jY6tS_ zRe{B`Q}85KJG0P(-AN09k#=7-VeZ3~{%1LFMNMkVN@Ly|FB(uix6B(q3oHHF&S}Q8 zo}%vCi?Za}tHc{W>yM`5jc@)ptBsn^X~tt+${QcAKvLfLST68^()=4-rsR#MwzYS+ z?40H-S^o+x>^0mBJ6&%)wVkt{5^wyhcVPXqrmugHq)}jpRYoM?v*3+4y^%Y_R_w&3 zbeoS^ho!yov3^qC_*jaRH$LXa4?Z9dDa0FJ=qaHudv827pxeuGKbN1m712Wb%aXJ= zKAuxj-uQS~yA4{Qn?m}ooVu);!oQJ&RoaU?#roHjApaJa# zO?l%Bv}*Ro&w4koPvVV_sh4@kC>g zfpKze@VDd3*x>lu;R#`h7S-L%=k^EyIONHWq!fX}W%_*6Y>keU#>R*Zfc}^Z$nq(weVphg`pfT(@eu1jfm=S>pj3Q9J77 z%t$BZ_ms6*Aoi4HJbN2kOHn`SeJ=K72WZLLtw773{&45NY&=Ds%|Q+0DM`yT{Lfko znCGg&(4V<>d~g6TzXA-xU%^^FyuZ?_lU^xh)+e&;!$$*VC8K5{=`C61tY`5Z`?=6h z1;%Q%a+pFOPd~GWsnssLWhuN>#J{yC)}i8%ql9ZOS)(}Ysi;uw6MnU$Lh%|Y6%~s8 z5~-+Ayq>r1&fTW0*%+;eJ&LKQP`uwsMTO`K)t;PGR4DCLoAu{8ej?vjDk?;Om!`%0 zVOxL6E7zhTSLBmPMTO#inu-d=z6;U-EsPF{ z88#Iaiq~4Hs8GEANkxU?89x;jif8H&6>1%U?2HNxaRI%kpV}~`EGjhXg;zQ%G>d+u zcE_K@FD5;sF$-A-93h=IkfSIw7Rb5YR|-t&8I8hSYLk}RTUl>L%M8cqtb6$l)R(2G z8>m^^@X3{)j|$EDDQYHLc`~QM(jtzss8CC5IxZu8D*qU?L3Au;<*B1Epo^jZEKja zs8Gv((~k;K-eOd!r46-tABgLx2k{q{7J9pAnLaAi@&;7o&S&6k|@dJ2=;Enr!z726v#eAYUnJiw@S{my^vWzP*p%On*;B zg>_1`oo-Z!+RoWe zNmQuihFYUS!e=2W)N(yJ=MFKB3bovd{+)PwXRM!8R4A4r6%~s4Q5z0fKl6-6p{Int z?4v@|fNn3!gFA2GHP@FHvIf8WV>&7n&nc;>P&}v99u;c&K1k=HLM`{8#z%!>DOAs0 z=to+#$W)?2Et}F&A!NQ(gRH)@=>8KF-)a%1kR48s`+=0^a&$w`|tP&L}U@nOYwftu~Dn!n; z9g;SvKaES+qorYf4H&-?j`<-L;CT_3uo8}Je!5Yim}hY;3B3>VbVG;=!9U%HodCH| z-e!FQVn}YYm+_UOV-x0GkCZF<^r2#$XhNQN$DM?nWe`t$+`ocH`pkLCBh9^^FOY%< zp|Qs}^UajPJrgXu0a82#H6oKINFgxJv;7s11Yd|}c-8m>zETQ_GQ|88qYSvqI@%?E zu?&YaWR%vn0T@Tf``%;BO41)FNprq;;90w7bOh`8GZ_){lGY7nmE}i5Qa~$7b=2%f zjsbouetgU&=12LO0?*O7TGU1qVQJIP7d`8BO0M^6eh_`@H9Vb#_rnFbva_;E{}RXr zA4QN$U|iH=fyM(Ir7Z{;-CjLa+Uq0>MA?&V8rthD{TA0w&5!xsiaq05S5Yo^1}ei_ zXZz2GT#IsY5yr`Nw8n$B$nne=Sv>mnBlXH|vpH^{56VLw4H~W?QG@3?I<%a-QKPgG zS~(hRf~0*q$|)Whhi>hNd0RG~_M4A#9tugHholE+Nd?A9I_7ZjQ_;FSXamnPQblNq zdG>uRXDv&!%0Me<9g?F(7)R@~3XP74gx@fG3-&@uVVRu|NFPj)=wU!&F2p z-Y=&jV)0(a=%KZPpIompauj=0QxUOvua}C5#h%GjL@e!5Y~3rzPvrMYMa1aq(;hS4 zkBT?(>g9_3QK^Vnyv9yN#A3ejg5{?C2H1s?kgQNYh43LrVur2y)Yd$Bjovs8t<)FzfT@8d+X ztiC^EK4FKa^BZSIM$KY87J3Cfxf1qKvsRAuldQ}sowoV1s9EcurQ=qu$N{p`~D%ExHe~b;KLrO3oYbXG__W&066_sqLM2G3I2uQxj$F9>Ew! zTOZ(Ot}SFm1ayxW2z=WqFftydqGqw4F=`c}X7LEAr0~81>O^~Bl=b?kSplXbYS#Mr z^rL2?0qlTWDSNV6>(A0rvv`(CMa>Gdg2&ZI%_xhWbIYP;txr47TmOyUV5?Q4X5@S- zQM1-x?aHW`@Tq3KvZz_>f2E^lv5hJF3H=nD>wa1mHETuxHl-EbG|{0%&0>wEqGqvN z77x~V3Qx>WXm^h4W^94HdR1WXm~?_%&$X+aHrQ-!XQ`-3jag~TN6kb77BeZAMa|mU zYK@x3Gn%6A+l#W~+N&gL*0#q~qGoM#fPG3)vv{maMa|+BNGfU;%SFv*SsQnMQ;M2V z+j=Ke7By?zhjdul-png(42Cq_s2R1Lv!9ZvSsQkxwVkCBJ_}K^ws#88iKrQWNkz?K z{iLF1u@tGOSgqz6iUGww}Uk^8f)I+Kx8Cg%>llq$J`aX*2_Plyw+-GErq~XFM9SacQ-#nNI~qUhi7wQzm}5J$rU8!Or4jMBV=AuE0>aVK|#`;)g(P{ zke)#Dy8JmUY26W!6oI+6ujC{pjFa?a-sQ^rm4hSpJKGDEQqi1vAD4>e#A|G$thRsRCs!AYGQ?iK zR5T~vgQTK4vBxYG%}IN@+BWC-`40Y5JE>GOM|@h!lf(OANz5q;a&5vt9jq}W70rp) zeyM0q>`yS*+WwuNUWeTODxNLO^A<*;Iq_;R70rp~?o>1c6w2yw11W# z&~ueY4LP4mq=tQQ*S&*A_*A2MS)`_Yxls3WzO$d$#+3bV6g8tCM-kOe%OW-H!_*v0 z`e%(|%s9k(zi$Q`AFyaeUJ4RT8ObzjP{*n)bf~_9;bb;;}9jsfkx0 zsYs2CyGkzbfzo~#E>nusP}|z`Ulyrp|2*liv~T7WHunDzsiC%W_EQq6X}=2VpPHU} zCw$hCLtWY#tESBt&NsDx4SgkXzA4sEDpC_mk&4vB{P@9#{MblMp{Int>?1YQfNn3! zgSIe{be&^nS3>Q7laAEHb4n^w6VEBNM{3&t6HMhIHSOH7`$$bJh3dHr{iuZ&$(=bW ziPW@zA1#=O)KCN3L!LU{#MaNzsyR|Ky9IYn5~+!)mqlvYf0&NcP`X_asfqEFMQYkN zy}Xec%B$C7Ws#cpAEzTVxwTo;U~gEA$5M(Z1yddbY6=Y5!f$w@eu4 zTkezF>}7a^I}Rdp$;qJDGKV+d8E~dhE<8bQXw~qb&B(Mdj-po|nR0TEJp+ZqD8(~1 z?kz9?v`;M?934KIx8bhmK?`@m8Rcr8Gd07jMg~XLt|rVgwr0aJN9$=*SkCIf{ou|EG zt26MkkHaVX;K`kS1V9a~7tuFZ;qt*T85U?!bq$#te*j}g5~m;3a8z$-$W$-jIEFF7 zl-Z{StwLM9T>AkFs&bfvHGc_ zPu7>|S(NL8Kx6fzB&9_m;w&{wgb@2Obm+!I)P+7+SlgI!6)@B@ws}DtA5~}i^ok9= zYSjdWU()*MOHbY_dS>W(RzyuEQY{;_@0f#5#I3$c~uXT<)eg;}&cL$iPO~aV)voUgv z?F5Xsjci}gx&XA0kr1>YFpkzG8jqr-^DgQ&jHR_6do#YTEy(pv(87LY_UW3Iz&Kjs zS8})lt#R73g-Po0)1dXeoLq;1*4?0WR*n{794+y`BxphV4kmvtG8MUw$BkDzavj@Y zDsmnBwNjDm*ymu|R8|x85ixQdM?F%J>)0ogid@GLgjD1@?fIX*k$gFRVqZ!sa!sGS z_H6ThSjkPidOVR&I2E~$_rj^jb-b1!4bY;GD9{?lKYkYEFD$d~N(yWry|$! zUM3Z}j`yCa$aTCHO+~KbJz6Sq9q*D-k?VLjL75@@W}G_Q+nhsO(l0x48R8)ST>LeuJ8CqNZD)XY5=6Ju^y< zVIAuf6(}!@lFz>Gm5!3nz8VT@rUrs3G+#PXVQL z8c$i2eD?j-qvRbN0ZCorXaz|VQSt&zB1#@}INc~YH93_i`Rr|I(?pa!fu|59k6~1t zk!@l015IkpD{J8j-&jioQx+x12#4MJ$cl-Tz>NYt@T()jJHEy&YGn_bJK4&}wV?%h zi&659!v#;OpZ<)$uynkSS3`^6Q1c;NEG? z1BI_;QS#Zpt~E*?V@|d^bI@$>#y34mgm#Z$2nVgM;WamAcCZGspNy3J*6|5m(H7|M zsVI4@XN+2Uj53xPjgU$Ta%fXej+S(kJf3AzQF76?rWM9{A0?+Odd@A2l6TmagiAndq%79Li7#}OVd-UjK1LwZs)EM7&C@z%k=Y?@Tq3KvM71S z9zxyE`Jk1wF=aobF7`vtbw4eOl6U-(Q%c8`{02M{C66_hijv228B85q@dP|EKcU@& zeju-2BUwD(5Il)dv;#W}r*?snc2B(b~*nQ&uEHzXfN)P)VR8+Bud_K)KsG69p43Z+A8`*@7fW*#DfgdV}=?v zj)fISG^eDZXFnxT@{SK+W~?bnE_|vHiM)d69lUZk8b1ZJ<4ouy5hbTJ zYW<|58oN z%>SU(#EjN>PDw?{<2j}FD0#=Tpq7i0cf5!iN+Iu*WIJjpRL@-q7-N}e5$y*pJI~m$ z7WXBh7`qU0SPM|<(nbR*{gv9S%d7p2=3QSum1 zS(Lov(=Tt7obu{5TUnI6?WG3)s9g!abo=D6c0BpqD6X5w6|g!10_i?hl(`$JOrK0}m2 zV4S3;<62}+3j8ZA$TN?z6hRr%f|PybDz^jjv7~}rgBvC+5g%KRVVr&dN3F`!DPtI? zAHc|7M#rSqE>tbZm8LJ$&&b5!SeC6te8O77bs51c=bQ)q{7CCZV4QyF`SYa~{itVE zQ5#)&Lz&w+fDqeMB3TaS|C2UCq-Nb4mF#bD$irvn!RY5X*|T+!{kLFgi9fUJow7q0aju~kC<|x1CoMc^WBn{8MW(Mu>y*=au^YSUYdVY4|AGN|y#r5b#)UY>oogrtHXF#Vqs(zz?~HJ9Ixk7alLr;m5S@d>y}hpFJ8f>;(GC_G8Na0 z*HNjsUcCMZCsMmkhU|>BF(pVv+AvC#oJj42Kcu&R#LeB@{lPEVYn|cHE?0vKP_w*G zw$G^H?7$i>l8pK}iq^3PDN3fM&D5wBtoQqM?g=(0OKT>SJ=seK=pLKqU-yqjA?to%E2CDOO_@u`CiPX+7qlOx*vYw}O zx(}Ac+B)Bpj&=#3-2K@CZMd(KcsvSs`I}7d_S$GQ$U2XzLLFQsMu{6xo7cwwMh&%5 zCDumiG@i0pTj$BuV{M)PV5!SKr66e{)>eQ?#M)vGryFadCZ`f>>pTO!AQ5Xz;MpIT zSxmdrRwG&}S|KYvv1e#fYhLwS_HOZkP}>@&EY{Y!eEP9A%A1(Ku#S%`)AduojOmnB zt?6-uhW!76i>!8B2kHC;Y9@)bk#pTE%VKSvqgc0wcQnf=TI;hzJIQ$i{%k3WwRLW& zHP#kmPPRKZ*KL|?_Xx%?+W7)Mb7Q7m1DKJLzjnc9AhH zY6H}3i?vbPIr}MzwRLXC`lqH?oA6nPwRL@joI|cctgZ8B=qrg>Tdbc{tSy!z6>E$6 zQ5z2SWr-aZdP?ZaKGsGJ==P#KXp6IX&9&D;)?n51Tsqbk&nc-`TRf-K9&793PBIs3 z>$(UvKGqgXp?dB@Xv2(JXpvm}tK>v#=l|foM68V(&@qlwtc|Uoqg8XPt?P2!IZ3Q7 zrd}3n>#9%3+9=(wh_%Id%3^I@EiZ4Zjq>XCSXr#Cs~hXFVQ~YTggd40aOXlk^;$g@ zYl~Z%_v6m1ap7E9Wp7@9j^5t@us`q-lANKPouU@Wbmz475#QcFvVs>dWmq^Og4Hb}dCy**z>1aIO932)&rhSd>+gyW&qtXYLn z7z;35B8h?4QAA=US-Hzeo(V=bnO^{EI))9 z=tGF!^TV1^bC<-0n~3?`!9KZ*Dvub=m-tW10LDGFtBdaFr zHnUQYi88->7vkdLGq;g@;1OR6HK14K0#ka1rEr&8=H@KH_IFtol1&_w<`vY%uO8#! zZ&*;$|7cGe*&Ao?)T9MZfx-_foKAKm9-ag=NnBd4*h9Et@ju!}!ek)#q>wn#8Y8 z&ULRW^Q(8kM=@Q$dKWpLf?vJs&RYHIG3I2ugY(jMk6>^I${d*z7~9?NC%{3SmW>hd;7-BV}gv$ukPF6YAU9NXwfgehs%`w>hV~Y@~g)ykd$9NmP^>l z=E&#<4r}(SQ`_24TXu$J&Yp%6WS8;1Kx;~Vb+ayZ7}0Y}{OWUFkM&PYes$rqE?_p_ z<~+tv%vJ@zI@hErzj~~nlwUoTBIQ?)`B57V_GR&_7kWzQ%iga}4e0i=a{b)O751HoMEAKyTY#?<0sP0|dd*hmSD$lM+OJMN_1vBEtH-U3J5ajm%jR5J#jjq#T;f-s10PDtuTIXj z9pXQfZjPsZk5&bSy}+-8V}6JQc(~v5E8*Dcrt4Ra`GJ$KZ+O)TNVxv$LZ)GN!f%4)Rq9C$W@ zegwu*zft3G`(>QFvClT_Upd%+&bU1AP-a*>Wo~q>ON6x=Q#!O78(1Z$?J>i+Cn5$Z z&U>qp;zpk7Jcm15!qE9M)tU*aS+p~u+u$KPeQKkxi ztVc^)xjw6mVD&KP1}&+;I7xr0@vI-4K$}aUwct$6D*JDcU1@`|gG1b9JQ-fnRijct zN%@>fgl-lsUv4p-e<-CGz#qyUwlbS@J!ZYpQTZ2l*=JEM8uWK#g!6Ay z`gx;s%PAuFPEa=QwV}0b}lSz#L zfy0k?D-N3tB6BqyQreI6yj3`Rg0nj#TfyPqY7Pa)amYMVU!1;BVOvnOm$hES&n=3d zHje~fzz-f!Dg5AEpW^2`S!Hw{__-~|4`CcXOEsR!s9!J;?#dWX_QhxegK%~M+dXJw z6R3X#)bG*M1;$Yy_ek)C7;IsC;kls8B@0XXAj~Yo5%A^K!-#)5MxjRWY@fdxH1>%_ zis!iwdHC#xckUBMk4{M$U#_{~+a6iVX@Q6lhV~!s{iH$XQDNw^PvsKS2 zpU~$S<2D^19Au>E6W`SwR;~euPl7{uKf-t@FpfjCb|^Uh$w#8HSR0!dLn@CMIV36s zJrAEV!rlz6TB}3N=+KZnN!5-Uf+6c30?hM};tVq+VBT4Sn&(iH8~r|ch|>Jq%)RCc zYnd372St4HBrR7qlvUPz4st!E|ZnVD-UFDNG zt!AGC^}9hGBW%#Bz*y>axv_=IF>AbR_ho#JYrJl8qj8GEi}qLgNpMIhFFHD>pI?K+ z7eVEJG=~D?I6Rnlxk3)r=+~3taNV$lP$v`Pl^!;64oFsdXyz&Wo zL+gBMA0_+i9KZa;BV^YtKX(E%0!cT^W=c(2a7$^H$jfW$lEj(k` znmWCx_|faS-QA7+Ts1Pj&MdqymUW%y=Th+V82IVX{0NNW=W7~IEp2hm;JGe*Ywekj z6tK@G_a`OioCUmUUpW#`ht`Q;f}|H;qBK8WbBInc+_!viILj`^_@c(}?`4&-1(5VL zIY|lQB)wnbQP#qKVXW@$fKYqt;s{xb9R?{rEo+iNV;kTtl(E77{?%*v|EEvRNpTjW zI3H5%qooiSC&jY?3!YPJ=N;79QGLwLJE&n>U@hSq3pI8vp*XxY=qDdZO63T}83M0% zj!^8SN#zK|Uh7njQ0!4O8tz6v#!O>#gyNWHDn}^xxTbQ17>(7jq*RVjID$Mh90?IYP0gE0rS@M^6mCZW&!XEqePE&lcue z{G`{BxmdC9E0rS@kLsx$p?FkJY!d?14$;2*oo|Dn}?D4^Lcv_Rs(YUwrsN z^BmU`mk+O!ypY9*zZErS)Mu!HYn?E!zZ3BzJjWF^=CS^ZUw@CUSw=L#v#-N*l2oAP z0P{T96PFth)Es1BLWa`(MrdB1>?*;2m84X5+O!*U=_`BMwEIj5)^3F3wJbxa8%xDk zHbaRz(Y*Hc&&b4K`V0xnyi4foaf2KCc*xOWf_dEqX9 zlNtTIHtedl`?FQ3gR8_Sx)ZhHM{8_fO&D9InYTlE^Q$fVpLPG9*JMBaHh*E6%XlRFsn6S)OK*X!>zp0V-5WKN zpDktQVY_dyHE$=zoNRY+UfS*vjA3-{Tltx53%f?@ z_CDOXe=IQYC#3UsVm)KjvKw(3C5&Z8Bczf-c1bcC-wrxzg{G|6=j~8$Ihc~X9gf`7 zJr64yXaqf5%AP&j{b)LGC!S?ec{>GKA?EAzc4QV(tAet;o$h~joXAanI7FPDdQPj*$;9U39vb>${|8h#1D~nCw zk-VK)W2wBIST2KUF4uN!3xg--C$xK*-yyGFBUwBv1W#(U^J1-eJJh7ctTe`5w$T_h zp!PClc{_9A5vnb3C!Wz1_0V3BCD&dhc{_9GOeJq;?ijFhPO14kY&_Pb@^<1CNGflq zJCX~0pv>hum1AAac{|j$&I2jS+nKvN>9EW-yX=@2wE^n2ork5ibM{k`w=;LITJv^< zPc0*He}pj zi)bHXS>DcEggjGuJ9D7{?O#ph?G$L$oVPRgPGFxTZzrZ+mbWwaeQ2*l-VUYP6?r=` zp0d21xu?9mc{`L>ugA*rcIKXu&f6iMdX`D$?ZmB&J5c66hzsY+DtS8v%qDyw_vU(B zmsDkQ&rav(wtDUdAW)fXEZY+K{~z4MQm#bf}!%$h{~%73vzbGZh&QdDi@m| zjEzlXA0lm6oO19#S4~~TNJInlv)+L-S|M+7EyzANWMMA(jG{Hq-55SubqO*XvSI%o z!z;21-kq1typ@tE8 zNIDcolB#VwG;Y+4yBM{{+hB*rmxutUVbmVM+tqz|i|jI?^_;2!7+{_;H9@O?im0=< zLlw|AnGZ(POPc@_vOW;Cp12lT{kqnwz*w#3pTAnvs#72s7Y~fim$>v`#gE#>v7fqb zdg%!{eqh}bKLkIw=J+9uJW9dm6h0*AJ?XUu~~3IW0(FgV9q) zZ1d7>IS#?gT6lBjem}<{VH}6B(omGfY;RIl$KC|13;g^qMy{Pb&j?r~+J2rH$o>~2 z@}UKv2R~R5&iyCNkH9#71~eX}4O%9m?ScAb4T}04eb?Z~fbE!mJa;nrtroHX-XnU>q&k12{xQNojQUNubm` z-V6?(o`Bn)iyr3;)Aq_-p3G-2Q#{)>fuT0Ez89%7=6h~#+Sk<0#a<2k!Yt3U1tn88_6x(X(%a^OsPp{O)=IxuNFMmc$QK^Fzcf%rD zb5an-N%1o;0>0EDh3f)AiZy*>c#6K@VK0!k#>Y~)RtA*xi`rx#u?$&D!1^a>KZi)5I0K)Z@tRKz|u6bU7K%V#@Zf$SoG*KzJHeufsjVx?-q z9E^dVcUzWSalUTB3b1bY45+_Hx1hkd7W|;5g*Q-)h?CZ|VA3+3^+F1+Dw8@4+PLC+ zC6}8vvUw7pA?11Z0}ord43Ai^)vAvu%zL-ve%^NAp=~7boMYz?z|dNfFd_5&3nPl> zy&MI8Di~QOSbpA`hv9U>@&&96e2>e)nBV996fiq=du3x;<=g|Im1A{#35;v6OU%9I zT1$JmG0L_VdV!l$tme^E)C^+#SFpM(^=dh{_OntvlVw+8^{M89Ga$uTkOHGYmtG0IPVJZ3`a(=LxFMa{)C3tEc0C6MACNP%n$B?V!e6#t&U!+FkHuae8IA#1VcTI7QD%DV_4yB}BM zOt1+gx%Yz^z~tuT`NMEs{1SQ&?>+fLhQ4bGyibx<1!u;y)nJH~1u(?p9ZU1qp~m(d z12O*+)Y!fg+Tt2*QExPm`a1s$S$0j{qRz`IAH%+K-j{S+2#jru`rQ7smXXbk&!EiK z!DusTtDrHCHt@hGo^K58Ud&U;vib0uT=N5MKiP%g`J3Q*V~%ISIG+6~h0@o;bHDXv zTAp*hf-f%&nDeV{Vh4xc%CavXlH(Bbe=|7zw&qY^9EZ7)P3foVND}z@$_B-cUn6;O zv-x*}AMWu3KiF-Ze-`-pha5kIar~SR?ys#)`wDG(&MNaRR$%IY9io*@nZMauW_kwk zKH;yn2Y!;4urtfP`nsH4u+{Uw2Dvcag|SXxoLpyWxfIV<&(1a`AK}0#=8=;U_&y%ny%q6jOQlaRx;y51-kU zIyWqpho8>V>#57}a})kkb8IRPpBZ$T7VpQFyOmcj*X{VHgEgk4^6=xxbt(@(&W1AB zdS1g%Pbuh<5+eo4?m7Prt{<*P@94Q5^-lNK87%$b^7|zF}f48#m6j0O`EMDi;Isr5;Zsl zATWrGpypUp!y8~xhoNSPsllqr$6?T>J?uNN7b2Vj*zJRWky8NYt{z=GF@;kA^E+SZ zQvmZhd->ft{A?x9DV@JNat~h7=af<>x-XZV0+|0=c=?#&A3eR3oM&pT7MRkfcNXqa zNjV$=eBQeqwdTJGRHXDA#}CZH%b0f>c*%VhqP_Khnmz zsF8I-`V>Hnr|cBK{G+O$0_gdarEWN6J8JzTP5~6OkvIhqb2!~o0Mz7EP65n65xpSs z^v(nx=P79LtrO8wEy%Vo`hg~O3o2{j>fKmN1XFejVE(BXTc&vmfbtf1S3Nw>kk3MK z{gja?DLvR3ie;k5nbPxD_>`Ehuek*^lbiw|=ek#xodTGTz5aAh0n8`o%8OQZ3Sj;@ z@Cgm}`}Y>2br8iHA03;pF-x|)yzM>4oNRY+UfS*v4DLYb`2nxFF|&g;7$w%3Pr%&A zZ-&Fv(>r55r%nOHBczgomT9aPI?;2AvR>|+jP=GaC8q%9pFjOm0HT3Lrv>b!LV{9W zV|J#V58o&<{2{)%2RzG@*5X+vbqb(BD~$906aZz>tAesq0Q3LU@!qqI-@s3mQvl=~ zi#A`%P65pS9QMbI#1#IWAMVJ!blKSd2-++!roIF_Ej$fxVn_*!-fVE$D? z-Ou@;ZtN$Tg_Zq~y0IT{uKQ`(DS-JK0WYQJ34Q>NWbelsOPvA`{VTZyP1f_v9G;k; z(C!@74bPBQ>&N2xzk(;V+WG5RPXSPq8neOd z?9L7~1FOc@ph8BiD|36jupWcFdd*gL3ZQ3Z`V;{9)U!ce6aYEbc4(k?TZvDzwt+vP3d|T_$e~%KMEqDhT-$|}aAfn- zJq1vOpGy!gU_MERgCHJv{tocJXD(hq7#lChxR>%}$lH_1m5l7K8>HB@ILQy^lMH<< z;M!RVbBjmozwGwKEW38k9EVG@%E#d=>Uo3aP+%N~XZzdnWwNJtUi%S6U9InphiYIg zpIUS+GDu7&250I9Z!i@K=8|;Oj5qO>>bv(__+{Fxvub}22 zk9ld>gyP5^vfjYf7cieQ)a_kAK+R>j z8qPiJ-ExwG`)ED>sI`{Q%#UG$9bR{~YQbJZQD1jMpSTXOw9r%Pkx_ra_h1Rjv?U0P zvjka}J1kI+JxgIm0I`I~=V|750Sj_PGa6pghbNFpZ(=Ol=sD6Mj_)`aACIF?L+g1W zz|azsc+_-39dj_g6+T!|KRa^8q{e{onew}64->ussLr%ek923xTA<8K*wk;}Wg!|FE!#^^|>D>71 zk!SDwa(w`F-*&^Q=C7JG^$Kj~!u>%V{?R~PU>tRNPJQui0c*W{24H$d+a0~1g?XN| z=Ux+J3HH1ZNN0J(_RH?O;})L8F>M<4i=gKl^ys%J#*$^bV}!kdBU_jq)-_&@*)G`D6z; zyeP*ZVH}4KX*{Mk^>T5;9w$$XjC+ddO#(v>lQ62Mpv{tdjn+mei6|jhKT|m zrH$Kz6xp1B%zfMaC};z@=t>*Nc=_Zt(8hH+Z2-n;qmFSZUz9dvJtm`Zq>a9UHdge> zDwtU8EUYB8v#^?%WkqdeH?c9?9guyqmR(?+>|a+1;Ko@w}(kqRC(TPng$i2LE53-)eoE=7nv4Onh~8u z9t~_m_tMB9<7bkUmD!zCRc4u))vr(4#utd9jIVKBcRo};^>YQm2cn`l3<3h~FfJma z2#AQN$S||cEHkjMzu!3#H_nZ`*;(C<@K0Zw%3G&SoH*x1#EFP=PDEOs3rKx<=K}Ej zW6QJPc%G5*79L|IoZSeue{tB27YCYt-K=eu`eZB+NUJT}8WBTvi@>FW1I^m>maK!kNBt zCG0}lpBG!6^?mUBkeyaESQ4y}-ie+4VgH(u-CEiwEgjQWrEeT;dghh?VQSykmU6XY zEp`=i0z>Usi@s|aY6k~F^Md0vzmH$U3yE~TcitY}I$q}X0{J$lK7!f&kbROgxKlj! zQJvpI@4af$aA-!L@`srS{)?-ajTtyBg2T1&)_@Pgp~=|XNAkBk1yh&xLgcK>2mc9m zU6-lr6x4-X#sD}obrHvFW2vu)pQf%y15T3BJg)S2JEt!tzzOTI+fdiVs0+O$)Fn8+ zu9xT6^(AE0dw%Q=ElKk7A>)jo=Q|%V_CM$4L&hGDynM(wR-(EZ{11N8AI_YvI9nqx zA2N<5<>f;%&%|mvFCQ}YoG3p-GM}gXMDtEwK4iRFc64M_o6?E)XnFaNu@65lA2N;$ zySiWxj1DiyFI^*b=oJn}@*x?WvFoP1e8_mmnwJk5`^@w5A!9#wUOps!>DITCmk$~H zjq~y$V=pLHgYI79HS5)~5h513xaKT{P%lX`bS$zB&jIAHyd99kIRQ9t?t^m%aLxmc zWKl}rSRH(5vOA_pF0T1Fa1QiFZs=SHe>{=3YQlim2B?cBF#BH&R?f%ir>pvC!G!>PRYct+wWizU&_434k&oscoyFwmVuv9$KU{OVF)_2e2>$PFKbzIkz!i!Rec^ z*;UE}P&2hV8#S<9Il~yl>?-;>hZ&nO9mN{@C_Y^z%Rw&3CwB@xqC%9;+QWVsn*$f- z=S&KpX7>PXC<8t!gw;iN#%5Qkw2)ftv@H%$Vgv8(Q9HP@Gn!%#{ZD*mwSoPuXakWx z!w*-~604jLm_|F$!`r zHgo741^4jUOOGSgY?WW0RcQQQ0qJbKonxpRqYW&KKf;_w>uy9JqeI z8JjWX+;#`&ecL_4QAUSkADL+jw?iGc#mh1*RuugZ<2^59GuAV#78U^Vgq|5$NFxR9 zhW2pi#Lg+E_tGD(wk5{tld(DQgWb>A6b&qLlHj9X#^%6}@-sH$Sw^!XQvFC)XIEXp z&NH7xWrr+wRnRYEbKobQ_u(ac1Dzfjo8%npuJq}bu{rQ_>@}aYj7{Ow4{GqxFJp56 zejnz7mM5mGWI63WQ6Dq?hgMW|2+r*|?U%7R@XxG)&+r(3f{tW)#TrW^6BdX1H*&E& z=p4bHDV>;~(C!>N$}|03-E>|fbnIHouXdi8Z^kAyX(=0x(TAqBQv;4NYwVY?$=K%n zGB)E`&(t2;3$kR|t53$};6b~Ru{nG^sB=!4cgALH>+&)-;}wYaAEGYWI>~t(h~&cG z@C=`hAGCGZEXti^Y*O2Hm)$R8bMU3ChtKdi{Ml6(wK4CEO=>&SfBIx>4#F!pzl=@c z(^w?(3Z5(ciP@^_-sZtSMsLlzw>j2NUdCoDMP9~c%ui~3$PebP7ZtFZh(}5o%Z%R2 zXrcyedr=<9)#T62EWDBs_&$%uXv)dhjOUcRjLmpXnSaLSFe1g-jLqST0HGApdt)ig z$X%IAiWbRaQP#K4%>u+HBk3Uu8~k%rbA2wr?^4c|9zl_a6SRG_za{0F&C1vbz z=R!X1ER&b98MiXaW9LU&17g);rKK%FCRwExvBO^k26F7t)e-M@_a40yQ z!&h56{-6+G%oXAHgocv>2Pvcx@)*;6iCBsd&AIv`eR%#y@ce}g&(lfa-7g2v7iM@S zj_3IemgimL2c0U=$>@+5m+Hx>YqAklL>1qCF8H~`@*_B&9~qOLr}^kGjq71-a17ck zxNB@i>wcbU_#FOal3ep1NRjr#1*d^Sa5wnT42Q(=9G)M_`?ukL!JBJkg$?8O<&Xmt zd*{4Y4LE6LV{BVOyMN_+Q~RrYo&3y;ti_(&=R2|%uM_ejYq5UvB5U!QR`oCxXcURY{OkL3$(&4<;;YegHUVY_7*5dx07g>vEnY_qayxz!*ti@}9yvSNS z>*Yn(;@K+1ZbtS+TgYu2)r~W_r8Puv`hDl-;GNHP>}K#5wAC)eZU!-LJh!nM>cpXdIo49tx8aWG}tR3rl2PxrmXY0cU@OM`iOZ1D~Fhj(6FT)C!eELf9>Sr0e>iRHW z8*!-_;JYWI4Hvr^{J%YF2Uj_EjI(7{8(RROHnRJjGAcuY4xOV^ej|HS zm+3#L?9`;yycs)b>%=(yVmCvF!nW*Y?1u7o$8JX6N7*tx(~X@WdN$-4!Rk%MDRyM~ zjC=;4nb^(9Re?WS|Ozok)AWNpb`owOA-o7ibn^6k1OR<~S*5$=+;#Eps?1pV*}_Zc0+Av`cI$O&Cq+X{s}&`omnLE z*%iAPT_!x|#BP{xl^45-^^+I7iKWPk-H6@{KdJFi9ZKw`Yovs+oW^db0oz`b2W@dA ze`aRkm4qON<hF#QFZ3FjnR_j;oDMUm#=d4wdu8|G_>!#hx1eDl|GIj^|LkHlCJi2>#krhpr;xuqWi| zIgH$|Ggj;CGQJG>?5iC&zP^68<(c2-=lztDwA|P;!{L z^WnM^4L@ndlP3Vn|G^}=?i|Zc0-JjAA>ijvEI)$d`Qa>=KHdD7oq}i#gSpGDdQ+1( z-oJ6E;rZaSBD|p8-MsgWl^LE9Exq_W@O+HrS#UhhKelwhv#1L&>QL^Wh&_sv>gngW#KD{9K)CBd#m-pKrXy$R67b=aByfqshV2!tP#t8Dxj| zBlLN}@v=W+W!Lx7PgvRGy&mOqWqS5`BbUth(#ovK`5ai@$YoEP8Vs?$xHg{H-{48o zR4(2KbTRyT!)PfZ7je8?|ISj`XY>mE?#4y8^^>VW3pk6-zUtJPwoa@Ke?NfhtNg}c zI{NkA6?f`6NP7Km42Q>C?q=sY?$VI!pSF@F?@9{z4&r3^FRi44<0LI)=%hD~7^@ZY zEcXnk6{lR7zr3VQ3c1ZDE)}HscEd=4nKV2YI}n7wfBPL7DPT7)SqUkyVhZggI9>`r z<^r)~^eX()v%La8-+8^^XR#r`d6|j@=sRa-`1v9D*$jU0r@)Wkcz(F*jh@l#0C4>1 zpGI%Qr_7!^Ki7Z5;$9rqJ54v5Zdd`FiFCb+Y>rEA0*Bx-a40yQLwY9CM-~nGo8!kj zr~wq77v|hN(5`Rv1?i7kXxDW&*i4>`rG-}6?Lqj4FIcVab6iq*A7_VmW_Tu!=lN49 z!|BWD9eCv$8#npX8g%x^YIz4B;UHGHX+RB*hcKeKfF%^rZUEs*~Mf0Rey-W(9) zZ<$A*|GTpc&zTh(@|qmae}`3Lu$hG;!1K$%^MAKI3y$ac5zi7o(aQc;@*``Tc>cT>S2^6)4Z?Pn~|5#7Tb-ye73lc<>j;GN83l~D@pl@ z;}?1PY>b23Xfn%Vzawi#`ly+w7sp}q^4Vhlb6!4M9Mjag#>7IVbuk8K+QQ+ygrC5X ze74vlotMuR&w6?JY_Y#LFP|;;!RF<&#eUJee74vVn3vBMd+=ZZn7r0biYp&Ld_?Xv zi2DzAh%^)la2^5WI@(DnW^7l(%UY366)P;|+*CoZZtSjj7 zR6q_?2u!hDK>^5OKmwhk61TO5HFj%3WS$*|zKZbvO2;pM$JJo6;a;w{&9aricH`0@;g z#PJ*+K|TAYIX&rB%vxis5VOS^JS~RtLGbDviNUOh3YR<-Izo%17Y2_3p?m;HU- z(CF)0B^}58pl?}u{{FvMo)hfqK5z+mMpQ8LAHnf-T(4I`^RWP(W~WRq2_6><=$5N8 z-SU#sYn1UM-*%#rB4ZC*RWHVEh!6zLCs#lU?EFXIX9-dWj+f$1%8>pvR>JL$!J*eH zc|P!9rU|MbTQq_Zn^*0sIa5UZ417jkd(8G8#qwJrytOLb>;flphPD+LRpd+PM0iEEt^ z=EKM{_6~laF1ec}=DFT+UrwN_rd%AeGEeiLM<|Qw2~t%u_5rEO>e<=sksFc(J-qAA zG~v_Ob>h_3>FTuMDE~Kna$SekA&!f0(fVP3K?uGxgkCer=*YBJn)4Rd%czldi)^IS_(R`I?UB`ghNSZc(s53trW{2;D=8TXYBS$+h^^RppvgVRG{j^iw|PtZ>;Kc6=I zWaeeZ&z<0hJF+nAVIOnZ$>8VF3_o_)cCO{eIcW)^e&Ao-seT^p!_QB_&%arI_QS63 zGT5@wmt^=Mj@M7w^3(n8NUcu#ceWQe#9DNcD-t}e*Ku{K0RPPq-M70Vlq>7-;MvBS zL{9KM^URZsR-{p?g(ls(jRbM_XW%e?fn7i7NL7G54hVea-nIbps6raeEgt6~K;%1v zV!PVet{kJ(y(vz<4aaxKJb4dr4n(wTVnT~0cdnuiC-Fa?RSuYpVxJ>p2VA1mUCK}0 z{TYxu6{3JK+;jir9TqZ<)$5bDW*|7}{^U&=$Z|lwn}NIvkn0uF;a5Q60pvP`v>gbL zYXN~1tJNtN?2QlujL~bKtE?${RocN&#{&czD=)PZ;I8Xey}F#V1?!| zoPJC!YGK}w>N_)%G>%;JLIYIGj|sm?OdFJlw#aXFxnNbGdUOd0iNPSmNx7($36=j-aJsAMM1OCWYl%1 zr{+hoI|5GE>Rof*gJgo!_r~L{QYHwU**CpVDUVM18pc1(H)#GGp0JMTDAxFw@R`{= zjDHgl_KhBy`IOGa_4=KfA8qBITNgg}S1$My+VH>VP62kK`^Mw0QfVPbYIjlxC^2T} zn^UXQhU_NDRd=*>{Cj|AwedqhWTa$vNgOG1$}gsaxD_LPQhA1-s|A#dUex>4{5aO} zVVBe;Y0izuT{t33>=^snI~+Ran*qmVb7txu80v0{pPrXQz&!@uwuf1E#c z#PJOfSRVCS`vJ0)6ZB3_&69IGDkEQ0I3er&g`-#O{;Byy#?hy{TOp>Kb_%p-dVnWd0uG3H8 ztl*n+n0IPE)-$Y@tjtj;^vuXY8Y$Q_wf90N{k$2YG0rP9r=Ej%ZV`Eg6yMqXQ}dz$ zM~AeI>~%u_K>ihV-JE}FKAvUrPR)1K73_Q(%cd;WGuiV7<^{q|GJ3myq6PnyZ_sm( zQ}g5;`2*?G^E|#AdZU;Dp1m87g-<`I!9&mcmfiRoy+>+K=lrz)M19OyKaM7yn>cql zIutiLp&x95m-Inm@mVTsM$nN{^RdSAPR+-1IXWlvGo=&r6WX0)M|p<4-JaW}>xGV; z-@O(6^?XmwQCwHUSlk9SrU}mkw{i(JN=Se3!X&l+>RskpS*nY&~v$VyZ zU3F0#sGTjy2nJA8_S}^xwVmlduUwTjPi9VWwq*>n-~3L^3!la!u_EyNcK!tAFiw5D z9|nEo+;}`1=?9z9I=#k1$BpG!io8?vF+ZvCAwQVEc;oSCJW|3~PTPwbusrh(L$vZV4&nfdiHNW)3s6BIPe(9$Gp%l`4V=2tYT?riNnPX^? z%t`h>r{>32p0)I8<2Yqox;=EqLWKQ&K2?JSdbYCdjdl)$s}>-fRB zvd7-Mi*mX{6H5|SjE4xhWb7~UPtB8a+Yc3c>EGfrogI4Ma2=Megkydj9XO3cTrckP zyL)QB2S4{G$xkx55CwQ!KRSrs@)pb>6E$T?alB7B$4|TTw@xnj4};I@r#4gWMUIsD zSo%bg{FGU6!Cwb|=0`W7_NJ{}aD45fhJbrr#x)7GirV#A#<_qqEFkqsgnUX{`3L9S zRfxoeXvg5?W0I+&_-_vvh@d3Hic@Q-dk&t-rwAz|GXX-M9w5QXC*IwRmrwknfY9yd zzNP(9Efq9&?*-6?m(=w_l}LXsTbd;IGDj%YSaLozb{8}T0YiHUj;He~OTp2B_gpjv z*(dQG=?)T;2(Yc+KWCR^%sF zGW4CsUZcDd5b>He?*s(>U3RygcLE~cbFyq*hM#CHns)+%J`GzJ%O}aQH}PjGSG1?j zI{^`|CGt){#QRg$fx0lVO-?y(&!fRy?b3Mi zW7&U&je06$qZ+VLkZSCk85>0$Z==NbWzA*HamBu z3c^yRm2Xm+eBY6jB18F>l%IM}e$MIQ=Qb_Xp2dErQ!@pP6mRY- zb%!g}X*H15X;?H;{Jr9I5w`j{uZ!~k)>6{DgL0ssMzh*#HL2J8A5z&HO?=y` zvC)h+?hbU?hQACQ>0_Bv|L96Jr<+@QRq4I`zh6y*X5DQLb`+0@F{{Qps$xdv`k zsq~=ywl2#5rln@3)AcB|qpQ@vYbg|(ZkzkoGp+pbu2N5?Qe?Z2wFyrv&XyKphMSF` z#wI-cnpmsj1uX^1C(HJThSBOVi(`Jq7pA2;&B-2hy{D_LgR~Tqqsr5n$tm=fV-D52 z(q2(Ko!@uNfATE*KvFDEDrB5JWBjuP|Gwp>H%wu0v zDN2(~83=$p-6hw5Qpy#kE7+zmeSY=PUHq)lQq{`l%(%7u9DAIW0*ZE_-BnjnOTqrk)-!$6=;s8*skh6WP7fP(+`=x(C%aP3N@u!< z6pQ2(Qf8!_s->ptm`?M@S78x-4%zXwR!dcyv)fwrjhjLT39=uze;0>mXenf8Wv3=P zcGd@+p5yC{iqoEGO+`G5Ekr{UU+45AR)Q`y6NkMem^UXTz&I$UADVTHK$ zGl2IU>TnvH>n&zy757_(BKX&yovzQ+JBI^ughIB$c_A5G#riNlXcGR<8yQ{$a__^&vnHh&5i2teb7OC~Z<)@*W_7vOdec1;`fw z0c8id9aiFAbg-lS-98IhP3Bp4FG_9JQfgND=leU#kD@O76>vCzp)Tw}>I%K@XvH}b zS5C><=;D&U0nUpTB&B+DLU4-5UJnTVIg1V8V=_{pG0X*WNGo|vvVsMoj;+F?N0l;h zG&T2^PXvhOqCV!@qNYnqP=4^R4A1`zp0}gw!zlZ~^wyajqV9Ld<9)7`b@fHaFHgzP zc`_+hsY9i6BoIvGapUxae9tZFx+<-UvKyRjOsK8$R)Hm#0|z=}yK6_i|8ZN_@_kX) z1HI}ZZ%MNJAmBXI2WJ2{TaMc2wM}dR(T3>D}JH_hbfS~`ZLBQz*#reHL z&aJc?&DIP`E#WN(NBJH_B>$|NM0^rqC{TW)SM4X(Tb+q%lqkNG<6<@G;6j4Tv#z2j zN%62wFPya5li&Sbbtt<4q4SHo6v9=C5`IiN{sQES%B7$fN&7m@yWJ?z?z>k@x#=D_ z2uzAiP#VjZC&_PQrMDnCyIB$SKpP(ehtSx%iSw(K4uHif?`lv;r#XwV#U<}hoDFcd zZtdVwu;P**8VEwcfc!6oxVl~e$bA{eF@QXnfgBIWPZV;t&lfE&xkMpup8|3Z-KkQn zt!`Z})Qj+@`@ZpHHUwb5xzf}1pUd9} zobLkXfCWh%2XV?1Rp`046?8D-^jUr$aA=Wo>1;sSt7xcLdmBpS%I@f#4?1^)PT;VU z6c0EBkmK^kg)4O-O5L0(btxdXWgwpbFA#1c7Tg4_E$|Q?;wp#vEl%h=tZTf3K=wSfQmARH? z4j0cSouI=flH&OsmFJN1!4Ze3{Tz{`h@NM9-HLrc`Lm#`ntvQPhp5Ei=ZY5t=hMA# z(4RLqD;O%psdO|Q0=X=mlUjc4OmQ^jwjgn2=oXh;kk%E=Xf>%@{vjL?bM<4AC@ZYNY3;44hMJ698RxVI&xQ_&mX=?A+VYBssZ(ZRm!tK z#7NzLTtdtq*&QSzT$|Eblc=j5Edg}KjumiQdsEbcd*kyI5xo^WPdFM=RC6a zxf1?Uw+`o@A=hV;;wwI>I5L}WCiLO)OzmF+q@$3|cC62clKjT;%oUoPdM+Nr7Q{a| zwWhftgC~bAh<}~!?t9gW#~h{*_2iJw?U$B%L$Pb7I?YZok{J_$9`4m=>A=J-rtpK z&j?CV+`&E%v{Jk7AQyhbLz)iq?oTSD&K*5PEi78Cbke&qi|@SxF=){7gAzDyRfz`F zqd0~Aj!>K`T@|ELd>td#QhO8IcU-@p(m}7hr8Cnm%}HbPt)0GA0uV=&*cmYQPM{Z5 zrnqmAUpC2g9rDV1r`pLx74#d(94q0zO7QL8e8w4zmE3Y1CwOs^yd-IE?ZkbHG4s4} z(55^wU2V&Ir-hMDys0=99k(wRe4M2M8+ zJE!F<-W)cV#VI^7@a7dMU%1;;u{Dj1r*!bvs@8Dqx=}&Gqs2jTm2RN;wdDS-Q4;US zdigR5F7@P1*cW}ZI#h?K5*-|*b&D#ai03$4MZi zH!f9X=aj1cTAeP>B0*C@S$ubbt28%@&H-iVffF2aZ%tu0kGS}TH=Tag@o&J}nI(x7 zm(Eys;zAy{(Xr>|Jk#?X(H)D$dU14Q@a#*|wqB9Z!yh_&X3CXK*dpmK(`8tWYP(XNttMrx zYiT8BX3BfoH^7v0Hty{ud(umqB{9AAWINvGI$I@&Uf=yIEWW(%9nG?kcz)*KJ)7_L zj*&eWBfJ}`(rn=CpeE;LX0~AwxIQ5aFIZ#ksUh3jG<(oAGx$DKS*7l2D{R<=bD32x z|8;w?cdyW>HF;RW?-1s>SD4wR^GPkin~zepn{$Y;iSulGb?Yqr`q-1~olTy<*#wSx zwgxv(a2jHz?v_&eK3T8T=*Qr$4O>XL2Gzf#`O1w+|C=JfHGrFv_pm)rm9^@0bu+>Y z++Qo{w)mhOANY`}+zx*45Z%2YifL=Q*_?utXb+og@65FaGuK|-KY!-049_#}zJ})= zyJ2|K>u|YadyE}%tBzab0K`scJN$9Hp?2Mbd}n~ZF|@q5<(|KmLp0>A>QC*o$_?Di z*Qtv8QJss@WZUU+)G4X91@jscq!PTT0~xN@?Jb?Y5a#uIhGbz+l(Lz;0TwX~6DKOc) zO7%UEgqlrLw77nNmFU(xw8sU#IHeoEn23AqF;7_{BM?njKsc z>O=>WXZz?Yx8OY-c;}*7{1PHLmui%*v3C~RgISEZe2j{??xVI8K6=91%p1YinM}Z> zvWvm5KY{oFx&Umc21-i23l+^$qKVZJGuwi^NvSdSPsFl5AQ!4ZgMt5C&)w&Oz!lrf1{| zNr2nEVpNlJ*nsUNT(L8UDSk^8(=>j?cZEy%x6Yp}+DKS_x%!*$WnOkJULHx8Vfj;ovP7$i`3Wz8czX8($di&+mAd&ox6ce$jTSmZP) zVy|VSP9%$A*Dd2l_@uVaR%*QGKNC(QP5A>_Q#)LbxFZo=yfU;&2wd*r_;TqB?l3n8 z2$m->*U3z?!TzBy{)Uk%E! zj)|;Qx_=baxej)379o9i`QqmN(=_;jhYSxg`Cb?!X ZuQD|woetS_vcM{3kR(BF3wAik{|5p$wjcli literal 0 HcmV?d00001 diff --git a/zork1.chars b/zork1.chars new file mode 100644 index 0000000..743e82c --- /dev/null +++ b/zork1.chars @@ -0,0 +1,22 @@ + : 6145 e: 5933 n: 3424 i: 3184 + s: 2953 t: 2731 r: 2464 a: 1892 + h: 1874 d: 1682 u: 1512 c: 1353 + l: 1304 .: 932 g: 897 o: 886 + m: 885 b: 670 f: 578 D: 535 + k: 517 ,: 462 w: 402 z: 391 + p: 286 S: 258 157: 248 v: 233 +155: 219 E: 190 W: 167 156: 154 + G: 135 T: 112 F: 106 A: 104 + B: 93 K: 88 Z: 86 N: 82 + I: 78 H: 74 R: 74 M: 73 + y: 72 !: 64 L: 61 ?: 58 + V: 55 O: 44 j: 42 ": 36 + P: 35 :: 32 U: 28 013: 21 + (: 21 ): 18 ': 14 J: 14 + *: 12 Y: 12 x: 12 1: 11 + q: 11 9: 9 160: 8 -: 7 + 3: 7 5: 6 8: 6 ]: 5 + 6: 4 >: 4 [: 4 159: 4 + /: 3 C: 3 0: 2 2: 2 + #: 1 4: 1 Q: 1 X: 1 +158: 1 \ No newline at end of file diff --git a/zork1.chart b/zork1.chart new file mode 100644 index 0000000..d7e4e18 --- /dev/null +++ b/zork1.chart @@ -0,0 +1,145 @@ +-date- -rel- -size- -pre- -obj- -glo- -voc- +10/16 119 88214 20585 250 154 695 +10/16 120 88208 20598 250 154 697 +10/16 121 88208 20598 250 154 697 +10/16 122 88212 20598 250 154 697 +10/16 123 88442 20635 252 156 698 +10/16 124 88552 20635 252 156 698 +10/16 125 88754 20635 252 156 698 +10/16 126 88814 20635 252 156 698 +10/16 127 88814 20635 252 156 698 +10/16 128 88824 20635 252 156 698 +10/16 129 88824 20635 252 156 698 +10/16 130 88846 20635 252 156 698 +10/17 131 88842 20637 252 157 698 +10/18 132 88862 20637 252 157 698 +10/18 133 88924 20666 253 158 699 +10/18 134 88948 20689 253 158 701 +10/22 135 89294 20855 253 161 701 +10/22 136 89304 20855 253 161 701 +10/22 137 89304 20855 253 161 701 +10/22 138 89302 20855 253 161 701 +10/22 139 92108 24467 253 161 699 +10/22 140 92228 24467 253 161 699 +10/22 141 92228 24467 253 161 699 +10/22 142 92228 24467 253 161 699 +10/22 143 92220 24467 253 161 699 +10/23 144 92244 24463 253 159 699 +10/23 145 92244 24463 253 159 699 +10/23 145 92256 24463 253 159 699 +10/23 146 92408 24471 253 163 699 +10/23 147 92536 24495 253 163 700 +10/23 148 92536 24495 253 163 700 +10/23 149 92516 24495 253 163 700 +10/23 150 92516 24495 253 163 700 +10/23 151 92516 24495 253 163 700 +10/23 152 92516 24495 253 163 700 +10/23 153 92516 24495 253 163 700 +10/23 154 92520 24495 253 163 700 +10/23 155 92520 24495 253 163 700 +10/24 156 92456 24493 253 162 700 +10/24 157 92528 24493 253 162 700 +10/24 158 92576 24493 253 162 700 +10/24 159 92580 24493 253 162 700 +10/24 160 92600 24493 253 162 700 +10/24 161 92740 24527 253 162 700 +10/25 162 92740 24527 253 162 700 +10/25 163 92740 24527 253 162 700 +10/25 164 92736 24527 253 162 700 +10/25 165 92740 24527 253 162 700 +10/25 166 92796 24548 253 162 699 +10/25 167 92816 24557 253 162 700 +10/25 168 92908 24557 253 162 700 +10/25 169 103366 25343 253 171 703 +10/25 170 103378 25343 253 171 703 +10/25 171 103374 25343 253 171 703 +10/25 172 103374 25343 253 171 703 +10/26 173 103414 25383 253 171 703 +10/26 174 103466 25383 253 171 703 +10/26 175 103470 25383 253 171 703 +10/26 176 103466 25383 253 171 703 +10/27 177 94954 24785 253 171 703 +10/27 178 94954 24785 253 171 703 +10/27 179 95046 24785 253 171 703 +10/27 180 95066 24785 253 171 703 +10/27 181 95066 24785 253 171 703 +10/27 182 95110 24785 253 171 703 +10/27 183 95114 24785 253 171 703 +10/29 184 94598 23066 253 171 703 +10/29 185 94082 23066 253 171 703 +10/29 186 94154 23137 256 171 703 +10/29 187 94210 23233 262 171 702 +10/29 188 95226 24949 263 171 702 +10/29 189 95146 23761 262 171 702 +10/31 190 95034 23728 262 171 702 +10/31 191 95114 23761 262 171 702 +10/31 192 95142 23761 262 171 702 +11/03 193 101050 23951 262 171 702 +11/05 194 101098 23988 262 171 703 +11/06 195 105614 23956 262 171 703 +11/06 196 100826 23956 262 171 703 +11/09 197 102062 24748 262 171 704 +11/12 198 101578 24232 262 171 708 +11/12 199 101658 24311 262 171 714 +11/16 200 101958 24368 262 171 716 +11/16 201 101982 24390 262 171 718 +11/16 202 50761 24197 262 171 719 +11/16 203 101794 24197 262 171 719 +11/16 204 101762 24179 262 171 717 +11/16 205 101810 24178 262 171 714 +11/18 206 102206 24502 262 171 728 +11/18 207 102150 24500 262 171 729 +11/19 208 102258 24508 262 171 729 +11/23 209 102258 24508 262 171 729 +11/30 210 103538 25668 262 171 859 +11/30 211 103518 25641 262 171 856 +11/30 212 103510 25634 262 171 856 +11/30 213 103510 25633 262 171 856 +12/07 214 119790 25574 261 171 851 +12/07 215 119970 25530 261 171 851 +12/07 216 113902 25530 261 171 851 +12/07 217 114162 25530 261 171 851 +12/07 218 114154 25522 261 171 851 +12/08 219 117658 25468 261 170 850 +12/08 220 117658 25468 261 170 850 +12/09 221 114634 25468 261 170 850 +12/09 222 114866 25526 261 170 850 +12/09 223 114832 25526 261 170 850 +12/09 224 116406 25530 261 170 850 +12/10 225 117090 26214 261 170 926 +12/23 226 118590 27579 261 170 1047 +12/23 227 118932 27579 261 170 1047 +12/23 228 119624 27597 261 170 1047 +12/23 1 118936 27583 261 170 1048 +12/23 2 118936 27583 261 170 1048 +12/24 3 118936 27583 261 170 1048 +12/24 4 118936 27583 261 170 1048 +12/24 5 118936 27583 261 170 1048 +12/24 6 118936 27583 261 170 1048 + 1/06 7 119714 27713 260 170 1043 + 1/06 1 116092 27617 260 170 1043 + 1/06 2 125806 28014 260 170 1081 + 1/07 3 120702 28154 260 170 1083 + 1/07 1 116292 28028 260 170 1083 + 1/08 2 120590 28048 260 170 1073 + 1/08 1 116184 27922 260 170 1073 + 1/08 2 120618 28048 260 170 1073 + 1/08 1 116212 27922 260 170 1073 + 1/08 2 120618 28048 260 170 1073 + 1/08 1 116212 27922 260 170 1073 + 1/12 2 120662 28048 260 170 1073 + 1/12 1 116252 27922 260 170 1073 + 1/12 2 116276 27935 260 170 1074 + 1/13 3 116216 27880 260 170 1072 + 1/14 4 116280 27902 260 170 1074 + 1/14 5 116280 27902 260 170 1074 + 1/14 6 116256 27902 260 170 1074 + 1/15 7 116280 27902 260 170 1074 + 1/15 8 116938 27848 260 170 1071 + 1/15 9 116304 27848 260 170 1071 + 1/18 10 116324 27868 260 170 1072 + 1/19 11 119850 27910 260 170 1073 + 1/19 12 116400 27894 260 170 1074 + 1/25 13 116496 27918 260 170 1073 + 2/01 14 116928 27918 260 170 1073 + 6/13 15 130928 28973 260 170 1074 diff --git a/zork1.errors b/zork1.errors new file mode 100644 index 0000000..869b7b7 --- /dev/null +++ b/zork1.errors @@ -0,0 +1,50 @@ +zap of 6/13/89 15:17. +Release: 15 + 0 Inserting zork1.zap. +German characters; escape is %. + 64 Inserting zork1freq.xzap. + 698 Inserting zork1dat.zap. + 28973 Inserting zork1pur.zap. + 30515 Inserting tells.zap. + 31238 Inserting dungeon.zap. + 31552 Inserting globals.zap. + 33121 Inserting clock.zap. +"clock.zap", line 3: .FUNCT QUEUE:ANY:2:2,RTN:ATOM,TICK:FIX,CINT + -- unknown type "ATOM" +"clock.zap", line 9: .FUNCT INT:ANY:1:5,RTN:ATOM,DEMON:ATOM,E,C,INT + -- unknown type "ATOM" + -- unknown type "ATOM" +"clock.zap", line 26: .FUNCT CLOCKER:ANY:0:0,C,E,TICK:FIX,FLG:ATOM + -- unknown type "ATOM" + 33279 Inserting loop.zap. + 34400 Inserting parser.zap. + 41444 Inserting verbs.zap. +"verbs.zap", line 2191: .FUNCT ITAKE:ANY:0:1,VB:ATOM,CNT:FIX,OBJ:OBJECT,?TMP1 + -- unknown type "ATOM" + 54356 Inserting actions.zap. +"actions.zap", line 3816: .FUNCT V-SCORE:ANY:0:1,ASK?:ATOM + -- unknown type "ATOM" + 91444 Inserting hints.zap. + 92335 Inserting zork1str.zap. +Unreferenced global: THIEF-MELEE +Unreferenced string: STR?701 +Unreferenced global: HOST +Unreferenced function: UNTIE-FROM +Unreferenced global: DEF3C +Unreferenced global: HINT-WARNING +Unreferenced table: STRBEG +Unreferenced global: DEF2A +Unreferenced global: TROLL-MELEE +Unreferenced function: PUT-UP-CHAPTERS +Unreferenced string: STR?435 +Unreferenced global: CYCLOPS-MELEE +No segments defined. + +Lexical buffer space allocated: 608152 +Max lexical space allocated at any one time: 48012 +Object buffer space allocated: 144000 +Source bytes read: 561212 +Object bytes written: 131072 +Preload: 28973; 260 objects; 170 globals; 1074 words. +Used 1:57 +Elapsed time 2:30 diff --git a/zork1.lowcore b/zork1.lowcore new file mode 100644 index 0000000..f2cc37e --- /dev/null +++ b/zork1.lowcore @@ -0,0 +1,2 @@ + +0 \ No newline at end of file diff --git a/zork1.record b/zork1.record new file mode 100644 index 0000000..ed282bb --- /dev/null +++ b/zork1.record @@ -0,0 +1,409 @@ +ZILCH of 6/8/89 11:26 + +Combined ZIL Compiler Ver 2.0 (MIM) +----------------------------------- +Input file: /HOME/DEVELOPMENT/OLD/GERMAN/ZORK1.ZIL +[YZIP instructions] + +[Language is GERMAN, string escape is %] +[Character set for GERMAN installed] + +Loading abstract /HOME/DEVELOPMENT/OLD/GERMAN/TELLS.ZABSTR. +Loading /HOME/DEVELOPMENT/OLD/GERMAN/SYNTAX.ZIL and compiling it. +Loading abstract /HOME/DEVELOPMENT/OLD/GERMAN/DUNGEON.ZABSTR. +Loading abstract /HOME/DEVELOPMENT/OLD/GERMAN/GLOBALS.ZABSTR. +Loading abstract /HOME/DEVELOPMENT/OLD/GERMAN/CLOCK.ZABSTR. +Loading abstract /HOME/DEVELOPMENT/OLD/GERMAN/LOOP.ZABSTR. +Loading abstract /HOME/DEVELOPMENT/OLD/GERMAN/PARSER.ZABSTR. +Loading /HOME/DEVELOPMENT/OLD/GERMAN/VERBS.ZIL and compiling it. + +Compiling routine: V-VERBOSE +Compiling routine: V-BRIEF +Compiling routine: V-SUPER-BRIEF +Compiling routine: V-INVENTORY +Compiling routine: FINISH +Compiling routine: V-QUIT +Compiling routine: V-RESTART +Compiling routine: V-RESTORE +Compiling routine: V-SAVE +Compiling routine: V-SCRIPT +Compiling routine: V-UNSCRIPT +Compiling routine: V-$ID +Compiling routine: V-VERSION +Compiling routine: V-VERIFY +Compiling routine: V-COMMAND-FILE +Compiling routine: V-RANDOM +Compiling routine: V-RECORD +Compiling routine: V-UNRECORD +Compiling routine: V-ADVENT +Compiling routine: V-ALARM +Compiling routine: V-ANSWER +Compiling routine: V-ATTACK +Compiling routine: V-BACK +Compiling routine: V-BLAST +Compiling routine: PRE-BOARD +Compiling routine: V-BOARD +Compiling routine: V-BRUSH +Compiling routine: TELL-NO-PRSI +Compiling routine: PRE-BURN +Compiling routine: V-BURN +Compiling routine: V-CHOMP +Compiling routine: V-CLIMB-DOWN +Compiling routine: V-CLIMB-FOO +Compiling routine: V-CLIMB-ON +Compiling routine: V-CLIMB-UP +Compiling routine: V-CLOSE-OR-LOCK +Compiling routine: V-CLOSE-OR-UNLOCK +Compiling routine: V-CLOSE +Compiling routine: V-COMMAND +Compiling routine: V-COUNT +Compiling routine: V-CROSS +Compiling routine: V-CURSES +Compiling routine: V-CUT +Compiling routine: V-DEFLATE +Compiling routine: V-DIG +Compiling routine: V-DIG-WITH +Compiling routine: V-DISEMBARK +Compiling routine: V-DISENCHANT +Compiling routine: V-DRINK +Compiling routine: V-DRINK-FROM +Compiling routine: PRE-DROP +Compiling routine: V-DROP +Compiling routine: V-EAT +Compiling routine: HIT-SPOT +Compiling routine: V-ECHO +Compiling routine: V-ENCHANT +Compiling routine: REMOVE-CAREFULLY +Compiling routine: V-ENTER +Compiling routine: V-EXAMINE +Compiling routine: V-EXIT +Compiling routine: V-EXORCISE +Compiling routine: PRE-FILL +Compiling routine: V-FILL +Compiling routine: V-FIND +Compiling routine: V-FOLLOW +Compiling routine: V-FROBOZZ +Compiling routine: PRE-GIVE +Compiling routine: V-GIVE +Compiling routine: V-HATCH +Compiling routine: V-HELLO +Compiling routine: V-HINTS-OFF +Compiling routine: V-INCANT +Compiling routine: V-INFLATE +Compiling routine: V-KICK +Compiling routine: V-KISS +Compiling routine: V-KNOCK +Compiling routine: V-LAMP-OFF +Compiling routine: V-LAMP-ON +Compiling routine: V-LAUNCH +Compiling routine: V-LEAN-ON +Compiling routine: V-LEAP +Compiling routine: V-LEAVE +Compiling routine: V-LISTEN +Compiling routine: V-LOCK +Compiling routine: V-LOOK +Compiling routine: V-LOOK-BEHIND +Compiling routine: V-LOOK-INSIDE +Compiling routine: V-LOOK-ON +Compiling routine: V-LOOK-UNDER +Compiling routine: V-LOWER +Compiling routine: V-MAKE +Compiling routine: V-MELT +Compiling routine: PRE-MOVE +Compiling routine: V-MOVE +Compiling routine: V-MUMBLE +Compiling routine: PRE-MUNG +Compiling routine: V-MUNG +Compiling routine: V-NO +Compiling routine: V-ODYSSEUS +Compiling routine: V-OIL +Compiling routine: V-OPEN +Compiling routine: V-OVERBOARD +Compiling routine: V-PICK +Compiling routine: V-PLAY +Compiling routine: V-PLUG +Compiling routine: V-POUR-ON +Compiling routine: V-PRAY +Compiling routine: V-PUMP +Compiling routine: V-PUSH +Compiling routine: V-PUSH-TO +Compiling routine: PRE-PUT +Compiling routine: V-PUT +Compiling routine: V-PUT-BEHIND +Compiling routine: V-PUT-ON +Compiling routine: V-PUT-UNDER +Compiling routine: V-RAISE +Compiling routine: PRE-READ +Compiling routine: V-READ +Compiling routine: V-READ-PAGE +Compiling routine: V-REPENT +Compiling routine: V-REPLY +Compiling routine: V-RING +Compiling routine: V-RUB +Compiling routine: V-SAY +Compiling routine: V-SEARCH +Compiling routine: V-SEND +Compiling routine: V-SCHENKE +Compiling routine: PRE-SGIVE +Compiling routine: V-SGIVE +Compiling routine: V-SHAKE +Compiling routine: SHAKE-LOOP +Compiling routine: V-SKIP +Compiling routine: V-SMELL +Compiling routine: V-SPIN +Compiling routine: V-SPRAY +Compiling routine: V-SQUEEZE +Compiling routine: V-SSPRAY +Compiling routine: V-STAB +Compiling routine: V-STAND +Compiling routine: V-STAY +Compiling routine: V-SWIM +Compiling routine: V-SWING +Compiling routine: V-TRAGE +Compiling routine: PRE-TAKE +Compiling routine: V-TAKE +Compiling routine: V-TELL +Compiling routine: V-TEST-IT +Compiling routine: V-THROUGH +Compiling routine: V-THROW +Compiling routine: V-THROW-OFF +Compiling routine: V-TIE +Compiling routine: V-TIE-UP +Compiling routine: V-TREASURE +Compiling routine: PRE-TURN +Compiling routine: V-TURN +Compiling routine: V-UNLOCK +Compiling routine: V-UNTIE +Compiling routine: V-USE +Compiling routine: V-WAIT +Compiling routine: V-WALK +Compiling routine: V-WALK-AROUND +Compiling routine: V-WALK-TO +Compiling routine: V-WAVE +Compiling routine: V-WEAR +Compiling routine: V-WIN +Compiling routine: V-WIND +Compiling routine: V-WISH +Compiling routine: V-YELL +Compiling routine: V-YES +Compiling routine: V-ZORK +Compiling routine: V-FIRST-LOOK +Compiling routine: DESCRIBE-ROOM +Compiling routine: DESCRIBE-OBJECTS +Compiling routine: DESCRIBE-OBJECT +Compiling routine: PRINT-CONTENTS +Compiling routine: PRINT-CONT +Compiling routine: FIRSTER +Compiling routine: SEE-INSIDE? +Compiling routine: SCORE-UPD +Compiling routine: SCORE-OBJ +Compiling routine: YES? +Compiling routine: ITAKE +Compiling routine: IDROP +Compiling routine: CCOUNT +Compiling routine: WEIGHT +Compiling routine: NO-GO-TELL +Compiling routine: GOTO +Compiling routine: LKP +Compiling routine: DO-WALK +Compiling routine: GLOBAL-IN? +Compiling routine: FIND-IN +Compiling routine: HELD? +Compiling routine: OTHER-SIDE +Compiling routine: MUNG-ROOM +Compiling routine: THIS-IS-IT +Abstracting VERBS to /HOME/DEVELOPMENT/OLD/GERMAN/VERBS. +Loading abstract /HOME/DEVELOPMENT/OLD/GERMAN/ACTIONS.ZABSTR. +Loading /HOME/DEVELOPMENT/OLD/GERMAN/HINTS.ZIL and compiling it. + +Compiling routine: V-HINT +Compiling routine: PICK-QUESTION +Compiling routine: ERASE-CURSOR +Compiling routine: NEW-CURSOR +Compiling routine: INVERSE-LINE +Compiling routine: DISPLAY-HINT +Compiling routine: PUT-UP-QUESTIONS +Compiling routine: PUT-UP-CHAPTERS +Compiling routine: INIT-HINT-SCREEN +Compiling routine: CENTER-LINE +Compiling routine: LEFT-LINE +Compiling routine: RIGHT-LINE +Abstracting HINTS to /HOME/DEVELOPMENT/OLD/GERMAN/HINTS. +Vocabulary: 1074 + +Prepositions: 39 + +AB FEST HINTER NACH UM +AN FUER HINUNTER NICHT UNTER +AT HERAB HOCH NIEDER UP +AUF HERUM IN OBJEKT VON +AUS HERUNTER INSTAND QUER WEG +DICH HERUNTERFALLEN LIEGEN RAUS WITH +DURCH HINAUF LOS RUNTER ZU +FALLEN HINEIN MIT UEBER + +Real globals: 166 + +ABOVE-GROUND HINT-WARNING P-NCN +AGAIN-DIR HINTS P-NOT-HERE +AGAIN-LEXV HINTS-OFF P-NUMBER +ALWAYS-LIT HOST P-OCLAUSE +BASE-SCORE HOUSE-AROUND P-OFLAG +BAT-DROPS HS P-ONEOBJ +BDIGS IN-HOUSE-AROUND P-OTBL +BEACH-DIG INDENTS P-OVTBL +BUOY-FLAG JUMPLOSS P-PRSI +C-DEMONS KITCHEN-WINDOW-FLAG P-PRSO +C-INTS LAMP-TABLE P-SLOCBITS +C-TABLE LIGHT-SHAFT P-SYNTAX +CAGE-TOP LINE-TABLE P-TABLE +CANDLE-TABLE LIT P-VTBL +CHAPT-NUM LLD-FLAG P-WALK-DIR +CHEIGHT LOAD-ALLOWED P-WON +CLOCK-WAIT LOAD-MAX P-XADJ +COFFIN-CURE LOUD-FLAG P-XNAM +COLUMN-TABLE LOUD-RUNS PLAYER +CUR-POS LOW-TIDE PRSA +CWIDTH LUCKY PRSI +CYCLOMAD MAGIC-FLAG PRSO +CYCLOPS-FLAG MATCH-COUNT QUEST-NUM +CYCLOPS-MELEE MIRROR-MUNG QUOTE-FLAG +CYCLOWRATH MOVES RAINBOW-FLAG +DEAD OHERE RESERVE-LEXV +DEATHS OLD-LEN RESERVE-PTR +DEF1 OOPS-INBUF RIVER-LAUNCH +DEF1-RES OOPS-TABLE RIVER-NEXT +DEF2-RES P-AADJ RIVER-SPEEDS +DEF2A P-ACLAUSE ROBBER-C-DESC +DEF2B P-ACT ROBBER-U-DESC +DEF3-RES P-ADJ RUG-MOVED +DEF3A P-ADVERB SCORE +DEF3B P-ANAM SCORE-MAX +DEF3C P-AND SING-SONG +DEFLATE P-BUTS SPRAYED? +DESC-OBJECT P-CCTBL SUPER-BRIEF +DIROUT-TBL P-CONT SWIMYUKS +DOME-FLAG P-DIR THIEF-ENGROSSED +DROWNINGS P-DIRECTION THIEF-HERE +DUMMY P-END-ON-PREP THIEF-MELEE +EGG-SOLVE P-GETFLAGS TROLL-FLAG +EMPTY-HANDED P-GWIMBIT TROLL-MELEE +FALSE-FLAG P-HER-OBJECT VERBOSE +FOREST-AROUND P-HIM-OBJECT VILLAINS +FUMBLE-NUMBER P-INBUF WATER-LEVEL +FUMBLE-PROB P-IT-OBJECT WHEEEEE +GATE-FLAG P-ITBL WIDTH +GATES-OPEN P-LEN WINNER +GRATE-REVEALED P-LEXV WON-FLAG +GRUNLOCK P-MATCHLEN XB +GWIM-PRSO? P-MERGE XC +HELLOS P-MERGED YUKS +HERE P-MULT +HERO-MELEE P-NAM + +Objects: 260 + +ADVENTURER GATE PAINTING +ADVERTISEMENT GHOSTS PATH +ALTAR GLOBAL-OBJECTS PATHOBJ +ARAGAIN-FALLS GLOBAL-WATER PEDESTAL +ATLANTIS-ROOM GRATE POT-OF-GOLD +ATTIC GRATING-CLEARING PRAYER +ATTIC-TABLE GRATING-ROOM PUMP +AXE GROUND PUNCTURED-BOAT +BAG-OF-COINS GRUE PUTTY +BAR GUIDE RAILING +BARROW GUNK RAINBOW +BARROW-DOOR HANDS RAISED-BASKET +BAT HER RED-BUTTON +BAT-ROOM HIM RESERVOIR +BAUBLE HOT-BELL RESERVOIR-NORTH +BELL IN-STREAM RESERVOIR-SOUTH +BLUE-BUTTON INFLATABLE-BOAT RIVER +BOARD INFLATED-BOAT RIVER-1 +BOARDED-WINDOW INTDIR RIVER-2 +BOAT-LABEL INTNUM RIVER-3 +BODIES IT RIVER-4 +BOLT JADE RIVER-5 +BONES KEYS ROOMS +BOOK KITCHEN ROPE +BOTTLE KITCHEN-TABLE ROUND-ROOM +BRACELET KITCHEN-WINDOW RUG +BROKEN-CANARY KNIFE RUSTY-KNIFE +BROKEN-EGG LADDER SAILOR +BROKEN-LAMP LADDER-BOTTOM SAND +BROWN-BUTTON LADDER-TOP SANDWICH-BAG +BUBBLE LAKE SANDY-BEACH +BUOY LAMP SANDY-CAVE +BURNED-OUT-LANTERN LAND-OF-LIVING-DEAD SCARAB +CANARY LARGE-BAG SCEPTRE +CANDLES LEAK SCREWDRIVER +CANYON-BOTTOM LEAVES SHAFT-ROOM +CANYON-VIEW LIVING-ROOM SHORE +CELLAR LOCAL-GLOBALS SHOVEL +CHAIN LOUD-ROOM SKULL +CHALICE LOWER-SHAFT SLIDE +CHASM LOWERED-BASKET SLIDE-ROOM +CHASM-ROOM LUNCH SMALL-CAVE +CHIMNEY LUNGS SMELLY-ROOM +CLEARING MACHINE SONGBIRD +CLIFF-MIDDLE MACHINE-ROOM SOUTH-OF-HOUSE +CLIMBABLE-CLIFF MACHINE-SWITCH SOUTH-TEMPLE +COAL MAILBOX SQUEEKY-ROOM +COFFIN MAINTENANCE-ROOM STAIRS +COLD-PASSAGE MAP STILETTO +CONTROL-PANEL MATCH STONE-BARROW +CRACK MAZE-1 STRANGE-PASSAGE +CYCLOPS MAZE-10 STREAM +CYCLOPS-ROOM MAZE-11 STREAM-VIEW +DAM MAZE-12 STUDIO +DAM-BASE MAZE-13 SWORD +DAM-LOBBY MAZE-14 TEETH +DAM-ROOM MAZE-15 THIEF +DAMP-CAVE MAZE-2 TIMBER-ROOM +DEAD-END-1 MAZE-3 TIMBERS +DEAD-END-2 MAZE-4 TINY-CAVE +DEAD-END-3 MAZE-5 TOOL-CHEST +DEAD-END-4 MAZE-6 TORCH +DEAD-END-5 MAZE-7 TORCH-ROOM +DEEP-CANYON MAZE-8 TRAP-DOOR +DIAMOND MAZE-9 TREASURE-ROOM +DOME ME TREE +DOME-ROOM MINE-1 TRIDENT +DOOR-P MINE-2 TROLL +EAST-OF-CHASM MINE-3 TROLL-ROOM +EAST-OF-HOUSE MINE-4 TROPHY-CASE +EGG MINE-ENTRANCE TRUNK +EGYPT-ROOM MIRROR-1 TUBE +EMERALD MIRROR-2 TWISTING-PASSAGE +END-OF-RAINBOW MIRROR-ROOM-1 UP-A-TREE +ENGRAVINGS MIRROR-ROOM-2 WALL +ENGRAVINGS-CAVE MOUNTAIN-RANGE WATER +ENTRANCE-TO-HADES MOUNTAINS WEST-OF-HOUSE +EW-PASSAGE NAILS WHITE-CLIFF +FOREST NARROW-PASSAGE WHITE-CLIFFS-NORTH +FOREST-1 NEST WHITE-CLIFFS-SOUTH +FOREST-2 NORTH-OF-HOUSE WHITE-HOUSE +FOREST-3 NORTH-TEMPLE WINDING-PASSAGE +FRONT-DOOR NOT-HERE-OBJECT WOODEN-DOOR +GALLERY NS-PASSAGE WRENCH +GARLIC ON-RAINBOW YELLOW-BUTTON +GAS OWNERS-MANUAL ZORKMID +GAS-ROOM PAINT + +Properties: 30 + +P?ACTION P?CONTFCN P?LANDEN P?OST P?SO P?TEXT +P?ADJDESC P?DESCFCN P?LDESC P?RAUF P?STRENGTH P?TVALUE +P?ADJECTIVE P?FDESC P?NO P?RAUS P?SUED P?VALUE +P?ADVFCN P?GLOBAL P?NORD P?RUNTER P?SW P?VTYPE +P?CAPACITY P?HINEIN P?NW P?SIZE P?SYNONYM P?WEST + +Flags: 35 + +ACTORBIT DIEBIT INVISIBLE OPENBIT STAGGERED TRYTAKEBIT +BURNBIT DOORBIT KLUDGEBIT READBIT SURFACEBIT TURNBIT +CLIMBBIT DRINKBIT LIGHTBIT RLANDBIT TAKEBIT VEHBIT +CONTBIT FIGHTBIT NDESCBIT RMUNGBIT TOOLBIT WEAPONBIT +DASBIT FLAMEBIT NONLANDBIT SACREDBIT TOUCHBIT WEARBIT +DERBIT FOODBIT ONBIT SEARCHBIT TRANSBIT diff --git a/zork1.serial b/zork1.serial new file mode 100644 index 0000000..fba7ed5 --- /dev/null +++ b/zork1.serial @@ -0,0 +1 @@ +143 diff --git a/zork1.syms b/zork1.syms new file mode 100644 index 0000000000000000000000000000000000000000..8ca1322776d538176ce6c01480131907d2dd9bab GIT binary patch literal 190762 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

wl=AU(yT-yi|hG2g?FH_ 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 AasU7T literal 0 HcmV?d00001 diff --git a/zork1.zap b/zork1.zap new file mode 100644 index 0000000..374db43 --- /dev/null +++ b/zork1.zap @@ -0,0 +1,56 @@ + .NEW 6 + .LANG 1,37 + ; CHARACTER SET DEFINITIONS + .CHRSET 0,101,110,105,115,116,114,97,104,100,117,99,108,46,103,111,109,98,102,68,107,44,119,122,112,83,157 + .CHRSET 1,118,155,69,87,156,71,84,70,65,66,75,90,78,73,72,82,77,121,33,76,63,86,79,106,34,80 + .CHRSET 2,32,32,58,85,40,41,39,74,42,89,120,113,160,45,93,62,91,159,158,161,49,57,51,53,56,54 +; Low core locations +%ZVERSION:: .BYTE 6 + .BYTE FLAGS +%ZORKID:: ZORKID +%ENDLOD:: ENDLOD +%START:: GO +%VOCAB:: VOCAB +%OBJECT:: OBJECT +%GLOBAL:: GLOBAL +%PURBOT:: IMPURE +%FLAGS:: .WORD 0 +%SERIAL:: .WORD 0 +%SERI1:: .WORD 0 +%SERI2:: .WORD 0 +%FWORDS:: WORDS +%PLENTH:: .WORD 0 +%PCHKSM:: .WORD 0 +%INTWRD:: .WORD 0 +%SCRWRD:: .WORD 0 +%HWRD:: .WORD 0 +%VWRD:: .WORD 0 +%FWRD:: .WORD 0 +%FOFF:: FOFF +%SOFF:: SOFF +%CLRWRD:: .WORD 0 +%TCHAR:: 0 +%TWID:: .WORD 0 +%CRFUNC:: .WORD 0 +%CHRSET:: CHRSET +%EXTAB:: 0 + .WORD 0 + .WORD 0 + .WORD 0 + .WORD 0 + .INSERT "ZORK1FREQ" ;Frequent word table + .INSERT "ZORK1DAT" ; Data file + .INSERT "ZORK1PUR" + .INSERT "TELLS" + .INSERT "DUNGEON" + .INSERT "GLOBALS" + .INSERT "CLOCK" + .INSERT "LOOP" + .INSERT "PARSER" + .INSERT "VERBS" + .INSERT "ACTIONS" + .INSERT "HINTS" + + .INSERT "ZORK1STR" + + .END diff --git a/zork1.zil b/zork1.zil new file mode 100644 index 0000000..ee9787c --- /dev/null +++ b/zork1.zil @@ -0,0 +1,43 @@ +"ZORK1 for + Zork I: The Great Underground Empire + (c) Copyright 1983 Infocom, Inc. All Rights Reserved. + -- GERMAN EDITION" + + + + + + + + + + + + + + )> + +ON!-INITIAL +OFF!-INITIAL ;"makes dubugging possible -pld" + +; + + + + + + + + + + + + + + + + + + diff --git a/zork1.zip b/zork1.zip new file mode 100644 index 0000000000000000000000000000000000000000..9619a7a2b1f44dcf98c9b1dc63315891e8b57a15 GIT binary patch literal 131072 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" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?INSTAND:: .ZWORD "instand" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?INSTAND + .BYTE 0 +W?BLEIB:: .ZWORD "bleib" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BLEIB + .BYTE 0 +W?FALLT%UR:: .ZWORD "fallt%ur" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STEIGE:: .ZWORD "steige" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STEIG + .BYTE 0 +W?ERHOEHE:: .ZWORD "erhoehe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HEB + .BYTE 0 +W?WALD:: .ZWORD "wald" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SILBERKELCH:: .ZWORD "silberkel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NEST:: .ZWORD "nest" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?T%OTE:: .ZWORD "t%ote" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOET + .BYTE 0 +W?BEFREIE:: .ZWORD "befreie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOEPF + .BYTE 0 +W?ENORMEN:: .ZWORD "enormen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?EI:: .ZWORD "ei" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VERSTECK:: .ZWORD "versteck" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEG + .BYTE 0 +W?GRUENEN:: .ZWORD "gruenen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TWISTING:: .ZWORD "twisting" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DUNKELE:: .ZWORD "dunkele" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?B%URSTE:: .ZWORD "b%urste" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUTZ + .BYTE 0 +W?REFLEXION:: .ZWORD "reflexion" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STOSSE:: .ZWORD "stosse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STOSS + .BYTE 0 +W?LANTERNE:: .ZWORD "lanterne" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FELS:: .ZWORD "fels" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?#UNRECORD:: .ZWORD "#unrecord" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#UNRECORD + .BYTE 0 +W?TREPP:: .ZWORD "trepp" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KUESS:: .ZWORD "kuess" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KUESS + .BYTE 0 +W?GEISTERZAHL:: .ZWORD "geisterza" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KNOTE:: .ZWORD "knote" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KNOEPF + .BYTE 0 +W?ERH%OHE:: .ZWORD "erh%ohe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HEB + .BYTE 0 +W?MANN:: .ZWORD "mann" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STUECK:: .ZWORD "stueck" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GR%U%S:: .ZWORD "gr%u%s" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GRUESS + .BYTE 0 +W?TOEDLICHE:: .ZWORD "toedliche" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?QWESDU:: .ZWORD "qwesdu" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?QWESDU + .BYTE 0 +W?FLUCHE:: .ZWORD "fluche" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLUCH + .BYTE 0 +W?OSTEN:: .ZWORD "osten" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 62 + .BYTE 0 +W?BRETTER:: .ZWORD "bretter" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VERFLUCH:: .ZWORD "verfluch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLUCH + .BYTE 0 +W?AT:: .ZWORD "at" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AT + .BYTE 0 +W?SCHOENE:: .ZWORD "schoene" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ZAUBERE:: .ZWORD "zaubere" + .BYTE PS?VERB+PS?ADJECTIVE+P1?VERB + .BYTE ACT?ZAUBER + .BYTE 0 +W?ENGEN:: .ZWORD "engen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?K%AFIG:: .ZWORD "k%afig" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SCHMECKE:: .ZWORD "schmecke" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ISS + .BYTE 0 +W?WARTE:: .ZWORD "warte" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WART + .BYTE 0 +W?KUESSE:: .ZWORD "kuesse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KUESS + .BYTE 0 +W?BL%ATTERE:: .ZWORD "bl%attere" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LIES + .BYTE 0 +W?UND:: .ZWORD "und" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?SEND:: .ZWORD "send" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SEND + .BYTE 0 +W?SCH%ABIGEN:: .ZWORD "sch%abige" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KLEB:: .ZWORD "kleb" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KLEB + .BYTE 0 +W?%UBERGIB:: .ZWORD "%ubergib" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KOZ + .BYTE 0 +W?NUSCHELE:: .ZWORD "nuschele" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MURMLE + .BYTE 0 +W?JADE:: .ZWORD "jade" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?AUSSEHEND:: .ZWORD "aussehend" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TYP:: .ZWORD "typ" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KOHLENOXYD:: .ZWORD "kohlenoxy" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SCHMELZE:: .ZWORD "schmelze" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHMELZ + .BYTE 0 +W?H%OLZERNE:: .ZWORD "h%olzerne" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?AUFZIEHEN:: .ZWORD "aufziehen" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ZORKKNET:: .ZWORD "zorkknet" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?INVENTUR:: .ZWORD "inventur" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?INVENTAR + .BYTE 0 +W?GLETSCH:: .ZWORD "gletsch" + .BYTE PS?OBJECT+PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RAMPE:: .ZWORD "rampe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DIEB:: .ZWORD "dieb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?B%OSE:: .ZWORD "b%ose" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOER:: .ZWORD "hoer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HOER + .BYTE 0 +W?WAT:: .ZWORD "wat" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHWIMM + .BYTE 0 +W?GEWINNE:: .ZWORD "gewinne" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GEWINN + .BYTE 0 +W?AU%SER:: .ZWORD "au%ser" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?SCHL%URFE:: .ZWORD "schl%urfe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TRINK + .BYTE 0 +W?DICH:: .ZWORD "dich" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?DICH + .BYTE 0 +W?WIEDERHERSTELLUNG:: .ZWORD "wiederher" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WIEDERHERSTELLUNG + .BYTE 0 +W?AM:: .ZWORD "am" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AN + .BYTE 0 +W?HOELZERNE:: .ZWORD "hoelzerne" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ZERBRECHE:: .ZWORD "zerbreche" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ZERSTOER + .BYTE 0 +W?UP:: .ZWORD "up" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?UP + .BYTE 0 +W?GEBISS:: .ZWORD "gebiss" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PLASTIKBLASE:: .ZWORD "plastikbl" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GREIFE:: .ZWORD "greife" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GREIF + .BYTE 0 +W?SCHNUEFFLE:: .ZWORD "schnueffl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?RIECH + .BYTE 0 +W?DUNKLEN:: .ZWORD "dunklen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SAEUBER:: .ZWORD "saeuber" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUTZ + .BYTE 0 +W?FICHTE:: .ZWORD "fichte" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VAMPIRE:: .ZWORD "vampire" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?REFLEX:: .ZWORD "reflex" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KOMM:: .ZWORD "komm" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLG + .BYTE 0 +W?HUEPF:: .ZWORD "huepf" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SPRING + .BYTE 0 +W?VOGELNEST:: .ZWORD "vogelnest" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?INS:: .ZWORD "ins" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?IN + .BYTE 0 +W?KNOBLAUCHZEHE:: .ZWORD "knoblauch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BIND:: .ZWORD "bind" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BIND + .BYTE 0 +W?TRAGE:: .ZWORD "trage" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TRAG + .BYTE 0 +W?ZU:: .ZWORD "zu" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?ZU + .BYTE 0 +W?VAMPIRFLEDERMAUS:: .ZWORD "vampirfle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LIESE:: .ZWORD "liese" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LIES + .BYTE 0 +W?GEPLATZTEN:: .ZWORD "geplatzte" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TESTIT:: .ZWORD "testit" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TESTIT + .BYTE 0 +W?ZERSCHMETTERE:: .ZWORD "zerschmet" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ZERSTOER + .BYTE 0 +W?GEM%ALDE:: .ZWORD "gem%alde" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MITTAGESSEN:: .ZWORD "mittagess" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOCH:: .ZWORD "hoch" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?HOCH + .BYTE 0 +W?ES:: .ZWORD "es" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NEIN:: .ZWORD "nein" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?NEIN + .BYTE 0 +W?METAL:: .ZWORD "metal" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FAHRRADPUMPE:: .ZWORD "fahrradpu" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?URALTE:: .ZWORD "uralte" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?#RANDOM:: .ZWORD "#random" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?#RANDOM + .BYTE 0 +W?STO%SE:: .ZWORD "sto%se" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STOSS + .BYTE 0 +W?DURCH:: .ZWORD "durch" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?DURCH + .BYTE 0 +W?Z%AHNE:: .ZWORD "z%ahne" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?F%ULL:: .ZWORD "f%ull" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FUELL + .BYTE 0 +W?LIEBKOS:: .ZWORD "liebkos" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REIB + .BYTE 0 +W?WISH:: .ZWORD "wish" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WISH + .BYTE 0 +W?KUE%S:: .ZWORD "kue%s" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KUESS + .BYTE 0 +W?SIETE:: .ZWORD "siete" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DURCHL%OCHERE:: .ZWORD "durchl%oc" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHNEID + .BYTE 0 +W?HUEPFE:: .ZWORD "huepfe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SPRING + .BYTE 0 +W?F%UHL:: .ZWORD "f%uhl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REIB + .BYTE 0 +W?AEGYPTEN:: .ZWORD "aegypten" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?AUF:: .ZWORD "auf" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AUF + .BYTE 0 +W?AXT:: .ZWORD "axt" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SCHIPPE:: .ZWORD "schippe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?%UBERQUER:: .ZWORD "%uberquer" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UEBERQUER + .BYTE 0 +W?ENTFENRNE:: .ZWORD "entfenrne" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?NIMM + .BYTE 0 +W?IST:: .ZWORD "ist" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?VERSCH%UTTE:: .ZWORD "versch%ut" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHUETT + .BYTE 0 +W?ELFEN:: .ZWORD "elfen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KLIPPE:: .ZWORD "klippe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOERE:: .ZWORD "hoere" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HOER + .BYTE 0 +W?BRAUNER:: .ZWORD "brauner" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?S%UDEN:: .ZWORD "s%uden" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 60 + .BYTE 0 +W?POSTSACK:: .ZWORD "postsack" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?O:: .ZWORD "o" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 62 + .BYTE 0 +W?DEMOLIERE:: .ZWORD "demoliere" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ZERSTOER + .BYTE 0 +W?MESSINGGLOCKE:: .ZWORD "messinggl" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?W%ASCHETROCKNER:: .ZWORD "w%aschetr" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SAVE:: .ZWORD "save" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAVE + .BYTE 0 +W?FOLG:: .ZWORD "folg" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLG + .BYTE 0 +W?R%UCKSTRAHLUNG:: .ZWORD "r%uckstra" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ROBBER:: .ZWORD "robber" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?UMGEBLASENE:: .ZWORD "umgeblase" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FORBIDDING:: .ZWORD "forbiddin" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TREPPE:: .ZWORD "treppe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STOPF:: .ZWORD "stopf" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEG + .BYTE 0 +W?SCH%ONEN:: .ZWORD "sch%onen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?S%UDWEST:: .ZWORD "s%udwest" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 56 + .BYTE 0 +W?VERBRENNE:: .ZWORD "verbrenne" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VERBRENN + .BYTE 0 +W?SCHLEI%S:: .ZWORD "schlei%s" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHLIESS + .BYTE 0 +W?HINEIN:: .ZWORD "hinein" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?DIRECTION + .BYTE 53 + .BYTE PR?HINEIN +W?SCHATZ:: .ZWORD "schatz" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?SCHATZ + .BYTE 0 +W?ZAUBEREN:: .ZWORD "zauberen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GEL%ANDER:: .ZWORD "gel%ander" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VERDAMMT:: .ZWORD "verdammt" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLUCH + .BYTE 0 +W?MIST:: .ZWORD "mist" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FLUCH + .BYTE 0 +W?SCHMEI%S:: .ZWORD "schmei%s" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WERF + .BYTE 0 +W?GROSSE:: .ZWORD "grosse" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PERGAMENT:: .ZWORD "pergament" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DUNKELEN:: .ZWORD "dunkelen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BRETTERN:: .ZWORD "brettern" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?L%AGLICHER:: .ZWORD "l%agliche" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GESTELL:: .ZWORD "gestell" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DECKEL:: .ZWORD "deckel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BINDE:: .ZWORD "binde" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BIND + .BYTE 0 +W?TEMPEL:: .ZWORD "tempel" + .BYTE PS?OBJECT+PS?VERB+P1?VERB + .BYTE ACT?SCHATZ + .BYTE 0 +W?VOGEL:: .ZWORD "vogel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RITZE:: .ZWORD "ritze" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SUPERKURZ:: .ZWORD "superkurz" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SUPER + .BYTE 0 +W?ERZ%AHLE:: .ZWORD "erz%ahle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SAG + .BYTE 0 +W?ZAEHLE:: .ZWORD "zaehle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ZAEHL + .BYTE 0 +W?%ASTEN:: .ZWORD "%asten" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?K%ASTEN:: .ZWORD "k%asten" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?REINIG:: .ZWORD "reinig" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUTZ + .BYTE 0 +W?SEUFZE:: .ZWORD "seufze" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?MURMLE + .BYTE 0 +W?HOHLKOPF:: .ZWORD "hohlkopf" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BRAUNEN:: .ZWORD "braunen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SARG:: .ZWORD "sarg" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?H%OR:: .ZWORD "h%or" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HOER + .BYTE 0 +W?BAUEME:: .ZWORD "baueme" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KRISTALSCH%ADEL:: .ZWORD "kristalsc" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GEBALK:: .ZWORD "gebalk" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ANTIKE:: .ZWORD "antike" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BEFIEHL:: .ZWORD "befiehl" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BEFIEHL + .BYTE 0 +W?EINE:: .ZWORD "eine" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?ZERBROCHE:: .ZWORD "zerbroche" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BRICH:: .ZWORD "brich" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BRICH + .BYTE 0 +W?FLASHE:: .ZWORD "flashe" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STELL:: .ZWORD "stell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEG + .BYTE 0 +W?STEIT%UR:: .ZWORD "steit%ur" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VAMPIREN:: .ZWORD "vampiren" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TISCH:: .ZWORD "tisch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FANG:: .ZWORD "fang" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?NIMM + .BYTE 0 +W?GRUND:: .ZWORD "grund" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NW:: .ZWORD "nw" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 58 + .BYTE 0 +W?NACHSCHLUESSEL:: .ZWORD "nachschlu" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TROPHY:: .ZWORD "trophy" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LA%S:: .ZWORD "la%s" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LASS + .BYTE 0 +W?FALL:: .ZWORD "fall" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ZUEND:: .ZWORD "zuend" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VERBRENN + .BYTE 0 +W?SCHOENEN:: .ZWORD "schoenen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TAUCHE:: .ZWORD "tauche" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SPRING + .BYTE 0 +W?DIE:: .ZWORD "die" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?GEBI%S:: .ZWORD "gebi%s" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?B%OSARTIGE:: .ZWORD "b%osartig" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?UNTERSUCH:: .ZWORD "untersuch" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?UNTERSUCH + .BYTE 0 +W?WAESCHETROCKNER:: .ZWORD "waeschetr" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?XYZZY:: .ZWORD "xyzzy" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PLUGH + .BYTE 0 +W?BETE:: .ZWORD "bete" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?BET + .BYTE 0 +W?BUCH:: .ZWORD "buch" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?POSEIDONS:: .ZWORD "poseidons" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SMARAGD:: .ZWORD "smaragd" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TRITT:: .ZWORD "tritt" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TRITT + .BYTE 0 +W?PLATINISCH:: .ZWORD "platinisc" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TUBE:: .ZWORD "tube" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?TREPPENHAUS:: .ZWORD "treppenha" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SCHMEISSE:: .ZWORD "schmeisse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WERF + .BYTE 0 +W?WESTEN:: .ZWORD "westen" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 61 + .BYTE 0 +W?KLAREN:: .ZWORD "klaren" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KOERPERHAUFEN:: .ZWORD "koerperha" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SAND:: .ZWORD "sand" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BERG:: .ZWORD "berg" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?REINIGE:: .ZWORD "reinige" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUTZ + .BYTE 0 +W?HAENDE:: .ZWORD "haende" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?YELL:: .ZWORD "yell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?YELL + .BYTE 0 +W?R:: .ZWORD "r" + .BYTE PS?DIRECTION+PS?PREPOSITION+P1?DIRECTION + .BYTE 54 + .BYTE PR?RUNTER +W?DIAGNOS:: .ZWORD "diagnos" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?DIAGNOSE + .BYTE 0 +W?FALLEN:: .ZWORD "fallen" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?FALLEN + .BYTE 0 +W?SAEUBERE:: .ZWORD "saeubere" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUTZ + .BYTE 0 +W?SCMEIRE:: .ZWORD "scmeire" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHMIER + .BYTE 0 +W?OBERFLAECHE:: .ZWORD "oberflaec" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SUEDOST:: .ZWORD "suedost" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 57 + .BYTE 0 +W?ZUENDE:: .ZWORD "zuende" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VERBRENN + .BYTE 0 +W?OEFFN:: .ZWORD "oeffn" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?OEFFN + .BYTE 0 +W?LAEUFER:: .ZWORD "laeufer" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NORDWEST:: .ZWORD "nordwest" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 58 + .BYTE 0 +W?SUEDWEST:: .ZWORD "suedwest" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 56 + .BYTE 0 +W?PUTZ:: .ZWORD "putz" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUTZ + .BYTE 0 +W?LEHN:: .ZWORD "lehn" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LEHN + .BYTE 0 +W?LIEBKOSE:: .ZWORD "liebkose" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REIB + .BYTE 0 +W?SCHWERT:: .ZWORD "schwert" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VERFOLG:: .ZWORD "verfolg" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FOLG + .BYTE 0 +W?VOLL:: .ZWORD "voll" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?KERZENPAAR:: .ZWORD "kerzenpaa" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DES:: .ZWORD "des" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?BIESTER:: .ZWORD "biester" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?H%ORE:: .ZWORD "h%ore" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?HOER + .BYTE 0 +W?KUGEL:: .ZWORD "kugel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VERLASS:: .ZWORD "verlass" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VERLASS + .BYTE 0 +W?SCHMIER:: .ZWORD "schmier" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHMIER + .BYTE 0 +W?BL%ATTERHAUFEN:: .ZWORD "bl%atterh" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?K%APFE:: .ZWORD "k%apfe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GREIF + .BYTE 0 +W?PERIOD:: .ZWORD "." + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?VERD%ACHTIG:: .ZWORD "verd%acht" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SEH:: .ZWORD "seh" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHAU + .BYTE 0 +W?GRO%SE:: .ZWORD "gro%se" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HOLZT%UR:: .ZWORD "holzt%ur" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?RUNEN:: .ZWORD "runen" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MUND:: .ZWORD "mund" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STEINE:: .ZWORD "steine" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?CHOMP:: .ZWORD "chomp" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?KOZ + .BYTE 0 +W?%OLE:: .ZWORD "%ole" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHMIER + .BYTE 0 +W?WEST:: .ZWORD "west" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 61 + .BYTE 0 +W?MESSINGEN:: .ZWORD "messingen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?GOLDTOPF:: .ZWORD "goldtopf" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?OEFFNE:: .ZWORD "oeffne" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?OEFFN + .BYTE 0 +W?HOHLKOPFBERGE:: .ZWORD "hohlkopfb" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?OBERBL%ACHE:: .ZWORD "oberbl%ac" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?NACHSCHL%USSEL:: .ZWORD "nachschl%" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?N%AGEL:: .ZWORD "n%agel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?EINER:: .ZWORD "einer" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?BOESARTIGE:: .ZWORD "boesartig" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?HINAUF:: .ZWORD "hinauf" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?HINAUF + .BYTE 0 +W?AB:: .ZWORD "ab" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?AB + .BYTE 0 +W?GR%UNEN:: .ZWORD "gr%unen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SCHAU:: .ZWORD "schau" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHAU + .BYTE 0 +W?VERFLUESSIGE:: .ZWORD "verfluess" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHMELZ + .BYTE 0 +W?SCHLACKE:: .ZWORD "schlacke" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?AU%SEHENDE:: .ZWORD "au%sehend" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?K%ORPER:: .ZWORD "k%orper" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STEH:: .ZWORD "steh" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?STEH + .BYTE 0 +W?HILF:: .ZWORD "hilf" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TIP + .BYTE 0 +W?BESEITIGE:: .ZWORD "beseitige" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?TOET + .BYTE 0 +W?ZEPTER:: .ZWORD "zepter" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KASTEN:: .ZWORD "kasten" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LIEGEN:: .ZWORD "liegen" + .BYTE PS?PREPOSITION+P1?OBJECT + .BYTE PR?LIEGEN + .BYTE 0 +W?BERGE:: .ZWORD "berge" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BLATT:: .ZWORD "blatt" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ZERQUETSCHTE:: .ZWORD "zerquetsc" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FREMDEN:: .ZWORD "fremden" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ABENDESSEN:: .ZWORD "abendesse" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PLASTISCHE:: .ZWORD "plastisch" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KOERPER:: .ZWORD "koerper" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ENGE:: .ZWORD "enge" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?DEM:: .ZWORD "dem" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?SCH%ONE:: .ZWORD "sch%one" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?SCHLEUDERE:: .ZWORD "schleuder" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?WERF + .BYTE 0 +W?SCHRAUBE:: .ZWORD "schraube" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PUTZE:: .ZWORD "putze" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PUTZ + .BYTE 0 +W?OELE:: .ZWORD "oele" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?SCHMIER + .BYTE 0 +W?OST:: .ZWORD "ost" + .BYTE PS?ADJECTIVE+PS?DIRECTION+P1?DIRECTION + .BYTE 62 + .BYTE 0 +W?LASSE:: .ZWORD "lasse" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?LASS + .BYTE 0 +W?DAMM:: .ZWORD "damm" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PFAD:: .ZWORD "pfad" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ZAEHNEN:: .ZWORD "zaehnen" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ZETTEL:: .ZWORD "zettel" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?LAUFE:: .ZWORD "laufe" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?GEH + .BYTE 0 +W?ZAUBERGESANG:: .ZWORD "zauberges" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ZAUBER + .BYTE 0 +W?WERKZEUGK:: .ZWORD "werkzeugk" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?VERSCHLIESS:: .ZWORD "verschlie" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?VERSCHLIESS + .BYTE 0 +W?HOLZLEITER:: .ZWORD "holzleite" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?EIN:: .ZWORD "ein" + .BYTE PS?BUZZ-WORD + .BYTE 0 + .BYTE 0 +W?REISIGEN:: .ZWORD "reisigen" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?KOHLE:: .ZWORD "kohle" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?STREICHLE:: .ZWORD "streichle" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?REIB + .BYTE 0 +W?AUSGEBRANN:: .ZWORD "ausgebran" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?K%ORPERHAUFEN:: .ZWORD "k%orperha" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?%UBELAUSSEHENDE:: .ZWORD "%ubelauss" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?BORD:: .ZWORD "bord" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?MICH:: .ZWORD "mich" + .BYTE PS?OBJECT+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?PERSER:: .ZWORD "perser" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?ZIEH:: .ZWORD "zieh" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?ZIEH + .BYTE 0 +W?EINEWACKELIGE:: .ZWORD "einewacke" + .BYTE PS?ADJECTIVE+P1?OBJECT + .BYTE 0 + .BYTE 0 +W?FUELL:: .ZWORD "fuell" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?FUELL + .BYTE 0 +W?PRESS:: .ZWORD "press" + .BYTE PS?VERB+P1?VERB + .BYTE ACT?PRESS + .BYTE 0 + .VOCEND + .ENDT + + +; END LOAD + +ENDLOD:: + + + .ENDI diff --git a/zork1freq.xzap b/zork1freq.xzap new file mode 100644 index 0000000..0d2ab6f --- /dev/null +++ b/zork1freq.xzap @@ -0,0 +1,200 @@ + .FSTR FSTR?1,"the " ;1572 786 + .FSTR FSTR?2,"The " ;1245 415 + .FSTR FSTR?3,"You " ;735 245 + .FSTR FSTR?4,", " ;529 529 + .FSTR FSTR?5,"your " ;474 158 + .FSTR FSTR?6,"is " ;466 466 + .FSTR FSTR?7,"and " ;456 228 + .FSTR FSTR?8,"you " ;412 206 + .FSTR FSTR?9,"There " ;395 79 + .FSTR FSTR?10,"can't " ;360 72 + .FSTR FSTR?11,"of " ;325 325 + .FSTR FSTR?12,"to " ;323 323 + .FSTR FSTR?13,". " ;299 299 + .FSTR FSTR?14,"with " ;294 98 + .FSTR FSTR?15,"are " ;272 136 + .FSTR FSTR?16,"that " ;258 86 + .FSTR FSTR?17,"have " ;231 77 + .FSTR FSTR?18,"which " ;224 56 + .FSTR FSTR?19,"This " ;216 54 + .FSTR FSTR?20,"from " ;204 68 + .FSTR FSTR?21,"large " ;204 51 + .FSTR FSTR?22,"through " ;180 30 + .FSTR FSTR?23,"appears " ;180 30 + .FSTR FSTR?24,"in " ;175 175 + .FSTR FSTR?25,"here" ;162 81 + .FSTR FSTR?26,"water " ;136 34 + .FSTR FSTR?27,"room " ;135 45 + .FSTR FSTR?28,"Cyclops " ;133 19 + .FSTR FSTR?29,"leading " ;132 22 + .FSTR FSTR?30,"narrow " ;130 26 + .FSTR FSTR?31,"cannot " ;130 26 + .FSTR FSTR?32,"small " ;128 32 + .FSTR FSTR?33,"into " ;126 42 + .FSTR FSTR?34,"cyclops " ;114 19 + .FSTR FSTR?35,"his " ;112 56 + .FSTR FSTR?36,"thief " ;112 28 + .FSTR FSTR?37,"It " ;110 55 + .FSTR FSTR?38,"south " ;108 27 + .FSTR FSTR?39,"seems " ;108 27 + .FSTR FSTR?40,"already " ;108 18 + .FSTR FSTR?41,"don't " ;105 21 + .FSTR FSTR?42,"be " ;102 102 + .FSTR FSTR?43,"but " ;100 50 + .FSTR FSTR?44,"would " ;96 24 + .FSTR FSTR?45,"Your " ;96 24 + .FSTR FSTR?46,"there " ;92 23 + .FSTR FSTR?47,"can " ;90 45 + .FSTR FSTR?48,"this " ;90 30 + .FSTR FSTR?49,"It's " ;90 18 + .FSTR FSTR?50,"staircase " ;88 11 + .FSTR FSTR?51,"on " ;86 86 + .FSTR FSTR?52,"for " ;84 42 + .FSTR FSTR?53,"west " ;84 28 + .FSTR FSTR?54,"east " ;84 28 + .FSTR FSTR?55,"north " ;84 21 + .FSTR FSTR?56,"not " ;82 41 + .FSTR FSTR?57,"troll " ;80 20 + .FSTR FSTR?58,"nothing " ;78 13 + .FSTR FSTR?59,"looking " ;78 13 + .FSTR FSTR?60,"I " ;72 72 + .FSTR FSTR?61,"path " ;72 24 + .FSTR FSTR?62,"closed" ;72 18 + .FSTR FSTR?63,"candles " ;72 12 + .FSTR FSTR?64,"Frigid " ;72 12 + .FSTR FSTR?65,"won't " ;70 14 + .FSTR FSTR?66,"probably " ;70 10 + .FSTR FSTR?67,"here " ;69 23 + .FSTR FSTR?68,"Room" ;69 23 + .FSTR FSTR?69,"about " ;68 17 + .FSTR FSTR?70,"A " ;66 66 + .FSTR FSTR?71,"too " ;66 33 + .FSTR FSTR?72,"that" ;66 33 + .FSTR FSTR?73,"room" ;66 33 + .FSTR FSTR?74,"door " ;66 22 + .FSTR FSTR?75,"grating " ;66 11 + .FSTR FSTR?76,"ground " ;65 13 + .FSTR FSTR?77,"out " ;64 32 + .FSTR FSTR?78,"other " ;64 16 + .FSTR FSTR?79,"wall " ;63 21 + .FSTR FSTR?80,"passages " ;63 9 + .FSTR FSTR?81,"impossible " ;63 7 + .FSTR FSTR?82,"has " ;62 31 + .FSTR FSTR?83,"over " ;60 20 + .FSTR FSTR?84,"level " ;60 15 + .FSTR FSTR?85,"knocks " ;60 12 + .FSTR FSTR?86,"before " ;60 12 + .FSTR FSTR?87,"passage " ;60 10 + .FSTR FSTR?88,"Fortunately" ;60 6 + .FSTR FSTR?89,"Unfortunately" ;60 5 + .FSTR FSTR?90,"it " ;59 59 + .FSTR FSTR?91,"an " ;56 56 + .FSTR FSTR?92,"think " ;56 14 + .FSTR FSTR?93,"river " ;56 14 + .FSTR FSTR?94,"troll's " ;56 8 + .FSTR FSTR?95,"doesn't " ;56 8 + .FSTR FSTR?96,"You're " ;56 8 + + +;word frequency table of 96 most common words + +WORDS:: .TABLE + FSTR?1 + FSTR?2 + FSTR?3 + FSTR?4 + FSTR?5 + FSTR?6 + FSTR?7 + FSTR?8 + FSTR?9 + FSTR?10 + FSTR?11 + FSTR?12 + FSTR?13 + FSTR?14 + FSTR?15 + FSTR?16 + FSTR?17 + FSTR?18 + FSTR?19 + FSTR?20 + FSTR?21 + FSTR?22 + FSTR?23 + FSTR?24 + FSTR?25 + FSTR?26 + FSTR?27 + FSTR?28 + FSTR?29 + FSTR?30 + FSTR?31 + FSTR?32 + FSTR?33 + FSTR?34 + FSTR?35 + FSTR?36 + FSTR?37 + FSTR?38 + FSTR?39 + FSTR?40 + FSTR?41 + FSTR?42 + FSTR?43 + FSTR?44 + FSTR?45 + FSTR?46 + FSTR?47 + FSTR?48 + FSTR?49 + FSTR?50 + FSTR?51 + FSTR?52 + FSTR?53 + FSTR?54 + FSTR?55 + FSTR?56 + FSTR?57 + FSTR?58 + FSTR?59 + FSTR?60 + FSTR?61 + FSTR?62 + FSTR?63 + FSTR?64 + FSTR?65 + FSTR?66 + FSTR?67 + FSTR?68 + FSTR?69 + FSTR?70 + FSTR?71 + FSTR?72 + FSTR?73 + FSTR?74 + FSTR?75 + FSTR?76 + FSTR?77 + FSTR?78 + FSTR?79 + FSTR?80 + FSTR?81 + FSTR?82 + FSTR?83 + FSTR?84 + FSTR?85 + FSTR?86 + FSTR?87 + FSTR?88 + FSTR?89 + FSTR?90 + FSTR?91 + FSTR?92 + FSTR?93 + FSTR?94 + FSTR?95 + FSTR?96 + .ENDT + + .ENDI diff --git a/zork1pur.zap b/zork1pur.zap new file mode 100644 index 0000000..232bf53 --- /dev/null +++ b/zork1pur.zap @@ -0,0 +1,1303 @@ + + +; PURE TABLES ARE DEFINED HERE + +PURTBL:: + +PT?103:: +T?HOUSE-AROUND:: .TABLE + 5 + WEST-OF-HOUSE + NORTH-OF-HOUSE + EAST-OF-HOUSE + SOUTH-OF-HOUSE + WEST-OF-HOUSE + .ENDT + +PT?203:: +T?FOREST-AROUND:: .TABLE + 6 + FOREST-1 + FOREST-2 + FOREST-3 + PATH + CLEARING + FOREST-1 + .ENDT + +PT?303:: +T?IN-HOUSE-AROUND:: .TABLE + 4 + LIVING-ROOM + KITCHEN + ATTIC + KITCHEN + .ENDT + +PT?403:: +T?ABOVE-GROUND:: .TABLE + 11 + WEST-OF-HOUSE + NORTH-OF-HOUSE + EAST-OF-HOUSE + SOUTH-OF-HOUSE + FOREST-1 + FOREST-2 + FOREST-3 + PATH + CLEARING + GRATING-CLEARING + CANYON-VIEW + .ENDT + +PT?108:: +T?INDENTS:: .TABLE + STR?200 + STR?207 + STR?208 + STR?209 + STR?210 + STR?211 + .ENDT + +PT?109:: +T?DROWNINGS:: .TABLE + STR?242 + STR?243 + STR?244 + STR?245 + STR?246 + STR?247 + STR?248 + STR?249 + STR?250 + .ENDT + +PT?209:: +T?CYCLOMAD:: .TABLE + STR?255 + STR?256 + STR?257 + STR?258 + STR?259 + STR?260 + .ENDT + +PT?309:: +T?LAMP-TABLE:: .TABLE + 100 + STR?266 + 70 + STR?267 + 15 + STR?268 + 0 + .ENDT + +PT?409:: +T?CANDLE-TABLE:: .TABLE + 20 + STR?269 + 10 + STR?270 + 5 + STR?271 + 0 + .ENDT + +PT?509:: +T?RIVER-SPEEDS:: .TABLE + 10 + RIVER-1 + 4 + RIVER-2 + 4 + RIVER-3 + 3 + RIVER-4 + 2 + RIVER-5 + 1 + .ENDT + +PT?609:: +T?RIVER-NEXT:: .TABLE + 5 + RIVER-1 + RIVER-2 + RIVER-3 + RIVER-4 + RIVER-5 + .ENDT + +PT?709:: +T?RIVER-LAUNCH:: .TABLE + 16 + DAM-BASE + RIVER-1 + WHITE-CLIFFS-NORTH + RIVER-3 + WHITE-CLIFFS-SOUTH + RIVER-4 + SHORE + RIVER-5 + SANDY-BEACH + RIVER-4 + RESERVOIR-SOUTH + RESERVOIR + RESERVOIR-NORTH + RESERVOIR + STREAM-VIEW + IN-STREAM + .ENDT + +PT?809:: +T?BDIGS:: .TABLE + STR?279 + STR?280 + STR?281 + .ENDT + +PT?909:: +T?DEF1:: .TABLE + MISSED + MISSED + MISSED + MISSED + STAGGER + STAGGER + UNCONSCIOUS + UNCONSCIOUS + KILLED + KILLED + KILLED + KILLED + KILLED + .ENDT + +PT?1009:: +T?DEF2A:: .TABLE + MISSED + MISSED + MISSED + MISSED + MISSED + STAGGER + STAGGER + LIGHT-WOUND + LIGHT-WOUND + UNCONSCIOUS + .ENDT + +PT?1109:: +T?DEF2B:: .TABLE + MISSED + MISSED + MISSED + STAGGER + STAGGER + LIGHT-WOUND + LIGHT-WOUND + LIGHT-WOUND + UNCONSCIOUS + KILLED + KILLED + KILLED + .ENDT + +PT?1209:: +T?DEF3A:: .TABLE + MISSED + MISSED + MISSED + MISSED + MISSED + STAGGER + STAGGER + LIGHT-WOUND + LIGHT-WOUND + SERIOUS-WOUND + SERIOUS-WOUND + .ENDT + +PT?1309:: +T?DEF3B:: .TABLE + MISSED + MISSED + MISSED + STAGGER + STAGGER + LIGHT-WOUND + LIGHT-WOUND + LIGHT-WOUND + SERIOUS-WOUND + SERIOUS-WOUND + SERIOUS-WOUND + .ENDT + +PT?1409:: +T?DEF3C:: .TABLE + MISSED + STAGGER + STAGGER + LIGHT-WOUND + LIGHT-WOUND + LIGHT-WOUND + LIGHT-WOUND + SERIOUS-WOUND + SERIOUS-WOUND + SERIOUS-WOUND + .ENDT + +PT?1509:: .TABLE + 4 + WEP-NOM-CAP + STR?285 + DEF-ACC + STR?286 + .ENDT + +PT?1609:: .TABLE + 3 + STR?287 + DEF-ACC + STR?288 + .ENDT + +PT?1709:: .TABLE + 3 + STR?289 + DEF-NOM + STR?290 + .ENDT + +PT?1809:: .TABLE + 3 + STR?291 + DEF-NOM-CAP + STR?292 + .ENDT + +PT?1909:: .TABLE + 3 + STR?293 + DEF-NOM + STR?294 + .ENDT + +PT?2009:: .TABLE + 3 + STR?295 + DEF-NOM + STR?296 + .ENDT + +PT?2109:: .TABLE + 6 + PT?1509 + PT?1609 + PT?1709 + PT?1809 + PT?1909 + PT?2009 + .ENDT + +PT?2209:: .TABLE + 4 + WEP-NOM-CAP + STR?297 + DEF-ACC + STR?298 + .ENDT + +PT?2309:: .TABLE + 2 + DEF-NOM-CAP + STR?299 + .ENDT + +PT?2409:: .TABLE + 3 + STR?300 + DEF-NOM + STR?301 + .ENDT + +PT?2509:: .TABLE + 5 + STR?302 + WEP-DAT + STR?303 + DEF-ACC + STR?304 + .ENDT + +PT?2609:: .TABLE + 2 + DEF-NOM-CAP + STR?305 + .ENDT + +PT?2709:: .TABLE + 5 + PT?2209 + PT?2309 + PT?2409 + PT?2509 + PT?2609 + .ENDT + +PT?2809:: .TABLE + 4 + DEF-NOM-CAP + STR?306 + WEP-NOM + STR?307 + .ENDT + +PT?2909:: .TABLE + 3 + STR?308 + DEF-ACC + STR?309 + .ENDT + +PT?3009:: .TABLE + 2 + DEF-NOM-CAP + STR?310 + .ENDT + +PT?3109:: .TABLE + 3 + PT?2809 + PT?2909 + PT?3009 + .ENDT + +PT?3209:: .TABLE + 2 + DEF-NOM-CAP + STR?311 + .ENDT + +PT?3309:: .TABLE + 4 + WEP-NOM-CAP + STR?312 + DEF-ACC + STR?313 + .ENDT + +PT?3409:: .TABLE + 1 + STR?314 + .ENDT + +PT?3509:: .TABLE + 3 + STR?315 + DEF-ACC + STR?316 + .ENDT + +PT?3609:: .TABLE + 4 + PT?3209 + PT?3309 + PT?3409 + PT?3509 + .ENDT + +PT?3709:: .TABLE + 2 + DEF-NOM-CAP + STR?317 + .ENDT + +PT?3809:: .TABLE + 3 + STR?318 + DEF-NOM-CAP + STR?319 + .ENDT + +PT?3909:: .TABLE + 1 + STR?320 + .ENDT + +PT?4009:: .TABLE + 1 + STR?321 + .ENDT + +PT?4109:: .TABLE + 4 + PT?3709 + PT?3809 + PT?3909 + PT?4009 + .ENDT + +PT?4209:: .TABLE + 2 + DEF-DAT-CAP + STR?322 + .ENDT + +PT?4309:: .TABLE + 2 + DEF-NOM-CAP + STR?323 + .ENDT + +PT?4409:: .TABLE + 3 + STR?324 + DEF-ACC + STR?325 + .ENDT + +PT?4509:: .TABLE + 2 + DEF-NOM-CAP + STR?326 + .ENDT + +PT?4609:: .TABLE + 3 + STR?327 + DEF-ACC + STR?328 + .ENDT + +PT?4709:: .TABLE + 5 + PT?4209 + PT?4309 + PT?4409 + PT?4509 + PT?4609 + .ENDT + +PT?4809:: .TABLE + 4 + DEF-DAT-CAP + STR?329 + WEP-NOM + STR?330 + .ENDT + +PT?4909:: .TABLE + 2 + DEF-NOM-CAP + STR?331 + .ENDT + +PT?5009:: .TABLE + 2 + PT?4809 + PT?4909 + .ENDT + +PT?5109:: +T?HERO-MELEE:: .TABLE + PT?2109 + PT?2709 + PT?3109 + PT?3609 + PT?4109 + PT?4709 + PT?5009 + .ENDT + +PT?5209:: .TABLE + 1 + STR?332 + .ENDT + +PT?5309:: .TABLE + 1 + STR?333 + .ENDT + +PT?5409:: .TABLE + 2 + PT?5209 + PT?5309 + .ENDT + +PT?5509:: .TABLE + 1 + STR?334 + .ENDT + +PT?5609:: .TABLE + 1 + PT?5509 + .ENDT + +PT?5709:: .TABLE + 1 + STR?335 + .ENDT + +PT?5809:: .TABLE + 1 + PT?5709 + .ENDT + +PT?5909:: .TABLE + 1 + STR?336 + .ENDT + +PT?6009:: .TABLE + 1 + STR?337 + .ENDT + +PT?6109:: .TABLE + 2 + PT?5909 + PT?6009 + .ENDT + +PT?6209:: .TABLE + 1 + STR?338 + .ENDT + +PT?6309:: .TABLE + 1 + STR?339 + .ENDT + +PT?6409:: .TABLE + 2 + PT?6209 + PT?6309 + .ENDT + +PT?6509:: .TABLE + 1 + STR?340 + .ENDT + +PT?6609:: .TABLE + 1 + STR?341 + .ENDT + +PT?6709:: .TABLE + 2 + PT?6509 + PT?6609 + .ENDT + +PT?6809:: .TABLE + 1 + STR?342 + .ENDT + +PT?6909:: .TABLE + 3 + STR?343 + WEP-ACC + STR?344 + .ENDT + +PT?7009:: .TABLE + 2 + PT?6809 + PT?6909 + .ENDT + +PT?7109:: .TABLE + 1 + STR?345 + .ENDT + +PT?7209:: .TABLE + 1 + PT?7109 + .ENDT + +PT?7309:: .TABLE + 1 + STR?346 + .ENDT + +PT?7409:: .TABLE + 1 + PT?7309 + .ENDT + +PT?7509:: +T?CYCLOPS-MELEE:: .TABLE + PT?5409 + PT?5609 + PT?5809 + PT?6109 + PT?6409 + PT?6709 + PT?7009 + PT?7209 + PT?7409 + .ENDT + +PT?7609:: .TABLE + 1 + STR?347 + .ENDT + +PT?7709:: .TABLE + 1 + STR?348 + .ENDT + +PT?7809:: .TABLE + 1 + STR?349 + .ENDT + +PT?7909:: .TABLE + 1 + STR?350 + .ENDT + +PT?8009:: .TABLE + 4 + PT?7609 + PT?7709 + PT?7809 + PT?7909 + .ENDT + +PT?8109:: .TABLE + 1 + STR?351 + .ENDT + +PT?8209:: .TABLE + 1 + PT?8109 + .ENDT + +PT?8309:: .TABLE + 1 + STR?352 + .ENDT + +PT?8409:: .TABLE + 1 + STR?353 + .ENDT + +PT?8509:: .TABLE + 1 + STR?354 + .ENDT + +PT?8609:: .TABLE + 3 + PT?8309 + PT?8409 + PT?8509 + .ENDT + +PT?8709:: .TABLE + 1 + STR?355 + .ENDT + +PT?8809:: .TABLE + 1 + STR?356 + .ENDT + +PT?8909:: .TABLE + 1 + STR?357 + .ENDT + +PT?9009:: .TABLE + 1 + STR?358 + .ENDT + +PT?9109:: .TABLE + 4 + PT?8709 + PT?8809 + PT?8909 + PT?9009 + .ENDT + +PT?9209:: .TABLE + 1 + STR?359 + .ENDT + +PT?9309:: .TABLE + 1 + STR?360 + .ENDT + +PT?9409:: .TABLE + 1 + STR?361 + .ENDT + +PT?9509:: .TABLE + 3 + PT?9209 + PT?9309 + PT?9409 + .ENDT + +PT?9609:: .TABLE + 1 + STR?362 + .ENDT + +PT?9709:: .TABLE + 1 + STR?363 + .ENDT + +PT?9809:: .TABLE + 1 + STR?364 + .ENDT + +PT?9909:: .TABLE + 1 + STR?365 + .ENDT + +PT?10009:: .TABLE + 4 + PT?9609 + PT?9709 + PT?9809 + PT?9909 + .ENDT + +PT?10109:: .TABLE + 1 + STR?366 + .ENDT + +PT?10209:: .TABLE + 3 + STR?367 + DER-WEP-ACC + STR?368 + .ENDT + +PT?10309:: .TABLE + 1 + STR?369 + .ENDT + +PT?10409:: .TABLE + 3 + PT?10109 + PT?10209 + PT?10309 + .ENDT + +PT?10509:: .TABLE + 1 + STR?370 + .ENDT + +PT?10609:: .TABLE + 1 + STR?371 + .ENDT + +PT?10709:: .TABLE + 2 + PT?10509 + PT?10609 + .ENDT + +PT?10809:: .TABLE + 1 + STR?372 + .ENDT + +PT?10909:: .TABLE + 1 + PT?10809 + .ENDT + +PT?11009:: +T?TROLL-MELEE:: .TABLE + PT?8009 + PT?8209 + PT?8609 + PT?9109 + PT?9509 + PT?10009 + PT?10409 + PT?10709 + PT?10909 + .ENDT + +PT?11109:: .TABLE + 1 + STR?373 + .ENDT + +PT?11209:: .TABLE + 1 + STR?374 + .ENDT + +PT?11309:: .TABLE + 1 + STR?375 + .ENDT + +PT?11409:: .TABLE + 1 + STR?376 + .ENDT + +PT?11509:: .TABLE + 4 + PT?11109 + PT?11209 + PT?11309 + PT?11409 + .ENDT + +PT?11609:: .TABLE + 1 + STR?377 + .ENDT + +PT?11709:: .TABLE + 1 + STR?378 + .ENDT + +PT?11809:: .TABLE + 2 + PT?11609 + PT?11709 + .ENDT + +PT?11909:: .TABLE + 1 + STR?379 + .ENDT + +PT?12009:: .TABLE + 1 + STR?380 + .ENDT + +PT?12109:: .TABLE + 1 + STR?381 + .ENDT + +PT?12209:: .TABLE + 3 + PT?11909 + PT?12009 + PT?12109 + .ENDT + +PT?12309:: .TABLE + 1 + STR?382 + .ENDT + +PT?12409:: .TABLE + 1 + STR?383 + .ENDT + +PT?12509:: .TABLE + 1 + STR?384 + .ENDT + +PT?12609:: .TABLE + 1 + STR?385 + .ENDT + +PT?12709:: .TABLE + 4 + PT?12309 + PT?12409 + PT?12509 + PT?12609 + .ENDT + +PT?12809:: .TABLE + 1 + STR?386 + .ENDT + +PT?12909:: .TABLE + 1 + STR?387 + .ENDT + +PT?13009:: .TABLE + 1 + STR?388 + .ENDT + +PT?13109:: .TABLE + 1 + STR?389 + .ENDT + +PT?13209:: .TABLE + 4 + PT?12809 + PT?12909 + PT?13009 + PT?13109 + .ENDT + +PT?13309:: .TABLE + 1 + STR?390 + .ENDT + +PT?13409:: .TABLE + 1 + STR?391 + .ENDT + +PT?13509:: .TABLE + 1 + STR?392 + .ENDT + +PT?13609:: .TABLE + 3 + PT?13309 + PT?13409 + PT?13509 + .ENDT + +PT?13709:: .TABLE + 5 + STR?393 + WEP-DAT + STR?394 + WEP-NOM + STR?395 + .ENDT + +PT?13809:: .TABLE + 3 + STR?396 + DER-WEP-ACC + STR?397 + .ENDT + +PT?13909:: .TABLE + 3 + STR?398 + WEP-NOM + STR?399 + .ENDT + +PT?14009:: .TABLE + 3 + PT?13709 + PT?13809 + PT?13909 + .ENDT + +PT?14109:: .TABLE + 1 + STR?400 + .ENDT + +PT?14209:: .TABLE + 1 + STR?401 + .ENDT + +PT?14309:: .TABLE + 1 + STR?402 + .ENDT + +PT?14409:: .TABLE + 3 + PT?14109 + PT?14209 + PT?14309 + .ENDT + +PT?14509:: .TABLE + 1 + STR?403 + .ENDT + +PT?14609:: .TABLE + 1 + STR?404 + .ENDT + +PT?14709:: .TABLE + 2 + PT?14509 + PT?14609 + .ENDT + +PT?14809:: +T?THIEF-MELEE:: .TABLE + PT?11509 + PT?11809 + PT?12209 + PT?12709 + PT?13209 + PT?13609 + PT?14009 + PT?14409 + PT?14709 + .ENDT + +PT?110:: +T?LINE-TABLE:: .TABLE + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + .ENDT + +PT?210:: +T?COLUMN-TABLE:: .TABLE + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + 24 + .ENDT + +PT?310:: .TABLE + 18 + STR?471 + T?110 + T?210 + T?310 + T?410 + T?510 + T?610 + T?710 + T?810 + T?910 + T?1010 + T?1110 + T?1210 + T?1310 + T?1410 + T?1510 + T?1610 + T?1710 + .ENDT + +PT?410:: .TABLE + 6 + STR?487 + T?1810 + T?1910 + T?2010 + T?2110 + T?2210 + .ENDT + +PT?510:: .TABLE + 7 + STR?522 + T?2310 + T?2410 + T?2510 + T?2610 + T?2710 + T?2810 + .ENDT + +PT?610:: .TABLE + 8 + STR?567 + T?2910 + T?3010 + T?3110 + T?3210 + T?3310 + T?3410 + T?3510 + .ENDT + +PT?710:: .TABLE + 9 + STR?600 + T?3610 + T?3710 + T?3810 + T?3910 + T?4010 + T?4110 + T?4210 + T?4310 + .ENDT + +PT?810:: .TABLE + 10 + STR?629 + T?4410 + T?4510 + T?4610 + T?4710 + T?4810 + T?4910 + T?5010 + T?5110 + T?5210 + .ENDT + +PT?910:: .TABLE + 11 + STR?663 + T?5310 + T?5410 + T?5510 + T?5610 + T?5710 + T?5810 + T?5910 + T?6010 + T?6110 + T?6210 + .ENDT + +PT?1010:: .TABLE + 3 + STR?671 + T?6310 + T?6410 + .ENDT + +PT?1110:: .TABLE + 11 + STR?708 + T?6510 + T?6610 + T?6710 + T?6810 + T?6910 + T?7010 + T?7110 + T?7210 + T?7310 + T?7410 + .ENDT + +PT?1210:: .TABLE + 12 + STR?773 + T?7510 + T?7610 + T?7710 + T?7810 + T?7910 + T?8010 + T?8110 + T?8210 + T?8310 + T?8410 + T?8510 + .ENDT + +PT?1310:: +T?HINTS:: .TABLE + 10 + PT?310 + PT?410 + PT?510 + PT?610 + PT?710 + PT?810 + PT?910 + PT?1010 + PT?1110 + PT?1210 + .ENDT + +PURTND:: + .ENDI diff --git a/zork1str.zap b/zork1str.zap new file mode 100644 index 0000000..7620530 --- /dev/null +++ b/zork1str.zap @@ -0,0 +1,832 @@ + + +; STRINGS ARE DEFINED HERE + +STRBEG:: + + .GSTR STR?1,"wei%s" + .GSTR STR?2,"In einer Ecke dieses Raumes ist ein wundervoll gearbeiteter Kristalsch%adel. Er scheint dich, einigermassen unanagenehm anzugrinsen." + .GSTR STR?3,"Von der Kette h%angt ein Korb." + .GSTR STR?4,"Am Ende der Kette ist ein Korb." + .GSTR STR?5,"Ein Pepperoni-Brot liegt hier." + .GSTR STR?6,"rotgl%uhend" + .GSTR STR?7,"Auf der Erde ist eine rotgl%uhende Glocke." + .GSTR STR?8,"blutig" + .GSTR STR?9,"gr%un" + .GSTR STR?10,"schwarz" + .GSTR STR?11,"Auf dem Altar liegt ein gro%ses schwarzes Buch. Es ist bei Seite 569 aufgeschlagen." + .GSTR STR?12,"12592.Gebot + +Oh Ihr, die Ihr zueinander sagt: %>Tag, Seeman%< +Seid Ihr Euch der Gr%o%se Eurer S%unden vor den G%ottern bewu%st? +Es steht geschrieben, da%s Ihr zwischen Steinen zermalmt werden sollt. +Sollen die zornigen G%otter Eure %Uberreste in das Kneippbecken werfen? +Wahrhaftig Eure Augen sollten mit einem spitzen Stock geblendet werden! +Bis ans Ende dieser Erde sollt Ihr wandern, +Und in den Hades am Ende Eurer Tage sollt Ihr verbannt werden. +Wahrhaftig Ihr sollt b%ussen f%ur eure Schlauheit." + .GSTR STR?13,"kaputt" + .GSTR STR?14,"Ein reichverziertes Zepter, das zu einer scharfen Spitze ausl%auft, ist hier." + .GSTR STR?15,"Ein Zepter, das wom%oglich direkt aus %Agypten stammt, ist in dem Sarg. Das Zepter ist mit farbigem Emaille verziert und l%auft zu einer scharfen Spitze aus." + .GSTR STR?16,"braun" + .GSTR STR?17,"Auf dem Tisch ist ein l%anglicher brauner Sack. Er riecht nach scharfen Pepperoni." + .GSTR STR?18,"gelb" + .GSTR STR?19,"rot" + .GSTR STR?20,"blau" + .GSTR STR?21,"Es gibt hier einen Silberkelch, der sehr fein graviert ist." + .GSTR STR?22,"Am Ufer liegt Poseidons ureigener Kristalldreizack." + .GSTR STR?23,"steinern" + .GSTR STR?24,"Auf dem Tisch steht eine Flasche." + .GSTR STR?25,"reingolden" + .GSTR STR?26,"Der reingoldene Sarg, den man f%ur das Begr%abnis von Ramses II. benutzt hat, ist hier." + .GSTR STR?27,"riesig" + .GSTR STR?28,"Es gibt hier einen riesigen Diamant (elegant geschliffen)." + .GSTR STR?29,"Es gibt hier eine kostbare Jade-Figur." + .GSTR STR?30,"au%senhend" + .GSTR STR?31,"Auf einem Tisch liegt ein gef%ahrlich au%sehendes Messer." + .GSTR STR?32,"ausgebrannt" + .GSTR STR?33,"Die ausgebrannte Lanterne des toten Abenteurers liegt hier." + .GSTR STR?34,"Ein sch%abiger Ledersack vollgepfropft mit Goldm%unzen ist hier." + .GSTR STR?35,"batteriengespeist" + .GSTR STR?36,"Eine batteriengespeiste Messingleuchte ist auf dem Troph%aenschrank." + .GSTR STR?37,"Hier ist eine batteriengespeiste Messingleuchte." + .GSTR STR?38,"gro%s" + .GSTR STR?39,"Ein kleine Zettel liegt auf der Erde." + .GSTR STR?40,"%>Willkommen in Zork! + +Zork ist ein Spiel voller Abenteuer, Gefahren und gemeiner Schlauheit Beim. Spielen wirst du einige der wundersamsten Welten entdecken, die irgend ein Sterblicher gesehen hat. Kein Heimcomputer sollte ohne dieses Spiel sein.%<" + .GSTR STR?41,"klein" + .GSTR STR?42,"Eine Streichholzschachtel mit der Auffschrift: Visit Beautiful FCD#3 liegt hier." + .GSTR STR?43," +(Schlie%se die Schachtel, bevor du das Streichholz anz%undest.) + +Herr Superschlau aus Hack sagt: Bevor ich in diese Vorlesung ging war ich ein mickeriger Bit-Mischer. Jetzt, mit dem, was ich an der Hacker T.U gelernt habe, f%uhle ich mich wichtig und kann mit den Besten interfacen und verr%uckt spielen. + +Herr Dr. Leer hatte folgendes zu sagen: %>Vor nur zehn kurzen Tagen hatte ich nur die Aussicht auf eine chancenlose Stelle als Doktor. Jetzt habe ich eine vielversprechende Zukunft und mache wirkliche Zorkknete.%< +Die Technische Uni Hack kann diese fantastischen Resultate nicht jedem versprechen. Aber, einen Doktortitel von der Hack TU malt auch deine Zukunft rosiger aus." + .GSTR STR?44,"sch%on" + .GSTR STR?45,"Gl%ucklicherweise bleibt dir noch eine Chance auch ein Gangster zu werden, denn an der anderen Wand h%angt ein Gem%alde von einmaliger Sch%onheit." + .GSTR STR?46,"Ein Gem%alde von einem unbeachteten Gro%sen ist hier." + .GSTR STR?47,"Auf dem Altar steht ein Kerzenpaar." + .GSTR STR?48,"glasartig" + .GSTR STR?49,"Auf dem Boden liegt ein Bl%atterhaufen." + .GSTR STR?50,"geplatzt" + .GSTR STR?51,"Hier gibt es einen Haufen Plastik, an dem ein kleines Ventil befestigt ist." + .GSTR STR?52,"Auf dem Boden liegt ein Platinbarren." + .GSTR STR?53,"Am Ende des Regenbogens steht ein Topf voll Gold." + .GSTR STR?54,"Das Gebet ist in einer uralten Schrift, die man heute kaum benutzt, eingemeiselt. Es erscheint eingriechisches Dogma gegen kleine Insekten, Vergesslichkeit, und das Aufheben und Fallenlassen von kleinen Dingen zu sein. Der letzte Vers verdammt Uebertreter zum Land der Toten. Alle Nachweise deuten darauf hin, dass die Ideen der alten Zorker eigentuermlich verwirrt waren." + .GSTR STR?55,"h%olzern" + .GSTR STR?56,"Es gibt hier eine rote Markierungsboje (Wahrscheinlich eine Warnung)." + .GSTR STR?57,"Ein dickes aufgerolltes Seil liegt in der Ecke." + .GSTR STR?58,"rostig" + .GSTR STR?59,"Neben dem Knochenger%ust liegt ein rostiges Messer." + .GSTR STR?60,"saphireingelegt" + .GSTR STR?61,"Der Abenteurer war nicht nur gl%ucklos, er war auch verschlossen. Neben dem Skelett liegt ein Schl%ussel." + .GSTR STR?62,"Der volle Wortlaut dieser Inschrift ist: %>Dieser Raum wurde mit Absicht freigelassen%<." + .GSTR STR?63,"%Uber dem Troph%aenschrank h%angt ein Elfenschwert aus dem Altertum." + .GSTR STR?64,"uralt" + .GSTR STR?65,"In dem Troph%aenschrank ist ein uraltes Pergament, das eine Landkarte sein k%onte." + .GSTR STR?66,"Die Karte zeigt einen Wald mit drei Lichtungen. Die gr%osste Lichtung beherbergt ein Haus. Drei Pfade verlassen die grosse Lichtung. Einer der Pfade, der nach SW fuehrt, hat ein Schild %>zum Steingrab%<." + .GSTR STR?67,"beig" + .GSTR STR?68," !!!!FROBOZ ZAUBERBOOTFABRIK!!!! + +Tag, Seeman! + + Um ins Wasser zu gehen, sage: %>Absto%sen%<. + Um ans Land zur%uckzukehen, sage: %>Landen%< oder gib die Richtung, in der du das Boot steuern m%ochtest, an. + +Garantie: + + Dieses Boot hat eine Garantie mit einer Laufzeit von einer Tausendstelsekunde, die mit dem Kaufsdatum oder dem Datum der ersten Benutzung beginnt. + +Warnung: + Dieses Boot ist aus d%unnem Plastik. Hals und Beinbruch!" + .GSTR STR?69,"Da steht ein verd%achtig aussehender Kerl, der eine T%ute h%alt, gegen die Wand gelehnt. Er ist mit einem t%odlichen Stilett bewaffnet." + .GSTR STR?70,"Auf dem Podest ist eine brennende Fackel aus Elfenbein." + .GSTR STR?71,"Einige Prospekte mit dem Titel: Hochwasserschutzdamm No.3 liegen bei der Rezepzion." + .GSTR STR?72,"%> Hochwasserschutzdamm No.3 + +Hochwasserschutzdamm No.3 wurde im Jahr 783 des Gro%sen Untergrund Reiches errichtet, um den Gletschflu%s zu b%andigen. Diese Arbeit wurde von einem Zuschu%s im Betrag von 37 Millionen Zorkkneten von eurem allmaechtigen lokalen Tyranen F%urst Kleingeist Flachkopf dem %Au%sersten unterstuetzt. Diese eindrucksvolle Baustelle besteht aus 115.000 Kubikmetern von Zement, ist in der Mitte 86 Meter hoch und 64 Meter Breit an der Spitze. Der See, der hinter dem Damm gemacht wurde, hat ein Volumen von 0,65 Milliarden Kubikmetern, eine Fl%ache von 4 Millionen Quadratmetern und eine K%ustenlinie von 12 Tausend Metern. + +Der Bau des Hochwasserschutzdammes No.3 hat 112 Tage vom Anfang der Bauarbeiten bis zu seiner Einweihung gedauert. Gebraucht wurde eine Arbeitsmannschaft von 384 Sklaven, 34 Sklavenhaltern, 12 Ingenieuren, 2 Friedenstauben und einer au%sergew%ohnlichen Weihnachtsgans. Die Arbeit wurde %ubersehen von einer kommandierenden Mannschaft von 2345 B%urokraten, 2347 Sekret%aren und Sekret%arinnen (mindestens zwei davon konnten tippen), 12.256 Leuten, die sich mit Papieren besch%aftigten, 52.469 Stempelexperten, 245.193 Leuten, die sich mit der l%acherlichen B%urokratie auskannten und fast einer Million von toten B%aumen. + +Jetzt wollen wir einige der au%sergew%ohnlichen Merkmale des Schutzdammes No.3 vorf%uhren, indem wir eine F%uhrung durch das Projekt machen: + +1) Du beginnst die F%uhrung hier in der Vorhalle des Damms. Du wirst auf der rechten Seite feststellen, da%s..." + .GSTR STR?73,"Ein widerlicher Troll, der eine blutige Axt schwingt, blockiert alle Ausg%ange aus dem Zimmer." + .GSTR STR?74,"Halbvergraben im Schlamm ist ein alter Koffer, vollgepfropft mit Juwelen." + .GSTR STR?75,"Es gibt hier einen alten Koffer, der mit allen m%oglichen Juwelen voll gepfropft ist." + .GSTR STR?76,"Es gibt hier ein Ding, das aussieht wie eine Zahnpastatube." + .GSTR STR?77," ---> Frobozz <--- +Zauberschmiere Gesellschaft + + Eine Allzweckschmiere" + .GSTR STR?78,"Dort gibt es alte Einmei%selungen an den W%anden." + .GSTR STR?79,"Die Gravierungen waren in den lebenden Stein der H%ohlenwand von einer unbekannten Hand eingehauen. Sie stellen in einer symbolischen Form den Glauben der uralten Zorker dar. Kuensterisch eingewoben mit den fundamentalen Gravierungen findet man Auszuege, die die religi%osen Glaubenss%atze der Zeit illustrieren. Leider hat eine sp%atere Zeit diese Markierungen als frevelhaft bezeichnet und hat sie in kluger Form entfernt." + .GSTR STR?80,"Lose an der Wand h%angt ein kleines St%uck Papier." + .GSTR STR?81,"Herzlichen Gl%uckwunsch! + +Du bist der priveligierte Besitzer von ZORK I: Das Gro%se Unterirdische Imperium, ein unabh%angiges selbstversorgendes Universum Wenn es gem%a%s den Operationsregeln f%ur kleine Universe benutzt und erhalten wird, dann wird ZORK auch viele Monate problemlos operieren." + .GSTR STR?82,"Neben dir auf dem Ast ist ein kleines Vogelnest." + .GSTR STR?83,"juwelenbesetzt" + .GSTR STR?84,"In dem Vogelnest ist ein gro%ses mit kostbaren Juwelen besetztes Ei, das scheinbar von einem kinderlosen Singvogel geraubt wurde. Das Ei ist von einer feinen Goldschicht %uberzogen und mit Lapislazuli und Perlmutter geschm%uckt. Im Gegensatz zu einem gew%ohnlichen Ei, hat dieses ein Scharnier und ist mit einem eleganten Verschlu%s versehen. Das Ei sieht sehr zerbrechlich aus." + .GSTR STR?85,"zerbrochen" + .GSTR STR?86,"golden" + .GSTR STR?87,"Ein goldener Kanarienvogel zum Aufziehen ist in dem Ei. Er hat rubinrote Augen und einen silbernen Schnabel. Durch das Kristallfenster unter seinem linken Fl%ugel kannst du den komplizierten Mechanismus in seinem K%orper sehen. Er scheint, abgelaufen zu sein. Hier ist auch ein Silberkelch mit feinen Gravierungen." + .GSTR STR?88,"Eingebettet in dem Ei ist ein goldener aufziehbarer Kanarienvogel. Er mu%s vor Kurzem etwas Schreckliches durchgemacht haben. Die H%ohlen f%uer seine jewelen%ahnlichen Augen sind leer und silberner Schnabel ist verbogen. Durch ein gesprungenes Kristallfenster unter seinem linken Fl%uegel kannst du die Reste eines genialen Uhrwerks sehen. Es ist jetzt sonnenklar, da%s das Aufziehen sinnlos w%are, denn die Hauptfeder scheint gesprungen zu sein." + .GSTR STR?89,"Die T%ur ist mit Brettern vernagelt, und du kannst die Bretter nicht entfernen." + .GSTR STR?90,"Du stehst vor einem enormen steinen H%ugelgrab. Auf der Ostseite ist eine riesige Steint%ur, die ge%offnet ist. Du kannst nicht in die Dunkelheit von dem Grab hineingucken." + .GSTR STR?91,"Du stehst vor der Nordseite eines wei%sen Hauses. Es gibt hier keine T%ur, und alle Fenster sind mit Brettern vernagelt. Nach Norden windet sich ein schmaler Pfad durch die B%aume." + .GSTR STR?92,"Die Fenster sind alle vernagelt." + .GSTR STR?93,"Du stehst auf der S%udseite des wei%sen Hauses. Es gibt hier keine T%ur, und alle Fenster sind vernagelt." + .GSTR STR?94,"The windows are all boarded." + .GSTR STR?95,"Dies ist ein Wald. %Uberall sind B%aume. Die Sonne steht scheinbar im Osten." + .GSTR STR?96,"Es gibt hier keinen Baum, den man erklettern kann." + .GSTR STR?97,"Du brauchtest ein Buschmesser, um weiter nach Westen zu gehen." + .GSTR STR?98,"Dies ist ein d%usterer Wald mit gro%sen B%aumen rundherum." + .GSTR STR?99,"Nach Norden wird der Wald undurchdringlich." + .GSTR STR?100,"Der Wald lichtet sich und un%uberwindliche Berge kommen zum Vorschein." + .GSTR STR?101,"Die Berge sind nicht un%uberwindlich." + .GSTR STR?102,"Undurchdringliches Unterholz versperrt den Weg nach Osten." + .GSTR STR?103,"Der Weg ist von umgeblasenen B%aumen blockiert." + .GSTR STR?104,"Dieser Pfad windet sich durch den d%usteren Wald. Er verl%auft von Norden nach S%uden. Ein besonders gro%ser Baum mit einigen niederen %Asten steht am Rande des Pfades." + .GSTR STR?105,"H%oher kannst du nicht." + .GSTR STR?106,"Du stehst auf einer kleinen Lichtung auf einem wohlmarkierten Waldpfad, der sich nach Osten und Westen erstreckt." + .GSTR STR?107,"Nur der Schornsteinfeger krabbelt in Schornsteine." + .GSTR STR?108,"Dies ist der Speicher. Der einzige Ausgang ist ein Treppenhaus nach unten." + .GSTR STR?109,"Die T%ur ist vernagelt." + .GSTR STR?110,"Du versuchst die Rampe hinaufzuklettern, aber das ist unm%oglich. Du rutschst wieder runter." + .GSTR STR?111,"Dies ist ein kleines Zimmer mit Durchg%angen nach Osten und S%uden und einem furchterregenden Loch nach Westen. Blutspuren und tiefe Kratzer (vielleicht von einer Axt) verschandeln die W%ande." + .GSTR STR?112,"Der Troll schreckt dich mit einer drohenden Geste zur%uck." + .GSTR STR?113,"Du bist am %ostlichen Rand einer Spalte, deren Grund nicht zu sehen ist. Ein enger Durchgang geht nach Norden, und der Pfad, auf dem du bist, f%uhrt nach Osten weiter." + .GSTR STR?114,"Die Spalte f%uhrt wahrscheinlich direkt zur H%olle." + .GSTR STR?115,"Dies ist eine Kunstgalerie. Die meisten Gem%alde sind von Gangstern mit au%sergew%ohnlich gutem Geschmack gestohlen worden. Die Gangster sind entweder durch den Nord -oder den Westausgang abgehauen." + .GSTR STR?116,"Dies scheint, ein K%unstleratelier gewesen zu sein. Die W%ande und Fu%sb%oden sind mit Spritzern von 69 verschiedenen Farben bekleckst. Seltsamererweise h%angt hier nichts Wertvolles. Am s%udlichen Ende des Zimmers ist eine offene T%ur (auch mit Farbe bekleckst). Ein dunkler und schmaler Schornstein f%uhrt vom Kamin hinauf. Es w%are wahrscheinlich einfach f%ur dich, dort hinaufzuklettern, aber die Chancen, da%s du wieder runterkommst, sind gering." + .GSTR STR?117,"Dies ein Teil eines Irrgartens. Kleine verwirrende Durchgangsm%oglichkeiten, die sich alle %ahnlich sehen." + .GSTR STR?118,"Du bist an eine Sackgasse in dem Irrgarten gekommen." + .GSTR STR?119,"Dies ist ein Teil eines Irrgartens: kleine, verwirrende G%ange, die sich alle %ahnlich sehen. In einer Ecke liegt ein Skelett. Vermutlich die sterblichen %Uberreste eines gl%ucklosen Abenteurers." + .GSTR STR?120,"Du bist an einer Sackgasse in dem Irrgarten gekommen." + .GSTR STR?121,"Das Gitter ist geschlossen." + .GSTR STR?122,"Die Ostwand ist aus undurchdringlichem Felsen." + .GSTR STR?123,"Der Zyklop macht den Eindruck, als ob er dich nicht durchlassen wollte." + .GSTR STR?124,"Dies ist ein langer Durchgang. Nach Westen ist ein Eingang. Nach Osten gibt es eine h%olzerne T%ur mit einer gro%sen %Offnung darin (ungef%ahr in der Form eines Zyklopen)." + .GSTR STR?125,"Dies ist ein gro%ser Raum, dessen Ostwaand aus Granit ist. Eine Menge weggeworfener T%uten, die bei der kleinsten Ber%uhrung zerfallen, sind auf dem Fu%sboden verstreut." + .GSTR STR?126,"Du w%urdest ertrinken." + .GSTR STR?127,"Der Damm blockiert dein Weg." + .GSTR STR?128,"Du wuerdest ertrinken." + .GSTR STR?129,"Du stehst auf einem Pfad bei einem pl%atschernden Bach. Der Pfad folgt dem Bach, der von Westen nach Osten flie%st." + .GSTR STR?130,"Der kleine Fluss kommt aus einem Ort, der fuer dich zu eng zum Eintreten ist." + .GSTR STR?131,"Du bist auf einem pl%atschernden Flu%s. Der Weg flu%saufw%arts ist zu eng, und die Flu%sabw%artsroute ist nicht %ubersehbar, denn die Felsw%ande stehen im Weg. Es gibt hier einen schmalen Strand zur Landung." + .GSTR STR?132,"Der Flu%skanal ist zu eng." + .GSTR STR?133,"Dies ist eine winzige H%ohle mit Eing%angen im Westen und Osten und eine Treppe nach unten." + .GSTR STR?134,"Dies ist eine winzige H%ohle mit Eing%angen im Westen und Osten und eine angsterregende Treppe nach unten." + .GSTR STR?135,"Dies ist ein kalter und feuchter Flur, wo ein langer Ost-West Durchgang in einen Pfad nach S%udwesten m%undet." + .GSTR STR?136,"Dies ist ein langer und enger Gang, von dem aus sich ein langer Nord-S%uddurchgang mehr und mehr verengt." + .GSTR STR?137,"Dies ist ein sich windender Durchgang. Es scheint, als ob es nur Ausg%ange nach Osten und Norden gibt." + .GSTR STR?138,"Dies ist ein Quergang, der sich windet. Es scheint, als ob es nur Ausg%ange auf der Ost-und Nordseite gibt." + .GSTR STR?139,"Dies ist ein uraltes Zimmer, seit langem unter Wasser. Es gibt einen Ausgang nach S%uden und eine Treppe, die nach oben f%uhrt." + .GSTR STR?140,"Dies ist ein enger Ost-Westdurchgang. Es gibt hier eine enge Treppe, die nach am Ende des Zimmers nach unten f%uhrt." + .GSTR STR?141,"Dies ist ein rundes turmartiges Zimmer mit Durchg%angen in alleRichtungen. Einige sind leider durch Einsturz blockiert." + .GSTR STR?142,"Diese H%ohle hat Ausg%ange nach Westen und Osten und verengt sich nach S%uden zu einer Ritze. Der Boden ist hier besonders feucht." + .GSTR STR?143,"Da w%uerde nicht einmal eine Fliege hindurchkommen." + .GSTR STR?144,"Hier ist ein Nord-S%uddurchgang, der sich nach Nordosten gabelt." + .GSTR STR?145,"Eine Spalte verl%auft von S%udwesten nach Nordosten, und der Pfad folgt ihr. Du bist auf der S%udseite der Spalte, wo eine schmale %Offnung in einen Durchgang f%uhrt." + .GSTR STR?146,"Bist du verr%uckt geworden?" + .GSTR STR?147,"Eine unsichtbare Macht h%alt dich davon ab durch das Tor zu schreiten." + .GSTR STR?148,"Du bist in das Land der lebendigen Toten geraten. Tausende von verlorenen Seelen kann man Weinen und Schluchzen h%oren. In der Ecke sind die %Uberreste von Dutzenden von vormaligen Abenteuerern, die weniger Gl%uck hatten als du, aufgestapelt. Ein Duchgang f%uhrt nach Norden heraus. In einer Ecke dieses Raumes liegt ein wundervoll gearbeiteter Kristalsch%adel. Er scheint dich mit gemeinem Grinsen anzusehen." + .GSTR STR?149,"Du bist in eine H%ohle getreten, die Durchg%ange nach Norwesten und Osten hat." + .GSTR STR?150,"Dieser Raum sieht aus wie ein %agyptisches Grab. Im Westen ist eine Treppe nach oben." + .GSTR STR?151,"Hier kannst du ohne schwere Knochenbr%uche nicht runter." + .GSTR STR?152,"Du kannst das Seil nicht mit der Hand erreichen." + .GSTR STR?153,"Dies ist das Nordende eines gro%sen Tempels. Auf der Ostwand siehst du eine antike Inschrift, die wahrscheinlich ein Gebet in einer l%angst vergessenen Sprache ist. Unter dem Gebet f%uhrt ein Treppenhaus nach unten. Die Westwand ist aus Granit. Der Ausgang im Norden des Raumes f%uhrt durch riesige Marmors%aulen. Es befindet sich hier eine Messingglocke." + .GSTR STR?154,"Dies ist das S%udende eines gro%sen Tempels. Vor dir ist eine Art Altar. In einer Ecke ist ein kleines Loch im Boden, das in absolute Dunkelheit f%uhrt. Es sieht nicht so aus, als ob du da je wieder rausk%amst. Auf beiden Seiten des Altars stehen brennende Kerzen. Auf dem Altar liegt ein gro%ses schwarzes Buch. Es ist bei Seite 569 aufgeschlagen." + .GSTR STR?155,"Den Sarg da hinunter zu bringen %ubersteigt deine menschlichen Kr%afte. Dazu brauchst Du die Hilfe Gottes." + .GSTR STR?156,"Dieser Raum scheint, der Warteraum f%ur Besuchergruppen gewesen zu sein. Es gibt hier offene T%uren, die nach Norden und Osten f%uhren. Sie haben die Aufschrift %>Privat%<, und ein Pfad f%uhrt nach S%uden %uber den oberen Damm." + .GSTR STR?157,"Dies mu%s der Wartungsraum f%ur den Hochwasserschutzdamm No.3 gewesen sein. Scheinbar ist dieser Raum vor Kurzem gepl%undert worden, denn die meisten wertvollen Ger%ate sind weg. An der Wand vor dir h%angen bla%ue, gelbe, braune und rote Kn%opfe. T%uren f%uhren nach Westen und S%uden." + .GSTR STR?158,"Du bist am Fu%s des Hochwasserkontrolldammes No. 3, der %uber dir und nach Norden hin aufragt. Der Flu%s Gletsch flie%st hier vorbei. Den Flu%s entlang t%urmen sich die Wei%sen Felsen, die sich flu%sabw%arts wie eine gigantische Wand von Norden nach S%uden erstrecken." + .GSTR STR?159,"Du bist auf dem Gletsch bei dem Damm. Der Flu%s flie%st ruhig hier. Es gibt einen Landungssteg am Westufer." + .GSTR STR?160,"Du kannst hier nicht flu%saufw%arts, denn die Str%omung ist zu stark." + .GSTR STR?161,"Die Wei%senfelsen verhindern das Anlegen." + .GSTR STR?162,"Der Flu%s flie%st hier um eine Biegung, die es unm%oglich macht, den Damm zu sehen. Die Wei%sen Felsen ragen %uber dem Ostufer auf und gro%se Steine verhindern die Landung am Westufer." + .GSTR STR?163,"Hier kann man nicht sicher anlegen." + .GSTR STR?164,"Gerade noch rechtzeitig steuerst du von den Felsen weg." + .GSTR STR?165,"Der Flu%s flie%st hier in ein Tal hinab. Es gibt einen schmalen Strand an der Westk%uste unter den Felsen. In der Ferne kann man ein schwaches Grollen h%oren." + .GSTR STR?166,"Du bist an einem schmalen Strand, der am Fu%se der Wei%sen Felsen entlangl%auft. Es gibt hier einen schmalen Pfad, der entlang der Felsen nach S%uden l%auft und einen engen Durchgang, der nach West mitten in die Klippen hineinf%uhrt." + .GSTR STR?167,"Der Pfad ist zu eng." + .GSTR STR?168,"Du bist auf einem steinigen, engen Strandstreifen neben den Felsen. Ein enger Pfad f%uhrt am Ufer entland nach Norden." + .GSTR STR?169,"Der Flu%s str%omt hier st%arker, und das Ger%ausch vor dir scheint, das von brausendem Wasser zu sein. An dem Ostufer ist ein Sandstrand. Ein bi%schen Strand lugt auch unter den Felsen an dem Westufer hervor." + .GSTR STR?170,"Du kannst weder nach Osten oder nach Westen hin landen." + .GSTR STR?171,"Das Ger%ausch von brausendem Wasser ist hier fast unertr%aglich. Auf der Ostk%uste gibt es einen gro%sen Anlegeplatz." + .GSTR STR?172,"Du bist an dem Ostufer des Flu%ses. Das Wasser ist hier etwas gef%ahrlich. Ein Pfad f%uhrt von Norden nach S%uden, das S%udende biegt schnell um eine scharfe Kurve." + .GSTR STR?173,"Du bist an einem gro%sen Sandstrand am Ostufer des Flu%ses. Dieser flie%st schnell vorbei. Ein Pfad verl%auft den Flu%s entlang nach S%uden hier und ein Durchgang ist halb im Sand nach Nordosten vergraben." + .GSTR STR?174,"Dies ist eine sandgef%ullte H%ohle, deren Ausgang nach S%udwesten geht." + .GSTR STR?175,"Das ist ein t%odlicher Weg." + .GSTR STR?176,"Du bist auf dem Regenbogen (sicherlich hast du dir nie tr%aumen lassen, da%s du jemals auf einem Regenbogen laufen w%urdest). Du hast einen tollen Blick auf die F%alle. Der Regenbogen verl%auft von Osten nach Westen." + .GSTR STR?177,"Du bist am unteren Gletsch hinter den Wasserf%allen an einem schmalen steinigen Ufer. Das Ufer ist wegen der Wei%sen Felsen schmal. Die Flu%schlucht %offnet sich hier, und Sonnenstrahlen fallen von oben herein. Ein Regenbogen weist %uber die F%alle nach Osten, und ein schmaller Pfad f%uhrt weiter nach S%udwesten." + .GSTR STR?178,"Du bist unter den W%anden der Flu%schlucht, die hier eher zu erklettern sind. Der geringere Teil des Ablaufs der Wiedermal F%alle flie%st unter dir vorbei. Nach Norden f%uhrt ein schmaler Pfad." + .GSTR STR?179,"Du bist auf einem Vorsprung, der ungef%ahr auf halber H%ohe auf der Wand der Flu%schlucht liegt. Du kannst von hier sehen, da%s der gr%o%ste Teil der Wiedermal F%alle sich durch einen Durchgang windet, den du nicht passieren kannst. Unter dir ist der Abgrund %Uber dir gibt es weitereFelsen, die erklimmbar scheinen." + .GSTR STR?180,"Du bist am oberen Rand der Gro%s-Schlucht, auf dem Gipfel der Westwand. Von hier hat man einen wunderbaren Blick auf die Schlucht und flu%saufw%arts auf den Flu%s Gletsch. Gegen%uber der Schlucht schlie%sen die Wei%sen Felsen dem Gipfel der Hohlkopfberge nach Osten hin an. Verfolgt man die Schlucht flu%saufw%arts nach Norden, dann kann man die Wiedermal F%alle, aus denen ein Regenbogen heraufsteigt, sehen. Der m%achtige Flu%s Gletsch flie%st aus einer gro%sen dunklen H%ohle. Nach Westen und S%uden kann man einen enormen Wald sehen, der sich auf Kilometer hinzieht. Ein Pfad f%uhrt nach Nordwesten. Es ist m%oglich, von hier in die Schlucht hinunterzuklettern." + .GSTR STR?181,"Das war nicht der sicherste Platz f%ur den Absprung." + .GSTR STR?182,"Du stehst an einem Eingang. Er sieht aus wie ein ehemaliger Grubeneingang. Der Schacht f%uhrt in die Westwand, und es gibt dort noch einen Ausgang am S%udende des Raumes." + .GSTR STR?183,"Du bist in einem kleinen Zimmer. Eigent%umliche quietschende Ger%ausche k%onnen von dem Durchgang am Nordende geh%ort werden. Du kannst auch nach Osten entfliehen." + .GSTR STR?184,"Dies ist ein gro%ser Raum, in dessen Mitte sich ein kleiner durch den Fu%sboden nach unten in die Dunkelheit verlaufender Schaft ist. Nach Westen und Norden gibt es Ausg%ange von diesem Zimmer. %Uber dem Schacht hat man ein Metalgeh%ause gebaut, an dem eine schwere eiserne Kette befestigt ist. An dem anderen Ende der Kette h%angt ein Korb." + .GSTR STR?185,"Da passt du nicht rein und w%urdest sterben, wenn du k%onntest." + .GSTR STR?186,"Dies ist ein kleines unscheinbares Zimmer. Aber aus der Richtung einer kleinen, nach unten f%uhrenden Treppe str%omt ein %ubler Gestank. Nach S%uden verl%auft ein schmaler Tunnel." + .GSTR STR?187,"Dies ist ein kleiner Raum, der stark nach Kohlendioxyd stinkt. Es gibt dort einen kurzen Treppenaufgang nach oben und einen schmalen Tunnel nach Osten." + .GSTR STR?188,"Dies ist ein sehr kleiner Raum. In der Ecke ist eine wackelige Holzleiter, die nach unten f%uhrt. Sie k%onnte sicher genug sein, um nach unten zu steigen. Es gibt auch noch eine Treppe, die nach oben f%uhrt. " + .GSTR STR?189,"Dies ist ein ziemlich breiter Raum. Auf einer Seite ist das Unterteil einer schmalen Holzleiter." + .GSTR STR?190,"Hier ist ein langer und schmaler Durchgang, der mit zerbrochenem Geb%alk angef%ullt ist. Ein breiter Durchgang kommt vom Osten und f%uhrt am Westende des Raumes in einen sehr engen Durchgang. Von Westen kommt ein starker Durchzug." + .GSTR STR?191,"Mit der Last pa%st du nicht durch diesen Durchgang." + .GSTR STR?192,"Die ist ein kleines zugiges Zimmer, das am unteren Ende eines langen Schachtes liegt. Nach S%uden f%uhrt ein Durchgang und nach Osten ein sehr schmaler Durchgang. In dem Schacht kann man eine schwere Eisenkette sehen. Am Ende der Kette h%angt ein Korb." + .GSTR STR?193,"Dies ist ein unwichtiger Teil einer Kohlengrube." + .GSTR STR?194,"Dies ist eine kleine Kammer, die der Teil einer Kohlengrube gewesen sein mu%s. Auf deren S%udwand sind die Buchstaben: %>Granitwand%< in den Fels eingraviert. Nach Osten gibt es einen langen Durchgang, und dort ist auch eine steile Metalrutsche, die sich nach unten windet. N%ordlich davon gibt es eine kleine %Offnung." + .GSTR STR?195,"F" + .GSTR STR?196,"lauernd" + .GSTR STR?197,"Wenn du darauf bestehst.........Bum! Du bist tot." + .GSTR STR?198,"Du h%attest erst mal gucken sollen, ehe du gesprungen bist." + .GSTR STR?199,"Im Film w%urde jetzt dein ganzes Leben schnell noch mal an dir vorbeispielen. Hiiiilfe." + .GSTR STR?200,"" + .GSTR STR?201,"Ausgezeichnet. Du bist in die 4. Klasse versetzt!" + .GSTR STR?202,"Macht's dir Spa%s?" + .GSTR STR?203,"Jaaaaaaaaaa!!!!!" + .GSTR STR?204,"Soll ich etwa Beifall klatschen?" + .GSTR STR?205," trifft dich genau in den Kopf. Normalerweise w%urde daraus nicht viel Schaden entstehen, aber du hast das unsagbare Pech, hinten%uberzufallen, als du dich ducken willst und brichst dir das Genick. Die Gerechtigkeit kommt schnell und gnadenreich im Gro%sen Land der Unterwelt." + .GSTR STR?206,"O nein! Du bist in die lechzenden F%ange eines lauernden Greuels geraten!" + .GSTR STR?207," " + .GSTR STR?208," " + .GSTR STR?209," " + .GSTR STR?210," " + .GSTR STR?211," " + .GSTR STR?212," geschlittert und hat dich verschlungen." + .GSTR STR?213,"Du kannst in dem Kerker nicht schwimmen." + .GSTR STR?214,"Hallo, ist da jemand?" + .GSTR STR?215,"Hallo, Hallo!" + .GSTR STR?216,"Guten Tag." + .GSTR STR?217,"Sch%ones Wetter haben wir, nicht wahr?" + .GSTR STR?218,"Auf Wiedersehen." + .GSTR STR?219,"Ein braver Versuch." + .GSTR STR?220,"Das kann doch nicht dein Ernst sein." + .GSTR STR?221,"Das hie%se das Unm%ogliche m%oglich machen." + .GSTR STR?222,"Eine hochinteressante Idee..." + .GSTR STR?223,"Was f%ur ein Plan!" + .GSTR STR?224,"Pa%s auf." + .GSTR STR?225,"Dazu ist es zu sp%at." + .GSTR STR?226,"La%s dir die Augen checken." + .GSTR STR?227,"Na ja, du scheinst deine Z%ahne mit irgendwelchem Klebstoff geputzt zu haben. Die nat%urliche Folge davon ist ein zusammengeklebter Mund (mit der Nase), und du stirbst an Atemversagen." + .GSTR STR?228,"Mit gro%ser Anstrengung %offnest du das Fenster weit genug, um einzusteigen." + .GSTR STR?229,"The window closes (more easily than it opened)." + .GSTR STR?230,"Die T%ur %offnet sich m%uhsam, und bringt eine bauf%allige Treppe zum Vorschein, die nach unten in die Dunkelheit f%uhrt." + .GSTR STR?231,"The door swings shut and closes." + .GSTR STR?232,"Ein unsinnig vor sich hin murmelnder Troll ist hier." + .GSTR STR?233,"Ein bewu%stloser Troll liegt auf der Erde. All Durchg%ange aus dem Zimmer sind ge%offnet." + .GSTR STR?234,"Ein Troll ist hier." + .GSTR STR?235,"Die Bl%atter stehen in Flammen, und du mit." + .GSTR STR?236,"Das Gitter ist geschlo%sen." + .GSTR STR?237,"Das Gitter ist zu %offnen." + .GSTR STR?238,"Das Gitter %offnet sich und bringt B%aume %uber dir zum Vorschein." + .GSTR STR?239,"Als das Messer sich seinem Opfer n%ahert, wird dein Gehirn von einem Willen %uberw%altigt, den du nicht meisterst. Langsam dreht sich deine Hand bis die rostige Schneide 2 cm von deinem Hals entfernt ist. Das Messer scheint zu singen, als es auf brutalste Weise deinen Hals durchschneidet." + .GSTR STR?240,"Wie tragisch! Der Sprung, den du gerade gewagt hast, hat dich umgebracht." + .GSTR STR?241,"Du wirst von dem steigenden Flu%s in die H%ohe gehoben! Du versuchst, zu schwimmen, aber die Str%omung ist zu stark. Du ger%atst n%aher und n%aher an die %uberw%altigende Masse des Hochwasserschutzdammes #3. Der Damm winkt dir zu. Das Get%ose des Wassers macht dich fast taub, aber du bleibst bei Bewu%stsein, als du %uber den Damm st%urzt und deinem sicheren Tode zwischen den Steinen auf seinem Grund entgegen siehst." + .GSTR STR?242,"bis an deine Kn%ochel." + .GSTR STR?243,"bis an dein Kinn." + .GSTR STR?244,"bis an deine Knie." + .GSTR STR?245,"bis an deine H%uften." + .GSTR STR?246,"bis an deine Taille." + .GSTR STR?247,"bis an deine Brust." + .GSTR STR?248,"bis an deinen Hals." + .GSTR STR?249,"%uber deinen Kopf." + .GSTR STR?250,"hoch in deiner Lunge." + .GSTR STR?251,"Der Raum ist voll Wasser und kann nicht betreten werden." + .GSTR STR?252,"Leider hast du dich ertr%ankt." + .GSTR STR?253,"Das steigende Wasser tr%agt das Boot %uber den Damm, flu%sabw%arts und %uber die F%alle. Sowas Dummes." + .GSTR STR?254,"Der Zyklop, der deiner listigen Spielchen %uberdr%ussig ist, zerquetscht dich zwischen seinen Fingern. W%ahrend ihm das Wasser im Mund zusammenl%auft, sagt er: %>Das schmeckt wie bei Muttern. Mmmh.%< + +Es ist angenehm, gesch%atzt zu werden." + .GSTR STR?255,"Der Zyklop scheint irgendwie ver%argert." + .GSTR STR?256,"Der Zyklop scheint immer %argerlicher zu werden." + .GSTR STR?257,"Der Zyklop wandert durch das Zimmer, als ob er nach etwas sucht." + .GSTR STR?258,"Der Zyklop hat nach Salz und Pfeffer gesucht. Es besteht kein Zweifel, da%s er sich seine bevorstehende Mahlzeit damit w%urzen will." + .GSTR STR?259,"Der Zyklop kommt dir auf eine sehr unangenehme Weise n%aher und n%aher." + .GSTR STR?260,"F%ur dich bestehen hier zwei M%oglichkeiten: 1. Abhauen. 2. Zur Mahlzeit werden." + .GSTR STR?261,"Da steht ein verd%achtig au%sehender Kerl, der eine T%ute h%alt, gegen die Wand gelehnt. Er ist mit einem Stilett bewaffnet." + .GSTR STR?262,"Da liegt ein verd%achtig au%sehender Kerl bewu%stlos auf der Erde." + .GSTR STR?263,"Die Stimme des Kerkermeisters dr%ohnt aus dem Dunkel: %>Deine Nichtachtung wird dir dein Leben kosten%<, und er steckt deinen Kopf auf einen spitzen Stock." + .GSTR STR?264,"Eine donnernde Stimme sagt: %>Falsch gedacht, Schwachkopf!%<, und du bemerkst, da%s du dich in eine Staubma%se verwandelt hast. Wie, kann ich mir einfach nicht vorstellen." + .GSTR STR?265,"Heir ist eine wertlose Leinwand." + .GSTR STR?266,"The lamp appears a bit dimmer." + .GSTR STR?267,"The lamp is definitely dimmer now." + .GSTR STR?268,"The lamp is nearly out." + .GSTR STR?269,"The candles grow shorter." + .GSTR STR?270,"The candles are becoming quite short." + .GSTR STR?271,"The candles won't last long now." + .GSTR STR?272," + ** Bum, bum, bum **" + .GSTR STR?273,"Die Tragf%ahigkeit des Regenbogens l%a%st sehr zu w%unschen %ubrig, was dich schwebend in der Luft h%angen l%a%st. Du bist nur von Wasserdampf gest%utzt. Auf Wiedersehen." + .GSTR STR?274,"Du planschst f%ur eine Weile wild im Wasser rum, um dich gegen die Str%omung zu halten, dann ertrinkst du." + .GSTR STR?275,"Leider gew%ahrt das Zauberboot keinen Schutz gegen Steine und Felsbl%ocke, auf die man unten am Wasserfall trifft. Auch gegen diesen nicht." + .GSTR STR?276,"Ein weiteres armseliges Ausblasen, diesmal kommt es aus dir best%atigt dein Ertrinken." + .GSTR STR?277,"Mit anderen Worten, gegen die t%odlichen Str%omungen des Gletsch k%ampfen. Du h%alst dich eine Weile %uber Wasser, aber dann wirst du %uber einen Wasserfall in gef%ahrliche Felsen gezogen. Auuuuu!" + .GSTR STR?278,"Das Loch bricht zusammen, du erstickst." + .GSTR STR?279,"Du scheinst hier ein Loch zu graben." + .GSTR STR?280,"Das Loch wird immer tiefer, aber sonst nichts." + .GSTR STR?281,"Du bist auf allen Seiten von Sand umgeben." + .GSTR STR?282,"Das war wohl ein wenig zu weit unten." + .GSTR STR?283,"Na ja, diesmal hast du es endlich geschafft. Ist Selbstmord schmerzlos?" + .GSTR STR?284,"Es scheint, als ob der letzte Hieb dir den Rest gegeben hat. Es tut mir leid, aber du bist tot." + .GSTR STR?285," verpa%st " + .GSTR STR?286," um 2cm." + .GSTR STR?287,"Ein guter Hieb, aber er verpa%st " + .GSTR STR?288," um einen Kilometer." + .GSTR STR?289,"Du greifst an, aber " + .GSTR STR?290," springt leichtf%u%sig zur Seite." + .GSTR STR?291,"Kling! Klang! Bumm! " + .GSTR STR?292," pariert den Schlag." + .GSTR STR?293,"Ein schneller Schlag, aber " + .GSTR STR?294," ist auf der Hut." + .GSTR STR?295,"Ein guter Schlag, aber er ist zu langsam, " + .GSTR STR?296," weicht aus." + .GSTR STR?297," braust nieder, sendet " + .GSTR STR?298," ins Land der Tr%aume." + .GSTR STR?299," ist bewu%stlos geschlagen." + .GSTR STR?300,"Ein f%urchterlicher Waffenaustausch und " + .GSTR STR?301," ist k.o." + .GSTR STR?302,"Das Heft von " + .GSTR STR?303," haut " + .GSTR STR?304," um." + .GSTR STR?305," ist k.o. geschlagen." + .GSTR STR?306," bei%st ins Gras, als " + .GSTR STR?307," seinen Kopf abschl%agt." + .GSTR STR?308,"Der t%odliche Schlag trifft " + .GSTR STR?309," direkt ins Herz. Er stirbt." + .GSTR STR?310," erleidet einen t%odlichen Schlag und f%allt tot zur Erde." + .GSTR STR?311," ist am Arm verletzt. Blut beginnt herabzurinseln." + .GSTR STR?312," ritzt " + .GSTR STR?313," am Handgelenk, aber es ist nicht ernst." + .GSTR STR?314,"Dein Hieb sitzt, aber er war nur mit der flachen Seite von dem Schwert." + .GSTR STR?315,"Der Schlag trifft " + .GSTR STR?316," und hinterl%a%st eine leichte Wunde in seinem Arm." + .GSTR STR?317," bekommt eine tiefe Wunde in der Seite." + .GSTR STR?318,"Ein grausiger Schlag in den Schenkel! " + .GSTR STR?319," ist momentan wie festgenagelt, aber er kann weiterk%ampfen!" + .GSTR STR?320,"Schwupp! Dein Schlag f%allt! Dieser hat eine Arterie getroffen, das k%onnte gef%ahrlich sein!" + .GSTR STR?321,"Schwupp! Dein Schlag hat getroffen! Dies k%onnte gef%ahrlich sein." + .GSTR STR?322," hat es den Atem verschlagen, und er f%allt auf die Knie." + .GSTR STR?323," ist f%ur einen Moment verwirrt und kann nicht zur%uckschlagen." + .GSTR STR?324,"Die Macht deines Hiebes wirft " + .GSTR STR?325," zur%uck, er ist benommen." + .GSTR STR?326," ist verwirrt und kann nicht zur%uckschlagen." + .GSTR STR?327,"Die Geschwindigkeit deines Sto%ses schl%agt " + .GSTR STR?328," zur%uck." + .GSTR STR?329," wird " + .GSTR STR?330," aus der Hand geschlagen, damit ist er unbewaffnet." + .GSTR STR?331," ist durch ein kluges T%auschungsman%over entwaffnet." + .GSTR STR?332,"Der Zyklop schafft es nicht, aber die Nachwelle schmei%st dich beinahe um." + .GSTR STR?333,"Der Zyklop greift dich an, aber er rennt gegen die Wand." + .GSTR STR?334,"Der Zyklop sendet dich bewu%stlos zu Boden." + .GSTR STR?335,"Der Zyklop bricht dir mit einem ungeheuren Hieb das Genick." + .GSTR STR?336,"Ein schneller Schlag, aber er hat dich nur gestreift." + .GSTR STR?337,"Ein dich streifender Faustschlag von dem Zyklopen." + .GSTR STR?338,"Das Ungeheuer trifft dich mit seiner enormen Faust in der Brust und bricht dir einige Rippen." + .GSTR STR?339,"Der Zyklop nimmt dir mit einem schnellen Schlag beinahe den Atem." + .GSTR STR?340,"Der Zyklop landet einen Schlag, der dir den Atem momentan nimmt." + .GSTR STR?341,"Deiner Waffen nicht achtend wird der Zyklop dich gegen die Wand des Raumes." + .GSTR STR?342,"Der Zyklop nimmt pl%otzlich deine Waffe, bei%st hinein und schmei%st sie v%ar%achtlich auf die Erde." + .GSTR STR?343,"Das Ungeheuer ergreift dein Handgelenk, quetscht seine Finger darum, und du l%a%st vor Schmerz " + .GSTR STR?344," fallen." + .GSTR STR?345,"Der Zyklop scheint nicht entscheiden zu k%onnen, ob er sein Abendessen kochen oder backen soll." + .GSTR STR?346,"Der Zyklop, der h%ochst unsportlich ist, wird sein bewu%stloses Opfer los." + .GSTR STR?347,"Der Troll schwingt die Axt, aber er trifft nicht." + .GSTR STR?348,"Die Axt des Trolls geht haarscharf an deinem Ohr vorbei." + .GSTR STR?349,"Die Axt fegt vorbei, als du zur Seite springst." + .GSTR STR?350,"Die Axt schmettert so hart gegen den Stein, da%s Funken spr%uhen." + .GSTR STR?351,"Die flache Seite der Axt des Trolls trifft dich leicht am Kopf, und du wirst bewu%stlos." + .GSTR STR?352,"Der Troll schneidet elegant deinen Kopf ab." + .GSTR STR?353,"Die Axt des Trolls teilt dich in zwei gleiche Teile, von oben bis unten." + .GSTR STR?354,"Die Axt des Trolls haut dir den Kopf ab." + .GSTR STR?355,"Die Axt trifft dich direkt in die Seite. Au!" + .GSTR STR?356,"Die Fl%ache der Axt des Trolls entfernt die Haut an deinem Unterarm." + .GSTR STR?357,"Die Schw%unge des Trolls hauen dich beinahe um, w%ahrend du sie kaum rechtzeitig parieren kannst." + .GSTR STR?358,"Der Troll schwingt seine Axt, trifft deinen Arm als du ausweichst." + .GSTR STR?359,"Der Troll greift an, und seine Axt verletzt dich an deinem Schwertarm." + .GSTR STR?360,"Ein Axthiebt hinterl%a%st eine tiefe Wunde in deinem Bein." + .GSTR STR?361,"Die Axt des Trolls schwingt herunter, schl%agt dir die Schulter blutig." + .GSTR STR?362,"Der Troll trifft dich mit einem schnellen Schlag, und du bist momentan au%ser Gefecht gesetzt." + .GSTR STR?363,"Der Troll trifft, aber die Schneide wird von deiner R%ustung abgelenkt, trifft dich aber direkt in den Kopf." + .GSTR STR?364,"Du stolperst unter einem Hagel von Axtstreichen zur%uck." + .GSTR STR?365,"Der m%achtige Schlag des Trolls bringt dich auf die Kniee." + .GSTR STR?366,"Die Axt trifft dein Schwert, und haut dich um." + .GSTR STR?367,"Der Troll schwingt, du parierst, aber die Gewalt seines Streiches schl%agt dir " + .GSTR STR?368," aus der Hand." + .GSTR STR?369,"Die Axt schl%agt dir die Waffe aus der Hand. Sie f%allt zu Boden." + .GSTR STR?370,"Der Troll z%ogert, betastet seine Axt." + .GSTR STR?371,"Der Troll kratzt sich nachdenklich am Kopf. Ob du wohl magische Kr%afte hast, wundert er sich?" + .GSTR STR?372,"Der Troll meistert seine Furcht und t%otet dich." + .GSTR STR?373,"Der Dieb sticht elegant mit dem Stilett und trifft nicht." + .GSTR STR?374,"Du vermeidest das Stilett, als der Dieb tief sticht." + .GSTR STR?375,"Du parierst einen blitzartigen Sto%s, und der Dieb bedient dich mit einem grimmigen Kopfnicken." + .GSTR STR?376,"Der Dieb versucht, deine Abwehrstellung heimt%uckisch zu durchbrechen, aber du windest dich aus seiner Richtung." + .GSTR STR?377,"Indem er die Richtung seines Sto%ses %andert, trifft dich der Dieb mit dem Heft des Stiletts, du wirst bewu%stlos." + .GSTR STR?378,"Der Dieb haut dich k.o." + .GSTR STR?379,"Dein Leben endet, als der Dieb die Schneide in dein Herz senkt." + .GSTR STR?380,"Der Dieb kommt von der Seite, macht ein T%auschungsman%over und setzt die Schneide zwischen deine Rippen." + .GSTR STR?381,"Der Dieb verbeugt sich formell, hebt das Stilett und mit einem h%a%slichen Grinsen beendet er den Kampf und dein Leben." + .GSTR STR?382,"Ein schneller Hieb streift deinen linken Arm, und Blut rinnt deinen Arm herunter." + .GSTR STR?383,"Blut beginnt zu flie%sen, als der Dieb sein Stilett %uber deinen Arm recht." + .GSTR STR?384,"Das Stilett zuckt schneller, als Du denken kannst, und Blut flie%st von deinem Bein." + .GSTR STR?385,"Der Dieb kommt langsam n%aher, schl%agt zu wie eine Schlange und l%a%st dich verwundet liegen." + .GSTR STR?386,"Der Dieb schl%agt zu wie eine Schlange! Die empfangene Wunde ist ernst!" + .GSTR STR?387,"Der Dieb versetzt dir einen tiefen Stich in den Oberarm." + .GSTR STR?388,"Das Stilett ber%uhrt deine Stirn, und das herabrinnende Blut macht dich blind." + .GSTR STR?389,"Der Dieb trifft dich am Handgelenk und pl%otzlich wird dein Schwertgriff schl%upfrig von dem Blut." + .GSTR STR?390,"Der Griff von seinem Stilett kracht auf deinen Sch%adel, und du wankst zur%uck." + .GSTR STR?391,"Der Dieb rammt das Heft seines Messers in deinen Bauch und du verlierst den Atem." + .GSTR STR?392,"Der Dieb greift dich an, und du f%allst verzweifelt zur%uck." + .GSTR STR?393,"Ein langer theatralischer Stich. Du parierst ihn auf " + .GSTR STR?394,", aber der Dieb dreht sein Messer, und " + .GSTR STR?395," fliegt dir aus der Hand." + .GSTR STR?396,"Der Dieb dreht dir " + .GSTR STR?397," elegant aus der Hand, und es f%allt auf die Erde." + .GSTR STR?398,"Du parierst einen Tiefschlag und " + .GSTR STR?399," schl%upft dir aus der Hand." + .GSTR STR?400,"Der Dieb, ein Mann aus guter Gesellschaft, stoppt f%ur eine Minute, um zu %uberlegen, ob es in Ordnung ist, dein Leben zu beenden." + .GSTR STR?401,"Es am%usiert den Dieb, deine Taschen zu durchsuchen." + .GSTR STR?402,"Der Dieb besch%aftigt sich damit, deinen Rucksack zu durchw%uhlen." + .GSTR STR?403,"F%ur einen Moment vergi%st der Dieb seine gute Kinderstube, er schneidet dir den Hals ab." + .GSTR STR?404,"Der Dieb, ein Pragmatiker, sieht in dir eine Bedrohung seines Lebens." + .GSTR STR?405,"M%unzen" + .GSTR STR?406,"Juwelen" + .GSTR STR?407," RETURN = see hint" + .GSTR STR?408,"Q = main menu" + .GSTR STR?409,"INVISICLUES (tm)" + .GSTR STR?410,"RETURN = see new hint" + .GSTR STR?411,"Q = see hint menu" + .GSTR STR?412,"Wo finde ich ein Buschmesser?" + .GSTR STR?413,"...Es gibt keines. Dieses Spiel muss doch IRGENDWO seine Grenzen haben.Du kannst doch nicht ploetzlich erwarten, dass du zum naechsten Flugplatz gehst, um von dort nach London zu fliegen, um das Britische Museum zu besuchen." + .GSTR STR?414,"Wie ueberquere ich die Berge?" + .GSTR STR?415,"Spiele ZORK II." + .GSTR STR?416,"Wie bringe ich den Singvogel um?" + .GSTR STR?417,"Was fuer eine Schnapsidee? Du brauchst einen Psychater." + .GSTR STR?418,"Wofuer ist das Nest sonst gut?" + .GSTR STR?419,"In China koennte man Vogelnestersuppe daraus machen." + .GSTR STR?420,"Wir sind nicht in China." + .GSTR STR?421,"In anderen Worten: Nein." + .GSTR STR?422,"Wie mache ich das Ei heil auf?" + .GSTR STR?423,"You don't." + .GSTR STR?424,"Hast du versucht zu sagen: EI %OFFNE." + .GSTR STR?425,"Es gehoert grosse Fingerferigkeit dazu und die richtigen Werkzeuge." + .GSTR STR?426,"Ein anderer Spieler kann es vielleicht." + .GSTR STR?427,"Nur der Dieb kann das Ei oeffnen. Gibt es ihm,oder lass es unteriridisch sein, wo er es finden kann." + .GSTR STR?428,"Kanarienvogel braucht Hilfe?" + .GSTR STR?429,"Er ist nicht mehr reparierbar." + .GSTR STR?430,"Keiner kann ihn reparieren. Sicher!" + .GSTR STR?431,"Wozu sind Blaetter denn gut?" + .GSTR STR?432,"Die sind gut, um Gitter zu verbergen." + .GSTR STR?433,"Man kann sie nehmen, zaehlen, oder verbrennen." + .GSTR STR?434,"Ich habe mich im Wald verlaufen." + .GSTR STR?435,"Es gibt nur vier verschiedene Orte, die ""Wald"" heissen. Aber die Verbindungen sind gewoehnlich nicht gerade Wege. Um die Konfusion zu vergroesseren, gibt es zwei Oertlichkeiten, die ""Lichtung"" heissen. " + .GSTR STR?436,"Wie oeffne ich das Gitter?" + .GSTR STR?437,"Du musst es aufschliessen." + .GSTR STR?438,"Du brauchst den Schluessel beim Skelett." + .GSTR STR?439,"Es kann nur von unten aufgeschlossen werden." + .GSTR STR?440,"Das Gitter und der Schluessel koennen im Irrgarten gefunden werden." + .GSTR STR?441,"Wie komme ich von dem Hausdach?" + .GSTR STR?442,"Wie bist du denn raufgekommen." + .GSTR STR?443,"Einer von Infocom wuerde gerne wissen, wie du das geschafft hast." + .GSTR STR?444,"Das ist wirklich eine Falle. Verwende weder das Nichtvorhandensein oder das Vorhandenseins eines Themas als Indikator fuer das,was wichtig ist." + .GSTR STR?445,"Wozu ist der Kanarienvogel gut?" + .GSTR STR?446,"Er muss natuerlich unversehrt sein." + .GSTR STR?447,"Irgendwer ist von seinem Singen bezaubert." + .GSTR STR?448,"Es ist auch ein Wertstueck." + .GSTR STR?449,"Versuche ihn im Wald aufzuziehen." + .GSTR STR?450,"Wo ist das Flitterzeug? " + .GSTR STR?451,"Du musst erst mal das Ei oeffnen." + .GSTR STR?452,"Schau die vorige Frage an." + .GSTR STR?453,"Wie oeffne ich die Haustuer?" + .GSTR STR?454,"Man kann sie nicht eintreten" + .GSTR STR?455,"Man kann sie nicht nicht zerstoeren." + .GSTR STR?456,"Man kann sie nicht oeffnen." + .GSTR STR?457,"Wie komme ich ins Haus?" + .GSTR STR?458,"Hast du alle Seiten ausgechecked?" + .GSTR STR?459,"Da ist eine Fenster hinten, das ein bisschen offen steht." + .GSTR STR?460,"Mach's auf und klettere hinein." + .GSTR STR?461,"Kann ich das Brot essen?" + .GSTR STR?462,"Versuch's." + .GSTR STR?463,"Versuch auch das Wasser." + .GSTR STR?464,"In ZORK I darfst du vor nichts Angst haben (aber es ist sinnvoll, deinen Spielstand erst zu SICHERN)." + .GSTR STR?465,"Wie komme ich in den Kerker?" + .GSTR STR?466,"Der Eingang ist im Haus." + .GSTR STR?467,"Falltueren koennen versteckt sein." + .GSTR STR?468,"Zieh den Teppich weg." + .GSTR STR?469,"Was ist ein Greul?" + .GSTR STR?470,"Tippe, WAS IST EIN GREUL" + .GSTR STR?471,"Ueber der Erde" + .GSTR STR?472,"Geht die Falltuer von unten auf?" + .GSTR STR?473,"Nein. Der einzige Weg, den es gibt die Falltuer daran zu hindern hinter dir zuzufallen, ist einen anderen Ausweg zu finden (nicht den Kamin, der sehr limitiert ist)." + .GSTR STR?474,"Geht es die Kellerrampe rauf?" + .GSTR STR?475,"Die Rampe ist zu schluepfrig zum Klettern." + .GSTR STR?476,"Kann man was gegen die Schluepfrigkeit tun?" + .GSTR STR?477,"Nein, die Rampe kommst du nie rauf." + .GSTR STR?478,"Wie verhandle ich mit dem Troll?" + .GSTR STR?479,"Trolle unterhalten sich gewoehnlich nicht gern. Man muss sie meist mit direkten Methoden angehen." + .GSTR STR?480,"So lange er bei Bewusstsein ist, kannst du nicht an ihm vorbei." + .GSTR STR?481,"Bring ihn mit dem Schwert um." + .GSTR STR?482,"Was mache ich mit der Axt?" + .GSTR STR?483,"Man kann es als Waffe benutzen, aber es ist eigentlich zu nichts gut." + .GSTR STR?484,"Dieser Platz ist absichtlich leer." + .GSTR STR?485,"Warum sind hier Farbkleckse?" + .GSTR STR?486,"Der Kuenstler war ein Ferkel." + .GSTR STR?487,"Der Keller" + .GSTR STR?488,"Wie geht's durch den Irrgarten?" + .GSTR STR?489,"Es ist notwendig eine Karte von dem Irrgarten zu zeichnen." + .GSTR STR?490,"Alle zehn Richtungen werden benutzt: N, S, O, W, NO, NW, SO, SW, RAUF, RUNTER." + .GSTR STR?491,"Einige Durchgaenge fuehren zu demselben Zimmer zurueck." + .GSTR STR?492,"Zimmer koennen dadurch markiert werden, dass man Dinge fallen laesst. (Der Dieb aber kann ein Problem sein)." + .GSTR STR?493,"Es gibt 22 Zimmer westlich von dem Trollzimmer." + .GSTR STR?494,"Wie durch den Irrgarten?" + .GSTR STR?495,"Von dem Trollzimmer zu dem Gitterzimmer:" + .GSTR STR?496,"W. W. W. RAUF. SW. RAUF. RUNTER. NO" + .GSTR STR?497,"Von dem Gitterzimmer zu dem Trollzimmer:" + .GSTR STR?498,"SW. RUNTER. O. N. RUNTER. N. N. N. O" + .GSTR STR?499,"Von dem Trollzimmer zu dem Zyklopenzimmer:" + .GSTR STR?500,"W. W. W. U. SW. E. S. SE." + .GSTR STR?501,"Von dem Zyklopenzimmer zu dem Trollzimmer:" + .GSTR STR?502,"NW. S. W. RUNTER. N. N. N. O" + .GSTR STR?503,"Von dem Gitterzimmer zu dem Zyklopenzimmer:" + .GSTR STR?504,"SW. RUNTER. O. N. O. S. SO" + .GSTR STR?505,"Von dem Zyklopenzimmer zu dem Gitterzimmer:" + .GSTR STR?506,"NW. S. W. RAUF. RUNTER. NO" + .GSTR STR?507,"Wozu ist das rostige Messer?" + .GSTR STR?508,"Wenn du dein Schwert gehabt haettest, als du es genommen hast, haette das flackernde blendende Licht als Warnung gedient." + .GSTR STR?509,"Versuche das Messer zu werfen oder jemanden damit anzugreifen." + .GSTR STR?510,"Wozu ist ein Skelett gut?" + .GSTR STR?511,"Lasse den Toten ihren Frieden." + .GSTR STR?512,"Dieser Platz ist absichtlich frei gelassen worden." + .GSTR STR?513,"Brauch ich die kaputte Leuchte?" + .GSTR STR?514,"Wenn du denkst, dass sie nuetzlich ist, da gibt es die Bruecke, die dich vielleicht interessiert." + .GSTR STR?515,"Wie komm ich am Zyklop vorbei?" + .GSTR STR?516,"Kaempfen ist nicht immer die Antwort." + .GSTR STR?517,"Es gibt zwei Loesungen." + .GSTR STR?518,"Erst die erste Loesung:" + .GSTR STR?519,"Was passiert, wenn du herumhaengst oder dem Zyklop etwas gibst?" + .GSTR STR?520,"Er ist hungrig, nicht wahr?" + .GSTR STR?521,"Gib ihm das Brot und das Wasser." + .GSTR STR?522,"Der Irrgarten" + .GSTR STR?523,"Wie bekomme ich das Platin?" + .GSTR STR?524,"Da gibt es eigentlich zwei Loesungen." + .GSTR STR?525,"Was macht das laute Tosen?" + .GSTR STR?526,"Gibt es eine Moeglichkeit den Fluss des Wassers zu kontrollieren?" + .GSTR STR?527,"Loese das Raetsel des Dammes." + .GSTR STR?528,"Hat das Oeffnen oder Schliessen der Schleusentore irgendwelchen Einfluss auf den Unterlauf des Flusses." + .GSTR STR?529,"Oeffne die Schleusentore." + .GSTR STR?530,"Warte bis das Reservoir leer ist, dann schliesse die Tore." + .GSTR STR?531,"Benutze die Ruhe im lauten Zimmer, waehrend sich das Reservoir anfuellt." + .GSTR STR?532,"Hier ist die zweite Loesung." + .GSTR STR?533,"Die Loesung, die das laute Zimmer betrifft, benoetigt keine Objekte aus dem Spiel oder auch irgendwelche Auskunft ueber das uebrige Spiel." + .GSTR STR?534,"Die Loesung hat etwas mit der Akustik in diesem Raum zu tun." + .GSTR STR?535,"Was passiert, wenn du etwas... etwas...etwas tippst?" + .GSTR STR?536,"Tippe ECHO." + .GSTR STR?537,"Wie bring ich den Rock um?" + .GSTR STR?538,"Wie dumm!" + .GSTR STR?539,"Der Ausdruck ""lebender Rock"" ist metaphorisch und sollte nicht woertlich genommen werden." + .GSTR STR?540,"Was Besonderes am Spiegel?" + .GSTR STR?541,"Ihn zerschlagen ist nicht die beste Idee." + .GSTR STR?542,"Hineingucken kann Spass machen." + .GSTR STR?543,"Hast du jemals versucht ihn zu beruehren oder ihn zu reiben?" + .GSTR STR?544,"Es gibt zwei Spiegelzimmer." + .GSTR STR?545,"Wenn man einen davon in einem Zimmer anruehrt, wird man automatisch ins andere Zimmer versetzt." + .GSTR STR?546,"Wie komme ich in den Hades?" + .GSTR STR?547,"Du musst die boesen Geister austreiben." + .GSTR STR?548,"Hier ein Tip: schlage die Seite im schwarzen Buch um." + .GSTR STR?549,"Man benoetigt die Glocke, das Buch und Kerzen." + .GSTR STR?550,"Laeute die Glocke, stecke die Kerzen an und lies das schwarze Buch." + .GSTR STR?551,"Die Reihenfolge in dieser feierlichen Handlung ist sehr wichtig." + .GSTR STR?552,"Auch musst du die Kerzen in der Hand halten, wenn du sie ansteckst." + .GSTR STR?553,"Geschwindigkeit ist in diesem Fall auch wichtig,--verschwende auch nicht mehr Zeit, als unbedingt zwischen den Handlungen notwendig ist." + .GSTR STR?554,"Geht es runter vom Domzimmer?" + .GSTR STR?555,"Ja." + .GSTR STR?556,"Du musst frueher mal das notwendige Hilfsmittel gesehen haben." + .GSTR STR?557,"Man findet es im Speicher." + .GSTR STR?558,"Binde das Seil ans Gelaender." + .GSTR STR?559,"Geht es rauf vom Fackelzimmer?" + .GSTR STR?560,"Nein." + .GSTR STR?561,"Wie geht's weg vom Tempel?" + .GSTR STR?562,"Du wirst das Seil nie erreichen." + .GSTR STR?563,"Du kannst vom Altarende aus nach unten gehen, aber du brauchst Gottes Hilfe um den Sarg durch das Loch nach unten zu bekommen." + .GSTR STR?564,"Der Altar hat magische Kraefte." + .GSTR STR?565,"Was tut man gewoehnlich vor einem Altar?" + .GSTR STR?566,"Versuch's doch mal mit Beten." + .GSTR STR?567,"Die Rundzimmergegend" + .GSTR STR?568,"Wie sprenge ich den Damm?" + .GSTR STR?569,"Was fuer eine Idee!" + .GSTR STR?570,"Hier ist absichtlich Platz frei gelassen." + .GSTR STR?571,"Wie funktioniert die Kontrolltafel?" + .GSTR STR?572,"Du kannst die Schraube drehen." + .GSTR STR?573,"Du brauchst einen Schraubenschluessel." + .GSTR STR?574,"Du musst die Schalttafel aktivieren. (Gruene Blase leuchtet auf.)" + .GSTR STR?575,"Fuer was ist die gruene Blase?" + .GSTR STR?576,"Sie zeigt an, dass die Schalttafel aktiviert ist." + .GSTR STR?577,"Benutze die Knoepfe in dem Wartungsraum ." + .GSTR STR?578,"Was tue ich mit der Tube?" + .GSTR STR?579,"Lies die Tube." + .GSTR STR?580,"Die Zaehne damit putzen macht wirklich keinen Sinn." + .GSTR STR?581,"Zum Oelen der Schraube ist es auch nicht gedacht." + .GSTR STR?582,"Schwarze Schmiere wie diese, ist gut zum Reparieren von Lecks in Wasserroehren und Booten." + .GSTR STR?583,"Wozu ist der Schraubenzieher?" + .GSTR STR?584,"Wenn es an der Zeit ist, wirst du es wissen." + .GSTR STR?585,"Wozu Wartungsraumknoepfe?" + .GSTR STR?586,"Probier sie alle doch mal. Das sollte dir helfen das rauszufinden." + .GSTR STR?587,"Der blaue Knopf kann eine Wasserroehre platzen lassen." + .GSTR STR?588,"Der rote Knopf schaltet die Lichter ein und aus." + .GSTR STR?589,"Der gelbe Knopf aktiviert die Kontrolltafel am Damm(die gruene Blase leuchtet jetzt auf.)" + .GSTR STR?590,"Die braune Blase legt die Kontrolltafel lahm." + .GSTR STR?591,"Kann ich das Leck dichten?" + .GSTR STR?592,"Ja, aber nicht mit deinem Finger." + .GSTR STR?593,"Gibt es nicht irendwelche Schmiere, die man benutzen kann?" + .GSTR STR?594,"Benutze die Schmiere in der Tube." + .GSTR STR?595,"Wozu ist der Haufen Plastik?" + .GSTR STR?596,"Wofuer ist das Ventil?" + .GSTR STR?597,"Hast du mal versucht hineinzublasen?" + .GSTR STR?598,"Du brauchst die Luftpumpe, die noerdlich vom Reservoir ist." + .GSTR STR?599,"Loese das verDAMMte Problem, oder werd endlich aus dem Spiegel schlau." + .GSTR STR?600,"Die Dammgegend" + .GSTR STR?601,"Kann man ueber den Fluss?" + .GSTR STR?602,"Nicht ohne Boot." + .GSTR STR?603,"Was besaenftigt den Flussgott?" + .GSTR STR?604,"Was hast du versucht, in den Fluss zu werfen?" + .GSTR STR?605,"Es gibt keinen Flussgott. Was jemals reingeworfen wird, ist fuer immer verloren." + .GSTR STR?606,"Kann ich zurueck ueber den Fluss?" + .GSTR STR?607,"Wenn du vom sandigen Strand abstoesst, kannst du den Fluss westlich von den Weissen Klippen Sued ueberqueren." + .GSTR STR?608,"Es ist auch moeglich den Regenbogen zu ueberqueren." + .GSTR STR?609,"Wie funktioniert das Boot?" + .GSTR STR?610,"Lese die Anweisungen." + .GSTR STR?611,"Du kannst sagen: STEIG INS, STEIG AUS, STOSSEN AB, und LANDEN (oder eine Richtung gegen einen Landeplatz angeben.). Du kannst dich auch von der Stroemung tragen lassen." + .GSTR STR?612,"Ich habe eine Bootpanne!" + .GSTR STR?613,"Spitze Gegenstaende koennen ein Plastikboot kaputt machen. Man sollte sie nicht an Bord nehmen. Man sollte sie in das Boot tun, bevor man einsteigt, oder man solllte sie vorher in einem Behaelter haben, wie zum Beispiel dem braunen Sack." + .GSTR STR?614,"Wie komme ich ueber die Faelle?" + .GSTR STR?615,"Bleib im Boot und warte." + .GSTR STR?616,"Na ja, was hast du erwartet?" + .GSTR STR?617,"Ich sehe hier keinerlei Intelligenz." + .GSTR STR?618,"Hat der Regenbogen Bedeutung?" + .GSTR STR?619,"Du kannst ihn ueberqueren und den goldenen Topf bekommen." + .GSTR STR?620,"Du schlaegst nicht dreimal die Hacken zusammen, waehrend du ausrufst:""Heimat, suesse Heimat.""" + .GSTR STR?621,"Die Beschreibung von einem der Schaetze, und das Resultat der richtigen Benutzung davon, sollten versteckte Tips sein." + .GSTR STR?622,"Erhebe das Zepter oder winke damit, waehrend du am Ende des Regenbogen stehst." + .GSTR STR?623,"Kann ich durch die Grottenritze?" + .GSTR STR?624,"""Die ist zu eng fuer die meisten Insekten.""" + .GSTR STR?625,"Das geht nicht." + .GSTR STR?626,"Wie werde ich ein Insekt?" + .GSTR STR?627,"Spinne einen Kokon." + .GSTR STR?628,"Eine laecherliche Aufgabe." + .GSTR STR?629,"Der Fluss" + .GSTR STR?630,"Was ist mit der Fledermaus?" + .GSTR STR?631,"Es ist eine Vampirfledermaus." + .GSTR STR?632,"Hast du je einen Greuelfilm gesehen?" + .GSTR STR?633,"Benutze den Knoblauch." + .GSTR STR?634,"Wie am Stinkzimmer vorbei?" + .GSTR STR?635,"Wenn die Batterie von deiner Leuchte kaputt ist, vergiss es." + .GSTR STR?636,"Die beste Kohlengrubenroute?" + .GSTR STR?637,"Vom Gaszimmer zur Spitze der Leiter:" + .GSTR STR?638,"O. NO. SO. SW. RUNTER" + .GSTR STR?639,"Von der Spitze der Leiter zum Gaszimmer:" + .GSTR STR?640,"RUNTER. N. O. S. N" + .GSTR STR?641,"Ist der Korb nuetzlich?" + .GSTR STR?642,"Alles in Zork ist nuetzlich." + .GSTR STR?643,"Wie durch den engen Durchgang?" + .GSTR STR?644,"""Du passt nicht durch diesen Durchgang mit der Last.""" + .GSTR STR?645,"Hast du versucht,alles fallen zu lassen?" + .GSTR STR?646,"Eine Lichtquelle fuers zugige Zimmer?" + .GSTR STR?647,"Streichhoelzer." + .GSTR STR?648,"Na ja, keiner hat gesagt, dass die in einem Zug angehen. Du kannst keine Lichtquelle reintragen. Es gibt eine andere Moeglichkeit." + .GSTR STR?649,"Hast du dir mal ueberlegt wohin der Schacht mit dem Korb gefuehrt hat?" + .GSTR STR?650,"Dinge, wie z.B. Lichtquellen kann man in den Korb tun. Der Korb kann erhoeht und gesenkt werden." + .GSTR STR?651,"Wozu ist das Bauholz?" + .GSTR STR?652,"Es macht den Raum interessanter und verwirrt den Abenteurer." + .GSTR STR?653,"Wie funktioniert die Maschine?" + .GSTR STR?654,"Die Schalterbeschreibung sollte dich an etwas erinnern." + .GSTR STR?655,"Versuch mal was reinzutun und die Maschine mit dem Schraubenzieher anzustellen. Hast du einen Duden zur Hand?" + .GSTR STR?656,"Aus Kohle kann man einen Diamanten machen." + .GSTR STR?657,"Wozu ist die Kohle gut?" + .GSTR STR?658,"Es ist eine Quelle fuer Kohlenstoff." + .GSTR STR?659,"Einer der wertvollsten Steine ist aus Kohlenstoff gemacht." + .GSTR STR?660,"Diamanten sind aus reinem Kohlenstoff in einer Kristallform. Sie werden durch enorme Hitze und durch Druck erzeugt." + .GSTR STR?661,"Wozu ist das Gas gut?" + .GSTR STR?662,"Es hat eine tolle Wirkung, wenn man bornierteAbenteurer, die mit offenen Flammen in Kohlengruben rumlatschen, in die Luft blasen will." + .GSTR STR?663,"Die Kohlengrube Gegend." + .GSTR STR?664,"Wie ueberquere ich die Spalte?" + .GSTR STR?665,"Es gibt keine Bruecke." + .GSTR STR?666,"Wie baue ich eine Bruecke?" + .GSTR STR?667,"Eine interessante Idee..." + .GSTR STR?668,"Das Bauholz koennte nuetzlich sein." + .GSTR STR?669,"Aber, vielleicht auch nicht?." + .GSTR STR?670,"Ein akzeptabler Versuch, aber vielleicht bringt er dir nichts." + .GSTR STR?671,"Das Land hinter der Spalte." + .GSTR STR?672,"Warum leuchtet das Schwert auf?" + .GSTR STR?673,"Elfenschwerter haben Zauberkraft und leuchten blau auf, wenn in der Naehe Gefahren drohen (besonders gefaehrliche Personen)." + .GSTR STR?674,"Was mach ich mit dem Dieb?" + .GSTR STR?675,"Einschaetzung ist der bessere Teil von Heldenmut." + .GSTR STR?676,"Du kannst fast immer einer Gegenueberstellung ausweichen, indem du in die andere Richtung gehst. Obwohl du beraubt werden koenntest wirst du wenigstens nicht umgebracht." + .GSTR STR?677,"Wieviele Gesamtpunkte gibt's?" + .GSTR STR?678,"350 jedesmal, wenn du AUFH%OREN, NEUBEGINN ODER PUNKTZAHL sagst, das ist angegeben." + .GSTR STR?679,"Wie komm ich aus der Hoehle?" + .GSTR STR?680,"Es gibt da sechs Ausgaenge." + .GSTR STR?681,"Der Kamin erlaubt dir ausser deiner Lampe, jedesmal ein Objekt zu transportieren." + .GSTR STR?682,"Wahrscheinlich ist der einfachste Ausgang(rein von der Anlage her) durch das Gitter. Du triffst wahrscheinlich auf die anderen drei Ausgaenge, waehrend du einige der schwierigeren Probleme loest, aber es ist nicht notwendig, mehr als einen zu finden, um das Spiel zu beenden." + .GSTR STR?683,"Was bedeuten die Gravierungen?" + .GSTR STR?684,"Der superweise Kritiker I.Q. Rundkopf hat eine zehnbaendige Studie ueber die Gravierungen der Ur-Zorker geschrieben. Doch machen wir eine lange Geschichte kurz, er erfasste klar, dass die Zorkers sehr eigentuemliche Kaeuze waren." + .GSTR STR?685,"Wie bring ich den Dieb um?" + .GSTR STR?686,"Der Dieb ist gerissen und gefaehrlich als Gegner, beschlagen in den Kampfarten. Anfaenger Zorker tun sich am Besten, indem sie in vermeiden." + .GSTR STR?687,"Es besteht die Moeglichkeit ihn fuer einen Zug lang abzulenken, indem man ihm etwas Wertvolles gibt." + .GSTR STR?688,"Das gefaehrliche Messer ist eine unter Umstaenden wirksamere Waffe, die man gegen ihn benutzen koennte." + .GSTR STR?689,"Wie kann ich meine Leuchte aufladen?" + .GSTR STR?690,"Wie kommst du darauf?" + .GSTR STR?691,"Es ist immer am besten, seine Mittel zu schonen." + .GSTR STR?692,"Du kannst ihre Lebensdauer verlaengern, indem du sie ausschaltest, wenn immer du kannst und andere Lichtquellen benutzen." + .GSTR STR?693,"Was passiert, wenn du stirbst?" + .GSTR STR?694,"Du koenntest im Wald erscheinen von all deinem Besitz umgeben (Wervolles unterirdisch, Wertloses ueberirdisch.)" + .GSTR STR?695,"Du koenntest als Geist umhergeistern, bis du eine Form deiner Auferstehung gefunden hast." + .GSTR STR?696,"ZORK I hat die gleichen Regeln wie Schlagball. Drei Versuche, dann bist du aus dem Spiel." + .GSTR STR?697,"Du wirst zu einem Geist, wenn du an einem gewissen Ort angekommen bist, der vor dem eigentlichen Tod steht." + .GSTR STR?698,"Dieser Ort ist der Altar in dem Suedtempel." + .GSTR STR?699,"Versuche am Altar zu beten." + .GSTR STR?700,"Wer ist ""der andere Bewohner""?" + .GSTR STR?701,"/" + .GSTR STR?702,"Der Dieb, natuerlich." + .GSTR STR?703,"Wozu ist TAG, SEEMAN gut?" + .GSTR STR?704,"Willst du das wirklich wissen?" + .GSTR STR?705,"Bist du ganz sicher?" + .GSTR STR?706,"Um von dem schwarzen Buch zu zitieren: ""Oh Ihr, die Ihr zueinander sagt: %>Tag, Seeman%<. Seid Ihr Euch der Gr%o%se Eurer S%unden vor den G%ottern bewu%st? ... Wahrhaftig Ihr sollt b%ussen f%ur eure Schlauheit.""" + .GSTR STR?707,"Nirgends. (Man hat dich gewarnt.)" + .GSTR STR?708,"Freie Fragen." + .GSTR STR?709,"Dinge scheinen hier oder nicht hier." + .GSTR STR?710,"Der Dieb ist dauernd irgendwo anders." + .GSTR STR?711,"Es ist sehr moeglich, dass er Wertvolles nimmt(ausser dem goldenen Sarg), den du gesehen hast. Es ist wesentlich weniger moeglich, das er etwas Nichtwertvolles nimmt (natuerlich nur, wenn du es gesehen hast), manchmal laesst er es auch spaeter fallen." + .GSTR STR?712,"Wo sind die gestohlenen Schaetze?" + .GSTR STR?713,"Waehrend der Dieb herumwandert, stielt er Dinge, die er in seinen Sack stopft. Wenn er in seinem Schatzzimmer ankommt, deponiert er die Werte, die er angesammelt hat." + .GSTR STR?714,"Das Schatzzimmer wird von dem Zyklop bewacht." + .GSTR STR?715,"Was mach ich mit dem Stilett?" + .GSTR STR?716,"Gratuliere! Das Stilett zu bekommen passiert selten. Wenn du es vor dem Dieb verbergen kannst, dann wird er dich nicht angreifen." + .GSTR STR?717,"Es ist ja nur eine Waffe, sonst nichts." + .GSTR STR?718,"Wer ist der duerre,hungrige Typ?" + .GSTR STR?719,"Der Dieb." + .GSTR STR?720,"Wo brauche ich die Schaufel?" + .GSTR STR?721,"Sie graebt nur in loser Erde." + .GSTR STR?722,"Probier sie im Sand." + .GSTR STR?723,"Der Sand in der sandigen Hoehle ist vielversprechend." + .GSTR STR?724,"Der beste Selbstbildniswiedergeber?" + .GSTR STR?725,"Von was sprichst du eigentlich?" + .GSTR STR?726,"Dieser Platz ist absichtlich offen gelassen." + .GSTR STR?727,"In den eigentuemlichen Durchgang?" + .GSTR STR?728,"Das ist nicht notwendig, um das Spiel zu beenden." + .GSTR STR?729,"Schau die andere Zyklopantwort an." + .GSTR STR?730,"Wie in das Steingrab?" + .GSTR STR?731,"Wenn die Zeit reif ist, weisst du es." + .GSTR STR?732,"Wenn du alle 350 Punkte erreicht hast, dann kannst du ins Steingrab eintreten." + .GSTR STR?733,"Wie man Punkte macht. (Bitte nur benutzen, wenn alles verloren scheint.)" + .GSTR STR?734,"Du bekommst 10 Punkte, wenn du ins Haus gelangst, 25 fuer den Keller, 5 als Bonus, wenn du am Troll vorbei kommst, 13 fuer den Eintritt in das zugige Zimmer,25 fuer das Erreichen des Schatzzimmers." + .GSTR STR?735,"Diese Punkete zusammen mit all den Schatzpunkten kommen auf 350. Wenn du all diese 350 Punkte hast, wird der zwanzigste Schatz im Trophaenschrank erscheinen-- eine Karte, die (indirekt) zu 400 weiteren Punkten (ZORK II) fuehrt." + .GSTR STR?736,"Schaetze: Ihre Werte, wo sie sind." + .GSTR STR?737,"(Nur benutzen, wenn alles verloren scheint.)" + .GSTR STR?738,"(Der Schatz wird aufgefuehrt, gefolgt von den Punkten, die man bekommt, wenn man ihn nimmt, die Punkte dafuer, dass man ihn in den Trophaeenkasten tut, dann der Platz, wo er gefunden wird.)" + .GSTR STR?739,"Juwelenbedecktes Ei - 5 - 5 - im Nest im Baum" + .GSTR STR?740,"Aufziebarer Kanarienvogel 6 - 4 - im Ei" + .GSTR STR?741,"Schoenes Gemaelde - 4 - 6 - Kunstgalerie" + .GSTR STR?742,"Platinbarren - 10 - 5 - im lauten Zimmer" + .GSTR STR?743,"Elfenbeinfackel - 14 - 6 - Fackelzimmer" + .GSTR STR?744,"Goldener Sarg - 10 - 15 - Aegyptisches Zimmer" + .GSTR STR?745,"Egyptian sceptre - 4 - 6 - in the coffin" + .GSTR STR?746,"Koffer mit Juwelen - 15 - 5 - Reservoir" + .GSTR STR?747,"Kristaldreizack - 4 - 11 - Atlantiszimmer" + .GSTR STR?748,"Jadefigure - 5 - 5 - Fledermauszimmer" + .GSTR STR?749,"Saphirarmbanch - 5 - 5 - Gaszimmer" + .GSTR STR?750,"Riesendiamant - 10 - 10 - du machst ihn" + .GSTR STR?751,"Sack mit Muenzen - 10 - 5 - im Irrgarten." + .GSTR STR?752,"Kristallschaedel - 10 - 10 - im Land der lebendigen Toten." + .GSTR STR?753,"juwelenbesetzer Skarabaeus - 5 - 5 - in der sandigen Hoehle vergraben" + .GSTR STR?754,"grosser Smaragd - 5 - 10 - in der Boje" + .GSTR STR?755,"Silberkelch - 10 - 5 - Schatzzimmer" + .GSTR STR?756,"Goldener Topf - 10 - 10 - am Ende des Regenbogens" + .GSTR STR?757,"Messingflitterkugel - 1 - 1 - der Singvogel hat sie" + .GSTR STR?758,"Zum Spass" + .GSTR STR?759,"(Lies nur, nachdem du das Spiel beendet hast.)" + .GSTR STR?760,"Hast du je:" + .GSTR STR?761,"...das Gitter geoeffnet, waehrend die Blaetter noch drauf lagen?" + .GSTR STR?762,"...ZORK I so richtig verflucht?" + .GSTR STR?763,"...mit dem Zepter gewinkt, als du auf dem Regenbogen gestanden hast?" + .GSTR STR?764,"...etwas Boeses mit den Leichen im Hades ausprobiert?" + .GSTR STR?765,"...das schwarze Buch verbrannt?" + .GSTR STR?766,"...das Gemaelde kaputt gemacht?" + .GSTR STR?767,"...die Kerzen mit der Fackel angezuendet?" + .GSTR STR?768,"...das Streichholzschaechtelchen gelesen?" + .GSTR STR?769,"...versucht dich selber(oder den Dieb, den Troll oder den Zyklop)zu verulken?" + .GSTR STR?770,"...versucht Dinge mit dem Messer oder dem Schwert zu zerschneiden?" + .GSTR STR?771,"...Wasser auf etwas Brennendes geschuettet?" + .GSTR STR?772,"...gesagt WARTE oder SPIELSTAND, als du tot warst (als ein Geist)?" + .GSTR STR?773,"Freie Fragen" + .GSTR STR?774," N = next" + .GSTR STR?775,"P = previous" + .GSTR STR?776," RETURN = See hint" + .GSTR STR?777,"Q = Resume story" + .GSTR STR?778,"Es gibt nur vier verschiedene Orte, die ""Wald"" heissen. Aber die Verbindungen sind gewoehnlich nicht gerade Wege. Um die Konfusion zu vergroesseren, gibt es zwei Oertlichkeiten, die ""Lichtung"" heissen. Von dem ""Waldpfad"" kann man nach Sueden zu dem ""Norden des Hauses"" gehen." + .GSTR STR?779,"""Der von der grossen Tuete.""" + + .ENDI diff --git a/zstring.c b/zstring.c new file mode 100644 index 0000000..3c49552 --- /dev/null +++ b/zstring.c @@ -0,0 +1,870 @@ +/* zstring.c String operations + + 1988 Zinn Computer Company, for Infocom + + +Contained in this file: + + addfstr Add string to frequent-string table + zstr Translate ASCII to Z-string + zstrlen Return # of words in a Z-string + zword Translate ASCII to Zword-string + +*/ + +#include +#include + +#include "zap.h" + + +/* Local definitions */ + + +/* External routines */ + +extern char *CALLOC(); +extern char *REALLOC(); +extern char *MALLOC(); + +/* External data */ + +extern BOOL Permshift; +extern int Max_buf_len; +extern int character_count; +extern long character_counts[]; +extern int build_freq; +extern char language_char; +extern unsigned char *language_table; + +/* Local routines (and forward references) */ + + +/* Local data */ + + +/* Private data */ + +static int FreqC = 0; /* Number of frequent strings */ +static UBYTE *Zstrbuf = NULL; +static int Zstrbuf_size = 0; + +static struct freq_node { /* Frequent string table */ + int fs_len; /* Length of string */ + char *fs_strP; /* Ptr to string */ + int fs_num; + struct freq_node *next; + } *Freqstr[256]; /* We assume this is initialized to 0 */ + +static struct { /* Character set codes */ + UBYTE zc_set; /* Set number */ + UBYTE zc_char; /* Character value */ + } Zctbl[256]; /* Indexed by character */ +/* + +*//* addfstr( strP ) + + Add a string to the list of frequent strings + +Accepts : + + strP Address of the Z-string + +Returns : + + status code + +Notes : + + No check is made to ensure that the string to be +added is not already in the frequent string list. We assume +that the compiler knew what it was doing; anyway, doing so would +probably throw the application's assumptions out of sync. + +*/ + +int +addfstr( strP ) +AREG1 char *strP; /* Addr of zstring */ +{ +DREG1 int len; /* Length of string */ +AREG2 struct freq_node *new; + if (build_freq) return(SCOK); + if ( FreqC == MAXFREQSTR ) + zerror( E_PASS1, "Too many frequent strings at \"%s\"", strP ); + else { + new = (struct freq_node *)MALLOC(sizeof(struct freq_node)); + new->next = Freqstr[(unsigned char)(*strP)]; + Freqstr[(unsigned char)(*strP)] = new; + len = strlen( strP ); /* Number of bytes */ + if ( ( new->fs_strP = CALLOC( 1, len+1 ) ) == NULL ) + zerror( E_PASS1, "addfstr: can not allocate string space!" ); + else { + strcpy( new->fs_strP, strP ); + new->fs_len = len; + new->fs_num = FreqC; + ++FreqC; + } + } + return( SCOK ); +} +/* + +*//* zstr( strP, freqF, reqlen ) + + Translate ASCII to Z-string + +Accepts : + + strP Address of the ASCII string + freqF Whether to use frequent-words in the translation + reqlen Number of bytes of required string length. If + non-zero, resulting Z string must contain exactly + this many bytes. It will be truncated if too long, + or padded if too short. + +Returns : + + The address of the translated string + + +Notes : + + The returned value is a pointer to a static reusable buffer. + +*/ + +UBYTE *translate_char(strP, chrp) +UBYTE *strP; +UBYTE *chrp; +{ + UBYTE *tbl = language_table; + UBYTE tch, ch; + ch = strP[1]; + if (ch != NUL) { + /* Ignore escape at end of string */ + strP++; + if (ch != language_char) { + /* %% turns into % */ + while (tch = *tbl++) { + if (tch == ch) { + *chrp = *tbl; + break; } + tbl++; } } } + return(strP); } + +UBYTE * +zstr( strP, freqF, reqlen ) +AREG1 UBYTE *strP; /* Ptr to input string */ + int freqF; /* Whether to use frequent words */ + int reqlen; /* Required length, if any */ +{ + UBYTE ch; /* Character */ + UBYTE curcset; /* Currently selected cs */ + UBYTE ccode; /* Character code */ + UBYTE cset; /* Character set */ +AREG2 struct freq_node *fnode; /* Frequent string node */ + char *fsP; /* Frequent string ptr */ + int fsL; /* Frequent string length */ + int matchX; /* Match index */ + int matchL; /* Match length */ + +if (Zstrbuf_size < Max_buf_len) { + Zstrbuf_size = Max_buf_len; + Zstrbuf = (UBYTE *)REALLOC(Zstrbuf,Max_buf_len); +} + + startzstr( &Zstrbuf[0], reqlen ); + if (freqF && build_freq) { + /* If freqF is not set, it's for a vocabulary word, which doesn't + get included in the frequent words stuff. */ + fw_string(strP); } + else { + curcset = 0; + + for( ; ( ch = *strP ) != NUL; ++strP ) { + /* Check for frequent word encoding */ + if (ch == language_char) { + strP = translate_char(strP, &ch); } + if ( freqF ) { + /* Look through the frequent strings */ + matchL = 0; /* No match */ + for( fnode = Freqstr[(unsigned char)ch]; fnode != NULL; + fnode = fnode->next ) { + fsP = fnode->fs_strP; + if ( ch == *fsP ) { + fsL = fnode->fs_len; + if ( strncmp( strP, fsP, fsL ) == 0 ) + if ( fsL > matchL ) { /* Bigger than last match? */ + matchL = fsL; /* Remember match length */ + matchX = fnode->fs_num; /* Remember match num */ + } + } + } + + /* If we had a match, use it... */ + if ( matchL > 0 ) { + addzchar( ( matchX/32 ) +1 ); /* String set */ + addzchar( matchX % 32 ); /* String number in set */ + strP += matchL-1; /* Skip the string */ + continue; /* Go process next guy */ + } + } + if (character_count) + character_counts[ch]++; /* Maintain count of characters encoded */ + /* Encode the character into 5-bit charset */ + if ( ch == ' ' ) + addzchar( '\0' ); /* Space is always zero */ + + else if ( ( ccode = Zctbl[ch].zc_char ) == 0 ) { + /* Doesn't map -- use full ASCII sequence */ + if ( curcset == 1 ) { + addzchar( '\005' ); /* Shift to set 0 */ + curcset = 0; + } + if ( curcset == 0 ) + addzchar( '\005' ); /* Temp shift to set 2 */ + + addzchar( '\006' ); /* Shift to ASCII */ + addzchar( ( ch >> 5 ) & 0x1f ); + addzchar( ch & 0x1f ); + } + else { + cset = Zctbl[ch].zc_set; + + /* If need to switch character set, make sure we are in set + zero -- it's the only way we can get to the others. */ + if ( ( cset != curcset ) && ( curcset != 0 ) ) { + addzchar( '\004' + (2-curcset) ); + curcset = 0; + } + + /* See if we still need to change sets */ + if ( cset != curcset ) { + /* Note that if we get in here, curcset==0 */ + + /* Start with temporary shift */ + addzchar( '\003' + cset ); + + /* Make a guess as to whether we should make it permanent */ + if ( Permshift && ( ( ch = strP[1] ) != NUL ) && + ( Zctbl[ch].zc_char != 0 ) && + ( Zctbl[ch].zc_set == cset ) ) { + addzchar( '\003' + cset ); + curcset = cset; + } + } + + /* Put out the character (phew) */ + addzchar( ccode ); + } + } + + endzstr(); /* Finish zstring */ } + return( &Zstrbuf[0] ); +} +/* + +*//* zstrlen( strP ) + + Count words in a Zstring + +Accepts : + + strP Pointer to string in Z{word} format + +Returns : + + Number of words in the string + +*/ + +int +zstrlen( strP ) +AREG1 UBYTE *strP; /* Ptr to string */ +{ +DREG1 int len; /* Length of string */ + + for( len = 1; ( *strP & 0x80 ) == 0; ++len, strP += 2 ) + ; + + return( len ); +} +/* + +*//* zcset( csP ) + + Identify a character set + +Accepts : + + csP Pointer to the new character set; an array of 78 + characters that make up values 6-31 in each of + the 5-bit encoded character subranges. + +Returns : + +*/ + +zcset( csP ) +AREG1 UBYTE *csP; /* New character set */ +{ +DREG1 int i; /* Scratch */ +DREG2 int ch; /* Char val */ + + /* Clear out current character set */ + for( i = 0; i < 256; ++i ) + Zctbl[i].zc_char = 0; /* Clear it */ + + /* Process the new set */ + for( i = 0; i < 78; ++i ) { + ch = *csP++; + if ( ch != 0 ) { /* Zero means not used */ + Zctbl[ch].zc_set = i/26; /* Charset # */ + Zctbl[ch].zc_char = (i%26) +6; /* Encoding value */ + } + } +} +/* + +*//* startzstr, addzchar, endzstr - 5bit string stuff + + These routine help construct 5-bit-byte strings + +*/ + +static UBYTE *ZstrP; /* String being made */ +static UWORD Zword; /* Element of string */ +static int ZwordC; /* Byte count */ +static int ZwordX; /* Zword index */ +static int Zwordrlen; /* Required length, if any */ + +/* Start making a string */ +startzstr( strP, reqlen ) + UBYTE *strP; /* Where to put the string */ + int reqlen; /* Required length, if any */ +{ + ZstrP = strP; /* Remember the ptr */ + Zwordrlen = reqlen; /* Required length */ + Zword = ZwordC = ZwordX = 0; +} + + +/* Add a 5-bit byte to a string */ +addzchar( ch ) + UBYTE ch; /* byte value to add */ +{ + /* Proceed only if within the required length */ + if ( ( Zwordrlen == 0 ) || ( ZwordC < Zwordrlen ) ) { + if ( ZwordX == 3 ) { /* Last word full ? */ + *ZstrP++ = (Zword>>8) & 0xff; + *ZstrP++ = Zword & 0xff; + Zword = ZwordX = 0; + } + + /* Add in new byte */ + if (ZwordC * 2 / 3 >= Max_buf_len) { + my_fprintf(stderr,"Error in addzchar from zstring.c: zstring too long.\n"); + my_exit(1); + } + Zword = ( Zword << 5 ) | ch; + ++ZwordX; + ++ZwordC; + } +} + + +/* End the Z-string */ +endzstr() +{ + /* Take care of any minimum length requirement first by adding pad bytes */ + if ( Zwordrlen != 0 ) { + while( ZwordC < Zwordrlen ) + addzchar( '\005' ); + } + + /* Finish off the last word by adding pad (5) chars. */ + while( ZwordX++ != 3 ) + Zword = ( Zword << 5 ) | '\005'; + + /* Set the high bit to mean last word of string */ + Zword |= 0x8000; + + /* Place the word in the string */ + *ZstrP++ = (Zword>>8) & 0xff; + *ZstrP++ = Zword & 0xff; + + /* Add a zero byte just for luck. */ + *ZstrP = NUL; +} + +int zchar_size(ch, cset_ptr) +UBYTE ch; +int *cset_ptr; +{ + int val, cset; + if (cset_ptr) *cset_ptr = 2; + if (ch == ' ') + return(1); + else if (!ch) return(0); + else if (Zctbl[ch].zc_char == 0) { + cset = 2; + val = 4; } + else { + cset = Zctbl[ch].zc_set; + if (cset != 0) { + val = 2; } + else + val = 1; } + if (cset_ptr) + *cset_ptr = cset; + return(val); } + +typedef struct fw_obj { + struct fw_obj *fw_next; /* Next element in hash bucket */ + UBYTE *fw_str; + int fw_strlen; /* Length of fw_str */ + int fw_original_zlen; /* Original encoded length */ + int fw_zlen; /* Used to compute rating' */ + int fw_freq; /* Number of uses */ + int fw_original_freq; /* Safety first */ + int fw_goodness; + int fw_id; + struct fw_obj *fw_parent; /* If this is 'The ', points to 'The' */ + struct fw_obj *fw_child; /* If this is 'The', points to 'The ' */ + struct fw_obj *fw_sibling; /* If this is 'The ', points to 'The,' */ +} *fw_node; + +#define fw_hash_len 997 +fw_node fw_hash[fw_hash_len]; + +fw_get_hash(str, len) +UBYTE *str; +int len; +{ + int hash = 0; + int i, woffs = 0, shft = 0; + UBYTE ch; + for (i = 0; i < len; i++) { + ch = str[i]; + hash ^= ch << shft; + woffs++; + if (woffs >= sizeof(int)) { + woffs = 0; + shft = 0; } + else + shft += 8; } + hash = hash % fw_hash_len; + if (hash < 0) return(-hash); + else return(hash); } + +fw_node fw_lookup(str, len, hash) +UBYTE *str; +int len; +int hash; +{ + fw_node buck; + if (buck = fw_hash[hash]) { + while (buck) { + if ((buck->fw_strlen == len) && + (strncmp(str, buck->fw_str, len) == 0)) { + buck->fw_freq++; + return(buck); } + buck = buck->fw_next; } } + return(0); } + +int fw_node_ct = 0; + +fw_node fw_add(str, len, zlen, parent, hash) +UBYTE *str; +int len, zlen; +fw_node parent; +int hash; +{ + fw_node buck; + UBYTE *nstr; + fw_node_ct++; + buck = (fw_node)MALLOC(sizeof(struct fw_obj)); + buck->fw_id = 0; + buck->fw_next = fw_hash[hash]; + fw_hash[hash] = buck; + buck->fw_strlen = len; + buck->fw_zlen = zlen; + buck->fw_original_zlen = zlen; + buck->fw_freq = 1; + buck->fw_parent = parent; + buck->fw_child = 0; + if (parent) { + buck->fw_sibling = parent->fw_child; + parent->fw_child = buck; } + else + buck->fw_sibling = 0; + nstr = (UBYTE *)MALLOC(len); + strncpy(nstr, str, len); + buck->fw_str = nstr; + return(buck); } + +/* Call this with a string pointer. Update all the frequent-words stuff. */ +/* As currently constituted, this includes all prefixes that might be interesting + as well. Thus "theory of" will cause "the", "theo", "theor", "theory", and + "theory " to be added to the database. The process of assigning the actual + frequent words becomes something of a relaxation process: if "the" becomes + a frequent word, then the goodness of "theory" must be adjusted downward. + If "theory" becomes a frequent word anyway, then the goodness of + "the" must be adjusted downward, leading to a corresponding upward adjustment + in the goodness of "theory". This could be fun. */ +fw_string(strP) +UBYTE *strP; +{ + UBYTE ch; /* Character */ + UBYTE curcset; /* Current character set */ + UBYTE ccode; /* Character */ + int cset; + int cchar_size; + int ccount = 0; /* Number of input characters */ + int cstrlen = 0; /* Number of output characters */ + UBYTE *strP_save = strP; + fw_node frob, last_frob = 0; + int last_frob_len; + if (!strP) return; + for (; (ch = *strP) != NUL; ++strP) { + if (ch == language_char) + strP = translate_char(strP, &ch); + if (character_count) + character_counts[ch]++; + cchar_size = zchar_size(ch, &cset); /* This puts space into set 2... */ + if ((cset == 0) || (cset == 1) || (ch == '.') || (ch == '?') || + (ch == '!') || (ch == ',')) { + /* Normally character sets 0 and 1 are upper and lower case letters. + If .CHRSETs have happened, they might be something else. */ + cstrlen += cchar_size; + ccount++; + last_frob = 0; + last_frob_len = 0; + strP_save = strP; /* Save pointer to first interesting char */ + while (1) { + int hash; + ch = *++strP; + cchar_size = zchar_size(ch, &cset); + if (cset != 2) { + /* Still in a word */ + cstrlen += cchar_size; + ccount++; + if (cstrlen > 2) { + hash = fw_get_hash(strP_save, ccount); + if (!(frob = fw_lookup(strP_save, ccount, hash))) + frob = fw_add(strP_save, ccount, cstrlen, last_frob, hash); + last_frob_len = ccount; + last_frob = frob; } + continue; } + /* Hit end of word: end of string or non-"alpha" */ + if (ch == '\'') { + /* Look for "'s" and friends */ + zchar_size(*(strP + 1), &cset); /* Get the next character's set */ + if (cset != 2) { + /* it's alpha, so add in the ' and continue */ + cstrlen += cchar_size; + ccount++; + continue; } } + if (ch == ' ') { + ccount++; + cstrlen++; } + else if (cset == 2) { + /* We already did this one */ + strP--; + cstrlen = 0; + ccount = 0; + break; } + /* strP_save contains pointer to beginning of string with + ccount characters, and encoded size of cstrlen. */ + if (cstrlen > 2) { + if (last_frob_len == ccount) + printf("losing\n"); + hash = fw_get_hash(strP_save, ccount); + /* Don't bother if the encoding is too short to be helpful */ + if (!fw_lookup(strP_save, ccount, hash)) + fw_add(strP_save, ccount, cstrlen, last_frob, hash); } + strP--; + cstrlen = 0; + ccount = 0; + break; } } } } + +fw_node frequent_words[96]; + +int fw_worst_allocated = 0x3fffffff; +int fw_worst_index = -1; + +prune_parents(thing) +fw_node thing; +{ + fw_node parent = thing->fw_parent; + /* For a given node, find out if its parent has no other descendants. + If that's true, then there's no reason to consider it. Wander up + the tree until an interesting parent is found, or until we run out + of them. */ + while (parent) { + fw_node new_parent; + if (thing->fw_freq == parent->fw_freq) { + parent->fw_id = -1; /* This will keep the parent from being considered */ + parent->fw_child = 0; /* The parent has no child any more */ + if (parent->fw_sibling) { + /* If the parent has siblings, then we can stop anyway */ + fw_node new_thing = parent->fw_parent; + fw_node kid = new_thing->fw_child; + /* The parent doesn't have a parent either */ + parent->fw_parent = 0; + thing->fw_parent = new_thing; + /* Now place thing in its ancestor's tree in place of the parent. */ + if (kid == parent) { + thing->fw_sibling = parent->fw_sibling; + new_thing->fw_child = thing; + thing->fw_parent = new_thing; + break; } + while (1) { + if (kid->fw_sibling == parent) { + kid->fw_sibling = thing; + thing->fw_sibling = parent->fw_sibling; + break; } + kid = kid->fw_sibling; } + break; } + /* At this point we know that the parent has no siblings */ + new_parent = parent->fw_parent; + parent->fw_parent = 0; + parent = new_parent; + thing->fw_parent = parent; + if (!parent) { + /* No more parents, so stop */ + thing->fw_sibling = 0; + break; } + thing->fw_sibling = parent->fw_child; + parent->fw_child = thing; } + else + break; } } + +print_name(thing) +fw_node thing; +{ + UBYTE *str = thing->fw_str; + int len = thing->fw_strlen, i; + for (i = 0; i < len; i++) + printf("%c", str[i]); } + +fw_node any_frequent_words(thing) +fw_node thing; +{ + for (; thing; thing = thing->fw_parent) + if (thing->fw_id > 0) return(thing); + return(0); } + +dump_frequent_words(game_name) +char *game_name; +{ + int i, j; + fw_node buck; + int fw_allocated = 0; + int fw_best = 0; + int goodness; + int changed = 1; + int passes = 0; + printf("%d nodes allocated.\n", fw_node_ct); + for (i = 0; i < fw_hash_len; i++) { + buck = fw_hash[i]; + while (buck) { + if (buck->fw_parent) + prune_parents(buck); + buck->fw_goodness = (buck->fw_freq - 1) * (buck->fw_zlen - 2); + /* Subtract one because the string will still occur in the frequent + words table; two because that's the assumed length of the fw + reference. */ + buck->fw_original_freq = buck->fw_freq; + buck = buck->fw_next; } } + while (1) { + if (!changed) break; + changed = 0; + passes++; + if (passes > 100) { + printf("Giving up after 100 passes\n"); + break; } + for (i = 0; i < fw_hash_len; i++) { + buck = fw_hash[i]; + while (buck) { + fw_node parent; + goodness = buck->fw_goodness; + if ((goodness > 0) && (buck->fw_id == 0) && + ((fw_allocated < 96) || (goodness > fw_worst_allocated))) { + changed++; + /* Try this word in the frequent words table */ + if (fw_allocated == 96) { + /* Table is full, so have to kill something that was already + there */ + fw_insert(buck, fw_worst_index, 1); } + else { + fw_insert(buck, fw_allocated, 0); + fw_allocated++; } + fw_set_worst(fw_allocated); } + else if ((buck->fw_id == 0) && (parent = buck->fw_parent) && + (parent = any_frequent_words(parent))) { + /* We're looking at the descendant of a word that's already in the + table. Decide whether it would be better to have the descendant + in the table with the ancestor removed. */ + int new_goodness, new_parent_goodness; + /* Get the rating for the child with the parent removed. We already + know that the child isn't good enough to be added to the table + with the parent present. */ + new_goodness = buck->fw_goodness + + (buck->fw_freq - 1) * (parent->fw_zlen - 2); + if (new_goodness > parent->fw_goodness) { + print_name(buck); + printf(" in for "); + print_name(parent); + printf(".\n"); + fw_insert(buck, parent->fw_id - 1, 1); + changed++; } } + buck = buck->fw_next; } } + printf("End of pass %d. %d changes, worst entry is %d.\n", + passes, changed, fw_worst_allocated); } + sort_stuff(fw_allocated); + print_stuff(game_name, fw_allocated); } + +sort_stuff(cnt) +int cnt; +{ + int i, j; + fw_node temp; + for (i = (cnt - 2); i >= 0; i--) { + for (j = 0; j <= i; j++) { + if (frequent_words[j]->fw_goodness < + frequent_words[j + 1]->fw_goodness) { + temp = frequent_words[j]; + frequent_words[j] = frequent_words[j + 1]; + frequent_words[j + 1] = temp; } } } } + +print_stuff(game_name, cnt) +char *game_name; +int cnt; +{ + int i, j; + fw_node temp; + FILE *fw_file; + int tdesc; + char real_name[255]; + char new_name[255]; + char c; + int original_zbytes = 0, final_zbytes = 0; + strcpy(&real_name[0], game_name); + strcat(&real_name[0], "freq.zap"); + tdesc = open(&real_name[0], O_RDONLY, 0); + if (tdesc >= 0) { + strcpy(&new_name[0], &real_name[0]); + strcat(&new_name[0], "~"); + close(tdesc); + rename(&real_name[0], &new_name[0]); } + fw_file = fopen(&real_name[0], "w"); + for (i = 0; i < cnt; i++) { + temp = frequent_words[i]; + original_zbytes += temp->fw_freq * temp->fw_zlen; + final_zbytes += temp->fw_zlen + temp->fw_freq * 2; + fprintf(fw_file, " .FSTR FSTR?%d,\"", i + 1); + for (j = 0; j < temp->fw_strlen; j++) { + c = temp->fw_str[j]; + if (c == '\"') + fprintf(fw_file, "\"\""); + else + fprintf(fw_file, "%c", c); } + fprintf(fw_file, "\" ;%d %d %d\n", + temp->fw_goodness, temp->fw_freq, temp->fw_original_freq); } + fprintf(fw_file, "\n\nWORDS:: .TABLE\n"); + for (i = 0; i < cnt; i++) + fprintf(fw_file, " FSTR?%d\n", i + 1); + fprintf(fw_file, " .ENDT\n\n .ENDI\n"); + printf("%d to %d = %d.\n", original_zbytes, final_zbytes, + original_zbytes - final_zbytes); + fclose(fw_file); } + +check_name(thing, str) +fw_node thing; +char *str; +{ + char *ostr = (char *)(thing->fw_str); + if (strlen(str) != thing->fw_strlen) + return(0); + if (strncmp(str, ostr, thing->fw_strlen) != 0) return(0); + return(1); } + +update_parents(thing, ct) +fw_node thing; +int ct; +{ + thing = thing->fw_parent; + while (thing) { + thing->fw_freq += ct; + thing->fw_goodness += ct * (thing->fw_zlen - 2); + /* The parent's goodness decreases only by the lost frequency from + its child */ + if (thing->fw_id) { + break; } + thing = thing->fw_parent; } } + +update_kids(thing, fudge) +fw_node thing; +int fudge; +{ + thing = thing->fw_child; + while (thing) { + /* If the parent is becoming a frequent word, the child's goodness decreases: + its effective length is now only (child_zlen - parent_zlen + 2), because + it can be encoded in that. */ + /* Fudge is the encoded length of the parent */ + if (fudge > 0) + thing->fw_zlen = thing->fw_original_zlen - fudge + 2; + else + thing->fw_zlen = thing->fw_zlen - fudge -2; + thing->fw_goodness = (thing->fw_freq - 1) * (thing->fw_zlen - 2); + if ((thing->fw_child) && !thing->fw_id) + update_kids(thing, fudge); + thing = thing->fw_sibling; } } + +/* Find the lowest-quality frequent word */ +fw_set_worst(ct) +int ct; +{ + int i; + fw_worst_allocated = 0x3fffffff; + fw_worst_index = -1; + for (i = 0; i < ct; i++) { + if (frequent_words[i]->fw_goodness < fw_worst_allocated) { + fw_worst_allocated = frequent_words[i]->fw_goodness; + fw_worst_index = i; } } } + +/* We think that 'thing' wants to be a frequent word. 'at' is either + fw_worst_index (if kill is true) or the next empty slot (if kill is + false; happens when fewer than 96 words have been allocated). */ +fw_insert(thing, at, kill) +fw_node thing; +int at; +int kill; +{ + fw_node other_thing; + if (kill) + fw_dealloc(at); + thing->fw_id = at + 1; + frequent_words[at] = thing; + if (thing->fw_parent) + update_parents(thing, -thing->fw_freq); + if (thing->fw_child) + update_kids(thing, thing->fw_zlen); } + +/* Kill the last entry in the frequent words table. Update goodness of any + of its relatives. */ +fw_dealloc(at) +int at; +{ + fw_node thing = frequent_words[at], other_thing; + thing->fw_id = 0; + if (thing->fw_parent) + /* If this has a parent, the parent's goodness miraculously increases + (along with the goodness of all ancestors) */ + update_parents(thing, thing->fw_freq); + if (thing->fw_child) + update_kids(thing, -thing->fw_zlen); } +