-
Notifications
You must be signed in to change notification settings - Fork 26
/
actions.zil
4534 lines (4243 loc) · 161 KB
/
actions.zil
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
"ACTIONS for
DEADLINE
Copyright 1982 Infocom, Inc. All rights reserved.
"
<ROUTINE DDESC (STR1 DOOR STR2)
#DECL ((STR1) STRING (DOOR) OBJECT (STR2) <OR FALSE STRING>)
<TELL .STR1>
<COND (<FSET? .DOOR ,OPENBIT> <TELL "open">)
(T <TELL "closed">)>
<TELL .STR2 CR>>
<ROUTINE WEST-DOOR-F ("OPTIONAL" (RARG <>))
<COND (<AND <==? .RARG ,M-BEG>
<VERB? WALK>
<EQUAL? ,PRSO ,P?NE ,P?NORTH>
<IN? ,LADDER ,PLAYER>>
<TELL ,NO-LADDERS CR>)>>
<GLOBAL NO-LADDERS
"You've got to be crazy, carrying that ladder inside the house!">
<ROUTINE FRONT-PATH-F ("OPTIONAL" (RARG <>))
<COND (<AND <==? .RARG ,M-BEG>
<VERB? WALK>
<==? ,PRSO ,P?NORTH>
<IN? ,LADDER ,PLAYER>>
<TELL ,NO-LADDERS CR>)
(<==? .RARG ,M-LOOK>
<DDESC
"You are at the Robners' front door, which is "
,FRONT-DOOR ".">
<TELL
"You can walk around the house from here to the east or west. To the south a
rolling lawn leads to the entrance of the estate." CR>)>>
<ROUTINE ROSE-GARDEN-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<TELL
"You are at the edge of a large rose garden, meticulously maintained by the
gardener, Mr. McNabb. He is said to be exceedingly proud of this particular
garden, which is the envy of the neighbors. Rows of roses are neatly arranged
and the sweet fragrance of the flowers is worth a trip here in itself. An
orchard to the east contains many varieties of fruit trees and wide lawns lie
to the west and north. The roses themselves are to the south, filling the area
between you and the back of the house." CR>)>>
<ROUTINE IN-ORCHARD-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<TELL
"You are amidst lovely trees bearing apples, pears, peaches, and other fruits.
A grape arbor and several berry bushes may also be seen. The kitchen window
and east side of the house are just to your south, and a path skirts the
orchard to your north." CR>
<COND (,LADDER-FLAG-2
<TELL
"A ladder is leaning against the balcony above." CR>)
(T
<TELL
"There is no way into the house from here." CR>)>)>>
<ROUTINE IN-ROSES-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<TELL
"You are among rows of roses. The ground is soft, and your footsteps leave
a rather bad impression as many poor seedlings are trampled underfoot. A
safer place to admire the flowers lies to the north. A window to the south
allows a view into the house." CR>
<COND (<NOT ,LADDER-FLAG>
<TELL
"There is no way into the house from here." CR>)
(T
<TELL
"A ladder is leaning against the house, its upper end against a balcony
above." CR>)>
<COND (<NOT <FSET? ,HOLE ,INVISIBLE>>
<TELL
"There are holes in the soft dirt near your feet." CR>)>
<RTRUE>)
(<AND <==? .RARG ,M-ENTER>
<NOT ,GARDENER-ANGRY>
<NOT ,GARDENER-SHOW>
<EQUAL? <LOC ,GARDENER>
,ROSE-GARDEN ,NORTH-LAWN ,WEST-LAWN>>
<TELL
"In the distance you hear \"Hey! WHAT? You, there!\" and other choice words
muffled by a strong Scottish burr and a stiff breeze. Now, standing at the
edge of the garden, can be seen the person of Mr. Angus McNabb, the gardener.
He advances, looking crazed and gesticulating wildly. With each carefully
chosen step in your direction, a barely visible wince of pain comes to his
deeply-lined face. He regards you as you would regard the man whose car
just ran over your little puppy dog." CR>
<COND (,G-I-G
<TELL "\"I canna believe it! I've already spent
an hour fixing up the ground here where some fool was walkin' aboot--and
now you! I canna believe it!\"" CR>)>
<SETG GARDENER-ANGRY T>
<SETG GARDENER-NO-REPLY T>
<ENABLE <QUEUE I-GARDENER-CALM 90>>
<MOVE ,GARDENER ,HERE>)>>
<ROUTINE I-GARDENER-CALM ()
<SETG GARDENER-NO-REPLY <>>>
<GLOBAL GARDENER-NO-REPLY <>>
<GLOBAL GARDENER-ANGRY <>>
<GLOBAL G-I-G <>>
<GLOBAL PRESENT-TIME 480> ;"9AM"
<ROUTINE FOYER-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-ENTER>
<COND (<AND <NOT ,WELCOMED> <L? ,PRESENT-TIME 700>>
<TELL
"Mrs. Robner appears, walking down a hallway from the north." CR>
<WELCOME>)>)
(<==? .RARG ,M-LOOK>
<DDESC
"This is the foyer of the Robner house, beautifully appointed with a fine
crystal chandelier, marble floors, and a large marble-topped table. The front
door, to the south, is " ,FRONT-DOOR ". The foyer continues north.">)>>
<ROUTINE SHALL-1-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<DDESC
"You are in an east-west hallway south of the staircase. A door to the south
is " ,ROURKE-DOOR ".">)>>
<ROUTINE SHALL-2-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<DDESC
"This is the end of the east-west hallway. To the south a small door
is " ,SOUTH-CLOSET-DOOR ".">
<DDESC
"Another door, to the east, is " ,ROURKE-BATH-DOOR ".">)>>
<ROUTINE ROURKE-ROOM-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<DDESC
"This is the bedroom of the housekeeper, Mrs. Rourke, and is very simply
furnished. A single bed, flanked by bare wooden end tables, sits below a
closed window on the south end of the room. The floor is hardwood, with no
rug. The only exit is a door to the north, which is " ,ROURKE-DOOR ".">)>>
<ROUTINE ROURKE-BATH-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<DDESC
"This is Mrs. Rourke's bathroom. Aside from the usual bathroom fixtures
are two shelves affixed to the wall. The door at the west side of the
room is " ,ROURKE-BATH-DOOR ".">)>>
<ROUTINE LIVING-ROOM-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<SETG WELCOMED T>
<DDESC
"This is a large and impressive room, whose furnishings bespeak the great
personal wealth of the Robners. The south side of the room is a large bay
window, now " ,BAY-WINDOW", which looks out onto the front yard.">
<TELL
"A wood pile sits beside a huge fieldstone fireplace. A double doorway leading
to the main hall is the only exit. Pictures of Mrs. Robner's colonial ancestors
line one wall. The room contains formal seating for at least fifteen people,
in several groups of chairs and couches. Tables and cabinets, all of the
finest mahogany and walnut, complete the furnishings. On one of the tables is
a telephone." CR>)>>
<GLOBAL WILL-TIME 0>
<GLOBAL LAWN-ACTIVITIES
<LTABLE "picking weeds"
"mowing the grass"
"wiping his brow"
"examining his work">>
<GLOBAL GARDEN-ACTIVITIES
<LTABLE "planting seeds"
"cutting fresh flowers"
"pruning stems">>
<ROUTINE CORRIDOR-1-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<TELL
"You are just west of the staircase. There are doors on both sides (north and
south) of the hallway, which continues west. ">
<COND (<FSET? ,DUNBAR-DOOR ,OPENBIT>
<COND (<FSET? ,MASTER-BEDROOM-DOOR ,OPENBIT>
<TELL "Both doors are open." CR>)
(T <TELL "The door to the south is open." CR>)>)
(<FSET? ,MASTER-BEDROOM-DOOR ,OPENBIT>
<TELL "The door to the north is open." CR>)
(T <TELL "Both doors are closed." CR>)>)>>
<ROUTINE CORRIDOR-3-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<DDESC
"This section of hallway is near the west end. Through the window at the end
of the hall you can see some trees and the lake beyond. The hallway continues
east and west, and a door to the south is " ,GEORGE-DOOR ".">)>>
<ROUTINE CORRIDOR-4-F ("OPTIONAL" (RARG <>))
<COND (<AND <==? .RARG ,M-ENTER>
<==? ,PRESENT-TIME <+ ,GEORGE-RUN 1>>>
<TELL
"As you enter the hallway, you catch a glimpse of George
running down the stairs." CR>
<RFALSE>)
(<==? .RARG ,M-LOOK>
<TELL
"This is the west end of the upstairs hall. To the north is the library,
where Mr. Robner was found. Its solid oak door has been knocked down and
is lying just inside the entrance to the library. A window which cannot
be opened is at the end of the hallway." CR>)>>
<ROUTINE LIBRARY-F ("OPTIONAL" (RARG <>))
<SETG WELCOMED T>
<COND (<==? .RARG ,M-LOOK>
<TELL
"This is the library where Mr. Robner's body was found. It is decorated in a
simple but comfortable style. Mr. Robner obviously spent a great deal of time
here. A wide executive desk sits before tall balcony windows which lie at the
north of the room. A telephone is sitting on the desk. The east side of the
room is composed of three large bookshelf units containing numerous volumes
on many topics. The floor is carpeted from wall to wall. The massive oak door
which blocked the entrance has been forcibly knocked off its hinges and is
lying by the doorway." CR>
<COND (<FSET? ,LIBRARY-BALCONY-DOOR ,OPENBIT>
<TELL
"The window to the balcony has been opened." CR>)>
<COND (<FSET? ,HIDDEN-DOOR-L ,OPENBIT>
<TELL
"The bookshelf unit on the far left has been swung open,
revealing a room behind it!" CR>)>
<RTRUE>)>>
<ROUTINE LIBRARY-BALCONY-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<DDESC
"The balcony is bare of furniture, though it has a beautiful view of the rose
garden, the north lawn and the lake. A metal railing around the balcony
prevents an accidental drop to the thorny roses below. The window between the
balcony and the library is " ,LIBRARY-BALCONY-DOOR ".">
<COND (,LADDER-FLAG
<TELL
"The top of a ladder is resting on the metal railing." CR>)>
<COND (<IN? ,GARDENER ,ROSE-GARDEN>
<TELL
"Mr. McNabb is tending to the roses." CR>)
(<IN? ,GARDENER ,NORTH-LAWN>
<TELL
"Away to the north, Mr. McNabb can be seen "
<PICK-ONE ,LAWN-ACTIVITIES> "." CR>)>
<RTRUE>)>>
<ROUTINE HIDDEN-CLOSET-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<TELL
"This is a secret room situated between the library and the master bedroom.
The room is bare and somewhat dusty, as if it were not often used. An
unmarked switchplate surrounds two buttons, one blue and one red. A formidable
safe is embedded in the south wall.">
<COND (<FSET? ,SAFE ,OPENBIT>
<TELL " The heavy safe door is wide open.">)>
<CRLF>
<COND (<FSET? ,HIDDEN-DOOR-L ,OPENBIT>
<TELL
"The library can be seen through a door to the west." CR>)
(<FSET? ,HIDDEN-DOOR-B ,OPENBIT>
<TELL
"The master bedroom can be seen through a door to the east." CR>)>
<RTRUE>)>>
<ROUTINE RED-BUTTON-F ()
<COND (<VERB? PUSH>
<COND (<FSET? ,HIDDEN-DOOR-L ,OPENBIT>
<FCLEAR ,HIDDEN-DOOR-L ,OPENBIT>
<TELL "The wall to the west silently closes." CR>)
(T
<FSET ,HIDDEN-DOOR-L ,OPENBIT>
<TELL
"The wall to the west swings open, revealing the library on the other
side." CR>)>)>>
<GLOBAL HC-ROBNER <>>
<ROUTINE BLUE-BUTTON-F ()
<COND (<VERB? PUSH>
<COND (<FSET? ,HIDDEN-DOOR-B ,OPENBIT>
<FCLEAR ,HIDDEN-DOOR-B ,OPENBIT>
<TELL "The wall to the east swings closed." CR>)
(T
<FSET ,HIDDEN-DOOR-B ,OPENBIT>
<TELL
"The wall to the east swings open, revealing the master bedroom on the
other side." CR>
<COND (<AND <NOT ,HC-ROBNER>
<IN? ,MRS-ROBNER ,MASTER-BEDROOM>>
<TELL
"Mrs. Robner, sitting on her bed, appears stunned. She walks over and peeks
in, speaks of her complete surprise at the presence of such a place, and
returns to her bed, somewhat shaken." CR>
<SETG HC-ROBNER T>)>
<RTRUE>)>)>>
<ROUTINE MASTER-BEDROOM-F ("OPTIONAL" (RARG <>))
<COND (<AND <==? .RARG ,M-ENTER>
<==? ,BAXTER-SEQ-LOC ,MASTER-BEDROOM>>
<TELL
"As you walk through the door, there is an explosion from in front of you!
The impact of the bullet knocks you to the ground, stunned. You struggle,
trying to look up. Another explosion! You fall back, into a long silence." CR>
<QUIT>)
(<==? .RARG ,M-LOOK>
<DDESC
"This is the Robners' master bedroom, decorated in the Queen Anne style. A
large four-poster bed with paired end tables fills the south end of the room.
On one of the end tables is a telephone. Dressers, a small chair, and a lounge
are against the walls. The north wall contains a balcony window, which is
" ,BEDROOM-BALCONY-DOOR ". An open doorway leads east to the bathroom. A large
mirror with a gilt frame hangs on the west wall.">
<COND (<FSET? ,HIDDEN-DOOR-B ,OPENBIT>
<TELL
"Part of the west wall has been swung away, revealing a hidden closet." CR>)>
<RTRUE>)>>
<ROUTINE BEDROOM-BALCONY-F ("OPTIONAL" (RARG <>))
<COND (<AND <==? .RARG ,M-ENTER>
<==? ,BAXTER-SEQ-LOC ,BEDROOM-BALCONY>>
<TELL
"As you enter the balcony, there is an explosion and a burst of flame from
your left. The pain freezes you for a moment as everything becomes black.
While you await a choir of angels, a short chuckle and the sound of running
feet are the last you hear." CR>
<QUIT>)
(<==? .RARG ,M-LOOK>
<DDESC
"This balcony is atop the orchard, with the tallest of the fruit trees rising
to about the level of the balcony. A metal railing surrounds the balcony,
preventing a precipitous descent. A glass door leading to the master bedroom
is " ,BEDROOM-BALCONY-DOOR ".">
<COND (,LADDER-FLAG-2
<TELL
"The top of a ladder is visible here, leaning on the railing." CR>)>
<RTRUE>)>>
<ROUTINE SHALL-11-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<DDESC
"The hallway turns a corner here and continues east. To the north is the
head of the stairs. A door to the south is " ,DUNBAR-BATH-DOOR ".">)>>
<ROUTINE DUNBAR-BATH-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<TELL
"This bathroom contains the usual sink, toilet, and bath. A medicine
cabinet, ">
<COND (<FSET? ,DUNBAR-CABINET ,OPENBIT>
<TELL "lying partially open">)
(T <TELL "closed">)>
<DDESC ", is above the sink. A door to the north
is " ,DUNBAR-BATH-DOOR ".">)>>
<GLOBAL CORPSE-SEEN <>>
<ROUTINE DUNBAR-ROOM-F ("OPTIONAL" (RARG <>))
<COND (<AND <==? .RARG ,M-ENTER> ,DUNBAR-DEAD>
<SETG CORPSE-SEEN T>)
(<==? .RARG ,M-LOOK>
<DDESC
"This is Ms. Dunbar's room. It is furnished in the usual style, with a few
additions indicative of Ms. Dunbar's taste. The bedroom door
is " ,DUNBAR-DOOR ".">)>>
<ROUTINE GEORGE-BATH-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<DDESC
"This is George's bathroom, with all the appropriate fixtures. Shaving gear
sits near the sink. The door, to the west, is " ,GEORGE-BATH-DOOR ".">)>>
<ROUTINE GEORGE-ROOM-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-LOOK>
<TELL
"This is George's bedroom. In addition to the normal furnishings, there
is a small liquor cabinet, and a stereo with records and tapes. The door,
leading to the hallway to the north, is ">
<COND (<FSET? ,GEORGE-DOOR ,OPENBIT>
<TELL "open">)
(T <TELL "closed">)>
<DDESC
". Another door, to the east, is " ,GEORGE-BATH-DOOR ".">
<COND (,TUNE-ON
<TELL
"Playing on the stereo is a " ,TUNE-ON "." CR>)>
<RTRUE>)>>
"Local Global Functions"
<ROUTINE LAWN-F ()
<COND (<VERB? EXAMINE>
<TELL "The lawn is well manicured." CR>)>>
<ROUTINE BAY-WINDOW-F ()
<COND (<VERB? LOOK-INSIDE>
<COND (<==? ,HERE ,WEST-OF-DOOR>
<TELL
"You see the living room through the window." CR>)
(<IN? ,GARDENER ,SOUTH-LAWN>
<TELL
"Through the bay windows the gardener, Mr. McNabb, can be seen ">
<TELL <PICK-ONE ,LAWN-ACTIVITIES>>
<TELL " on the south lawn." CR>)
(T
<TELL "You can see the south lawn." CR>)>)
(<AND <VERB? OPEN> <NOT <FSET? ,FOYER ,TOUCHBIT>>>
<TELL "The window seems to be latched from the inside." CR>)>>
<ROUTINE ROSE-F ()
<COND (<VERB? SMELL>
<TELL "They smell nice." CR>)
(<VERB? EXAMINE>
<TELL
"There are rows of yellow, red, pink, and white roses here." CR>)
(<VERB? TAKE>
<TELL
"Taking a rose would be most ungracious, and possibly dangerous if Mr. McNabb
found out." CR>)>>
<ROUTINE HOUSE-F ()
<COND (<VERB? FIND>
<TELL
"It's right here. Some inspector you are." CR>)
(<VERB? THROUGH>
<COND (<AND <EQUAL? ,HERE ,FRONT-PATH>
<FSET? ,FRONT-DOOR ,OPENBIT>>
<GOTO ,FOYER>)
(<AND <EQUAL? ,HERE ,EAST-OF-DOOR>
<FSET? ,BAY-WINDOW ,OPENBIT>>
<GOTO ,LIVING-ROOM>)
(T
<TELL "You might try the front door." CR>)>)
(<VERB? EXAMINE>
<TELL
"The house is a magnificent New England colonial, like many other houses
around the lake. It is painted slate gray with white trim." CR>)>>
<ROUTINE GROUND-F ()
<COND (<AND <VERB? BRUSH>
<IN? ,FRAGMENT ,PLAYER>
<NOT ,FRAGMENT-CLEANED>>
<PERFORM ,V?BRUSH ,FRAGMENT>
<RTRUE>)
(<VERB? EXAMINE SEARCH SEARCH-AROUND>
<COND (<==? ,HERE ,ROURKE-ROOM>
<TELL "The floor is hardwood." CR>)
(<==? ,HERE ,FOYER>
<TELL "The floor is marble." CR>)
(<==? ,HERE ,IN-ROSES>
<COND (<NOT <FSET? ,HOLE ,INVISIBLE>>
<PERFORM ,V?SEARCH-AROUND ,HOLE>
<RTRUE>)
(<AND <VERB? SEARCH-GROUND-UNDER>
<==? ,PRSI ,BALCONY>>
<TELL
"The balcony above is very large. Searching the entire area beneath it
would take a great deal of time." CR>)
(T
<TELL
"There are rows upon rows of roses here. It would take you the best part of
a day to search the ground in great detail." CR>)>)
(T <TELL "You don't find anything new there." CR>)>)>>
<ROUTINE AIR-F ()
<COND (<VERB? SMELL>
<COND (<EQUAL? ,HERE ,ROSE-GARDEN ,IN-ROSES>
<TELL
"The smell of roses permeates everything." CR>)
(<EQUAL? ,HERE ,NORTH-LAWN ,EAST-LAWN ,WEST-LAWN>
<TELL
"A breeze carries the faint smell of roses through the air." CR>)
(<==? <GETP ,HERE ,P?LINE> ,OUTSIDE-LINE-C>
<TELL "The air is clear and fresh here." CR>)
(<FRESH-AIR? ,HERE> <RTRUE>)
(T <TELL "The air is rather musty here." CR>)>)>>
<ROUTINE FRESH-AIR? (RM "AUX" P L TX O)
<SET P 0>
<REPEAT ()
<COND (<0? <SET P <NEXTP ,HERE .P>>>
<RFALSE>)
(<NOT <L? .P ,LOW-DIRECTION>>
<SET TX <GETPT ,HERE .P>>
<SET L <PTSIZE .TX>>
<COND (<AND <EQUAL? .L ,DEXIT>
<FSET? <SET O <GETB .TX ,DEXITOBJ>>
,OPENBIT>>
<TELL
"There is a pleasant breeze coming through the " D .O "." CR>
<RETURN>)>)>>>
<ROUTINE LAKE-F ()
<COND (<VERB? SWIM LEAP THROUGH>
<TELL
"You're not on vacation, but with ideas like that you will probably be given
a rather long one." CR>)
(<VERB? LOOK-INSIDE EXAMINE>
<COND (<AND <==? ,HERE ,NORTH-LAWN>
<IN? ,SOGGY-WILL ,LAKE>>
<TELL
"A crumpled piece of paper is floating on the water a few feet from shore.
With an uncommonly agile motion, you retrieve the drenched paper." CR>
<MOVE ,SOGGY-WILL ,WINNER>)
(T
<TELL
"Surely you don't suspect the fish also?" CR>)>)>>
<ROUTINE SHED-F ()
<COND (<VERB? THROUGH>
<COND (<EQUAL? ,HERE ,EAST-LAWN ,BEHIND-SHED>
<GOTO ,SHED-ROOM>
<RTRUE>)
(T <TELL "Senility strikes!" CR>)>)
(<VERB? LISTEN>
<COND (<NOT <0? ,SECRET-MEETING>>
<TELL
"You hear two muffled voices inside the shed." CR>)>)
(<VERB? HIDE-BEHIND>
<COND (<==? ,HERE ,EAST-LAWN>
<TELL
"You carefully sneak behind the shed. It seems that no one saw you." CR>)
(T
<TELL
"You leave the shed and quietly slip behind it. Nobody appears to have seen
you." CR>)>
<GOTO ,BEHIND-SHED>
<RTRUE>)>>
"People Functions"
<ROUTINE PLAYER-F () <>>
<GLOBAL HOLE-SHOWN <>>
<GLOBAL HOLE-TELL <>>
<ROUTINE SHOW-HOLE ()
<TELL
"McNabb grabs your arm and leads you to a spot deep within the garden and
near the house. You might never have found this place alone. He points at
the ground, where you see two holes in the soft earth." CR>
<FCLEAR ,HOLE ,INVISIBLE>
<SETG HOLE-SHOWN T>>
<ROUTINE HOLE-F ()
<COND (<NOT ,HOLE-TELL>
<TELL "What hole?" CR>)
(<VERB? ASK-ABOUT> <RFALSE>)
(<VERB? FIND>
<COND (<NOT <==? ,HERE ,IN-ROSES>>
<TELL
"They're among the roses, or have you forgotten?" CR>)
(<NOT <FSET? ,HOLE ,INVISIBLE>>
<TELL "They're right here!" CR>)
(<AND <NOT ,HOLE-SHOWN> <PROB 80>>
<TELL
"The rose garden is vast and full of thorny roses. You might look
for the rest of the day before you find them." CR>)
(T
<TELL
"The garden is rather big, even just the area you are searching now, and the
holes were small. They're not here, but are probably nearby." CR>)>)
(<EQUAL? ,HOLE ,PRSI ,PRSO>
<COND (<VERB? EXAMINE LOOK-INSIDE>
<TELL
"There are two holes here, each about two inches by four inches. They are at
least three inches deep and the soil is compacted around them." CR>)
(<OR <AND <VERB? SEARCH-GROUND-AROUND>
<==? ,PRSO ,GROUND>>
<VERB? SEARCH-AROUND>>
<COND (<==? <LOC ,GARDENER> ,HERE>
<TELL
"Mr. McNabb watches you with ill-concealed irritation." CR>)>
<COND (,FRAGMENT-FOUND
<TELL
"Aside from dirt, organic fertilizer, and small crawly creatures, you turn
up nothing but roses." CR>)
(<OR <G? <SETG RST <+ ,RST 1>> 2>
<PROB 30>>
<TELL
"Ouch! You cut your finger on a sharp edge as you dig. You search carefully
in the dirt, now that you are sure something is there, and pull up a piece
of porcelain, covered with dirt and dried mud." CR>
<THIS-IS-IT ,FRAGMENT>
<MOVE ,FRAGMENT ,WINNER>
<FCLEAR ,FRAGMENT ,INVISIBLE>
<SETG FRAGMENT-FOUND T>
<SETG FRAGMENT-FELT T>)
(T
<TELL <GET ,ROSE-DIGS ,RST> CR>)>)>)
(T <TELL "There is no hole here." CR>)>>
<GLOBAL RST 0>
<GLOBAL ROSE-DIGS
<LTABLE
"You are making quite a mess, but you do run across some tiny pieces of a
hard, shiny substance, which drop from your fingers and back onto the ground."
"Although everything is coming up roses, you haven't found anything unusual
except for a few pieces of a hard substance which fall back to the ground.">>
<GLOBAL FRAGMENT-FLAG <>>
<ROUTINE FRAGMENT-F ()
<COND (<VERB? EXAMINE>
<COND (,FRAGMENT-CLEANED
<TELL
"The fragment is beautifully hand-painted">
<SETG FRAGMENT-FLAG T>
<COND (,CHINA-EXAMINED
<TELL ", exactly like those you
saw in the kitchen">)>
<TELL "." CR>)
(T
<TELL
"The piece of porcelain is filthy, coated with dried mud. You can barely
make out some design underneath the dirt." CR>)>)
(<VERB? FINGERPRINT>
<TELL
"It's covered with dirt and mud. You realize that there would be no good
fingerprints on it." CR>)
(<VERB? ANALYZE> <DO-ANALYZE>)
(<VERB? BRUSH>
<SETG FRAGMENT-CLEANED T>
<TELL
"As you wipe off the piece of porcelain, you notice that it is a fragment of
some very beautiful piece, handsomely painted.">
<COND (,CHINA-EXAMINED
<TELL " The markings are identical
to those you saw on the china in the kitchen.">)>
<CRLF>)>>
<GLOBAL FRAGMENT-CLEANED <>>
<GLOBAL FRAGMENT-FELT <>>
<GLOBAL FRAGMENT-FOUND <>>
<GLOBAL GARDENER-SHOW <>>
<ROUTINE GARDENER-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-OBJDESC>
<COND (<IN-MOTION? ,GARDENER> <RTRUE>)
(<==? <LOC ,GARDENER> ,ORCHARD>
<TELL "Mr. McNabb is here, pruning the trees.">)
(<OR <EQUAL? <LOC ,GARDENER> ,NORTH-LAWN ,EAST-LAWN>
<EQUAL? <LOC ,GARDENER> ,SOUTH-LAWN ,WEST-LAWN>>
<TELL "Mr. McNabb is here, ">
<TELL <PICK-ONE ,LAWN-ACTIVITIES>>
<TELL ".">)
(<IN? ,GARDENER ,ROSE-GARDEN>
<TELL "Mr. McNabb is here, ">
<TELL <PICK-ONE ,GARDEN-ACTIVITIES>>
<TELL ".">)
(T <TELL "Mr. McNabb is here.">)>
<COND (,G-I-G
<TELL " He seems quite worked up and is talking aloud
to himself.">)
(,GARDENER-ANGRY
<TELL " He seems pretty angry about something.">)>
<CRLF>
<CARRY-CHECK ,GARDENER>)
(<VERB? HELLO GOODBYE>
<COND (,GARDENER-ANGRY
<TELL
"McNabb grunts briefly in your direction." CR>)
(,G-I-G
<TELL
"He answers absently and starts to mumble quietly about the roses." CR>)
(T
<TELL
"He replies with a brief nod, and then starts mumbling to himself
about the " <PICK-ONE ,GARDEN-MUMBLES> "." CR>)>)
(<==? ,WINNER ,GARDENER>
<COND (<AND <VERB? SHOW SSHOW>
<OR <EQUAL? ,PRSI ,GLOBAL-HOLE ,HOLE>
<EQUAL? ,PRSI ,GLOBAL-ROSES ,ROSE>>>
<COND (<AND <NOT ,HOLE-TELL> <NOT ,G-I-G>>
<TELL
"\"I don't know what you're-a talkin' aboot.\"" CR>)
(,NO-SHOW
<TELL
"\"I don't think I remember where it was. Now go away,\" he says. He looks a
bit annoyed at you, probably for asking him before and then running off." CR>)
(,HOLE-SHOWN
<TELL
"\"I've already shown you plenty. Now, git!\"" CR>)
(<==? ,HERE ,IN-ROSES>
<SETG GARDENER-SHOW T>
<SETG HOLE-TELL T>
<SHOW-HOLE>)
(T
<ESTABLISH-GOAL ,GARDENER ,IN-ROSES T>
<SETG GARDENER-SHOW T>
<SETG HOLE-TELL T>
<TELL
"\"Follow me!\" he says, and starts walking toward the roses." CR>)>)
(<VERB? FIND> <RFALSE>)
(<COM-CHECK ,GARDENER> <RTRUE>)
(T <TELL <PICK-ONE ,WHY-ME> CR>)>)
(<VERB? LISTEN>
<COND (,G-I-G
<TELL
"You can't make out everything, but he seems to be complaining about weeks
of work on the roses ruined by someone stomping around in the garden. There
are references to elephants and holes. When he's worked up, as now, he
doesn't always make much sense." CR>
<SETG HOLE-TELL T>)
(T
<TELL
"He seems to be mumbling about the " <PICK-ONE ,GARDEN-MUMBLES> "." CR>)>)
(<AND <VERB? ASK-ABOUT> <==? ,PRSO ,GARDENER>>
<COND (<AND ,GARDENER-NO-REPLY <NOT ,GARDENER-SHOW>>
<TELL
"\"I dinna give a hoot about you or your questions! Now, begone! Steppin' all
o'er me roses. A crime, it is! I'll call the police is what!\" He seems pretty
angry." CR>)
(<AND <EQUAL? ,PRSI ,GLOBAL-HOLE> ,HOLE-TELL>
<TELL
"\"I've already told you. There's holes in my garden!\"" CR>)
(<AND <EQUAL? ,PRSI ,GLOBAL-WEATHER> <NOT ,G-I-G>>
<TELL
"\"Beautiful! What a fine day. Except for the rain Wednesday night, I ha'ent
had such a fine week in a long spell. Not that I'm complainin'. You see, with
my roses...\" He goes on and on about his roses." CR>)
(<EQUAL? ,PRSI ,GLOBAL-LADDER ,LADDER>
<TELL
"\"What aboot it? I use it for cleanin' the gutters 'n prunin' the
trees.\"" CR>)
(<EQUAL? ,PRSI ,GLOBAL-ROSES ,ROSE ,GLOBAL-WEATHER>
<COND (,G-I-G
<TELL
"He tells you his story. He was tending to the roses this morning when he
noticed two deep holes in the garden, with a few roses crushed nearby. He
doesn't know when he'll be able to repair the damage." CR>
<SETG HOLE-TELL T>)
(T
<TELL
"McNabb goes on for some time about the exquisite nature of the garden in
general and mentions, for your benefit, some of the finer points of his
gardening technique." CR>)>)
(<EQUAL? ,PRSI ,LAWN>
<TELL
"McNabb tells a long tale of woe and hardship, of days and nights
sweating with the lawn mower, roller, and weed puller." CR>)
(<OR <EQUAL? ,PRSI ,GEORGE ,GLOBAL-GEORGE>
<EQUAL? ,PRSI ,BAXTER ,GLOBAL-BAXTER>
<EQUAL? ,PRSI ,DUNBAR ,GLOBAL-DUNBAR>
<EQUAL? ,PRSI ,MRS-ROBNER ,GLOBAL-MRS-ROBNER>
<EQUAL? ,PRSI ,ROURKE ,GLOBAL-ROURKE>>
<TELL
"\"I don't care much aboot any of them from in the house. I barely even know
which is which.\" He shakes his head and continues with his work." CR>)
(<EQUAL? ,PRSI ,GLOBAL-MR-ROBNER>
<TELL
"\"Too bad aboot Mr. Robner. He was a good man, liked to talk aboot the
garden. He told me 'McNabb', he says, 'this here's the finest garden I've
seen.' We'd talk for hours about planting and gardening. None of the others
knows between a rose and a sunflower.\" He shakes his head sadly and
continues his work." CR>)
(T
<TELL
"\"I dinna know nothin' aboot that.\"" CR>)>)>>
<GLOBAL GARDEN-MUMBLES
<LTABLE "rose garden"
"fruit trees"
"weather"
"snootiness of city slickers"
"intricacies of weeding">>
<GLOBAL WHY-ME
<LTABLE "\"You can do that yourself.\""
"\"Do it yourself!\""
"\"Why not do it yourself?\"">>
<GLOBAL PEN-SEEN <>>
<ROUTINE BAXTER-F ("OPTIONAL" (RARG <>))
<COND (<==? .RARG ,M-OBJDESC>
<COND (<IN-MOTION? ,BAXTER> T)
(<AND <IN? ,BAXTER ,SHED> <NOT <0? ,SECRET-MEETING>>>
<TELL
"Mr. Baxter and Ms. Dunbar are here talking rapidly with each other. They
haven't noticed you yet." CR>)
(,DUNBAR-BAXTER-MEET
<SETG DUNBAR-BAXTER-MEET <>>
<TELL
"Mr. Baxter is in one corner, talking to Ms. Dunbar. He notices you and
motions Dunbar to stop talking." CR>)
(<IN? ,BAXTER ,LIVING-ROOM>
<COND (,POST-WILL
<TELL
"Mr. Baxter is offering his sympathies to Mrs. Robner." CR>)
(<IN? ,RECURSIVE-BOOK ,BAXTER>
<FSET ,RECURSIVE-BOOK ,NDESCBIT>
<TELL
"Mr. Baxter is sitting here reading a book." CR>)
(T <TELL
"Mr. Baxter is sitting quietly here." CR>)>)
(T <TELL "Mr. Baxter is here." CR>)>
<CARRY-CHECK ,BAXTER>)
(<VERB? EXAMINE>
<COND (,SHOT-FIRED
<COND (<IN? ,BAXTER ,DUNBAR-ROOM>
<TELL
"Baxter seems out of breath. His hair is disheveled and his hands are
somewhat soiled." CR>)
(T
<TELL
"Mr. Baxter has recovered his composure and looks calm. His hair is a bit
disheveled and his hands are dirty." CR>)>)>)
(<VERB? HELLO>
<TELL "Mr. Baxter returns your salutation." CR>)
(<VERB? GOODBYE>
<TELL "Mr. Baxter nods." CR>)
(<==? ,WINNER ,BAXTER>
<COND (<VERB? FIND> <RFALSE>)
(<COM-CHECK ,BAXTER> <RTRUE>)
(T <TELL <PICK-ONE ,WHY-ME> CR>)>)
(<VERB? SEARCH SEARCH-OBJECT-FOR>
<TELL
"Mr. Baxter pushes you away abruptly. \"I don't know what game you're playing,
Inspector, and frankly I'm not interested. You have been invited here to
investigate, not molest innocent persons.\"" CR>)
(<AND <VERB? ACCUSE> <==? ,PRSI ,GLOBAL-MURDER>>
<COND (,PEN-SEEN
<TELL
"Mr. Baxter turns to run away, but notices Sergeant Duffy by the door. He
stops abruptly and faces you." CR>)>)
(<VERB? ARREST>
<COND (<OR ,PEN-SEEN ,BAXTER-SEEN>
<COND (<IN? ,BAXTER ,HERE>
<TELL
"Sergeant Duffy enters the room solemnly. He places a pair of handcuffs
on Mr. Baxter, who is stiff and unspeaking. \"Let's not have any
trouble, now.\" Duffy remarks to Baxter.">)
(T
<TELL
"A few moments pass and Sergeant Duffy appears, escorting a handcuffed
Mr. Baxter.">)>
<TELL " With that, he leads him from
your view and into a police car waiting near the south lawn.|
|">
<END-HEADER "August 10">
<TELL
"Congratulations on your work in the Robner case. As I'm sure you
are aware, Mr. Baxter was found guilty ">
<COND (<AND <FSET? ,BAXTER-PAPERS ,TOUCHBIT> ,NOTE-READ>
<TELL
"of two counts of first-degree murder and has been sentenced to two
consecutive terms of life imprisonment. My only regret is that Dunbar
couldn't stand trial with him. We may never know the complete story behind
the Robner murder. But once again, thanks.|
|">)
(T
<TELL
"of first-degree murder in the death of Ms. Dunbar. Unfortunately, Baxter
remained tight-lipped throughout the proceedings, and except for the
revelation that Baxter and Dunbar were lovers, there was no motive established
for her murder. The jury acquitted Mr. Baxter in the murder of Mr. Robner,
as a motive had not been established. I am indeed sorry that a proper
conclusion to the case could not have been made.|
|">)>
<CASE-OVER>)
(<IN? ,CORPSE ,DUNBAR-ROOM>
<TELL
"Trusty Sergeant Duffy enters and places Mr. Baxter under arrest.
They leave, Baxter remaining calm.|
|">
<END-HEADER "August 13">
<TELL
"I heard today that the jury in the Robner case has voted to
acquit Mr. Baxter of both murders at the Robner house." CR>
<COND (<FSET? ,BAXTER-PAPERS ,TOUCHBIT>
<TELL
"While it was clear that Baxter had committed numerous crimes in the Focus
case, the jury was unconvinced of the relation between that and the murders.
They felt that Ms. Dunbar had committed the first murder, although I can't
imagine any scenario in which that would be possible, and had committed
suicide in desperation. These explanations leave much to be desired, but
what's done is done. I can't help feeling that there is more to this case than
has been discovered. Thank you for your work.|
|">
<CASE-OVER>)
(T
<TELL
"The jury believed the more probable story: that Ms. Dunbar committed the
first murder and then committed suicide when her guilt became clear to you.
I don't really believe this any more than you do, but the evidence is vague,
you must agree. Thanks again for handling the case.|
|">
<CASE-OVER>)>)
(<FSET? ,BAXTER-PAPERS ,TOUCHBIT>
<COND (<FSET? ,LAB-REPORT ,TOUCHBIT>
<TELL
"Trusty Sergeant Duffy enters and places Mr. Baxter under arrest.
They leave, Baxter remaining calm.|
|">
<END-HEADER "August 11">
<TELL
"I am sorry to report that Mr. Baxter was acquitted yesterday of the murder
of Mr. Robner. In speaking to the District Attorney, I gathered that the jury
was almost convinced of Baxter's guilt, given that he had both motive and a
means to enter the house using the ladder. However, the theory had a number of
serious flaws, including the means by which Baxter could have administered the
drug either without Robner's knowledge or without a struggle. I must confess
that I too am baffled. I am convinced that Baxter is guilty, but I fear we
will never know for certain.|
|">
<CASE-OVER>)
(T
<MURDER-NOT-PROVEN ,BAXTER T>)>)
(<FSET? ,LAB-REPORT ,TOUCHBIT>
<TELL
"Duffy enters and places Mr. Baxter under arrest, then leads him away without
fuss.|
|">
<END-HEADER "August 11">
<TELL
"I am indeed sorry that Mr. Baxter was acquitted yesterday of the murder of
Mr. Robner. From the District Attorney, I gather that the jury was completely
unconvinced by the our case. They found neither sufficient motive nor any
plausible means of introducing the fatal medicine into Mr. Robner's drink. I
must confess to being baffled by this case. Perhaps we shall never know the
true story of Mr. Robner's murder.|
|">
<CASE-OVER>)
(T
<MURDER-NOT-PROVEN ,BAXTER <>>)>)
(<AND <VERB? ASK-FOR>
<IN? ,CORPSE ,DUNBAR-ROOM>
<==? ,PRSI ,GLOBAL-PEN>>
<TELL
"Baxter reaches instinctively into his jacket and starts to pull out a pen.
He hesitates suddenly, pen in hand." CR>
<MOVE ,PEN ,BAXTER>
<SETG PEN-SEEN T>)
(<AND <VERB? ASK-ABOUT> <==? ,PRSO ,BAXTER>>
<COND (<NOT <GRAB-ATTENTION ,BAXTER>> <RTRUE>)
(<==? ,PRSI ,RECURSIVE-BOOK>
<TELL
"\"A fascinating story, Inspector. A man is found dead behind a locked door,
a clear suicide. Yet the detective seems bent on proving that a murder has
occured. Rather odd, wouldn't you say?\"" CR>)
(<==? ,PRSI ,GLOBAL-CONCERT>
<TELL
"\"A marvelous concert! There were works by Beethoven, Sibelius, and Ravel. I
never would've guessed you were interested in serious music, Inspector.\"" CR>)
(<==? ,PRSI ,STUB>
<COND (,STUB-DX
<TELL
"\"My dear Inspector, it is just as Ms. Dunbar told you.\"" CR>)
(T
<SETG STUB-B T>
<COND (<IN? ,DUNBAR ,HERE>
<SETG STUB-BX T>)>
<COND (,STUB-D
<SETG CONTRADICTION T>)>
<TELL
"\"Ah, that must be Ms. Dunbar's ticket stub. I should have told you earlier.
Ms. Dunbar was with me at the concert on the night that Marshall killed
himself. She became ill at intermission and hired a car to take her back home.
You see, Inspector, I know that Ms. Dunbar appreciates classical music, so I
occasionally ask her along to my subscription series. I really should
have told the other detective, but I didn't think it mattered.\"" CR>)>)
(<==? ,PRSI ,GLOBAL-LADDER>
<TELL
"\"What ladder? You know, Inspector, your questions are becoming
quite tiresome.\"" CR>)
(<EQUAL? ,PRSI ,GLOBAL-MERGER ,GLOBAL-OMNIDYNE>
<TELL
"\"I didn't realize you had an interest in finance. Before Marshall died, we
agreed that the only reasonable way to protect our interests was to be bought
out by a larger company which could then provide us with capital for
expansion. I had been talking to people at Omnidyne and we agreed in
principle on the terms for such an agreement last week. I'm hopeful that we
can close the deal quickly.\"" CR>)
(<==? ,PRSI ,GLOBAL-NEW-WILL>
<COND (<G? ,WILL-TIME 0>
<TELL
"\"It's fortunate for George that Marshall died when he did. It must be quite
a relief to know that he'll have plenty of money.\" He chuckles softly.">
<COND (,AT-READING
<TELL
" \"I guess that explains his reaction at the reading.\"">)>
<CRLF>)
(T
<TELL
"\"I don't know much about the family's affairs. Marshall threatened
to make a new will, but it certainly appears that he never did.\"" CR>)>)
(<==? ,PRSI ,GLOBAL-FOCUS>
<COND (,B-FOCUS
<TELL
"\"I told you already. There was no legal wrongdoing, only
some reporters trying to stir up a fuss.\" He appears quite nervous." CR>)
(,B-NOTE