-
Notifications
You must be signed in to change notification settings - Fork 27
/
people.zap
1995 lines (1800 loc) · 46.3 KB
/
people.zap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.FUNCT SALT-F,CONTEXT,X
EQUAL? CONTEXT,M-OBJDESC \?CCL3
ICALL2 PRINTCA,SALT
PRINTI " is seated before "
ICALL2 PRINTA,EASEL
PRINTI ", dabbing color onto "
ICALL2 PRINTA,CANVAS
CALL2 SEE-ANYTHING-IN?,SALT
ZERO? STACK /?CND4
PRINTI ". He's holding "
ICALL2 CONTENTS,SALT
?CND4: PRINTC PER
RTRUE
?CCL3: EQUAL? CONTEXT,M-WINNER \?CCL7
EQUAL? PRSA,V?HELLO \?CCL10
EQUAL? PRSO,ROOMS,SALT \?CCL10
ICALL1 GREET-SAILOR
RETURN 2
?CCL10: EQUAL? PRSA,V?TELL-ABOUT,V?SSHOW \?CCL16
EQUAL? PRSO,ME \?CCL16
ICALL2 ASK-SALT-ABOUT,PRSI
RETURN 2
?CCL16: EQUAL? PRSA,V?EXAMINE,V?WHAT,V?WHO /?CTR21
EQUAL? PRSA,V?WHERE /?CTR21
EQUAL? PRSA,V?SHOW \?CCL22
EQUAL? PRSI,ME \?CCL22
?CTR21: ICALL2 ASK-SALT-ABOUT,PRSO
RETURN 2
?CCL22: EQUAL? PRSA,V?GIVE,V?GET-FOR \?CCL31
EQUAL? PRSI,ME \?CCL31
ICALL2 ASK-SALT-FOR,PRSO
RETURN 2
?CCL31: EQUAL? PRSA,V?SGIVE,V?SGET-FOR \?CND8
EQUAL? PRSO,ME \?CND8
ICALL2 ASK-SALT-FOR,PRSI
RETURN 2
?CND8: ICALL1 DEAF-SALT
RETURN 2
?CCL7: ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL46
EQUAL? PRSA,V?THROW,V?THROW-OVER \?CCL49
ICALL2 HARMLESS,PRSI
RTRUE
?CCL49: EQUAL? PRSA,V?GIVE,V?GET-FOR \?CCL51
ICALL2 GIVE-TO-SALT,PRSO
RTRUE
?CCL51: EQUAL? PRSA,V?SHOW \FALSE
ICALL DO-GLANCE,SALT,PRSO
RTRUE
?CCL46: EQUAL? PRSA,V?TELL /FALSE
EQUAL? PRSA,V?EXAMINE \?CCL56
ICALL1 CTHE-PRINT
PRINTR "'s ice-blue eyes glance up from his work."
?CCL56: EQUAL? PRSA,V?YELL \?CCL58
ICALL1 NOT-DEAF
RTRUE
?CCL58: EQUAL? PRSA,V?ASK-FOR \?CCL60
ICALL2 ASK-SALT-FOR,PRSI
RTRUE
?CCL60: EQUAL? PRSA,V?ASK-ABOUT \?CCL62
ICALL2 ASK-SALT-ABOUT,PRSI
RTRUE
?CCL62: EQUAL? PRSA,V?TELL-ABOUT \?CCL64
ICALL DO-GLANCE,SALT,PRSI
RTRUE
?CCL64: EQUAL? PRSA,V?HELLO,V?GOODBYE,V?WAVE-AT \?CCL66
ICALL1 GREET-SAILOR
RTRUE
?CCL66: INTBL? PRSA,HURTVERBS,NHVERBS >X \FALSE
ICALL1 HARMLESS
RTRUE
.FUNCT NOT-DEAF
FSET SALT,SEEN
ICALL2 CTHE-PRINT,SALT
PRINTR " cringes. ""I'm not deaf, y'know!"""
.FUNCT DEAF-SALT,X
FSET SALT,SEEN
RANDOM 100 >X
LESS? X,33 \?CCL3
ICALL2 CTHE-PRINT,SALT
PRINTR " doesn't look up from his work. Perhaps he didn't hear you."
?CCL3: LESS? X,67 \?CND1
ICALL2 CTHE-PRINT,SALT
PRINTR " cocks his head. ""Eh? Didn't catch that."""
?CND1: PRINTI """Stop whispering, "
ICALL1 BOY-GIRL
PRINTR "! Can't hear a word you're sayin'."""
.FUNCT BOY-GIRL
FSET? PLAYER,FEMALE \?CND1
PRINTB W?GIRL
RTRUE
?CND1: PRINTB W?BOY
RTRUE
.FUNCT GREET-SAILOR
FSET SALT,SEEN
RANDOM 100
LESS? 33,STACK /?CND1
ICALL1 DEAF-SALT
RTRUE
?CND1: ICALL2 CTHE-PRINT,SALT
FSET? SALT,TOUCHED \?CND3
PRINTR " shrugs. ""Okay. Hello, again."""
?CND3: FSET SALT,TOUCHED
EQUAL? P-PRSA-WORD,W?HELLO \?CCL7
CALL2 NOUN-USED?,W?SAILOR
ZERO? STACK /?CCL7
PRINTI " chuckles softly and nods. ""Thought I 'membered you. "
JUMP ?CND5
?CCL7: PRINTI " nods. """
?CND5: PRINTI "Hello, "
ICALL1 BOY-GIRL
PRINT PERQ
RTRUE
.FUNCT ASK-SALT-ABOUT,OBJ,TBL,LEN,X
FSET SALT,SEEN
RANDOM 100
LESS? 33,STACK /?CND1
ICALL1 DEAF-SALT
RTRUE
?CND1: CALL2 VISIBLE?,OBJ
ZERO? STACK \?CCL5
ICALL2 PERPLEXED,SALT
PRINTI "Not sure"
ICALL2 WHO-WHAT,OBJ
PRINTI "you're talkin' 'bout, "
ICALL1 BOY-GIRL
PRINT PERQ
RTRUE
?CCL5: EQUAL? OBJ,SALT \?CCL7
PRINTR """Been retired, ah, goin' on five years."""
?CCL7: EQUAL? OBJ,SHILL \?CCL9
PRINTR """Lucky ye saw it a-floatin' there."""
?CCL9: EQUAL? OBJ,EASEL,CANVAS \?CCL11
PRINTR """Like it? Reminds me o' the good old days."""
?CCL11: RANDOM 100
LESS? 75,STACK /?CND3
ICALL1 DEAF-SALT
RTRUE
?CND3: ICALL IGNORANT,SALT,OBJ
RTRUE
.FUNCT ASK-SALT-FOR,OBJ,X,L
FSET SALT,SEEN
RANDOM 100
LESS? 33,STACK /?CCL3
ICALL1 DEAF-SALT
RTRUE
?CCL3: EQUAL? OBJ,EASEL,CANVAS \?CND1
PRINTR """Sorry. Not for sale."""
?CND1: ICALL AINT-GOT,SALT,OBJ
RTRUE
.FUNCT AINT-GOT,WHO,OBJ
PRINTI """Don't have "
ICALL2 PRINTA,OBJ
PRINT STR?623
ICALL2 THE-PRINT,WHO
PRINT PERIOD
RTRUE
.FUNCT GIVE-TO-SALT,OBJ
FSET SALT,SEEN
CALL GIVING-LOOT?,OBJ,SALT
ZERO? STACK \TRUE
ICALL2 NO-THANKS,SALT
RTRUE
.FUNCT NO-THANKS,WHO
ICALL2 CTHE-PRINT,WHO
PRINTR " shakes his head. ""No, thanks."""
.FUNCT DO-GLANCE,WHO,OBJ
FSET WHO,SEEN
ICALL2 CTHE-PRINT,WHO
CALL2 VISIBLE?,OBJ
ZERO? STACK /?CCL3
PRINT GLANCES-AT
ICALL2 THE-PRINT,OBJ
JUMP ?CND1
?CCL3: PRINT STR?624
?CND1: PRINT STR?625
RTRUE
.FUNCT COOK-F,CONTEXT,X
EQUAL? CONTEXT,M-OBJDESC \?CCL3
PRINTI "A skinny old cook is bustling around the kitchen."
RTRUE
?CCL3: EQUAL? CONTEXT,M-WINNER \?CCL5
EQUAL? PRSA,V?TELL-ABOUT,V?SSHOW \?CCL8
EQUAL? PRSO,ME \?CCL8
ICALL2 ASK-COOK-ABOUT,PRSI
RETURN 2
?CCL8: EQUAL? PRSA,V?EXAMINE,V?WHAT,V?WHO /?CTR13
EQUAL? PRSA,V?WHERE /?CTR13
EQUAL? PRSA,V?SHOW \?CCL14
EQUAL? PRSI,ME \?CCL14
?CTR13: ICALL2 ASK-COOK-ABOUT,PRSO
RETURN 2
?CCL14: EQUAL? PRSA,V?GIVE,V?GET-FOR \?CCL23
EQUAL? PRSI,ME \?CCL23
ICALL2 ASK-COOK-FOR,PRSO
RETURN 2
?CCL23: EQUAL? PRSA,V?SGIVE,V?SGET-FOR \?CND6
EQUAL? PRSO,ME \?CND6
ICALL2 ASK-COOK-FOR,PRSI
RETURN 2
?CND6: ICALL2 CTHE-PRINT,COOK
PRINTI " scowls. ""Don't bother me now, I'm busy!"""
CRLF
RETURN 2
?CCL5: ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL38
FSET? PRSI,NODESC \?CCL41
ICALL1 CANT-FROM-HERE
RTRUE
?CCL41: EQUAL? PRSA,V?BUY-FROM \?CCL43
ICALL2 ASK-COOK-FOR,PRSO
RTRUE
?CCL43: EQUAL? PRSA,V?GIVE,V?GET-FOR \?CCL45
ICALL2 GIVE-TO-COOK,PRSO
RTRUE
?CCL45: EQUAL? PRSA,V?SHOW \FALSE
ICALL2 SHOW-TO-COOK,PRSO
RTRUE
?CCL38: FSET? PRSO,NODESC \?CCL48
INTBL? PRSA,TALKVERBS,NTVERBS >X \?CND49
ICALL1 PCLEAR
PRINTI "He"
PRINT STR?626
RETURN 2
?CND49: ICALL1 CANT-FROM-HERE
RTRUE
?CCL48: EQUAL? PRSA,V?ASK-FOR \?CCL54
ICALL2 ASK-COOK-FOR,PRSI
RTRUE
?CCL54: EQUAL? PRSA,V?ASK-ABOUT \?CCL56
ICALL2 ASK-COOK-ABOUT,PRSI
RTRUE
?CCL56: EQUAL? PRSA,V?TELL-ABOUT \FALSE
ICALL2 SHOW-TO-COOK,PRSI
RTRUE
.FUNCT ASK-COOK-ABOUT,OBJ,TBL,LEN,X
ICALL2 SEE-CHARACTER,COOK
FSET COOK,SEEN
EQUAL? OBJ,BOTTLE \?CCL3
FSET? ONION,SEEN \?CCL6
PRINTR """Got it put away, nice and safe. Thanks again."""
?CCL6: FSET? BOTTLE,IDENTIFIED \?CCL8
PRINTI """This here onion's yours if you "
CALL2 VISIBLE?,OBJ
ZERO? STACK /?CND9
PRINTR "hand it over."""
?CND9: PRINTR "get it for me."""
?CCL8: FSET? ONION,TOUCHED \?CND4
FCLEAR COOK,SEEN
PRINTI """Ahem."""
CRLF
ICALL1 I-ONION-OFFER
RTRUE
?CND4: ICALL DO-GLANCE,COOK,CELLAR-DOOR
RTRUE
?CCL3: EQUAL? OBJ,COOK \?CCL13
PRINTR """Grote Clutchcake's the name."""
?CCL13: EQUAL? OBJ,CELLAR,CELLAR-DOOR \?CCL15
PRINTR """Used t'be a wine cellar. Can't go down no more; too dangerous."""
?CCL15: CALL2 VISIBLE?,OBJ
ZERO? STACK \?CCL17
ICALL2 PERPLEXED,COOK
PRINTI "Don't know"
ICALL2 WHO-WHAT,OBJ
PRINTR "you're talkin' 'bout."""
?CCL17: EQUAL? OBJ,ONION \?CND1
ICALL1 COOK-MENTIONS-ONION
RTRUE
?CND1: ICALL2 CTHE-PRINT,COOK
PRINTI " shrugs impatiently. ""Can't say anythin' 'bout "
ICALL2 PRONOUN,OBJ
PRINTR " you wouldn't know already."""
.FUNCT ASK-COOK-FOR,OBJ,X,L
ICALL2 SEE-CHARACTER,COOK
LOC OBJ >L
FSET COOK,SEEN
CALL2 VISIBLE?,OBJ
ZERO? STACK /?CND1
EQUAL? OBJ,ONION \?CND1
FSET? OBJ,SEEN \?CCL6
PRINTR """It's yours. Roll it outa here."""
?CCL6: FSET? BOTTLE,IDENTIFIED \?CND4
PRINTI """Yours for "
ICALL2 THE-PRINT,BOTTLE
FSET? BOTTLE,TOUCHED /?CND8
PRINTI " downstairs"
?CND8: PRINT PERQ
RTRUE
?CND4: ICALL1 COOK-MENTIONS-ONION
RTRUE
?CND1: ICALL AINT-GOT,COOK,OBJ
RTRUE
.FUNCT COOK-MENTIONS-ONION
FSET? ONION,TOUCHED /?CND1
FSET ONION,TOUCHED
FSET COOK,SEEN
ICALL2 DEQUEUE,I-COOK
ICALL2 QUEUE,I-ONION-OFFER
ICALL2 CTHE-PRINT,COOK
PRINTI " gives "
ICALL2 THE-PRINT,ONION
PRINTI " an affectionate kick. "
?CND1: PRINTR """Nice, eh? Won second place at the Borphee County Fair."""
.FUNCT STOP-ONION-OFFER
FSET BOTTLE,IDENTIFIED
ICALL2 DEQUEUE,I-ONION-OFFER
CALL2 QUEUED?,I-COOK
ZERO? STACK \?CND1
ICALL2 QUEUE,I-COOK
?CND1: FSET COOK,SEEN
RFALSE
.FUNCT GIVE-TO-COOK,OBJ
ICALL2 SEE-CHARACTER,COOK
FSET COOK,SEEN
CALL GIVING-LOOT?,OBJ,COOK
ZERO? STACK \TRUE
ICALL2 CTHE-PRINT,COOK
EQUAL? OBJ,BOTTLE \?CND3
ICALL2 VANISH,OBJ
FSET ONION,SEEN
PRINTI "'s eyes grow large as he takes "
ICALL2 THE-PRINT,OBJ
PRINTI ". ""Been after this thing for years,"" he cries, turning it over and over in his hands before stowing it quickly out of sight. "
FSET? BOTTLE,IDENTIFIED /?CND5
PRINTI """I owe you a big favor, "
ICALL1 BOY-GIRL
PRINTI ". A "
ICALL2 ITALICIZE,STR?627
PRINTI " big favor. Big as this here onion."" "
?CND5: ICALL1 STOP-ONION-OFFER
PRINTI "Your eyes follow his to "
ICALL2 THE-PRINT,ONION
PRINTR " near the exit. ""All yours,"" he says, patting it affectionately."
?CND3: PRINTI " refuses "
ICALL2 THE-PRINT,OBJ
PRINTR " with a shake of his head. ""No, thanks."""
.FUNCT COOK-SEES-BOTTLE
ICALL1 STOP-ONION-OFFER
FSET BOTTLE,MUNGED
PRINTI """The bottle!"" gasps "
ICALL2 THE-PRINT,COOK
PRINTI " when he sees it"
IN? BOTTLE,PLAYER \?CND1
PRINTI " in your hands"
?CND1: PRINT STR?628
RTRUE
.FUNCT SHOW-TO-COOK,OBJ
ICALL2 SEE-CHARACTER,COOK
FSET COOK,SEEN
EQUAL? OBJ,BOTTLE \?CND1
FSET? OBJ,IDENTIFIED /?CND3
ICALL1 COOK-SEES-BOTTLE
RTRUE
?CND3: ICALL1 STOP-ONION-OFFER
PRINTI """That's the one!"" he gasps"
PRINT STR?628
RTRUE
?CND1: PRINTI """How interesting,"" yawns "
ICALL2 THE-PRINT,COOK
CALL2 VISIBLE?,OBJ
ZERO? STACK /?CND5
PRINTI ", glancing at "
ICALL2 THE-PRINT,OBJ
?CND5: PRINT PERIOD
RTRUE
.FUNCT BANDITS-F,CONTEXT,X
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? /?CCL5
EQUAL? PRSA,V?POINT-AT,V?TOUCH-TO,V?FIRE-AT \?CCL8
PRINTR "There are too many of them here."
?CCL8: EQUAL? PRSA,V?THROW,V?THROW-OVER \?CCL10
ICALL1 SUICIDE
RTRUE
?CCL10: EQUAL? PRSA,V?GIVE,V?SHOW,V?GET-FOR /?CCL11
EQUAL? PRSA,V?FEED \FALSE
?CCL11: ICALL1 HEEDLESS
RTRUE
?CCL5: INTBL? PRSA,TALKVERBS,NTVERBS >X \?CCL15
ICALL1 HEEDLESS
RETURN 2
?CCL15: EQUAL? PRSA,V?EXAMINE,V?LOOK-ON \?CCL19
ICALL2 NOSEY,STR?629
RTRUE
?CCL19: EQUAL? PRSA,V?LISTEN \?CCL21
ICALL2 NOSEY,STR?630
RTRUE
?CCL21: INTBL? PRSA,HURTVERBS,NHVERBS >X \FALSE
ICALL1 SUICIDE
RTRUE
.FUNCT NOSEY,STR
FSET PRSO,SEEN
PRINTI """Who're you "
PRINT STR
PRINTR "?"" demands a very large bandit. You wisely decide to turn your attention elsewhere."
.FUNCT SUICIDE
PRINTI "Suicide. Monsters are one thing; an armed "
PRINTD BANDITS
PRINTR " is quite another."
.FUNCT HEEDLESS
ICALL1 PCLEAR
PRINTR "The bandits glare at your interruption. ""Scram."""
.FUNCT OWOMAN-F,CONTEXT,X
EQUAL? CONTEXT,M-OBJDESC \?CCL3
ICALL2 PRINTCA,OWOMAN
PRINT SIS
CALL2 PICK-NEXT,OWOMAN-EYES
PRINT STACK
PRINTC PER
RTRUE
?CCL3: EQUAL? CONTEXT,M-WINNER \?CCL5
EQUAL? PRSA,V?TELL-ABOUT,V?SSHOW \?CCL8
EQUAL? PRSO,ME \?CCL8
ICALL2 ASK-OWOMAN-ABOUT,PRSI
RETURN 2
?CCL8: EQUAL? PRSA,V?EXAMINE,V?REQUEST,V?WHAT /?CTR13
EQUAL? PRSA,V?WHO,V?WHERE /?CTR13
EQUAL? PRSA,V?SHOW \?CCL14
EQUAL? PRSI,ME \?CCL14
?CTR13: ICALL2 ASK-OWOMAN-ABOUT,PRSO
RETURN 2
?CCL14: EQUAL? PRSA,V?GIVE,V?GET-FOR \?CCL23
EQUAL? PRSI,ME \?CCL23
ICALL2 ASK-OWOMAN-FOR,PRSO
RETURN 2
?CCL23: EQUAL? PRSA,V?SGIVE,V?SGET-FOR \?CCL29
EQUAL? PRSO,ME \?CCL29
ICALL2 ASK-OWOMAN-FOR,PRSI
RETURN 2
?CCL29: EQUAL? PRSA,V?SELL-TO \?CCL35
EQUAL? PRSI,ME \?CCL35
ICALL BUY-X-WITH-Y,PRSO,MONEY
RTRUE
?CCL35: EQUAL? PRSA,V?SSELL-TO \?CCL39
EQUAL? PRSO,ME \?CCL39
ICALL BUY-X-WITH-Y,PRSI,MONEY
RTRUE
?CCL39: EQUAL? PRSA,V?HELLO,V?GOODBYE \?CND6
EQUAL? PRSO,ROOMS,OWOMAN \?CND6
ICALL1 GREET-OWOMAN
RETURN 2
?CND6: PRINTI """I'm not used to being ordered about,"" observes "
ICALL2 THE-PRINT,OWOMAN
PRINTI " coldly."
CRLF
RETURN 2
?CCL5: ZERO? CONTEXT \FALSE
CALL2 NOUN-USED?,W?Y'GAEL
ZERO? STACK /?CND1
FSET? OWOMAN,MUNGED /?CND1
FSET OWOMAN,MUNGED
PRINT CTHELADY
PRINT STR?631
PRINTI " as you speak her Name."
CRLF
RETURN 2
?CND1: ZERO? NOW-PRSI? /?CCL58
EQUAL? PRSA,V?THROW,V?THROW-OVER \?CCL61
ICALL2 HARMLESS,PRSI
RTRUE
?CCL61: EQUAL? PRSA,V?GIVE,V?GET-FOR \?CCL63
ICALL2 GIVE-TO-OWOMAN,PRSO
RTRUE
?CCL63: EQUAL? PRSA,V?SHOW \?CCL65
ICALL2 ASK-OWOMAN-ABOUT,PRSO
RTRUE
?CCL65: EQUAL? PRSA,V?SELL-TO \FALSE
ICALL2 TRADE-FOR-LOOT,PRSO
RTRUE
?CCL58: EQUAL? PRSA,V?EXAMINE \?CCL68
GETP PRSO,P?LAST-LOC >X
CALL2 VISIBLE?,X
ZERO? STACK \?CND69
ZERO? X /?CND69
PRINTI "That's odd. She looks just like the woman you met in "
ICALL2 THE-PRINT,X
PRINT PERIOD
RTRUE
?CND69: ICALL1 CTHE-PRINT
PRINTR " regards you with equal interest."
?CCL68: EQUAL? PRSA,V?ASK-FOR \?CCL73
ICALL2 ASK-OWOMAN-FOR,PRSI
RTRUE
?CCL73: EQUAL? PRSA,V?ASK-ABOUT \?CCL75
ICALL2 ASK-OWOMAN-ABOUT,PRSI
RTRUE
?CCL75: EQUAL? PRSA,V?TELL-ABOUT \?CCL77
IN? PRSI,PLAYER \?CND78
ICALL2 GIVE-TO-OWOMAN,PRSI
RTRUE
?CND78: ICALL2 ASK-OWOMAN-ABOUT,PRSI
RTRUE
?CCL77: EQUAL? PRSA,V?HELLO,V?WAVE-AT,V?GOODBYE \?CCL81
ICALL1 GREET-OWOMAN
RTRUE
?CCL81: INTBL? PRSA,HURTVERBS,NHVERBS >X \FALSE
ICALL1 HARMLESS
RTRUE
.FUNCT GREET-OWOMAN
FSET OWOMAN,SEEN
PRINT CTHELADY
PRINTR " nods graciously."
.FUNCT ASK-OWOMAN-ABOUT,OBJ,TBL,LEN,X
ICALL2 SEE-CHARACTER,OWOMAN
EQUAL? OBJ,MONEY,INTNUM \?CCL3
PRINTR """My favorite subject."""
?CCL3: CALL WHAT-TALK?,OWOMAN,OBJ
ZERO? STACK \TRUE
EQUAL? OBJ,KEY1,KEY2,KEY3 \?CCL7
PRINTR """How tawdry."""
?CCL7: EQUAL? OBJ,PARASOL \?CCL9
PRINT CTHELADY
PRINT STR?631
PRINT STR?625
RTRUE
?CCL9: EQUAL? OBJ,BOUTIQUE,WEAPON-SHOP,MSHOPPE /?CTR10
EQUAL? OBJ,BCASE,MCASE,WCASE \?CCL11
?CTR10: PRINTR """Best selection in the Southlands."""
?CCL11: EQUAL? OBJ,CURTAIN,OWOMAN,ME \?CCL15
PRINT CTHELADY
PRINTI " smiles wryly"
PRINT STR?625
RTRUE
?CCL15: EQUAL? HERE,IN-BOUTIQUE \?CCL17
CALL2 BOUTIQUE-KNOWLEDGE?,OBJ
ZERO? STACK \TRUE
?CCL17: EQUAL? HERE,IN-WEAPON \?CCL21
CALL2 WEAPON-KNOWLEDGE?,OBJ
ZERO? STACK \TRUE
?CCL21: EQUAL? HERE,IN-MAGICK \?CND1
CALL2 MAGICK-KNOWLEDGE?,OBJ
ZERO? STACK \TRUE
?CND1: GET OWOMAN-TABLE,0 >LEN
?PRG27: GET OWOMAN-TABLE,LEN >TBL
GET TBL,0 >X
EQUAL? X,OBJ \?CCL31
PRINTC 34
GET TBL,1
PRINT STACK
GETP HERE,P?THIS-CASE
ICALL REVEAL-VALUE,X,STACK
RTRUE
?CCL31: DLESS? 'LEN,1 \?PRG27
EQUAL? HERE,IN-MAGICK /?CND33
GET MAGIC-ITEMS,0 >X
ZERO? X /?CND33
INTBL? OBJ,MAGIC-ITEMS+2,X >X \?CND33
ICALL ASK-IN,OBJ,STR?644
RTRUE
?CND33: EQUAL? HERE,IN-WEAPON /?CND38
GET WEAPON-ITEMS,0 >X
ZERO? X /?CND38
INTBL? OBJ,WEAPON-ITEMS+2,X >X \?CND38
ICALL ASK-IN,OBJ,STR?645
RTRUE
?CND38: EQUAL? HERE,IN-BOUTIQUE /?CND43
GET ARMOR-ITEMS,0 >X
ZERO? X /?CND43
INTBL? OBJ,ARMOR-ITEMS+2,X >X \?CND43
ICALL ASK-IN,OBJ,STR?646
RTRUE
?CND43: PRINTI """I'm afraid I can't tell you very much about "
ICALL2 PRONOUN,OBJ
PRINTI ","" apologizes "
ICALL2 THE-PRINT,OWOMAN
PRINT PERIOD
RTRUE
.FUNCT ASK-IN,OBJ,STR
PRINT CTHELADY
PRINT GLANCES-AT
ICALL2 THE-PRINT,OBJ
PRINTI ". ""Can't tell you much about this here,"" she mutters. ""Bet the "
PRINT STR
PRINTR " would know something, though."""
.FUNCT BOUTIQUE-KNOWLEDGE?,OBJ
EQUAL? OBJ,PACK \?CCL3
PRINTI """Perfect for those long adventures"
JUMP ?CND1
?CCL3: EQUAL? OBJ,CLOAK \?CCL5
PRINTI """A fine example of elvish tailoring. 'Tis said a potent virtue is woven into the cloth"
JUMP ?CND1
?CCL5: EQUAL? OBJ,TUNIC \?CCL7
PRINTI """Oh, that. Last week's fashion, I'm afraid"
JUMP ?CND1
?CCL7: EQUAL? OBJ,SCALE \?CCL9
PRINTI """Good basic protection. Not too bulky, not too expensive"
JUMP ?CND1
?CCL9: EQUAL? OBJ,CHAIN \?CCL11
PRINTI """An effective design, if not particularly comfortable"
JUMP ?CND1
?CCL11: EQUAL? OBJ,PLATE \?CCL13
PRINTI """The last word in protection,"" states "
ICALL2 THE-PRINT,OWOMAN
PRINTI " flatly. ""That stuff'll turn aside anything short of a grue's fangs"
?CND1: ICALL REVEAL-VALUE,OBJ,BCASE
RTRUE
?CCL13: EQUAL? OBJ,HELM,SCABBARD \FALSE
ICALL2 SECRET-VIRTUE,OBJ
RTRUE
.FUNCT WEAPON-KNOWLEDGE?,OBJ
EQUAL? OBJ,ARROW \?CCL3
PRINTI """A primitive design; high drag coefficient"
JUMP ?CND1
?CCL3: EQUAL? OBJ,DAGGER \?CCL5
PRINTI """Suitable for cleaning fish, I suppose"
JUMP ?CND1
?CCL5: EQUAL? OBJ,SWORD \?CCL7
PRINTI """Of ancient elvish workmanship, if I'm not mistaken"
JUMP ?CND1
?CCL7: EQUAL? OBJ,SHILL \?CCL9
PRINTI """Many an orc's skull bears the mark of this "
PRINTD SHILL
JUMP ?CND1
?CCL9: EQUAL? OBJ,AXE \?CCL11
PRINTI """A real skull-cleaver, that one"
?CND1: ICALL REVEAL-VALUE,OBJ,WCASE
RTRUE
?CCL11: EQUAL? OBJ,PHASE,SCABBARD,HELM \FALSE
ICALL2 SECRET-VIRTUE,OBJ
RTRUE
.FUNCT MAGICK-KNOWLEDGE?,OBJ,VAL,ACT,FX
SET 'IDING,OBJ
GETP OBJ,P?ACTION >ACT
GETP OBJ,P?EFFECT >FX
EQUAL? ACT,SLEEP-WAND-F \?CCL3
ICALL1 DO-ID
PRINTI "Aim this at a creature and watch it stagger"
JUMP ?CND1
?CCL3: EQUAL? ACT,BLAST-WAND-F \?CCL5
ICALL1 DO-ID
PRINTI "Instant death, with few exceptions"
JUMP ?CND1
?CCL5: EQUAL? ACT,TELE-WAND-F \?CCL7
ICALL1 DO-ID
PRINTI "Teleports trouble out of your way"
JUMP ?CND1
?CCL7: EQUAL? ACT,IO-WAND-F \?CCL9
ICALL1 DO-ID
PRINTI "Makes things turn inside-out"
JUMP ?CND1
?CCL9: EQUAL? ACT,LEV-WAND-F \?CCL11
ICALL1 DO-ID
PRINTI "Floats 'most anything that isn't nailed down"
JUMP ?CND1
?CCL11: EQUAL? ACT,DISPEL-WAND-F \?CCL13
PRINT CTHELADY
PRINTI " scowls. "
ICALL1 DO-ID
PRINTI "Neutralizes the effects of Magick"
JUMP ?CND1
?CCL13: EQUAL? ACT,HEALING-POTION-F \?CCL15
ICALL1 DO-ID
PRINTI "Just the thing in the heat of battle"
JUMP ?CND1
?CCL15: EQUAL? ACT,FORGET-POTION-F \?CCL17
ICALL1 DO-ID
PRINTI "Hmm,"" mutters "
ICALL2 THE-PRINT,OWOMAN
PRINTI ". ""Tried one of those once; can't recall what it does. Oh, well"
JUMP ?CND1
?CCL17: EQUAL? ACT,DEATH-POTION-F \?CCL19
ICALL1 DO-ID
PRINTI "Don't understand why they mix these things"
JUMP ?CND1
?CCL19: EQUAL? ACT,MIGHT-POTION-F /?CTR20
EQUAL? OBJ,ROOT \?CCL21
?CTR20: ICALL1 DO-ID
PRINTI "That'll put hair on your chest"
FSET? PLAYER,FEMALE \?CND1
PRINTI "."" "
PRINT CTHELADY
PRINTI " blushes. ""Well, you know what I mean"
JUMP ?CND1
?CCL21: EQUAL? ACT,IQ-POTION-F \?CCL27
ICALL1 DO-ID
PRINTI "Four years faster than GUE Tech, and a lot cheaper"
JUMP ?CND1
?CCL27: EQUAL? FX,DO-PARTAY \?CCL29
ICALL1 DO-ID
PRINTI "Big fun at parties"
JUMP ?CND1
?CCL29: EQUAL? FX,DO-FILFRE \?CCL31
ICALL1 DO-ID
PRINTI "Essential reading"
JUMP ?CND1
?CCL31: EQUAL? FX,DO-GOTO \?CCL33
ICALL1 DO-ID
PRINTI "Just the thing for emergencies"
JUMP ?CND1
?CCL33: EQUAL? FX,DO-BLESS-ARMOR \?CCL35
ICALL1 DO-ID
PRINTI "Bestows a rich blessing upon your armor"
JUMP ?CND1
?CCL35: EQUAL? FX,DO-BLESS-WEAPON \?CCL37
ICALL1 DO-ID
PRINTI "Adds a touch of enchantment to any weapon"
JUMP ?CND1
?CCL37: EQUAL? FX,DO-RENEWAL \?CCL39
ICALL1 DO-ID
PRINTI "How refreshing"
JUMP ?CND1
?CCL39: EQUAL? FX,DO-GATE \?CCL41
ICALL1 DO-ID
PRINTI "Not as robust as Dimension Door, but serviceable"
JUMP ?CND1
?CCL41: EQUAL? OBJ,CAKE \?CCL43
PRINT CTHELADY
PRINTI " grimaces. ""Bleah. My aunt used to make those. Good for your brain, but not much else"
JUMP ?CND1
?CCL43: EQUAL? OBJ,CLOAK \?CCL45
ICALL1 DO-ID
PRINTI "Elvish, if the weave speaks true"
JUMP ?CND1
?CCL45: EQUAL? OBJ,RING \?CCL47
PRINT CTHELADY
PRINTI " smirks. "
ICALL1 DO-ID
PRINTI "Same as the Coal-Walkers of Egreth use"
JUMP ?CND1
?CCL47: EQUAL? OBJ,HELM \?CCL49
ICALL1 DO-ID
FSET OBJ,PROPER
PRINTI "A potent relic of the past 'Tis said the wearer commands the wisdom of kings, and can see the unseeable."" She shudders visibly. ""Some things are better left unseen"
JUMP ?CND1
?CCL49: EQUAL? OBJ,GOBLET \?CCL51
ZERO? GOBLET-WORD \?CND52
ICALL1 SETUP-GOBLET
?CND52: PRINT CTHELADY
PRINTI " turns pale, and lowers her voice to a barely audible whisper. ""The "
GETP OBJ,P?NAME-TABLE
ICALL2 PRINT-TABLE,STACK
PRINTI ","" she hisses"
FSET? OBJ,NEUTRALIZED /?CND54
PRINTI ", and thunder rumbles outside"
?CND54: PRINTI ". ""Beware! for its Name incurs the wrath of the Implementors"
JUMP ?CND1
?CCL51: EQUAL? OBJ,UHEMI,LHEMI \?CCL57
PRINTI """Hmm,"" mutters "
ICALL2 THE-PRINT,OWOMAN
PRINTI ". ""Some great potential lies within"
JUMP ?CND1
?CCL57: EQUAL? OBJ,STONE \?CCL59
FSET? STONE,NAMED /?CND60
ICALL1 SETUP-STONE
?CND60: PRINTI """Ah! The "
GETP OBJ,P?NAME-TABLE
ICALL2 PRINT-TABLE,STACK
PRINTI "! Visions of things yet to be lie within its depths, for those with enough wit to see them"
JUMP ?CND1
?CCL59: EQUAL? OBJ,RFOOT,CLOVER,SHOE \?CCL63
PRINTI """A charm to ward off ill luck"
JUMP ?CND1
?CCL63: EQUAL? OBJ,SCABBARD \?CCL65
FSET OBJ,IDENTIFIED
PRINT CTHELADY
PRINTI "'s voice lowers to a respectful whisper. ""Behold "
ICALL2 THE-PRINT,OBJ
PRINTI ", Blade of Entharion,"" she says. ""Though the Blade is long lost, the scabbard retains much virtue; for "
FSET? PLAYER,FEMALE \?CND66
PRINTC 115
?CND66: PRINTI "he who wears it is blessed with wondrous powers of recuperation"
JUMP ?CND1
?CCL65: EQUAL? OBJ,VIAL \?CCL69
PRINTI """Holy water,"" explains "
ICALL2 THE-PRINT,OWOMAN
PRINTI " after a brief glance. ""Standard issue against vampires, wraiths, anything dead that moves"
JUMP ?CND1
?CCL69: EQUAL? OBJ,GLASS \?CCL71
PRINTI """A relic of ancient Pheebor,"" explains "
ICALL2 THE-PRINT,OWOMAN
PRINTI ". ""Its purpose is lost in Time. Perhaps it is part of some greater Magick"
JUMP ?CND1
?CCL71: EQUAL? OBJ,ROSE \?CCL73
PRINTI """A compass rose! Just the thing for an ill wind"
JUMP ?CND1
?CCL73: EQUAL? OBJ,GURDY \?CCL75
PRINTI """A versatile instrument. Dangerous in the wrong hands"
JUMP ?CND1
?CCL75: EQUAL? OBJ,WHISTLE \?CCL77
ICALL1 DO-ID
PRINTI "Wrought by a platypus, like most nowadays"
JUMP ?CND1
?CCL77: EQUAL? OBJ,PHASE \?CCL79
PRINTI """Little more than a curiosity, at least on this Plane of existence"
JUMP ?CND1
?CCL79: EQUAL? OBJ,CHEST \?CCL81
PRINT CTHELADY
PRINTI " studies "
ICALL2 THE-PRINT,OBJ
PRINTI " closely. ""Careful with this,"" she warns. ""The plaque on the lid is well worth reading"
JUMP ?CND1
?CCL81: EQUAL? OBJ,AMULET \?CCL83
PRINTI """A useful bit of Magick, this. "
ZERO? AMULET-STARS \?CCL86
PRINTI "Too bad it's all used up"
JUMP ?CND1
?CCL86: PRINTI "Still got some life in it, too"
JUMP ?CND1
?CCL83: EQUAL? OBJ,SPENSE,SPENSE2 \?CCL88
PRINTI """Spenseweed, of course. A wholesome treat"
JUMP ?CND1
?CCL88: EQUAL? OBJ,BURIN \?CCL90
PRINTI """Diamond-tipped, I see. Top of the line"
JUMP ?CND1
?CCL90: EQUAL? OBJ,JAR,CIRCLET \FALSE
PRINTI """A vain bit of Magick; yet not without its uses"
?CND1: FSET? OBJ,NEUTRALIZED \?CND93
PRINT STR?597
PRINTI "its Magick"
PRINT STR?647
?CND93: ICALL REVEAL-VALUE,OBJ,MCASE
RTRUE
.FUNCT REVEAL-VALUE,OBJ,CASE,VAL,X
GETP OBJ,P?VALUE >VAL
PRINTC PER
ZERO? VAL \?CND1
PRINTR """"
?CND1: PRINTC SP
SET 'X,OFFERS
IN? OBJ,CASE /?CND3
SET 'X,USED-OFFERS
?CND3: CALL2 PICK-NEXT,X
PRINT STACK
PRINTN VAL
PRINTI " zorkmid"
EQUAL? VAL,1 /?CND5
PRINTC 115
?CND5: PRINT PERQ
RTRUE
.FUNCT SECRET-VIRTUE,OBJ
PRINT CTHELADY
PRINTI " scrutinizes "
ICALL2 THE-PRINT,OBJ
PRINTI " with care. ""Hmm,"" she mutters. ""There may be a virtue in this "
PRINTD OBJ
PRINTI " beyond its simple face value. Perhaps you should bring it to the "
PRINT STR?644
PRINT PERQ
RTRUE
.FUNCT DO-ID
FSET? IDING,IDENTIFIED /?CND1
FSET IDING,IDENTIFIED
BOR NEW-DBOX,SHOWING-ALL >NEW-DBOX
?CND1: PRINTC 34
CALL2 PICK-NEXT,AH-YESSES
PRINT STACK
ICALL2 DPRINT,IDING
PRINTI ". "
RFALSE
.FUNCT ASK-OWOMAN-FOR,OBJ,X,L
ICALL2 SEE-CHARACTER,OWOMAN
LOC OBJ >L
EQUAL? L,OWOMAN /?CND1
CALL2 VISIBLE?,OBJ
ZERO? STACK /?CND3
PRINTI """I see "
FSET? OBJ,PLURAL \?CCL7
PRINTB W?SOME
JUMP ?CND5
?CCL7: PRINTB W?ONE
?CND5: PRINTI " there "
ICALL2 SAY-WHERE,L
PRINTI ","" smiles "
ICALL2 THE-PRINT,OWOMAN
PRINT PERIOD
RTRUE
?CND3: PRINTI """I'm afraid I don't have "
ICALL2 PRINTA,OBJ
PRINT PERQ
RTRUE
?CND1: ICALL2 NOT-SO-FAST,OWOMAN
RTRUE
.FUNCT NOT-SO-FAST,OBJ
PRINTI """Not so fast!"" laughs "
ICALL2 THE-PRINT,OBJ
PRINTR ", drawing away from you."
.FUNCT GIVE-TO-OWOMAN,OBJ,X
ICALL2 SEE-CHARACTER,OWOMAN
CALL GIVING-LOOT?,OBJ,OWOMAN
ZERO? STACK \TRUE
GET MAGIC-ITEMS,0 >X
INTBL? OBJ,MAGIC-ITEMS+2,X >X \?CND3
EQUAL? HERE,IN-MAGICK /?CND5
ICALL CANT-USE-HERE,OBJ,STR?644
RTRUE
?CND5: ICALL2 TRADE-FOR-LOOT,OBJ
RTRUE
?CND3: GET ARMOR-ITEMS,0 >X
INTBL? OBJ,ARMOR-ITEMS+2,X >X \?CND7
EQUAL? HERE,IN-BOUTIQUE /?CND9
ICALL CANT-USE-HERE,OBJ,STR?646
RTRUE
?CND9: ICALL2 TRADE-FOR-LOOT,OBJ
RTRUE
?CND7: GET WEAPON-ITEMS,0 >X
INTBL? OBJ,WEAPON-ITEMS+2,X >X \?CND11
EQUAL? HERE,IN-WEAPON /?CND13
ICALL CANT-USE-HERE,OBJ,STR?645
RTRUE
?CND13: ICALL2 TRADE-FOR-LOOT,OBJ
RTRUE
?CND11: ICALL2 TRADE-FOR-LOOT,OBJ
RTRUE
.FUNCT CANT-USE-HERE,OBJ,STR
PRINT CTHELADY
PRINT GLANCES-AT
ICALL2 THE-PRINT,OBJ
PRINTI ". ""Can't use this here,"" she mutters. ""Maybe the "
PRINT STR
PRINTR " would be interested."""
.FUNCT ORATOR-F,CONTEXT
EQUAL? CONTEXT,M-OBJDESC \?CCL3
ICALL2 PRINTCA,ORATOR
PRINTI " stands nearby, addressing the crowd."
RTRUE
?CCL3: EQUAL? CONTEXT,M-WINNER /FALSE
ZERO? CONTEXT \FALSE
ZERO? NOW-PRSI? \FALSE
EQUAL? PRSA,V?EXAMINE \FALSE
ICALL1 CTHE-PRINT
PRINTR " looks and acts very important."
.FUNCT DESCRIBE-PRINCE,OBJ
FSET? OBJ,SLEEPING \?CND1