Login

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

Program XSpriter;
{Преобразует TIFF-файлы оформления НЛО-2 в файл спрайтов }
uses Crt,Graph;
const
 Nblock=8;
 fn:array [1..Nblock] of string=('xearth',
                            'xweapon',
                            'xbutton',
                            'xsign',
                            'xparam',
                            'xkey',
                            'xlabel',
                            'xSCAN'
                            );
 fl:array [1..Nblock,1..2] of byte=((24,15),    {размер X*Y*8 байт}
                                 (4,2*15),
                                 (4,4+3+4),
                                 (3,3*12),
                                 (3,2*10),
                                 (12,6+2),
                                 (2,2*26),
                                 (1,12)
                                );
var
 TF,ZF:File of Char;
 name,name1,name2:string;
 fln:array[1..Nblock] of integer;
 b:array [0..(5*64-1),0..31] of byte;
 c:char;
 n:Longint;
 aa,bb,cc,dd:byte;
 gr,modd,i,j,k,m,jj:integer;
 x,y:integer;

begin
  ClrScr;
  n:=0;
  Writeln('Конвертация TIFF-файлoв');
  Writeln('игрового оформления НЛО-2');
  Writeln('в eдиный файл спрайтов ');
  Name:='d:\''UFO2''\';
  name2:=Name+'data\xsprites.dat';
  Assign(TF,name2);
  Rewrite(TF);
  jj:=0;
  gr:=detect;
  InitGraph(gr,modd,'d:\tp7\bgi\');

 for n:=1 to Nblock do begin
  name1:=Name+'images\'+fn[n]+'.tif';
  Assign(ZF,name1);
  ClearViewPort;
  Reset(ZF);
  x:=fl[n,1];
  y:=fl[n,2];
  fln[n]:=jj;
  jj:=jj+x*y*8;

  for i:=1 to 194 do begin
       read(ZF,c);            {read TIF prefix}
       end;

  for m:=0 to (y)*8-1 do                       {read TIF screen}
        for i:=0 to x-1 do
          begin
            read(ZF,c);
            for gr:=0 to 7 do
             putpixel(i*8+gr,m,(ord(c) shr (7-gr) and 1)*14);
            c:=chr(ord(c) xor $FF);
            write(TF,c);
          end;
  Close(ZF);
  end;
  Close(TF);
  CloseGraph;
  ClrScr;
  for i:=1 to Nblock do
   writeln('Блок графики ',fn[i],' c адреса ',fln[i]);
  writeln('Cледующий адрес ',jj);
  repeat until KeyPressed;
 
end.