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 207 by alloc, Tue May 29 19:39:15 2007 UTC vs.
Revision 232 by alloc, Thu Jun 28 09:24:08 2007 UTC

# Line 3 | Line 3 | unit TXMP;
3   interface
4  
5   uses
6 <  TypeDefs, _FileTypes, _DataTypes;
6 >  _FileTypes;
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;
19 <
21 < { TFile_SNDD }
22 <
23 < procedure TFile_TXMP.InitDatLinks;
24 < begin
25 <  SetLength(FDatLinks, 2);
26 <  FDatLinks[0].SrcOffset := $94;
27 <  FDatLinks[0].DestID := -1;
28 <  FDatLinks[0].PosDestExts := '*';
29 <  FDatLinks[1].SrcOffset := $98;
30 <  FDatLinks[1].DestID := -1;
31 <  FDatLinks[1].PosDestExts := 'TXMP';
32 < end;
18 >  ConnectionManager, Math, Classes, TypeDefs, _DataTypes, ExtCtrls, StdCtrls,
19 >  Controls, Forms;
20  
21 + { TFile_TXMP }
22  
23   procedure TFile_TXMP.InitDataFields;
24   var
# Line 38 | Line 26 | var
26    temps: String;
27    templist: TStringList;
28   begin
29 <  FDataFields := TBlock.Create(Self, 0, 'Base', '', nil);
29 >  inherited;
30 >  FDataFields := TBlock.Create(Self, nil, 0, 'Base', '', nil);
31    templist := TStringList.Create;
32    with FDataFields do
33    begin
# Line 118 | Line 107 | begin
107   end;
108  
109  
110 < procedure TFile_TXMP.InitRawList;
110 > procedure TFile_TXMP.InitEditor;
111   var
112 <  link_pc:   Integer;
113 <  link_mac:  Integer;
125 <  x, y:      Word;
126 <  storetype: Byte;
127 <  datasize:  Integer;
128 <  mipmap:    Byte;
129 <
130 <  function GetImgSize(w,h, storetype: Integer): Integer;
131 <  begin
132 <    case storetype of
133 <      0, 1, 2:
134 <        Result := w*h*2;
135 <      8:
136 <        Result := w*h*4;
137 <      9:
138 <        Result :=  Max(1, w div 4) * Max(1, h div 4) * 8;
139 <    else
140 <      Result := -1;
141 <    end;
142 <  end;
143 <
112 >  group: TGroupBox;
113 >  splitter: TSplitter;
114   begin
115 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $88, SizeOf(mipmap), @mipmap);
116 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $8C, SizeOf(x), @x);
117 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $8E, SizeOf(y), @y);
118 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $90, SizeOf(storetype), @storetype);
119 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $9C, 4, @link_pc);
120 <  ConManager.Connection[FConnectionID].LoadDatFilePart(FFileID, $A0, 4, @link_mac);
121 <
122 <  datasize := GetImgSize(x, y, storetype);
123 <  if (mipmap and $01) > 0 then
124 <  begin
125 <    repeat
126 <      x    := Max(x div 2, 1);
127 <      y    := Max(y div 2, 1);
128 <      datasize := datasize + GetImgSize(x, y, storetype);
129 <    until (x = 1) and (y = 1);
130 <  end;
131 <
132 <  SetLength(FRawParts, 1);
133 <  if ConManager.Connection[FConnectionID].DataOS = DOS_WIN then
134 <  begin
135 <    FRawParts[0].SrcOffset := $9C;
166 <    FRawParts[0].RawAddr   := link_pc;
167 <  end
168 <  else
169 <  begin
170 <    FRawParts[0].SrcOffset := $A0;
171 <    FRawParts[0].RawAddr   := link_mac;
172 <  end;
173 <  FRawParts[0].RawSize := datasize;
174 <  FRawParts[0].LocSep  := not (ConManager.Connection[FConnectionID].DataOS = DOS_WIN);
115 >  inherited;
116 >  FEditor := TFrame.Create(nil);
117 >  group := TGroupBox.Create(FEditor);
118 >  group.Align := alTop;
119 >  group.Height := 150;
120 >  group.Caption := '1. ';
121 >  group.Parent := FEditor;
122 >
123 >  splitter := TSplitter.Create(FEditor);
124 >  splitter.Align := alTop;
125 >  splitter.Top := group.Height + 10;
126 >  splitter.AutoSnap := False;
127 >  splitter.MinSize := 100;
128 >  splitter.Beveled := True;
129 >  splitter.Height := 8;
130 >  splitter.Parent := FEditor;
131 >
132 >  group := TGroupBox.Create(FEditor);
133 >  group.Align := alClient;
134 >  group.Caption := '2. ';
135 >  group.Parent := FEditor;
136   end;
137  
138   end.

Diff Legend

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