44 |
|
|
45 |
|
|
46 |
|
procedure TForm_LevelDB.CreateLevel(Source, Target: String); |
47 |
+ |
const |
48 |
+ |
EmptyBytes: Array[0..31] of Byte = ( |
49 |
+ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ); |
50 |
|
var |
51 |
|
DatHeader: THeader; |
52 |
|
FilesHeader: TFilesMap; |
338 |
|
begin |
339 |
|
RawLinks[i].RawAddr := Stream_Sep.Size; |
340 |
|
Stream_sep.CopyFrom(RawFileStream, RawFileStream.Size); |
341 |
+ |
if (Stream_Sep.Size mod 32) > 0 then |
342 |
+ |
Stream_Sep.Write(EmptyBytes[0], 32 - (Stream_Sep.Size mod 32)); |
343 |
|
end else begin |
344 |
|
RawLinks[i].RawAddr := Stream_Raw.Size; |
345 |
|
Stream_Raw.CopyFrom(RawFileStream, RawFileStream.Size); |
346 |
+ |
if (Stream_Raw.Size mod 32) > 0 then |
347 |
+ |
Stream_Raw.Write(EmptyBytes[0], 32 - (Stream_Raw.Size mod 32)); |
348 |
|
end; |
349 |
|
end else |
350 |
|
RawLinks[i].RawAddr := 0; |
354 |
|
end; |
355 |
|
DatFileStream.Seek(0, soFromBeginning); |
356 |
|
Stream_Body.CopyFrom(DatFileStream, DatFileStream.Size); |
357 |
+ |
if (Stream_Body.Size mod 32) > 0 then |
358 |
+ |
Stream_Body.Write(EmptyBytes[0], 32 - (Stream_Body.Size mod 32)); |
359 |
|
end |
360 |
|
else |
361 |
|
FilesHeader[FileID].DataAddr := 0; |
386 |
|
for i := 0 to High(ExtensionsHeader) do |
387 |
|
Stream_Dat.Write(ExtensionsHeader[i], SizeOf(ExtensionsHeader[i])); |
388 |
|
|
389 |
+ |
if (Stream_Dat.Size mod 32) > 0 then |
390 |
+ |
Stream_Dat.Write(EmptyBytes[0], 32 - (Stream_Dat.Size mod 32)); |
391 |
+ |
|
392 |
|
DatHeader.DataSize := Stream_Body.Size; |
393 |
|
DatHeader.NamesSize := Stream_Names.Size; |
394 |
|
DatHeader.DataAddr := Stream_Dat.Size; |
395 |
|
|
396 |
|
Stream_Body.Seek(0, soFromBeginning); |
397 |
|
Stream_Dat.CopyFrom(Stream_Body, Stream_Body.Size); |
398 |
+ |
|
399 |
+ |
if (Stream_Dat.Size mod 32) > 0 then |
400 |
+ |
Stream_Dat.Write(EmptyBytes[0], 32 - (Stream_Dat.Size mod 32)); |
401 |
+ |
|
402 |
|
DatHeader.NamesAddr := Stream_Dat.Size; |
403 |
|
Stream_Names.Seek(0, soFromBeginning); |
404 |
|
Stream_Dat.CopyFrom(Stream_Names, Stream_Names.Size); |