Some further work. Will get it into SRL soon.
Procedure ClearSmartPaint(canvas: TCanvas);
{$IFDEF SMART}
var
CleanBMP: integer;
begin
CleanBMP := BitmapFromString(MIX2, MIY2, '');
{$ifdef Simba}
DrawBitmap(CleanBMP,Canvas,0,0);
{$else}
SafeDrawBitmap(CleanBMP, canvas, 0, 0);
{$endif}
try
FreeBitmap(CleanBMP);
except end;
{$ELSE}
begin
{$ENDIF}
end;
{ caused edited by RM ---------------------------------------------------------]
[ Paint a TPA onto the Smart Debug Canvas ]
[------------------------------------------------------------------------------}
procedure DrawDotsEx(Clear: boolean; pixels: TPointArray; color: TColor);
{$IFDEF SMART}
var
i : integer;
drawing : TBitmap;
begin
drawing := TBitmap.Create;
drawing.canvas.handle := SmartGetDebugDC;
drawing.canvas.Pen.Color := color;
ClearSmartPaint(drawing.canvas);
for i:= 0 to high(pixels) do
begin
drawing.canvas.moveto(pixels[i].x-1,pixels[i].y);
drawing.canvas.LineTo(pixels[i].x,pixels[i].y);
end;
try
FreeBitmap(drawing);
except end;
{$ELSE}
begin
{$ENDIF}
end;
procedure DrawDots(Dots: TPointArray);
begin
DrawDotsEx(True, Dots, clRed);
end;
{ RM based on DrawBoxes by caused ---------------------------------------------]
[ Draws a box, Rock size. ]
[------------------------------------------------------------------------------}
procedure DrawBoxEx(Clear: boolean; Box: TBox; color: TColor);
{$IFDEF SMART}
var
drawing : TBitmap;
TP : TPoint;
B: TBox;
begin
drawing := TBitmap.Create;
drawing.canvas.handle := SmartGetDebugDC;
drawing.canvas.Pen.Color := color;
ClearSmartPaint(drawing.canvas);
drawing.canvas.moveto(Box.x1,Box.y1);
drawing.canvas.LineTo(Box.x2,Box.y1);
drawing.canvas.LineTo(Box.x2,Box.y2);
drawing.canvas.LineTo(Box.x1,Box.y2);
drawing.canvas.LineTo(Box.x1,Box.y1);
try
FreeBitmap(drawing);
except end;
{$ELSE}
begin
{$ENDIF}
end;
procedure DrawBox(Box: TBox);
begin
DrawBoxEx(True, Box, clRed);
end;
~RM