@@ -862,14 +862,56 @@ end.
862862function TRSMinimap.CleanImage(img: TImage; radius: Integer): TImage;
863863
864864 function _DotTPA(pt: TPoint): TPointArray;
865+ var
866+ q: TPoint;
865867 begin
866- Result := [
867- pt.Offset(0,-1), pt.Offset(1,-1),
868- pt.Offset(-1,0), pt, pt.Offset(1,0), pt.Offset(2,0),
869- pt.Offset(-1,1), pt.Offset(0,1), pt.Offset(1,1), pt.Offset(2,1),
870- pt.Offset(0,2), pt.Offset(1,2)
871- ];
872- end;
868+ q := pt.Offset(0,-1);
869+ if img.InImage(q.X, q.Y) then
870+ Result += q;
871+
872+ q := pt.Offset(1,-1);
873+ if img.InImage(q.X, q.Y) then
874+ Result += q;
875+
876+ q := pt.Offset(-1,0);
877+ if img.InImage(q.X, q.Y) then
878+ Result += q;
879+
880+ if img.InImage(pt.X, pt.Y) then
881+ Result += pt;
882+
883+ q := pt.Offset(1,0);
884+ if img.InImage(q.X, q.Y) then
885+ Result += q;
886+
887+ q := pt.Offset(2,0);
888+ if img.InImage(q.X, q.Y) then
889+ Result += q;
890+
891+ q := pt.Offset(-1,1);
892+ if img.InImage(q.X, q.Y) then
893+ Result += q;
894+
895+ q := pt.Offset(0,1);
896+ if img.InImage(q.X, q.Y) then
897+ Result += q;
898+
899+ q := pt.Offset(1,1);
900+ if img.InImage(q.X, q.Y) then
901+ Result += q;
902+
903+ q := pt.Offset(2,1);
904+ if img.InImage(q.X, q.Y) then
905+ Result += q;
906+
907+ q := pt.Offset(0,2);
908+ if img.InImage(q.X, q.Y) then
909+ Result += q;
910+
911+ q := pt.Offset(1,2);
912+ if img.InImage(q.X, q.Y) then
913+ Result += q;
914+ end;
873915
874916var
875917 tpa: TPointArray;
0 commit comments