Program xHERO;
 
{Преобразует экранный файл в файл спрайтов 2х3 з.м. с маской}
 
uses Crt,Graph;
 
const
 
 fn2='xhero';
 
 frow=10;{к-во рядов}
 
var
 
 TF,ZF:File of Char;
 
 name,name1,name2:string;
 
 b:array [0..frow*48-1,0..31] of byte;
 
 c:char;
 
 n:Longint;
 
 aa,bb,cc,dd:byte;
 
 gr,modd,i,j,k,m:integer;
 
 
 
procedure her(fnn:string);
 
begin
 
  ClrScr;
 
  n:=0;
 
  Writeln('Конвертация экранных файлов');
 
  Writeln('формата TIFF');
 
  Writeln('в файлы спрайтов героев 2х3 для НЛО-2');
 
 
 
 begin name:='d:\''ufo2''\';
 
  name1:=Name+'images\'+fnn+'.tif';
 
  name2:=Name+'data\'+fnn+'.dat';
 
  gr:=detect;
 
  InitGraph(gr,modd,'d:\tp7\bgi\');
 
 
 
  Assign(ZF,name1);
 
  Reset(ZF);
 
  Assign(TF,name2);
 
  Rewrite(TF);
 
 
 
  for i:=0 to 193 do begin
 
       read(ZF,c);            {read/write Tiff prefix}
 
       end;
 
 
 
  for m:=0 to frow-1 do                       {read Tiff screen}
 
    for k:=0 to 47 do
 
        for i:=0 to 31 do
 
          begin
 
            read(ZF,c);
 
            b[m*48+k,i]:=ord(c) xor $ff;
 
            for gr:=0 to 7 do
 
             putpixel(i*8+gr,m*48+k,(ord(c) shr (7-gr) and 1)*14);
 
          end;
 
 
 
  Close(ZF);
 
  for i:=0 to frow-1 do
 
  begin
 
    for j:=0 to 15 do
 
    begin
 
      for k:=0 to 23 do
 
      begin
 
        for m:= 0 to 1 do
 
        begin
 
        bb:=b[i*48+k+24,j*2+m];
 
        aa:=b[i*48+k,j*2+m] xor bb;
 
        c:=chr(bb);
 
        write(TF,c);
 
        c:=chr(aa);
 
        write(TF,c);
 
        end;
 
      end;
 
    end;
 
  end;
 
 
 
 
 
  Close(TF);
 
 
 
  end;
 
  repeat until KeyPressed;
 
  CloseGraph;
 
  ReadLn;
 
end;
 
 
 
begin
 
 her(fn2);
 
end.