From c3f38c670f18fd831dc87c21eeaf5d09226172d7 Mon Sep 17 00:00:00 2001 From: "meffi@lab313.ru" Date: Wed, 19 Feb 2014 18:58:30 +0000 Subject: [PATCH] Fixed TIM displaying; Fixed "Out of Memory" for Directory Scan; Optional CLUT viewer; Other fixes. --- tim2view.dpr | 3 +- tim2view.dproj | 7 +- tim2view.res | Bin 0 -> 16424 bytes units/uCommon.pas | 11 +- units/uMain.dfm | 553 +++++++++++++++++++++++++++++++++++++++--- units/uMain.pas | 64 +++-- units/uScanResult.pas | 3 +- units/uScanThread.pas | 16 +- 8 files changed, 593 insertions(+), 64 deletions(-) create mode 100644 tim2view.res diff --git a/tim2view.dpr b/tim2view.dpr index 1c345ea..1b6a6af 100644 --- a/tim2view.dpr +++ b/tim2view.dpr @@ -42,7 +42,8 @@ begin else path := ''; - WriteFile(ClientMailSlot, path[1], Length(path) * SizeOf(Char), BytesWritten, nil); + if path <> '' then + WriteFile(ClientMailSlot, path[1], Length(path) * SizeOf(Char), BytesWritten, nil); CommandEvent := OpenEvent(EVENT_MODIFY_STATE, False, cEventNname); SetEvent(CommandEvent); diff --git a/tim2view.dproj b/tim2view.dproj index fd6644d..89fde48 100644 --- a/tim2view.dproj +++ b/tim2view.dproj @@ -83,8 +83,8 @@ false 3 true - CompanyName=;FileDescription=;FileVersion=1.0.0.504;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= - 504 + CompanyName=;FileDescription=;FileVersion=1.0.0.523;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + 523 $(BDS)\bin\default_app.manifest false true @@ -102,6 +102,9 @@ 0 + true + true + madExcept;LeakChecking;$(DCC_Define) 3 1033 false diff --git a/tim2view.res b/tim2view.res new file mode 100644 index 0000000000000000000000000000000000000000..72d0490bfbf7544da64754b38215eec3b79b3ece GIT binary patch literal 16424 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 literal 0 HcmV?d00001 diff --git a/units/uCommon.pas b/units/uCommon.pas index effa6b8..cd7b696 100644 --- a/units/uCommon.pas +++ b/units/uCommon.pas @@ -20,7 +20,7 @@ const sStatusBarParsingResult = 'Parsing Result...'; sScanResultGood = 'Scan completed!'; sSelectDirCaption = 'Please, select directory for scan...'; - sThisTimHasNoCLUT = 'This TIM has no CLUT'; + sThisTimHasNoCLUT = 'No CLUT'; type TBytesArray = array [0 .. cMaxFileSize - 1] of byte; @@ -34,12 +34,21 @@ function ExtractJustName(const Path: string): string; procedure Text2Clipboard(const S: string); function Min(A, B: Integer): Integer; function Max(A, B: Integer): Integer; +function GetCoreCount: Integer; implementation uses System.SysUtils, Clipbrd; +function GetCoreCount: Integer; +var + SystemInfo: SYSTEM_INFO; +begin + GetSystemInfo(&SystemInfo); + Result := SystemInfo.dwNumberOfProcessors; +end; + function Min(A, B: Integer): Integer; begin if A < B then diff --git a/units/uMain.dfm b/units/uMain.dfm index 8fe4971..d9908be 100644 --- a/units/uMain.dfm +++ b/units/uMain.dfm @@ -10,6 +10,479 @@ object frmMain: TfrmMain Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] + Icon.Data = { + 0000010003003030000000000000A8250000360000002020000000000000A810 + 0000DE2500001010000000000000680400008636000028000000300000006000 + 000001002000000000008025000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600FFFFE600FFFFFFFF + FF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600FFFFE600FFFFFFFF + FF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600FFFFE600FFFFFFFF + FF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600FFFFE600FFFFFFFF + FF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600FFFFE600 + FFFFFFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600FFFFE600 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC28 + 04FFFFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600FFFFE600 + FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC28 + 04FFFFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFC28 + 04FFFFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600 + FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC28 + 04FFFFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFC28 + 04FFFFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600 + FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FC2804FFFC28 + 04FFFC2804FFFFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600 + FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FC28 + 04FFFC2804FFFC2804FFFFFFFF00FC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600FFFFE600 + FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FC28 + 04FFFC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600 + FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600 + FFFFE600FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600 + FFFFE600FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600 + FFFFE600FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600 + FFFFE600FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E600 + FFFFE600FFFFE600FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00E600FFFFE600FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FC2804FFFC28 + 04FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00E600FFFFE600FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FC28 + 04FFFC2804FFFC2804FFFC2804FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00E600FFFFE600FFFFE600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FC2804FFFC2804FFFFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF00AF + E7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FC2804FFFC2804FFFC2804FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00E600FFFFE600FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF00AF + E7FF00AFE7FF8D9D35FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000AF + E7FF00AFE7FF00AFE7FF00AFE7FF0606FFFF0606FFFF0606FFFF0606FFFF00AF + E7FF8D9D35FF8D9D35FF8D9D35FF8D9D35FFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000AFE7FF00AFE7FF00AF + E7FF00AFE7FF00AFE7FF00AFE7FF0606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF008D9D35FF8D9D35FF8D9D35FF8D9D35FF8D9D35FF9B5E3AFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000AFE7FF00AFE7FF00AFE7FF00AF + E7FF00AFE7FFFFFFFF008D9D35FF0606FFFF0606FFFF0606FFFF0606FFFF8D9D + 35FFFFFFFF00FFFFFF008D9D35FF8D9D35FF9B5E3AFF9B5E3AFF9B5E3AFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000AFE7FF00AFE7FF00AF + E7FF8D9D35FF8D9D35FFFFFFFF000606FFFF0606FFFF0606FFFF0606FFFF8D9D + 35FF8D9D35FF9B5E3AFF9B5E3AFF9B5E3AFF9B5E3AFF9B5E3AFF9B5E3AFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008D9D + 35FF8D9D35FF8D9D35FF8D9D35FF0606FFFF0606FFFF0606FFFF0606FFFF9B5E + 3AFF9B5E3AFF9B5E3AFF9B5E3AFF9B5E3AFF9B5E3AFF9B5E3AFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF009B5E3AFF9B5E3AFF0606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF00FFFFFF009B5E3AFF9B5E3AFF9B5E3AFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF000606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606 + FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606 + FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFFFFFFFF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606 + FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFC7 + FFFFFFCF0000FF81F1F3FF870000FF00F0E1FF830000FF00F0E1FF830000FF00 + F0E1FF870000FF00F0E1FFC70000FF00F8F0C7C70000FF00F870C3C30000FF80 + F878C1E30000FF80FC78C1E30000FF80FC7840E30000FF80FC3840630000FF80 + FE3C40630000FFC0FE3C06310000FFC0FE1C07110000FFC0FE1C07010000FFC0 + FF1E07810000FFC0FF0E07C10000FFE0FF0E07C10000FFE0FF0E0FE00000FFE0 + FF0E0FE00000FFE0FF060FF00000FFE0FF860FF00000FFF07F870FF00000FFF0 + 7F8798780000FFF07F9FF01F0000FFF07FFF00070000FFF03FFC00810000FFF8 + 3FF820600000FFF83FFC10000000FFF81FFF00010000FFF81FFFC0C70000FFF8 + 1FFFF0870000FFFC0FFFF0830000FFFC0FFFF0810000FFFC0FFFF0810000FFFC + 07FFF0810000FFFC07FFF0810000FFFC07FFF0810000FFFC03FFF083000087F8 + 03C7F003000000000000F007000000000000303F0000000000001FFF00000000 + 00000FFF0000000000000FFF0000000000000FFF000087FFFF001FFF00002800 + 0000200000004000000001002000000000008010000000000000000000000000 + 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00DC00 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF2600FFFF2600FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00DC00FFFFDC00 + FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFF26 + 00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00DC00FFFFDC00 + FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFF26 + 00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00DC00FFFFDC00 + FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF2600FFFF2600FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00DC00 + FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFFFFFF00FFFF + FF00FF2600FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FF2600FFFF2600FFFF26 + 00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00DC00 + FFFFDC00FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFFFF + FF00FF2600FFFF2600FFFF2600FFFFFFFF00FFFFFF00FF2600FFFF2600FFFF26 + 00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00DC00 + FFFFDC00FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFFFF + FF00FF2600FFFF2600FFFF2600FFFF2600FFFFFFFF00FF2600FFFF2600FFFF26 + 00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00DC00FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFFFF + FF00FF2600FFFF2600FFFF2600FFFF2600FFFFFFFF00FFFFFF00FF2600FFFF26 + 00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00DC00FFFFDC00FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFFFF + FF00FF2600FFFF2600FFFF2600FFFF2600FFFF2600FFFFFFFF00FF2600FFFF26 + 00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00DC00FFFFDC00FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFF26 + 00FFFF2600FFFF2600FFFFFFFF00FF2600FFFF2600FFFF2600FFFF2600FFFF26 + 00FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00DC00FFFFDC00FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF2600FFFF26 + 00FFFF2600FFFF2600FFFFFFFF00FFFFFF00FF2600FFFF2600FFFF2600FFFF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00DC00FFFFDC00FFFFDC00FFFFFFFFFF00FF2600FFFF2600FFFF26 + 00FFFF2600FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FF2600FFFF2600FFFF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00DC00FFFFDC00FFFFDC00FFFFFFFFFF00FF2600FFFF2600FFFF26 + 00FFFF2600FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FF2600FFFF2600FFFF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00DC00FFFFDC00FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF2600FFFF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00DC00FFFFDC00FFFFDC00FFFFFFFFFF00FF2600FFFF2600FFFF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF2600FFFF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00DC00FFFFDC00FFFFDC00FFFFFFFFFF00FFFFFF00FF2600FFFF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF2600FFFF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00DC00FFFFDC00FFFFDC00FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF000606FFFF0606FFFF00AFE7FFFFFFFF00FFFFFF00FF26 + 00FFFF2600FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000AFE7FF00AFE7FF00AF + E7FF00AFE7FF0606FFFF0606FFFF0606FFFF00AFE7FF8D9D35FF8D9D35FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000AFE7FF00AFE7FF00AFE7FF00AF + E7FF00AFE7FF0606FFFF0606FFFF0606FFFFFFFFFF008D9D35FF8D9D35FF8D9D + 35FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000AFE7FF00AFE7FF8D9D + 35FFFFFFFF000606FFFF0606FFFF0606FFFF8D9D35FFFFFFFF009B5E3AFF9B5E + 3AFF9B5E3AFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008D9D35FF8D9D + 35FF8D9D35FF0606FFFF0606FFFF0606FFFF9B5E3AFF9B5E3AFF9B5E3AFF9B5E + 3AFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF009B5E3AFF0606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606FFFF0606 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606FFFF0606 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606FFFF0606 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606FFFF0606 + FFFFFFFFFF00FFFFFF007700FFFF7700FFFF7700FFFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606 + FFFFFFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFFFFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFFFFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF007700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF007700FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007700 + FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700FFFF7700 + FFFF7700FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FC3DFFF3F818C7E1F818C7E1F818C7F3F81CC671FC1C6231FC1C + 6211FC1E6219FC1E3209FC1E3041FC1E3060FE1F1070FE1F1070FE1F18F8FE1F + 10F8FF1F18F8FF1F1F8CFF0FF003FF0FE011FF0FF108FF07F801FF87FE13FF87 + FF11FF83FF11FF83FF11FF83FF118F81FF010000030300000107000000FF0000 + 00FF9FFC00FF2800000010000000200000000100200000000000400400000000 + 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF000606FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF00AFE7FF00AFE7FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000AFE7FF00AFE7FF00AFE7FF00AF + E7FF00AFE7FF0606FFFF0606FFFF0606FFFF0606FFFF8D9D35FF8D9D35FF8D9D + 35FF8D9D35FFFFFFFF00FFFFFF0000AFE7FF00AFE7FF00AFE7FF00AFE7FF00AF + E7FF00AFE7FF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF008D9D35FF8D9D + 35FF8D9D35FF9B5E3AFFFFFFFF0000AFE7FF00AFE7FF00AFE7FF00AFE7FF8D9D + 35FFFFFFFF000606FFFF0606FFFF0606FFFF0606FFFF8D9D35FFFFFFFF009B5E + 3AFF9B5E3AFF9B5E3AFF9B5E3AFFFFFFFF00FFFFFF008D9D35FF8D9D35FF8D9D + 35FF8D9D35FF0606FFFF0606FFFF0606FFFF0606FFFF9B5E3AFF9B5E3AFF9B5E + 3AFF9B5E3AFF9B5E3AFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008D9D + 35FF9B5E3AFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF009B5E3AFF9B5E + 3AFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606 + FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606 + FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606 + FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606 + FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFFFFFFFF000606FFFF0606 + FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606 + FFFF0606FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606 + FFFF0606FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606FFFF0606 + FFFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000606FFFF0606FFFF0606FFFF0606FFFF0606FFFFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FE3F0000FC0F000080030000002100000410 + 0000C0010000F0270000FC230000FC210000FC210000FC210000FC210000FC01 + 0000FC030000FC070000FC1F0000} Menu = mmMain OldCreateOrder = False Position = poScreenCenter @@ -20,8 +493,8 @@ object frmMain: TfrmMain TextHeight = 13 object pnlStatus: TPanel Left = 0 - Top = 515 - Width = 746 + Top = 502 + Width = 738 Height = 30 Align = alBottom BevelOuter = bvLowered @@ -29,17 +502,17 @@ object frmMain: TfrmMain object lblStatus: TLabel Left = 76 Top = 1 - Width = 165 + Width = 157 Height = 28 Align = alClient Alignment = taRightJustify Layout = tlCenter - ExplicitLeft = 238 + ExplicitLeft = 230 ExplicitWidth = 3 ExplicitHeight = 13 end object pbProgress: TProgressBar - Left = 241 + Left = 233 Top = 1 Width = 504 Height = 28 @@ -63,7 +536,7 @@ object frmMain: TfrmMain object cbbFiles: TComboBox Left = 0 Top = 0 - Width = 746 + Width = 738 Height = 21 Align = alTop AutoDropDown = True @@ -77,24 +550,23 @@ object frmMain: TfrmMain object pnlMain: TPanel Left = 0 Top = 21 - Width = 746 - Height = 494 + Width = 738 + Height = 481 Align = alClient BevelOuter = bvNone TabOrder = 1 object splMain: TSplitter Left = 233 Top = 0 - Height = 494 + Height = 481 ResizeStyle = rsUpdate ExplicitLeft = 201 - ExplicitHeight = 481 end object pnlList: TPanel Left = 0 Top = 0 Width = 233 - Height = 494 + Height = 481 Align = alLeft BevelOuter = bvNone TabOrder = 0 @@ -102,7 +574,7 @@ object frmMain: TfrmMain Left = 0 Top = 0 Width = 233 - Height = 494 + Height = 481 Align = alClient Columns = < item @@ -132,56 +604,50 @@ object frmMain: TfrmMain OnClick = lvListClick OnData = lvListData OnSelectItem = lvListSelectItem - ExplicitLeft = -2 - ExplicitTop = -5 end end object pnlImage: TPanel Left = 236 Top = 0 - Width = 510 - Height = 494 + Width = 502 + Height = 481 Align = alClient BevelOuter = bvLowered TabOrder = 1 object splImageClut: TSplitter Left = 1 Top = 1 - Width = 508 + Width = 500 Height = 3 Cursor = crVSplit Align = alTop Beveled = True ResizeStyle = rsUpdate ExplicitTop = 274 - ExplicitWidth = 500 end object pbTim: TImage AlignWithMargins = True Left = 4 Top = 7 - Width = 502 - Height = 303 + Width = 494 + Height = 290 Align = alClient Center = True - IncrementalDisplay = True Proportional = True - Transparent = True - ExplicitLeft = 168 - ExplicitTop = 80 - ExplicitWidth = 105 - ExplicitHeight = 105 + ExplicitLeft = 6 + ExplicitTop = -59 + ExplicitHeight = 265 end object grdCurrClut: TDrawGrid Left = 1 - Top = 343 - Width = 508 + Top = 300 + Width = 500 Height = 150 Align = alBottom ColCount = 1 DefaultColWidth = 14 DefaultRowHeight = 14 - DoubleBuffered = True + DoubleBuffered = False Enabled = False FixedCols = 0 RowCount = 1 @@ -190,13 +656,14 @@ object frmMain: TfrmMain ParentDoubleBuffered = False ScrollBars = ssNone TabOrder = 0 + Visible = False OnDblClick = grdCurrClutDblClick OnDrawCell = grdCurrClutDrawCell end object pnlImageOptions: TPanel Left = 1 - Top = 313 - Width = 508 + Top = 450 + Width = 500 Height = 30 Align = alBottom BevelOuter = bvLowered @@ -205,7 +672,7 @@ object frmMain: TfrmMain AlignWithMargins = True Left = 4 Top = 4 - Width = 152 + Width = 93 Height = 21 Align = alLeft AutoDropDown = True @@ -217,9 +684,9 @@ object frmMain: TfrmMain end object cbbTransparenceMode: TComboBox AlignWithMargins = True - Left = 162 + Left = 103 Top = 4 - Width = 145 + Width = 122 Height = 21 Align = alLeft Style = csDropDownList @@ -236,9 +703,9 @@ object frmMain: TfrmMain end object cbbBitMode: TComboBox AlignWithMargins = True - Left = 313 + Left = 231 Top = 4 - Width = 88 + Width = 74 Height = 21 Align = alLeft Style = csDropDownList @@ -256,15 +723,25 @@ object frmMain: TfrmMain end object chkStretch: TCheckBox AlignWithMargins = True - Left = 407 + Left = 311 Top = 4 - Width = 97 + Width = 81 Height = 22 Action = actStretch Align = alClient Enabled = False TabOrder = 3 end + object btnShowClut: TButton + Left = 395 + Top = 1 + Width = 104 + Height = 28 + Align = alRight + Caption = 'Show/Hide CLUT' + TabOrder = 4 + OnClick = btnShowClutClick + end end end end diff --git a/units/uMain.pas b/units/uMain.pas index 5e4e2a3..8652320 100644 --- a/units/uMain.pas +++ b/units/uMain.pas @@ -82,6 +82,7 @@ type actExtractList: TAction; ExtractTIMs1: TMenuItem; pbTim: TImage; + btnShowClut: TButton; procedure btnStopScanClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure lvListData(Sender: TObject; Item: TListItem); @@ -110,6 +111,7 @@ type procedure lvListSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); procedure cbbTransparenceModeChange(Sender: TObject); + procedure btnShowClutClick(Sender: TObject); private { Private declarations } // pResult: PNativeXml; @@ -117,11 +119,11 @@ type PNG: PPNGImage; LastDir: string; WaitThread: TEventWaitThread; + StartedScans: Integer; function ScanRes: TScanResult; procedure SetListCount(Count: Integer); procedure ScanFinished(Sender: TObject); - function CheckForFileOpened(const FileName: string): boolean; procedure CheckButtonsAndMainMenu; procedure ScanPath(const Path: string); procedure ScanFile(const FileName: string); @@ -131,7 +133,7 @@ type function SelTim(NewBitMode: Integer = $FF): PTIM; function SelTimName: string; procedure DrawSelTim; - procedure DrawCurrentCLUT; + procedure DrawSelClut; procedure UpdateCLUTInfo; procedure SetCLUTListToNoCLUT; function ForceForegroundWindow(hwnd: THandle): Boolean; @@ -142,6 +144,7 @@ type public { Public declarations } ScanResult: TList; + function CheckForFileOpened(const FileName: string): boolean; end; var @@ -277,7 +280,7 @@ begin actTimInfo.Caption := 'TIM Info'; lvList.Column[0].Caption := '# / 0'; DrawSelTim; - DrawCurrentCLUT; + DrawSelClut; cbbCLUT.Items.BeginUpdate; if (cbbCLUT.Items.Count > 0) then cbbCLUT.Items.Delete(cbbCLUT.ItemIndex); @@ -285,9 +288,7 @@ begin SetCLUTListToNoCLUT; - cbbFiles.Items.BeginUpdate; cbbFiles.Items.Delete(cbbFiles.ItemIndex); - cbbFiles.Items.EndUpdate; CheckButtonsAndMainMenu; @@ -302,8 +303,9 @@ procedure TfrmMain.actCloseFilesExecute(Sender: TObject); begin while cbbFiles.Items.Count > 0 do begin - cbbFiles.ItemIndex := cbbFiles.Items.Count - 1; + cbbFiles.Items.BeginUpdate; actCloseFile.Execute; + cbbFiles.Items.EndUpdate; end; end; @@ -478,6 +480,12 @@ begin end; end; +procedure TfrmMain.btnShowClutClick(Sender: TObject); +begin + grdCurrClut.Visible := not grdCurrClut.Visible; + DrawSelClut; +end; + procedure TfrmMain.btnStopScanClick(Sender: TObject); begin if ScanThreads.Count = 0 then Exit; @@ -487,13 +495,12 @@ end; procedure TfrmMain.cbbFilesChange(Sender: TObject); begin - lvList.Items.Count := ScanRes.Count; - lvList.Column[0].Caption := Format('# / %d', [lvList.Items.Count]); - lvList.Invalidate; + SetListCount(ScanRes.Count); + lvList.SetFocus; + lvList.Selected := nil; lvList.Items[0].Selected := True; lvList.Items[0].Focused := True; - lvList.SetFocus; end; procedure TfrmMain.cbbTransparenceModeChange(Sender: TObject); @@ -509,7 +516,7 @@ end; procedure TfrmMain.cbbCLUTChange(Sender: TObject); begin DrawSelTim; - DrawCurrentCLUT; + DrawSelClut; end; function TfrmMain.CheckForFileOpened(const FileName: string): boolean; @@ -519,7 +526,7 @@ begin Result := False; for I := 1 to ScanResult.Count do - if ExtractFileName(ScanResult[I - 1].ScanFile) = ExtractFileName(FileName) then + if ScanResult[I - 1].ScanFile = FileName then begin Result := True; Exit; @@ -564,10 +571,12 @@ begin Result := Format(cAutoExtractionTimFormat, [ExtractJustName(ScanRes.ScanFile), ListIdx + 1, TimIdx(ListIdx).BitMode]); end; -procedure TfrmMain.DrawCurrentCLUT; +procedure TfrmMain.DrawSelClut; var TIM: PTIM; begin + if not grdCurrClut.Visible then Exit; + ClearGrid(@grdCurrCLUT); TIM := SelTim; @@ -627,7 +636,6 @@ begin FreeTIM(TIM); pbTim.Stretch := chkStretch.Checked; - pbTim.Invalidate; end; function TfrmMain.ScanRes: TScanResult; @@ -657,6 +665,7 @@ begin ScanThreads := TList.Create; ScanResult := TList.Create; + StartedScans := 0; New(PNG); PNG^ := nil; LastDir := GetStartDir; @@ -727,7 +736,7 @@ begin FreeTIM(TIM); DrawSelTim; - DrawCurrentCLUT; + DrawSelClut; end; procedure TfrmMain.grdCurrClutDrawCell(Sender: TObject; ACol, ARow: Integer; @@ -785,7 +794,7 @@ begin UpdateCLUTInfo; DrawSelTim; - DrawCurrentCLUT; + DrawSelClut; actTimInfo.Caption := Format('[OFFSET: 0x%x | SIZE: 0x%x]', [TimIdx(ListIdx).Position, TimIdx(ListIdx).Size]); actTimInfo.Enabled := True; @@ -816,8 +825,10 @@ end; procedure TfrmMain.SetListCount(Count: Integer); begin + lvList.Items.BeginUpdate; lvList.Items.Count := Count; lvList.Column[0].Caption := Format('# / %d', [Count]); + lvList.Items.EndUpdate; end; function TfrmMain.TimIdx(Index: Integer): TScanTim; @@ -840,14 +851,31 @@ begin ScanThreads.Last.Priority := tpNormal; ScanThreads.Last.OnTerminate := ScanFinished; - ScanThreads.Last.Start; + if StartedScans < GetCoreCount then + begin + ScanThreads.Last.Start; + Inc(StartedScans); + end; end; procedure TfrmMain.ScanFinished(Sender: TObject); +var + I: Integer; begin ScanThreads.Remove(Sender as TScanThread); + Dec(StartedScans); - if ScanThreads.Count <> 0 then Exit; + if ScanThreads.Count <> 0 then + begin + for I := 1 to ScanThreads.Count do + if ScanThreads[I - 1].Suspended then + begin + ScanThreads[I - 1].Start; + Inc(StartedScans); + Exit; + end; + Exit; + end; if ScanResult.Count <> 0 then SetListCount(ScanResult.Last.Count); diff --git a/units/uScanResult.pas b/units/uScanResult.pas index 7be82de..a1791e6 100644 --- a/units/uScanResult.pas +++ b/units/uScanResult.pas @@ -52,7 +52,8 @@ end; destructor TScanResult.Destroy; begin - + SetLength(pTims, 0); + pTims := nil; inherited; end; diff --git a/units/uScanThread.pas b/units/uScanThread.pas index 3429a06..a66cc3b 100644 --- a/units/uScanThread.pas +++ b/units/uScanThread.pas @@ -169,9 +169,19 @@ begin UpdateProgressBar; SetStatusText; - if pScanResult.Count = 0 then Exit; - frmMain.ScanResult.Add(pScanResult); - frmMain.cbbFiles.Items.Add(pScanResult.ScanFile); + if pScanResult.Count = 0 then + begin + pScanResult.Free; + Exit; + end; + + if not frmMain.CheckForFileOpened(pScanResult.ScanFile) then + begin + frmMain.ScanResult.Add(pScanResult); + frmMain.cbbFiles.Items.Add(pScanResult.ScanFile); + end + else + pScanResult.Free; end; procedure TScanThread.SetStatusText;