mirror of
https://github.com/historicalsource/sherlock
synced 2024-07-02 22:55:22 +03:00
219 lines
6.2 KiB
Plaintext
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
|