enchanter/outside.zap

325 lines
9.8 KiB
Plaintext

.FUNCT WEST-CASTLE-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are outside the western entrance to the castle. To the east stands an iron gate which is "
FSET? IRON-GATE,OPENBIT \?ELS10
PRINTI "wide open"
JUMP ?CND8
?ELS10: PRINTI "closed and chained"
?CND8: PRINTR ". A winding road starts here and proceeds to the west."
.FUNCT UNDERGROWTH-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "The undergrowth is thick. You would never get through it."
?ELS5: EQUAL? PRSA,V?MUNG,V?CUT \FALSE
PRINTR "You could spend a few days doing this without much progress."
.FUNCT PATH-SIGN-F
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
CALL FIXED-FONT-ON
PRINTI "
- Shady Brook Trail -
Old Lingolf House
1000 feet
"
CALL FIXED-FONT-OFF
RTRUE
.FUNCT FOUNDATION-F
EQUAL? PRSA,V?THROUGH \?ELS5
PRINTR "No way."
?ELS5: EQUAL? PRSA,V?WHO \?ELS9
PRINTR "There's no way of knowing."
?ELS9: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH \FALSE
PRINTR "There is nothing but stone there."
.FUNCT DISTANT-CASTLE-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "The castle is far to the east and flanked by dark towers. From this distance, not much detail can be discerned."
?ELS5: EQUAL? PRSA,V?WALK-TO \FALSE
PRINTR "There's no direct path from here, although roads lead there. Try specifying a compass direction in order to move around."
.FUNCT SHACK-OBJ-F
EQUAL? PRSA,V?THROUGH \?ELS5
EQUAL? HERE,SHACK-ROOM \?ELS5
CALL GOTO,SHACK
RTRUE
?ELS5: EQUAL? PRSA,V?DROP \FALSE
EQUAL? HERE,SHACK \FALSE
CALL GOTO,SHACK-ROOM
RTRUE
.FUNCT BATTERED-LANTERN-F
EQUAL? PRSA,V?ERASE-LINE \?ELS5
PRINTR "Aladdin you're not."
?ELS5: EQUAL? PRSA,V?LAMP-ON \?ELS9
PRINTR "The lamp seems to be broken, most likely beyond repair."
?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS13
PRINTR "The lamp is made of brass and is old and battered. It doesn't seem likely that any use can be made of it."
?ELS13: EQUAL? PRSA,V?LAMP-OFF \FALSE
FSET? PRSO,ONBIT /FALSE
PRINTR "It isn't on!"
.FUNCT SHACK-STUFF
EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,PSEUDO-OBJECT \FALSE
PRINTR "They are overturned and don't make good surfaces."
.FUNCT SHACK-OVEN-F
EQUAL? PRSA,V?LAMP-OFF,V?LAMP-ON \?ELS5
PRINTR "It's not working."
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "Strangely, the oven is still slightly warm, as if it had been used recently."
.FUNCT BREAD-F,AMT,S
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTI "There's "
GETP BREAD,P?SIZE
GET BREAD-EXAMINES,STACK
PRINT STACK
PRINTR " left."
?ELS5: EQUAL? PRSA,V?EAT \?ELS9
CALL INT,I-HUNGER
GET STACK,C-TICK >S
GRTR? S,60 \?CND10
PRINTR "You aren't the least bit hungry."
?CND10: GETP BREAD,P?SIZE
SUB STACK,1 >AMT
PUTP BREAD,P?SIZE,AMT
ADD SCORE,EAT-POINT >SCORE
SET 'EAT-POINT,0
PRINTI "Mmm. That tasted great! "
GET BREAD-AMTS,AMT
PRINT STACK
CRLF
ZERO? AMT \?CND19
REMOVE BREAD
?CND19: ADD S,47
CALL QUEUE,I-HUNGER,STACK
SET 'HUNGER-COUNT,0
RTRUE
?ELS9: EQUAL? PRSA,V?BURN \?ELS23
EQUAL? PRSI,ETERNAL-FLAME \?ELS23
PRINTR "Toast without jam? What a silly idea!"
?ELS23: EQUAL? PRSA,V?MUNG,V?CUT \FALSE
EQUAL? PRSI,MAGIC-KNIFE \FALSE
PRINTR "It seems silly to cut up your bread when it's more easily carried in one piece. Besides, you might get crumbs all over your spell book."
.FUNCT TREES-F
EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \?ELS5
PRINTR "The trees are not suitable for climbing."
?ELS5: EQUAL? PRSA,V?EXAMINE \FALSE
FSET? HERE,RMUNGBIT \?ELS14
PRINTR "The trees are short and stunted and covered in a thick, grey ash. The roots themselves are blackened and foul-smelling."
?ELS14: PRINTR "The trees are mostly short and stunted."
.FUNCT HOVEL-F
EQUAL? HERE,VILLAGE \FALSE
EQUAL? PRSA,V?WALK-TO,V?THROUGH \FALSE
CALL DO-WALK,P?SOUTH
RTRUE
.FUNCT HOVEL-KLUDGE
PRINTI "It is dark and smoky in here, but this is a place of great disorder, and its odor is indescribable. A pile of rags sits near a small pot which is bubbling and steaming over a tiny fire. The pile of rags sports a gnarled hand which busies itself with the noisome stew. A closer look reveals a withered crone at the other end of the hand."
CRLF
ZERO? CRONE-MOVE \?ELS5
CRLF
PRINTI "The creature looks you over keenly and speaks: ""I should have thought they would send someone more ... more ..."" She laughs in an unsettling way. ""They've all left! A great storm is brewing in the east, my friend, and all have fled before it!"" She starts to chuckle. ""Take this and begone!"" With a wave of her hand, you find yourself reeling out of the door of the hovel, holding some sort of scroll in your hand."
CRLF
MOVE OPEN-SCROLL,WINNER
SET 'CRONE-MOVE,MOVES
RFALSE
?ELS5: SUB MOVES,CRONE-MOVE
LESS? STACK,20 \?ELS9
PRINTI "As you enter the crone's hovel, she booms at you: ""Are you here again? What a wizard!"" Her emphasis on the word ""wizard"" is filled with derision. ""Make a small effort, would you, to make your Circle proud of you?"" The same horrible emphasis on ""proud"" fills you with revulsion. ""Go!"" You find yourself back in the village."
CRLF
RFALSE
?ELS9: SET 'CRONE-MOVE,MOVES
PRINTI "As you enter, the woman in rags wags her head slowly. ""You've returned, have you? You need help perhaps? Well, I've given you all the help in my meager store. You want more? Leave me!"" You find yourself in the village."
CRLF
RFALSE
.FUNCT GLOBAL-CRONE-F
EQUAL? PRSA,V?ZIFMIA \?ELS5
PRINTR "Slowly, the old woman, swathed in rags, appears before you. She seems to be staring through you and speaks slowly and sullenly: ""I thought I might see you again, my friend! I gave you all the aid that I can. The rest is up to you..."" She disappears."
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9
PRINTR "The crone was presumably the village wise woman and its last remaining inhabitant."
?ELS9: PRINTR "The crone isn't here."
.FUNCT LONG-ROAD-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are walking along the road. It wends its way through low hills, sparse forests, and occasional subsistence farms. To the west, things seem lighter and more pleasant. To the east they seem oppressive and dark. A worn sign sits beside the road here."
EQUAL? ROAD-LOC,ROAD-START \?CND8
PRINTI " The deserted village is to the east."
?CND8: CRLF
RTRUE
.FUNCT FARM-PSEUDO
EQUAL? PRSA,V?THROUGH,V?EXAMINE \FALSE
PRINTR "It's a poor, run-down farm, and not of interest."
.FUNCT LONG-ROAD-SIGN-F
EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
SUB ROAD-LOC,ROAD-START
GRTR? STACK,11 \?ELS10
PRINTR "The sign is too worn to be read."
?ELS10: PRINTI """"
SUB ROAD-LOC,ROAD-START
GET SIGN-TBL,STACK
PRINT STACK
PRINTR """"
.FUNCT LONG-ROAD-EXIT-F
EQUAL? ROAD-LOC,ROAD-START \?ELS5
EQUAL? PRSO,P?EAST \?ELS5
RETURN WEST-FORK
?ELS5: FCLEAR LONG-ROAD,TOUCHBIT
CALL ROAD-TO-TABLE,ROAD-LOC
EQUAL? PRSO,P?WEST \?ELS12
INC 'ROAD-LOC
JUMP ?CND10
?ELS12: EQUAL? PRSO,P?EAST \?CND10
DEC 'ROAD-LOC
?CND10: CALL TABLE-TO-ROAD,ROAD-LOC
RETURN LONG-ROAD
.FUNCT ROAD-TO-TABLE,SLOC,TBL,CNT=0,F,N
FIRST? LONG-ROAD >F /?KLU21
?KLU21: SET 'TBL,ROAD-TABLE
?PRG1: ZERO? F /TRUE
NEXT? F >N /?KLU22
?KLU22: EQUAL? F,WINNER \?ELS11
JUMP ?CND9
?ELS11: FSET? F,TAKEBIT \?CND9
?PRG14: GET TBL,CNT
ZERO? STACK \?ELS18
PUT TBL,CNT,SLOC
ADD CNT,1
PUT TBL,STACK,F
ADD CNT,2 >CNT
REMOVE F
JUMP ?CND9
?ELS18: ADD CNT,2 >CNT
JUMP ?PRG14
?CND9: SET 'F,N
JUMP ?PRG1
.FUNCT TABLE-TO-ROAD,SLOC,TBL,CNT=0
SET 'TBL,ROAD-TABLE
?PRG1: LESS? CNT,ROAD-TABLE-LENGTH \TRUE
GET TBL,CNT
EQUAL? STACK,SLOC \?CND3
PUT TBL,CNT,0
ADD CNT,1
GET TBL,STACK
MOVE STACK,LONG-ROAD
?CND3: ADD CNT,2 >CNT
JUMP ?PRG1
.FUNCT ROAD-F
EQUAL? PRSA,V?TAKE,V?FOLLOW \?ELS5
PRINTR "You should supply a compass direction in which to follow the path."
?ELS5: EQUAL? PRSA,V?DROP \FALSE
CALL OUTSIDE?,HERE
ZERO? STACK /?ELS14
PRINTR "It's much safer to stay on the path, especially in these times."
?ELS14: PRINTR "You'll have to give a direction."
.FUNCT HILLS-F
EQUAL? PRSA,V?EXAMINE \?ELS5
PRINTR "The hills are mostly low and shrouded in a fine mist-like haze. They stretch out mainly to the west."
?ELS5: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-UP \FALSE
CALL PERFORM,V?LEAVE,ROAD
RTRUE
.FUNCT MOUNTAIN-F
EQUAL? PRSA,V?LEAP \?ELS5
EQUAL? HERE,VISTA \?ELS5
CALL JIGS-UP,STR?343
RSTACK
?ELS5: EQUAL? PRSA,V?CLIMB-UP,V?CLIMB-FOO \?ELS9
EQUAL? HERE,VISTA \?ELS14
PRINTR "You are here!"
?ELS14: EQUAL? HERE,VILLAGE,MOUNTAIN-TRAIL \?ELS18
CALL DO-WALK,P?UP
RSTACK
?ELS18: PRINTR "There's no way up the mountain from here."
?ELS9: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "The mountain is tall and proud, and its shining peak stands above the low-hanging clouds."
.FUNCT OUTSIDE?,RM
FSET? RM,LIGHTBIT \FALSE
EQUAL? RM,SHACK,INSIDE-GATE /FALSE
EQUAL? RM,PEBBLED-PATH,COURTYARD-1 /FALSE
EQUAL? RM,COURTYARD-2,COURTYARD-3,COURTYARD-4 /FALSE
EQUAL? RM,COURTYARD-5,COURTYARD-6,COURTYARD-7 /FALSE
EQUAL? RM,SHACK-ROOM,BEDROOM \TRUE
RFALSE
.FUNCT I-SCURRY
RANDOM 20
ADD 15,STACK
CALL QUEUE,I-SCURRY,STACK
PUT STACK,0,1
RANDOM 100
GRTR? 25,STACK \FALSE
CALL OUTSIDE?,HERE
ZERO? STACK /?ELS10
LESS? NIGHTFALL,70 \?ELS15
RANDOM 100
GRTR? 50,STACK \?ELS15
PRINTR "You hear noises in the brambles. Snorting noises are followed by loud crashing and finally a hideous squeal of triumph."
?ELS15: PRINTR "You hear a rustling in the brambles nearby, and you catch a glimpse of something small and furry as it scurries away."
?ELS10: EQUAL? HERE,PIT,REAL-STAIR,PURLOINED-ROOM /FALSE
EQUAL? HERE,WARLOCK-TOWER /FALSE
GETP HERE,P?TMAZE
ZERO? STACK \FALSE
LOC WINNER
EQUAL? STACK,DUNGEON,NORTH-CELL /?THN32
LOC WINNER
EQUAL? STACK,SECRET-PASSAGE \?ELS31
?THN32: PRINTR "You hear, almost beyond your hearing, the soft rattle of chains, and a cold wind blows over the back of your neck."
?ELS31: GRTR? TOD,NIGHTFALL \?ELS37
CALL PICK-ONE,NIGHT-GLIMPSES
PRINT STACK
CRLF
RTRUE
?ELS37: CALL PICK-ONE,GLIMPSES
PRINT STACK
CRLF
RTRUE
.FUNCT GLIMPSE-F
GRTR? MOVES,0 \?ELS5
PRINTR "You can't see that anymore."
?ELS5: PRINTR "You see no such thing."
.ENDI