| 24 |
|
implementation |
| 25 |
|
{$R *.dfm} |
| 26 |
|
uses ABSMain, ABSDecUtil, Main, |
| 27 |
< |
ConnectionManager, TypeDefs, DataAccess, OniImgClass, Data, RawList; |
| 27 |
> |
ConnectionManager, TypeDefs, DataAccess, OniImgClass, Data, RawList, |
| 28 |
> |
Access_OniArchive; |
| 29 |
|
|
| 30 |
|
var |
| 31 |
|
Converting: Boolean = False; |
| 203 |
|
Stream_Names := TMemoryStream.Create; |
| 204 |
|
Stream_Dat := TFileStream.Create(Target, fmCreate); |
| 205 |
|
Stream_Raw := TFileStream.Create(AnsiReplaceStr(Target, '.dat', '.raw'), fmCreate); |
| 206 |
+ |
Stream_Raw.Write(EmptyBytes[0], 32); |
| 207 |
|
if Connection.DataOS in [DOS_WINDEMO, DOS_MAC, DOS_MACBETA] then |
| 208 |
+ |
begin |
| 209 |
|
Stream_Sep := TFileStream.Create(AnsiReplaceStr(Target, '.dat', '.sep'), fmCreate); |
| 210 |
+ |
Stream_Sep.Write(EmptyBytes[0], 32); |
| 211 |
+ |
end; |
| 212 |
+ |
|
| 213 |
|
|
| 214 |
|
DoStep('Creating header'); |
| 215 |
|
progress.Position := 0; |
| 238 |
|
for i := 0 to High(DatHeader.OSIdent) do |
| 239 |
|
case Connection.DataOS of |
| 240 |
|
DOS_WIN: DatHeader.OSIdent[i] := HeaderOSIdentWin[i]; |
| 241 |
< |
DOS_MAC: DatHeader.OSIdent[i] := HeaderOSIdentMac[i]; |
| 241 |
> |
DOS_MAC, DOS_WINDEMO: DatHeader.OSIdent[i] := HeaderOSIdentMac[i]; |
| 242 |
|
DOS_MACBETA: DatHeader.OSIdent[i] := HeaderOSIdentMacBeta[i]; |
| 243 |
|
end; |
| 244 |
|
for i := 0 to High(DatHeader.GlobalIdent) do |
| 279 |
|
begin |
| 280 |
|
case Connection.DataOS of |
| 281 |
|
DOS_WIN: ExtensionsHeader[i].Ident := FileTypes[j].IdentWin; |
| 282 |
< |
DOS_WINDEMO: ExtensionsHeader[i].Ident := FileTypes[j].IdentMac; |
| 282 |
> |
DOS_WINDEMO: |
| 283 |
> |
if FileTypes[j].Extension = 'SNDD' then |
| 284 |
> |
ExtensionsHeader[i].Ident := FileTypes[j].IdentWin |
| 285 |
> |
else |
| 286 |
> |
ExtensionsHeader[i].Ident := FileTypes[j].IdentMac; |
| 287 |
|
DOS_MAC: ExtensionsHeader[i].Ident := FileTypes[j].IdentMac; |
| 288 |
|
DOS_MACBETA: ExtensionsHeader[i].Ident := FileTypes[j].IdentMac; |
| 289 |
|
end; |
| 365 |
|
DatFileStream.Seek(0, soFromBeginning); |
| 366 |
|
Stream_Body.CopyFrom(DatFileStream, DatFileStream.Size); |
| 367 |
|
if (Stream_Body.Size mod 32) > 0 then |
| 368 |
+ |
begin |
| 369 |
+ |
ShowMessage( |
| 370 |
+ |
IntToStr(FileID) + '-' + FileInfo.Name + '.' + FileInfo.Extension + #13#10 + |
| 371 |
+ |
IntToStr(FileInfo.Size) + ' - 0x' + IntToHex(FileInfo.Size, 6) + ' - real: ' + IntToStr(DatFileStream.Size) + ' - 0x' + IntToHex(DatFileStream.Size, 6) + #13#10 + |
| 372 |
+ |
IntToStr(Stream_Body.Size) + ' - 0x' + IntToHex(Stream_Body.Size, 6) ); |
| 373 |
|
Stream_Body.Write(EmptyBytes[0], 32 - (Stream_Body.Size mod 32)); |
| 374 |
+ |
end; |
| 375 |
|
end |
| 376 |
|
else |
| 377 |
|
FilesHeader[FileID].DataAddr := 0; |
| 495 |
|
begin |
| 496 |
|
DeleteFile(target); |
| 497 |
|
end; |
| 498 |
< |
end; |
| 498 |
> |
end; |
| 499 |
|
|
| 500 |
|
|
| 501 |
|
|
| 636 |
|
DoStep('Writing .dat-fileslist'); |
| 637 |
|
Application.ProcessMessages; |
| 638 |
|
|
| 639 |
+ |
TAccess_OniArchive(Connection).UnloadWhenUnused := False; |
| 640 |
+ |
|
| 641 |
|
FileTime := Time; |
| 642 |
|
Database.StartTransaction; |
| 643 |
|
for FileID := 0 to Connection.GetFileCount - 1 do |
| 735 |
|
btn_abortok.Default := True; |
| 736 |
|
|
| 737 |
|
converting := False; |
| 738 |
+ |
TAccess_OniArchive(Connection).UnloadWhenUnused := True; |
| 739 |
|
|
| 740 |
|
Query.Close; |
| 741 |
|
Query.Free; |