sherlock/scope.zap

219 lines
6.2 KiB
Plaintext

.FUNCT RT-AC-CH-VENDOR,CONTEXT,NUM
SET 'NUM,CH-VENDOR-AUX1
EQUAL? CONTEXT,K-M-WINNER \?CCL3
EQUAL? GL-PRSA,V?TAKE \?CCL3
CALL RT-META-IN?,GL-PRSO,CH-PLAYER
ZERO? STACK /?CCL3
SET 'GL-WINNER,CH-PLAYER
ICALL RT-PERFORM,V?GIVE,GL-PRSO,CH-VENDOR
SET 'GL-WINNER,CH-VENDOR
RTRUE
?CCL3: EQUAL? GL-PRSA,V?HAGGLE \?CCL8
ZERO? GL-NOW-PRSI? \?CCL8
ICALL2 RT-THIS-IS-IT,TH-TELESCOPE
IN? TH-TELESCOPE,CH-VENDOR /?CCL13
PRINTR """Sorry, guv. No refunds."""
?CCL13: ZERO? NUM \?CCL15
PRINTI """Alright, guv. For you I'll come down to me special Jubilee price of Nineteen and six. 'Ow about it?"""
CRLF
SET 'CH-VENDOR-AUX1,1
RETURN CH-VENDOR-AUX1
?CCL15: EQUAL? NUM,1 \?CCL17
PRINTI """It'll break me poor wife's 'eart, me comin' 'ome wif so little. But times is 'ard. Nineteen shillings. Not a farthing less."""
CRLF
SET 'CH-VENDOR-AUX1,2
RETURN CH-VENDOR-AUX1
?CCL17: EQUAL? NUM,2 \FALSE
PRINTR """Sorry, guv. Nineteen shillings is me price."""
?CCL8: CALL2 RT-TELL-ABOUT?,CH-VENDOR
ZERO? STACK /?CCL21
EQUAL? GL-PRSI,TH-TELESCOPE \?CCL24
IN? TH-TELESCOPE,CH-VENDOR /?CCL27
PRINTR """Sorry, guv. No refunds."""
?CCL27: ZERO? NUM \?CCL29
PRINTR """It's me top-of-the-line model. I can let you 'ave it for one pound."""
?CCL29: EQUAL? NUM,1 \?CCL31
PRINTR """Seeing as 'ow it's you, I'll let it go for nineteen and six."""
?CCL31: EQUAL? NUM,2 \FALSE
PRINTR """Nineteen shillings is as low as I can go."""
?CCL24: IN? TH-TELESCOPE,CH-VENDOR \?CCL36
EQUAL? GL-PRSI,TH-TRINKETS \?CCL39
PRINTR """I've got quite a nice telescope 'ere that I can let you 'ave for only a quid."""
?CCL39: PRINTR "He ignores your question and waves trinkets over his head, asking if you wish to buy anything."
?CCL36: PRINTR "He ignores your question and looks about for new customers."
?CCL21: EQUAL? GL-PRSA,V?GIVE \FALSE
EQUAL? GL-PRSO,TH-TELESCOPE \FALSE
PRINTR """Sorry, mate. No refunds."""
.FUNCT RT-AC-TH-POUND-NOTE,CONTEXT,NUM
EQUAL? CONTEXT,K-M-DESCFCN \?CCL3
PRINTR "Why, haven't you ever seen a pound note before?"
?CCL3: EQUAL? GL-PRSA,V?BUY \?PRD7
EQUAL? GL-PRSO,TH-TELESCOPE /?CCL5
?PRD7: EQUAL? GL-PRSA,V?GIVE \FALSE
ZERO? GL-NOW-PRSI? \FALSE
EQUAL? GL-PRSI,CH-VENDOR \FALSE
?CCL5: ICALL RT-CYOU-MSG,STR?711,STR?712
ICALL2 RT-THEO-PRINT,TH-POUND-NOTE
PRINTI " to "
ICALL2 RT-THEO-PRINT,CH-VENDOR
PRINTC 46
SET 'NUM,CH-VENDOR-AUX1
ZERO? NUM \?CCL15
PRINT K-GOOD-HEALTH-MSG
JUMP ?CND13
?CCL15: EQUAL? NUM,1 \?CCL17
PRINTI " He smirks, gives"
ICALL1 RT-YOU-MSG
PRINTI "sixpence change,"
MOVE TH-SIXPENCE,GL-WINNER
FSET TH-SIXPENCE,FL-SEEN
FSET TH-SIXPENCE,FL-TOUCHED
JUMP ?CND13
?CCL17: EQUAL? NUM,2 \?CND13
PRINTI " He gives"
ICALL1 RT-YOU-MSG
PRINTI "a shilling for change,"
MOVE TH-SHILLING,GL-WINNER
FSET TH-SHILLING,FL-SEEN
FSET TH-SHILLING,FL-TOUCHED
?CND13: PRINTI " and hands"
ICALL1 RT-YOU-MSG
ICALL2 RT-THEO-PRINT,TH-TELESCOPE
PRINTC 46
CRLF
MOVE TH-TELESCOPE,GL-WINNER
REMOVE TH-POUND-NOTE
FSET TH-TELESCOPE,FL-SEEN
FSET TH-TELESCOPE,FL-TOUCHED
FCLEAR TH-TELESCOPE,FL-NODESC
EQUAL? NUM,2 \?CND19
GETP TH-TELESCOPE,P?VALUE
ICALL2 RT-UPDATE-SCORE,STACK
?CND19: PUTP TH-TELESCOPE,P?VALUE,0
RTRUE
.FUNCT RT-AC-TH-TELESCOPE,CONTEXT,NUM
EQUAL? CONTEXT,K-M-DESCFCN \?CND1
PRINTI "The telescope looks surprisingly good"
IN? TH-TELESCOPE,CH-VENDOR \?CCL5
PRINTI ". But it's not worth a whole pound"
JUMP ?CND3
?CCL5: PRINTI ", considering it's just a trinket"
?CND3: PRINTR "."
?CND1: SET 'GL-P-IT-OBJECT,TH-TELESCOPE
ZERO? GL-NOW-PRSI? /?CCL8
EQUAL? GL-PRSA,V?LOOK-THRU \FALSE
IN? GL-PRSI,CH-PLAYER /?CCL14
ICALL RT-YOUD-HAVE-TO-MSG,STR?738,GL-PRSI
RTRUE
?CCL14: CALL2 RT-GOT?,GL-PRSO
ZERO? STACK \?CTR15
EQUAL? GL-PRSO,CH-PLAYER,CH-ME,TH-HANDS /?CTR15
EQUAL? GL-PRSO,TH-FEET,TH-POCKET /?CTR15
CALL RT-IDENTIFY-FLOOR?,W?GROUND,GL-PRSO
ZERO? STACK /?CCL16
?CTR15: ICALL1 RT-CTHEI-PRINT
PRINTR " will not focus that closely."
?CCL16: EQUAL? GL-LASTFOC,GL-PRSO /?CND12
SET 'GL-LASTFOC,GL-PRSO
PRINTI "You focus the telescope on "
ICALL1 RT-THEO-PRINT
PRINTC 46
CRLF
CRLF
?CND12: EQUAL? GL-PRSO,TH-NELSON-STATUE,TH-NELSON-EYE \?CCL24
IN? TH-RUBY,TH-NELSON-STATUE \?CCL24
PRINTI "You can see a ruby in Nelson's blind eye."
CRLF
FSET TH-NELSON-STATUE,FL-OPENED
RTRUE
?CCL24: FSET? GL-PRSO,FL-PLURAL \?CCL28
FSET? GL-PRSO,FL-COLLECTIVE /?CCL28
PRINTI "They appear"
JUMP ?CND22
?CCL28: FSET? GL-PRSO,FL-PERSON \?CCL32
FSET? GL-PRSO,FL-FEMALE \?CCL32
PRINTI "She appears"
JUMP ?CND22
?CCL32: FSET? GL-PRSO,FL-PERSON \?CCL36
FSET? GL-PRSO,FL-FEMALE /?CCL36
PRINTI "He appears"
JUMP ?CND22
?CCL36: PRINTI "It appears"
?CND22: PRINTR " much closer now."
?CCL8: EQUAL? GL-PRSA,V?LOOK-INSIDE \?CCL40
PRINTR "Everything appears much closer."
?CCL40: EQUAL? GL-PRSA,V?ADJUST,V?PLAY \?CCL42
PRINTR "You fiddle aimlessly with the controls."
?CCL42: EQUAL? GL-PRSA,V?TAKE,V?STEAL \?CCL44
IN? TH-TELESCOPE,CH-VENDOR \?CCL44
PRINT K-THEFT-MSG
CRLF
RTRUE
?CCL44: EQUAL? GL-PRSA,V?BUY,V?BUY-FROM \FALSE
IN? TH-TELESCOPE,CH-VENDOR \FALSE
EQUAL? GL-PRSI,TH-POUND-NOTE /?CTR52
EQUAL? GL-PRSI,FALSE-VALUE,CH-VENDOR \?CCL53
CALL RT-META-IN?,TH-POUND-NOTE,GL-WINNER
ZERO? STACK /?CCL53
?CTR52: ICALL RT-CYOU-MSG,STR?711,STR?712
ICALL2 RT-THEO-PRINT,TH-POUND-NOTE
PRINTI " to "
ICALL2 RT-THEO-PRINT,CH-VENDOR
PRINTC 46
SET 'NUM,CH-VENDOR-AUX1
ZERO? NUM \?CCL60
PRINT K-GOOD-HEALTH-MSG
JUMP ?CND58
?CCL60: EQUAL? NUM,1 \?CCL62
PRINTI " He smirks, gives"
ICALL1 RT-YOU-MSG
PRINTI "sixpence change,"
MOVE TH-SIXPENCE,GL-WINNER
FSET TH-SIXPENCE,FL-SEEN
FSET TH-SIXPENCE,FL-TOUCHED
JUMP ?CND58
?CCL62: EQUAL? NUM,2 \?CND58
PRINTI " He gives"
ICALL1 RT-YOU-MSG
PRINTI "a shilling for change,"
MOVE TH-SHILLING,GL-WINNER
FSET TH-SHILLING,FL-SEEN
FSET TH-SHILLING,FL-TOUCHED
?CND58: PRINTI " and hands"
ICALL1 RT-YOU-MSG
ICALL2 RT-THEO-PRINT,TH-TELESCOPE
PRINTC 46
CRLF
MOVE TH-TELESCOPE,GL-WINNER
REMOVE TH-POUND-NOTE
FSET TH-TELESCOPE,FL-SEEN
FSET TH-TELESCOPE,FL-TOUCHED
FCLEAR TH-TELESCOPE,FL-NODESC
EQUAL? NUM,2 \?CND64
GETP TH-TELESCOPE,P?VALUE
ICALL2 RT-UPDATE-SCORE,STACK
?CND64: PUTP TH-TELESCOPE,P?VALUE,0
RTRUE
?CCL53: ICALL1 RT-CYOU-MSG
PRINTI "can't buy "
ICALL1 RT-THEO-PRINT
PRINTI " with"
ZERO? GL-PRSI /?CCL68
PRINTC 32
ICALL1 RT-THEI-PRINT
JUMP ?CND66
?CCL68: PRINTI "out any money"
?CND66: PRINTR "."
.FUNCT RT-AC-TH-SIXPENCE
RFALSE
.ENDI