This commit is contained in:
Vladimir Kryvian
2015-08-06 12:43:25 +03:00
parent b6a4a590c6
commit ecfbb344b9
8 changed files with 78 additions and 93 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -27,7 +27,7 @@
<AutoIncrementBuild Value="True"/>
<MajorVersionNr Value="1"/>
<RevisionNr Value="90"/>
<BuildNr Value="33"/>
<BuildNr Value="54"/>
<StringTable CompanyName="Lab 313" FileDescription="The best TIMs tool ever!:)" ProductVersion=""/>
</VersionInfo>
<BuildModes Count="6">
@@ -37,7 +37,7 @@
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="output\tim2view_$(TargetOS)"/>
<Filename Value="output\tim2view_$(TargetOS)_$(TargetCPU)"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);lazpaint\bgrabitmap"/>
@@ -77,7 +77,7 @@
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="output\tim2view_$(TargetOS)"/>
<Filename Value="output\tim2view_$(TargetOS)_$(TargetCPU)"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);lazpaint\bgrabitmap"/>
@@ -117,7 +117,7 @@
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="output\tim2view_$(TargetOS)"/>
<Filename Value="output\tim2view_$(TargetOS)_$(TargetCPU)"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);lazpaint\bgrabitmap"/>
@@ -157,7 +157,7 @@
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="output\tim2view_$(TargetOS)"/>
<Filename Value="output\tim2view_$(TargetOS)_$(TargetCPU)"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);lazpaint\bgrabitmap"/>
@@ -197,7 +197,7 @@
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="output\tim2view_$(TargetOS)"/>
<Filename Value="output\tim2view_$(TargetOS)_$(TargetCPU)"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);lazpaint\bgrabitmap"/>
@@ -316,7 +316,7 @@
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="output\tim2view_$(TargetOS)"/>
<Filename Value="output\tim2view_$(TargetOS)_$(TargetCPU)"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir);lazpaint\bgrabitmap"/>

View File

@@ -11,7 +11,7 @@ type
PDrawGrid = ^TDrawGrid;
procedure Tim2Png(TIM: PTIM; CLUT_NUM: Integer; Image: PDrawSurf; TranspMode: Byte; ForExport: Boolean);
procedure Tim2Png(TIM: PTIM; CLUT_NUM: Integer; Image: PDrawSurf; TranspMode: Byte);
procedure Png2Tim(Image: PDrawSurf; Dest: PTIM);
procedure DrawClutCell(TIM: PTIM; CLUT_NUM: Integer; Grid: PDrawGrid; X, Y: Integer);
procedure DrawClut(TIM: PTIM; CLUT_NUM: Integer; Grid: PDrawGrid);
@@ -69,7 +69,7 @@ begin
end
end;
procedure PrepareClut(TIM: PTIM; CLUT_NUM: Integer; Pal: PFPPalette; TranspMode: Integer; ForExport: Boolean);
procedure PrepareClut(TIM: PTIM; CLUT_NUM: Integer; Pal: PFPPalette; TranspMode: Integer);
var
I, COUNT: Integer;
CC: TCLUT_COLOR;
@@ -105,12 +105,9 @@ begin
A := 0;
end;
if ForExport then
begin
R := R + ((I - 1) and %00000011);
G := G + ((I - 1) and %00011100) shr 2;
B := B + ((I - 1) and %11100000) shr 5;
end;
R := R + ((I - 1) and %00000011);
G := G + ((I - 1) and %00011100) shr 2;
B := B + ((I - 1) and %11100000) shr 5;
FC := BGRAToFPColor(BGRA(R, G, B, A));
AlphaForMode(@FC, TranspMode);
@@ -182,7 +179,7 @@ begin
ClearCanvas(@Grid^.Canvas, Grid^.CellRect(X - 1, Y - 1));
end;
procedure Tim2Png(TIM: PTIM; CLUT_NUM: Integer; Image: PDrawSurf; TranspMode: Byte; ForExport: Boolean);
procedure Tim2Png(TIM: PTIM; CLUT_NUM: Integer; Image: PDrawSurf; TranspMode: Byte);
var
RW, RH, CW: Word;
INDEXES: PIMAGE_INDEXES;
@@ -202,7 +199,7 @@ begin
PAL := @(Image^.Palette);
PrepareClut(TIM, CLUT_NUM, PAL, TranspMode, ForExport);
PrepareClut(TIM, CLUT_NUM, PAL, TranspMode);
INDEXES := PrepareIMAGE(TIM);
COLORS := GetTimColorsCount(TIM);

