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

Comparing oup/current/Tools/TxmpReplace.pas (file contents):
Revision 199 by alloc, Sat May 26 20:41:34 2007 UTC vs.
Revision 255 by alloc, Tue Dec 18 20:48:24 2007 UTC

# Line 1 | Line 1
1   unit TxmpReplace;
2 +
3   interface
4 +
5   uses
6    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 <  Dialogs, Template, StdCtrls, ExtCtrls,
8 <  Functions, Data, OniImgClass, Menus, Buttons, TypeDefs;
7 >  Dialogs, _TemplateFileList, Menus, StdCtrls, Buttons, ComCtrls, ExtCtrls,
8 >  OniImgClass, TypeDefs, VirtualTrees;
9  
10   type
11 <  TForm_TxmpReplace = class(TForm_ToolTemplate)
11 >  TForm_TxmpReplace = class(TForm_TemplateFileList)
12      group_options: TGroupBox;
13      btn_replace: TButton;
14      check_transparency: TCheckBox;
15      check_fading: TCheckBox;
16 <    panel_txmppreview: TPanel;
17 <    btn_save: TButton;
16 <    image_txmppreview: TImage;
17 <    splitter_txmp: TSplitter;
16 >    group_txmp: TGroupBox;
17 >    Splitter1: TSplitter;
18      group_bmpselect: TGroupBox;
19      image_bmppreview: TImage;
20      panel_load: TPanel;
21      btn_load: TButton;
22 <    opend: TOpenDialog;
22 >    image_txmppreview: TImage;
23 >    panel_txmppreview: TPanel;
24 >    btn_save: TButton;
25      saved: TSaveDialog;
26 +    opend: TOpenDialog;
27      procedure SelectFile(fileinfo: TFileInfo);
28      procedure FormCreate(Sender: TObject);
29      procedure FormClose(Sender: TObject; var Action: TCloseAction);
# Line 36 | Line 39 | type
39    public
40    end;
41  
39 var
40  Form_TxmpReplace: TForm_TxmpReplace;
41
42   implementation
43   {$R *.dfm}
44 < uses Main, ConnectionManager, ImagingTypes;
45 <
46 <
44 > uses
45 >  _TemplateFile, ConnectionManager, ImagingTypes;
46  
47   procedure TForm_TxmpReplace.SelectFile(fileinfo: TFileInfo);
48   var
50  mem:  TMemoryStream;
49    fadingbyte, depthbyte, storebyte: Byte;
50   begin
51    fileid := fileinfo.ID;
# Line 79 | Line 77 | begin
77   end;
78  
79   procedure TForm_TxmpReplace.btn_loadClick(Sender: TObject);
82 var
83  mem:   TMemoryStream;
80   begin
81    if opend.Execute then
82    begin
# Line 101 | Line 97 | var
97    datbyte: Word;
98    mem: TMemoryStream;
99    new_storetype: Byte;
100 <  formatinfo: TImageFormatInfo;
100 >  i: Integer;
101 > const
102 >  powers: array[0..8] of Integer = (1, 2, 4, 8, 16, 32, 64, 128, 256);
103   begin
104    if filelist.ItemIndex >= 0 then
105    begin
# Line 111 | Line 109 | begin
109      else
110        ConManager.Connection[ConnectionID].LoadDatFilePart(fileid, $9C, 4, @old_rawaddr);
111  
112 +    if (OniImage_New.Width[1] > 256) or (OniImage_New.Height[1] > 256) then
113 +    begin
114 +      ShowMessage('Widht and height have to be smaller than or equal to 256.');
115 +      Exit;
116 +    end;
117 +    for i := 0 to High(powers) do
118 +      if OniImage_New.Width[1] = powers[i] then
119 +        Break;
120 +    if i = Length(powers) then
121 +    begin
122 +      ShowMessage('Width has to be a power of 2 (1, 2, 4, 8, 16 ...)');
123 +      Exit;
124 +    end;
125 +    for i := 0 to High(powers) do
126 +      if OniImage_New.Height[1] = powers[i] then
127 +        Break;
128 +    if i = Length(powers) then
129 +    begin
130 +      ShowMessage('Height has to be a power of 2 (1, 2, 4, 8, 16 ...)');
131 +      Exit;
132 +    end;
133 +
134      if (OniImage_Old.Width[1] <> OniImage_New.Width[1]) or
135        (OniImage_Old.Height[1] <> OniImage_New.Height[1]) then
136      begin
# Line 156 | Line 176 | begin
176      newsize := mem.Size;
177      mem.Seek(0, soFromBeginning);
178  
179 <    if (newsize > old_size) and (ConManager.Connection[ConnectionID].Backend = DB_ONI) then
179 >    if (newsize > old_size) and (ConManager.Connection[ConnectionID].Backend in [DB_ONI, DB_ONISPLIT]) then
180        new_rawaddr := ConManager.Connection[ConnectionID].AppendRawFile(
181          not (ConManager.Connection[ConnectionID].DataOS = DOS_WIN), mem)
182      else
# Line 169 | Line 189 | begin
189        oldfading := oldfading or $01
190      else
191        oldfading := oldfading and (not Byte($01));
192 <    ConManager.Connection[ConnectionID].UpdateDatFilePart(fileid, $88, 1, @datbyte);
192 >    ConManager.Connection[ConnectionID].UpdateDatFilePart(fileid, $88, 1, @oldfading);
193      datbyte := $10;
194   //    if check_transparency.Checked then
195   //      datbyte := datbyte or $04;
# Line 223 | Line 243 | end;
243  
244   begin
245    AddToolListEntry('txmpreplace', 'TXMP Replacer', 'TXMP');
246 < end.
246 > end.
247 >

Diff Legend

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