ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/oup/current/Helper/LevelDB.pas
(Generate patch)

Comparing oup/current/Helper/LevelDB.pas (file contents):
Revision 142 by alloc, Fri Mar 30 02:08:49 2007 UTC vs.
Revision 150 by alloc, Sun Apr 1 18:26:35 2007 UTC

# Line 44 | Line 44 | end;
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;
# Line 335 | Line 338 | begin
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;
# Line 347 | Line 354 | begin
354        end;
355        DatFileStream.Seek(0, soFromBeginning);
356        Stream_Body.CopyFrom(DatFileStream, DatFileStream.Size);
357 +      if (Stream_Body.Size mod 32) > 0 then
358 +      begin
359 +        ShowMessage(
360 +            IntToStr(FileID) + '-' + FileInfo.Name + '.' + FileInfo.Extension + #13#10 +
361 +            IntToStr(Stream_Body.Size));
362 +        Stream_Body.Write(EmptyBytes[0], 32 - (Stream_Body.Size mod 32));
363 +      end;
364      end
365      else
366        FilesHeader[FileID].DataAddr := 0;
# Line 377 | Line 391 | begin
391    for i := 0 to High(ExtensionsHeader) do
392      Stream_Dat.Write(ExtensionsHeader[i], SizeOf(ExtensionsHeader[i]));
393  
394 +  if (Stream_Dat.Size mod 32) > 0 then
395 +    Stream_Dat.Write(EmptyBytes[0], 32 - (Stream_Dat.Size mod 32));
396 +
397    DatHeader.DataSize  := Stream_Body.Size;
398    DatHeader.NamesSize := Stream_Names.Size;
399    DatHeader.DataAddr  := Stream_Dat.Size;
400  
401    Stream_Body.Seek(0, soFromBeginning);
402    Stream_Dat.CopyFrom(Stream_Body, Stream_Body.Size);
403 +
404 +  if (Stream_Dat.Size mod 32) > 0 then
405 +    Stream_Dat.Write(EmptyBytes[0], 32 - (Stream_Dat.Size mod 32));
406 +
407    DatHeader.NamesAddr := Stream_Dat.Size;
408    Stream_Names.Seek(0, soFromBeginning);
409    Stream_Dat.CopyFrom(Stream_Names, Stream_Names.Size);

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)