?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. Program XSpriter;
  2. {Преобразует TIFF-файлы оформления НЛО-2 в файл спрайтов }
  3. uses Crt,Graph;
  4. const
  5.  Nblock=8;
  6.  fn:array [1..Nblock] of string=('xearth',
  7.                             'xweapon',
  8.                             'xbutton',
  9.                             'xsign',
  10.                             'xparam',
  11.                             'xkey',
  12.                             'xlabel',
  13.                             'xSCAN'
  14.                             );
  15.  fl:array [1..Nblock,1..2] of byte=((24,15),    {размер X*Y*8 байт}
  16.                                  (4,2*15),
  17.                                  (4,4+3+4),
  18.                                  (3,3*12),
  19.                                  (3,2*10),
  20.                                  (12,6+2),
  21.                                  (2,2*26),
  22.                                  (1,12)
  23.                                 );
  24. var
  25.  TF,ZF:File of Char;
  26.  name,name1,name2:string;
  27.  fln:array[1..Nblock] of integer;
  28.  b:array [0..(5*64-1),0..31] of byte;
  29.  c:char;
  30.  n:Longint;
  31.  aa,bb,cc,dd:byte;
  32.  gr,modd,i,j,k,m,jj:integer;
  33.  x,y:integer;
  34.  
  35. begin
  36.   ClrScr;
  37.   n:=0;
  38.   Writeln('Конвертация TIFF-файлoв');
  39.   Writeln('игрового оформления НЛО-2');
  40.   Writeln('в eдиный файл спрайтов ');
  41.   Name:='d:\''UFO2''\';
  42.   name2:=Name+'data\xsprites.dat';
  43.   Assign(TF,name2);
  44.   Rewrite(TF);
  45.   jj:=0;
  46.   gr:=detect;
  47.   InitGraph(gr,modd,'d:\tp7\bgi\');
  48.  
  49.  for n:=1 to Nblock do begin
  50.   name1:=Name+'images\'+fn[n]+'.tif';
  51.   Assign(ZF,name1);
  52.   ClearViewPort;
  53.   Reset(ZF);
  54.   x:=fl[n,1];
  55.   y:=fl[n,2];
  56.   fln[n]:=jj;
  57.   jj:=jj+x*y*8;
  58.  
  59.   for i:=1 to 194 do begin
  60.        read(ZF,c);            {read TIF prefix}
  61.        end;
  62.  
  63.   for m:=0 to (y)*8-1 do                       {read TIF screen}
  64.         for i:=0 to x-1 do
  65.           begin
  66.             read(ZF,c);
  67.             for gr:=0 to 7 do
  68.              putpixel(i*8+gr,m,(ord(c) shr (7-gr) and 1)*14);
  69.             c:=chr(ord(c) xor $FF);
  70.             write(TF,c);
  71.           end;
  72.   Close(ZF);
  73.   end;
  74.   Close(TF);
  75.   CloseGraph;
  76.   ClrScr;
  77.   for i:=1 to Nblock do
  78.    writeln('Блок графики ',fn[i],' c адреса ',fln[i]);
  79.   writeln('Cледующий адрес ',jj);
  80.   repeat until KeyPressed;
  81.  
  82. end.