1 {//-------------------------------------------------------------------------}
\r
3 {Copyright (C) 1990, 2009 - Apogee Software, Ltd. }
\r
5 {This file is part of Supernova. Supernova is free software; you can }
\r
6 {redistribute it and/or modify it under the terms of the GNU General Public }
\r
7 {License as published by the Free Software Foundation; either version 2 }
\r
8 {of the License, or (at your option) any later version. }
\r
10 {This program is distributed in the hope that it will be useful, }
\r
11 {but WITHOUT ANY WARRANTY; without even the implied warranty of }
\r
12 {MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. }
\r
14 {See the GNU General Public License for more details. }
\r
16 {You should have received a copy of the GNU General Public License }
\r
17 {along with this program; if not, write to the Free Software }
\r
18 {Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.}
\r
20 {Original Source: 1990 Scott Miller }
\r
21 {Prepared for public release: 03/19/09 - Joe Siegler, Apogee Software, Ltd. }
\r
23 {//-------------------------------------------------------------------------}
\r
24 {****************************************************************************}
\r
25 {* BEYOND THE TITANIC *}
\r
26 {* Written by Scott Miller with Turbo Pascal V.2. Began May 12, '84. *}
\r
27 {* Shareware Version *}
\r
28 {* Copyright 1987 *}
\r
29 {$C-,K-,V-,R-****************************************************************}
\r
31 { Last modified: July 23, 1987 }
\r
41 ComSet = set of 0..VMax;
\r
42 CharSet = set of Char;
\r
43 PlayersObjects = set of 0..NMax;
\r
46 Str240 = string[240];
\r
50 aCabiSet :PlayersObjects;
\r
70 WordList : file of Str14;
\r
71 Things : file of integer;
\r
72 Objects : file of PlayersObjects;
\r
73 GameSave : file of SaveGame;
\r
74 DiskSave : SaveGame;
\r
78 V{erb} : array [0..VMax,1..5] of Str14;
\r
79 N{oun} : array [0..NMax,1..5] of Str14;
\r
80 R{oom} : array [0..NMax] of integer;
\r
81 P{lace} : array [0..RMax] of PlayersObjects;
\r
82 RmSh : set of 0..14;
\r
83 OneWordCommands: Comset;
\r
87 CabiSet : PlayersObjects;
\r
95 Special1, Special2 : file of Str240;
\r
96 Text1, Text2 : Str240;
\r
97 Line1 : file of Str80;
\r
109 MnRm, {Monster Room}
\r
114 ShRm, {Shuttle Room}
\r
115 m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,
\r
116 Rx, {deserted road}
\r
130 {$Ia:AdParser.PAS}{ <--- Loads in sentence logic. <*********************}
\r
133 {$Ia:Commands.PAS}{ <--- Loads in misc. procedures. <*********************}
\r
136 {$Ia:WordList.PAS }{ <----- CALLS UP THE VERBS & NOUNS <*******************}
\r
139 {$Ia:Objects.PAS }{ <----- CALLS UP THE VERBS & NOUNS <*******************}
\r
142 {===================}
\r
143 overlay procedure DefaultAnswers1;
\r
149 22 :begin if(Prm in[59..68])then
\r
150 begin RmSh:=RmSh-[ShRm];RS(84)end;
\r
151 if flasoff and (Prm in [6..24])then RL(54) else
\r
152 if Verbose then DescribeRm
\r
153 else begin Verbose:=true;DescribeRm;Verbose:=false;end;
\r
154 if(23 in p[Prm])and(MnRm=Prm)then RL(357);
\r
155 if Back then begin Attack:=False; Back:=False;end
\r
158 18 :if inven=[] then RL(116)
\r
161 writeln('You have in your possession...');
\r
162 for o:= 0 to NMax do
\r
166 writeln('an ',n[o,1])else writeln('a ',n[o,1]);
\r
167 if(ropecon in inven)and(o=ropecon)then
\r
168 writeln(' The rope is tied to the ',n[o,1],'.');
\r
169 if(o=74)and(en('p'))then RL(174);
\r
170 if(o=89)and(en('i'))then RL(321);
\r
176 2:if(en('b'))then RL(198) else RL(199);
\r
177 29:begin RL(89);if(en('a'))then RL(200) else RL(201);end;
\r
178 57:if(ropecon<>Null)then
\r
179 writeln('The rope is tied to the ',n[ropecon,1],'.')
\r
181 65:if(Prm in[59..68])then RS(84)else Line:='l';
\r
191 1:if(Prm=42)and(13 in p[42])then RL(167);
\r
193 9:if(Prm=49)then RL(228)else if(Prm>62)then RS(68)else RL(229);
\r
199 18:if(Prm in[63..70])then RS(68)else RL(348);
\r
200 46,66:If(Prm in[58,59,63,69])then begin
\r
201 TextColor(12);RS(83);TextColor(m2)end;
\r
205 if(Shots>0)then writeln('is about ',Shots*10,' percent full.')
\r
206 else Writeln('is empty.')end;
\r
207 15:if(84 in p[Prm])then RL(180)else If(71 in p[Prm])then RL(182)
\r
209 56,44:if(en('r'))then RL(51) else RL(52)
\r
210 else if not(noun in[1,12,14,15,17,18,19,22,31,36,50,
\r
211 54,67,69,73,79,80,84,87,88])and(random(3)=1)then
\r
214 1 :writeln('Yea, it''s definitely a ',n[noun,1],'!');
\r
215 2 :writeln('It looks like any other ',n[noun,1],'.');
\r
217 else writeln('You see nothing special about the ',n[noun,1],'.')
\r
220 41 :begin writeln('Time passes');y:=wherey;for o:=1 to 6 do
\r
221 begin gotoxy(11+o,y-1);writeln('.');sound(o*99);delay(30)end;
\r
222 if(Prm in[59..68])then sound(20)else nosound end;
\r
224 43..52 :if(Prm in[6..24])and(FlasOff)then RL(14)else
\r
225 if(Prm=69)then RL(358)else RL(144);
\r
227 57,58 :begin Attack:=False;
\r
228 if(Prm in[6..24])and(FlasOff)then RL(14)else RL(190);end;
\r
231 end; {of DefaultAnswers1}
\r
232 {-------------------}
\r
233 overlay procedure DefaultAnswers2;
\r
239 29 :if(noun in Mov)then
\r
240 if(noun in inven)then
\r
243 39:if(en('o'))then begin RL(186);Vanish(noun);
\r
244 kitset:=kitset+[noun];r[noun]:=Prm;end
\r
247 if(SlotCon=Null)then begin RL(186);Vanish(noun);
\r
248 SlotCon:=Noun;r[noun]:=Prm;end
\r
249 else Say(68,'being used')
\r
251 if(noun=63)and(Prm=58)then
\r
252 begin RL(337);KeyHole:=True;r[63]:=Prm;inven:=inven-[63];end
\r
254 88:begin RL(293);vanish(noun);r[noun]:=random(4)+51;end;
\r
255 47,53,73:if(Prm in[0..6,9,10,13,41..43])then
\r
256 begin RL(307);vanish(noun);end;
\r
257 11:if(en('k'))then begin RL(186);Vanish(noun);
\r
258 CabiSet:=CabiSet+[noun];r[noun]:=Prm;end
\r
260 26:if(Prm=76)and(noun=57)then begin RL(409);Vanish(57)end;
\r
261 49:if(PanelCon=Null)and(noun in[2,7,8,13,27,32,51,52,63,77])then
\r
262 begin RL(186);Vanish(noun);PanelCon:=Noun;r[noun]:=Prm;end
\r
265 if not(en('d'))then
\r
266 begin Ev:=Ev+['d'];RL(69);Vanish(70);r[70]:=Prm;end
\r
267 else Say(70,'in the dirt')
\r
271 if(FlagSA<>'s')then
\r
273 if(SepWord='to')then
\r
274 if(noun2 in[4,6,9,11,14,16,22,30,50,59,61,64,65,69,75])then
\r
275 begin RL(186);Vanish(noun);r[noun]:=Prm;end
\r
277 if(SepWord='at')or(SepWord='near')or(SepWord='behind')then
\r
278 if(noun2 in[0,4,6,9,11,12,14,16,17,20..23,26,28,30,35,39,43,
\r
279 50,53,54,59,61,62,64..69,72,73,75,78..80])then
\r
280 begin RL(186);Vanish(noun);r[noun]:=Prm;end
\r
282 if(SepWord='under')then
\r
283 if(noun2 in[4,15,16,20,23,59,60,61,75])then
\r
284 begin RL(186);Vanish(noun);r[noun]:=Prm;end
\r
286 if(SepWord='in')then
\r
287 if(noun2 in[6,16,43,47,30,50,59,64,65,72,78,80,84])then
\r
288 begin RL(186);Vanish(noun);r[noun]:=Prm;end
\r
290 if(FlagSA<>'s')then Crazy;
\r
293 else writeln('First you must have the ',n[noun,1],'.')
\r
297 end; {of DefaultAnswers2}
\r
298 {-------------------}
\r
299 overlay procedure DefaultAnswers3;
\r
305 31,63 :if(Verb=63)and(Prm<>MnRm)then RL(395)
\r
308 begin Attack:=False;
\r
309 if(input='hi')or(input='hello')or(input='bye')then RL(396)else
\r
310 if(copy(input,1,6)='follow')then RL(397)else
\r
312 0:RL(365);1:RL(398);2:RL(399);3:RL(400);4:RL(401)
\r
321 23:begin RL(366);DropAll;Ev:=Ev+['r'];Attack:=False end
\r
325 16 :if(MnRm=Prm)then begin Attack:=False;RL(372)end else
\r
326 if(en('r'))then RL(373)else
\r
327 if(Prm<15)and(70 in p[12])then RL(374)else RL(371);
\r
329 19 :if(noun=Null)then RL(136)else Crazy;
\r
330 24 :if(noun=7)then RL(422)else
\r
331 if(noun in[26,6,7,22,36,17,50,65,73,74,80,79,30,84])then RL(126)
\r
336 8 :if(noun in[73,80])or(noun=Null)then
\r
337 if(noun<>Null)then RL(36)
\r
338 else if(here(73))or(here(80))then RL(36)else RL(37)
\r
342 2 :if(noun in[4,35,39,8,11,12,14,20,21,30,57,43,59,67,70,75])then
\r
345 15 :if(noun in mov)then
\r
346 if(sepword='to')then
\r
348 begin RL(62);Vanish(noun);Attack:=False end
\r
354 begin verbose:=false;RL(134);end
\r
355 else begin verbose:=true;RL(135);end;
\r
366 25 :if(Prm>62)and(Noun in[9,18,19,41])then RL(350)else RL(78);
\r
370 end; {of DefaultAnswers3}
\r
371 {-------------------}
\r
372 overlay procedure DefaultAnswers4;
\r
381 6 :if(noun=23)and(here(40))then begin vanish(40);RL(84);end
\r
384 if(noun2=Null)or(noun2=40)then
\r
388 else writeln('At the last moment you decide to spare',
\r
389 ' the ',n[noun,1],'''s life!')
\r
394 30 :if(noun in [39,43,12,26,6,22,47,49,68,78,17,11,
\r
395 50,65,73,74,80,79,30])then RL(93) else RL(94);
\r
397 54 :begin write('Would you like to SAVE your game first (Y or N)? ');
\r
398 read(kbd,flag);if(upcase(flag)<>'N')then SAVE else writeln('No.');
\r
399 write('Are you still sure you want to quit? ');
\r
400 read(kbd,flag);if(upcase(flag)='Y')then
\r
401 begin RL(367);delay(999);window(1,1,80,25);clrscr;close(rooms1);
\r
402 close(rooms2);close(special1);close(special2);close(line1);
\r
403 HALT end else RL(264)end;
\r
404 53 :if(Prm in[27,30])then RL(123) else RL(145);
\r
405 59 :If(noun=23)then RL(368)else Diagnose;
\r
407 55 :if(noun=74)then
\r
409 begin Ev:=Ev-['p'];RL(169);end
\r
415 Ev:=Ev-['i'];RL(322);
\r
416 if(Prm in[59,63..68])then begin RS(66);DEAD;end;
\r
421 56 :if(noun=Null)or(noun in[60,23])or(noun in Mov)then
\r
432 2:if(en('b'))then RL(236)else RL(237);
\r
437 84,40,50,68,85:RL(242)
\r
441 7 :begin if(noun=Null)then noun:=30;
\r
442 if(noun in[30,36,47,50,71,72,79])then
\r
444 30,47,50,71:if(Prm in[5..22,44..49])then RL(247) else RL(248);
\r
454 end; {of DefaultAnswers4}
\r
455 {-------------------}
\r
456 overlay procedure DefaultAnswers5;
\r
463 if(noun in Inven)then
\r
464 if(noun=74)and(en('p'))then RL(170)
\r
465 else if(noun=89)and(en('i'))then RL(335)
\r
467 inven:=inven-[noun];writeln(n[noun,1],': Dropped.');
\r
471 writeln('You don''t have the ',n[noun,1],'.')
\r
474 if(74 in inven)and(en('p'))then RL(170)else
\r
475 if(89 in inven)and(en('i'))then RL(335)else
\r
480 2:if not(en('b'))then
\r
484 else Say(noun,'peeled');
\r
486 57:if(ropecon<>Null)then
\r
490 else Say(noun,'untied');
\r
493 end; {end of OPEN }
\r
496 end; {of DefaultAnswers5}
\r
497 {-------------------}
\r
498 overlay procedure DefaultAnswers6;
\r
504 28,27 :case noun of
\r
506 29:if not(en('a'))then
\r
507 begin Ev:=Ev+['a'];
\r
509 else begin Ev:=Ev-['a'];
\r
511 57:if(ropecon<>Null)and not(ropecon in inven)
\r
512 and(r[ropecon]<>Prm)then
\r
513 if(ropecon in mov)then begin
\r
514 RL(57);writeln('...it''s a ',n[ropecon,1],'!');
\r
515 r[ropecon]:=Prm;Ev:=Ev-['u'];
\r
516 if(ropecon=29)and not(flasoff)then DescribeRm;end
\r
519 8:begin RL(243);RL(244);play(9999,3500,0);play(3499,2000,1);
\r
520 play(1999,1000,2);play(999,200,5);play(199,8,16);Ev:=Ev+['e'];
\r
521 n[36,5]:=Q;n[78,5]:='glass';n[68,1]:='slot';n[66,4]:=Q;
\r
524 if(MnRm=Prm)then RS(73);
\r
526 81:if not(en('j'))then
\r
528 begin Ev:=Ev+['j'];RL(326);play(2000,2001,200);end
\r
531 begin Ev:=Ev-['j'];
\r
532 if Keyhole then begin RL(326);play(2001,2000,200)end
\r
534 if(Prm in[59..68])then begin nosound;RS(62);DEAD;end;
\r
537 if(Prm > 57)then if(Prm = 58)then RL(123)else
\r
538 begin RS(63);DEAD;end;
\r
543 62 :begin write('You have ',Sc,' of 1000 points',
\r
544 ', giving you the rank of ');Tic:=Tic-1;
\r
546 0..99:writeln('beginner.');
\r
547 100..249:writeln('novice adventurer.');
\r
548 250..399:writeln('adventurer third class.');
\r
549 400..549:writeln('adventurer second class.');
\r
550 550..699:writeln('adventurer first class.');
\r
551 700..849:writeln('expert adventurer.');
\r
552 850..999:writeln('master adventurer.')
\r
553 else writeln('dead adventurer!')
\r
556 if(MnRm=Prm)then RL(370)
\r
560 end; {of DefaultAnswers6}
\r
561 {-------------------}
\r
562 overlay procedure DefaultAnswers7;
\r
568 14 :if(noun<>1)then
\r
569 if(noun in Mov)then
\r
570 if not(noun in inven)then
\r
573 for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;
\r
575 if(en('r'))and(inven<>[])then RL(87)
\r
577 Vanish(Noun);inven:=inven+[noun];
\r
578 writeln(n[noun,1],': Taken.');
\r
579 if(noun=70)then Ev:=Ev-['d'];
\r
583 else writeln('You already have the ',n[noun,1],'.')
\r
585 else if(en('r'))then RL(88) else
\r
586 begin flag:='0';Stuff:=0;
\r
587 for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;
\r
589 for o:=0 to NMax do
\r
592 if(Stuff+1 < 7)then
\r
594 vanish(o);inven:=inven+[o];Stuff:=Stuff+1;
\r
595 writeln(n[o,1],': Taken.');flag:='1';
\r
596 if(o=70)then Ev:=Ev-['d'];
\r
600 writeln(n[o,1],': You have too many objects already!');end
\r
603 if(flag='0')then RL(49)
\r
611 end; {of DefaultAnswers7}
\r
612 {-------------------}
\r
613 overlay procedure DefaultAnswers8;
\r
619 10 :if(noun in [2,52])then
\r
621 if(en('b'))then begin
\r
622 RL(45); Ev:=Ev+['c'];inven:=inven+[51];
\r
623 Vanish(2);Sc:=Sc+10;end
\r
625 else begin RL(47);Ev:=Ev+['n'];Sc:=Sc+15;Vanish(52);end
\r
626 else writeln('I don''t think the ',n[noun,1],
\r
627 ' would do much for your digestive system!');
\r
630 74:if not(en('p'))then
\r
631 if not(en('i'))then
\r
632 begin RL(20);inven:=inven+[74];r[74]:=Null;Ev:=Ev+['p'];end
\r
635 89:if not(en('i'))then
\r
636 if not(en('p'))then
\r
637 begin RL(319);vanish(89);inven:=inven+[89];Ev:=Ev+['i'];end
\r
639 else Say(89,'on your head')
\r
643 17,0 :if(noun2=Noun)then Crazy else
\r
644 if(noun2 in Mov)or(Noun2=Null)then
\r
646 2:begin RL(21);Vanish(2);Sc:=Sc+25;r[51]:=Prm;end;
\r
647 60:begin RL(22);DEAD;end;
\r
648 52:begin RL(34);Vanish(52);end;
\r
649 23:if(noun2=null)then RL(369)
\r
650 else begin Vanish(noun2);Attack:=False;
\r
651 writeln('The monster grabs the ',n[noun2,1],' and eats it!');
\r
653 7:begin RL(35);Vanish(7);r[52]:=Prm;Ev:=Ev+['I'];end
\r
654 else if(verb=0)then writeln('At the last moment you decide to',
\r
655 ' spare the ',n[noun,1],'''s life!')
\r
660 39 :if((SepWord='to')or(SepWord='off'))and(Noun2=Null)then
\r
662 29:if(SepWord='to')then begin Ev:=Ev+['a'];RL(120);end
\r
663 else begin Ev:=Ev-['a'];RL(121);end;
\r
671 end; {of DefaultAnswers8}
\r
672 {-------------------}
\r
673 overlay procedure DefaultAnswers9;
\r
679 32 :if(34 in inven)then
\r
683 for x:=1 to (26-(4*(6-Shots))) do
\r
684 begin play(300,350,11-Shots*2);play(320,370,11-Shots*2);end;
\r
685 if(noun=34)and(noun2<>34)and(noun2<>Null)and(SepWord='at')then
\r
686 begin noun:=noun2; noun2:=34; SepWord:='with';end;
\r
687 if((noun2=34)and(noun<>34)and(SepWord='with'))or
\r
688 ((noun<>34)and(SepWord='s'))then
\r
690 1:begin;Crazy;Shots:=Shots+1;end;
\r
691 2,7,8,13,27,29,32,40,51,52,63,74,77,89:begin vanish(noun);
\r
692 writeln('The ',n[noun,1],' vanishes in an explosion of light!');
\r
693 if(noun=74)and(en('p'))then begin RL(232);DEAD;end;
\r
695 48:begin RL(222);RL(223);Ev:=Ev+['g'];p[40]:=p[40]-[48];
\r
696 if not(en('P'))then begin Ev:=Ev+['P'];Sc:=Sc+25;end;end;
\r
698 23:begin case random(4)of 0:RL(375);1:RL(376);2:RL(377);3:RL(378)end;
\r
702 60,56,44:begin RL(233);DEAD;end
\r
703 else writeln('A blinding ray strikes the ',n[noun,1],', but it is',
\r
704 ' only slightly blackened.');
\r
705 end {of shoot case}
\r
706 else if(noun=34)and(noun2=Null)then RL(213)
\r
707 else begin;Crazy;Shots:=Shots+1;end;
\r
709 else begin writeln('...click!');play(25,32,9);end
\r
713 end; {of DefaultAnswers9}
\r
714 {-------------------}
\r
715 overlay procedure DefaultAnswers10;
\r
721 36 :if(noun in mov)then
\r
722 if(noun in inven)then
\r
723 if((noun in[2,7,52,29])or
\r
724 (noun2 in[2,7,23,29,47,52,53,73,88]))and(noun<>noun2)then
\r
726 if(noun=2)or(noun2=2)then begin RL(95);vanish(2);
\r
728 if(noun=7)or(noun2=7)then begin RL(35);vanish(7);
\r
729 Ev:=Ev+['I'];r[52]:=Prm;end;
\r
730 if(noun=29)or(noun2=29)then begin RL(96);vanish(29);end;
\r
731 if(noun=52)or(noun2=52)then begin RL(34);vanish(52);end;
\r
732 if(noun2=88)then begin RL(293);vanish(noun);
\r
733 if(noun=2)then noun:=51;if(noun=7)then noun:=52;
\r
734 r[noun]:=random(4)+51;end;
\r
735 if(Prm in[0..6,9,10,13,41..43])and(noun2 in[73,53,47])then
\r
736 begin RL(306);vanish(noun);end;
\r
737 if(noun2=23)then begin Attack:=False;Vanish(noun);RL(379);
\r
738 writeln(n[noun,1],' out of mid-flight and eats it',
\r
739 ' in one giant gulp!')end;
\r
741 else begin writeln('The ',n[noun,1],' collides with the ',
\r
742 n[noun2,1],' but nothing interesting happens.');
\r
743 Vanish(noun);r[noun]:=Prm;end
\r
744 else writeln('First you must have the ',n[noun,1],'.')
\r
747 37 :if(noun=57)then
\r
748 if(sepword='to')then
\r
749 if not(noun2 in[1,15,17,22,30,46,47,50,52,72,73,79,80,83])then
\r
750 if(ropecon=Null)then begin
\r
752 writeln('The rope is firmly tied to the ',n[noun2,1],'.');
\r
753 if(noun2=57)then RL(48);end
\r
754 else writeln('It is already tied to the ',n[ropecon,1],'.')
\r
759 61 :begin RL(245);read(kbd,flag);
\r
760 if(upcase(flag)<>'N')then
\r
761 begin RL(380);delay(999);window(1,1,80,25);clrscr;close(rooms1);
\r
762 close(rooms2);close(special1);close(special2);close(line1);
\r
763 assign(rooms1,'BEYOND.com');execute(rooms1)end
\r
770 end; {of DefaultAnswers10}
\r
771 {===================}
\r
772 overlay procedure SpecialAnswers1;
\r
781 20,52 :if(noun=6)then RL(40);
\r
782 14 :if(noun=57)and not(en('o'))then RL(419);
\r
783 6 :if(noun=57)and(here(40))and((noun2=Null)or(noun2=40))then
\r
785 RS(4); tic:=15; moveto(4); Ev:=Ev+['A']; Sc:=Sc+25;
\r
787 for o:= 0 to 57 do begin
\r
788 if(o in kitset)then r[o]:=Prm;
\r
789 if(r[o]=3)then r[o]:=Prm;end
\r
791 26 :if(noun=39)then
\r
792 if not(en('o'))then
\r
793 begin Ev:=Ev+['o'];RL(328); for o:=2 to 57 do
\r
794 if(o in kitset)then r[o]:=Prm;end
\r
795 else Say(noun,'opened');
\r
798 begin Ev:=Ev-['o'];RL(186); for o:=2 to 57 do
\r
799 if(o in kitset)then r[o]:=Null;end
\r
800 else Say(noun,'shut');
\r
801 17,28,27 :if(noun in [6,57,39,59])then RL(29);
\r
802 24,11 :case noun of
\r
803 39 :if(en('o'))then
\r
804 if kitset=[] then begin RL(329);end
\r
805 else begin RL(330);for o:= 0 to 57 do
\r
806 if(o in kitset)then writeln(' a ',n[o,1]);end
\r
816 55 :if(noun=35)then begin RL(332);Ev:=Ev-['B'];end;
\r
817 42,3:if noun=35 then begin RL(8); Ev:=Ev+['B'];end
\r
818 else if(noun=39)then
\r
820 begin Ev:=Ev-['o'];RL(186); for o:=0 to 57 do
\r
821 if(o in kitset)then r[o]:=Null;end
\r
822 else Say(noun,'shut');
\r
823 29,37 :if(noun=35)and(noun2=60)then begin
\r
824 RL(8);Ev:=Ev+['B'];end;
\r
825 26 :if(noun=35)and(en('B'))then begin RL(332);Ev:=Ev-['B'];end
\r
826 else if(noun=39)then
\r
827 if not(en('o'))then
\r
828 begin Ev:=Ev+['o'];RL(328); for o:=0 to 57 do
\r
829 if(o in kitset)then r[o]:=Prm;end
\r
830 else Say(noun,'opened');
\r
831 19,2:if(noun in[6,64])or(noun=Null)then
\r
832 if(en('B'))then RL(9)
\r
833 else begin RL(0);DEAD;end;
\r
835 39 :if(en('o'))then
\r
836 if kitset=[] then begin RL(329);end
\r
837 else begin RL(330);for o:= 0 to 57 do
\r
838 if(o in kitset)then writeln(' a ',n[o,1]);end
\r
849 {-------------------}
\r
850 overlay procedure SpecialAnswers2;
\r
859 2 :if(noun=79)then RL(263);
\r
864 43..52:if FlasOff then RL(14)
\r
866 43:begin Ox:=0;RL(286);moveto(7);end;
\r
867 45:moveto(9); 49:moveto(8);
\r
872 23..25,11:if(noun in[6,36,73,0,15,64,67])then RS(9);
\r
873 43..50 :if FlasOff then RL(14)
\r
876 If(Verb in[43,47,48])then Ox:=Ox+1;
\r
877 If(Verb in[44,49,50])then Ox:=Ox-1;
\r
878 if(Ox<1)then begin RL(286);moveto(6)end
\r
882 if(random(20)=2)then begin writeln;RS(9);
\r
883 if not(en('K'))then begin Ev:=Ev+['K'];Sc:=Sc+15;end;end;
\r
886 28,17,6:if(noun=36)or(noun=15)then begin RS(10);DEAD;end;
\r
887 31 :if(input='help')then begin RL(334);moveto(6)end;
\r
891 48,58:if FlasOff then RL(14) else moveto(6);
\r
892 43..52:if FlasOff then RL(14);
\r
893 11:if(noun in [46,79])then RS(12)
\r
894 else if(noun in [15,30])then RL(28);
\r
895 38 :if(noun=46)then begin SA;writeln('It feels jagged.');end;
\r
899 43..52 :if FlasOff then RL(14)
\r
901 46:moveto(6);47:moveto(10);49:moveto(11);
\r
906 50,58 :if FlasOff then RL(14)
\r
908 43..52:if FlasOff then RL(14);
\r
909 19,2:if(noun in[17,80])then begin RL(0);DEAD;end;
\r
915 {-------------------}
\r
916 overlay procedure SpecialAnswers3;
\r
924 46,48 :if FlasOff then RL(14)
\r
925 else if(verb=46)then moveto(11) else moveto(15);
\r
926 43..52 :if FlasOff then RL(14);
\r
930 52,2 :if(en('d'))and(en('t'))then
\r
931 begin RL(63);moveto(16);end else RL(64);
\r
934 14 :if(noun in[57,70])then begin inven:=inven+[noun];r[noun]:=Null;
\r
935 if(noun=70)then Ev:=Ev-['d']
\r
936 else Ev:=Ev-['t'];SA;writeln(n[noun,1],': Taken.');end;
\r
937 45,49 :if(flasoff)then RL(14) else moveto(14);
\r
939 24,11:if(noun=17)and not(en('u'))then RL(74)
\r
940 else if(noun=17)and(en('a'))then RL(75);
\r
941 17,36,29,9:case noun of
\r
942 70:if((noun2 in[30,42])or(noun2=Null))and(verb<>9)then
\r
943 if not(en('d'))then
\r
944 begin RL(69);Ev:=Ev+['d'];r[70]:=Prm;inven:=inven-[70];end
\r
946 else if(verb=9)then begin end else RL(66);
\r
947 57:if(noun2=17)and(verb<>17)then begin
\r
948 if(here(ropecon))and(ropecon<>57)then begin
\r
949 RL(71);inven:=inven-[57];r[57]:=Prm;
\r
950 if(ropecon=70)then Ev:=Ev+['t'];end
\r
951 else begin RL(70);vanish(57); end;
\r
953 else if(verb in[9,29,36])and(noun2=17)and(noun in mov)then
\r
954 if(here(ropecon))and(noun=ropecon)then begin RL(76);
\r
955 inven:=inven-[noun];r[noun]:=Null;
\r
956 if(ropecon=29)then Ev:=Ev+['u'];end
\r
957 else begin RL(72);inven:=inven-[noun];r[noun]:=17;end
\r
964 0,3..18,20..21,26..40,42,53,55,56,60:RL(86);
\r
965 19,61:begin RS(18);Ev:=Ev-['a'];Ev:=Ev+['r'];Sc:=Sc+60;
\r
966 moveto(17);dropall;if(here(2))then begin r[2]:=Null;
\r
967 r[51]:=Prm;end;r[57]:=Null;end;
\r
973 {-------------------}
\r
974 overlay procedure SpecialAnswers4;
\r
982 48,51,58:if(flasoff)then RL(14)else begin RL(311);moveto(18);end;
\r
983 47,52,57:if(flasoff)then RL(14)else begin RL(309);moveto(20);end;
\r
987 50,51,58:if(flasoff)then RL(14)else begin RL(310);moveto(19);end;
\r
988 11,24,25,23:if(noun=67)then RL(90)
\r
989 else if(noun in[12,43])and not(en('E'))then begin RL(92);
\r
990 r[32]:=20;Sc:=Sc+15;Ev:=Ev+['E'];end;
\r
991 14,38:if(noun in[67,12])then RL(91);
\r
992 43..49,57:if(noun=Null)or(noun in[12,43])then RL(215);
\r
996 50 :if(flasoff)then RL(14)else moveto(18);
\r
997 47 :if(flasoff)then RL(14)else moveto(22);
\r
998 2,51:if(flasoff)then RL(14)else
\r
999 if(noun=64)or(noun=Null)then moveto(23);
\r
1002 11 :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;
\r
1006 50 :if(flasoff)then RL(14)else moveto(21);
\r
1007 2,51 :if(flasoff)then RL(14)else
\r
1008 if(noun=64)or(noun=Null)then moveto(23);
\r
1011 11 :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;
\r
1015 46,50 :if(flasoff)then RL(14)else moveto(21);
\r
1016 43,48 :if(flasoff)then RL(14)else moveto(22);
\r
1018 26,27 :if(noun=26)then
\r
1019 if(en('l'))then Say(26,'open')
\r
1020 else begin RL(98);Ev:=Ev+['l'];p[23]:=p[23]+[69];end;
\r
1021 3 :if(noun=26)then
\r
1022 if(en('l'))then begin RL(171);Ev:=Ev-['l'];p[23]:=p[23]-[69];end
\r
1023 else Say(26,'closed');
\r
1024 2,52,57:if(en('l'))and((noun=69)or(noun=Null))then moveto(24)else RL(99);
\r
1025 24,25 :if(noun=26)then RL(151);
\r
1026 11 :if(noun=26)then if(en('l'))then RL(217)else RL(218)
\r
1027 else if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;
\r
1031 51,58:if(en('l'))then moveto(23) else RL(99);
\r
1033 24,25 :if(noun=26)then RL(151);
\r
1034 3 :if(noun=26)then begin RL(171);Ev:=Ev-['l'];end else
\r
1035 if(noun=55)then RL(411);
\r
1036 2 :if(noun=69)then Moveto(25);
\r
1037 26 :if(noun=26)then begin RL(98);Ev:=Ev+['l'];end else
\r
1038 if(noun=55)then RL(412);
\r
1039 11 :if(noun=26)then if(en('l'))then RL(217)else RL(218)else
\r
1040 if(noun=55)then RL(410);
\r
1041 27,28:If(noun=55)then RL(411);
\r
1047 {-------------------}
\r
1048 overlay procedure SpecialAnswers5;
\r
1056 43:begin writeln('The door slides open...');play(55,70,40);moveto(27);
\r
1057 writeln('The door slides shut behind you.');play(70,55,40);
\r
1058 if not(en('Y'))then begin Ev:=Ev+['Y'];Sc:=Sc+30 end end;
\r
1059 44:moveto(32); 45:moveto(30);
\r
1060 46:moveto(34); 47:moveto(28); 49:moveto(31);
\r
1061 48:if(en('v')and not(en('p')))then begin Verbose:=False;moveto(35);
\r
1062 RS(25);DEAD; end else moveto(35);
\r
1063 50:moveto(33); 51,58:moveto(24);
\r
1064 52,2:if(noun=69)or(noun=Null)then moveto(26);
\r
1065 17,27,28,38:if(noun=26)then
\r
1066 begin RL(413);play(55,70,45);play(69,54,45)end;
\r
1067 26,40:if(noun=26)then RL(414);
\r
1071 44,58:begin writeln('The door slides open...');play(55,70,40);moveto(25);
\r
1072 writeln('The door slides shut behind you.');delay(999);play(70,55,40)
\r
1074 17,27,28,38:if(noun=26)then
\r
1075 begin RL(413);play(30,40,25);play(40,30,25)end;
\r
1076 26,40:if(noun=26)then RL(414);
\r
1077 11 :if(noun in[20,21])then RL(103)
\r
1078 else if(noun=58)then case compcon of
\r
1079 Null:RL(155); 1:RS(21); 2:RS(22); 3:RS(23);
\r
1080 4:begin RS(24);compcon:=Null;gotoxy(1,wherey-1);
\r
1081 writeln('. tim. chamb.r c.de: ',Code,'.. ..tel.port... . .',
\r
1082 '... . .. ime . p.n.l ....... ...');
\r
1083 RL(105);play(29,29,40);end;end;{of case}
\r
1085 if(input='1')or(input='one')then begin RL(104);compcon:=1;end;
\r
1086 if(input='2')or(input='two')then begin RL(104);compcon:=2;end;
\r
1087 if(input='3')or(input='three')then begin RL(104);compcon:=3;end;
\r
1088 if(input='4')or(input='four')then begin RL(104);compcon:=4;end;
\r
1089 for y:=1 to random(40)+9 do
\r
1090 begin x:=random(6000)+99;play(x,x,50);delay(9)end
\r
1092 31 :if(compcon=null)then begin
\r
1093 play(9,999,0);sound(999);RS(20);play(999,9,0);if not(en('J'))then
\r
1094 begin Ev:=Ev+['J'];Sc:=Sc+40;end;end;
\r
1100 28 :if(noun in[33,10])then begin RL(137);play(31,31,450);end;
\r
1105 36 :if(noun2 in[33,10])and(noun in Mov)then
\r
1107 begin RS(27);Ev:=Ev-['M','r'];Vanish(noun);r[noun]:=28;
\r
1108 if not(en('N'))then begin Ev:=Ev+['N'];Sc:=Sc+55;end;
\r
1109 play(28,34,600)end
\r
1110 else begin Vanish(noun);r[noun]:=28;RL(179);
\r
1111 if(noun in[7,8,29,34,40,51])then Ev:=Ev+['M'];end;
\r
1117 28,38:if(noun=10)then begin RL(421);x:=random(9999);case random(3) of
\r
1118 0:play(x,random(9999),random(3));
\r
1119 1:for y:=1 to random(300)+60 do
\r
1120 begin x:=random(9999);play(x,x,2);delay(7)end;
\r
1121 2:begin y:=9999;o:=0;
\r
1122 repeat x:=random(9999);play(x,y,0);
\r
1123 y:=random(9999);play(y,x,0);o:=o+1;
\r
1124 until o>7 end end end
\r
1130 {-------------------}
\r
1131 overlay procedure SpecialAnswers6;
\r
1139 46,58:if(en('e'))then RL(212) else moveto(25);
\r
1140 26,27,28,40:if(noun=49)then if(en('h'))then Say(49,'open') else RL(159)
\r
1142 if(noun in[10,76])and(verb=28)then
\r
1144 if(MnRm=30)then begin RS(76);DEAD;end;
\r
1146 begin RS(29);writeln;
\r
1147 play(1,700,7);play(701,8000,1);Ev:=Ev-['e'];
\r
1149 1933:begin Loc:='Civilization!';Sc:=Sc+80;RS(78);HOME;END;
\r
1151 Verbose:=False;moveto(41);RS(30);Verbose:=True;
\r
1152 if not(en('O'))then begin Sc:=Sc+55;Ev:=Ev+['O'];end;
\r
1153 n[78,5]:=Q;n[37,5]:='glass';n[72,1]:='fence';
\r
1154 n[70,1]:='hooded figure';n[70,2]:='hooded';n[70,3]:='figure';
\r
1155 n[70,4]:='mutant';n[70,5]:=Q;n[3,1]:='footprints';
\r
1156 n[3,2]:='footpri';n[57,1]:='parachute';n[57,2]:='parachu';
\r
1157 n[35,1]:='boulder';n[35,2]:='rock';n[35,3]:='rocks';
\r
1160 0..1111 :begin writeln;RS(31);DEAD;end;
\r
1161 1112..2110:begin writeln;RS(32);DEAD;end;
\r
1162 2680..3789:begin writeln;RS(33);DEAD;end
\r
1163 else begin writeln;RS(34);DEAD;end;
\r
1164 end; {of YearDial case}
\r
1166 else begin RL(209);play(1,9999,0)end;
\r
1168 33 :if(noun in[16,59])or(noun=Null)then begin Ev:=Ev+['e'];RL(210);end;
\r
1169 35 :if(en('e'))then begin Ev:=Ev-['e'];RL(211);Attack:=False end;
\r
1170 17,0,6:if(noun=49)then RL(160);
\r
1171 53 :if(input=Code)then
\r
1172 If(en('h'))then Say(49,'open')
\r
1174 begin Ev:=Ev+['h'];RL(173);play(23,24,250);Sc:=Sc+30;
\r
1175 if(PanelCon<>Null)then begin r[PanelCon]:=30;Code:='R';
\r
1176 writeln('Sitting inside the panel compartment is a ',
\r
1177 n[PanelCon,1],'.');end
\r
1181 3 :If(noun=49)then RL(159);
\r
1182 39 :if(noun=25)then RL(115) else
\r
1184 24:if(DialNum>0)and(DialNum<377)then begin RL(176);DayDial:=DialNum;end
\r
1186 82:if(DialNum>-1)and(DialNum<5000)then begin RL(177);
\r
1187 YearDial:=DialNum;end else RL(178);
\r
1189 11,24:case noun of
\r
1190 49:begin SA;if(en('h'))then if(PanelCon=Null)then RL(183)
\r
1191 else writeln('Inside the compartment is a ',n[PanelCon,1],'.')
\r
1193 82:begin SA;writeln('The year dial is set to ',YearDial,'.');end;
\r
1194 24:begin SA;writeln('The day dial is set to ',DayDial,'.');end;
\r
1195 16:begin RL(203);RL(204)end;
\r
1204 {-------------------}
\r
1205 overlay procedure SpecialAnswers7;
\r
1213 51,58,2:if(noun=69)or(noun=Null)then moveto(25);
\r
1214 43,48 :moveto(36); 44,49 :moveto(38); 45,47 :moveto(39); 46,50 :moveto(37);
\r
1221 62:if(en('v'))then RL(205)else RL(206);
\r
1223 28 :if(noun in[55,10])then
\r
1224 if(en('v'))then begin RL(101);Ev:=Ev-['v'];play(40,65,80)end
\r
1226 begin RL(102); Ev:=Ev+['v'];play(65,40,80);
\r
1227 if not(en('p'))then begin RS(28);DEAD;end
\r
1228 else if(MnRm=35)then
\r
1229 begin n[23,1]:='melted monster';n[23,4]:='melted';MnRm:=Null;
\r
1230 RS(74);p[35]:=p[35]+[77];
\r
1231 if not(en('W'))then begin Sc:=Sc+65;Ev:=Ev+['W'] end
\r
1234 14 :if(noun in[1,77])and(77 in p[35])then begin Sc:=Sc+10;noun:=77;end;
\r
1235 55 :if(noun=74)then
\r
1236 if(en('v'))then begin RS(26);DEAD end;
\r
1241 44,49,58:moveto(26);
\r
1244 57 :if(noun=12)then RL(215);
\r
1248 45,47,58:moveto(26);
\r
1251 57 :if(noun=12)then RL(215);
\r
1255 43,48,58:moveto(26);
\r
1258 57 :if(noun=12)then RL(215);
\r
1259 0..99:if(noun=28)or(noun2=28)then
\r
1260 begin RS(35);RL(220);p[40]:=p[40]+[48];moveto(40);Ev:=Ev-['g'];
\r
1261 if(MnRm=Prm)then begin RS(79);DEAD end
\r
1266 46,50,58:moveto(26);
\r
1267 45 :if(en('g'))then moveto(40);
\r
1268 3 :if(noun=26)then if(en('g'))then RL(225) else Say(26,'shut');
\r
1271 57 :if(noun=12)then RL(215);
\r
1275 46,58 :if(en('g'))then moveto(39) else RL(221);
\r
1276 26 :if(noun=26)then if(en('g'))then Say(26,'open') else RL(221);
\r
1277 3 :if(noun=26)then if(en('g'))then RL(225) else Say(26,'shut');
\r
1278 11,14 :if(noun in[12,43,83])then RL(261);
\r
1284 {-------------------}
\r
1285 overlay procedure SpecialAnswers8;
\r
1295 2,19 :if(noun in[53,73,87])then
\r
1296 begin RS(39);RL(287);moveto(46);Rx:=4;end;
\r
1302 14 :if(noun in[13,1])and(13 in p[42])then
\r
1303 begin Sc:=Sc+10;noun:=13;end;
\r
1304 2,19 :if(noun in[53,73,87])then
\r
1305 begin RS(39);RL(287);moveto(46);Rx:=4;end;
\r
1311 2,19 :if(noun in[53,73,87])then
\r
1312 begin RS(39);RL(287);moveto(46);Rx:=4;end;
\r
1318 45 :begin RL(274);Rx:=0;moveto(46);end;
\r
1319 43..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);
\r
1324 46 :begin RL(274);Rx:=8;moveto(46);end;
\r
1325 45 :begin Rx:=9;RL(274);moveto(46);end;
\r
1326 43..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);
\r
1330 45 :begin Rx:=Rx+1;RL(274);
\r
1331 if(Rx=9)then begin
\r
1332 if not(en('T'))then begin Ev:=Ev+['T'];Sc:=Sc+30;end;
\r
1334 if(Rx>86)then begin RL(340);moveto(47)end
\r
1336 46 :begin Rx:=Rx-1;RL(274);
\r
1337 if(Rx=8)then moveto(45);
\r
1338 if(Rx<1)then moveto(44);
\r
1340 43..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);
\r
1344 46,52,2,19:begin if(random(2)=1)then begin RS(37);DropAll;moveto(48)end
\r
1345 else begin RL(277);moveto(48)end;end;
\r
1351 45,51,2:if(random(3)=2)and(noun<>35)then begin RS(38);moveto(47)end
\r
1352 else if(noun<>35)then RL(279);
\r
1354 14 :if(noun in[27,1])and(27 in p[48])then
\r
1355 begin Sc:=Sc+20;noun:=27;end;
\r
1356 11 :if(noun=35)then RL(289)
\r
1362 {-------------------}
\r
1363 overlay procedure SpecialAnswers9;
\r
1371 43,58 :begin RL(290);moveto(49);end;
\r
1372 44,57 :if(noun=Null)or(noun in[88,26,50])then
\r
1373 begin RS(41);if not(en('L'))then
\r
1374 begin Ev:=Ev+['L'];Sc:=Sc+25;end;moveto(51);end;
\r
1380 30,28,38,17,14:if(noun=88)then RL(294);
\r
1396 52,2,57:if(noun=Null)or(noun=69)then begin if not(en('Q'))then
\r
1397 begin Ev:=Ev+['Q'];Sc:=Sc+30;end;moveto(55);end;
\r
1407 50 :begin if not(en('R'))then
\r
1408 begin Ev:=Ev+['R'];Sc:=Sc+20;end;moveto(56);end;
\r
1412 51,2,58,44:if(noun=Null)or(noun=69)then moveto(53);
\r
1413 11 :if(noun in[11,45])then
\r
1414 begin RL(297);if(en('k'))then RL(298) else RL(299)end;
\r
1415 26,40:if(noun in[45,26,11,68])and(noun2=27)and(SepWord='with')then
\r
1416 if not(en('k'))then
\r
1417 begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do
\r
1418 if(o in cabiset)then r[o]:=55;
\r
1419 if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;
\r
1421 else Say(11,'open')
\r
1422 else if(SepWord='s')then RL(317);
\r
1423 29 :if(noun=27)and(noun2 in[45,26,11,68])and(SepWord='in')then
\r
1424 if not(en('k'))then
\r
1425 begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do
\r
1426 if(o in cabiset)then r[o]:=55;
\r
1427 if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;
\r
1430 3 :if(noun in[45,26,11])then
\r
1432 begin RL(314);play(30,32,30);Ev:=Ev-['k'];
\r
1433 for o:= 2 to NMax do if(o in cabiset)then r[o]:=Null;
\r
1435 else Say(11,'shut & locked');
\r
1436 24,30 :if(noun in[26,11])then
\r
1439 if(cabiset=[])then RL(339)else
\r
1440 for o:=0 to NMax do if(o in Cabiset)then writeln('a ',n[o,1])
\r
1449 {-------------------}
\r
1450 overlay procedure SpecialAnswers10;
\r
1459 2,51,58:if(noun=Null)or(noun=69)then moveto(57);
\r
1463 46,57,2,33:if(noun=Null)or(noun=65)then
\r
1464 begin n[68,1]:='keyhole';n[68,4]:='slot';moveto(58)end;
\r
1470 43..51,20:if(en('i'))and(en('j'))and KeyHole then
\r
1471 begin sound(38);RS(61);ShRm:=2;moveto(59);sound(20);
\r
1472 for o:=0 to NMax do if(r[o]=58)then r[o]:=59;
\r
1473 if not(en('S'))then begin Ev:=Ev+['S'];Sc:=Sc+60 end end else RL(325);
\r
1474 28 :if(noun=10)then noun:=81;
\r
1475 11 :if(noun=68)then if KeyHole then RL(336)else RL(404);
\r
1481 45,57:begin if not(en('w'))then begin Ev:=Ev+['w'];RL(346);end
\r
1482 else begin RL(347);DEAD end end;
\r
1483 46..50:moveto(63);
\r
1484 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
\r
1485 51 :begin sound(38);RL(344);delay(999);sound(20)end;
\r
1486 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
\r
1487 14 :if(noun=63)then begin RS(65);DEAD;end;
\r
1488 28 :if(noun=10)then noun:=81;
\r
1493 46,50 :moveto(65);
\r
1494 45,49 :moveto(67);
\r
1497 57,44 :begin sound(25);if not(en('V'))then begin Ev:=Ev+['V'];Sc:=Sc+30;end;
\r
1498 RS(67);writeln;moveto(69);nosound;
\r
1500 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
\r
1501 51 :begin sound(38);RL(344);delay(999);sound(20)end;
\r
1502 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
\r
1503 14 :if(noun=63)then begin RS(65);DEAD;end;
\r
1504 28 :if(noun=10)then noun:=81;
\r
1508 46 :begin RL(347);DEAD;end;
\r
1509 43,48 :moveto(66);
\r
1510 44,50 :moveto(68);
\r
1511 45..49:moveto(64);
\r
1512 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
\r
1513 51 :begin sound(38);RL(344);delay(999);sound(20)end;
\r
1514 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
\r
1515 14 :if(noun=63)then begin RS(65);DEAD;end;
\r
1516 28 :if(noun=10)then noun:=81;
\r
1522 {-------------------}
\r
1523 overlay procedure SpecialAnswers11;
\r
1535 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
\r
1536 51 :begin sound(38);RL(344);delay(999);sound(20)end;
\r
1537 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
\r
1538 14 :if(noun=63)then begin RS(65);DEAD;end;
\r
1539 28 :if(noun=10)then noun:=81;
\r
1547 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
\r
1548 51 :begin sound(38);RL(344);delay(999);sound(20)end;
\r
1549 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
\r
1550 14 :if(noun=63)then begin RS(65);DEAD;end;
\r
1551 28 :if(noun=10)then noun:=81;
\r
1555 43 :begin RL(347);DEAD;end;
\r
1559 46,48 :moveto(65);
\r
1560 45,47 :moveto(67);
\r
1561 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
\r
1562 51 :begin sound(38);RL(344);delay(999);sound(20)end;
\r
1563 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
\r
1564 14 :if(noun=63)then begin RS(65);DEAD;end;
\r
1565 28 :if(noun=10)then noun:=81;
\r
1569 28,27 :if(noun in[10,21,81,36])then RL(351);
\r
1570 11 :if(noun in[10,21,81,36,20,25])then RL(352)else
\r
1571 if(noun=65)then RL(353);
\r
1572 43,58 :moveto(70);
\r
1576 44,57,2,33:if(noun=Null)or(noun=65)then moveto(69)else
\r
1577 if(noun in[69,50])then moveto(71);
\r
1579 49,52 :moveto(71);
\r
1580 11 :if(noun=65)then RL(353)
\r
1581 else if(noun=68)then if KeyHole then RL(336)else RL(404);
\r
1585 48,51,58:moveto(70);
\r
1587 11 :if(noun=58)then RL(386)else
\r
1588 if(noun=25)then RL(418);
\r
1589 28,27:if(noun in[10,36])then begin RL(387);
\r
1590 for o:=1 to random(12)+4 do play(random(250),random(250),random(30))
\r
1592 39 :if(noun=25)then begin RL(387);
\r
1593 for o:=1 to random(99)+75 do
\r
1594 begin x:=random(9999);play(x,x,random(19)+10);delay(5)end
\r
1601 {-------------------}
\r
1602 overlay procedure SpecialAnswers12;
\r
1610 5,45,47,48,50:if FlasOff then RL(14)
\r
1612 48:moveto(9);47:moveto(13);
\r
1613 5:if(29 in inven)or(40 in inven)or(2 in inven)then
\r
1615 else begin RL(18); moveto(12);end;
\r
1617 45:if(en('C'))then moveto(14) else RL(144);
\r
1619 31 :if(input='nepo egassap')and not(en('C'))then
\r
1620 begin Ev:=Ev+['C']; RS(11);Sc:=Sc+35;end;
\r
1621 11 :if(noun in [79,72])then if(en('C'))then RL(270)else RS(13);
\r
1622 27,28:if(noun in [79,72])then RL(26);
\r
1623 17,0,6:if(noun in [79,72])then RL(27);
\r
1624 38 :if(noun in [79,72])then RL(30);
\r
1628 4,47 :if FlasOff then RL(14)
\r
1630 4:begin RL(18); moveto(11);end;
\r
1633 43..52 :if FlasOff then RL(14);
\r
1634 14 :if(noun in[70,1])and not(en('G'))then
\r
1635 begin noun:=70;Ev:=Ev+['G'];Sc:=Sc+40;end;
\r
1636 7 :if not(en('G'))then begin Ev:=Ev+['G'];RL(157);
\r
1637 FlagSA:='r';verb:=14;noun:=70;Sc:=Sc+40;end;
\r
1641 50 :if flasoff then RL(14)
\r
1642 else begin moveto(11); Ev:=Ev-['q'];end;
\r
1643 43 :if(en('q'))then begin RL(24); DEAD;end
\r
1644 else begin RL(23); Ev:=Ev+['q'];end;
\r
1646 14 :if(noun=47)then RL(25);
\r
1647 9 :begin RL(68);vanish(noun);end;
\r
1652 45 :if(flasoff)then RL(14)else moveto(18);
\r
1656 46 :if(flasoff)then RL(14)else moveto(17);
\r
1657 49,52 :if(flasoff)then RL(14)else begin RL(308);moveto(19);end;
\r
1658 47 :if(flasoff)then RL(14)else
\r
1659 if not(en('F'))then begin RS(19);writeln;moveto(21);
\r
1660 Ev:=Ev+['F'];Sc:=Sc+10;end
\r
1662 11 :if(noun in[79,50])then RL(254);
\r
1668 {-------------------}
\r
1669 overlay procedure SpecialAnswers13;
\r
1679 19,2 :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;
\r
1680 14,27 :if noun=14 then RL(2)else
\r
1681 if(noun in[1,40])and(40 in p[2])then
\r
1682 begin noun:=40;Sc:=Sc+10;Verb:=14;RL(417);FlagSA:='r' end;
\r
1683 11 :if(noun in[66,46])then RL(11);
\r
1684 26 :if noun=14then RL(13);
\r
1689 14 :if not(en('I'))and(noun in[7,1])then
\r
1690 begin Ev:=Ev+['I'];noun:=7;Sc:=Sc+5 end;
\r
1691 23,24,11:if(noun=84)then RL(152)else
\r
1692 if(noun=22)then RL(415);
\r
1697 11,23 :case Noun of
\r
1698 61:if(en('H'))then RL(153) else begin Ev:=Ev+['H'];r[34]:=32;
\r
1699 RL(154);Sc:=Sc+15;end;
\r
1700 end;{of Noun case}
\r
1705 14 :if(noun=74)and(74 in P[34])then begin P[34]:=P[34]-[74];
\r
1706 inven:=inven+[74];RL(138);Sc:=Sc+25;end;
\r
1707 42 :if(noun=74)and(74 in P[34])then RL(175);
\r
1708 28,27:if(noun in[10,36])then begin RL(387);
\r
1709 for o:=1 to random(12)+4 do play(random(250),random(250),random(30))
\r
1711 39 :if(noun=25)then begin RL(387);
\r
1712 for o:=1 to random(99)+75 do
\r
1713 begin x:=random(9999);play(x,x,random(19)+10);delay(5)end
\r
1718 21:begin;RL(140);RL(141);end;
\r
1719 68:if(SlotCon=Null)then RL(143) else
\r
1720 begin SA;writeln('The slot contains a ',n[SlotCon,1],'.')end;
\r
1721 58:if(SlotCon=77)and not(en('x'))then
\r
1722 begin Ev:=Ev+['x'];Sc:=Sc+5;RS(75)end
\r
1723 else if(SlotCon=77)then RS(77)else RL(385)
\r
1729 44 :begin TextColor(m8);writeln('Casino Hall');TextColor(m2);RS(0)end;
\r
1730 19,2 :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;
\r
1731 11 :if(noun=73)then RL(19);
\r
1738 6,17 :if(noun=57)and(here(40))and((noun2=40)or(noun2=Null))then
\r
1739 begin RS(16);Sc:=-500;
\r
1740 Loc:='Locked Cabin';Verbose:=True;inven:=[];KitSet:=KitSet-[57];
\r
1741 n[57,1]:='plastic card';n[57,2]:='card';n[57,3]:='plastic';
\r
1742 n[57,4]:='elevato card';n[57,5]:='elevato';r[57]:=76;moveto(76)
\r
1744 33,19,2 :if(noun in[6,53,64])then moveto(3)
\r
1750 {-------------------}
\r
1751 overlay procedure SpecialAnswers14;
\r
1760 44,57 :begin RL(290);moveto(50);n[36,1]:='lever';n[36,2]:='handle';end;
\r
1762 11 :if(noun in[26,50])then RL(292);
\r
1763 2 :if(noun=72)then RL(312);
\r
1764 11 :if(noun=72)then RL(313);
\r
1768 43..50:begin o:=random(8)+3;writeln('You travel about ',o,' miles...');
\r
1769 if(random(4)=2)then ShRm:=13 else ShRm:=Random(15);moveto(59)end;
\r
1771 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
\r
1772 51 :begin sound(30);
\r
1773 if not(en('U'))then begin RS(64);writeln;Ev:=Ev+['U'];Sc:=Sc+45;end
\r
1774 else RL(349);moveto(63);sound(20)end;
\r
1775 14 :if(noun=63)then begin RS(65);DEAD;end;
\r
1776 28 :if(noun=10)then noun:=81;
\r
1781 43,44,58:moveto(73);
\r
1786 43,45,58:moveto(72);
\r
1788 44 :begin moveto(74);if(MnRm=Null)then RL(356);end;
\r
1792 43,45 :moveto(73);
\r
1793 46,58 :moveto(74);
\r
1794 44 :if(MnRm=Null)then begin Verbose:=False;Moveto(75);Verbose:=True;
\r
1795 RS(69);MnRm:=75;Attack:=False end else moveto(75);
\r
1799 43,58 :moveto(74);
\r
1800 11 :if(noun in[14,61])then RL(364);
\r
1805 11 :if(noun=26)then RL(271)else
\r
1806 if(noun=57)then RL(408);
\r
1812 {===================}
\r
1813 procedure ScreenDraw_PlayerInput;
\r
1815 gotoxy(1,23);writeln;TextColor(m5);write(chr(175),' ');
\r
1816 Window(1,1,80,25);
\r
1817 gotoxy(1,1);textcolor(m4);TextBackGround(m6);
\r
1818 gotoxy(10,1); writeln(Tic,' '); gotoxy(75,1); writeln(Sc,' ');
\r
1819 gotoxy(35-(length(Loc)div 2),1);writeln(' ',Loc,' ');
\r
1820 gotoxy(3,25);TextBackGround(0);Window(1,2,80,25);
\r
1821 textcolor(m1);BufLen:=77;
\r
1822 if(Loc<>'Civilization!')then READLN(LINE)else repeat;until false;
\r
1823 if(Line='r')or(Line='repeat')then Line:=Again
\r
1825 gotoxy(1,23);TextColor(m3);writeln(chr(175));TextColor(m2);
\r
1827 {-------------------}
\r
1833 assign1;assign2;assign3;assign4;assign5;assign6;assign7;assign8;
\r
1836 {*****} repeat {*****}
\r
1838 if Skip then Time; writeln;
\r
1840 if(length(Line)=0)then begin
\r
1841 ScreenDraw_PlayerInput;
\r
1842 while pos(' then ',Line)>0 do
\r
1843 begin x:=pos('then ',Line);delete(Line,x,4);insert('.',Line,x)end;
\r
1848 if(pos('.',Line)>0)then begin
\r
1849 Input:=copy(Line,1,pos('.',Line));
\r
1850 delete(Line,1,pos('.',Line));
\r
1851 delete(Input,pos('.',Input),1);
\r
1858 while pos(' it ',Input)>0 do
\r
1859 begin x:=pos(' it ',Input)+1;delete(Input,x,2);insert(LastNoun,Input,x);
\r
1860 Format(Input);Chop(Input)end;
\r
1861 if(Input[length(Input)]=' ')then delete(Input,length(Input),1);
\r
1867 if Flag = 'g' then
\r
1870 3..4 :SpecialAnswers1;
\r
1871 5..10 :SpecialAnswers2;
\r
1872 14..16 :SpecialAnswers3;
\r
1873 19..24 :SpecialAnswers4;
\r
1874 25,27..29,33 :SpecialAnswers5;
\r
1875 30 :SpecialAnswers6;
\r
1876 26,35..40 :SpecialAnswers7;
\r
1877 41..48 :SpecialAnswers8;
\r
1878 50..55 :SpecialAnswers9;
\r
1879 56..58,60..62,65..67:SpecialAnswers10;
\r
1880 63,64,68..71 :SpecialAnswers11;
\r
1881 11..13,17,18 :SpecialAnswers12;
\r
1882 0..2,31,32,34 :SpecialAnswers13;
\r
1883 49,59,72..76 :SpecialAnswers14
\r
1886 if FlagSA <> 's' then
\r
1888 11,18,22,41,43..52,57,58 :DefaultAnswers1;
\r
1889 29 :DefaultAnswers2;
\r
1890 1,2,8,12,13,15,16,19,21,
\r
1891 23..25,31,33,34,38,40,60,63:DefaultAnswers3;
\r
1892 3,6,7,20,30,35,53..56,59 :DefaultAnswers4;
\r
1893 9,26 :DefaultAnswers5;
\r
1894 27,28,62 :DefaultAnswers6;
\r
1895 14,64,4,5 :DefaultAnswers7;
\r
1896 0,10,17,42,39 :DefaultAnswers8;
\r
1897 32 :DefaultAnswers9;
\r
1898 36,37,61,65 :DefaultAnswers10;
\r
1902 {*****} until False {*****}
\r