+{//-------------------------------------------------------------------------}\r
+{/* }\r
+{Copyright (C) 1990, 2009 - Apogee Software, Ltd. }\r
+{ }\r
+{This file is part of Supernova. Supernova is free software; you can }\r
+{redistribute it and/or modify it under the terms of the GNU General Public }\r
+{License as published by the Free Software Foundation; either version 2 }\r
+{of the License, or (at your option) any later version. }\r
+{ }\r
+{This program is distributed in the hope that it will be useful, }\r
+{but WITHOUT ANY WARRANTY; without even the implied warranty of }\r
+{MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. }\r
+{ }\r
+{See the GNU General Public License for more details. }\r
+{ }\r
+{You should have received a copy of the GNU General Public License }\r
+{along with this program; if not, write to the Free Software }\r
+{Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.}\r
+{ }\r
+{Original Source: 1990 Scott Miller }\r
+{Prepared for public release: 03/19/09 - Joe Siegler, Apogee Software, Ltd. }\r
+{*/ }\r
+{//-------------------------------------------------------------------------}\r
+{****************************************************************************}\r
+{* BEYOND THE TITANIC *}\r
+{* Written by Scott Miller with Turbo Pascal V.2. Began May 12, '84. *}\r
+{* Shareware Version *}\r
+{* Copyright 1987 *}\r
+{$C-,K-,V-,R-****************************************************************}\r
+\r
+{ Last modified: July 23, 1987 }\r
+\r
+const\r
+ Q = '#';\r
+ VMax = 65;\r
+ NMax = 89;\r
+ RMax = 76;\r
+ Null = -1;\r
+\r
+type\r
+ ComSet = set of 0..VMax;\r
+ CharSet = set of Char;\r
+ PlayersObjects = set of 0..NMax;\r
+ Str14 = string[14];\r
+ Str80 = string[80];\r
+ Str240 = string[240];\r
+ SaveGame = record\r
+ aInven,\r
+ aKitSet,\r
+ aCabiSet :PlayersObjects;\r
+ aPanelCon,\r
+ aSlotCon,\r
+ aCompCon,\r
+ aRopeCon,\r
+ aTic,\r
+ aYearDial,\r
+ aPrm,\r
+ aMnRm,\r
+ aSc,\r
+ aShots,\r
+ aShRm,\r
+ aRx :integer;\r
+ aEv :CharSet;\r
+ aCode,\r
+ aLoc :Str14;\r
+ aKeyHole :boolean;\r
+ end;\r
+\r
+var\r
+ WordList : file of Str14;\r
+ Things : file of integer;\r
+ Objects : file of PlayersObjects;\r
+ GameSave : file of SaveGame;\r
+ DiskSave : SaveGame;\r
+ Input,\r
+ Again,\r
+ Line : Str80;\r
+ V{erb} : array [0..VMax,1..5] of Str14;\r
+ N{oun} : array [0..NMax,1..5] of Str14;\r
+ R{oom} : array [0..NMax] of integer;\r
+ P{lace} : array [0..RMax] of PlayersObjects;\r
+ RmSh : set of 0..14;\r
+ OneWordCommands: Comset;\r
+ Mov{able},\r
+ Inven{tory},\r
+ KitSet,\r
+ CabiSet : PlayersObjects;\r
+ Word,\r
+ LastNoun,\r
+ Drive,\r
+ Code,\r
+ Loc{ation},\r
+ SepWord : Str14;\r
+ Rooms1, Rooms2,\r
+ Special1, Special2 : file of Str240;\r
+ Text1, Text2 : Str240;\r
+ Line1 : file of Str80;\r
+ Verb,\r
+ Noun, Noun2,\r
+ PanelCon,\r
+ RopeCon,\r
+ CompCon,\r
+ SlotCon,\r
+ RopeOld,\r
+ Tic,\r
+ YearDial,\r
+ DayDial,\r
+ Prm, {Player Room}\r
+ MnRm, {Monster Room}\r
+ Sc{ore},\r
+ Shots,\r
+ DialNum,\r
+ Stuff,\r
+ ShRm, {Shuttle Room}\r
+ m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,\r
+ Rx, {deserted road}\r
+ Ox, {ocean bottom}\r
+ x, y, o : integer;\r
+ Flag,\r
+ FlagSA : char;\r
+ Ev{ent} : CharSet;\r
+ Attack,\r
+ Skip,\r
+ Back,\r
+ KeyHole,\r
+ Verbose : boolean;\r
+\r
+\r
+\r
+{$Ia:AdParser.PAS}{ <--- Loads in sentence logic. <*********************}\r
+\r
+\r
+{$Ia:Commands.PAS}{ <--- Loads in misc. procedures. <*********************}\r
+\r
+\r
+{$Ia:WordList.PAS }{ <----- CALLS UP THE VERBS & NOUNS <*******************}\r
+\r
+\r
+{$Ia:Objects.PAS }{ <----- CALLS UP THE VERBS & NOUNS <*******************}\r
+\r
+\r
+{===================}\r
+overlay procedure DefaultAnswers1;\r
+var o : integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+22 :begin if(Prm in[59..68])then\r
+ begin RmSh:=RmSh-[ShRm];RS(84)end;\r
+ if flasoff and (Prm in [6..24])then RL(54) else\r
+ if Verbose then DescribeRm\r
+ else begin Verbose:=true;DescribeRm;Verbose:=false;end;\r
+ if(23 in p[Prm])and(MnRm=Prm)then RL(357);\r
+ if Back then begin Attack:=False; Back:=False;end\r
+ end;\r
+\r
+18 :if inven=[] then RL(116)\r
+ else\r
+ begin\r
+ writeln('You have in your possession...');\r
+ for o:= 0 to NMax do\r
+ begin\r
+ if(o in inven)then\r
+ if(o=74)then\r
+ writeln('an ',n[o,1])else writeln('a ',n[o,1]);\r
+ if(ropecon in inven)and(o=ropecon)then\r
+ writeln(' The rope is tied to the ',n[o,1],'.');\r
+ if(o=74)and(en('p'))then RL(174);\r
+ if(o=89)and(en('i'))then RL(321);\r
+ end;\r
+ end;\r
+\r
+11 :case noun of\r
+ 60:Diagnose;\r
+ 2:if(en('b'))then RL(198) else RL(199);\r
+ 29:begin RL(89);if(en('a'))then RL(200) else RL(201);end;\r
+ 57:if(ropecon<>Null)then\r
+ writeln('The rope is tied to the ',n[ropecon,1],'.')\r
+ else RL(133);\r
+ 65:if(Prm in[59..68])then RS(84)else Line:='l';\r
+ 8:RL(202);\r
+ 7:RL(163);\r
+ 70:RL(164);\r
+ 52:RL(165);\r
+ 74:RL(166);\r
+ 23:RS(70);\r
+ 32:RL(253);\r
+ 13:RL(167);\r
+ 22:RL(226);\r
+ 1:if(Prm=42)and(13 in p[42])then RL(167);\r
+ 21:RL(227);\r
+ 9:if(Prm=49)then RL(228)else if(Prm>62)then RS(68)else RL(229);\r
+ 69:RL(355);\r
+ 77:RL(403);\r
+ 37:RL(295);\r
+ 27:RL(394);\r
+ 89:RL(338);\r
+ 18:if(Prm in[63..70])then RS(68)else RL(348);\r
+ 46,66:If(Prm in[58,59,63,69])then begin\r
+ TextColor(12);RS(83);TextColor(m2)end;\r
+ 87:RL(230);\r
+ 84:RL(231);\r
+ 34:begin RL(189);\r
+ if(Shots>0)then writeln('is about ',Shots*10,' percent full.')\r
+ else Writeln('is empty.')end;\r
+ 15:if(84 in p[Prm])then RL(180)else If(71 in p[Prm])then RL(182)\r
+ else RL(181);\r
+ 56,44:if(en('r'))then RL(51) else RL(52)\r
+ else if not(noun in[1,12,14,15,17,18,19,22,31,36,50,\r
+ 54,67,69,73,79,80,84,87,88])and(random(3)=1)then\r
+ case random(3) of\r
+ 0 :RL(407);\r
+ 1 :writeln('Yea, it''s definitely a ',n[noun,1],'!');\r
+ 2 :writeln('It looks like any other ',n[noun,1],'.');\r
+ end\r
+ else writeln('You see nothing special about the ',n[noun,1],'.')\r
+ end;\r
+\r
+41 :begin writeln('Time passes');y:=wherey;for o:=1 to 6 do\r
+ begin gotoxy(11+o,y-1);writeln('.');sound(o*99);delay(30)end;\r
+ if(Prm in[59..68])then sound(20)else nosound end;\r
+\r
+43..52 :if(Prm in[6..24])and(FlasOff)then RL(14)else\r
+ if(Prm=69)then RL(358)else RL(144);\r
+\r
+57,58 :begin Attack:=False;\r
+ if(Prm in[6..24])and(FlasOff)then RL(14)else RL(190);end;\r
+\r
+ end {of case}\r
+end; {of DefaultAnswers1}\r
+{-------------------}\r
+overlay procedure DefaultAnswers2;\r
+var o : integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+29 :if(noun in Mov)then\r
+ if(noun in inven)then\r
+ begin FlagSA:='r';\r
+ case Noun2 of\r
+ 39:if(en('o'))then begin RL(186);Vanish(noun);\r
+ kitset:=kitset+[noun];r[noun]:=Prm;end\r
+ else RL(185);\r
+ 68:if(Prm=34)then\r
+ if(SlotCon=Null)then begin RL(186);Vanish(noun);\r
+ SlotCon:=Noun;r[noun]:=Prm;end\r
+ else Say(68,'being used')\r
+ else\r
+ if(noun=63)and(Prm=58)then\r
+ begin RL(337);KeyHole:=True;r[63]:=Prm;inven:=inven-[63];end\r
+ else RL(327);\r
+ 88:begin RL(293);vanish(noun);r[noun]:=random(4)+51;end;\r
+ 47,53,73:if(Prm in[0..6,9,10,13,41..43])then\r
+ begin RL(307);vanish(noun);end;\r
+ 11:if(en('k'))then begin RL(186);Vanish(noun);\r
+ CabiSet:=CabiSet+[noun];r[noun]:=Prm;end\r
+ else RL(187);\r
+ 26:if(Prm=76)and(noun=57)then begin RL(409);Vanish(57)end;\r
+ 49:if(PanelCon=Null)and(noun in[2,7,8,13,27,32,51,52,63,77])then\r
+ begin RL(186);Vanish(noun);PanelCon:=Noun;r[noun]:=Prm;end\r
+ else RL(188);\r
+ 30:if(noun=70)then\r
+ if not(en('d'))then\r
+ begin Ev:=Ev+['d'];RL(69);Vanish(70);r[70]:=Prm;end\r
+ else Say(70,'in the dirt')\r
+ else Crazy\r
+ end;{of case}\r
+\r
+ if(FlagSA<>'s')then\r
+ begin\r
+ if(SepWord='to')then\r
+ if(noun2 in[4,6,9,11,14,16,22,30,50,59,61,64,65,69,75])then\r
+ begin RL(186);Vanish(noun);r[noun]:=Prm;end\r
+ else RL(197);\r
+ if(SepWord='at')or(SepWord='near')or(SepWord='behind')then\r
+ if(noun2 in[0,4,6,9,11,12,14,16,17,20..23,26,28,30,35,39,43,\r
+ 50,53,54,59,61,62,64..69,72,73,75,78..80])then\r
+ begin RL(186);Vanish(noun);r[noun]:=Prm;end\r
+ else RL(197);\r
+ if(SepWord='under')then\r
+ if(noun2 in[4,15,16,20,23,59,60,61,75])then\r
+ begin RL(186);Vanish(noun);r[noun]:=Prm;end\r
+ else RL(197);\r
+ if(SepWord='in')then\r
+ if(noun2 in[6,16,43,47,30,50,59,64,65,72,78,80,84])then\r
+ begin RL(186);Vanish(noun);r[noun]:=Prm;end\r
+ else RL(197);\r
+ if(FlagSA<>'s')then Crazy;\r
+ end\r
+ end\r
+ else writeln('First you must have the ',n[noun,1],'.')\r
+ else Crazy;\r
+\r
+ end {of case}\r
+end; {of DefaultAnswers2}\r
+{-------------------}\r
+overlay procedure DefaultAnswers3;\r
+var o : integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+31,63 :if(Verb=63)and(Prm<>MnRm)then RL(395)\r
+ else\r
+ if(Prm=MnRm)then\r
+ begin Attack:=False;\r
+ if(input='hi')or(input='hello')or(input='bye')then RL(396)else\r
+ if(copy(input,1,6)='follow')then RL(397)else\r
+ case random(5) of\r
+ 0:RL(365);1:RL(398);2:RL(399);3:RL(400);4:RL(401)\r
+ end\r
+ end\r
+ else RL(123);\r
+\r
+33 :RL(124);\r
+\r
+38 :case noun of\r
+ 83:RL(262);\r
+ 23:begin RL(366);DropAll;Ev:=Ev+['r'];Attack:=False end\r
+ else RL(125);\r
+ end;\r
+\r
+16 :if(MnRm=Prm)then begin Attack:=False;RL(372)end else\r
+ if(en('r'))then RL(373)else\r
+ if(Prm<15)and(70 in p[12])then RL(374)else RL(371);\r
+\r
+19 :if(noun=Null)then RL(136)else Crazy;\r
+24 :if(noun=7)then RL(422)else\r
+ if(noun in[26,6,7,22,36,17,50,65,73,74,80,79,30,84])then RL(126)\r
+ else Crazy;\r
+21 :RL(127);\r
+40 :Crazy;\r
+\r
+8 :if(noun in[73,80])or(noun=Null)then\r
+ if(noun<>Null)then RL(36)\r
+ else if(here(73))or(here(80))then RL(36)else RL(37)\r
+ else RL(53);\r
+\r
+12 :RL(38);\r
+2 :if(noun in[4,35,39,8,11,12,14,20,21,30,57,43,59,67,70,75])then\r
+ RL(43)else RL(44);\r
+\r
+15 :if(noun in mov)then\r
+ if(sepword='to')then\r
+ if(noun2=23)then\r
+ begin RL(62);Vanish(noun);Attack:=False end\r
+ else Crazy\r
+ else RL(60)\r
+ else RL(61);\r
+\r
+1 :if(verbose)then\r
+ begin verbose:=false;RL(134);end\r
+ else begin verbose:=true;RL(135);end;\r
+\r
+13 :RL(77);\r
+23 :RL(78);\r
+\r
+60 :case noun of\r
+ 43,12:RL(252);\r
+ 35:RL(288)\r
+ else RL(78);\r
+ end;\r
+\r
+25 :if(Prm>62)and(Noun in[9,18,19,41])then RL(350)else RL(78);\r
+34 :RL(79);\r
+\r
+ end {of case}\r
+end; {of DefaultAnswers3}\r
+{-------------------}\r
+overlay procedure DefaultAnswers4;\r
+var o : integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+20 :RL(81);\r
+35 :RL(82);\r
+\r
+6 :if(noun=23)and(here(40))then begin vanish(40);RL(84);end\r
+ else\r
+ if here(40)then\r
+ if(noun2=Null)or(noun2=40)then\r
+ case noun of\r
+ 57:RL(259);\r
+ 60:RL(260)\r
+ else writeln('At the last moment you decide to spare',\r
+ ' the ',n[noun,1],'''s life!')\r
+ end\r
+ else Crazy\r
+ else RL(83);\r
+\r
+30 :if(noun in [39,43,12,26,6,22,47,49,68,78,17,11,\r
+ 50,65,73,74,80,79,30])then RL(93) else RL(94);\r
+\r
+54 :begin write('Would you like to SAVE your game first (Y or N)? ');\r
+ read(kbd,flag);if(upcase(flag)<>'N')then SAVE else writeln('No.');\r
+ write('Are you still sure you want to quit? ');\r
+ read(kbd,flag);if(upcase(flag)='Y')then\r
+ begin RL(367);delay(999);window(1,1,80,25);clrscr;close(rooms1);\r
+ close(rooms2);close(special1);close(special2);close(line1);\r
+ HALT end else RL(264)end;\r
+53 :if(Prm in[27,30])then RL(123) else RL(145);\r
+59 :If(noun=23)then RL(368)else Diagnose;\r
+\r
+55 :if(noun=74)then\r
+ if(en('p'))then\r
+ begin Ev:=Ev-['p'];RL(169);end\r
+ else RL(168)\r
+ else\r
+ if(noun=89)then\r
+ if(en('i'))then\r
+ begin\r
+ Ev:=Ev-['i'];RL(322);\r
+ if(Prm in[59,63..68])then begin RS(66);DEAD;end;\r
+ end\r
+ else RL(323)\r
+ else Crazy;\r
+\r
+56 :if(noun=Null)or(noun in[60,23])or(noun in Mov)then\r
+ case noun of\r
+ 23:RL(369);\r
+ 60,Null:RL(193);\r
+ 7:RL(194)\r
+ else RL(195);\r
+ end\r
+ else RL(196);\r
+\r
+3 :case noun of\r
+ 7:RL(235);\r
+ 2:if(en('b'))then RL(236)else RL(237);\r
+ 62:RL(238);\r
+ 65:RL(239);\r
+ 74:RL(240);\r
+ 78:RL(241);\r
+ 84,40,50,68,85:RL(242)\r
+ else Crazy;\r
+ end;\r
+\r
+7 :begin if(noun=Null)then noun:=30;\r
+ if(noun in[30,36,47,50,71,72,79])then\r
+ case noun of\r
+ 30,47,50,71:if(Prm in[5..22,44..49])then RL(247) else RL(248);\r
+ 36:RL(249);\r
+ 72:RL(250);\r
+ 79:RL(251);\r
+ end\r
+ else Crazy;\r
+ end;\r
+\r
+\r
+ end {of CASE.}\r
+end; {of DefaultAnswers4}\r
+{-------------------}\r
+overlay procedure DefaultAnswers5;\r
+var o: integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+9 :if noun<>1 then\r
+ if(noun in Inven)then\r
+ if(noun=74)and(en('p'))then RL(170)\r
+ else if(noun=89)and(en('i'))then RL(335)\r
+ else begin\r
+ inven:=inven-[noun];writeln(n[noun,1],': Dropped.');\r
+ R[noun]:=Prm;\r
+ end\r
+ else\r
+ writeln('You don''t have the ',n[noun,1],'.')\r
+ else\r
+ begin\r
+ if(74 in inven)and(en('p'))then RL(170)else\r
+ if(89 in inven)and(en('i'))then RL(335)else\r
+ DropAll;\r
+ end;\r
+\r
+26 :case noun of\r
+ 2:if not(en('b'))then\r
+ begin\r
+ Ev:=Ev+['b'];\r
+ RL(3);end\r
+ else Say(noun,'peeled');\r
+ 7:RL(162);\r
+ 57:if(ropecon<>Null)then\r
+ begin\r
+ ropecon:=Null;\r
+ RL(117);end\r
+ else Say(noun,'untied');\r
+ 62:RL(238)\r
+ else Crazy;\r
+ end; {end of OPEN }\r
+\r
+ end {of case}\r
+end; {of DefaultAnswers5}\r
+{-------------------}\r
+overlay procedure DefaultAnswers6;\r
+var o : integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+28,27 :case noun of\r
+ 23:RL(369);\r
+ 29:if not(en('a'))then\r
+ begin Ev:=Ev+['a'];\r
+ RL(120);end\r
+ else begin Ev:=Ev-['a'];\r
+ RL(121);end;\r
+ 57:if(ropecon<>Null)and not(ropecon in inven)\r
+ and(r[ropecon]<>Prm)then\r
+ if(ropecon in mov)then begin\r
+ RL(57);writeln('...it''s a ',n[ropecon,1],'!');\r
+ r[ropecon]:=Prm;Ev:=Ev-['u'];\r
+ if(ropecon=29)and not(flasoff)then DescribeRm;end\r
+ else RL(56)\r
+ else RL(122);\r
+ 8:begin RL(243);RL(244);play(9999,3500,0);play(3499,2000,1);\r
+ play(1999,1000,2);play(999,200,5);play(199,8,16);Ev:=Ev+['e'];\r
+ n[36,5]:=Q;n[78,5]:='glass';n[68,1]:='slot';n[66,4]:=Q;\r
+ Ev:=Ev-['j'];\r
+ moveto(30);\r
+ if(MnRm=Prm)then RS(73);\r
+ end;\r
+ 81:if not(en('j'))then\r
+ if KeyHole then\r
+ begin Ev:=Ev+['j'];RL(326);play(2000,2001,200);end\r
+ else RL(123)\r
+ else\r
+ begin Ev:=Ev-['j'];\r
+ if Keyhole then begin RL(326);play(2001,2000,200)end\r
+ else RL(123);\r
+ if(Prm in[59..68])then begin nosound;RS(62);DEAD;end;\r
+ end;\r
+ 36:begin\r
+ if(Prm > 57)then if(Prm = 58)then RL(123)else\r
+ begin RS(63);DEAD;end;\r
+ end\r
+ else RL(122);\r
+ end; {of case}\r
+\r
+62 :begin write('You have ',Sc,' of 1000 points',\r
+ ', giving you the rank of ');Tic:=Tic-1;\r
+ case Sc of\r
+ 0..99:writeln('beginner.');\r
+ 100..249:writeln('novice adventurer.');\r
+ 250..399:writeln('adventurer third class.');\r
+ 400..549:writeln('adventurer second class.');\r
+ 550..699:writeln('adventurer first class.');\r
+ 700..849:writeln('expert adventurer.');\r
+ 850..999:writeln('master adventurer.')\r
+ else writeln('dead adventurer!')\r
+ end;\r
+ Attack:=False;\r
+ if(MnRm=Prm)then RL(370)\r
+ end;\r
+\r
+ end {of case}\r
+end; {of DefaultAnswers6}\r
+{-------------------}\r
+overlay procedure DefaultAnswers7;\r
+var o : integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+14 :if(noun<>1)then\r
+ if(noun in Mov)then\r
+ if not(noun in inven)then\r
+ begin\r
+ Stuff:=0;\r
+ for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;\r
+ if(Stuff < 6)then\r
+ if(en('r'))and(inven<>[])then RL(87)\r
+ else begin\r
+ Vanish(Noun);inven:=inven+[noun];\r
+ writeln(n[noun,1],': Taken.');\r
+ if(noun=70)then Ev:=Ev-['d'];\r
+ end\r
+ else RL(234)\r
+ end\r
+ else writeln('You already have the ',n[noun,1],'.')\r
+ else Crazy\r
+ else if(en('r'))then RL(88) else\r
+ begin flag:='0';Stuff:=0;\r
+ for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;\r
+ if(Stuff < 7)then\r
+ for o:=0 to NMax do\r
+ begin\r
+ if r[o]=Prm then\r
+ if(Stuff+1 < 7)then\r
+ begin\r
+ vanish(o);inven:=inven+[o];Stuff:=Stuff+1;\r
+ writeln(n[o,1],': Taken.');flag:='1';\r
+ if(o=70)then Ev:=Ev-['d'];\r
+ end\r
+ else\r
+ begin flag:='1';\r
+ writeln(n[o,1],': You have too many objects already!');end\r
+ end\r
+ else RL(234);\r
+ if(flag='0')then RL(49)\r
+ end; {of 14}\r
+\r
+4,5 :RL(420);\r
+\r
+64 :SAVE;\r
+\r
+ end {of case}\r
+end; {of DefaultAnswers7}\r
+{-------------------}\r
+overlay procedure DefaultAnswers8;\r
+var o : integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+10 :if(noun in [2,52])then\r
+ if(noun=2)then\r
+ if(en('b'))then begin\r
+ RL(45); Ev:=Ev+['c'];inven:=inven+[51];\r
+ Vanish(2);Sc:=Sc+10;end\r
+ else RL(46)\r
+ else begin RL(47);Ev:=Ev+['n'];Sc:=Sc+15;Vanish(52);end\r
+ else writeln('I don''t think the ',n[noun,1],\r
+ ' would do much for your digestive system!');\r
+\r
+42 :case noun of\r
+ 74:if not(en('p'))then\r
+ if not(en('i'))then\r
+ begin RL(20);inven:=inven+[74];r[74]:=Null;Ev:=Ev+['p'];end\r
+ else RL(320)\r
+ else Say(74,'on');\r
+ 89:if not(en('i'))then\r
+ if not(en('p'))then\r
+ begin RL(319);vanish(89);inven:=inven+[89];Ev:=Ev+['i'];end\r
+ else RL(318)\r
+ else Say(89,'on your head')\r
+ else RL(128);\r
+ end;\r
+\r
+17,0 :if(noun2=Noun)then Crazy else\r
+ if(noun2 in Mov)or(Noun2=Null)then\r
+ case Noun of\r
+ 2:begin RL(21);Vanish(2);Sc:=Sc+25;r[51]:=Prm;end;\r
+ 60:begin RL(22);DEAD;end;\r
+ 52:begin RL(34);Vanish(52);end;\r
+ 23:if(noun2=null)then RL(369)\r
+ else begin Vanish(noun2);Attack:=False;\r
+ writeln('The monster grabs the ',n[noun2,1],' and eats it!');\r
+ end;\r
+ 7:begin RL(35);Vanish(7);r[52]:=Prm;Ev:=Ev+['I'];end\r
+ else if(verb=0)then writeln('At the last moment you decide to',\r
+ ' spare the ',n[noun,1],'''s life!')\r
+ else RL(216);\r
+ end{of case}\r
+ else Crazy;\r
+\r
+39 :if((SepWord='to')or(SepWord='off'))and(Noun2=Null)then\r
+ case Noun of\r
+ 29:if(SepWord='to')then begin Ev:=Ev+['a'];RL(120);end\r
+ else begin Ev:=Ev-['a'];RL(121);end;\r
+ 13:RL(148);\r
+ 20:RL(149);\r
+ 65:RL(150)\r
+ else Crazy end\r
+ else RL(80);\r
+\r
+ end {of case}\r
+end; {of DefaultAnswers8}\r
+{-------------------}\r
+overlay procedure DefaultAnswers9;\r
+var o : integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+32 :if(34 in inven)then\r
+ if(shots>0)then\r
+ begin\r
+ Shots:=Shots-1;\r
+ for x:=1 to (26-(4*(6-Shots))) do\r
+ begin play(300,350,11-Shots*2);play(320,370,11-Shots*2);end;\r
+ if(noun=34)and(noun2<>34)and(noun2<>Null)and(SepWord='at')then\r
+ begin noun:=noun2; noun2:=34; SepWord:='with';end;\r
+ if((noun2=34)and(noun<>34)and(SepWord='with'))or\r
+ ((noun<>34)and(SepWord='s'))then\r
+ case noun of\r
+ 1:begin;Crazy;Shots:=Shots+1;end;\r
+ 2,7,8,13,27,29,32,40,51,52,63,74,77,89:begin vanish(noun);\r
+ writeln('The ',n[noun,1],' vanishes in an explosion of light!');\r
+ if(noun=74)and(en('p'))then begin RL(232);DEAD;end;\r
+ end;\r
+ 48:begin RL(222);RL(223);Ev:=Ev+['g'];p[40]:=p[40]-[48];\r
+ if not(en('P'))then begin Ev:=Ev+['P'];Sc:=Sc+25;end;end;\r
+ 12,26:RL(224);\r
+ 23:begin case random(4)of 0:RL(375);1:RL(376);2:RL(377);3:RL(378)end;\r
+ Attack:=False;\r
+ end;\r
+ 45:RL(315);\r
+ 60,56,44:begin RL(233);DEAD;end\r
+ else writeln('A blinding ray strikes the ',n[noun,1],', but it is',\r
+ ' only slightly blackened.');\r
+ end {of shoot case}\r
+ else if(noun=34)and(noun2=Null)then RL(213)\r
+ else begin;Crazy;Shots:=Shots+1;end;\r
+ end\r
+ else begin writeln('...click!');play(25,32,9);end\r
+ else RL(208);\r
+\r
+ end {of case}\r
+end; {of DefaultAnswers9}\r
+{-------------------}\r
+overlay procedure DefaultAnswers10;\r
+var o : integer;\r
+begin\r
+\r
+CASE VERB OF\r
+\r
+36 :if(noun in mov)then\r
+ if(noun in inven)then\r
+ if((noun in[2,7,52,29])or\r
+ (noun2 in[2,7,23,29,47,52,53,73,88]))and(noun<>noun2)then\r
+ begin\r
+ if(noun=2)or(noun2=2)then begin RL(95);vanish(2);\r
+ r[51]:=Prm;end;\r
+ if(noun=7)or(noun2=7)then begin RL(35);vanish(7);\r
+ Ev:=Ev+['I'];r[52]:=Prm;end;\r
+ if(noun=29)or(noun2=29)then begin RL(96);vanish(29);end;\r
+ if(noun=52)or(noun2=52)then begin RL(34);vanish(52);end;\r
+ if(noun2=88)then begin RL(293);vanish(noun);\r
+ if(noun=2)then noun:=51;if(noun=7)then noun:=52;\r
+ r[noun]:=random(4)+51;end;\r
+ if(Prm in[0..6,9,10,13,41..43])and(noun2 in[73,53,47])then\r
+ begin RL(306);vanish(noun);end;\r
+ if(noun2=23)then begin Attack:=False;Vanish(noun);RL(379);\r
+ writeln(n[noun,1],' out of mid-flight and eats it',\r
+ ' in one giant gulp!')end;\r
+ end\r
+ else begin writeln('The ',n[noun,1],' collides with the ',\r
+ n[noun2,1],' but nothing interesting happens.');\r
+ Vanish(noun);r[noun]:=Prm;end\r
+ else writeln('First you must have the ',n[noun,1],'.')\r
+ else Crazy;\r
+\r
+37 :if(noun=57)then\r
+ if(sepword='to')then\r
+ if not(noun2 in[1,15,17,22,30,46,47,50,52,72,73,79,80,83])then\r
+ if(ropecon=Null)then begin\r
+ ropecon:=noun2;\r
+ writeln('The rope is firmly tied to the ',n[noun2,1],'.');\r
+ if(noun2=57)then RL(48);end\r
+ else writeln('It is already tied to the ',n[ropecon,1],'.')\r
+ else RL(50)\r
+ else Crazy\r
+ else Crazy;\r
+\r
+61 :begin RL(245);read(kbd,flag);\r
+ if(upcase(flag)<>'N')then\r
+ begin RL(380);delay(999);window(1,1,80,25);clrscr;close(rooms1);\r
+ close(rooms2);close(special1);close(special2);close(line1);\r
+ assign(rooms1,'BEYOND.com');execute(rooms1)end\r
+ else RL(264)\r
+ end;\r
+\r
+65 :RESTORE;\r
+\r
+ end {of case}\r
+end; {of DefaultAnswers10}\r
+{===================}\r
+overlay procedure SpecialAnswers1;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+CASE Prm OF\r
+\r
+3 :case verb of\r
+ 44,58 :moveto(1);\r
+ 20,52 :if(noun=6)then RL(40);\r
+ 14 :if(noun=57)and not(en('o'))then RL(419);\r
+ 6 :if(noun=57)and(here(40))and((noun2=Null)or(noun2=40))then\r
+ begin\r
+ RS(4); tic:=15; moveto(4); Ev:=Ev+['A']; Sc:=Sc+25;\r
+ if(en('o'))then\r
+ for o:= 0 to 57 do begin\r
+ if(o in kitset)then r[o]:=Prm;\r
+ if(r[o]=3)then r[o]:=Prm;end\r
+ end;\r
+ 26 :if(noun=39)then\r
+ if not(en('o'))then\r
+ begin Ev:=Ev+['o'];RL(328); for o:=2 to 57 do\r
+ if(o in kitset)then r[o]:=Prm;end\r
+ else Say(noun,'opened');\r
+ 3 :if(noun=39)then\r
+ if(en('o'))then\r
+ begin Ev:=Ev-['o'];RL(186); for o:=2 to 57 do\r
+ if(o in kitset)then r[o]:=Null;end\r
+ else Say(noun,'shut');\r
+ 17,28,27 :if(noun in [6,57,39,59])then RL(29);\r
+ 24,11 :case noun of\r
+ 39 :if(en('o'))then\r
+ if kitset=[] then begin RL(329);end\r
+ else begin RL(330);for o:= 0 to 57 do\r
+ if(o in kitset)then writeln(' a ',n[o,1]);end\r
+ else RL(331);\r
+ 57 :RL(10);\r
+ 73 :RL(19);\r
+ 6 :DescribeRm;\r
+ end;\r
+ end; {of 3}\r
+\r
+4 :case verb of\r
+ 43..52,20:RL(7);\r
+ 55 :if(noun=35)then begin RL(332);Ev:=Ev-['B'];end;\r
+ 42,3:if noun=35 then begin RL(8); Ev:=Ev+['B'];end\r
+ else if(noun=39)then\r
+ if(en('o'))then\r
+ begin Ev:=Ev-['o'];RL(186); for o:=0 to 57 do\r
+ if(o in kitset)then r[o]:=Null;end\r
+ else Say(noun,'shut');\r
+ 29,37 :if(noun=35)and(noun2=60)then begin\r
+ RL(8);Ev:=Ev+['B'];end;\r
+ 26 :if(noun=35)and(en('B'))then begin RL(332);Ev:=Ev-['B'];end\r
+ else if(noun=39)then\r
+ if not(en('o'))then\r
+ begin Ev:=Ev+['o'];RL(328); for o:=0 to 57 do\r
+ if(o in kitset)then r[o]:=Prm;end\r
+ else Say(noun,'opened');\r
+ 19,2:if(noun in[6,64])or(noun=Null)then\r
+ if(en('B'))then RL(9)\r
+ else begin RL(0);DEAD;end;\r
+ 24,11:case noun of\r
+ 39 :if(en('o'))then\r
+ if kitset=[] then begin RL(329);end\r
+ else begin RL(330);for o:= 0 to 57 do\r
+ if(o in kitset)then writeln(' a ',n[o,1]);end\r
+ else RL(331);\r
+ 35 :RL(12);\r
+ 73 :RL(19);\r
+ 6 :DescribeRm;\r
+ end; {of case}\r
+ end; {of 4}\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP1}\r
+{-------------------}\r
+overlay procedure SpecialAnswers2;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+5 :case verb of\r
+ 45 :moveto(6);\r
+ 2 :if(noun=79)then RL(263);\r
+ end;\r
+\r
+6 :case verb of\r
+ 46 :moveto(5);\r
+ 43..52:if FlasOff then RL(14)\r
+ else case verb of\r
+ 43:begin Ox:=0;RL(286);moveto(7);end;\r
+ 45:moveto(9); 49:moveto(8);\r
+ end;\r
+ end; {of 6}\r
+\r
+7 :case verb of\r
+ 23..25,11:if(noun in[6,36,73,0,15,64,67])then RS(9);\r
+ 43..50 :if FlasOff then RL(14)\r
+ else\r
+ begin\r
+ If(Verb in[43,47,48])then Ox:=Ox+1;\r
+ If(Verb in[44,49,50])then Ox:=Ox-1;\r
+ if(Ox<1)then begin RL(286);moveto(6)end\r
+ else\r
+ begin\r
+ RL(333);\r
+ if(random(20)=2)then begin writeln;RS(9);\r
+ if not(en('K'))then begin Ev:=Ev+['K'];Sc:=Sc+15;end;end;\r
+ end;\r
+ end;\r
+ 28,17,6:if(noun=36)or(noun=15)then begin RS(10);DEAD;end;\r
+ 31 :if(input='help')then begin RL(334);moveto(6)end;\r
+ end; {of 7}\r
+\r
+8 :case verb of\r
+ 48,58:if FlasOff then RL(14) else moveto(6);\r
+ 43..52:if FlasOff then RL(14);\r
+ 11:if(noun in [46,79])then RS(12)\r
+ else if(noun in [15,30])then RL(28);\r
+ 38 :if(noun=46)then begin SA;writeln('It feels jagged.');end;\r
+ end; {of 8}\r
+\r
+9 :case verb of\r
+ 43..52 :if FlasOff then RL(14)\r
+ else case verb of\r
+ 46:moveto(6);47:moveto(10);49:moveto(11);\r
+ end;\r
+ end; {of 9}\r
+\r
+10 :case verb of\r
+ 50,58 :if FlasOff then RL(14)\r
+ else moveto(9);\r
+ 43..52:if FlasOff then RL(14);\r
+ 19,2:if(noun in[17,80])then begin RL(0);DEAD;end;\r
+ end; {of 10}\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP2}\r
+{-------------------}\r
+overlay procedure SpecialAnswers3;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+14 :case verb of\r
+ 46,48 :if FlasOff then RL(14)\r
+ else if(verb=46)then moveto(11) else moveto(15);\r
+ 43..52 :if FlasOff then RL(14);\r
+ end; {of 14}\r
+\r
+15 :case Verb of\r
+ 52,2 :if(en('d'))and(en('t'))then\r
+ begin RL(63);moveto(16);end else RL(64);\r
+ 19 :RL(64);\r
+ 7 :RL(65);\r
+ 14 :if(noun in[57,70])then begin inven:=inven+[noun];r[noun]:=Null;\r
+ if(noun=70)then Ev:=Ev-['d']\r
+ else Ev:=Ev-['t'];SA;writeln(n[noun,1],': Taken.');end;\r
+ 45,49 :if(flasoff)then RL(14) else moveto(14);\r
+ 44 :RL(73);\r
+ 24,11:if(noun=17)and not(en('u'))then RL(74)\r
+ else if(noun=17)and(en('a'))then RL(75);\r
+ 17,36,29,9:case noun of\r
+ 70:if((noun2 in[30,42])or(noun2=Null))and(verb<>9)then\r
+ if not(en('d'))then\r
+ begin RL(69);Ev:=Ev+['d'];r[70]:=Prm;inven:=inven-[70];end\r
+ else RL(67)\r
+ else if(verb=9)then begin end else RL(66);\r
+ 57:if(noun2=17)and(verb<>17)then begin\r
+ if(here(ropecon))and(ropecon<>57)then begin\r
+ RL(71);inven:=inven-[57];r[57]:=Prm;\r
+ if(ropecon=70)then Ev:=Ev+['t'];end\r
+ else begin RL(70);vanish(57); end;\r
+ end else begin end\r
+ else if(verb in[9,29,36])and(noun2=17)and(noun in mov)then\r
+ if(here(ropecon))and(noun=ropecon)then begin RL(76);\r
+ inven:=inven-[noun];r[noun]:=Null;\r
+ if(ropecon=29)then Ev:=Ev+['u'];end\r
+ else begin RL(72);inven:=inven-[noun];r[noun]:=17;end\r
+ end;{of noun case}\r
+ end;{of 15}\r
+\r
+16 :case verb of\r
+ 51,2 :moveto(15);\r
+ 52 :RL(85);\r
+ 0,3..18,20..21,26..40,42,53,55,56,60:RL(86);\r
+ 19,61:begin RS(18);Ev:=Ev-['a'];Ev:=Ev+['r'];Sc:=Sc+60;\r
+ moveto(17);dropall;if(here(2))then begin r[2]:=Null;\r
+ r[51]:=Prm;end;r[57]:=Null;end;\r
+ end;{of 57}\r
+\r
+end {of Case}\r
+else SA\r
+end; {of SP3}\r
+{-------------------}\r
+overlay procedure SpecialAnswers4;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+19 :case verb of\r
+ 48,51,58:if(flasoff)then RL(14)else begin RL(311);moveto(18);end;\r
+ 47,52,57:if(flasoff)then RL(14)else begin RL(309);moveto(20);end;\r
+ end;{of stairs}\r
+\r
+20 :case verb of\r
+ 50,51,58:if(flasoff)then RL(14)else begin RL(310);moveto(19);end;\r
+ 11,24,25,23:if(noun=67)then RL(90)\r
+ else if(noun in[12,43])and not(en('E'))then begin RL(92);\r
+ r[32]:=20;Sc:=Sc+15;Ev:=Ev+['E'];end;\r
+ 14,38:if(noun in[67,12])then RL(91);\r
+ 43..49,57:if(noun=Null)or(noun in[12,43])then RL(215);\r
+ end;{of 20}\r
+\r
+21 :case verb of\r
+ 50 :if(flasoff)then RL(14)else moveto(18);\r
+ 47 :if(flasoff)then RL(14)else moveto(22);\r
+ 2,51:if(flasoff)then RL(14)else\r
+ if(noun=64)or(noun=Null)then moveto(23);\r
+ 45 :RL(97);\r
+ 49,44,43:RL(258);\r
+ 11 :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;\r
+ end;\r
+\r
+22 :case verb of\r
+ 50 :if(flasoff)then RL(14)else moveto(21);\r
+ 2,51 :if(flasoff)then RL(14)else\r
+ if(noun=64)or(noun=Null)then moveto(23);\r
+ 44 :RL(97);\r
+ 47,45,49:RL(258);\r
+ 11 :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;\r
+ end; {of 22}\r
+\r
+23 :case verb of\r
+ 46,50 :if(flasoff)then RL(14)else moveto(21);\r
+ 43,48 :if(flasoff)then RL(14)else moveto(22);\r
+ 44..49:RL(258);\r
+ 26,27 :if(noun=26)then\r
+ if(en('l'))then Say(26,'open')\r
+ else begin RL(98);Ev:=Ev+['l'];p[23]:=p[23]+[69];end;\r
+ 3 :if(noun=26)then\r
+ if(en('l'))then begin RL(171);Ev:=Ev-['l'];p[23]:=p[23]-[69];end\r
+ else Say(26,'closed');\r
+ 2,52,57:if(en('l'))and((noun=69)or(noun=Null))then moveto(24)else RL(99);\r
+ 24,25 :if(noun=26)then RL(151);\r
+ 11 :if(noun=26)then if(en('l'))then RL(217)else RL(218)\r
+ else if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;\r
+ end; {of 23}\r
+\r
+24 :case verb of\r
+ 51,58:if(en('l'))then moveto(23) else RL(99);\r
+ 52,57:moveto(25);\r
+ 24,25 :if(noun=26)then RL(151);\r
+ 3 :if(noun=26)then begin RL(171);Ev:=Ev-['l'];end else\r
+ if(noun=55)then RL(411);\r
+ 2 :if(noun=69)then Moveto(25);\r
+ 26 :if(noun=26)then begin RL(98);Ev:=Ev+['l'];end else\r
+ if(noun=55)then RL(412);\r
+ 11 :if(noun=26)then if(en('l'))then RL(217)else RL(218)else\r
+ if(noun=55)then RL(410);\r
+ 27,28:If(noun=55)then RL(411);\r
+ end;\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP4}\r
+{-------------------}\r
+overlay procedure SpecialAnswers5;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+25 :case verb of\r
+ 43:begin writeln('The door slides open...');play(55,70,40);moveto(27);\r
+ writeln('The door slides shut behind you.');play(70,55,40);\r
+ if not(en('Y'))then begin Ev:=Ev+['Y'];Sc:=Sc+30 end end;\r
+ 44:moveto(32); 45:moveto(30);\r
+ 46:moveto(34); 47:moveto(28); 49:moveto(31);\r
+ 48:if(en('v')and not(en('p')))then begin Verbose:=False;moveto(35);\r
+ RS(25);DEAD; end else moveto(35);\r
+ 50:moveto(33); 51,58:moveto(24);\r
+ 52,2:if(noun=69)or(noun=Null)then moveto(26);\r
+ 17,27,28,38:if(noun=26)then\r
+ begin RL(413);play(55,70,45);play(69,54,45)end;\r
+ 26,40:if(noun=26)then RL(414);\r
+ end;\r
+\r
+27 :case verb of\r
+ 44,58:begin writeln('The door slides open...');play(55,70,40);moveto(25);\r
+ writeln('The door slides shut behind you.');delay(999);play(70,55,40)\r
+ end;\r
+ 17,27,28,38:if(noun=26)then\r
+ begin RL(413);play(30,40,25);play(40,30,25)end;\r
+ 26,40:if(noun=26)then RL(414);\r
+ 11 :if(noun in[20,21])then RL(103)\r
+ else if(noun=58)then case compcon of\r
+ Null:RL(155); 1:RS(21); 2:RS(22); 3:RS(23);\r
+ 4:begin RS(24);compcon:=Null;gotoxy(1,wherey-1);\r
+ writeln('. tim. chamb.r c.de: ',Code,'.. ..tel.port... . .',\r
+ '... . .. ime . p.n.l ....... ...');\r
+ RL(105);play(29,29,40);end;end;{of case}\r
+ 53 :begin\r
+ if(input='1')or(input='one')then begin RL(104);compcon:=1;end;\r
+ if(input='2')or(input='two')then begin RL(104);compcon:=2;end;\r
+ if(input='3')or(input='three')then begin RL(104);compcon:=3;end;\r
+ if(input='4')or(input='four')then begin RL(104);compcon:=4;end;\r
+ for y:=1 to random(40)+9 do\r
+ begin x:=random(6000)+99;play(x,x,50);delay(9)end\r
+ end;\r
+ 31 :if(compcon=null)then begin\r
+ play(9,999,0);sound(999);RS(20);play(999,9,0);if not(en('J'))then\r
+ begin Ev:=Ev+['J'];Sc:=Sc+40;end;end;\r
+ end;\r
+\r
+28 :case verb of\r
+ 50,58:moveto(25);\r
+ 45,57:moveto(29);\r
+ 28 :if(noun in[33,10])then begin RL(137);play(31,31,450);end;\r
+ end;\r
+\r
+29 :case verb of\r
+ 46,58:moveto(28);\r
+ 36 :if(noun2 in[33,10])and(noun in Mov)then\r
+ if(en('M'))then\r
+ begin RS(27);Ev:=Ev-['M','r'];Vanish(noun);r[noun]:=28;\r
+ if not(en('N'))then begin Ev:=Ev+['N'];Sc:=Sc+55;end;\r
+ play(28,34,600)end\r
+ else begin Vanish(noun);r[noun]:=28;RL(179);\r
+ if(noun in[7,8,29,34,40,51])then Ev:=Ev+['M'];end;\r
+ end;\r
+\r
+33 :case verb of\r
+ 47,58:moveto(25);\r
+ 34 :RL(272);\r
+ 28,38:if(noun=10)then begin RL(421);x:=random(9999);case random(3) of\r
+ 0:play(x,random(9999),random(3));\r
+ 1:for y:=1 to random(300)+60 do\r
+ begin x:=random(9999);play(x,x,2);delay(7)end;\r
+ 2:begin y:=9999;o:=0;\r
+ repeat x:=random(9999);play(x,y,0);\r
+ y:=random(9999);play(y,x,0);o:=o+1;\r
+ until o>7 end end end\r
+ end;\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP5}\r
+{-------------------}\r
+overlay procedure SpecialAnswers6;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+30 :case verb of\r
+ 46,58:if(en('e'))then RL(212) else moveto(25);\r
+ 26,27,28,40:if(noun=49)then if(en('h'))then Say(49,'open') else RL(159)\r
+ else\r
+ if(noun in[10,76])and(verb=28)then\r
+ begin\r
+ if(MnRm=30)then begin RS(76);DEAD;end;\r
+ if(en('e'))then\r
+ begin RS(29);writeln;\r
+ play(1,700,7);play(701,8000,1);Ev:=Ev-['e'];\r
+ case YearDial of\r
+ 1933:begin Loc:='Civilization!';Sc:=Sc+80;RS(78);HOME;END;\r
+ 2111..2679:begin\r
+ Verbose:=False;moveto(41);RS(30);Verbose:=True;\r
+ if not(en('O'))then begin Sc:=Sc+55;Ev:=Ev+['O'];end;\r
+ n[78,5]:=Q;n[37,5]:='glass';n[72,1]:='fence';\r
+ n[70,1]:='hooded figure';n[70,2]:='hooded';n[70,3]:='figure';\r
+ n[70,4]:='mutant';n[70,5]:=Q;n[3,1]:='footprints';\r
+ n[3,2]:='footpri';n[57,1]:='parachute';n[57,2]:='parachu';\r
+ n[35,1]:='boulder';n[35,2]:='rock';n[35,3]:='rocks';\r
+ n[66,4]:='red';\r
+ end;\r
+ 0..1111 :begin writeln;RS(31);DEAD;end;\r
+ 1112..2110:begin writeln;RS(32);DEAD;end;\r
+ 2680..3789:begin writeln;RS(33);DEAD;end\r
+ else begin writeln;RS(34);DEAD;end;\r
+ end; {of YearDial case}\r
+ end\r
+ else begin RL(209);play(1,9999,0)end;\r
+ end;\r
+ 33 :if(noun in[16,59])or(noun=Null)then begin Ev:=Ev+['e'];RL(210);end;\r
+ 35 :if(en('e'))then begin Ev:=Ev-['e'];RL(211);Attack:=False end;\r
+ 17,0,6:if(noun=49)then RL(160);\r
+ 53 :if(input=Code)then\r
+ If(en('h'))then Say(49,'open')\r
+ else\r
+ begin Ev:=Ev+['h'];RL(173);play(23,24,250);Sc:=Sc+30;\r
+ if(PanelCon<>Null)then begin r[PanelCon]:=30;Code:='R';\r
+ writeln('Sitting inside the panel compartment is a ',\r
+ n[PanelCon,1],'.');end\r
+ else RL(183);\r
+ end\r
+ else RL(172);\r
+ 3 :If(noun=49)then RL(159);\r
+ 39 :if(noun=25)then RL(115) else\r
+ case noun of\r
+ 24:if(DialNum>0)and(DialNum<377)then begin RL(176);DayDial:=DialNum;end\r
+ else RL(178);\r
+ 82:if(DialNum>-1)and(DialNum<5000)then begin RL(177);\r
+ YearDial:=DialNum;end else RL(178);\r
+ end;\r
+ 11,24:case noun of\r
+ 49:begin SA;if(en('h'))then if(PanelCon=Null)then RL(183)\r
+ else writeln('Inside the compartment is a ',n[PanelCon,1],'.')\r
+ else RL(184);end;\r
+ 82:begin SA;writeln('The year dial is set to ',YearDial,'.');end;\r
+ 24:begin SA;writeln('The day dial is set to ',DayDial,'.');end;\r
+ 16:begin RL(203);RL(204)end;\r
+ 25:RL(115);\r
+ 38:RL(161);\r
+ end;\r
+ end; {of 30}\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP6}\r
+{-------------------}\r
+overlay procedure SpecialAnswers7;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+26 :case verb of\r
+ 51,58,2:if(noun=69)or(noun=Null)then moveto(25);\r
+ 43,48 :moveto(36); 44,49 :moveto(38); 45,47 :moveto(39); 46,50 :moveto(37);\r
+ end;\r
+\r
+35 :case verb of\r
+ 49,58:moveto(25);\r
+ 11:case noun of\r
+ 54:RL(100);\r
+ 62:if(en('v'))then RL(205)else RL(206);\r
+ end;\r
+ 28 :if(noun in[55,10])then\r
+ if(en('v'))then begin RL(101);Ev:=Ev-['v'];play(40,65,80)end\r
+ else\r
+ begin RL(102); Ev:=Ev+['v'];play(65,40,80);\r
+ if not(en('p'))then begin RS(28);DEAD;end\r
+ else if(MnRm=35)then\r
+ begin n[23,1]:='melted monster';n[23,4]:='melted';MnRm:=Null;\r
+ RS(74);p[35]:=p[35]+[77];\r
+ if not(en('W'))then begin Sc:=Sc+65;Ev:=Ev+['W'] end\r
+ end\r
+ end;\r
+ 14 :if(noun in[1,77])and(77 in p[35])then begin Sc:=Sc+10;noun:=77;end;\r
+ 55 :if(noun=74)then\r
+ if(en('v'))then begin RS(26);DEAD end;\r
+ 38 :RL(30);\r
+ end;\r
+\r
+36 :case verb of\r
+ 44,49,58:moveto(26);\r
+ 45 :moveto(39);\r
+ 46 :moveto(37);\r
+ 57 :if(noun=12)then RL(215);\r
+ end;\r
+\r
+37 :case verb of\r
+ 45,47,58:moveto(26);\r
+ 43 :moveto(36);\r
+ 44 :moveto(38);\r
+ 57 :if(noun=12)then RL(215);\r
+ end;\r
+\r
+38 :case verb of\r
+ 43,48,58:moveto(26);\r
+ 45 :moveto(39);\r
+ 46 :moveto(37);\r
+ 57 :if(noun=12)then RL(215);\r
+ 0..99:if(noun=28)or(noun2=28)then\r
+ begin RS(35);RL(220);p[40]:=p[40]+[48];moveto(40);Ev:=Ev-['g'];\r
+ if(MnRm=Prm)then begin RS(79);DEAD end\r
+ end;\r
+ end;{of 38}\r
+\r
+39 :case verb of\r
+ 46,50,58:moveto(26);\r
+ 45 :if(en('g'))then moveto(40);\r
+ 3 :if(noun=26)then if(en('g'))then RL(225) else Say(26,'shut');\r
+ 43 :moveto(36);\r
+ 44 :moveto(38);\r
+ 57 :if(noun=12)then RL(215);\r
+ end;\r
+\r
+40 :case verb of\r
+ 46,58 :if(en('g'))then moveto(39) else RL(221);\r
+ 26 :if(noun=26)then if(en('g'))then Say(26,'open') else RL(221);\r
+ 3 :if(noun=26)then if(en('g'))then RL(225) else Say(26,'shut');\r
+ 11,14 :if(noun in[12,43,83])then RL(261);\r
+ end;\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP7}\r
+{-------------------}\r
+overlay procedure SpecialAnswers8;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+41 :case verb of\r
+ 43 :moveto(42);\r
+ 44 :moveto(43);\r
+ 2,19 :if(noun in[53,73,87])then\r
+ begin RS(39);RL(287);moveto(46);Rx:=4;end;\r
+ end;\r
+\r
+42 :case verb of\r
+ 44 :moveto(41);\r
+ 43 :RL(296);\r
+ 14 :if(noun in[13,1])and(13 in p[42])then\r
+ begin Sc:=Sc+10;noun:=13;end;\r
+ 2,19 :if(noun in[53,73,87])then\r
+ begin RS(39);RL(287);moveto(46);Rx:=4;end;\r
+ end;\r
+\r
+43 :case verb of\r
+ 43 :moveto(41);\r
+ 44 :moveto(44);\r
+ 2,19 :if(noun in[53,73,87])then\r
+ begin RS(39);RL(287);moveto(46);Rx:=4;end;\r
+ end;\r
+\r
+44 :case verb of\r
+ 43 :moveto(43);\r
+ 46 :moveto(47);\r
+ 45 :begin RL(274);Rx:=0;moveto(46);end;\r
+ 43..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);\r
+ end;\r
+\r
+45 :case verb of\r
+ 44 :moveto(49);\r
+ 46 :begin RL(274);Rx:=8;moveto(46);end;\r
+ 45 :begin Rx:=9;RL(274);moveto(46);end;\r
+ 43..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);\r
+ end;\r
+\r
+46 :case verb of\r
+ 45 :begin Rx:=Rx+1;RL(274);\r
+ if(Rx=9)then begin\r
+ if not(en('T'))then begin Ev:=Ev+['T'];Sc:=Sc+30;end;\r
+ moveto(45)end;\r
+ if(Rx>86)then begin RL(340);moveto(47)end\r
+ end;\r
+ 46 :begin Rx:=Rx-1;RL(274);\r
+ if(Rx=8)then moveto(45);\r
+ if(Rx<1)then moveto(44);\r
+ end;\r
+ 43..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);\r
+ end;\r
+\r
+47 :case verb of\r
+ 46,52,2,19:begin if(random(2)=1)then begin RS(37);DropAll;moveto(48)end\r
+ else begin RL(277);moveto(48)end;end;\r
+ 45 :moveto(44);\r
+ 43..50:RL(278);\r
+ end;\r
+\r
+48 :case verb of\r
+ 45,51,2:if(random(3)=2)and(noun<>35)then begin RS(38);moveto(47)end\r
+ else if(noun<>35)then RL(279);\r
+ 43..50:RL(279);\r
+ 14 :if(noun in[27,1])and(27 in p[48])then\r
+ begin Sc:=Sc+20;noun:=27;end;\r
+ 11 :if(noun=35)then RL(289)\r
+ end;\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP8}\r
+{-------------------}\r
+overlay procedure SpecialAnswers9;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+50 :case verb of\r
+ 43,58 :begin RL(290);moveto(49);end;\r
+ 44,57 :if(noun=Null)or(noun in[88,26,50])then\r
+ begin RS(41);if not(en('L'))then\r
+ begin Ev:=Ev+['L'];Sc:=Sc+25;end;moveto(51);end;\r
+ 11 :case noun of\r
+ 35,50:RL(292);\r
+ 88,68:RS(42);\r
+ 46,66:RS(43);\r
+ end;\r
+ 30,28,38,17,14:if(noun=88)then RL(294);\r
+ end;\r
+\r
+51 :case verb of\r
+ 44 :moveto(52);\r
+ 46 :moveto(52);\r
+ 48 :moveto(53);\r
+ end;\r
+\r
+52 :case verb of\r
+ 43 :moveto(51);\r
+ 47 :moveto(53);\r
+ 46 :moveto(51);\r
+ end;\r
+\r
+53 :case verb of\r
+ 52,2,57:if(noun=Null)or(noun=69)then begin if not(en('Q'))then\r
+ begin Ev:=Ev+['Q'];Sc:=Sc+30;end;moveto(55);end;\r
+ 47 :moveto(52);\r
+ 45 :moveto(53);\r
+ 49 :moveto(54);\r
+ end;\r
+\r
+54 :case verb of\r
+ 43 :moveto(52);\r
+ 49 :moveto(53);\r
+ 44 :moveto(51);\r
+ 50 :begin if not(en('R'))then\r
+ begin Ev:=Ev+['R'];Sc:=Sc+20;end;moveto(56);end;\r
+ end; {verb case}\r
+\r
+55 :case verb of\r
+ 51,2,58,44:if(noun=Null)or(noun=69)then moveto(53);\r
+ 11 :if(noun in[11,45])then\r
+ begin RL(297);if(en('k'))then RL(298) else RL(299)end;\r
+ 26,40:if(noun in[45,26,11,68])and(noun2=27)and(SepWord='with')then\r
+ if not(en('k'))then\r
+ begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do\r
+ if(o in cabiset)then r[o]:=55;\r
+ if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;\r
+ end\r
+ else Say(11,'open')\r
+ else if(SepWord='s')then RL(317);\r
+ 29 :if(noun=27)and(noun2 in[45,26,11,68])and(SepWord='in')then\r
+ if not(en('k'))then\r
+ begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do\r
+ if(o in cabiset)then r[o]:=55;\r
+ if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;\r
+ end\r
+ else RL(216);\r
+ 3 :if(noun in[45,26,11])then\r
+ if(en('k'))then\r
+ begin RL(314);play(30,32,30);Ev:=Ev-['k'];\r
+ for o:= 2 to NMax do if(o in cabiset)then r[o]:=Null;\r
+ end\r
+ else Say(11,'shut & locked');\r
+ 24,30 :if(noun in[26,11])then\r
+ if(en('k'))then\r
+ begin RL(324);\r
+ if(cabiset=[])then RL(339)else\r
+ for o:=0 to NMax do if(o in Cabiset)then writeln('a ',n[o,1])\r
+ end\r
+ else RL(299);\r
+ end; {of 55}\r
+\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP9}\r
+{-------------------}\r
+overlay procedure SpecialAnswers10;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+56 :case verb of\r
+ 47 :moveto(54);\r
+ 2,51,58:if(noun=Null)or(noun=69)then moveto(57);\r
+ end;\r
+\r
+57 :case verb of\r
+ 46,57,2,33:if(noun=Null)or(noun=65)then\r
+ begin n[68,1]:='keyhole';n[68,4]:='slot';moveto(58)end;\r
+ 52 :moveto(56);\r
+ end;\r
+\r
+58 :case verb of\r
+ 45,58:moveto(57);\r
+ 43..51,20:if(en('i'))and(en('j'))and KeyHole then\r
+ begin sound(38);RS(61);ShRm:=2;moveto(59);sound(20);\r
+ for o:=0 to NMax do if(r[o]=58)then r[o]:=59;\r
+ if not(en('S'))then begin Ev:=Ev+['S'];Sc:=Sc+60 end end else RL(325);\r
+ 28 :if(noun=10)then noun:=81;\r
+ 11 :if(noun=68)then if KeyHole then RL(336)else RL(404);\r
+ end;\r
+\r
+65 :case verb of\r
+ 43,47:moveto(66);\r
+ 44,49:moveto(68);\r
+ 45,57:begin if not(en('w'))then begin Ev:=Ev+['w'];RL(346);end\r
+ else begin RL(347);DEAD end end;\r
+ 46..50:moveto(63);\r
+ 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
+ 51 :begin sound(38);RL(344);delay(999);sound(20)end;\r
+ 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
+ 14 :if(noun=63)then begin RS(65);DEAD;end;\r
+ 28 :if(noun=10)then noun:=81;\r
+ end;\r
+\r
+66 :case verb of\r
+ 43 :RL(343);\r
+ 46,50 :moveto(65);\r
+ 45,49 :moveto(67);\r
+ 47 :moveto(64);\r
+ 48 :moveto(63);\r
+ 57,44 :begin sound(25);if not(en('V'))then begin Ev:=Ev+['V'];Sc:=Sc+30;end;\r
+ RS(67);writeln;moveto(69);nosound;\r
+ end;\r
+ 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
+ 51 :begin sound(38);RL(344);delay(999);sound(20)end;\r
+ 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
+ 14 :if(noun=63)then begin RS(65);DEAD;end;\r
+ 28 :if(noun=10)then noun:=81;\r
+ end; {of 66}\r
+\r
+67 :case verb of\r
+ 46 :begin RL(347);DEAD;end;\r
+ 43,48 :moveto(66);\r
+ 44,50 :moveto(68);\r
+ 45..49:moveto(64);\r
+ 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
+ 51 :begin sound(38);RL(344);delay(999);sound(20)end;\r
+ 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
+ 14 :if(noun=63)then begin RS(65);DEAD;end;\r
+ 28 :if(noun=10)then noun:=81;\r
+ end; {of 67}\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP10}\r
+{-------------------}\r
+overlay procedure SpecialAnswers11;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+63 :case verb of\r
+ 45 :moveto(65);\r
+ 47 :moveto(66);\r
+ 49 :moveto(68);\r
+ 43..50:RL(343);\r
+ 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
+ 51 :begin sound(38);RL(344);delay(999);sound(20)end;\r
+ 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
+ 14 :if(noun=63)then begin RS(65);DEAD;end;\r
+ 28 :if(noun=10)then noun:=81;\r
+ end;\r
+\r
+64 :case verb of\r
+ 46 :moveto(67);\r
+ 48 :moveto(66);\r
+ 50 :moveto(68);\r
+ 43..50:RL(343);\r
+ 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
+ 51 :begin sound(38);RL(344);delay(999);sound(20)end;\r
+ 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
+ 14 :if(noun=63)then begin RS(65);DEAD;end;\r
+ 28 :if(noun=10)then noun:=81;\r
+ end;\r
+\r
+68 :case verb of\r
+ 43 :begin RL(347);DEAD;end;\r
+ 44 :RL(343);\r
+ 50 :moveto(63);\r
+ 49 :moveto(64);\r
+ 46,48 :moveto(65);\r
+ 45,47 :moveto(67);\r
+ 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
+ 51 :begin sound(38);RL(344);delay(999);sound(20)end;\r
+ 52 :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;\r
+ 14 :if(noun=63)then begin RS(65);DEAD;end;\r
+ 28 :if(noun=10)then noun:=81;\r
+ end;\r
+\r
+69 :case verb of\r
+ 28,27 :if(noun in[10,21,81,36])then RL(351);\r
+ 11 :if(noun in[10,21,81,36,20,25])then RL(352)else\r
+ if(noun=65)then RL(353);\r
+ 43,58 :moveto(70);\r
+ end;\r
+\r
+70 :case verb of\r
+ 44,57,2,33:if(noun=Null)or(noun=65)then moveto(69)else\r
+ if(noun in[69,50])then moveto(71);\r
+ 43,47,48:RL(354);\r
+ 49,52 :moveto(71);\r
+ 11 :if(noun=65)then RL(353)\r
+ else if(noun=68)then if KeyHole then RL(336)else RL(404);\r
+ end;\r
+\r
+71 :case verb of\r
+ 48,51,58:moveto(70);\r
+ 45 :moveto(72);\r
+ 11 :if(noun=58)then RL(386)else\r
+ if(noun=25)then RL(418);\r
+ 28,27:if(noun in[10,36])then begin RL(387);\r
+ for o:=1 to random(12)+4 do play(random(250),random(250),random(30))\r
+ end;\r
+ 39 :if(noun=25)then begin RL(387);\r
+ for o:=1 to random(99)+75 do\r
+ begin x:=random(9999);play(x,x,random(19)+10);delay(5)end\r
+ end\r
+ end;{ of 71}\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP11}\r
+{-------------------}\r
+overlay procedure SpecialAnswers12;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+11 :case verb of\r
+ 5,45,47,48,50:if FlasOff then RL(14)\r
+ else case verb of\r
+ 48:moveto(9);47:moveto(13);\r
+ 5:if(29 in inven)or(40 in inven)or(2 in inven)then\r
+ RL(58)\r
+ else begin RL(18); moveto(12);end;\r
+ 50:RL(17);\r
+ 45:if(en('C'))then moveto(14) else RL(144);\r
+ end;\r
+ 31 :if(input='nepo egassap')and not(en('C'))then\r
+ begin Ev:=Ev+['C']; RS(11);Sc:=Sc+35;end;\r
+ 11 :if(noun in [79,72])then if(en('C'))then RL(270)else RS(13);\r
+ 27,28:if(noun in [79,72])then RL(26);\r
+ 17,0,6:if(noun in [79,72])then RL(27);\r
+ 38 :if(noun in [79,72])then RL(30);\r
+ end; {of 11}\r
+\r
+12 :case verb of\r
+ 4,47 :if FlasOff then RL(14)\r
+ else case verb of\r
+ 4:begin RL(18); moveto(11);end;\r
+ 47 :RL(17);\r
+ end;\r
+ 43..52 :if FlasOff then RL(14);\r
+ 14 :if(noun in[70,1])and not(en('G'))then\r
+ begin noun:=70;Ev:=Ev+['G'];Sc:=Sc+40;end;\r
+ 7 :if not(en('G'))then begin Ev:=Ev+['G'];RL(157);\r
+ FlagSA:='r';verb:=14;noun:=70;Sc:=Sc+40;end;\r
+ end; {of 12}\r
+\r
+13 :case verb of\r
+ 50 :if flasoff then RL(14)\r
+ else begin moveto(11); Ev:=Ev-['q'];end;\r
+ 43 :if(en('q'))then begin RL(24); DEAD;end\r
+ else begin RL(23); Ev:=Ev+['q'];end;\r
+ 52,19,33:RL(42);\r
+ 14 :if(noun=47)then RL(25);\r
+ 9 :begin RL(68);vanish(noun);end;\r
+ end;{of 13}\r
+\r
+17 :case verb of\r
+ 51,19,2:RL(15);\r
+ 45 :if(flasoff)then RL(14)else moveto(18);\r
+ end;\r
+\r
+18 :case verb of\r
+ 46 :if(flasoff)then RL(14)else moveto(17);\r
+ 49,52 :if(flasoff)then RL(14)else begin RL(308);moveto(19);end;\r
+ 47 :if(flasoff)then RL(14)else\r
+ if not(en('F'))then begin RS(19);writeln;moveto(21);\r
+ Ev:=Ev+['F'];Sc:=Sc+10;end\r
+ else moveto(21);\r
+ 11 :if(noun in[79,50])then RL(254);\r
+ end;{of 18}\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP12}\r
+{-------------------}\r
+overlay procedure SpecialAnswers13;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+2 :case verb of\r
+ 46 :moveto(1);\r
+ 45, 44 :RL(1);\r
+ 19,2 :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;\r
+ 14,27 :if noun=14 then RL(2)else\r
+ if(noun in[1,40])and(40 in p[2])then\r
+ begin noun:=40;Sc:=Sc+10;Verb:=14;RL(417);FlagSA:='r' end;\r
+ 11 :if(noun in[66,46])then RL(11);\r
+ 26 :if noun=14then RL(13);\r
+ end;\r
+\r
+31 :case verb of\r
+ 48,58:moveto(25);\r
+ 14 :if not(en('I'))and(noun in[7,1])then\r
+ begin Ev:=Ev+['I'];noun:=7;Sc:=Sc+5 end;\r
+ 23,24,11:if(noun=84)then RL(152)else\r
+ if(noun=22)then RL(415);\r
+ end;\r
+\r
+32 :case verb of\r
+ 43,58:moveto(25);\r
+ 11,23 :case Noun of\r
+ 61:if(en('H'))then RL(153) else begin Ev:=Ev+['H'];r[34]:=32;\r
+ RL(154);Sc:=Sc+15;end;\r
+ end;{of Noun case}\r
+ end;\r
+\r
+34 :case verb of\r
+ 45,58:moveto(25);\r
+ 14 :if(noun=74)and(74 in P[34])then begin P[34]:=P[34]-[74];\r
+ inven:=inven+[74];RL(138);Sc:=Sc+25;end;\r
+ 42 :if(noun=74)and(74 in P[34])then RL(175);\r
+ 28,27:if(noun in[10,36])then begin RL(387);\r
+ for o:=1 to random(12)+4 do play(random(250),random(250),random(30))\r
+ end;\r
+ 39 :if(noun=25)then begin RL(387);\r
+ for o:=1 to random(99)+75 do\r
+ begin x:=random(9999);play(x,x,random(19)+10);delay(5)end\r
+ end;\r
+ 11 :case noun of\r
+ 0:RL(139);\r
+ 25:RL(418);\r
+ 21:begin;RL(140);RL(141);end;\r
+ 68:if(SlotCon=Null)then RL(143) else\r
+ begin SA;writeln('The slot contains a ',n[SlotCon,1],'.')end;\r
+ 58:if(SlotCon=77)and not(en('x'))then\r
+ begin Ev:=Ev+['x'];Sc:=Sc+5;RS(75)end\r
+ else if(SlotCon=77)then RS(77)else RL(385)\r
+ end\r
+ end;\r
+\r
+0 :case verb of\r
+ 45 :MoveTo(1);\r
+ 44 :begin TextColor(m8);writeln('Casino Hall');TextColor(m2);RS(0)end;\r
+ 19,2 :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;\r
+ 11 :if(noun=73)then RL(19);\r
+ end;\r
+\r
+1 :case verb of\r
+ 46 :moveto(0);\r
+ 45 :moveto(2);\r
+ 43,57 :moveto(3);\r
+ 6,17 :if(noun=57)and(here(40))and((noun2=40)or(noun2=Null))then\r
+ begin RS(16);Sc:=-500;\r
+ Loc:='Locked Cabin';Verbose:=True;inven:=[];KitSet:=KitSet-[57];\r
+ n[57,1]:='plastic card';n[57,2]:='card';n[57,3]:='plastic';\r
+ n[57,4]:='elevato card';n[57,5]:='elevato';r[57]:=76;moveto(76)\r
+ end;\r
+ 33,19,2 :if(noun in[6,53,64])then moveto(3)\r
+ end;\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP13}\r
+{-------------------}\r
+overlay procedure SpecialAnswers14;\r
+\r
+begin\r
+FlagSA:='r';\r
+if Present then\r
+Case Prm of\r
+\r
+49 :case verb of\r
+ 43 :moveto(45);\r
+ 44,57 :begin RL(290);moveto(50);n[36,1]:='lever';n[36,2]:='handle';end;\r
+ 45..50:RL(291);\r
+ 11 :if(noun in[26,50])then RL(292);\r
+ 2 :if(noun=72)then RL(312);\r
+ 11 :if(noun=72)then RL(313);\r
+ end;\r
+\r
+59 :case verb of\r
+ 43..50:begin o:=random(8)+3;writeln('You travel about ',o,' miles...');\r
+ if(random(4)=2)then ShRm:=13 else ShRm:=Random(15);moveto(59)end;\r
+ 52,57:RL(341);\r
+ 58 :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;\r
+ 51 :begin sound(30);\r
+ if not(en('U'))then begin RS(64);writeln;Ev:=Ev+['U'];Sc:=Sc+45;end\r
+ else RL(349);moveto(63);sound(20)end;\r
+ 14 :if(noun=63)then begin RS(65);DEAD;end;\r
+ 28 :if(noun=10)then noun:=81;\r
+ end; {of case 59}\r
+\r
+72 :case verb of\r
+ 46 :moveto(71);\r
+ 43,44,58:moveto(73);\r
+ 45 :moveto(74);\r
+ end;\r
+\r
+73 :case verb of\r
+ 43,45,58:moveto(72);\r
+ 46 :moveto(73);\r
+ 44 :begin moveto(74);if(MnRm=Null)then RL(356);end;\r
+ end;\r
+\r
+74 :case verb of\r
+ 43,45 :moveto(73);\r
+ 46,58 :moveto(74);\r
+ 44 :if(MnRm=Null)then begin Verbose:=False;Moveto(75);Verbose:=True;\r
+ RS(69);MnRm:=75;Attack:=False end else moveto(75);\r
+ end;\r
+\r
+75 :case verb of\r
+ 43,58 :moveto(74);\r
+ 11 :if(noun in[14,61])then RL(364);\r
+ end;\r
+\r
+76 :case verb of\r
+ 43 :RL(114);\r
+ 11 :if(noun=26)then RL(271)else\r
+ if(noun=57)then RL(408);\r
+ end;\r
+\r
+end {of case}\r
+else SA\r
+end; {of SP14}\r
+{===================}\r
+procedure ScreenDraw_PlayerInput;\r
+ begin\r
+ gotoxy(1,23);writeln;TextColor(m5);write(chr(175),' ');\r
+ Window(1,1,80,25);\r
+ gotoxy(1,1);textcolor(m4);TextBackGround(m6);\r
+ gotoxy(10,1); writeln(Tic,' '); gotoxy(75,1); writeln(Sc,' ');\r
+ gotoxy(35-(length(Loc)div 2),1);writeln(' ',Loc,' ');\r
+ gotoxy(3,25);TextBackGround(0);Window(1,2,80,25);\r
+ textcolor(m1);BufLen:=77;\r
+ if(Loc<>'Civilization!')then READLN(LINE)else repeat;until false;\r
+ if(Line='r')or(Line='repeat')then Line:=Again\r
+ else Again:=Line;\r
+ gotoxy(1,23);TextColor(m3);writeln(chr(175));TextColor(m2);\r
+ end;\r
+{-------------------}\r
+\r
+\r
+BEGIN\r
+clrscr;\r
+assign0;\r
+assign1;assign2;assign3;assign4;assign5;assign6;assign7;assign8;\r
+Initialize;\r
+\r
+ {*****} repeat {*****}\r
+\r
+if Skip then Time; writeln;\r
+\r
+if(length(Line)=0)then begin\r
+ ScreenDraw_PlayerInput;\r
+ while pos(' then ',Line)>0 do\r
+ begin x:=pos('then ',Line);delete(Line,x,4);insert('.',Line,x)end;\r
+ LowerCase(Line);\r
+ Format(Line);\r
+ Chop(Line);\r
+end;\r
+if(pos('.',Line)>0)then begin\r
+ Input:=copy(Line,1,pos('.',Line));\r
+ delete(Line,1,pos('.',Line));\r
+ delete(Input,pos('.',Input),1);\r
+end else\r
+ begin\r
+ Input:=Line;\r
+ Line:=''\r
+ end;\r
+Input:=Input+' ';\r
+while pos(' it ',Input)>0 do\r
+ begin x:=pos(' it ',Input)+1;delete(Input,x,2);insert(LastNoun,Input,x);\r
+ Format(Input);Chop(Input)end;\r
+if(Input[length(Input)]=' ')then delete(Input,length(Input),1);\r
+\r
+\r
+\r
+Check(SepWord);\r
+\r
+if Flag = 'g' then\r
+ begin\r
+ case Prm of\r
+ 3..4 :SpecialAnswers1;\r
+ 5..10 :SpecialAnswers2;\r
+ 14..16 :SpecialAnswers3;\r
+ 19..24 :SpecialAnswers4;\r
+ 25,27..29,33 :SpecialAnswers5;\r
+ 30 :SpecialAnswers6;\r
+ 26,35..40 :SpecialAnswers7;\r
+ 41..48 :SpecialAnswers8;\r
+ 50..55 :SpecialAnswers9;\r
+ 56..58,60..62,65..67:SpecialAnswers10;\r
+ 63,64,68..71 :SpecialAnswers11;\r
+ 11..13,17,18 :SpecialAnswers12;\r
+ 0..2,31,32,34 :SpecialAnswers13;\r
+ 49,59,72..76 :SpecialAnswers14\r
+ end;\r
+\r
+ if FlagSA <> 's' then\r
+ case Verb of\r
+ 11,18,22,41,43..52,57,58 :DefaultAnswers1;\r
+ 29 :DefaultAnswers2;\r
+ 1,2,8,12,13,15,16,19,21,\r
+ 23..25,31,33,34,38,40,60,63:DefaultAnswers3;\r
+ 3,6,7,20,30,35,53..56,59 :DefaultAnswers4;\r
+ 9,26 :DefaultAnswers5;\r
+ 27,28,62 :DefaultAnswers6;\r
+ 14,64,4,5 :DefaultAnswers7;\r
+ 0,10,17,42,39 :DefaultAnswers8;\r
+ 32 :DefaultAnswers9;\r
+ 36,37,61,65 :DefaultAnswers10;\r
+ end;\r
+ end;\r
+\r
+ {*****} until False {*****}\r
+\r
+END. {of program}\r
+\1a
\ No newline at end of file