OSDN Git Service

英語の入力ができない問題の修正
[beyond-jp/beyond-jp.git] / BEYOND.PAS
1 {//-------------------------------------------------------------------------}
2 {/*                                                                         }
3 {Copyright (C) 1990, 2009 - Apogee Software, Ltd.                           }
4 {                                                                           }
5 {This file is part of Supernova.  Supernova is free software; you can       }
6 {redistribute it and/or modify it under the terms of the GNU General Public }
7 {License as published by the Free Software Foundation; either version 2     }
8 {of the License, or (at your option) any later version.                     }
9 {                                                                           }
10 {This program is distributed in the hope that it will be useful,            }
11 {but WITHOUT ANY WARRANTY; without even the implied warranty of             }
12 {MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                       }
13 {                                                                           }
14 {See the GNU General Public License for more details.                       }
15 {                                                                           }
16 {You should have received a copy of the GNU General Public License          }
17 {along with this program; if not, write to the Free Software                }
18 {Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.}
19 {                                                                           }
20 {Original Source: 1990 Scott Miller                                         }
21 {Prepared for public release: 03/19/09 - Joe Siegler, Apogee Software, Ltd. }
22 {*/                                                                         }
23 {//-------------------------------------------------------------------------}
24 {****************************************************************************}
25 {*                          BEYOND THE TITANIC                              *}
26 {*    Written by Scott Miller with Turbo Pascal V.2.  Began May 12, '84.    *}
27 {*                           Shareware Version                              *}
28 {*                             Copyright 1987                               *}
29 {$C-,V-,R-*******************************************************************}
30
31 { Last modified: July 23, 1987 }
32
33 uses crt, sysutils;
34
35 const
36      Q        = '#';
37      VMax     = 65;
38      NMax     = 89;
39      RMax     = 76;
40      Null     = -1;
41
42 type
43      ComSet         = set of 0..VMax;
44      CharSet        = set of Char;
45      PlayersObjects = set of 0..NMax;
46      Str16          = string[16];
47      Str80          = string[80];
48      Str240         = string[240];
49      SaveGame       = record
50        aInven,
51        aKitSet,
52        aCabiSet  :PlayersObjects;
53        aPanelCon,
54        aSlotCon,
55        aCompCon,
56        aRopeCon,
57        aTic,
58        aYearDial,
59        aPrm,
60        aMnRm,
61        aSc,
62        aShots,
63        aShRm,
64        aRx       :integer;
65        aEv       :CharSet;
66        aCode,
67        aLoc      :Str16;
68        aKeyHole  :boolean;
69       end;
70
71 var
72      WordList       : file of Str16;
73      Things         : file of integer;
74      Objects        : file of PlayersObjects;
75      GameSave       : file of SaveGame;
76      DiskSave       : SaveGame;
77      Input,
78      Again,
79      Line           : Str80;
80      V{erb}         : array [0..VMax,1..5] of Str16;
81      D{oushi}       : array [0..VMax,1..5] of Str16;
82      N{oun}         : array [0..NMax,1..5] of Str16;
83      M{eishi}       : array [0..NMAX,1..5] of Str16;
84      Prep{osition}  : array [0..VMax] of Str16;
85      R{oom}         : array [0..NMax] of integer;
86      P{lace}        : array [0..RMax] of PlayersObjects;
87      RmSh           : set of 0..14;
88      OneWordCommands: Comset;
89      Mov{able},
90      Inven{tory},
91      KitSet,
92      CabiSet        : PlayersObjects;
93      Word,
94      LastNoun,
95      Drive,
96      Code,
97      Loc{ation},
98      SepWord        : Str16;
99      Rooms1, Rooms2,
100      Special1, Special2 : file of Str240;
101      Text1, Text2   : Str240;
102      Line1          : file of Str80;
103      Verb,
104      Noun, Noun2,
105      PanelCon,
106      RopeCon,
107      CompCon,
108      SlotCon,
109      RopeOld,
110      Tic,
111      YearDial,
112      DayDial,
113      Prm,  {Player Room}
114      MnRm, {Monster Room}
115      Sc{ore},
116      Shots,
117      DialNum,
118      Stuff,
119      ShRm, {Shuttle Room}
120      m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,
121      Rx, {deserted road}
122      Ox, {ocean bottom}
123      x, y, o        : integer;
124      Flag,
125      FlagSA         : char;
126      Ev{ent}        : CharSet;
127      Attack,
128      Skip,
129      Back,
130      KeyHole,
131      Verbose        : boolean;
132
133
134
135 {$I AdParser.PAS}{  <--- Loads in sentence logic.    <*********************}
136
137
138 {$I Commands.PAS}{  <--- Loads in misc. procedures.  <*********************}
139
140
141 {$I WordList.PAS }{  <----- CALLS UP THE VERBS & NOUNS <*******************}
142
143
144 {$I Objects.PAS }{   <----- CALLS UP THE VERBS & NOUNS <*******************}
145
146
147 {$I Trans.PAS }
148
149
150 {===================}
151 procedure DefaultAnswers1;
152 begin
153
154 CASE VERB OF
155
156 22        :begin if(Prm in[59..68])then
157                   begin RmSh:=RmSh-[ShRm];RS(84)end;
158             if flasoff and (Prm in [6..24])then RL(54) else
159              if Verbose then DescribeRm
160               else begin Verbose:=true;DescribeRm;Verbose:=false;end;
161             if(23 in p[Prm])and(MnRm=Prm)then RL(357);
162             if Back then begin Attack:=False; Back:=False;end
163            end;
164
165 18        :if inven=[] then RL(116)
166              else
167                begin
168                  writeln('\82 \82È\82½\82ª\8e\9d\82Á\82Ä\82¢\82é\82Ì\82Í\81c');
169                    for o:= 0 to NMax do
170                     begin
171                      if(o in inven)then
172                       if(o=74)then
173                        writeln('',m[o,1])else writeln('',m[o,1]);
174                      if(ropecon in inven)and(o=ropecon)then
175                       writeln('  ',m[o,1],'\82É\8c\8b\82Î\82ê\82½\83\8d\81[\83v');
176                      if(o=74)and(en('p'))then RL(174);
177                      if(o=89)and(en('i'))then RL(321);
178                     end;
179                end;
180
181 11     :case noun of
182        60:Diagnose;
183        2:if(en('b'))then RL(198) else RL(199);
184        29:begin RL(89);if(en('a'))then RL(200) else RL(201);end;
185        57:if(ropecon<>Null)then
186             writeln('\83\8d\81[\83v\82Í',m[ropecon,1],'\82É\8c\8b\82Î\82ê\82Ä\82¢\82é\81B')
187           else RL(133);
188        65:if(Prm in[59..68])then RS(84)else Line:='l';
189        8:RL(202);
190        7:RL(163);
191        70:RL(164);
192        52:RL(165);
193        74:RL(166);
194        23:RS(70);
195        32:RL(253);
196        13:RL(167);
197        22:RL(226);
198        1:if(Prm=42)and(13 in p[42])then RL(167);
199        21:RL(227);
200        9:if(Prm=49)then RL(228)else if(Prm>62)then RS(68)else RL(229);
201        69:RL(355);
202        77:RL(403);
203        37:RL(295);
204        27:RL(394);
205        89:RL(338);
206        18:if(Prm in[63..70])then RS(68)else RL(348);
207        46,66:If(Prm in[58,59,63,69])then begin
208        TextColor(12);RS(83);TextColor(m2)end;
209        87:RL(230);
210        84:RL(231);
211        34:begin RL(189);
212            if(Shots>0)then writeln('\96ñ',Shots*10,'\83p\81[\83Z\83\93\83g\82¾\81B')
213            else Writeln('\8bó\82¾\81B')end;
214        15:if(84 in p[Prm])then RL(180)else If(71 in p[Prm])then RL(182)
215           else RL(181);
216     56,44:if(en('r'))then RL(51) else RL(52)
217        else if not(noun in[1,12,14,15,17,18,19,22,31,36,50,
218              54,67,69,73,79,80,84,87,88])and(random(3)=1)then
219             case random(3) of
220              0  :RL(407);
221              1  :writeln('\82»\82¤\81A\82±\82ê\82Í',m[noun,1],'\82¾!');
222              2  :writeln('\95\81\92Ê\82Ì',m[noun,1],'\82Ì\82æ\82¤\82¾\81B');
223             end
224             else writeln(m[noun,1],'\82É\95Ï\82í\82Á\82½\82±\82Æ\82Í\82È\82¢\81B')
225        end;
226
227 41         :begin writeln('\8e\9e\82ª\89ß\82¬\82Ä\82ä\82­');y:=wherey;for o:=1 to 6 do
228               begin gotoxy(14+o,y-1);writeln('.');sound(o*99);delay(30)end;
229               if(Prm in[59..68])then sound(20)else nosound end;
230
231 43..52     :if(Prm in[6..24])and(FlasOff)then RL(14)else
232              if(Prm=69)then RL(358)else RL(144);
233
234 57,58      :begin Attack:=False;
235              if(Prm in[6..24])and(FlasOff)then RL(14)else RL(190);end;
236
237   end {of case}
238 end;  {of DefaultAnswers1}
239 {-------------------}
240 procedure DefaultAnswers2;
241 begin
242
243 CASE VERB OF
244
245 29    :if(noun in Mov)then
246         if(noun in inven)then
247          begin FlagSA:='r';
248           case Noun2 of
249         39:if(en('o'))then begin RL(186);Vanish(noun);
250             kitset:=kitset+[noun];r[noun]:=Prm;end
251            else RL(185);
252         68:if(Prm=34)then
253             if(SlotCon=Null)then begin RL(186);Vanish(noun);
254              SlotCon:=Noun;r[noun]:=Prm;end
255             else Say(68,'\8eg\97p\92\86')
256            else
257             if(noun=63)and(Prm=58)then
258              begin RL(337);KeyHole:=True;r[63]:=Prm;inven:=inven-[63];end
259             else RL(327);
260         88:begin RL(293);vanish(noun);r[noun]:=random(4)+51;end;
261         47,53,73:if(Prm in[0..6,9,10,13,41..43])then
262            begin RL(307);vanish(noun);end;
263         11:if(en('k'))then begin RL(186);Vanish(noun);
264             CabiSet:=CabiSet+[noun];r[noun]:=Prm;end
265            else RL(187);
266         26:if(Prm=76)and(noun=57)then begin RL(409);Vanish(57)end;
267         49:if(PanelCon=Null)and(noun in[2,7,8,13,27,32,51,52,63,77])then
268             begin RL(186);Vanish(noun);PanelCon:=Noun;r[noun]:=Prm;end
269            else RL(188);
270         30:if(noun=70)then
271             if not(en('d'))then
272              begin Ev:=Ev+['d'];RL(69);Vanish(70);r[70]:=Prm;end
273             else Say(70,'\93D\82Ì\92\86')
274            else Crazy
275           end;{of case}
276
277           if(FlagSA<>'s')then
278            begin
279             if(SepWord='to')then
280              if(noun2 in[4,6,9,11,14,16,22,30,50,59,61,64,65,69,75])then
281               begin RL(186);Vanish(noun);r[noun]:=Prm;end
282              else RL(197);
283             if(SepWord='at')or(SepWord='near')or(SepWord='behind')then
284              if(noun2 in[0,4,6,9,11,12,14,16,17,20..23,26,28,30,35,39,43,
285                          50,53,54,59,61,62,64..69,72,73,75,78..80])then
286               begin RL(186);Vanish(noun);r[noun]:=Prm;end
287              else RL(197);
288             if(SepWord='under')then
289              if(noun2 in[4,15,16,20,23,59,60,61,75])then
290               begin RL(186);Vanish(noun);r[noun]:=Prm;end
291              else RL(197);
292             if(SepWord='in')then
293              if(noun2 in[6,16,43,47,30,50,59,64,65,72,78,80,84])then
294               begin RL(186);Vanish(noun);r[noun]:=Prm;end
295              else RL(197);
296             if(FlagSA<>'s')then Crazy;
297            end
298           end
299          else writeln('\82Ü\82¸',m[noun,1],'\82ð\8e\9d\82Á\82Ä\82¢\82È\82¯\82ê\82Î\82È\82ç\82È\82¢\81B')
300         else Crazy;
301
302   end {of case}
303 end;  {of DefaultAnswers2}
304 {-------------------}
305 procedure DefaultAnswers3;
306 begin
307
308 CASE VERB OF
309
310 31,63      :if(Verb=63)and(Prm<>MnRm)then RL(395)
311             else
312              if(Prm=MnRm)then
313               begin Attack:=False;
314                if(input='hi')or(input='hello')or(input='bye')then RL(396)else
315                if(copy(input,1,6)='follow')then RL(397)else
316                 case random(5) of
317                  0:RL(365);1:RL(398);2:RL(399);3:RL(400);4:RL(401)
318                 end
319               end
320              else RL(123);
321
322 33         :RL(124);
323
324 38         :case noun of
325              83:RL(262);
326              23:begin RL(366);DropAll;Ev:=Ev+['r'];Attack:=False end
327              else RL(125);
328             end;
329
330 16         :if(MnRm=Prm)then begin Attack:=False;RL(372)end else
331             if(en('r'))then RL(373)else
332             if(Prm<15)and(70 in p[12])then RL(374)else  RL(371);
333
334 19         :if(noun=Null)then RL(136)else Crazy;
335 24         :if(noun=7)then RL(422)else
336             if(noun in[26,6,7,22,36,17,50,65,73,74,80,79,30,84])then RL(126)
337             else Crazy;
338 21         :RL(127);
339 40         :Crazy;
340
341 8          :if(noun in[73,80])or(noun=Null)then
342              if(noun<>Null)then RL(36)
343              else if(here(73))or(here(80))then RL(36)else RL(37)
344             else RL(53);
345
346 12         :RL(38);
347 2          :if(noun in[4,35,39,8,11,12,14,20,21,30,57,43,59,67,70,75])then
348               RL(43)else RL(44);
349
350 15         :if(noun in mov)then
351              if(sepword='to')then
352               if(noun2=23)then
353                begin RL(62);Vanish(noun);Attack:=False end
354               else Crazy
355              else RL(60)
356             else RL(61);
357
358 1          :if(verbose)then
359               begin verbose:=false;RL(134);end
360              else begin verbose:=true;RL(135);end;
361
362 13         :RL(77);
363 23         :RL(78);
364
365 60         :case noun of
366             43,12:RL(252);
367             35:RL(288)
368             else RL(78);
369             end;
370
371 25         :if(Prm>62)and(Noun in[9,18,19,41])then RL(350)else RL(78);
372 34         :RL(79);
373
374   end {of case}
375 end;  {of DefaultAnswers3}
376 {-------------------}
377 procedure DefaultAnswers4;
378 begin
379
380 CASE VERB OF
381
382 20         :RL(81);
383 35         :RL(82);
384
385 6          :if(noun=23)and(here(40))then begin vanish(40);RL(84);end
386              else
387               if here(40)then
388                if(noun2=Null)or(noun2=40)then
389                 case noun of
390                  57:RL(259);
391                  60:RL(260)
392                  else writeln('\82 \82Æ\8f­\82µ\82Ì\82Æ\82±\82ë\82Å\81A',
393                        m[noun,1],'\82Ì\96½\82ð\92D\82¤\82Ì\82ð\8e~\82ß\82½!');
394                 end
395                else Crazy
396               else RL(83);
397
398 30         :if(noun in [39,43,12,26,6,22,47,49,68,78,17,11,
399                50,65,73,74,80,79,30])then RL(93) else RL(94);
400
401 54         :begin write('\8fI\97¹\82·\82é\91O\82É\83Q\81[\83\80\82ð\95Û\91\82µ\82Ü\82·\82©? (Y \82Ü\82½\82Í N) ');
402              flag := readkey;if(upcase(flag)<>'N')then SAVE else writeln('\82¢\82¢\82¦\81B');
403              write('\96{\93\96\82É\83Q\81[\83\80\82ð\8fI\97¹\82µ\82Ü\82·\82©? ');
404              flag := readkey;if(upcase(flag)='Y')then
405               begin RL(367);delay(999);window(1,1,80,25);clrscr;close(rooms1);
406                close(rooms2);close(special1);close(special2);close(line1);
407               HALT end else RL(264)end;
408 53         :if(Prm in[27,30])then RL(123) else RL(145);
409 59         :If(noun=23)then RL(368)else Diagnose;
410
411 55         :if(noun=74)then
412               if(en('p'))then
413                 begin Ev:=Ev-['p'];RL(169);end
414               else RL(168)
415             else
416             if(noun=89)then
417               if(en('i'))then
418                 begin
419                  Ev:=Ev-['i'];RL(322);
420                  if(Prm in[59,63..68])then begin RS(66);DEAD;end;
421                 end
422               else RL(323)
423             else Crazy;
424
425 56     :if(noun=Null)or(noun in[60,23])or(noun in Mov)then
426          case noun of
427           23:RL(369);
428           60,Null:RL(193);
429           7:RL(194)
430           else RL(195);
431          end
432         else RL(196);
433
434 3       :case noun of
435          7:RL(235);
436          2:if(en('b'))then RL(236)else RL(237);
437          62:RL(238);
438          65:RL(239);
439          74:RL(240);
440          78:RL(241);
441          84,40,50,68,85:RL(242)
442          else Crazy;
443         end;
444
445 7      :begin if(noun=Null)then noun:=30;
446          if(noun in[30,36,47,50,71,72,79])then
447           case noun of
448            30,47,50,71:if(Prm in[5..22,44..49])then RL(247) else RL(248);
449            36:RL(249);
450            72:RL(250);
451            79:RL(251);
452           end
453          else Crazy;
454         end;
455
456
457   end   {of CASE.}
458 end;    {of DefaultAnswers4}
459 {-------------------}
460 procedure DefaultAnswers5;
461 begin
462
463 CASE VERB OF
464
465 9         :if noun<>1 then
466              if(noun in Inven)then
467                if(noun=74)and(en('p'))then RL(170)
468           else if(noun=89)and(en('i'))then RL(335)
469           else begin
470                  inven:=inven-[noun];writeln(m[noun,1],': \92u\82¢\82½\81B');
471                  R[noun]:=Prm;
472                end
473              else
474                writeln(m[noun,1],'\82ð\8e\9d\82Á\82Ä\82¢\82È\82¢\81B')
475            else
476              begin
477               if(74 in inven)and(en('p'))then RL(170)else
478               if(89 in inven)and(en('i'))then RL(335)else
479               DropAll;
480             end;
481
482 26        :case noun of
483          2:if not(en('b'))then
484               begin
485                 Ev:=Ev+['b'];
486                 RL(3);end
487             else Say(noun,'\94\8d\82©\82ê\82Ä\82¢\82é');
488          7:RL(162);
489         57:if(ropecon<>Null)then
490               begin
491                 ropecon:=Null;
492                 RL(117);end
493             else Say(noun,'\89ð\82©\82ê\82Ä\82¢\82é');
494         62:RL(238)
495          else Crazy;
496          end; {end of OPEN }
497
498   end {of case}
499 end;  {of DefaultAnswers5}
500 {-------------------}
501 procedure DefaultAnswers6;
502 begin
503
504 CASE VERB OF
505
506 28,27     :case noun of
507            23:RL(369);
508            29:if not(en('a'))then
509                 begin Ev:=Ev+['a'];
510                 RL(120);end
511               else begin Ev:=Ev-['a'];
512                 RL(121);end;
513            57:if(ropecon<>Null)and not(ropecon in inven)
514                     and(r[ropecon]<>Prm)then
515                   if(ropecon in mov)then begin
516                     RL(57);writeln('\81c',m[ropecon,1],'\82¾!');
517                     r[ropecon]:=Prm;Ev:=Ev-['u'];
518                     if(ropecon=29)and not(flasoff)then DescribeRm;end
519                   else RL(56)
520                else RL(122);
521            8:begin RL(243);RL(244);play(9999,3500,0);play(3499,2000,1);
522               play(1999,1000,2);play(999,200,5);play(199,8,16);Ev:=Ev+['e'];
523               n[36,5]:=Q;n[78,5]:='glass';n[68,1]:='slot';n[66,4]:=Q;
524               Ev:=Ev-['j'];
525               moveto(30);
526               if(MnRm=Prm)then RS(73);
527              end;
528            81:if not(en('j'))then
529                if KeyHole then
530                 begin Ev:=Ev+['j'];RL(326);play(2000,2001,200);end
531                else RL(123)
532               else
533                begin Ev:=Ev-['j'];
534                 if Keyhole then begin RL(326);play(2001,2000,200)end
535                 else RL(123);
536                 if(Prm in[59..68])then begin nosound;RS(62);DEAD;end;
537                end;
538            36:begin
539                if(Prm > 57)then if(Prm = 58)then RL(123)else
540                 begin RS(63);DEAD;end;
541               end
542              else RL(122);
543            end; {of case}
544
545 62         :begin write('\82 \82È\82½\82Í1000\93_\92\86',Sc,'\93_\82ð\8al\93¾\82µ\81A');Tic:=Tic-1;
546               case Sc of
547               0..99:writeln('\93ü\96å\8eÒ\82Ì\83\89\83\93\83N\82É\92B\82µ\82½\81B');
548               100..249:writeln('\96`\8c¯\8f\89\90S\8eÒ\82Ì\83\89\83\93\83N\82É\92B\82µ\82½\81B');
549               250..399:writeln('3\8b\89\96`\8c¯\8eÒ\82Ì\83\89\83\93\83N\82É\92B\82µ\82½\81B');
550               400..549:writeln('2\8b\89\96`\8c¯\8eÒ\82Ì\83\89\83\93\83N\82É\92B\82µ\82½\81B');
551               550..699:writeln('1\8b\89\96`\8c¯\8eÒ\82Ì\83\89\83\93\83N\82É\92B\82µ\82½\81B');
552               700..849:writeln('\8fn\97û\96`\8c¯\8eÒ\82Ì\83\89\83\93\83N\82É\92B\82µ\82½\81B');
553               850..999:writeln('\8dÅ\8d\82\96`\8c¯\8eÒ\82Ì\83\89\83\93\83N\82É\92B\82µ\82½!')
554               else writeln('\8e\80\82¹\82é\96`\8c¯\8eÒ\82Ì\83\89\83\93\83N\82É\92B\82µ\82½!')
555               end;
556             Attack:=False;
557             if(MnRm=Prm)then RL(370)
558             end;
559
560   end {of case}
561 end;  {of DefaultAnswers6}
562 {-------------------}
563 procedure DefaultAnswers7;
564 var o : integer;
565 begin
566
567 CASE VERB OF
568
569 14      :if(noun<>1)then
570           if(noun in Mov)then
571            if not(noun in inven)then
572             begin
573             Stuff:=0;
574             for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;
575             if(Stuff < 6)then
576              if(en('r'))and(inven<>[])then RL(87)
577              else begin
578                    Vanish(Noun);inven:=inven+[noun];
579                    writeln(m[noun,1],': \8eæ\82Á\82½\81B');
580                    if(noun=70)then Ev:=Ev-['d'];
581                   end
582             else RL(234)
583             end
584            else writeln(m[noun,1],'\82Í\8aù\82É\8e\9d\82Á\82Ä\82¢\82é\81B')
585           else Crazy
586          else if(en('r'))then RL(88) else
587             begin flag:='0';Stuff:=0;
588              for o:=0 to NMax do if(o in inven)then Stuff:=Stuff+1;
589              if(Stuff < 7)then
590               for o:=0 to NMax do
591                begin
592                 if r[o]=Prm then
593                  if(Stuff+1 < 7)then
594                   begin
595                    vanish(o);inven:=inven+[o];Stuff:=Stuff+1;
596                    writeln(m[o,1],': \8eæ\82Á\82½\81B');flag:='1';
597                    if(o=70)then Ev:=Ev-['d'];
598                   end
599                  else
600                   begin flag:='1';
601                   writeln(m[o,1],': \82à\82¤\8e\9d\82Ä\82È\82¢!');end
602                end
603              else RL(234);
604              if(flag='0')then RL(49)
605             end; {of 14}
606
607 4,5       :RL(420);
608
609 64        :SAVE;
610
611   end {of case}
612 end;  {of DefaultAnswers7}
613 {-------------------}
614 procedure DefaultAnswers8;
615 begin
616
617 CASE VERB OF
618
619 10         :if(noun in [2,52])then
620               if(noun=2)then
621                 if(en('b'))then begin
622                   RL(45); Ev:=Ev+['c'];inven:=inven+[51];
623                   Vanish(2);Sc:=Sc+10;end
624                 else RL(46)
625               else begin RL(47);Ev:=Ev+['n'];Sc:=Sc+15;Vanish(52);end
626             else writeln('\82 \82È\82½\82ª',m[noun,1],
627                          '\82ð\8fÁ\89»\82Å\82«\82é\82Æ\82Í\8ev\82¦\82È\82¢!');
628
629 42         :case noun of
630             74:if not(en('p'))then
631                 if not(en('i'))then
632                  begin RL(20);inven:=inven+[74];r[74]:=Null;Ev:=Ev+['p'];end
633                 else RL(320)
634                else Say(74,'\92\85\82Ä\82¢\82é');
635             89:if not(en('i'))then
636                 if not(en('p'))then
637                  begin RL(319);vanish(89);inven:=inven+[89];Ev:=Ev+['i'];end
638                 else RL(318)
639                else Say(89,'\94í\82Á\82Ä\82¢\82é')
640             else RL(128);
641             end;
642
643 17,0       :if(noun2=Noun)then Crazy else
644             if(noun2 in Mov)or(Noun2=Null)then
645             case Noun of
646              2:begin RL(21);Vanish(2);Sc:=Sc+25;r[51]:=Prm;end;
647              60:begin RL(22);DEAD;end;
648              52:begin RL(34);Vanish(52);end;
649              23:if(noun2=null)then RL(369)
650                 else begin Vanish(noun2);Attack:=False;
651                  writeln('\89ö\95¨\82Í',m[noun2,1],'\82ð\92Í\82Ý\90H\82×\82½!');
652                      end;
653              7:begin RL(35);Vanish(7);r[52]:=Prm;Ev:=Ev+['I'];end
654              else if(verb=0)then writeln('\82 \82Æ\8f­\82µ\82Ì\82Æ\82±\82ë\82Å',
655                  m[noun,1],'\82Ì\96½\82ð\92D\82¤\82Ì\82ð\8e~\82ß\82½!')
656                   else RL(216);
657              end{of case}
658              else Crazy;
659
660 39         :if((SepWord='to')or(SepWord='off'))and(Noun2=Null)then
661              case Noun of
662               29:if(SepWord='to')then begin Ev:=Ev+['a'];RL(120);end
663                  else begin Ev:=Ev-['a'];RL(121);end;
664               13:RL(148);
665               20:RL(149);
666               65:RL(150)
667              else Crazy end
668             else RL(80);
669
670   end {of case}
671 end;  {of DefaultAnswers8}
672 {-------------------}
673 procedure DefaultAnswers9;
674 begin
675
676 CASE VERB OF
677
678 32    :if(34 in inven)then
679         if(shots>0)then
680          begin
681          Shots:=Shots-1;
682          for x:=1 to (26-(4*(6-Shots))) do
683             begin play(300,350,11-Shots*2);play(320,370,11-Shots*2);end;
684           if(noun=34)and(noun2<>34)and(noun2<>Null)and(SepWord='at')then
685              begin noun:=noun2; noun2:=34; SepWord:='with';end;
686           if((noun2=34)and(noun<>34)and(SepWord='with'))or
687             ((noun<>34)and(SepWord='s'))then
688       case noun of
689        1:begin;Crazy;Shots:=Shots+1;end;
690        2,7,8,13,27,29,32,40,51,52,63,74,77,89:begin vanish(noun);
691           writeln(m[noun,1],'\82Í\94\9a\94­\82µ\81A\91M\8cõ\82Ì\92\86\82É\8fÁ\82¦\82½!');
692             if(noun=74)and(en('p'))then begin RL(232);DEAD;end;
693          end;
694        48:begin RL(222);RL(223);Ev:=Ev+['g'];p[40]:=p[40]-[48];
695            if not(en('P'))then begin Ev:=Ev+['P'];Sc:=Sc+25;end;end;
696        12,26:RL(224);
697        23:begin case random(4)of 0:RL(375);1:RL(376);2:RL(377);3:RL(378)end;
698            Attack:=False;
699           end;
700        45:RL(315);
701        60,56,44:begin RL(233);DEAD;end
702        else writeln('\82Ü\82Î\82ä\82¢\8cõ\90ü\82ª',m[noun,1],'\82É\96½\92\86\82µ\82½\82ª\81A',
703                       '\8d\95\82­\8fÅ\82°\82½\82¾\82¯\82¾\82Á\82½\81B');
704       end {of shoot case}
705           else if(noun=34)and(noun2=Null)then RL(213)
706           else begin;Crazy;Shots:=Shots+1;end;
707          end
708         else begin writeln('\81c\83J\83`\83b!');play(25,32,9);end
709        else RL(208);
710
711   end {of case}
712 end;  {of DefaultAnswers9}
713 {-------------------}
714 procedure DefaultAnswers10;
715 begin
716
717 CASE VERB OF
718
719 36         :if(noun in mov)then
720              if(noun in inven)then
721               if((noun in[2,7,52,29])or
722                  (noun2 in[2,7,23,29,47,52,53,73,88]))and(noun<>noun2)then
723                begin
724                 if(noun=2)or(noun2=2)then begin RL(95);vanish(2);
725                   r[51]:=Prm;end;
726                 if(noun=7)or(noun2=7)then begin RL(35);vanish(7);
727                   Ev:=Ev+['I'];r[52]:=Prm;end;
728                 if(noun=29)or(noun2=29)then begin RL(96);vanish(29);end;
729                 if(noun=52)or(noun2=52)then begin RL(34);vanish(52);end;
730                 if(noun2=88)then begin RL(293);vanish(noun);
731                   if(noun=2)then noun:=51;if(noun=7)then noun:=52;
732                   r[noun]:=random(4)+51;end;
733                 if(Prm in[0..6,9,10,13,41..43])and(noun2 in[73,53,47])then
734                   begin RL(306);vanish(noun);end;
735                 if(noun2=23)then begin Attack:=False;Vanish(noun);RL(379);
736                   writeln(m[noun,1],'\82ð\83L\83\83\83b\83`\82µ\82Ä\90H\82×\81A',
737                         '\91å\82«\82È\83Q\83b\83v\82ð\82µ\82½!')end;
738                end
739               else begin writeln(m[noun,1],'\82Æ',
740                 m[noun2,1],'\82ð\82Ô\82Â\82¯\82½\82ª\89½\82à\8bN\82±\82ç\82È\82©\82Á\82½\81B');
741                 Vanish(noun);r[noun]:=Prm;end
742              else writeln(m[noun,1],'\82ð\8e\9d\82Á\82Ä\82¢\82È\82¯\82ê\82Î\82È\82ç\82È\82¢!')
743             else Crazy;
744
745 37         :if(noun=57)then
746              if(sepword='to')then
747               if not(noun2 in[1,15,17,22,30,46,47,50,52,72,73,79,80,83])then
748                if(ropecon=Null)then begin
749                 ropecon:=noun2;
750                 writeln('\83\8d\81[\83v\82ð',m[noun2,1],'\82É\82µ\82Á\82©\82è\82Æ\8c\8b\82Ñ\95t\82¯\82½\81B');
751                 if(noun2=57)then RL(48);end
752                else writeln('\83\8d\81[\83v\82Í\82à\82¤',m[ropecon,1],'\82É\8c\8b\82Î\82ê\82Ä\82¢\82é\81B')
753               else RL(50)
754              else Crazy
755             else Crazy;
756
757 61         :begin RL(245);flag := readkey;
758              if(upcase(flag)<>'N')then
759               begin RL(380);delay(999);window(1,1,80,25);clrscr;close(rooms1);
760                close(rooms2);close(special1);close(special2);close(line1);
761                halt(executeProcess(ParamStr(0), '', []));
762               end
763              else RL(264)
764             end;
765
766 65        :RESTORE;
767
768   end {of case}
769 end;  {of DefaultAnswers10}
770 {===================}
771 procedure SpecialAnswers1;
772
773 begin
774 FlagSA:='r';
775 if Present then
776 CASE Prm OF
777
778 3       :case verb of
779   44,58 :moveto(1);
780   20,52 :if(noun=6)then RL(40);
781     14  :if(noun=57)and not(en('o'))then RL(419);
782    6    :if(noun=57)and(here(40))and((noun2=Null)or(noun2=40))then
783              begin
784                RS(4); tic:=15; moveto(4); Ev:=Ev+['A']; Sc:=Sc+25;
785                if(en('o'))then
786                  for o:= 0 to 57 do begin
787                    if(o in kitset)then r[o]:=Prm;
788                    if(r[o]=3)then r[o]:=Prm;end
789              end;
790    26   :if(noun=39)then
791              if not(en('o'))then
792                begin Ev:=Ev+['o'];RL(328); for o:=2 to 57 do
793                  if(o in kitset)then r[o]:=Prm;end
794              else Say(noun,'\8aJ\82¢\82Ä\82¢\82é');
795    3  :if(noun=39)then
796              if(en('o'))then
797                begin Ev:=Ev-['o'];RL(186); for o:=2 to 57 do
798                  if(o in kitset)then r[o]:=Null;end
799              else Say(noun,'\95Â\82\82Ä\82¢\82é');
800   17,28,27 :if(noun in [6,57,39,59])then RL(29);
801   24,11   :case noun of
802        39  :if(en('o'))then
803                if kitset=[] then begin RL(329);end
804                else begin RL(330);for o:= 0 to 57 do
805                    if(o in kitset)then writeln('  ',m[o,1]);end
806              else RL(331);
807        57 :RL(10);
808        73 :RL(19);
809        6 :DescribeRm;
810            end;
811          end; {of 3}
812
813 4      :case verb of
814    43..52,20:RL(7);
815     55  :if(noun=35)then begin RL(332);Ev:=Ev-['B'];end;
816   42,3:if noun=35 then begin RL(8); Ev:=Ev+['B'];end
817            else if(noun=39)then
818              if(en('o'))then
819                begin Ev:=Ev-['o'];RL(186); for o:=0 to 57 do
820                  if(o in kitset)then r[o]:=Null;end
821              else Say(noun,'\95Â\82\82Ä\82¢\82é');
822   29,37 :if(noun=35)and(noun2=60)then begin
823              RL(8);Ev:=Ev+['B'];end;
824    26   :if(noun=35)and(en('B'))then begin RL(332);Ev:=Ev-['B'];end
825            else if(noun=39)then
826              if not(en('o'))then
827                begin Ev:=Ev+['o'];RL(328); for o:=0 to 57 do
828                  if(o in kitset)then r[o]:=Prm;end
829              else Say(noun,'\8aJ\82¢\82Ä\82¢\82é');
830    19,2:if(noun in[6,64])or(noun=Null)then
831              if(en('B'))then RL(9)
832              else begin RL(0);DEAD;end;
833     24,11:case noun of
834        39  :if(en('o'))then
835                if kitset=[] then begin RL(329);end
836                else begin RL(330);for o:= 0 to 57 do
837                    if(o in kitset)then writeln('  ',m[o,1]);end
838              else RL(331);
839        35 :RL(12);
840        73 :RL(19);
841        6 :DescribeRm;
842            end;  {of case}
843          end; {of 4}
844
845 end {of case}
846 else SA
847 end; {of SP1}
848 {-------------------}
849 procedure SpecialAnswers2;
850
851 begin
852 FlagSA:='r';
853 if Present then
854 Case Prm of
855
856 5       :case verb of
857    45   :moveto(6);
858    2    :if(noun=79)then RL(263);
859            end;
860
861 6       :case verb of
862    46   :moveto(5);
863   43..45,47..52:if FlasOff then RL(14)
864          else case verb of
865            43:begin Ox:=0;RL(286);moveto(7);end;
866            45:moveto(9); 49:moveto(8);
867               end;
868              end; {of 6}
869
870 7       :case verb of
871   23..25,11:if(noun in[6,36,73,0,15,64,67])then RS(9);
872   43..50 :if FlasOff then RL(14)
873           else
874            begin
875             If(Verb in[43,47,48])then Ox:=Ox+1;
876             If(Verb in[44,49,50])then Ox:=Ox-1;
877             if(Ox<1)then begin RL(286);moveto(6)end
878             else
879              begin
880               RL(333);
881               if(random(20)=2)then begin writeln;RS(9);
882                if not(en('K'))then begin Ev:=Ev+['K'];Sc:=Sc+15;end;end;
883              end;
884            end;
885   28,17,6:if(noun=36)or(noun=15)then begin RS(10);DEAD;end;
886   31   :if(input='help')then begin RL(334);moveto(6)end;
887          end;  {of 7}
888
889 8       :case verb of
890    48,58:if FlasOff then RL(14) else moveto(6);
891   43..47,49..52:if FlasOff then RL(14);
892   11:if(noun in [46,79])then RS(12)
893          else if(noun in [15,30])then RL(28);
894    38 :if(noun=46)then begin SA;writeln('\83M\83U\83M\83U\82¾\81B');end;
895          end; {of 8}
896
897 9         :case verb of
898    43..52 :if FlasOff then RL(14)
899          else case verb of
900            46:moveto(6);47:moveto(10);49:moveto(11);
901               end;
902            end; {of 9}
903
904 10        :case verb of
905    50,58 :if FlasOff then RL(14)
906          else moveto(9);
907    43..49,51..52:if FlasOff then RL(14);
908   19,2:if(noun in[17,80])then begin RL(0);DEAD;end;
909            end; {of 10}
910
911 end {of case}
912 else SA
913 end; {of SP2}
914 {-------------------}
915 procedure SpecialAnswers3;
916
917 begin
918 FlagSA:='r';
919 if Present then
920 Case Prm of
921
922 14       :case verb of
923    46,48 :if FlasOff then RL(14)
924           else if(verb=46)then moveto(11) else moveto(15);
925   43..45,47,49..52 :if FlasOff then RL(14);
926           end; {of 14}
927
928 15     :case Verb of
929    52,2 :if(en('d'))and(en('t'))then
930            begin RL(63);moveto(16);end else RL(64);
931   19   :RL(64);
932   7    :RL(65);
933   14    :if(noun in[57,70])then begin inven:=inven+[noun];r[noun]:=Null;
934            if(noun=70)then Ev:=Ev-['d']
935            else Ev:=Ev-['t'];SA;writeln(m[noun,1],': \8eæ\82Á\82½\81B');end;
936   45,49  :if(flasoff)then RL(14) else moveto(14);
937    44    :RL(73);
938   24,11:if(noun=17)and not(en('u'))then RL(74)
939            else if(noun=17)and(en('a'))then RL(75);
940   17,36,29,9:case noun of
941    70:if((noun2 in[30,42])or(noun2=Null))and(verb<>9)then
942          if not(en('d'))then
943           begin RL(69);Ev:=Ev+['d'];r[70]:=Prm;inven:=inven-[70];end
944          else RL(67)
945         else if(verb=9)then begin end else RL(66);
946    57:if(noun2=17)and(verb<>17)then begin
947           if(here(ropecon))and(ropecon<>57)then begin
948             RL(71);inven:=inven-[57];r[57]:=Prm;
949             if(ropecon=70)then Ev:=Ev+['t'];end
950           else begin RL(70);vanish(57); end;
951          end else begin end
952    else if(verb in[9,29,36])and(noun2=17)and(noun in mov)then
953          if(here(ropecon))and(noun=ropecon)then begin RL(76);
954           inven:=inven-[noun];r[noun]:=Null;
955           if(ropecon=29)then Ev:=Ev+['u'];end
956          else begin RL(72);inven:=inven-[noun];r[noun]:=17;end
957       end;{of noun case}
958          end;{of 15}
959
960 16       :case verb of
961    51,2   :moveto(15);
962    52    :RL(85);
963   0,3..18,20..21,26..40,42,53,55,56,60:RL(86);
964    19,61:begin RS(18);Ev:=Ev-['a'];Ev:=Ev+['r'];Sc:=Sc+60;
965           moveto(17);dropall;if(here(2))then begin r[2]:=Null;
966           r[51]:=Prm;end;r[57]:=Null;end;
967          end;{of 57}
968
969 end  {of Case}
970 else SA
971 end; {of SP3}
972 {-------------------}
973 procedure SpecialAnswers4;
974
975 begin
976 FlagSA:='r';
977 if Present then
978 Case Prm of
979
980 19      :case verb of
981    48,51,58:if(flasoff)then RL(14)else begin RL(311);moveto(18);end;
982    47,52,57:if(flasoff)then RL(14)else begin RL(309);moveto(20);end;
983          end;{of stairs}
984
985 20      :case verb of
986    50,51,58:if(flasoff)then RL(14)else begin RL(310);moveto(19);end;
987    11,24,25,23:if(noun=67)then RL(90)
988      else if(noun in[12,43])and not(en('E'))then begin RL(92);
989             r[32]:=20;Sc:=Sc+15;Ev:=Ev+['E'];end;
990   14,38:if(noun in[67,12])then RL(91);
991   43..49,57:if(noun=Null)or(noun in[12,43])then RL(215);
992         end;{of 20}
993
994 21       :case verb of
995     50   :if(flasoff)then RL(14)else moveto(18);
996     47   :if(flasoff)then RL(14)else moveto(22);
997    2,51:if(flasoff)then RL(14)else
998             if(noun=64)or(noun=Null)then moveto(23);
999     45   :RL(97);
1000     49,44,43:RL(258);
1001   11     :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;
1002         end;
1003
1004 22       :case verb of
1005     50   :if(flasoff)then RL(14)else moveto(21);
1006     2,51 :if(flasoff)then RL(14)else
1007             if(noun=64)or(noun=Null)then moveto(23);
1008     44   :RL(97);
1009     47,45,49:RL(258);
1010     11     :if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;
1011         end; {of 22}
1012
1013 23      :case verb of
1014    46,50 :if(flasoff)then RL(14)else moveto(21);
1015    43,48 :if(flasoff)then RL(14)else moveto(22);
1016    44,45,47,49:RL(258);
1017    26,27 :if(noun=26)then
1018            if(en('l'))then Say(26,'\8aJ\82¢\82Ä\82¢\82é')
1019            else begin RL(98);Ev:=Ev+['l'];p[23]:=p[23]+[69];end;
1020     3    :if(noun=26)then
1021            if(en('l'))then begin RL(171);Ev:=Ev-['l'];p[23]:=p[23]-[69];end
1022            else Say(26,'\95Â\82\82Ä\82¢\82é');
1023   2,52,57:if(en('l'))and((noun=69)or(noun=Null))then moveto(24)else RL(99);
1024   24,25  :if(noun=26)then RL(151);
1025    11    :if(noun=26)then if(en('l'))then RL(217)else RL(218)
1026           else if(noun in[30,64])then begin RL(255);RL(256);RL(257)end;
1027         end; {of 23}
1028
1029 24      :case verb of
1030    51,58:if(en('l'))then moveto(23) else RL(99);
1031    52,57:moveto(25);
1032   24,25 :if(noun=26)then RL(151);
1033    3    :if(noun=26)then begin RL(171);Ev:=Ev-['l'];end else
1034          if(noun=55)then RL(411);
1035    2    :if(noun=69)then Moveto(25);
1036    26   :if(noun=26)then begin RL(98);Ev:=Ev+['l'];end else
1037          if(noun=55)then RL(412);
1038    11   :if(noun=26)then if(en('l'))then RL(217)else RL(218)else
1039          if(noun=55)then RL(410);
1040    27,28:If(noun=55)then RL(411);
1041        end;
1042
1043 end   {of case}
1044 else SA
1045 end;  {of SP4}
1046 {-------------------}
1047 procedure SpecialAnswers5;
1048
1049 begin
1050 FlagSA:='r';
1051 if Present then
1052 Case Prm of
1053
1054 25     :case verb of
1055      43:begin writeln('\94à\82ª\82Ð\82Æ\82è\82Å\82É\8aJ\82¢\82½\81c');play(55,70,40);moveto(27);
1056          writeln('\8cã\82ë\82Ì\94à\82ª\95Â\82Ü\82Á\82½\81B');play(70,55,40);
1057          if not(en('Y'))then begin Ev:=Ev+['Y'];Sc:=Sc+30 end end;
1058      44:moveto(32); 45:moveto(30);
1059      46:moveto(34); 47:moveto(28); 49:moveto(31);
1060      48:if(en('v')and not(en('p')))then begin Verbose:=False;moveto(35);
1061           RS(25);DEAD; end else moveto(35);
1062      50:moveto(33); 51,58:moveto(24);
1063      52,2:if(noun=69)or(noun=Null)then moveto(26);
1064      17,27,28,38:if(noun=26)then
1065           begin RL(413);play(55,70,45);play(69,54,45)end;
1066    26,40:if(noun=26)then RL(414);
1067         end;
1068
1069 27      :case verb of
1070    44,58:begin writeln('\94à\82ª\82Ð\82Æ\82è\82Å\82É\8aJ\82¢\82½\81c');play(55,70,40);moveto(25);
1071           writeln('\8cã\82ë\82Ì\94à\82ª\95Â\82Ü\82Á\82½\81B');delay(999);play(70,55,40)
1072          end;
1073      17,27,28,38:if(noun=26)then
1074           begin RL(413);play(30,40,25);play(40,30,25)end;
1075    26,40:if(noun=26)then RL(414);
1076    11  :if(noun in[20,21])then RL(103)
1077       else if(noun=58)then case compcon of
1078         Null:RL(155); 1:RS(21); 2:RS(22); 3:RS(23);
1079         4:begin RS(24);compcon:=Null;gotoxy(1,wherey-1);
1080            writeln('\8e\9e....\89®..\83R..\83h: ',Code,'.. ..\83e\83\8c..\81[\83g...  .  .',
1081                    '... . .. \8aÔ .  \83p\83l.. ....... ...');
1082            RL(105);play(29,29,40);end;end;{of case}
1083    53  :begin
1084          if(input='1')or(input='one')then begin RL(104);compcon:=1;end;
1085          if(input='2')or(input='two')then begin RL(104);compcon:=2;end;
1086          if(input='3')or(input='three')then begin RL(104);compcon:=3;end;
1087          if(input='4')or(input='four')then begin RL(104);compcon:=4;end;
1088          for y:=1 to random(40)+9 do
1089           begin x:=random(6000)+99;play(x,x,50);delay(9)end
1090        end;
1091    31   :if(compcon=null)then begin
1092           play(9,999,0);sound(999);RS(20);play(999,9,0);if not(en('J'))then
1093           begin Ev:=Ev+['J'];Sc:=Sc+40;end;end;
1094        end;
1095
1096 28     :case verb of
1097    50,58:moveto(25);
1098    45,57:moveto(29);
1099    28   :if(noun in[33,10])then begin RL(137);play(31,31,450);end;
1100        end;
1101
1102 29    :case verb of
1103    46,58:moveto(28);
1104    36   :if(noun2 in[33,10])and(noun in Mov)then
1105            if(en('M'))then
1106              begin RS(27);Ev:=Ev-['M','r'];Vanish(noun);r[noun]:=28;
1107                if not(en('N'))then begin Ev:=Ev+['N'];Sc:=Sc+55;end;
1108              play(28,34,600)end
1109            else begin Vanish(noun);r[noun]:=28;RL(179);
1110              if(noun in[7,8,29,34,40,51])then Ev:=Ev+['M'];end;
1111        end;
1112
1113 33     :case verb of
1114    47,58:moveto(25);
1115     34  :RL(272);
1116    28,38:if(noun=10)then begin RL(421);x:=random(9999);case random(3) of
1117           0:play(x,random(9999),random(3));
1118           1:for y:=1 to random(300)+60 do
1119              begin x:=random(9999);play(x,x,2);delay(7)end;
1120           2:begin y:=9999;o:=0;
1121              repeat x:=random(9999);play(x,y,0);
1122                     y:=random(9999);play(y,x,0);o:=o+1;
1123              until o>7 end end end
1124        end;
1125
1126 end {of case}
1127 else SA
1128 end; {of SP5}
1129 {-------------------}
1130 procedure SpecialAnswers6;
1131
1132 begin
1133 FlagSA:='r';
1134 if Present then
1135 Case Prm of
1136
1137 30   :case verb of
1138    46,58:if(en('e'))then RL(212) else moveto(25);
1139    26,27,28,40:if(noun=49)then if(en('h'))then Say(49,'\8aJ\82¢\82Ä\82¢\82é') else RL(159)
1140                else
1141                 if(noun in[10,76])and(verb=28)then
1142                  begin
1143                  if(MnRm=30)then begin RS(76);DEAD;end;
1144                   if(en('e'))then
1145                    begin RS(29);writeln;
1146                     play(1,700,7);play(701,8000,1);Ev:=Ev-['e'];
1147        case YearDial of
1148               1933:begin Loc:='Civilization!';Sc:=Sc+80;RS(78);HOME;END;
1149         2111..2679:begin
1150                      Verbose:=False;moveto(41);RS(30);Verbose:=True;
1151                      if not(en('O'))then begin Sc:=Sc+55;Ev:=Ev+['O'];end;
1152                n[78,5]:=Q;n[37,5]:='glass';n[72,1]:='fence';
1153                n[70,1]:='hooded figure';n[70,2]:='hooded';n[70,3]:='figure';
1154                n[70,4]:='mutant';n[70,5]:=Q;n[3,1]:='footprints';
1155                n[3,2]:='footpri';n[57,1]:='parachute';n[57,2]:='parachu';
1156                n[35,1]:='boulder';n[35,2]:='rock';n[35,3]:='rocks';
1157                n[66,4]:='red';
1158                    end;
1159         0..1111   :begin writeln;RS(31);DEAD;end;
1160         1112..1932,1934..2110:begin writeln;RS(32);DEAD;end;
1161         2680..3789:begin writeln;RS(33);DEAD;end
1162              else  begin writeln;RS(34);DEAD;end;
1163        end; {of YearDial case}
1164                    end
1165                   else begin RL(209);play(1,9999,0)end;
1166                  end;
1167    33   :if(noun in[16,59])or(noun=Null)then begin Ev:=Ev+['e'];RL(210);end;
1168    35   :if(en('e'))then begin Ev:=Ev-['e'];RL(211);Attack:=False end;
1169    17,0,6:if(noun=49)then RL(160);
1170    53  :if(input=Code)then
1171          If(en('h'))then Say(49,'\8aJ\82¢\82Ä\82¢\82é')
1172          else
1173           begin Ev:=Ev+['h'];RL(173);play(23,24,250);Sc:=Sc+30;
1174             if(PanelCon<>Null)then begin r[PanelCon]:=30;Code:='R';
1175              writeln('\83p\83l\83\8b\82Ì\89\9c\82É',
1176                       m[PanelCon,1],'\82ª\82 \82é\81B');end
1177             else RL(183);
1178           end
1179         else RL(172);
1180    3   :If(noun=49)then RL(159);
1181    39  :if(noun=25)then RL(115) else
1182         case noun of
1183         24:if(DialNum>0)and(DialNum<377)then begin RL(176);DayDial:=DialNum;end
1184            else RL(178);
1185         82:if(DialNum>-1)and(DialNum<5000)then begin RL(177);
1186              YearDial:=DialNum;end else RL(178);
1187         end;
1188  11,24:case noun of
1189    49:begin SA;if(en('h'))then if(PanelCon=Null)then RL(183)
1190                  else writeln('\83p\83l\83\8b\82Ì\89\9c\82É',m[PanelCon,1],'\82ª\82 \82é\81B')
1191                else RL(184);end;
1192    82:begin SA;writeln('\94N\83_\83C\83\84\83\8b\82Í',YearDial,'\82É\83Z\83b\83g\82³\82ê\82Ä\82¢\82é\81B');end;
1193    24:begin SA;writeln('\93ú\83_\83C\83\84\83\8b\82Í',DayDial,'\82É\83Z\83b\83g\82³\82ê\82Ä\82¢\82é\81B');end;
1194    16:begin RL(203);RL(204)end;
1195    25:RL(115);
1196    38:RL(161);
1197       end;
1198        end; {of 30}
1199
1200 end  {of case}
1201 else SA
1202 end; {of SP6}
1203 {-------------------}
1204 procedure SpecialAnswers7;
1205
1206 begin
1207 FlagSA:='r';
1208 if Present then
1209 Case Prm of
1210
1211 26     :case verb of
1212   51,58,2:if(noun=69)or(noun=Null)then moveto(25);
1213   43,48 :moveto(36); 44,49 :moveto(38); 45,47 :moveto(39); 46,50 :moveto(37);
1214         end;
1215
1216 35      :case verb of
1217    49,58:moveto(25);
1218   11:case noun of
1219     54:RL(100);
1220     62:if(en('v'))then RL(205)else RL(206);
1221     end;
1222   28  :if(noun in[55,10])then
1223         if(en('v'))then begin RL(101);Ev:=Ev-['v'];play(40,65,80)end
1224         else
1225          begin RL(102); Ev:=Ev+['v'];play(65,40,80);
1226           if not(en('p'))then begin RS(28);DEAD;end
1227           else if(MnRm=35)then
1228            begin n[23,1]:='melted monster';n[23,4]:='melted';MnRm:=Null;
1229             RS(74);p[35]:=p[35]+[77];
1230             if not(en('W'))then begin Sc:=Sc+65;Ev:=Ev+['W'] end
1231            end
1232          end;
1233   14  :if(noun in[1,77])and(77 in p[35])then begin Sc:=Sc+10;noun:=77;end;
1234   55  :if(noun=74)then
1235         if(en('v'))then begin RS(26);DEAD end;
1236   38 :RL(30);
1237        end;
1238
1239 36     :case verb of
1240   44,49,58:moveto(26);
1241     45  :moveto(39);
1242     46  :moveto(37);
1243     57  :if(noun=12)then RL(215);
1244         end;
1245
1246 37     :case verb of
1247   45,47,58:moveto(26);
1248     43  :moveto(36);
1249     44  :moveto(38);
1250     57  :if(noun=12)then RL(215);
1251         end;
1252
1253 38     :case verb of
1254   43,48,58:moveto(26);
1255     45  :moveto(39);
1256     46  :moveto(37);
1257     57  :if(noun=12)then RL(215);
1258    0..42,44,47,49..56,59..99:if(noun=28)or(noun2=28)then
1259           begin RS(35);RL(220);p[40]:=p[40]+[48];moveto(40);Ev:=Ev-['g'];
1260            if(MnRm=Prm)then begin RS(79);DEAD end
1261           end;
1262         end;{of 38}
1263
1264 39     :case verb of
1265   46,50,58:moveto(26);
1266     45  :if(en('g'))then moveto(40);
1267     3   :if(noun=26)then if(en('g'))then RL(225) else Say(26,'\95Â\82\82Ä\82¢\82é');
1268     43  :moveto(36);
1269     44  :moveto(38);
1270     57  :if(noun=12)then RL(215);
1271         end;
1272
1273 40     :case verb of
1274   46,58 :if(en('g'))then moveto(39) else RL(221);
1275    26   :if(noun=26)then if(en('g'))then Say(26,'\8aJ\82¢\82Ä\82¢\82é') else RL(221);
1276    3    :if(noun=26)then if(en('g'))then RL(225) else Say(26,'\95Â\82\82Ä\82¢\82é');
1277   11,14 :if(noun in[12,43,83])then RL(261);
1278        end;
1279
1280 end  {of case}
1281 else SA
1282 end; {of SP7}
1283 {-------------------}
1284 procedure SpecialAnswers8;
1285
1286 begin
1287 FlagSA:='r';
1288 if Present then
1289 Case Prm of
1290
1291 41     :case verb of
1292     43  :moveto(42);
1293     44  :moveto(43);
1294   2,19  :if(noun in[53,73,87])then
1295            begin RS(39);RL(287);moveto(46);Rx:=4;end;
1296        end;
1297
1298 42     :case verb of
1299     44  :moveto(41);
1300     43  :RL(296);
1301     14  :if(noun in[13,1])and(13 in p[42])then
1302           begin Sc:=Sc+10;noun:=13;end;
1303   2,19  :if(noun in[53,73,87])then
1304            begin RS(39);RL(287);moveto(46);Rx:=4;end;
1305        end;
1306
1307 43     :case verb of
1308     43  :moveto(41);
1309     44  :moveto(44);
1310   2,19  :if(noun in[53,73,87])then
1311            begin RS(39);RL(287);moveto(46);Rx:=4;end;
1312         end;
1313
1314 44     :case verb of
1315     43  :moveto(43);
1316     46  :moveto(47);
1317     45  :begin RL(274);Rx:=0;moveto(46);end;
1318   44,47..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);
1319        end;
1320
1321 45     :case verb of
1322     44  :moveto(49);
1323     46  :begin RL(274);Rx:=8;moveto(46);end;
1324     45  :begin Rx:=9;RL(274);moveto(46);end;
1325   43,47..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);
1326         end;
1327
1328 46     :case verb of
1329     45  :begin Rx:=Rx+1;RL(274);
1330           if(Rx=9)then begin
1331           if not(en('T'))then begin Ev:=Ev+['T'];Sc:=Sc+30;end;
1332           moveto(45)end;
1333           if(Rx>86)then begin RL(340);moveto(47)end
1334          end;
1335     46  :begin Rx:=Rx-1;RL(274);
1336           if(Rx=8)then moveto(45);
1337           if(Rx<1)then moveto(44);
1338          end;
1339   43,44,47..51,2,19:if(noun=Null)or(noun in[41,79])then RL(275);
1340         end;
1341
1342 47     :case verb of
1343   46,52,2,19:begin if(random(2)=1)then begin RS(37);DropAll;moveto(48)end
1344                    else begin RL(277);moveto(48)end;end;
1345     45  :moveto(44);
1346   43,44,47..50:RL(278);
1347         end;
1348
1349 48     :case verb of
1350   45,51,2:if(random(3)=2)and(noun<>35)then begin RS(38);moveto(47)end
1351           else if(noun<>35)then RL(279);
1352    43,44,46..50:RL(279);
1353      14  :if(noun in[27,1])and(27 in p[48])then
1354            begin Sc:=Sc+20;noun:=27;end;
1355      11 :if(noun=35)then RL(289)
1356         end;
1357
1358 end  {of case}
1359 else SA
1360 end; {of SP8}
1361 {-------------------}
1362 procedure SpecialAnswers9;
1363
1364 begin
1365 FlagSA:='r';
1366 if Present then
1367 Case Prm of
1368
1369 50     :case verb of
1370   43,58 :begin RL(290);moveto(49);end;
1371   44,57 :if(noun=Null)or(noun in[88,26,50])then
1372           begin RS(41);if not(en('L'))then
1373            begin Ev:=Ev+['L'];Sc:=Sc+25;end;moveto(51);end;
1374     11  :case noun of
1375           35,50:RL(292);
1376           88,68:RS(42);
1377           46,66:RS(43);
1378          end;
1379   30,28,38,17,14:if(noun=88)then RL(294);
1380         end;
1381
1382 51     :case verb of
1383     44  :moveto(52);
1384     46  :moveto(52);
1385     48  :moveto(53);
1386         end;
1387
1388 52     :case verb of
1389     43  :moveto(51);
1390     47  :moveto(53);
1391     46  :moveto(51);
1392         end;
1393
1394 53     :case verb of
1395    52,2,57:if(noun=Null)or(noun=69)then begin if not(en('Q'))then
1396             begin Ev:=Ev+['Q'];Sc:=Sc+30;end;moveto(55);end;
1397     47  :moveto(52);
1398     45  :moveto(53);
1399     49  :moveto(54);
1400         end;
1401
1402 54     :case verb of
1403     43  :moveto(52);
1404     49  :moveto(53);
1405     44  :moveto(51);
1406     50  :begin if not(en('R'))then
1407           begin Ev:=Ev+['R'];Sc:=Sc+20;end;moveto(56);end;
1408         end; {verb case}
1409
1410 55     :case verb of
1411   51,2,58,44:if(noun=Null)or(noun=69)then moveto(53);
1412    11   :if(noun in[11,45])then
1413           begin RL(297);if(en('k'))then RL(298) else RL(299)end;
1414    26,40:if(noun in[45,26,11,68])and(noun2=27)and(SepWord='with')then
1415            if not(en('k'))then
1416             begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do
1417              if(o in cabiset)then r[o]:=55;
1418              if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;
1419             end
1420            else Say(11,'\8aJ\82¢\82Ä\82¢\82é')
1421           else if(SepWord='s')then RL(317);
1422    29   :if(noun=27)and(noun2 in[45,26,11,68])and(SepWord='in')then
1423           if not(en('k'))then
1424            begin Ev:=Ev+['k'];RS(45);for o:=2 to NMax do
1425             if(o in cabiset)then r[o]:=55;
1426             if not(en('R'))then begin Ev:=Ev+['R'];Sc:=Sc+55;end;
1427            end
1428           else RL(216);
1429    3    :if(noun in[45,26,11])then
1430           if(en('k'))then
1431            begin RL(314);play(30,32,30);Ev:=Ev-['k'];
1432             for o:= 2 to NMax do if(o in cabiset)then r[o]:=Null;
1433            end
1434           else Say(11,'\8c®\82ª\8a|\82©\82Á\82Ä\82¢\82é');
1435   24,30 :if(noun in[26,11])then
1436           if(en('k'))then
1437            begin RL(324);
1438             if(cabiset=[])then RL(339)else
1439              for o:=0 to NMax do if(o in Cabiset)then writeln('  ',m[o,1])
1440            end
1441           else RL(299);
1442        end; {of 55}
1443
1444
1445 end  {of case}
1446 else SA
1447 end; {of SP9}
1448 {-------------------}
1449 procedure SpecialAnswers10;
1450
1451 begin
1452 FlagSA:='r';
1453 if Present then
1454 Case Prm of
1455
1456 56     :case verb of
1457     47  :moveto(54);
1458   2,51,58:if(noun=Null)or(noun=69)then moveto(57);
1459         end;
1460
1461 57     :case verb of
1462    46,57,2,33:if(noun=Null)or(noun=65)then
1463           begin n[68,1]:='keyhole';n[68,4]:='slot';moveto(58)end;
1464    52   :moveto(56);
1465         end;
1466
1467 58     :case verb of
1468    45,58:moveto(57);
1469    43,44,46..51,20:if(en('i'))and(en('j'))and KeyHole then
1470          begin sound(38);RS(61);ShRm:=2;moveto(59);sound(20);
1471          for o:=0 to NMax do if(r[o]=58)then r[o]:=59;
1472          if not(en('S'))then begin Ev:=Ev+['S'];Sc:=Sc+60 end end else RL(325);
1473    28   :if(noun=10)then noun:=81;
1474    11   :if(noun=68)then if KeyHole then RL(336)else RL(404);
1475         end;
1476
1477 65     :case verb of
1478    43,47:moveto(66);
1479    44,49:moveto(68);
1480    45,57:begin if not(en('w'))then begin Ev:=Ev+['w'];RL(346);end
1481                else begin RL(347);DEAD end end;
1482    46,48,50:moveto(63);
1483     58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
1484     51  :begin sound(38);RL(344);delay(999);sound(20)end;
1485     52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
1486     14  :if(noun=63)then begin RS(65);DEAD;end;
1487     28  :if(noun=10)then noun:=81;
1488         end;
1489
1490 66     :case verb of
1491     43  :RL(343);
1492   46,50 :moveto(65);
1493   45,49 :moveto(67);
1494     47  :moveto(64);
1495     48  :moveto(63);
1496   57,44 :begin sound(25);if not(en('V'))then begin Ev:=Ev+['V'];Sc:=Sc+30;end;
1497           RS(67);writeln;moveto(69);nosound;
1498          end;
1499     58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
1500     51  :begin sound(38);RL(344);delay(999);sound(20)end;
1501     52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
1502     14  :if(noun=63)then begin RS(65);DEAD;end;
1503     28  :if(noun=10)then noun:=81;
1504         end; {of 66}
1505
1506 67     :case verb of
1507     46  :begin RL(347);DEAD;end;
1508   43,48 :moveto(66);
1509   44,50 :moveto(68);
1510   45,47,49:moveto(64);
1511     58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
1512     51  :begin sound(38);RL(344);delay(999);sound(20)end;
1513     52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
1514     14  :if(noun=63)then begin RS(65);DEAD;end;
1515     28  :if(noun=10)then noun:=81;
1516         end; {of 67}
1517
1518 end  {of case}
1519 else SA
1520 end; {of SP10}
1521 {-------------------}
1522 procedure SpecialAnswers11;
1523
1524 begin
1525 FlagSA:='r';
1526 if Present then
1527 Case Prm of
1528
1529 63     :case verb of
1530    45   :moveto(65);
1531    47   :moveto(66);
1532    49   :moveto(68);
1533   43,44,46,48,50:RL(343);
1534     58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
1535     51  :begin sound(38);RL(344);delay(999);sound(20)end;
1536     52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
1537     14  :if(noun=63)then begin RS(65);DEAD;end;
1538     28  :if(noun=10)then noun:=81;
1539         end;
1540
1541 64     :case verb of
1542    46   :moveto(67);
1543    48   :moveto(66);
1544    50   :moveto(68);
1545   43..45,47,49:RL(343);
1546     58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
1547     51  :begin sound(38);RL(344);delay(999);sound(20)end;
1548     52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
1549     14  :if(noun=63)then begin RS(65);DEAD;end;
1550     28  :if(noun=10)then noun:=81;
1551         end;
1552
1553 68     :case verb of
1554     43  :begin RL(347);DEAD;end;
1555     44  :RL(343);
1556     50  :moveto(63);
1557     49  :moveto(64);
1558   46,48 :moveto(65);
1559   45,47 :moveto(67);
1560     58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
1561     51  :begin sound(38);RL(344);delay(999);sound(20)end;
1562     52  :begin sound(30);RL(345);ShRm:=13;moveto(59);sound(20)end;
1563     14  :if(noun=63)then begin RS(65);DEAD;end;
1564     28  :if(noun=10)then noun:=81;
1565         end;
1566
1567 69     :case verb of
1568   28,27 :if(noun in[10,21,81,36])then RL(351);
1569    11   :if(noun in[10,21,81,36,20,25])then RL(352)else
1570          if(noun=65)then RL(353);
1571   43,58 :moveto(70);
1572         end;
1573
1574 70     :case verb of
1575   44,57,2,33:if(noun=Null)or(noun=65)then moveto(69)else
1576          if(noun in[69,50])then moveto(71);
1577   43,47,48:RL(354);
1578   49,52 :moveto(71);
1579     11  :if(noun=65)then RL(353)
1580          else if(noun=68)then if KeyHole then RL(336)else RL(404);
1581        end;
1582
1583 71     :case verb of
1584   48,51,58:moveto(70);
1585     45  :moveto(72);
1586     11  :if(noun=58)then RL(386)else
1587          if(noun=25)then RL(418);
1588    28,27:if(noun in[10,36])then begin RL(387);
1589           for o:=1 to random(12)+4 do play(random(250),random(250),random(30))
1590          end;
1591     39  :if(noun=25)then begin RL(387);
1592           for o:=1 to random(99)+75 do
1593            begin x:=random(9999);play(x,x,random(19)+10);delay(5)end
1594          end
1595         end;{ of 71}
1596
1597 end  {of case}
1598 else SA
1599 end; {of SP11}
1600 {-------------------}
1601 procedure SpecialAnswers12;
1602
1603 begin
1604 FlagSA:='r';
1605 if Present then
1606 Case Prm of
1607
1608 11      :case verb of
1609    5,45,47,48,50:if FlasOff then RL(14)
1610           else case verb of
1611           48:moveto(9);47:moveto(13);
1612           5:if(29 in inven)or(40 in inven)or(2 in inven)then
1613                     RL(58)
1614                   else begin RL(18); moveto(12);end;
1615           50:RL(17);
1616           45:if(en('C'))then moveto(14) else RL(144);
1617             end;
1618    31   :if(input='nepo egassap')and not(en('C'))then
1619              begin Ev:=Ev+['C']; RS(11);Sc:=Sc+35;end;
1620   11 :if(noun in [79,72])then if(en('C'))then RL(270)else RS(13);
1621   27,28:if(noun in [79,72])then RL(26);
1622   17,0,6:if(noun in [79,72])then RL(27);
1623   38  :if(noun in [79,72])then RL(30);
1624           end; {of 11}
1625
1626 12     :case verb of
1627   4,47 :if FlasOff then RL(14)
1628            else case verb of
1629              4:begin RL(18); moveto(11);end;
1630                47   :RL(17);
1631                 end;
1632   43..46,48..52  :if FlasOff then RL(14);
1633    14  :if(noun in[70,1])and not(en('G'))then
1634          begin noun:=70;Ev:=Ev+['G'];Sc:=Sc+40;end;
1635    7   :if not(en('G'))then begin Ev:=Ev+['G'];RL(157);
1636           FlagSA:='r';verb:=14;noun:=70;Sc:=Sc+40;end;
1637           end; {of 12}
1638
1639 13      :case verb of
1640    50    :if flasoff then RL(14)
1641             else begin moveto(11); Ev:=Ev-['q'];end;
1642    43    :if(en('q'))then begin RL(24); DEAD;end
1643             else begin RL(23); Ev:=Ev+['q'];end;
1644    52,19,33:RL(42);
1645   14    :if(noun=47)then RL(25);
1646   9   :begin RL(68);vanish(noun);end;
1647           end;{of 13}
1648
1649 17       :case verb of
1650    51,19,2:RL(15);
1651    45    :if(flasoff)then RL(14)else moveto(18);
1652           end;
1653
1654 18      :case verb of
1655    46    :if(flasoff)then RL(14)else moveto(17);
1656   49,52  :if(flasoff)then RL(14)else begin RL(308);moveto(19);end;
1657    47    :if(flasoff)then RL(14)else
1658            if not(en('F'))then begin RS(19);writeln;moveto(21);
1659             Ev:=Ev+['F'];Sc:=Sc+10;end
1660            else moveto(21);
1661   11     :if(noun in[79,50])then RL(254);
1662          end;{of 18}
1663
1664 end  {of case}
1665 else SA
1666 end; {of SP12}
1667 {-------------------}
1668 procedure SpecialAnswers13;
1669
1670 begin
1671 FlagSA:='r';
1672 if Present then
1673 Case Prm of
1674
1675 2         :case verb of
1676    46     :moveto(1);
1677    45, 44 :RL(1);
1678    19,2   :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;
1679   14,27 :if noun=14 then RL(2)else
1680          if(noun in[1,40])and(40 in p[2])then
1681             begin noun:=40;Sc:=Sc+10;Verb:=14;RL(417);FlagSA:='r' end;
1682    11   :if(noun in[66,46])then RL(11);
1683    26   :if noun=14then RL(13);
1684          end;
1685
1686 31     :case verb of
1687    48,58:moveto(25);
1688    14   :if not(en('I'))and(noun in[7,1])then
1689            begin Ev:=Ev+['I'];noun:=7;Sc:=Sc+5 end;
1690  23,24,11:if(noun=84)then RL(152)else
1691           if(noun=22)then RL(415);
1692        end;
1693
1694 32     :case verb of
1695    43,58:moveto(25);
1696  11,23  :case Noun of
1697           61:if(en('H'))then RL(153) else begin Ev:=Ev+['H'];r[34]:=32;
1698                RL(154);Sc:=Sc+15;end;
1699          end;{of Noun case}
1700        end;
1701
1702 34    :case verb of
1703    45,58:moveto(25);
1704    14   :if(noun=74)and(74 in P[34])then begin P[34]:=P[34]-[74];
1705            inven:=inven+[74];RL(138);Sc:=Sc+25;end;
1706    42   :if(noun=74)and(74 in P[34])then RL(175);
1707    28,27:if(noun in[10,36])then begin RL(387);
1708           for o:=1 to random(12)+4 do play(random(250),random(250),random(30))
1709          end;
1710    39   :if(noun=25)then begin RL(387);
1711           for o:=1 to random(99)+75 do
1712            begin x:=random(9999);play(x,x,random(19)+10);delay(5)end
1713          end;
1714    11   :case noun of
1715           0:RL(139);
1716           25:RL(418);
1717           21:begin;RL(140);RL(141);end;
1718           68:if(SlotCon=Null)then RL(143) else
1719               begin SA;writeln('\83X\83\8d\83b\83g\82Ì\92\86\82É\82Í',m[SlotCon,1],'\82ª\82 \82é\81B')end;
1720           58:if(SlotCon=77)and not(en('x'))then
1721               begin Ev:=Ev+['x'];Sc:=Sc+5;RS(75)end
1722              else if(SlotCon=77)then RS(77)else RL(385)
1723          end
1724        end;
1725
1726 0         :case verb of
1727    45     :MoveTo(1);
1728    44     :begin TextColor(m8);writeln('\83J\83W\83m\83z\81[\83\8b');TextColor(m2);RS(0)end;
1729   19,2    :if(noun in[53,6,64,73])then begin RL(0);DEAD;end;
1730   11    :if(noun=73)then RL(19);
1731          end;
1732
1733 1        :case verb of
1734    46     :moveto(0);
1735    45     :moveto(2);
1736    43,57  :moveto(3);
1737    6,17   :if(noun=57)and(here(40))and((noun2=40)or(noun2=Null))then
1738            begin RS(16);Sc:=-500;
1739             Loc:='\95Â\82\82½\83L\83\83\83r\83\93';Verbose:=True;inven:=[];KitSet:=KitSet-[57];
1740             n[57,1]:='plastic card';n[57,2]:='card';n[57,3]:='plastic';
1741             n[57,4]:='elevato card';n[57,5]:='elevato';m[57,1]:='\83J\81[\83h';r[57]:=76;moveto(76)
1742            end;
1743  33,19,2  :if(noun in[6,53,64])then moveto(3)
1744           end;
1745
1746 end  {of case}
1747 else SA
1748 end; {of SP13}
1749 {-------------------}
1750 procedure SpecialAnswers14;
1751
1752 begin
1753 FlagSA:='r';
1754 if Present then
1755 Case Prm of
1756
1757 49     :case verb of
1758     43  :moveto(45);
1759   44,57 :begin RL(290);moveto(50);n[36,1]:='lever';n[36,2]:='handle';end;
1760   45..50:RL(291);
1761     11  :if(noun in[26,50])then RL(292);
1762     2   :if(noun=72)then RL(312);
1763     // 11  :if(noun=72)then RL(313); // FIXME: Bug? Duplicate 11
1764         end;
1765
1766 59     :case verb of
1767    43..50:begin o:=random(8)+3;writeln(o,'\83}\83C\83\8b\82Ù\82Ç\94ò\8ds\82µ\82½\81c');
1768            if(random(4)=2)then ShRm:=13 else ShRm:=Random(15);moveto(59)end;
1769    52,57:RL(341);
1770     58  :if(noun=Null)or(noun=65)then begin RL(342);DEAD;end;
1771     51  :begin sound(30);
1772           if not(en('U'))then begin RS(64);writeln;Ev:=Ev+['U'];Sc:=Sc+45;end
1773           else RL(349);moveto(63);sound(20)end;
1774     14  :if(noun=63)then begin RS(65);DEAD;end;
1775     28  :if(noun=10)then noun:=81;
1776         end; {of case 59}
1777
1778 72     :case verb of
1779     46  :moveto(71);
1780   43,44,58:moveto(73);
1781     45  :moveto(74);
1782         end;
1783
1784 73     :case verb of
1785   43,45,58:moveto(72);
1786     46  :moveto(73);
1787     44  :begin moveto(74);if(MnRm=Null)then RL(356);end;
1788         end;
1789
1790 74     :case verb of
1791   43,45 :moveto(73);
1792   46,58 :moveto(74);
1793     44  :if(MnRm=Null)then begin Verbose:=False;Moveto(75);Verbose:=True;
1794           RS(69);MnRm:=75;Attack:=False end else moveto(75);
1795         end;
1796
1797 75     :case verb of
1798   43,58 :moveto(74);
1799    11   :if(noun in[14,61])then RL(364);
1800         end;
1801
1802 76     :case verb of
1803    43   :RL(114);
1804    11   :if(noun=26)then RL(271)else
1805          if(noun=57)then RL(408);
1806         end;
1807
1808 end  {of case}
1809 else SA
1810 end; {of SP14}
1811 {===================}
1812 function chr_p(c : byte) : char;
1813   begin
1814 {$ifdef ASCII_TERMINAL}
1815     case (c) of
1816       175: chr_p := '>'; // as \81â
1817     else
1818       chr_p := chr(c);
1819     end;
1820 {$else}
1821     chr_p := chr(c);
1822 {$endif}
1823   end;
1824 {===================}
1825 procedure ScreenDraw_PlayerInput;
1826   begin
1827    gotoxy(1,23);writeln;TextColor(m5);write(chr_p(175), ' ');
1828    Window(1,1,80,25);
1829    gotoxy(1,1);textcolor(m4);TextBackGround(m6);
1830    gotoxy(10,1); writeln(Tic,'  '); gotoxy(75,1); writeln(Sc,' ');
1831    gotoxy(35-(length(Loc)div 2),1);writeln('     ',Loc,'     ');
1832    TextBackGround(0);Window(1,2,80,25);gotoxy(3,24);
1833    textcolor(m1);
1834    if(Loc<>'Civilization!')then READLN(LINE)else repeat;until false;
1835    if(Line='r')or(Line='repeat')then Line:=Again
1836    else Again:=Line;
1837    Translate;
1838
1839    gotoxy(1,23);TextColor(m3);writeln(chr_p(175));TextColor(m2);
1840   end;
1841 {-------------------}
1842
1843
1844 BEGIN
1845 clrscr;
1846 assign0;
1847 assign1;assign2;assign3;assign4;assign5;assign6;assign7;assign8;
1848 Initialize;
1849
1850                             {*****} repeat {*****}
1851
1852 if Skip then Time; writeln;
1853
1854 if(length(Line)=0)then begin
1855  ScreenDraw_PlayerInput;
1856  while pos(' then ',Line)>0 do
1857   begin x:=pos('then ',Line);delete(Line,x,4);insert('.',Line,x)end;
1858  LowerCase(Line);
1859  Format(Line);
1860  Chop(Line);
1861 end;
1862 if(pos('.',Line)>0)then begin
1863   Input:=copy(Line,1,pos('.',Line));
1864   delete(Line,1,pos('.',Line));
1865   delete(Input,pos('.',Input),1);
1866 end else
1867  begin
1868   Input:=Line;
1869   Line:=''
1870  end;
1871 Input:=Input+' ';
1872 while pos(' it ',Input)>0 do
1873  begin x:=pos(' it ',Input)+1;delete(Input,x,2);insert(LastNoun,Input,x);
1874  Format(Input);Chop(Input)end;
1875 if(Input[length(Input)]=' ')then delete(Input,length(Input),1);
1876
1877
1878
1879 Check(SepWord);
1880
1881 if Flag = 'g' then
1882   begin
1883     case Prm of
1884       3..4                :SpecialAnswers1;
1885       5..10               :SpecialAnswers2;
1886       14..16              :SpecialAnswers3;
1887       19..24              :SpecialAnswers4;
1888       25,27..29,33        :SpecialAnswers5;
1889       30                  :SpecialAnswers6;
1890       26,35..40           :SpecialAnswers7;
1891       41..48              :SpecialAnswers8;
1892       50..55              :SpecialAnswers9;
1893       56..58,60..62,65..67:SpecialAnswers10;
1894       63,64,68..71        :SpecialAnswers11;
1895       11..13,17,18        :SpecialAnswers12;
1896       0..2,31,32,34       :SpecialAnswers13;
1897       49,59,72..76        :SpecialAnswers14
1898     end;
1899
1900     if FlagSA <> 's' then
1901       case Verb of
1902        11,18,22,41,43..52,57,58    :DefaultAnswers1;
1903        29                          :DefaultAnswers2;
1904        1,2,8,12,13,15,16,19,21,
1905         23..25,31,33,34,38,40,60,63:DefaultAnswers3;
1906        3,6,7,20,30,35,53..56,59    :DefaultAnswers4;
1907        9,26                        :DefaultAnswers5;
1908        27,28,62                    :DefaultAnswers6;
1909        14,64,4,5                   :DefaultAnswers7;
1910        0,10,17,42,39               :DefaultAnswers8;
1911        32                          :DefaultAnswers9;
1912        36,37,61,65                 :DefaultAnswers10;
1913       end;
1914   end;
1915
1916                          {*****} until False {*****}
1917
1918 END. {of program}
1919 \1a