stng-gen.pas 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. Uses Graph;
  2. const
  3. count = 60;
  4. { table :array [0..15] of byte = (0,1,2,3,4,5,6,7,8,9,Brown,11,Blue,13,14,15);}
  5. Procedure EGAVGADriver;external;
  6. var
  7. inp,outp : file;
  8. p : pointer;
  9. Name : string;
  10. Beg : string;
  11. Size : word;
  12. k,i,j : word;
  13. x,y : word;
  14. val : byte;
  15. gD,gM : Integer;
  16. begin
  17. gD:=Detect;
  18. {$L EGAVGA.OBJ}
  19. RegisterBGIDriver(@EGAVGADriver);
  20. InitGraph(gD,gM,'');
  21. Assign(outp,'stinger.dat');
  22. ReWrite(outp,1);
  23. k:=count;
  24. BlockWrite(OUTP,k,2);
  25. Beg := 'Stingers\stng';
  26. for k := 0 to count-1 do
  27. begin
  28. Str(k,Name);
  29. Name := Beg + Name + '.tga';
  30. OutTextXY(300,200,Name);
  31. Assign(inp,Name);
  32. Reset(inp,1);
  33. Seek(INP,12);
  34. BlockRead(inp,x,2);
  35. BlockRead(inp,y,2);
  36. Seek(Inp,$312);
  37. for i := 1 to y do
  38. for j := 1 to x do
  39. begin
  40. BlockRead(INP,val,1);
  41. if (val and $F) <> $F then
  42. PutPixel(j,y-i+1, 0)
  43. else
  44. PutPixel(j,y-i+1,White);
  45. end;
  46. Close(INP);
  47. Size := ImageSize(0,0,x,y);
  48. BlockWrite(OUTP,Size,2);
  49. GetMem(P,Size);
  50. GetImage(1,1,x,y,P^);
  51. BlockWrite(OUTP,P^,Size);
  52. FreeMem(P,Size);
  53. ReadLn;
  54. ClearDevice;
  55. end;
  56. CloseGraph;
  57. Close(OUTP);
  58. end.