program symbol; {.include srl/srl.scar} {.include DoorProfiles.scar} function GetSymbolBackgroundColor:integer; var TmpBmp,lilbmp,MyX,MyY:integer; MyColor,tx,ty: integer; MyCanvas:tcanvas; TmpBool:boolean; MyH,MyS,MyL:extended; begin TmpBmp:= BitmapFromString(100,90,''); lilbmp:=bitmapfromstring(2,2,' '); MyCanvas:=GetBitmapCanvas(TmpBmp) CopyCanvas(GetClientCanvas,MyCanvas,598,39,698,129,0,0,100,90) for MyY:=0 to 99 do begin for MyX:=0 to 89 do begin MyColor:= MyCanvas.pixels[MyX,MyY]; ColortoHSL(MyColor,MyH,MyS,MyL); if MyS <40.0 then begin if MyL > 65.0 then begin if MyH<60.0 then begin if MyL<100.0then begin if MyH>0.0 then begin FastDrawClear(lilbmp,MyColor); if FindBitmapIn(lilbmp,tx,ty,mmx1,mmy1,mmx2,mmy2) then TmpBool:=true; end; end; end; end; end; if TmpBool then break; end; if TmpBool then break; end; if TmpBool then result:=MyColor; end; Var DebugCanvas,BmpCanvas:TCanvas; procedure AddArray (WhichTPA:array of tpoint; WhichColor:integer); var parray, arraylength:integer; begin arraylength:=getarraylength(whichtpa); for parray:=0 to arraylength-1 do bmpcanvas.pixels[whichtpa[parray].x-576+5,whichtpa[parray].y-9+5]:=WhichColor; Copycanvas(BmpCanvas,DebugCanvas,0,0,150,157,5,5,155,162) end; procedure StartMiniMapDebug; Var bmpBlankMap:integer; begin { bmpBlankMap:= LoadBitmap(apppath+'test.bmp'); DisplayDebugImgWindow(160,167) //to show the canvas DebugCanvas:=getdebugcanvas //gets the referance to the debug image and stores in that varaible BmpCanvas:=GetBitmapCanvas(bmpBlankMap)//gets the regerance to the bmp and stores in that variable BlankMapCanvas:=GetBitmapCanvas(bmpBlankMap); Copycanvas(BmpCanvas,DebugCanvas,0,0,150,157,5,5,155,162) FreeBitmap(bmpBlankMap); } bmpBlankMap:= LoadBitmap(apppath+'test.bmp'); DisplayDebugImgWindow(160,167) //to show the canvas DebugCanvas:=getdebugcanvas //gets the referance to the debug image and stores in that varaible BmpCanvas:=GetBitmapCanvas(bmpBlankMap)//gets the regerance to the bmp and stores in that variable Copycanvas(BmpCanvas,DebugCanvas,0,0,150,157,5,5,155,162) end; var SymbolBackgroundColor,t,f:integer; tmpTPA1: array of tpoint; tmpAOTPA: array of array of tpoint; begin setupsrl; t:=getsystemtime; SymbolBackgroundColor:=GetSymbolBackgroundColor; writeln(inttostr(SymbolBackgroundColor)); if SymbolBackgroundColor=0 then writeln('there are no symbols on the minimap'); writeln(inttostr(getsystemtime-t)+'ms'); if SymbolBackgroundColor<>0 then begin tmpTPA1:=GetPixelsD(SymbolBackgroundColor,mmx1,mmy1,mmx2,mmy2,0); tmpAOTPA:=SplitTPA(tmpTPA1); StartMiniMapDebug; for f:= 0 to getarraylength(tmpAOTPA)-1 do begin //cleardebug; writeln('press f12'); repeat wait(30); until isfkeydown(12); //StartMiniMapDebug; //writeln(tPtArrayToStr(myAOTPA[f])); writeln('press f11'); repeat wait(30); until isfkeydown(11); AddArray(tmpAOTPA[f],16777215); end; end; end.