Fixes.
This commit is contained in:
Binary file not shown.
BIN
output/tim2view_linux_x86_64
Normal file
BIN
output/tim2view_linux_x86_64
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
14
tim2view.lpi
14
tim2view.lpi
@@ -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"/>
|
||||
|
||||
17
udrawtim.pas
17
udrawtim.pas
@@ -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);
|
||||
|
||||
92
umain.lfm
92
umain.lfm
@@ -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 = '-'
|
||||
|
||||
48
umain.pas
48
umain.pas
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user