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

Comparing oup/current/Code/OniImgClass.pas (file contents):
Revision 46 by alloc, Sat Dec 23 16:26:43 2006 UTC vs.
Revision 86 by alloc, Sun Jan 14 20:19:08 2007 UTC

# Line 32 | Line 32 | type
32      property Data: Tdata Read FData Write FData;
33  
34      constructor Create;
35 <    function Load(fileid: LongWord): Boolean;
36 <    function LoadFromPSpc(fileid: LongWord): Boolean;
37 <    function LoadFromTXMP(fileid: LongWord): Boolean;
38 <    function LoadFromTXMB(fileid: LongWord): Boolean;
35 >    function Load(connection: TOniData; fileid: Cardinal): Boolean;
36 >    function LoadFromPSpc(connection: TOniData; fileid: LongWord): Boolean;
37 >    function LoadFromTXMP(connection: TOniData; fileid: LongWord): Boolean;
38 >    function LoadFromTXMB(connection: TOniData; fileid: LongWord): Boolean;
39      function GetImageDataSize(fading: Boolean): LongWord;
40  
41      function GetAsData: Tdata;
# Line 302 | Line 302 | end;
302  
303  
304  
305 < function TOniImage.Load(fileid: LongWord): Boolean;
305 > function TOniImage.Load(connection: TOniData; fileid: Cardinal): Boolean;
306   var
307    FileInfo: TFileInfo;
308    ext:      String;
309   begin
310 <  FileInfo := OniDataConnection.GetFileInfo(fileid);
310 >  FileInfo := connection.GetFileInfo(fileid);
311    if FileInfo.Extension = 'PSpc' then
312 <    Result := LoadFromPSpc(fileid)
312 >    Result := LoadFromPSpc(connection, fileid)
313    else if FileInfo.Extension = 'TXMB' then
314 <    Result := LoadFromTXMB(fileid)
314 >    Result := LoadFromTXMB(connection, fileid)
315    else if FileInfo.Extension = 'TXMP' then
316 <    Result := LoadFromTXMP(fileid)
316 >    Result := LoadFromTXMP(connection, fileid)
317    else
318      Result := False;
319   end;
# Line 321 | Line 321 | end;
321  
322  
323  
324 < function TOniImage.LoadFromPSpc(fileid: LongWord): Boolean;
324 > function TOniImage.LoadFromPSpc(connection: TOniData; fileid: LongWord): Boolean;
325   type
326    TPoint = packed record
327      X, Y: Word;
# Line 356 | Line 356 | var
356    rows:     array[0..2] of Word;
357    col, row: Byte;
358   begin
359 <  OniDataConnection.LoadDatFilePart(fileid, $08, SizeOf(PSpc), @PSpc);
359 >  connection.LoadDatFilePart(fileid, $08, SizeOf(PSpc), @PSpc);
360    PSpc.TXMP := PSpc.TXMP div 256;
361    if PSpc.TXMP = 0 then
362    begin
# Line 364 | Line 364 | begin
364      Exit;
365    end;
366    txmpimg := TOniImage.Create;
367 <  txmpimg.LoadFromTXMP(PSpc.TXMP);
367 >  txmpimg.LoadFromTXMP(connection, PSpc.TXMP);
368    txmpimg.DecodeImage;
369    txmpimg.WriteToBMP('C:\file.bmp');
370    txmpdata := txmpimg.GetAs32bit;
# Line 463 | Line 463 | end;
463  
464  
465  
466 < function TOniImage.LoadFromTXMP(fileid: LongWord): Boolean;
466 > function TOniImage.LoadFromTXMP(connection: TOniData; fileid: LongWord): Boolean;
467   var
468    img_addr: LongWord;
469   begin
470    Result := True;
471 <  OniDataConnection.LoadDatFilePart(fileid, $8C, SizeOf(Self.FWidth), @Self.FWidth);
472 <  OniDataConnection.LoadDatFilePart(fileid, $8E, SizeOf(Self.FHeight), @Self.FHeight);
473 <  OniDataConnection.LoadDatFilePart(fileid, $90, SizeOf(Self.FStoreType),
471 >  connection.LoadDatFilePart(fileid, $8C, SizeOf(Self.FWidth), @Self.FWidth);
472 >  connection.LoadDatFilePart(fileid, $8E, SizeOf(Self.FHeight), @Self.FHeight);
473 >  connection.LoadDatFilePart(fileid, $90, SizeOf(Self.FStoreType),
474      @Self.FStoreType);
475 <  if not OniDataConnection.OSisMac then
476 <    OniDataConnection.LoadDatFilePart(fileid, $9C, SizeOf(img_addr), @img_addr)
475 >  if not connection.OSisMac then
476 >    connection.LoadDatFilePart(fileid, $9C, SizeOf(img_addr), @img_addr)
477    else
478 <    OniDataConnection.LoadDatFilePart(fileid, $A0, SizeOf(img_addr), @img_addr);
478 >    connection.LoadDatFilePart(fileid, $A0, SizeOf(img_addr), @img_addr);
479  
480    case Self.FStoreType of
481      0, 1, 2:
# Line 498 | Line 498 | begin
498        Exit;
499    end;
500  
501 <  if not OniDataConnection.OSisMac then
502 <    OniDataConnection.LoadRawFile(fileid, $9C, @Self.FData[0])
501 >  if not connection.OSisMac then
502 >    connection.LoadRawFile(fileid, $9C, @Self.FData[0])
503    else
504 <    OniDataConnection.LoadRawFile(fileid, $A0, @Self.FData[0]);
504 >    connection.LoadRawFile(fileid, $A0, @Self.FData[0]);
505  
506    Self.FDataType := [DT_OniReverted, DT_Oni];
507   end;
# Line 509 | Line 509 | end;
509  
510  
511  
512 < function TOniImage.LoadFromTXMB(fileid: LongWord): Boolean;
512 > function TOniImage.LoadFromTXMB(connection: TOniData; fileid: LongWord): Boolean;
513   var
514    i, x, y, x2, y2, pixelid, imgid: LongWord;
515    rows, cols: Word;
# Line 518 | Line 518 | var
518    images_decoded: array of TOniImage;
519    x_start, y_start: LongWord;
520   begin
521 <  OniDataConnection.LoadDatFilePart(fileid, $10, SizeOf(Self.FWidth), @Self.FWidth);
522 <  OniDataConnection.LoadDatFilePart(fileid, $12, SizeOf(Self.FHeight), @Self.FHeight);
523 <  OniDataConnection.LoadDatFilePart(fileid, $18, SizeOf(cols), @cols);
524 <  OniDataConnection.LoadDatFilePart(fileid, $1A, SizeOf(rows), @rows);
525 <  OniDataConnection.LoadDatFilePart(fileid, $1C, SizeOf(linkcount), @linkcount);
521 >  connection.LoadDatFilePart(fileid, $10, SizeOf(Self.FWidth), @Self.FWidth);
522 >  connection.LoadDatFilePart(fileid, $12, SizeOf(Self.FHeight), @Self.FHeight);
523 >  connection.LoadDatFilePart(fileid, $18, SizeOf(cols), @cols);
524 >  connection.LoadDatFilePart(fileid, $1A, SizeOf(rows), @rows);
525 >  connection.LoadDatFilePart(fileid, $1C, SizeOf(linkcount), @linkcount);
526    SetLength(images_decoded, linkcount);
527    for i := 0 to linkcount - 1 do
528    begin
529 <    OniDataConnection.LoadDatFilePart(fileid, $20 + i * 4, SizeOf(link), @link);
529 >    connection.LoadDatFilePart(fileid, $20 + i * 4, SizeOf(link), @link);
530      link := link div 256;
531      images_decoded[i] := TOniImage.Create;
532 <    images_decoded[i].LoadFromTXMP(link);
532 >    images_decoded[i].LoadFromTXMP(connection, link);
533      images_decoded[i].DecodeImage;
534      images_decoded[i].RevertImage;
535    end;

Diff Legend

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