i, e);
end;
settextstyle (4,0,15);
setviewport (1,1,639,479, false);
repeat
for i: = 15 downto 1 do
begin
if (i = 1) or (i = 5) then continue;
setcolor (i);
outtextxy ((GetMaxX div 2) - (TextWidth (t) div 2), 180, t);
delay (100);
end;
for i: = 1 to 15 do
begin
if (i = 1) or (i = 5) then continue;
setcolor (i);
outtextxy ((GetMaxX div 2) - (TextWidth (t) div 2), 180, t);
delay (100);
end;
until keypressed;
1:
setcolor (black);
setfillstyle (1,1);
SetBkcolor (1);
setviewport (1,1,639,479, true);
for i: = 1 to 90 do
begin
sector (getmaxx div 2, getmaxy div 2,0, i, 400,400);
sector (getmaxx div 2, getmaxy div 2,90,90 + i, 400,400);
sector (getmaxx div 2, getmaxy div 2,180,180 + i, 400,400);
sector (getmaxx div 2, getmaxy div 2,270,270 + i, 400,400);
end;
setcolor (Magenta);
settextstyle (7,0,8);
outtextxy ((getmaxx div 2) - (TextWidth ('Good luck!') div 2),
(Getmaxy div 2) -180, 'Good luck!'); p> Delay (1000);
closegraph;
end;
END.
UNIT Retrace;
INTERFACE
Procedure WaitRetraceMode;
IMPLEMENTATION
Procedure WaitRetraceMode;
begin
While Port [$ 3DA] and 8 <> 0 do;
end;
END.
UNIT SiegeLogo;
INTERFACE
Uses Buttons, VGA13h;
Type
PFont = ^ TFont;
TFont = Array [0 .. 255,0 .. 7] of Byte;
Var
Font: PFont;
Procedure DrawString (Base: Word; xp, yp: Integer; Const s: String); Function Logo: Byte;
Procedure Info;
Procedure Story;
IMPLEMENTATION
Procedure DrawString;
Var
x, y, l, t: Byte;
begin
if Byte (s [0])> 0 then
begin
for l: = 1 to Byte (s [0]) do
begin
for y: = 0 to 7 do
begin
t: = Font ^ [Byte (s [l])] [y];
for x: = 0 to 7 do
begin
if t and 128 = 128 then PutPixel (Base, xp + x, yp + y, 15);
t: = t shl 1;
end;
end;
xp: = xp +8;
end;
end;
end;
Function Logo;
Var
Res, Old: Byte;
begin
ClearKeys;
Old: = 0;
Res: = 1;
ClearBase (Base1);
DrawString (Base1, 30,60, 'Play the game');
DrawString (Base1, 30,70, 'Instructions');
DrawString (Base1, 30,80, 'Story');
DrawString (Base1, 30,90, 'Exit to DOS');
Repeat
if Old <> Res then
begin
Bar (Base1, 20,60,28,100,0);
DrawString (Base1, 20,60 + (Res-1) * 10, '...