.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