View File

@@ -578,8 +578,8 @@ object frmMain: TfrmMain
TabOrder = 0
object lvList: TListView
Left = 0
Height = 384
Top = 28
Height = 412
Top = 0
Width = 253
Align = alClient
Columns = <
@@ -624,35 +624,6 @@ object frmMain: TfrmMain
OnData = lvListData
OnSelectItem = lvListSelectItem
end
object pnlExtractAll: TPanel
Left = 0
Height = 28
Top = 0
Width = 253
Align = alTop
BevelOuter = bvLowered
ClientHeight = 28
ClientWidth = 253
TabOrder = 1
object btnExtractAllTims: TButton
Left = 152
Height = 26
Top = 1
Width = 100
Action = actExtractPngs
Align = alRight
TabOrder = 0
end
object btnExtractPNGs: TButton
Left = 1
Height = 26
Top = 1
Width = 100
Action = actExtractFiles
Align = alLeft
TabOrder = 1
end
end
object tblTimInfo: TStringGrid
Left = 0
Height = 185
@@ -667,7 +638,7 @@ object frmMain: TfrmMain
Flat = True
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goSmoothScroll]
RowCount = 9
TabOrder = 2
TabOrder = 1
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'Tahoma'
@@ -904,10 +875,10 @@ object frmMain: TfrmMain
object mnImage: TMenuItem
Caption = '&Image'
object mnSaveTIM: TMenuItem
Action = actExtractFile
Action = actExtractTim
end
object mnReplaceIn: TMenuItem
Action = actReplaceFile
Action = actReplaceTim
end
object MenuItem1: TMenuItem
Caption = '-'
@@ -918,6 +889,15 @@ object frmMain: TfrmMain
object mnImportPng: TMenuItem
Action = actPngImport
end
object N21: TMenuItem
Caption = '-'
end
object mnExtractAllTims3: TMenuItem
Action = actExtractTims
end
object mnExtractAllPngs3: TMenuItem
Action = actExtractPngs
end
end
object mnOptions: TMenuItem
Caption = '&Options'
@@ -1029,9 +1009,9 @@ object frmMain: TfrmMain
OnExecute = actExitExecute
ShortCut = 121
end
object actExtractFile: TAction
Caption = '&Extract File...'
OnExecute = actExtractFileExecute
object actExtractTim: TAction
Caption = '&Extract TIM...'
OnExecute = actExtractTimExecute
ShortCut = 113
end
object actPngExport: TAction
@@ -1044,9 +1024,9 @@ object frmMain: TfrmMain
OnExecute = actPngImportExecute
ShortCut = 116
end
object actReplaceFile: TAction
Caption = '&Replace File...'
OnExecute = actReplaceFileExecute
object actReplaceTim: TAction
Caption = '&Replace TIM...'
OnExecute = actReplaceTimExecute
ShortCut = 114
end
object actOpenRepo: TAction
@@ -1071,13 +1051,13 @@ object frmMain: TfrmMain
Caption = '&SendTo Shortcut for Tim2View'
OnExecute = actAddToSendtoExecute
end
object actExtractFiles: TAction
Caption = 'Extract all &Files'
OnExecute = actExtractFilesExecute
object actExtractTims: TAction
Caption = 'Extract all &TIMs (This File)'
OnExecute = actExtractTimsExecute
ShortCut = 8305
end
object actExtractPngs: TAction
Caption = '&Extract all PNGs'
Caption = '&Extract all PNGs (This File)'
OnExecute = actExtractPngsExecute
ShortCut = 8307
end
@@ -1108,20 +1088,26 @@ object frmMain: TfrmMain
object pmList: TPopupMenu
left = 432
top = 112
object ExtractTIM1: TMenuItem
Action = actExtractFile
object mnSaveTIM1: TMenuItem
Action = actExtractTim
end
object ReplaceTIM1: TMenuItem
Action = actReplaceFile
end
object SaveasPNG1: TMenuItem
Action = actPngExport
object mnReplaceIn1: TMenuItem
Action = actReplaceTim
end
object N7: TMenuItem
Caption = '-'
end
object mnSaveToPNG1: TMenuItem
Action = actPngExport
end
object mnImportPng1: TMenuItem
Action = actPngImport
end
object N20: TMenuItem
Caption = '-'
end
object mnExtractAllTims2: TMenuItem
Action = actExtractFiles
Action = actExtractTims
end
object mnExtractAllPngs2: TMenuItem
Action = actExtractPngs
@@ -1134,7 +1120,7 @@ object frmMain: TfrmMain
Action = actPngExport
end
object mnSaveAsTim: TMenuItem
Action = actExtractFile
Action = actExtractTim
end
object N5: TMenuItem
Caption = '-'

