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

Comparing oup/current/FileClasses/TXMP.pas (file contents):
Revision 213 by alloc, Tue Jun 12 17:00:48 2007 UTC vs.
Revision 233 by alloc, Fri Jun 29 12:38:24 2007 UTC

# Line 7 | Line 7 | uses
7  
8   type
9    TFile_TXMP = class(TFile)
10 <    protected
11 <      procedure InitDatLinks; override;
10 >    public
11        procedure InitDataFields; override;
12 <      procedure InitRawList; override;
12 >      procedure InitEditor; override;
13    end;
14  
15   implementation
16  
17   uses
18 <  ConnectionManager, Math, Classes, TypeDefs, _DataTypes;
18 >  ConnectionManager, Math, Classes, TypeDefs, _DataTypes, ExtCtrls, StdCtrls,
19 >  Controls, Forms;
20  
21   { TFile_TXMP }
22  
# Line 104 | Line 104 | begin
104      AddField(TUnused, $A4, 'Unused', '', @tempi);
105    end;
106    templist.Free;
107 +  FFileStream.Free;
108 +  FFileStream := nil;
109   end;
110  
111  
112 < procedure TFile_TXMP.InitDatLinks;
111 < begin
112 <  SetLength(FDatLinks, 2);
113 <  FDatLinks[0].SrcOffset := $94;
114 <  FDatLinks[0].DestID := GetDatLinkValue(FFileStream, $94);
115 <  FDatLinks[0].PosDestExts := '*';
116 <  FDatLinks[1].SrcOffset := $98;
117 <  FDatLinks[1].DestID := GetDatLinkValue(FFileStream, $98);
118 <  FDatLinks[1].PosDestExts := 'TXMP';
119 < end;
120 <
121 <
122 < procedure TFile_TXMP.InitRawList;
112 > procedure TFile_TXMP.InitEditor;
113   var
114 <  link_pc:   Integer;
115 <  link_mac:  Integer;
126 <  x, y:      Word;
127 <  storetype: Byte;
128 <  datasize:  Integer;
129 <  mipmap:    Byte;
130 <
131 <  function GetImgSize(w,h, storetype: Integer): Integer;
132 <  begin
133 <    case storetype of
134 <      0, 1, 2:
135 <        Result := w*h*2;
136 <      8:
137 <        Result := w*h*4;
138 <      9:
139 <        Result :=  Max(1, w div 4) * Max(1, h div 4) * 8;
140 <    else
141 <      Result := -1;
142 <    end;
143 <  end;
144 <
114 >  group: TGroupBox;
115 >  splitter: TSplitter;
116   begin
117 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $88, SizeOf(mipmap), @mipmap);
118 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $8C, SizeOf(x), @x);
119 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $8E, SizeOf(y), @y);
120 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $90, SizeOf(storetype), @storetype);
121 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $9C, 4, @link_pc);
122 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $A0, 4, @link_mac);
123 <
124 <  datasize := GetImgSize(x, y, storetype);
125 <  if (mipmap and $01) > 0 then
126 <  begin
127 <    repeat
128 <      x    := Max(x div 2, 1);
129 <      y    := Max(y div 2, 1);
130 <      datasize := datasize + GetImgSize(x, y, storetype);
131 <    until (x = 1) and (y = 1);
132 <  end;
133 <
134 <  SetLength(FRawParts, 1);
135 <  if ConManager.Connection[FConnectionID].DataOS = DOS_WIN then
136 <  begin
137 <    FRawParts[0].SrcOffset := $9C;
167 <    FRawParts[0].RawAddr   := link_pc;
168 <  end
169 <  else
170 <  begin
171 <    FRawParts[0].SrcOffset := $A0;
172 <    FRawParts[0].RawAddr   := link_mac;
173 <  end;
174 <  FRawParts[0].RawSize := datasize;
175 <  FRawParts[0].LocSep  := not (ConManager.Connection[FConnectionID].DataOS = DOS_WIN);
117 >  inherited;
118 >  FEditor := TFrame.Create(nil);
119 >  group := TGroupBox.Create(FEditor);
120 >  group.Align := alTop;
121 >  group.Height := 150;
122 >  group.Caption := '1. ';
123 >  group.Parent := FEditor;
124 >
125 >  splitter := TSplitter.Create(FEditor);
126 >  splitter.Align := alTop;
127 >  splitter.Top := group.Height + 10;
128 >  splitter.AutoSnap := False;
129 >  splitter.MinSize := 100;
130 >  splitter.Beveled := True;
131 >  splitter.Height := 8;
132 >  splitter.Parent := FEditor;
133 >
134 >  group := TGroupBox.Create(FEditor);
135 >  group.Align := alClient;
136 >  group.Caption := '2. ';
137 >  group.Parent := FEditor;
138   end;
139  
140   end.
179

Diff Legend

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