Advertisement
MaksNew

Untitled

May 16th, 2021
566
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 7.15 KB | None | 0 0
  1. unit Loading;
  2.  
  3. interface
  4.  
  5. Uses
  6.   System.SysUtils, System.Classes, Vcl.ExtCtrls, Generics.Collections, GameShop, Forms;
  7.  
  8.     Procedure SaveProgressData();
  9.     Procedure SaveStoreData(FileName: String; DataArray: array of Carss);
  10.     Procedure SaveCurrentSkinsData();
  11.     Procedure LoadProgressData();
  12.     Procedure CreateProgressFile();
  13.     Procedure LoadStoreData(FileName: String; var DataArray: array of Carss);
  14.     procedure CreateStoreDataFile(FileName: String; DataArray: array of Carss);
  15.     Procedure LoadCurrentData();
  16.     Procedure CreateCurrentDataFile();
  17.     Procedure LoadData();
  18.     Procedure LoadSounds();
  19.     Procedure LoadTextures();
  20.  
  21. implementation
  22. uses MainGameMenu, Game;
  23.  
  24. Procedure SaveProgressData();
  25. Var
  26.     DataFile: File of LongWord;
  27. Begin
  28.     AssignFile(DataFile, 'data.bin' );
  29.     Rewrite(DataFile);
  30.     Write(DataFile, Rec);
  31.     Write(DataFile, Money);
  32.     CloseFile(DataFile);
  33. End;
  34.  
  35. Procedure SaveStoreData(FileName: String; DataArray: array of Carss);
  36. Var
  37.     StoreDataFile: File of Boolean;
  38.     I: Byte;
  39. Begin
  40.     AssignFile(StoreDataFile, FileName);
  41.     Rewrite(StoreDataFile);
  42.     For I := 0 to High(DataArray) do
  43.         Write(StoreDataFile, DataArray[i].IsOpened);
  44.     CloseFile(StoreDataFile);
  45. End;
  46.  
  47. Procedure SaveCurrentSkinsData();
  48. Var
  49.     DataFile: File of Byte;
  50. Begin
  51.     AssignFile(DataFile, 'currentdata.bin' );
  52.     Rewrite(DataFile);
  53.     Write(DataFile, CurrentCar);
  54.     Write(DataFile, CurrentRoad);
  55.     CloseFile(DataFile);
  56. End;
  57.  
  58. Procedure LoadProgressData();
  59. Var
  60.     DataFile: File of LongWord;
  61. Begin
  62.     AssignFile(DataFile, 'data.bin' );
  63.     Reset(DataFile);
  64.     Read(DataFile, Rec);
  65.     Read(DataFile, Money);
  66.     CloseFile(DataFile);
  67. End;
  68.  
  69. Procedure CreateProgressFile();
  70. Var
  71.     DataFile: File of LongWord;
  72.     Zero: LongWord;
  73. Begin
  74.     Zero := 0;
  75.     AssignFile(DataFile, 'data.bin' );
  76.     Rewrite(DataFile);
  77.     Write(DataFile, Zero);
  78.     Write(DataFile, Zero);
  79.     CloseFile(DataFile);
  80. End;
  81.  
  82. Procedure LoadStoreData(FileName: String; var DataArray: array of Carss);
  83. Var
  84.     StoreDataFile: File of Boolean;
  85.     I: Byte;
  86. Begin
  87.     AssignFile(StoreDataFile, FileName);
  88.     Reset(StoreDataFile);
  89.     For I := 0 to High(DataArray) do
  90.         Read(StoreDataFile, DataArray[I].IsOpened);
  91.     CloseFile(StoreDataFile);
  92. End;
  93.  
  94. procedure CreateStoreDataFile(FileName: String; DataArray: array of Carss);
  95. var
  96.     StoreDataFile: File of Boolean;
  97.     Buf: Boolean;
  98.     I: Byte;
  99. Begin
  100.     Buf := False;
  101.     AssignFile(StoreDataFile, FileName);
  102.     Rewrite(StoreDataFile);
  103.     For I := 0 to High(DataArray) do
  104.         Write(StoreDataFile, Buf);
  105.     CloseFile(StoreDataFile);
  106. End;
  107.  
  108. Procedure LoadCurrentData();
  109. Var
  110.     DataFile: File of Byte;
  111. Begin
  112.     AssignFile(DataFile, 'currentdata.bin' );
  113.     Reset(DataFile);
  114.     Read(DataFile, CurrentCar);
  115.     Read(DataFile, CurrentRoad);
  116.     CloseFile(DataFile);
  117. End;
  118.  
  119. Procedure CreateCurrentDataFile();
  120. Var
  121.     DataFile: File of Byte;
  122.     Zero: LongWord;
  123. Begin
  124.     Zero := 0;
  125.     AssignFile(DataFile, 'currentdata.bin' );
  126.     Rewrite(DataFile);
  127.     Write(DataFile, Zero);
  128.     Write(DataFile, Zero);
  129.     CloseFile(DataFile);
  130. End;
  131.  
  132. Procedure LoadData();
  133. Begin
  134.     If FileExists('data.bin') then
  135.         LoadProgressData()
  136.     Else
  137.         CreateProgressFile();
  138.  
  139.     If FileExists('currentdata.bin') then
  140.         LoadCurrentData()
  141.     Else
  142.         CreateCurrentDataFile();
  143.  
  144.     If FileExists('cars_storedata.bin') then
  145.         LoadStoreData('cars_storedata.bin', Cars)
  146.     Else
  147.         CreateStoreDataFile('cars_storedata.bin', Cars);
  148.  
  149.     If FileExists('roads_storedata.bin') then
  150.         LoadStoreData('roads_storedata.bin', Roads)
  151.     Else
  152.         CreateStoreDataFile('roads_storedata.bin', Roads);
  153. End;
  154.  
  155. function CheckWAV(Path: String): boolean;
  156. var
  157.     Buf: Cardinal;
  158.     AStream: TFileStream;
  159.     IsCorrect: Boolean;
  160. begin
  161.     IsCorrect := True;
  162.     Astream := TFileStream.Create(Path, fmOpenRead);
  163.     Buf := 0;
  164.     Astream.Position := 0;
  165.     Astream.ReadBuffer(Buf, 3);
  166.     if Buf = $464952 then
  167.         IsCorrect := True
  168.     else
  169.         IsCorrect := False;
  170.     Astream.Destroy;
  171.     CheckWAV := IsCorrect;
  172. end;
  173.  
  174. procedure LoadWAV(var Songs: TList<String>; Path: String);
  175. begin
  176.     if CheckWAV(Path) then
  177.         Songs.Add(Path)
  178.     else
  179.         Application.Terminate;
  180. end;
  181.  
  182. Procedure LoadSounds();
  183. Begin
  184.     Songs := TList<String>.Create;
  185.     LoadWAV(Songs, 'Music\cl.wav');
  186.     LoadWAV(Songs, 'Music\Eye_of_the_Tiger.wav');
  187.     LoadWAV(Songs, 'Music\Ghostbusters.wav');
  188.     LoadWAV(Songs, 'Music\Jump.wav');
  189.     LoadWAV(Songs, 'Music\Livin_On_A_Prayer.wav');
  190.     LoadWAV(Songs, 'Music\Stayin_Alive.wav');
  191.     LoadWAV(Songs, 'Music\TMNT.wav');
  192.     LoadWAV(Songs, 'Music\Take_On_Me.wav');
  193.     SoundsDOWN := TMemoryStream.Create;
  194.     SoundsUP := TMemoryStream.Create;
  195.     SoundsDOWN.LoadFromFile('Sound\TORMOZ.wav');
  196.     SoundsUP.LoadFromFile('Sound\UP.wav');
  197.     SoundsUP.Position := 0;
  198.     SoundsDOWN.Position := 0;
  199. End;
  200.  
  201. function CheckJPG(Path: String): boolean;
  202. var
  203.     Buf: Cardinal;
  204.     AStream: TFileStream;
  205.     IsCorrect: Boolean;
  206. begin
  207.     IsCorrect := True;
  208.     Astream := TFileStream.Create(Path, fmOpenRead);
  209.     Buf := 0;
  210.     Astream.Position := 0;
  211.     Astream.ReadBuffer(Buf, 3);
  212.     if Buf = $FFD8FF then
  213.         IsCorrect := True
  214.     else
  215.         IsCorrect := False;
  216.     Astream.Destroy;
  217.     CheckJPG := IsCorrect;
  218. end;
  219.  
  220. function CheckPNG(Path: String): boolean;
  221. var
  222.     Buf: Cardinal;
  223.     AStream: TFileStream;
  224.     IsCorrect: Boolean;
  225. begin
  226.     IsCorrect := True;
  227.     Astream := TFileStream.Create(Path, fmOpenRead);
  228.     Buf := 0;
  229.     Astream.Position := 0;
  230.     Astream.ReadBuffer(Buf, 3);
  231.     if Buf = $4E5089 then
  232.         IsCorrect := True
  233.     else
  234.         IsCorrect := False;
  235.     Astream.Destroy;
  236.     CheckPNG := IsCorrect;
  237. end;
  238.  
  239. procedure LoadPNGPicture(var Car: TImage; Path: String);
  240. begin
  241.     if CheckPNG(Path) then
  242.         Car.Picture.LoadFromFile(Path)
  243.     else
  244.         Application.Terminate;
  245. end;
  246.  
  247. procedure LoadJPGPicture(var Road: TImage; Path: String);
  248. begin
  249.     if CheckJPG(Path) then
  250.         Road.Picture.LoadFromFile(Path)
  251.     else
  252.         Application.Terminate;
  253. end;
  254.  
  255. Procedure LoadTextures();
  256. var
  257.     I: Byte;
  258. begin
  259.     For I := 0 to High(Cars) do
  260.         Cars[I].Skin := TImage.Create(nil);
  261.     For I := 0 to High(Roads) do
  262.         Roads[I].Skin := TImage.Create(nil);
  263.     LoadPNGPicture(Cars[0].Skin, 'Textures\Cars\BLUE_CAR.png');
  264.     LoadPNGPicture(Cars[1].Skin, 'Textures\Cars\WHITE_CAR.png');
  265.     LoadPNGPicture(Cars[2].Skin, 'Textures\Cars\CREEN_RACING_CAR.png');
  266.     LoadPNGPicture(Cars[3].Skin, 'Textures\Cars\WHITE_RACING_CAR.png');
  267.     LoadPNGPicture(Cars[4].Skin, 'Textures\Cars\RED_SPOILER_CAR.png');
  268.     LoadPNGPicture(Cars[5].Skin, 'Textures\Cars\TAXI.png');
  269.     LoadPNGPicture(Cars[6].Skin, 'Textures\Cars\POLICE_CAR.png');
  270.     LoadJPGPicture(Roads[0].Skin, 'Textures\Roads\ROAD_GRASS.jpg');
  271.     LoadJPGPicture(Roads[1].Skin, 'Textures\Roads\ROAD_SNOW.jpg');
  272.     LoadPNGPicture(Roads[2].Skin, 'Textures\Roads\ROAD_COUNTRY.png');
  273.     LoadJPGPicture(Roads[3].Skin, 'Textures\Roads\ROAD_RAINBOW.jpg');
  274. end;
  275.  
  276. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement