diff --git a/tim2view.lpi b/tim2view.lpi
index d678536..4e1bcd8 100644
--- a/tim2view.lpi
+++ b/tim2view.lpi
@@ -260,7 +260,6 @@
-
@@ -270,27 +269,22 @@
-
-
-
-
-
@@ -308,7 +302,6 @@
-
diff --git a/tim2view.lpr b/tim2view.lpr
index 9363cb8..f112849 100644
--- a/tim2view.lpr
+++ b/tim2view.lpr
@@ -6,11 +6,15 @@ uses
{$IFDEF UNIX}
cthreads, cmem,
{$ENDIF}
- Forms, umain, Interfaces;
+ Forms, umain, Interfaces,
+ Windows;
{$R *.res}
begin
+ AllocConsole; // in Windows unit
+ IsConsole := True; // in System unit
+ SysInitStdIO; // in System unit
RequireDerivedFormResource := True;
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
diff --git a/udrawtim.pas b/udrawtim.pas
index 7cc86f0..6c70361 100644
--- a/udrawtim.pas
+++ b/udrawtim.pas
@@ -324,6 +324,7 @@ var
COLS, Colors: Integer;
FC: TFPColor;
begin
+ //Writeln('X=',X, '; Y=',Y);
Colors := GetTimColorsCount(TIM);
COLS := Min(Colors, 32);
Rect := Grid^.CellRect(X, Y);
@@ -378,12 +379,16 @@ begin
Grid^.RowCount := ROWS;
+ (*
+ //Grid^.BeginUpdate;
for Y := 1 to ROWS do
for X := 1 to COLS do
begin
//ClearCanvas(@Grid^.Canvas, Grid^.CellRect(X - 1, Y - 1));
DrawClutCell(TIM, CLUT_NUM, Grid, X - 1, Y - 1);
end;
+ //Grid^.EndUpdate(true); *)
+ //Grid^.Repaint;
end;
end.
diff --git a/umain.pas b/umain.pas
index 7e9b7a3..688caaa 100644
--- a/umain.pas
+++ b/umain.pas
@@ -660,7 +660,7 @@ begin
FreeTIM(TIM);
Exit;
end;
-
+ //Writeln('X=',aCol, '; Y=',aRow);
DrawClutCell(TIM, cbbCLUT.ItemIndex, @grdClut, ACol, ARow);
FreeTIM(TIM);
@@ -1055,7 +1055,11 @@ procedure TfrmMain.UpdateTim(Tim, Clut, ClutInfo: Boolean);
begin
if ClutInfo then UpdateCLUTInfo;
if Tim then DrawSelTim;
- if Clut then DrawSelClut;
+ if Clut then
+ begin
+ DrawSelClut;
+ grdClut.Repaint;
+ end;
end;
end.
diff --git a/utim.pas b/utim.pas
index 4577ea4..37153d4 100644
--- a/utim.pas
+++ b/utim.pas
@@ -106,6 +106,9 @@ type
dwSize: Integer;
DATA: PTIMDataArray;
OverBpp: Integer;
+ UseExtClut: Boolean;
+ ExtCLUT: PCLUTHeader;
+ ExtCLUT_DATA: PCLUT_COLORS;
end;
PTIM = ^TTIM;
@@ -174,12 +177,13 @@ begin
Exit;
end;
+ COLOR := 0;
CLUT_OFFSET := CLUT_NUM * GetTimColorsCount(TIM) * 2;
- if (not TIM^.UseExtClut) then
- Move(TIM^.DATA^[SizeOf(TTIMHeader) + SizeOf(TCLUTHeader) + COLOR_NUM * 2 + CLUT_OFFSET], COLOR, 2)
+ if (TIM^.UseExtClut) then
+ Move(TIM^.ExtCLUT_DATA^[COLOR_NUM * 2 + CLUT_OFFSET], COLOR, sizeof(TCLUT_COLOR))
else
- Move(TIM^.ExtCLUT_DATA^[COLOR_NUM * 2 + CLUT_OFFSET], COLOR, sizeof(TCLUT_COLOR));
+ Move(TIM^.DATA^[SizeOf(TTIMHeader) + SizeOf(TCLUTHeader) + COLOR_NUM * 2 + CLUT_OFFSET], COLOR, 2);
Result := ConvertTIMColor(COLOR);
end;
@@ -414,6 +418,10 @@ begin
Move(PBytesArray(BUFFER)^[TIM_POS], TIM^.DATA^[0], TIM^.dwSize);
+ TIM^.UseExtClut := False;
+ TIM^.ExtCLUT := nil;
+ TIM^.ExtCLUT_DATA := nil;
+
TIM^.OverBpp := TIM^.HEAD^.bBPP;
Result := True;
end;
@@ -539,6 +547,9 @@ begin
Result^.dwTimPosition := 0;
Result^.dwTimNumber := 0;
Result^.OverBpp := -1;
+ Result^.UseExtClut := False;
+ Result^.ExtCLUT := nil;
+ Result^.ExtCLUT_DATA := nil;
New(Result^.DATA);
ClearTIM(Result);
end;
@@ -603,7 +614,7 @@ end;
function GetTimColorsCount(TIM: PTIM): word;
begin
- if (not TIM^.UseExtClut) then
+ if (TIM^.UseExtClut) then
Result := TIM^.ExtCLUT^.wColorsCount
else
Result := TIM^.CLUT^.wColorsCount;
@@ -611,7 +622,7 @@ end;
function GetTimClutsCount(TIM: PTIM): word;
begin
- if (not TIM^.UseExtClut) then
+ if (TIM^.UseExtClut) then
Result := TIM^.ExtCLUT^.wClutsCount
else
Result := TIM^.CLUT^.wClutsCount;
@@ -624,7 +635,7 @@ end;
function GetTimClutSizeHeader(TIM: PTIM): Integer;
begin
- if (not TIM^.UseExtClut) then
+ if (TIM^.UseExtClut) then
Result := TIM^.ExtCLUT^.dwSize
else
Result := TIM^.CLUT^.dwSize;
@@ -632,7 +643,7 @@ end;
function GetTimClutVRAMX(TIM: PTIM): word;
begin
- if (not TIM^.UseExtClut) then
+ if (TIM^.UseExtClut) then
Result := TIM^.ExtCLUT^.wVRAMX
else
Result := TIM^.CLUT^.wVRAMX;
@@ -640,7 +651,7 @@ end;
function GetTimClutVRAMY(TIM: PTIM): word;
begin
- if (not TIM^.UseExtClut) then
+ if (TIM^.UseExtClut) then
Result := TIM^.ExtCLUT^.wVRAMY
else
Result := TIM^.CLUT^.wVRAMY;