1 {//-------------------------------------------------------------------------}
3 {Copyright (C) 1990, 2009 - Apogee Software, Ltd. }
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. }
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. }
14 {See the GNU General Public License for more details. }
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.}
20 {Original Source: 1990 Scott Miller }
21 {Prepared for public release: 03/19/09 - Joe Siegler, Apogee Software, Ltd. }
23 {//-------------------------------------------------------------------------}
24 {****************************************************************************}
27 {* These are misc procedures and functions used with the main file: AdGame *}
28 {* Copyright 1984 Pending *}
29 {****************************************************************************}
32 begin FlagSA:='s' end;
34 function En(c : char) : boolean;
36 if(c in Ev)then En:=True else En:=False
39 function Here(noun : integer): Boolean;
41 if(noun in Inven)or(r[noun]=Prm)or(noun in p[Prm])then Here:=True
47 if(random(2)=1)then RL(107+random(7))else RL(300+random(6));
53 gotoxy(1,25);for x:=1 to 7 do writeln;
54 Textcolor(1);Textbackground(m9);
56 write('*********************************************************',
57 '***********************');writeln;
58 gotoxy(1,19); for x:=1 to 3 do
62 write('*********************************************************',
63 '***********************');writeln;
64 TextColor(m0);gotoxy(27,20);writeln('
\82 \82È
\82½
\82Í
\8e\80\82ñ
\82Å
\82µ
\82Ü
\82Á
\82½!!!');
65 Textcolor(m2);Textbackground(0);
66 for c:=700 downto 20 do for b:=70 downto 1 do sound(b*c);nosound;
67 close(Rooms1);close(rooms2);close(special1);close(special2);close(line1);
68 gotoxy(1,23);DelLine;DelLine;writeln;write('
\82â
\82è
\92¼
\82µ
\82Ü
\82·
\82©? ');
70 if(upcase(flag)<>'N')then
72 writeln('
\82à
\82¤
\88ê
\93x
\81c');window(1,1,80,25);
73 halt(executeProcess(ParamStr(0), '', []));
81 writeln(' Beyond the Titanic');
82 writeln('A Scott Miller Production');
83 writeln(' Have a nice day...');
92 gotoxy(1,25);for x:=1 to 7 do writeln;
93 Textcolor(25);Textbackground(m7);
95 write('#########################################################',
96 '#######################');writeln;
97 gotoxy(1,19); for x:=1 to 3 do
101 write('#########################################################',
102 '#######################');writeln;
103 TextColor(31);gotoxy(25,20);writeln('Y O U H A V E W O N ! ! !');
104 Textcolor(m2);Textbackground(0);
105 gotoxy(1,23);DelLine;DelLine;writeln;
106 for x:=150 downto 1 do begin sound(x*55);delay(8);nosound;delay(20)end;
107 if(Sc>1000)then Sc:=1000;
108 write('You finished with a score of ',Sc,', which makes you a ');
110 begin writeln('Perfect Adventurer!!!');
113 for x:= 99+(o*430)to 998+(o*430)do begin sound(25);sound(x)end
115 else writeln('Master Adventurer!');
116 for c:=1 to 999 do for b:=1 to 61 do sound(b*c);nosound;
118 writeln('Reboot your computer to regain control...')
121 procedure Say(o : integer; p : Str16);
123 writeln(n[o,1],'
\82Í
\8aù
\82É',p,'
\81B'); SA
129 if((tic>42)and not(en('c')))or((tic>146)and not(en('n')))or(en('r'))then
131 if(tic>42)and (not(en('c')))then RL(192)
132 else if(tic>146)and not(en('n'))then RL(192);
133 if(en('r'))then RL(51)
138 procedure Monster(var NewRm : integer);
140 if(NewRm=MnRm)and(MnRm=25)then begin Attack:=False;RL(384)end else
141 if(NewRm<>35)or not(en('v'))then
143 p[Prm]:=p[Prm]-[23];p[NewRm]:=p[NewRm]+[23];MnRm:=NewRm;Attack:=False;
144 if not((NewRm=30)and(Verb in[27,28]))then
146 0:RS(71);1:RS(72);2:RL(359);3:RL(360);4:RL(361);5:RL(362);6:RL(363)
149 else begin RL(383);Attack:=False end
152 procedure DescribeRm;
154 procedure s(r : Str16);
155 begin TextColor(m8);writeln(r);TextColor(m2);loc:=r;end;
157 if((en('a'))and(here(29)))or not(Prm in [6..24])then begin
159 0:s('
\91D
\82Ì
\91O
\95û');1:s('
\91D
\82Ì
\92\86\89\9b');2:s('
\91D
\82Ì
\8cã
\95û');
160 3:s('
\8b~
\96½
\83{
\81[
\83g');4:s('
\8aC
\82Ì
\8fã');5:s('
\8dL
\82¢
\93´
\8cA');
161 6:s('
\9e\99\82Ì
\93´
\8cA');7:s('
\8aC
\82Ì
\92ê');8:s('
\8db
\8d\82\82¢
\89¹
\82Ì
\93´
\8cA');
162 9:s('
\90ì
\82Ì
\8bÈ
\82ª
\82è
\8ap');10:s('
\91ê');13:s('
\93D
\82¾
\82ç
\82¯
\82Ì
\93´
\8cA');
163 11:s('
\98Z
\8ap
\8c`
\82Ì
\93´
\8cA');12:s('
\90ó
\82¢
\92J
\8aÔ');20:s('
\93®
\95¨
\89\80');
164 14:s('
\95\97\82Ì
\90\81\82
\83g
\83\93\83l
\83\8b');15:s('
\92J
\8aÔ');17:s('
\92J
\92ê');
165 18:s('
\8b·
\82¢
\93ü
\82è
\8cû');19:s('
\8aâ
\82Ì
\8dâ
\93¹');
166 21:s('
\89~
\94Õ
\82Ì
\92[');22:s('
\89~
\94Õ
\82Ì
\91¤');
167 23:s('
\89~
\94Õ
\82Ì
\8fã');24:s('
\83G
\83A
\83\8d\83b
\83N');16:s('
\83\8d\81[
\83v
\82Ì
\92[');
168 76:s('Locked Cabin');25:s('
\92\86\89\9b\83G
\83\93\83g
\83\89\83\93\83X');
169 26:s('
\89º
\91w
\83G
\83\93\83g
\83\89\83\93\83X');27:s('
\91D
\82Ì
\93ª
\94]');
170 30:s('
\8e\9e\82Ì
\95\94\89®');28:s('
\8c¤
\8b\86\8eº');34:s('
\91D
\8b´');
171 29:s('
\83`
\83\85\81[
\83u
\82Ì
\92\86');31:s('
\88ã
\96±
\8eº');58,69:s('Inside Shuttle');
172 32:s('
\91q
\8cÉ');33:s('
\90Q
\8eº');
173 35:s('
\93®
\97Í
\8eº');36:s('1
\8d\86\89Ý
\95¨
\8eº');37:s('2
\8d\86\89Ý
\95¨
\8eº');
174 38:s('3
\8d\86\89Ý
\95¨
\8eº');39:s('4
\8d\86\89Ý
\95¨
\8eº');40:s('Large Cage');
175 41:s('Wooden Bridge');42:s('Broken End');43:s('South End');
176 44..46:s('Deserted Road');47:s('Crater Edge');48:s('Crater Floor');
177 49:s('Building Front');50:s('Lobby');51..54:s('Office Room');
178 55:s('Basement');56:s('Ladder Room');57:s('Building Roof');
179 59:case ShRm of 0:s('Above Mud Lake');
180 1:s('Above Rubble');2:s('Above Desert');3:s('Above Pits');
181 4:s('Above River');5:s('Above Stream');6:s('Above Town');
182 7:s('Above Mountain');8:s('Above Crator');9:s('Above Hills');
183 10:s('Above Canyon');11:s('Above Flatland');12:s('Above Dry Lake');
184 13:s('Above Desert');14:s('Above Bridge')end;{of Above Rooms}
185 63,64:s('Above Clouds');65..68:s('Outside City');70:s('Landing Bay');
186 71:s('Power Plant');72..74:s('Dark Corridor');75:s('Food Supply')
189 if Verbose then begin FlagSA:='r';
191 2 :if(40 in p[2])then begin RR(2);RL(416)end;
192 4 :if(en('B'))then RR(4)else begin RR(4);
193 writeln('
\88À
\91S
\83x
\83\8b\83g
\82ª
\8c©
\82¦
\82é
\81B')end;
194 11:if(en('C'))then RS(15);
195 40:if(en('g'))then RS(17);
196 12:if not(en('G'))then begin RR(12);RL(146)end;
197 31:if not(en('I'))then begin RR(31);RL(156)end;
198 34:if(74 in p[34])then begin RR(34);RL(273)end;
199 35:if(77 in p[35])then begin RR(35);RL(381);RL(382)end else
200 if(en('W'))then begin RR(35);RL(381)end;
201 42:if(13 in p[42])then begin RR(42);RL(214)end;
202 48:if(27 in p[48])then begin RR(48);RL(276)end;
204 if(Prm=59)and not(ShRm in RmSh)then
205 begin RmSh:=RmSh+[ShRm];RS(ShRm+46)end
206 else if(Prm<>59)then RR(Prm);
207 if KeyHole and here(63)then
208 writeln('The shiny key is in the keyhole.')
212 if(FlagSA='r')and(Prm<>59)then RR(Prm)end;
214 for o:= 0 to NMax do begin
217 if not((Prm in[59..69])and(KeyHole)and(o=63))then
218 begin writeln('',n[o,1],'
\82ª
\82 \82é
\81B');
219 if(here(ropecon))and(o=ropecon)and not(ropecon in inven)then
220 writeln('
\83\8d\81[
\83v
\82ª',n[o,1],'
\82É
\8c\8b\82Ñ
\95t
\82¯
\82ç
\82ê
\82Ä
\82¢
\82é
\81B');
221 if(en('d'))and(o=70)and(here(70))then RL(147);
222 if(o=SlotCon)and(here(o))then RL(388);
223 if(o in CabiSet)and(here(o))then RL(389);
224 if(o=PanelCon)and(here(o))then RL(390);
225 if(o in KitSet)and(here(o))then RL(391);
232 begin SA; for x:=1 to 24 do writeln; nosound;
236 writeln('
\83h
\83\89\83C
\83uA:
\82©
\82ç
\83Q
\81[
\83\80\83f
\83B
\83X
\83N
\82ð
\94²
\82«
\81A
\95Û
\91¶
\83f
\83B
\83X
\83N
\82ð
\91}
\93ü
\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B')else
237 writeln('
\83h
\83\89\83C
\83uB:
\82É
\95Û
\91¶
\83f
\83B
\83X
\83N
\82ª
\91}
\93ü
\82³
\82ê
\82Ä
\82¢
\82é
\82©
\8am
\94F
\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B');
238 writeln(' (
\89½
\82©
\83L
\81[
\82ð
\89\9f\82·
\82Æ
\91±
\82¯
\82Ü
\82·
\81c)');flag:=readkey;
240 write('Save under what name? ');readln(input);
241 while pos(' ',input)>0 do delete(input,pos(' ',input),1);
242 while pos('.',input)>0 do delete(input,pos('.',input),1);
243 if(input='')then input:='LastRoom';
244 writeln;writeln;input:=Drive+input;
245 while pos(':',input)>0 do input[pos(':',input)] := '_';
246 writeln('If your SAVE/RESTORE disk is in drive ',Drive,
247 ' then press any key to start.');
251 aInven:=Inven;aKitSet:=KitSet;aCabiSet:=CabiSet;aPanelCon:=PanelCon;
252 aSlotCon:=SlotCon;aCompCon:=CompCon;aRopeCon:=RopeCon;aTic:=Tic;
253 aYearDial:=YearDial;aPrm:=Prm;aMnRm:=MnRm;aSc:=Sc;aShots:=Shots;
254 aShRm:=ShRm;aRx:=Rx;aEv:=Ev;aCode:=Code;aLoc:=Loc;aKeyHole:=KeyHole;
256 assign(GameSave,input+'.a');
258 write(GameSave,DiskSave);
260 assign(Objects,input+'.b');
262 for x:=0 to RMax do write(Objects,p[x]);
264 assign(WordList,input+'.c');
268 write(WordList,n[x,y]);
271 write(WordList,v[x,y]);
273 assign(Things,input+'.d');
275 for x:= 0 to NMax do write(Things,r[x]);
277 writeln; delete(input,1,2);
278 writeln('
\83Q
\81[
\83\80\82Ì
\8fó
\91Ô
\82Í
\83t
\83@
\83C
\83\8b''',input,'''
\82É
\95Û
\91¶
\82³
\82ê
\82Ü
\82µ
\82½
\81B');
279 if(Drive='A:')then begin writeln;
280 writeln('
\95Û
\91¶
\83f
\83B
\83X
\83N
\82ð
\94²
\82«
\81A
\83Q
\81[
\83\80\83f
\83B
\83X
\83N
\82ð
\91}
\93ü
\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B')end;
281 writeln(' (
\89½
\82©
\83L
\81[
\82ð
\89\9f\82·
\82Æ
\91±
\82¯
\82Ü
\82·
\81c)');flag := readkey;
283 if(Verb<>54)then writeln('
\83Q
\81[
\83\80\82É
\96ß
\82è
\82Ü
\82·
\81c');
284 if(Line='')then Line:='look';Tic:=Tic-2;Back:=True;
285 if(Prm in[59..68])then sound(20);
290 function Exist:Boolean;
292 assign(GameSave,input+'.a');
298 begin SA; for x:=1 to 24 do writeln; nosound;
299 window(1,3,80,25);gotoxy(1,4);
301 writeln('
\83h
\83\89\83C
\83u',Drive,'
\82©
\82ç
\83Q
\81[
\83\80\83f
\83B
\83X
\83N
\82ð
\94²
\82«
\81A
\95Û
\91¶
\83f
\83B
\83X
\83N
\82ð
\91}
\93ü
\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B')else
302 writeln('
\83h
\83\89\83C
\83uB:
\82É
\95Û
\91¶
\83f
\83B
\83X
\83N
\82ª
\91}
\93ü
\82³
\82ê
\82Ä
\82¢
\82é
\82©
\8am
\94F
\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B');
303 writeln(' (
\89½
\82©
\83L
\81[
\82ð
\89\9f\82·
\82Æ
\91±
\82¯
\82Ü
\82·
\81c)');flag := readkey;
305 write('
\95\9c\8bA
\82·
\82é
\83t
\83@
\83C
\83\8b\82Ì
\83t
\83@
\83C
\83\8b\96¼
\82Í? ');readln(input);
306 while pos(' ',input)>0 do delete(input,pos(' ',input),1);
307 while pos('.',input)>0 do delete(input,pos('.',input),1);
308 if(input='')then input:='LastRoom';
309 writeln;writeln;input:=Drive+input;
310 while pos(':',input)>0 do input[pos(':',input)] := '_';
311 writeln('
\83h
\83\89\83C
\83u',Drive,'
\82É
\95Û
\91¶
\83f
\83B
\83X
\83N
\82ª
\91}
\93ü
\82³
\82ê
\82Ä
\82¢
\82ê
\82Î',
312 '
\89½
\82©
\83L
\81[
\82ð
\89\9f\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B');
317 assign(GameSave,input+'.a');
319 read(GameSave,DiskSave);
323 Inven:=aInven;KitSet:=aKitSet;CabiSet:=aCabiSet;PanelCon:=aPanelCon;
324 SlotCon:=aSlotCon;CompCon:=aCompCon;RopeCon:=aRopeCon;Tic:=aTic;
325 YearDial:=aYearDial;Prm:=aPrm;MnRm:=aMnRm;Sc:=aSc;Shots:=aShots;
326 ShRm:=aShRm;Rx:=aRx;Ev:=aEv;Code:=aCode;Loc:=aLoc;KeyHole:=aKeyHole;
328 assign(Objects,input+'.b');
330 for x:=0 to RMax do read(Objects,p[x]);
332 assign(WordList,input+'.c');
336 read(WordList,n[x,y]);
339 read(WordList,v[x,y]);
341 assign(Things,input+'.d');
343 for x:= 0 to NMax do read(Things,r[x]);
345 writeln; delete(input,1,2);
346 writeln('
\83t
\83@
\83C
\83\8b',input,'
\82É
\95Û
\91¶
\82³
\82ê
\82½
\8fó
\91Ô
\82É
\95\9c\8bA
\82µ
\82Ü
\82µ
\82½
\81B');
347 if(Drive='A:')then begin writeln;
348 writeln('
\95Û
\91¶
\83f
\83B
\83X
\83N
\82ð
\94²
\82¢
\82Ä
\83Q
\81[
\83\80\83f
\83B
\83X
\83N
\82ð
\91}
\93ü
\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B')end;
349 writeln(' (
\89½
\82©
\83L
\81[
\82ð
\89\9f\82·
\82Æ
\91±
\82¯
\82Ü
\82·
\81c)');flag := readkey;
352 begin writeln;TextColor(28);
353 writeln('
\82»
\82Ì
\96¼
\91O
\82Ì
\83t
\83@
\83C
\83\8b\82Í
\95Û
\91¶
\83f
\83B
\83X
\83N
\82É
\91¶
\8dÝ
\82µ
\82Ü
\82¹
\82ñ
\81B',^g);
354 TextColor(m2);writeln;
356 writeln('
\83Q
\81[
\83\80\83f
\83B
\83X
\83N
\82É
\96ß
\82µ
\82Ä
\89½
\82©
\83L
\81[
\82ð
\89\9f\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B')
357 else writeln(' (
\89½
\82©
\83L
\81[
\82ð
\89\9f\82·
\82Æ
\91±
\82¯
\82Ü
\82·
\81c)');
360 writeln;writeln;writeln('
\83Q
\81[
\83\80\82É
\96ß
\82è
\82Ü
\82·
\81c');
361 if(Line='')then Line:='look';Tic:=Tic-2;Back:=True;
362 if(Prm in[59..68])then sound(20);
366 procedure Vanish(o : integer);
371 if(o=7)and not(en('I'))then Ev:=Ev+['I'];
372 if(o=13)and(13 in p[42])then p[42]:=p[42]-[13];
373 if(o=PanelCon)then PanelCon:=Null;
374 if(o=SlotCon)then SlotCon:=Null;
375 if(o in CabiSet)then CabiSet:=CabiSet-[o];
376 if(o in kitset)then kitset:=kitset-[o];
377 if(o=63)and KeyHole then KeyHole:=False;
378 if(o=74)then Ev:=Ev-['p'];
379 if(o=89)then Ev:=Ev-['i'];
380 if(o=RopeCon)and(verb=36)then begin RopeCon:=Null;RL(402)end;
381 if(o=RopeCon)and not(Verb in[9,14])then RopeCon:=Null
384 procedure Play( Start, Stop, Wait: integer);
388 for x:= Start to Stop do
389 begin sound(x); delay(Wait); end
391 for x:= Start downto Stop do
392 begin sound(x); delay(Wait); end;
393 if(Prm in[59..68])then sound(20)else nosound
403 inven:=inven-[o];writeln(n[o,1],':
\92u
\82¢
\82½
\81B');
408 function FlasOff : Boolean;
410 if not(En('a'))then FlasOff:=True
412 if(r[29]=Prm)or(29 in inven)then FlasOff:=False
416 procedure MoveTo(NewRm : integer);
419 if(57 in inven)and(ropecon<>Null)and not(ropecon in inven)
420 and(ropecon in mov)and not(ropecon=70)then
421 begin r[ropecon]:=Prm;RL(158);end
422 else if(57 in inven)and(ropecon<>Null)and(not(ropecon in mov)or
423 ((ropecon=70)and(en('d'))))then
424 begin RL(55);inven:=inven-[57];r[57]:=Prm;end
425 else if not(57 in inven)and((ropecon in inven)or
426 (ropecon in[60,56,44]))then r[57]:=NewRm
427 else if not(57 in inven)and(r[57]=Prm)and(r[ropecon]=NewRm)then
428 begin r[57]:=NewRm;RopeOld:=Prm;end
429 else if not(57 in inven)and(r[57]=Prm)and(NewRm=RopeOld)and
431 begin r[57]:=RopeOld;RopeOld:=Null;end;
432 if(ropecon=Null)or((NewRm<>RopeOld)and(Prm<>RopeOld))then RopeOld:=Null;
433 if(MnRm<>Null)then Monster(NewRm);
434 if(Prm in[63..68])and not(NewRm in[59,69])then RL(343);
435 if(Prm in[59,63..68])then for o:=0 to NMax do if(r[o]=Prm)then r[o]:=NewRm;
446 17:if not(en('A'))then begin RS(3);DEAD end else RS(5);
451 24:if(en('B'))then begin RS(8);writeln;RL(16);moveto(5);Sc:=Sc+25;
452 n[64,5]:='ship';v[26,2]:='pick' end
453 else begin RS(7);DEAD;end;
454 43:if(not(en('c'))and not(en('n')))then RL(31);
455 73:if(not(en('c'))and not(en('n')))then RL(32);
456 93:if(not(en('c'))and not(en('n')))then begin RL(33); DEAD end;
457 99:if(Prm in[6..24])and(here(29))and not(flasoff)and(not(en('s')))then
458 begin RL(41);Ev:=Ev+['s'] end;
459 147:if not(en('n'))then RL(31);
460 149:if(here(29))and not(flasoff)then RL(59);
461 153:if(Prm in[6..23])and(here(29))and not(flasoff)then
462 begin RS(14);vanish(29) end;
463 170:if not(en('n'))then RL(32);
464 181:if not(en('n'))then begin RL(33); DEAD end;
468 607:begin RL(284);DEAD;end;
472 1..3:if(tic>4)and(random(4)=1)then RL(405);
473 36..39:if(random(5)=2)then RL(219);
474 7 :if(random(8)=2)then RL(266);
475 8 :if(random(3)=2)then begin RL(265);play(6666,7000,0);end;
476 13..24:if(random(16)=2)then RL(246);
477 25..35:if(random(30)=2)then RL(267);
478 47,48:if(random(5)=2)and(inven <>[])then
480 if(Prm=48)then begin writeln;RS(40)end
481 else begin writeln;RS(44);moveto(48)end;
485 begin vanish(o);r[o]:=random(9)+41;flag:='g';end;
490 5,6,9,10:if(random(9)=2)then RL(268);
491 7,8,11..40:if(here(84))and(random(20)=2)then RL(269)
492 else if(random(75)=2)then RS(36)
493 else if(Prm in[5..22])and(random(33)=2)then
494 begin RL(265);play(6500,6950,0)end;
495 41..49:if(random(27)=2)then RL(285);
496 59 :if(random(15)=1)then RL(406);
498 if Attack and(MnRm=Prm)and(not Back)then
499 begin case random(3) of 0:RS(80); 1:RS(81); 2:RS(82)end;DEAD end
500 else if(MnRm=Prm)then Attack:=True
503 function Present : Boolean;
505 if(noun<>Null)and(noun<>1)then
508 if(here(noun2))then Present:=true
510 writeln(n[noun2,1],'
\82Í
\8c©
\93\96\82½
\82ç
\82È
\82¢
\81B');Present:=false end
513 writeln(n[noun,1],'
\82Í
\8c©
\93\96\82½
\82ç
\82È
\82¢
\81B');Present:=false end
517 procedure Initialize;
518 procedure Cn(S : Str80);
520 gotoxy(40-(length(S)div 2),wherey);writeln(S);
524 writeln('
\96`
\8c¯
\82Ì
\90¢
\8aE
\82Ö
\94ò
\82Ñ
\8d\9e\82Þ
\8f\80\94õ
\82ð
\82µ
\82Ä
\82
\82¾
\82³
\82¢
\81B');
525 writeln('
\82Å
\82à
\81A
\82»
\82Ì
\91O
\82É
\8aÈ
\92P
\82È
\8e¿
\96â
\82ª2
\82Â
\82 \82è
\82Ü
\82·:');
526 gotoxy(1,4);write('
\83f
\83B
\83X
\83v
\83\8c\83C
\82Í
\83J
\83\89\81[
\82Å
\82·
\82© (Y/N)? ');
527 nosound; play(72,80,45);
528 flag := readkey; play(2500,2490,6);
529 m0:=20;m1:=14;m2:=11;m3:=4;m4:=15;m5:=28;m6:=1;m7:=4;m8:=10;m9:=10;
530 if upcase(flag)='N' then
532 writeln('
\82¢
\82¢
\82¦
\81B
\83J
\83\89\81[
\82Å
\82Í
\82 \82è
\82Ü
\82¹
\82ñ
\81B');
533 m0:=31;m1:=15;m2:=15;m3:=7;m4:=0;m5:=31;m6:=7;m7:=8;m8:=7;m9:=0;
534 end else writeln('
\82Í
\82¢
\81B
\83J
\83\89\81[
\82Å
\82·
\81B');writeln;
535 write('
\83f
\83B
\83X
\83N
\83h
\83\89\83C
\83u
\82Í
\82¢
\82
\82Â
\82 \82è
\82Ü
\82·
\82© (1/2)? ');
537 flag := readkey; play(2500,2490,6);
539 if(upcase(flag)='O')or(flag='1')then
540 begin Drive:='A:';writeln('1
\82Â
\82Å
\82·
\81B')end else
541 writeln('2
\82Â
\82Å
\82·
\81B');
542 delay(999);clrscr;textcolor(15);gotoxy(1,4);writeln;textcolor(7);
543 cn('Beyond the Titanic');cn('
\83^
\83C
\83^
\83j
\83b
\83N
\82ð
\89z
\82¦
\82Ä');textcolor(6);cn('------------------');writeln;
545 cn('A Text & Sound Adventure Fantasy');writeln;writeln;
546 cn('An Apogee Software Production');writeln;writeln;writeln;
547 cn('Written and Programmed by Scott Miller');
549 gotoxy(32,24);textcolor(7);
550 write('
\83L
\81[
\82ð
\89\9f\82µ
\82Ä
\82
\82¾
\82³
\82¢');flag := readkey;clrscr;
552 { *** SHAREWARE SCREEN *** }
555 writeln('Please note that Beyond the Titanic is a SHAREWARE game.');
558 writeln('This game has been placed in the public domain for your enjoyment.');
560 writeln('If you like the game the author (Scott Miller) asks that you please');
561 writeln('contribute $5 or $10 (your discretion) to him. This minimal payment');
562 writeln('will help compensent the author for the year of work that went into');
563 writeln('Beyond the Titanic. It will also encourage the author to make new and');
564 writeln('better games, like Supernova and Kingdom of Kroz, both of which are');
565 writeln('also shareware games recently released.');
567 writeln('This fee also registers the payer for telephone support and clues.');
569 writeln('Please make checks payable to Scott Miller.');
572 writeln(' Scott Miller (214) 240-0614');
573 writeln(' 4206 Mayflower Dr.');
574 writeln(' Garland, TX 75043');
577 writeln('Thanks, enjoy the game...');
580 while keypressed do readkey;
581 write('
\83L
\81[
\82ð
\89\9f\82·
\82Æ
\83Q
\81[
\83\80\82ª
\8en
\82Ü
\82è
\82Ü
\82·');
583 while keypressed do readkey;
585 { ************************ }
589 cn('1912
\94N4
\8c\8e14
\93ú
\8cß
\8cã11
\8e\9e43
\95ª');
591 cn('
\88Å
\96é
\82Ì
\83J
\83\93\83o
\83X
\82ª
\82±
\82ê
\82Ù
\82Ç
\8bP
\82¢
\82Ä
\82¢
\82½
\82Æ
\82Í
\81B');
592 cn('
\83z
\83\8f\83C
\83g
\83X
\83^
\81[
\82Ì
\8dÅ
\90V
\82Ì
\8d\8b\89Ø
\8bq
\91D
\81A
\90[
\82¢
\8aC
\81A');
593 cn('
\83T
\83\93\83t
\83\89\83\93\83V
\83X
\83R
\82Ì
\82Ü
\82Î
\82ä
\82¢
\8cõ
\82à
\93Í
\82©
\82È
\82¢
\82±
\82Ì
\8fê
\8f\8a\82Å');
594 cn('
\82 \82È
\82½
\82Í
\8aô
\90ç
\82à
\82Ì
\92m
\82ç
\82ê
\82´
\82é
\90¯
\81X
\82ð
\8c©
\82Ä
\82¢
\82½
\81B');
596 cn('
\8aC
\82É
\96Ú
\82ð
\82â
\82é
\82Æ
\8f¬
\82³
\82È
\95X
\82Ì
\94j
\95Ð
\82ª
\95Y
\82Á
\82Ä
\82¢
\82½
\81B');
597 cn('
\82±
\82Ì
\82 \82½
\82è
\82É
\82Í
\8f¬
\82³
\82È
\8eR
\82Ù
\82Ç
\82Ì
\95X
\8eR
\82ª
\8c»
\82ê
\82é
\82Æ
\82¤
\82í
\82³
\82¾
\81B');
599 cn('
\82¾
\82ª
\90S
\94z
\82·
\82é
\82±
\82Æ
\82Í
\82È
\82¢
\81B
\83^
\83C
\83^
\83j
\83b
\83N
\8d\86\82Í
\81u
\95s
\92¾
\81v
\81A');
600 cn('
\88ê
\97¬
\82Ì
\8aC
\89^
\89ï
\8eÐ
\83z
\83\8f\83C
\83g
\83X
\83^
\81[
\82Æ
\82»
\82Ì
\91D
\82Ì
\82±
\82Æ
\82Í
\8fæ
\8bq
\82Ì
\92N
\82à
\82ª
\90M
\97\8a\82µ
\82Ä
\82¢
\82½
\81c');
601 for x:= 1 to 3 do writeln;
612 Mov :=[2,7,8,13,27,29,32,34,40,52,51,57,63,70,74,77,89];
613 OneWordCommands:=[1,4,5,7,8,16,18,19,22,31,33..35,41,43..54,56..59,61..65];
626 assign(rooms1,'ROOMS1');assign(rooms2,'ROOMS2');
627 assign(special1,'SPECIAL1');assign(special2,'SPECIAL2');assign(line1,'LINE');
628 reset(rooms1);reset(rooms2);reset(special1);reset(special2);reset(line1);
629 Str(Random(9998)+1,Code);
630 DescribeRm; writeln; randomize;
632 gotoxy(1,1);TextBackGround(m6);
633 for x:=1 to 80 do write(' ');writeln;TextColor(m4);
634 gotoxy(4,1);writeln('Move');gotoxy(68,1);writeln('Score');TextColor(m2);
635 TextBackGround(0); Window(1,2,80,25);
637 {***************************** END OF COMMANDS *****************************}