-
Notifications
You must be signed in to change notification settings - Fork 16
/
camp.zil
2337 lines (2211 loc) · 67.1 KB
/
camp.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
"CAMP"
<ROUTINE GET-LOST-FCN ("AUX" (OFFS -3))
<COND (<NOT <GETP ,HERE ,P?ENDLESS>>
<RFALSE>)>
<REPEAT ()
<SET OFFS <+ .OFFS 3>>
<COND (<G? .OFFS 54>
<RETURN>)
(T
<COND (<EQUAL? ,HERE <GET ,MAP-TBL .OFFS>>
<SETG SECS-LON <GET ,MAP-TBL <+ .OFFS 1>>>
<SETG SECS-LAT <GET ,MAP-TBL <+ .OFFS 2>>>)>)>>
<SETG DEGS-LON 32>
<SETG DEGS-LAT 24>
<SETG MINS-LON 12>
<SETG MINS-LAT 11>
<SETG DESERT-LOC <GETP ,HERE ,P?ENDLESS>>
<CHANGE-DESERT-POSITION>
<FCLEAR ,ENDLESS-DESERT ,TOUCHBIT>
<RETURN ,ENDLESS-DESERT>>
<OBJECT NASTY-CROC
(IN RIVER-BANK)
(DESC "crocodile")
(FLAGS NDESCBIT TOUCHBIT DONTTAKE)
(SYNONYM CROC CROCS CROCOD REPTIL)
(ACTION CROC-FCN)>
<ROUTINE CROC-FCN ()
<COND (<AND <EQUAL? ,PRSI ,NASTY-CROC>
<VERB? THROW>>
<PERFORM ,V?PUT ,PRSO ,NILE-RIBBAH>
<RTRUE>)>>
<OBJECT NILE-RIBBAH
(IN RIVER-BANK)
(DESC "Nile")
(FLAGS NDESCBIT TOUCHBIT CONTBIT OPENBIT DONTTAKE)
(CAPACITY 1000)
(SYNONYM RIVER NILE)
(ACTION GET-WET-FCN)>
<ROUTINE GET-WET-FCN ()
<COND (<VERB? THROUGH>
<PERFORM ,V?SWIM ,NILE-RIBBAH>
<RTRUE>)
(<VERB? DROP>
<PERFORM ,V?LEAVE>
<RTRUE>)
(<VERB? LOOK-INSIDE EXAMINE>
<TELL "Hmmm. Looks potable. And dangerous." CR>
<RTRUE>)
(<VERB? OPEN CLOSE>
<HOW? ,PRSO>
<RTRUE>)
(<AND <PRSO? ,NILE-RIBBAH>
<VERB? DRINK>>
<PERFORM ,V?DRINK-FROM ,PRSO>
<RTRUE>)
(<AND <EQUAL? ,PRSI ,NILE-RIBBAH>
<VERB? PUT>>
<COND (<EQUAL? ,PRSO ,WINNER>
<PERFORM ,V?SWIM>
<RFATAL>)
(T
<REMOVE ,PRSO>
<SETG P-IT-LOC <>>
<TELL "The " D ,PRSO " quickly ">
<COND (<HEAVY?>
<TELL "sinks">)
(T <TELL "floats away on the current">)>
<TELL
". Another example of your fine management abilities." CR>
<RTRUE>)>)>>
<ROUTINE HEAVY? ("OPTIONAL" (OBJ <>))
<COND (<NOT .OBJ>
<SET OBJ ,PRSO>)>
<COND (<OR <EQUAL? .OBJ ,FOLDED-COT ,BROKEN-LOCK ,ROCK>
<EQUAL? .OBJ ,STONE-KEY ,PICK-AXE ,SHOVEL>
<EQUAL? .OBJ ,ROPE ,CRATE ,BLACK-BOX>
<EQUAL? .OBJ ,TORCH ,OIL-JAR>
<GETP .OBJ ,P?BRICK>>
<RTRUE>)
(<AND <EQUAL? .OBJ ,KNAPSACK>
<G? <WEIGHT ,KNAPSACK> 15>>
<RTRUE>)
(T
<RFALSE>)>>
<OBJECT THICKETS
(IN LOCAL-GLOBALS)
(DESC "thicket")
(FLAGS NDESCBIT DONTTAKE)
(SYNONYM THICKE)
(TEXT
"They're about as yielding as you were with your helpers. What else can I say
about them?")>
<OBJECT FIREPIT
(IN FIRE)
(FLAGS NDESCBIT TOUCHBIT CONTBIT OPENBIT DONTTAKE TRANSBIT)
(DESC "pit")
(SYNONYM PIT)
(ADJECTIVE CHARRE)
(CAPACITY 200)
(ACTION FIREPIT-FCN)>
<OBJECT ROCK
(IN FIRE)
(FLAGS NDESCBIT TAKEBIT)
(DESC "blackened rock")
(SYNONYM ROCK STONE)
(ADJECTIVE BLACKE)
(ACTION TAKE-ROCK-FCN)>
<ROUTINE TAKE-ROCK-FCN ()
<COND (<VERB? TAKE>
<FCLEAR ,ROCK ,NDESCBIT>
<PUTP ,MATCHES ,P?FDESC
"Sitting by the firepit is a matchbook.">
<RFALSE>)>>
<ROUTINE FIREPIT-FCN ()
<COND (<VERB? OPEN CLOSE>
<HOW? ,PRSO>)
(<VERB? THROUGH>
<TELL "There's no need to get yourself all dirty." CR>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<TELL "The pit's just a pit. Nothing more. ">
<COND (<FIRST? ,PIT>
<TELL "Sitting in the pit is ">
<PRINT-CONTENTS ,PIT>)
(T
<TELL "The pit is empty">)>
<TELL "." CR>
<RTRUE>)>>
<OBJECT TENT-OBJ
(IN LOCAL-GLOBALS)
(FLAGS NDESCBIT TOUCHBIT DONTTAKE)
(DESC "tent")
(SYNONYM TENT)
(ADJECTIVE YOUR SUPPLY WORK)
(ACTION ENTER-TENT-FCN)>
<ROUTINE ENTER-TENT-FCN ()
<COND (<AND <VERB? DROP DISEMBARK>
<PRSO? ,TENT-OBJ>
<IN-A-TENT?>>
<PERFORM ,V?LEAVE>
<RTRUE>)
(<VERB? EXAMINE>
<COND (<EQUAL? ,HERE ,P2 ,P4 ,P7>
<RFALSE>)
(<IN-A-TENT?>
<TELL
"Looks like a canvas tent to me." CR>
<RTRUE>)
(<NOT <GETP ,HERE ,P?MAP>>
<TELL "Get serious." CR>
<RTRUE>)
(T <TELL "I can't see it from here!" CR>)>)
(<VERB? LOOK-INSIDE>
<PERFORM ,V?LOOK-INSIDE ,FLAPS>
<RTRUE>)
(<VERB? LAMP-ON>
<TELL "I don't think that striking the tent would do any good." CR>
<RTRUE>)
(<NOT <VERB? THROUGH BOARD>>
<RFALSE>)
(<NOT <GETP ,HERE ,P?MAP>>
<TELL "Get serious." CR>
<RTRUE>)
(<IN-A-TENT?>
<TELL
"What are those canvas walls around you? Just where do you think you are? Maybe
I should send for Craige, eh?" CR>
<RTRUE>)
(<EQUAL? ,HERE ,P2 ,P7 ,P4>
<PERFORM ,V?ENTER>
<RTRUE>)
(ELSE
<TELL "You can't enter the tent from here." CR>
<RTRUE>)>>
<OBJECT PYRAMID
(FLAGS NDESCBIT TOUCHBIT)
(DESC "pyramid")
(SYNONYM PYRAMI)
(ACTION ENTER-PYRAMID-FCN)>
<ROUTINE ENTER-PYRAMID-FCN ()
<COND (<AND <VERB? DROP>
<EQUAL? ,HERE ,CHAMBER-OF-RA>>
<PERFORM ,V?LEAVE>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<COND (<AND <NOT ,PYRAMID-OPENED>
<IN? ,ROCK-LOCK ,HERE>>
<TELL
"There's not much to see of it yet -- just the tip of it is exposed showing the
block and its small opening." CR>)
(<AND ,PYRAMID-OPENED
<EQUAL? ,HERE ,EX8>>
<TELL
"You can see down into what looks like a large chamber." CR>)
(<GETP ,HERE ,P?MAP>
<TELL "You can't see any pyramid here." CR>)
(T
<TELL "Where do you think you are, Times Square?" CR>)>
<RTRUE>)
(<AND <VERB? OPEN> <NOT ,PYRAMID-OPENED> <IN? ,ROCK-LOCK ,HERE>>
<TELL "The stone blocks don't move." CR> <RTRUE>)
(<VERB? OPEN> <TELL "It looks open to me." CR> <RTRUE>)
(<AND <EQUAL? ,PYRAMID ,PRSI>
<EQUAL? ,HERE ,EX8>
<VERB? PUT THROW>
,PYRAMID-OPENED>
<TELL "You hear the " D ,PRSO " fall down below." CR>
<FSET ,PRSO ,TOUCHBIT>
<FCLEAR ,PRSO ,NDESCBIT>
<COND (<EQUAL? ,PRSO ,KNAPSACK>
<FCLEAR ,PRSO ,WEARBIT>
<FSET ,PRSO ,OPENBIT>)>
<MOVE ,PRSO ,CHAMBER-OF-RA>
<RTRUE>)
(<NOT <VERB? THROUGH>>
<RFALSE>)
(<NOT <GETP ,HERE ,P?MAP>>
<TELL "Get serious. Let's find it first." CR>
<RTRUE>)
(<EQUAL? ,HERE ,EX8>
<PERFORM ,V?ENTER>
<RTRUE>)
(ELSE
<TELL "You can't enter the pyramid from here." CR>
<RTRUE>)>>
<ROOM RIVER-BANK
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "River Bank")
(LDESC
"You are on the bank of the river Nile. The shoreline is sandy and cool, and
reeds wave in a light but warm breeze. Directly to the north and the south
thickets make strolling along the bank impossible. You're hot, and the cool
rippling water to the west looks inviting, but you're not alone in that
thought -- crocodiles bask on the west bank, eyeing you hungrily, just
waiting for you to enter their watery domain. Things were never like this when
Craige was around.")
(EAST TO P1)
(NORTH "The thickets chew on your skin as you attempt to make a path through them. You finally give up.")
(SOUTH "The thickets chew on your skin as you attempt to make a path through them. You finally give up.")
(WEST "Can't you see the crocs? If you insist on entering the water, you'll have to swim.")
(NW "Can't you see the crocs? If you insist on entering the water, you'll have to swim.")
(SW "Can't you see the crocs? If you insist on entering the water, you'll have to swim.")
(OUT TO P1)
(MAP 1)
(GLOBAL TENT-OBJ SAND HOLE GLOBAL-WATER THICKETS)
(CAPACITY 0)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM P1
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Near the Nile")
(LDESC
"You are on an east/west path on the north side of the encampment. A path to
the south starts here, and you can see the riverbank clearly to the west. A
warm, light breeze reaches your face, drying your sweat into a thin mask of
salt. You glance to the north and are greeted by a disheartening sight: an
endless stretch of searing desert.")
(NORTH PER GET-LOST-FCN)
(NE PER GET-LOST-FCN)
(NW PER GET-LOST-FCN)
(WEST TO RIVER-BANK)
(EAST TO P2)
(SOUTH TO P4)
(SE TO FIRE)
(SW "Some thickets near the river chew on your skin as you attempt to make a path through them. You finally give up.")
(MAP 2)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 1)
(ENDLESS 651)
(ACTION CREATE-THIRST-FCN)>
<ROOM P2
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Outside Your Tent")
(LDESC
"You are on an east/west path on the north side of the encampment. To the south
you can see a firepit and to the north is the entrance to your tent. Everything
is oddly quiet, unsettling, creating a feeling of floating anxiety. The
stillness seems to enhance the eerie quality of the desert, the feeling of
being truly alone.")
(NORTH TO TENT)
(IN TO TENT)
(WEST TO P1)
(EAST TO P3)
(NW PER GET-LOST-FCN)
(NE PER GET-LOST-FCN)
(SW TO P4)
(SE TO P5)
(SOUTH TO FIRE)
(MAP 3)
(GLOBAL TENT-OBJ SAND HOLE FLAPS)
(CAPACITY 3)
(ENDLESS 652)
(ACTION CREATE-THIRST-FCN)>
<ROOM TENT
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Your Tent")
(LDESC
"You are in your tent. Golden rays of the sun filter through the open tent
flaps on the southern wall, but no breeze makes its way through. The dry,
searing heat in the tent would be bearable if only the air stirred, even a
little.")
(SOUTH TO P2)
(OUT TO P2)
(MAP 4)
(GLOBAL TENT-OBJ SAND HOLE FLAPS)
(CAPACITY 0)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM P3
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Northern Path")
(LDESC
"You are on an east/west path on the northern side of the encampment. To the
east you can see the sites of previous excavations your workers had
begun before they deserted you. Low, gentle sand dunes roll out of sight to
the north, but your camp's eastern border has a path, heading off to the south,
which starts here.")
(NORTH PER GET-LOST-FCN)
(NW PER GET-LOST-FCN)
(NE PER GET-LOST-FCN)
(EAST TO EX1)
(SE TO EX4)
(SOUTH TO P5)
(SW TO FIRE)
(WEST TO P2)
(MAP 1)
(ACTION CREATE-THIRST-FCN)
(GLOBAL TENT-OBJ SAND HOLE)
(ENDLESS 653)
(CAPACITY 2)>
<ROOM SUPPLY-TENT
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Supply Tent")
(LDESC
"You are in a tent, very much like your own -- a tent which had originally
contained the supplies for your expedition. You notice, however, that most of
the items which were here just yesterday have vanished with your workers. The
tent looks as if it's been cleaned out and, as your stomach growls, the empty
tent ironically reminds you of a turkey carcass picked clean after a huge
Thanksgiving meal. Through the open tent flaps to the east you can see the
firepit. If only one of the workers had remained behind, you would make him
pay.")
(EAST TO P4)
(OUT TO P4)
(MAP 1)
(GLOBAL TENT-OBJ SAND HOLE FLAPS)
(CAPACITY 0)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM P4
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Outside Supply Tent")
(LDESC
"You're on a north/south path on the west edge of the encampment. Directly to
the west is the supply tent, its flaps open, still in the hot, quiet air. To
the east you can see the central firepit, a reminder of your being alone. A row
of thickets, impossible to make any progress through even with a machete,
grows along the western edge of the camp directly to the north and south of the
tent.")
(NORTH TO P1)
(NE TO P2)
(NW "The thickets chew on your skin as you attempt to make a path through them. You finally give up.")
(SW "The thickets chew on your skin as you attempt to make a path through them. You finally give up.")
(WEST TO SUPPLY-TENT)
(IN TO SUPPLY-TENT)
(SOUTH TO P6)
(EAST TO FIRE)
(SE TO P7)
(MAP 1)
(ACTION CREATE-THIRST-FCN)
(GLOBAL TENT-OBJ SAND HOLE FLAPS THICKETS)
(CAPACITY 1)>
<ROOM FIRE
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Fire Pit")
(LDESC
"You are in the center of the encampment, standing before a charred pit, a hole
dug in the sand surrounded by blackened rocks. The night breezes have already
started the reclamation work of the desert, covering most of the pit's bottom.
You can see your tent to the north, the work tent to the south, and the supply
tent to the west. Far off to the east, through the heat waves rising off the
shifting sands, you can see gentle, rolling dunes.")
(NORTH TO P2)
(NE TO P3)
(EAST TO P5)
(SE TO P8)
(SOUTH TO P7)
(SW TO P6)
(WEST TO P4)
(NW TO P1)
(MAP 1)
(ACTION CREATE-THIRST-FCN)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 0)>
<OBJECT ROCK-S
(IN FIRE)
(FLAGS DONTTAKE NDESCBIT TRYTAKEBIT)
(DESC "blackened rocks")
(SYNONYM ROCKS)
(ADJECTIVE BLACKE)
(TEXT "They form a ring around the firepit.")>
<ROOM P5
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Middle Path")
(LDESC
"You are at the eastern edge of an east/west path in the middle of the camp.
To the west you can see the firepit and beyond that the supply tent. To the
east you can see the desert -- a vista difficult to avoid seeing from just
about anywhere in the camp. A north/south path intersects here, traveling along
the eastern border of the camp.")
(NORTH TO P3)
(NE TO EX1)
(EAST TO EX4)
(SE TO EX7)
(SOUTH TO P8)
(SW TO P7)
(WEST TO FIRE)
(NW TO P2)
(MAP 2)
(ACTION CREATE-THIRST-FCN)
(ENDLESS 706)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 4)>
<ROOM P6
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Southern Path")
(LDESC
"You are at the west edge of an east/west path on the southern side of the
encampment. Directly to the west is a heavy growth of thickets, making any
attempt at western movement a painful and futile task. Through the thickets you
can hear the sound of water running gently by.")
(NORTH TO P4)
(NE TO FIRE)
(EAST TO P7)
(SE PER GET-LOST-FCN)
(SOUTH PER GET-LOST-FCN)
(SW PER GET-LOST-FCN)
(WEST "You scratch yourself on the thickets as you attempt this.")
(NW "You scratch yourself on the thickets as you attempt this.")
(MAP 2)
(ACTION CREATE-THIRST-FCN)
(GLOBAL TENT-OBJ SAND HOLE THICKETS)
(ENDLESS 751)
(CAPACITY 0)>
<ROOM P7
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Outside Work Tent")
(LDESC
"You are on an east/west path, directly to the north of the work tent. To the
north you can see the firepit and, beyond that, your tent. The work tent
borders an endless vista of fine, burning sand stretching out to the south.")
(NORTH TO FIRE)
(NE TO P5)
(EAST TO P8)
(SE PER GET-LOST-FCN)
(SOUTH TO TENT2)
(SW PER GET-LOST-FCN)
(WEST TO P6)
(NW TO P4)
(IN TO TENT2)
(MAP 2)
(ACTION CREATE-THIRST-FCN)
(GLOBAL TENT-OBJ SAND HOLE FLAPS)
(ENDLESS 752)
(CAPACITY 1)>
<ROOM P8
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Southern Path")
(LDESC
"You are at the start of a path which heads north along the eastern border of
the encampment. To the east you can see the horror and the beauty which brought
you here, the desert sand and its hidden treasure. The firepit is visible to
the northwest.")
(NORTH TO P5)
(NE TO EX4)
(EAST TO EX7)
(SE PER GET-LOST-FCN)
(SOUTH PER GET-LOST-FCN)
(SW PER GET-LOST-FCN)
(WEST TO P7)
(NW TO FIRE)
(MAP 2)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 2)
(ENDLESS 753)
(ACTION CREATE-THIRST-FCN)>
<ROOM TENT2
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Work Tent")
(LDESC "You are in a tent which used to house the workers and
their personal effects. Looking around, taking in the stripped and bare
surroundings, you feel surprised that they even left the canvas walls.
You quickly realize that they took what they needed -- taking everything
would have been more trouble than it was worth. From the looks of things
they cleared out quickly but quietly.")
(NORTH TO P7)
(OUT TO P7)
(GLOBAL TENT-OBJ SAND HOLE FLAPS)
(CAPACITY 0)
(MAP 2)
(ACTION DESCRIBE-HOLE-FCN)>
<ROUTINE CREATE-THIRST-FCN (RARG)
<COND (<EQUAL? .RARG ,M-ENTER>
<SETG THIRST <+ ,THIRST 6>>
<RFALSE>)
(<EQUAL? .RARG ,M-BEG>
<SETG THIRST <+ ,THIRST 1>>
<RFALSE>)
(<EQUAL? .RARG ,M-LOOK>
<DESCRIBE-HOLE-FCN ,M-LOOK>)>>
<ROOM EX1
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Desert")
(LDESC
"You are in the broiling sands of the desert, a short distance from the camp.
Off to the west you can just make out a slight discoloration in the sand, the
start of an east/west path which borders the northern edge of the camp.")
(NORTH PER GET-LOST-FCN)
(NE PER GET-LOST-FCN)
(EAST TO EX2)
(SE TO EX5)
(SOUTH TO EX4)
(SW TO P5)
(WEST TO P3)
(NW PER GET-LOST-FCN)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 3)
(MAP 2)
(DESERT 1)
(ENDLESS 654)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM EX2
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Desert")
(LDESC
"You are in the desert, almost out of sight of the encampment, your only link
with civilization. You are just close enough to make out a tiny dot on the
western horizon which could be one of the tents. The searing sand is making
walking a difficult and painful experience, something alien to you.")
(NORTH PER GET-LOST-FCN)
(NE PER GET-LOST-FCN)
(EAST TO EX3)
(SE TO EX6)
(SOUTH TO EX5)
(SW TO EX4)
(WEST TO EX1)
(NW PER GET-LOST-FCN)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 2)
(MAP 1)
(DESERT 1)
(ENDLESS 655)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM EX3
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Desert")
(LDESC
"You are deep in desert, the encampment little more than a memory. You think
for a moment, closing your eyes, trying to picture the coolness of the Nile,
the comfort of your cot, and are overcome with doubts. When you open your eyes
again you are greeted with the same nightmare: All around you, all you can see
for mile after mile is sand and more sand.")
(NORTH PER GET-LOST-FCN)
(NE PER GET-LOST-FCN)
(EAST PER GET-LOST-FCN)
(SE PER GET-LOST-FCN)
(SOUTH TO EX6)
(SW TO EX5)
(WEST TO EX2)
(NW PER GET-LOST-FCN)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 1)
(MAP 2)
(DESERT 1)
(ENDLESS 656)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM EX4
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Desert")
(LDESC
"You are in the desert, still within sight of the encampment, just a tiny
oasis to the west. The tents, shimmering behind the heat waves rising from the
sand, seem to be calling you back, beckoning, offering safety and refuge.")
(NORTH TO EX1)
(NE TO EX2)
(EAST TO EX5)
(SE TO EX8)
(SOUTH TO EX7)
(SW TO P8)
(WEST TO P5)
(NW TO P3)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 1)
(MAP 1)
(DESERT 1)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM EX5
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Desert")
(LDESC
"You are standing on the top of a sand dune, looking all around at a place on
Earth where man was never meant to be. That is the only conclusion you can draw
as you force yourself to breathe the hot, arid air of the desert through your
nose. Breathing through your mouth makes you instantly thirsty, a dangerous
state to find yourself in while surrounded by sand. You curse Craige, then
find yourself cursing Ellingsworth, too.")
(NORTH TO EX2)
(NE TO EX3)
(EAST TO EX6)
(SE TO EX9)
(SOUTH TO EX8)
(SW TO EX7)
(WEST TO EX4)
(NW TO EX1)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 2)
(MAP 2)
(DESERT 1)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM EX6
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Desert")
(LDESC
"You are deep into the desert, as deep as anyone in his right mind would ever
care to venture. A small but strong gust of wind reaches your face, pelting you
with grains of sand so small they remind you of fine sugar. Even with your lips
tightly closed, the wind manages to drive a few grains into your mouth. You are
thankful that none got into your eyes.")
(NORTH TO EX3)
(NE PER GET-LOST-FCN)
(EAST PER GET-LOST-FCN)
(SE PER GET-LOST-FCN)
(SOUTH TO EX9)
(SW TO EX8)
(WEST TO EX5)
(NW TO EX2)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 3)
(MAP 2)
(DESERT 1)
(ENDLESS 706)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM EX7
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Desert")
(LDESC
"You are in the desert, east of the encampment. From this distance the camp
seems little more than a mirage, an image of another reality which has little
to do with the brutal, searing reality of the desert, your quickly dehydrating
body, or your painfully broiling feet.")
(NORTH TO EX4)
(NE TO EX5)
(EAST TO EX8)
(SE PER GET-LOST-FCN)
(SOUTH PER GET-LOST-FCN)
(SW PER GET-LOST-FCN)
(WEST TO P8)
(NW TO P5)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 1)
(MAP 2)
(DESERT 1)
(ENDLESS 754)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM EX8
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Desert")
(LDESC
"You are in the desert, out of sight of the encampment. You are thankful
there's no wind, even though a cooling breeze would be welcomed, since the
fine sand particles would sting your face and hands. All around is the desert,
a sweeping expanse of disheartening sand.")
(NORTH TO EX5)
(NE TO EX6)
(EAST TO EX9)
(SE PER GET-LOST-FCN)
(SOUTH PER GET-LOST-FCN)
(SW PER GET-LOST-FCN)
(WEST TO EX7)
(NW TO EX4)
(DOWN TO CHAMBER-OF-RA IF PYRAMID-OPENED)
(IN TO CHAMBER-OF-RA IF PYRAMID-OPENED)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 1)
(MAP 2)
(DESERT 1)
(ENDLESS 755)
(ACTION DESCRIBE-HOLE-FCN)>
<ROOM EX9
(IN ROOMS)
(FLAGS RLANDBIT ONBIT)
(DESC "Desert")
(LDESC
"You are far into the desert, sand and more sand stretching out endlessly
around you in all directions. You think of going back, of giving up this
attempt at riches, but what awaits you back in the States? What is there worth
going back to, with nothing to show for this quest? And how could you go back
now, after the things you'd said to Craige? You glance around
at the rolling dunes and force back the fear eating away your confidence.")
(NORTH TO EX6)
(NE PER GET-LOST-FCN)
(EAST PER GET-LOST-FCN)
(SE PER GET-LOST-FCN)
(SOUTH PER GET-LOST-FCN)
(SW PER GET-LOST-FCN)
(WEST TO EX8)
(NW TO EX5)
(GLOBAL TENT-OBJ SAND HOLE)
(CAPACITY 1)
(MAP 1)
(DESERT 1)
(ENDLESS 756)
(ACTION DESCRIBE-HOLE-FCN)>
<ROUTINE DESCRIBE-HOLE-FCN (RARG "AUX" DEPTH)
<COND (<EQUAL? .RARG ,M-LOOK>
<TELL <GETP ,HERE ,P?LDESC>>
<SET DEPTH <GETP ,HERE ,P?CAPACITY>>
<COND (<AND <G? .DEPTH 5>
<EQUAL? ,HERE ,EX8>>
<CRLF>
<RTRUE>)
(<G? .DEPTH 0>
<TELL " There's a" <GET ,DESC-HOLE-LTBL .DEPTH>
" in the sand, a remnant of your excavation attempts.">)>
<COND (<EQUAL? ,HERE ,ENDLESS-DESERT>
<COND (<G? ,THIRST 300>
<TELL " " <PICK-ONE ,SPACE-TALES-LTBL>>)
(ELSE
<COND (<PROB 50>
<COND (<PROB 35>
<TELL " "
<PICK-ONE ,SPACE-TALES-LTBL>>)
(T <TELL " "
<PICK-ONE ,MIRAGE-LTBL>>)>)>)>)
(<GETP ,HERE ,P?DESERT>
<COND (<G? ,THIRST 300>
<TELL " " <PICK-ONE ,MIRAGE-LTBL>>)
(ELSE
<COND (<PROB 20>
<TELL " " <PICK-ONE ,MIRAGE-LTBL>>)>)>)>
<CRLF>
<RTRUE>)
(<EQUAL? .RARG ,M-ENTER>
<SETG THIRST <+ ,THIRST 15>>
<RFALSE>)
(<EQUAL? .RARG ,M-BEG>
<SETG THIRST <+ ,THIRST 3>>
<RFALSE>)>>
<GLOBAL DESC-HOLE-LTBL
<LTABLE " small hole"
"n enlarged hole"
" sizable hole"
" knee-deep hole"
" deep hole">>
<GLOBAL SPACE-TALES-LTBL
<LTABLE
"You hear a whirring overhead and look up in time to see a gyrocopter settling
to the sand on the horizon."
"You think you see a spaceship settling on the horizon and, as you strain your
eyes through the wafting waves of heat, you see a man and a huge robot. You can
almost hear them saying \"Gort, Klaatu Barada Nikto.\""
"A small lizard pokes its head up from the sands and asks the shortest route to
Times Square. You scratch your head for a moment and when you remember the
proper subway line to recommend to it, you notice it's disappeared."
"Five maids amilking sit on sandy stools before you, grinning maniacally."
"A large rainbow trout walks by, holding a pet snail on a leash."
"A strong gust of wind kicks up a herd of buffalo on the horizon. You think it
strange that the buffalo are riding sidesaddle.">>
<GLOBAL MIRAGE-LTBL
<LTABLE
"Far off in the distance, dancing on the horizon, you see a shimmering oasis.
Standing by the oasis are a team of Egyptian workers, waving for you to
approach."
"A cool pool of water seems to dance in the heat waves just a mile away. You
can almost hear Rankin and Craige arguing over the spoils."
"A caravan of camels, led by a nomadic tribe, wanders a few miles off."
"You wipe your sweating brow, gazing off into the distance, and notice a cool,
crystal-clear lake glimmering on the horizon, just to the north.">>
<OBJECT ROCK-LOCK
(IN EX8)
(FLAGS INVISIBLE NDESCBIT CONTBIT OPENBIT DONTTAKE VOWELBIT)
(DESC "opening")
(SYNONYM OPENIN BLOCK HOLE)
(ADJECTIVE SQUARE)
(CAPACITY 5)
(MAP 3)
(ACTION ENTER-OPENING-FCN)>
<ROUTINE ENTER-OPENING-FCN ()
<COND (<VERB? EXAMINE READ>
<TELL
"The opening sits in the upper right-hand corner of the block. It's a small
square opening, about four inches square, far too small for you
to enter, and rather shallow. Some hieroglyphs travel across the block,
cut off by the opening:|
">
<FIXED-FONT-ON>
<TELL "|
!-! !-!|
-> #. ! ! - # ! ! /|
">
<FIXED-FONT-OFF>
<RTRUE>)
(<VERB? OPEN CLOSE>
<HOW? ,PRSO>)
(<VERB? THROUGH>
<TELL
"I think the opening is a little too small to get through. Unless your ethics
and morals are an accurate representation of your stature." CR>
<RTRUE>)>>
<OBJECT COT
(IN TENT)
(FLAGS TAKEBIT TRYTAKEBIT CONTBIT OPENBIT SURFACEBIT VEHBIT VOWELBIT
TRANSBIT)
(DESC "army cot")
(ACTION COT-FCN)
(CAPACITY 100)
(SYNONYM COT)
(ADJECTIVE ARMY)>
<OBJECT FOLDED-COT
(FLAGS TAKEBIT)
(DESC "folded cot")
(ACTION COT-FCN)
(SIZE 9)
(SYNONYM COT)
(ADJECTIVE ARMY FOLDED)>
<ROUTINE COT-FCN ("OPTIONAL" (RARG ,M-OBJECT) "AUX" F)
<COND (<NOT <EQUAL? .RARG ,M-OBJECT>> <RFALSE>)
(<PRSO? ,COT>
<SET F <FIRST? ,COT>>
<COND (<VERB? TAKE PUT PUT-ON>
<TELL
"It's too bulky and unstable a structure to be carrying around." CR>
<RTRUE>)
(<VERB? CLIMB-ON CLIMB-UP>
<COND (<IN? ,WINNER ,COT>
<TELL "Where do you think you are?" CR>)
(T
<TELL
"This is no time for sitting down on the job, especially after what you've been
through to get here!" CR>)>
<RTRUE>)
(<VERB? EXAMINE LOOK-INSIDE>
<TELL "It's just an army cot.">
<COND (<AND .F
<EQUAL? .F ,WINNER>>
<TELL " And you're in it!">)
(.F
<TELL " Sitting on the cot ">
<COND (<G? <CCOUNT ,COT> 1>
<TELL "are ">)
(T <TELL "is ">)>
<PRINT-CONTENTS ,COT>
<TELL ".">)>
<CRLF>
<RTRUE>)
(<VERB? FOLD CLOSE>
<COND (<NOT .F>
<TELL "Folded." CR>
<MOVE ,FOLDED-COT <LOC ,COT>>
<REMOVE ,COT>
<THIS-IS-IT ,FOLDED-COT>
<RTRUE>)
(<EQUAL? .F ,WINNER>
<TELL
"Don't you think it would be wise to get out of the cot first? Or are you
waiting for a valet to help?" CR>
<RTRUE>)
(.F
<TELL
"You'd better take everything off of it first." CR>
<RTRUE>)>)
(<VERB? OPEN UNFOLD>
<TELL "It's already unfolded." CR>
<RTRUE>)
(<AND <VERB? DROP>
<EQUAL? <LOC ,WINNER> ,COT>>
<PERFORM ,V?DISEMBARK ,COT>
<RTRUE>)
(<AND <VERB? WALK THROUGH>
<EQUAL? <LOC ,WINNER> ,COT>>
<TELL "You'd better get out of the cot first." CR>
<RFATAL>)>)
(<PRSO? ,FOLDED-COT>
<COND (<VERB? OPEN UNFOLD>
<COND (<NOT <IN? ,FOLDED-COT ,HERE>>
<TELL
"Better put it down on the ground first." CR>)
(T
<TELL "Unfolded." CR>
<MOVE ,COT <LOC ,FOLDED-COT>>
<REMOVE ,FOLDED-COT>
<THIS-IS-IT ,COT>
<RTRUE>)>)
(<VERB? FOLD CLOSE>
<TELL
"Hmmm. Looks like you beat yourself to it. It's already folded up." CR>
<RTRUE>)>)>>
<OBJECT MATCHES
(IN FIRE)
(DESC "matchbook")
(FDESC
"Sitting by a rock is what looks like a matchbook.")
(SYNONYM MATCHB MATCHE COVER)
(FLAGS BURNBIT TAKEBIT READBIT CONTBIT)
(SIZE 1)
(CAPACITY 1)
(GENERIC DIASMBIGUATE-FCN)
(ACTION READ-MATCHES-FCN)>
<ROUTINE READ-MATCHES-FCN ("OPTIONAL" OBJ)
<COND (<NOT .OBJ>
<SET OBJ ,MATCHES>)>
<COND (<VERB? READ-INSIDE>
<COND (<NOT <FSET? .OBJ ,OPENBIT>>
<TELL "You'd better open the matchbook first." CR>
<RTRUE>)
(ELSE
<PERFORM ,V?READ .OBJ>
<RTRUE>)>)
(<VERB? READ LOOK-BEHIND>
<COND (<FSET? .OBJ ,OPENBIT>
<TELL
"The inside says: Send away now!! Mushrooms can be taught a foreign
language, and make fine pets! Easy to feed and they can be walked on a leash!
Read and fill out the enclosed coupon now!" CR>)
(ELSE
<TELL
"Printed on the outside is a small coupon for an instruction manual,
\"GROW MUSHROOMS IN YOUR BASEMENT FOR FUN & PROFIT\". Close Before
Striking." CR>)>)
(<VERB? LAMP-ON>
<TELL "One match at a time, eh?" CR>