expl-gen.pas 1.3 KB

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