View File

@@ -24,8 +24,8 @@ type
actCloseFiles: TAction;
actExit: TAction;
actExtractPngs: TAction;
actExtractFile: TAction;
actExtractFiles: TAction;
actExtractTim: TAction;
actExtractTims: TAction;
actChangeFile: TAction;
actChangeBackColor: TAction;
actShowFileInfo: TAction;
@@ -33,15 +33,13 @@ type
actStopScan: TAction;
actOpenLab: TAction;
actOpenRepo: TAction;
actReplaceFile: TAction;
actReplaceTim: TAction;
actReturnFocus: TAction;
actScanDir: TAction;
actScanFile: TAction;
actList: TActionList;
actStretch: TAction;
actPngExport: TAction;
btnExtractAllTims: TButton;
btnExtractPNGs: TButton;
btnShowClut: TButton;
btnStopScan: TButton;
cbbBitMode: TComboBox;
@@ -52,13 +50,18 @@ type
dlgOpenFile: TOpenDialog;
dlgSavePNG: TSavePictureDialog;
dlgSaveFile: TSaveDialog;
ExtractTIM1: TMenuItem;
mnExtractAllPngs3: TMenuItem;
mnExtractAllTims3: TMenuItem;
N21: TMenuItem;
N20: TMenuItem;
mnSaveTIM1: TMenuItem;
grdClut: TDrawGrid;
imgTim: TImage;
lblClutHint: TLabel;
lblStatus: TLabel;
lvList: TListView;
MenuItem1: TMenuItem;
mnImportPng1: TMenuItem;
mnShowTimInfo: TMenuItem;
mnImportPng: TMenuItem;
mnChangeBackColor2: TMenuItem;
@@ -94,7 +97,6 @@ type
dlgOpenPNG: TOpenPictureDialog;
pnlClut: TPanel;
pbProgress: TProgressBar;
pnlExtractAll: TPanel;
pnlImage: TPanel;
pnlImageOptions: TPanel;
pnlList: TPanel;
@@ -102,8 +104,8 @@ type
pnlMain: TPanel;
pmImage: TPopupMenu;
pmList: TPopupMenu;
ReplaceTIM1: TMenuItem;
SaveasPNG1: TMenuItem;
mnReplaceIn1: TMenuItem;
mnSaveToPNG1: TMenuItem;
dlgSelectDir: TSelectDirectoryDialog;
splMain: TSplitter;
tblTimInfo: TStringGrid;
@@ -116,12 +118,12 @@ type
procedure actCloseFilesExecute(Sender: TObject);
procedure actExitExecute(Sender: TObject);
procedure actExtractPngsExecute(Sender: TObject);
procedure actExtractFileExecute(Sender: TObject);
procedure actExtractFilesExecute(Sender: TObject);
procedure actExtractTimExecute(Sender: TObject);
procedure actExtractTimsExecute(Sender: TObject);
procedure actOpenLabExecute(Sender: TObject);
procedure actOpenRepoExecute(Sender: TObject);
procedure actPngImportExecute(Sender: TObject);
procedure actReplaceFileExecute(Sender: TObject);
procedure actReplaceTimExecute(Sender: TObject);
procedure actReturnFocusExecute(Sender: TObject);
procedure actScanDirExecute(Sender: TObject);
procedure actScanFileExecute(Sender: TObject);
@@ -255,7 +257,7 @@ begin
New(Image);
Image^ := nil;
Tim2Png(TIM, cbbCLUT.ItemIndex, Image, cbbTranspMode.ItemIndex, True);
Tim2Png(TIM, cbbCLUT.ItemIndex, Image, cbbTranspMode.ItemIndex);
SaveImage(dlgSavePNG.FileName, Image, TIMisIndexed(TIM));
FreeTIM(TIM);
Image^.Free;
@@ -402,7 +404,7 @@ begin
CreateDirUTF8(Path);
TIM := LoadTimFromFile(FName, OFFSET, IsImage, SIZE);
Tim2Png(TIM, cbbCLUT.ItemIndex, Image, cbbTranspMode.ItemIndex, False);
Tim2Png(TIM, cbbCLUT.ItemIndex, Image, cbbTranspMode.ItemIndex);
Path := Path + FormatPngName(FName, I - 1, BIT_MODE, 0);
SaveImage(Path, Image, False);
@@ -420,7 +422,7 @@ begin
pbProgress.Position := 0;
end;
procedure TfrmMain.actExtractFileExecute(Sender: TObject);
procedure TfrmMain.actExtractTimExecute(Sender: TObject);
var
TIM: PTIM;
begin
@@ -435,7 +437,7 @@ begin
FreeTIM(TIM);
end;
procedure TfrmMain.actExtractFilesExecute(Sender: TObject);
procedure TfrmMain.actExtractTimsExecute(Sender: TObject);
var
I, OFFSET, BIT_MODE, SIZE, MAGIC: Integer;
FName, Path: string;
@@ -507,7 +509,7 @@ begin
Dispose(Image);
end;
procedure TfrmMain.actReplaceFileExecute(Sender: TObject);
procedure TfrmMain.actReplaceTimExecute(Sender: TObject);
var
ScanRes: TScanResult;
begin
@@ -845,13 +847,13 @@ begin
actScanFile.Enabled := ScanThreads.Count = 0;
actScanDir.Enabled := ScanThreads.Count = 0;
actReplaceFile.Enabled := (lvList.Selected <> nil) and (lvList.Selected.Index <> -1);
actReplaceTim.Enabled := (lvList.Selected <> nil) and (lvList.Selected.Index <> -1);
actPngExport.Enabled := (Surf^ <> nil) and actReplaceFile.Enabled;
actPngImport.Enabled := actReplaceFile.Enabled;
actExtractFile.Enabled := actReplaceFile.Enabled;
actPngExport.Enabled := (Surf^ <> nil) and actReplaceTim.Enabled;
actPngImport.Enabled := actReplaceTim.Enabled;
actExtractTim.Enabled := actReplaceTim.Enabled;
pnlImageOptions.Enabled := actReplaceFile.Enabled;
pnlImageOptions.Enabled := actReplaceTim.Enabled;
end;
procedure TfrmMain.ScanFinished(Sender: TObject);
@@ -941,7 +943,7 @@ begin
TIM := SelectedTimInMode;
if TIM = nil then Exit;
Tim2Png(TIM, cbbCLUT.ItemIndex, Surf, cbbTranspMode.ItemIndex, False);
Tim2Png(TIM, cbbCLUT.ItemIndex, Surf, cbbTranspMode.ItemIndex);
imgTim.Picture.Bitmap.Assign(Surf^.Bitmap);
FreeTIM(TIM);