diff --git a/output/tim2view_linux_i386 b/output/tim2view_linux_i386 index 7f3db65..0003fe9 100644 Binary files a/output/tim2view_linux_i386 and b/output/tim2view_linux_i386 differ diff --git a/output/tim2view_linux_x86_64 b/output/tim2view_linux_x86_64 new file mode 100644 index 0000000..bc4fee4 Binary files /dev/null and b/output/tim2view_linux_x86_64 differ diff --git a/output/tim2view_win32.exe b/output/tim2view_win32_i386.exe similarity index 72% rename from output/tim2view_win32.exe rename to output/tim2view_win32_i386.exe index 8b4e3c9..d0b00f4 100644 Binary files a/output/tim2view_win32.exe and b/output/tim2view_win32_i386.exe differ diff --git a/output/tim2view_win64.exe b/output/tim2view_win64_x86_64.exe similarity index 71% rename from output/tim2view_win64.exe rename to output/tim2view_win64_x86_64.exe index ce6726f..c112e2c 100644 Binary files a/output/tim2view_win64.exe and b/output/tim2view_win64_x86_64.exe differ diff --git a/tim2view.lpi b/tim2view.lpi index 95f9393..e153d53 100644 --- a/tim2view.lpi +++ b/tim2view.lpi @@ -27,7 +27,7 @@ - + @@ -37,7 +37,7 @@ - + @@ -77,7 +77,7 @@ - + @@ -117,7 +117,7 @@ - + @@ -157,7 +157,7 @@ - + @@ -197,7 +197,7 @@ - + @@ -316,7 +316,7 @@ - + diff --git a/udrawtim.pas b/udrawtim.pas index 6c70361..fcc8c30 100644 --- a/udrawtim.pas +++ b/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); diff --git a/umain.lfm b/umain.lfm index 7092ba0..edcbbf7 100644 --- a/umain.lfm +++ b/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 = '-' diff --git a/umain.pas b/umain.pas index 4625cb4..cc8fa12 100644 --- a/umain.pas +++ b/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);