All pastes #720239 Raw Edit

Something

public text v1 · immutable
#720239 ·published 2007-09-30 03:16 UTC
rendered paste body
program new;
{.include srl/srl.scar}

function FindAllBitmapsIn(TheBmp,startx,starty,endx,endy:integer):array of tpoint;
var tmpbool:boolean;
AL:integer;
curx,cury,tmpx,tmpy,height:integer;
begin
  tmpbool:=FindBitmapIn(TheBmp,tmpx,tmpy,startx,starty,endx,endy);
  if tmpbool then
  begin
    curx:=startx;
    cury:=starty;
    /////auto height finder///////
    tmpbool:=FindBitmapIn(TheBmp,tmpx,tmpy,startx,starty,endx,endy);
    height:=0;
    repeat
      height:=height+1;
      tmpbool:=FindBitmapIn(TheBmp,tmpx,tmpy,startx,tmpy,endx,tmpy+height);
    until tmpbool;
    //writeln('height '+inttostr(height));
    ///////////
    repeat
      tmpbool:=FindBitmapIn(TheBmp,tmpx,tmpy,curx,cury,endx,cury+height);
      if tmpbool then
      begin
        curx:=tmpx+1;
        AL:=getarraylength(result);
        setarraylength(result,AL+1);
        result[AL].x:=tmpx;
        result[AL].y:=tmpy;
      end;
      if not tmpbool then
      begin
        curx:=startx;
        cury:=cury+1;
      end;
    until cury=endy+1;
  end;
end;
var PlayerDot:integer;
mytpa:array of tpoint;
iter:integer;
begin
  PlayerDot := BitmapFromString(4, 5, 'z78DA3330000137570434C010' +
       '8140576710C41471310241B026435723107436054188880102182' +
       '28B0000E71C1BCB');
  iter:=getsystemtime;
   mytpa:=FindAllBitmapsIn(PlayerDot,mmx1,mmy1,mmx2,mmy2);
 writeln(inttostr(getsystemtime-iter)+'ms');
 writeln(inttostr(getarraylength(mytpa))+' dots');

end.