45366 (664741), страница 6
Текст из файла (страница 6)
begin
Line(540,counter*70+150,600,counter*70+150);
Line(540,counter*70+170,600,counter*70+170);
Line(600,counter*70+150,600,counter*70+170);
Line(540,counter*70+150,540,counter*70+170);
FloodFill(570,counter*70+160,15)
end;
SetFillStyle(1,15);
OutTextXY(543,159,'Restore');
OutTextXY(555,229,'Exit');
end;
procedure Design_Mark_and_Jumps;
begin
SetColor(15);
SetLineStyle(0,0,3);
SetFillStyle(1,15);
Hide_Mouse;
for counter := 0 to 2 do
if ((m shr (7 - counter)) and 1) = 1 then
begin
SetColor(15);
SetFillStyle(1,15);
FillEllipse(150,counter*150+50,1,1)
end
else
begin
SetColor(0);
SetFillStyle(1,0);
FillEllipse(150,counter*150+50,1,1)
end;
for counter := 3 to 4 do
if ((m shr (7 - counter)) and 1) = 1 then
begin
SetColor(15);
SetFillStyle(1,15);
FillEllipse(300,(counter-3)*150+120,1,1)
end
else
begin
SetColor(0);
SetFillStyle(1,0);
FillEllipse(300,(counter-3)*150+120,1,1)
end;
for counter := 5 to 7 do
if ((m shr (7 - counter)) and 1) = 1 then
begin
SetColor(15);
SetFillStyle(1,15);
FillEllipse(450,(counter-5)*150+50,1,1)
end
else
begin
SetColor(0);
SetFillStyle(1,0);
FillEllipse(450,(counter-5)*150+50,1,1)
end;
for counter := 0 to 2 do
if ((r shr (7 - counter)) and 1) = 1 then
begin
SetFillStyle(1,10);
FloodFill(150,counter*150+125,15)
end
else
begin
SetFillStyle(1,12);
FloodFill(150,counter*150+125,15)
end;
for counter := 3 to 5 do
if ((r shr (7 - counter)) and 1) = 1 then
begin
SetFillStyle(1,10);
FloodFill(450,(counter-3)*150+125,15)
end
else
begin
SetFillStyle(1,12);
FloodFill(450,(counter-3)*150+125,15)
end;
SetColor(15);
SetFillStyle(1,15);
Show_Mouse
end;
Begin
Init_Graph_Mode;
ok := Init_Mouse;
flag_of_exit := false;
m := m_0;
r := r_0;
old_m := 0;
old_r := 0;
if ok = $FFFF then
begin
{$I-} assign(f,path);
reset(f);
ok := filesize(f);
{$I+} if (IOResult = 0) and (ok = 64) then
begin
for i := 0 to 63 do
read(f,ScrMask[i]);
Set_Graph_Cursor(seg(ScrMask),ofs(ScrMask),2,2)
end;
Design_Kernel;
Show_Mouse;
repeat
Get_Mouse_State(bm,i,j);
if (m <> old_m) or (r <> old_r) then
begin
Get_Web_State;
Design_Mark_and_Jumps;
old_m := m;
old_r := r
end;
if bm = 1 then
begin
number := 6;
for counter := 0 to 2 do
if (i 135) and
(j counter*150+120)
then
number := counter;
for counter := 3 to 5 do
if (i 435) and
(j (counter-3)*150+120)
then
number := counter;
if (number < 6) and (((1 shl (7-number)) and r) <> 0) then
begin
m := m and (jump[number] and $FF);
m := m or (jump[number] shr 8)
end;
if (i 540) and (j 150)
then
m := m_0;
if (i 540) and (j 220)
then
flag_of_exit := true
end;
until flag_of_exit;
Hide_Mouse;
CloseGraph
end
else
begin
CloseGraph;
WriteLn('Ошибка мыши: Device or driver not found.')
end
End.