Open Side Menu Go to the Top
Register
FTCash - free script for FullTilt cash players. FTCash - free script for FullTilt cash players.

06-26-2010 , 01:10 AM
jds1201, what's wrong exactly? Using "ssnl" adjustment and 100%pot will always give you 4xbb preflop open raise, mix=3xbb, trny=2.5xbb, changing pot percentage will change raise amount, formula for all other cases is
Code:
pot := ((pot + call)* (frac)) + call
FTCash - free script for FullTilt cash players. Quote
06-26-2010 , 01:55 AM
FTCash v1.12
  • Added alternative highlighter option (highligh all tables with action on hero)

Code:
; #### FTCash ####

; AHK version: 1.0.48.05
; date: June 26,2010
  version := "1.12"
; author: Max1mums (max1mums@overcards.com)

#SingleInstance, Force
#NoEnv
#Persistent
Settitlematchmode, 2
OnExit exitSub

StringTrimRight, thisahk, A_ScriptName, 4
SetWorkingDir %A_ScriptDir%

debug:=0

Menu, Tray, NoStandard
Menu, Tray, Add, Settings, menugui
Menu, Tray, Add 
Menu, Tray, Add, Reload, reload
Menu, Tray, Default, Settings
Menu, Tray, Add 
Menu, Tray, Add, Suspend, Suspend
Menu, Tray, Add, Pause, TogglePause
Menu, Tray, Add 
Menu, Tray, Add, Edit, Edit 
Menu, Tray, Add 
Menu, Tray, Add, Exit, ExitSub

OnMessage(0x112,"WM_SYSCOMMAND")
WM_SYSCOMMAND(wParam)
{
  if (A_Gui && wParam = 0xF020) ; SC_MINIMIZE
  {
    Gui, destroy
    return 0
  }
}

boost:=false
; Border of the "Highlighter"
border_color := "ff0000"
border_coloralt := "00FF00"
border_size := 5
trans := 255


SetBatchLines,1ms
SetWinDelay,-1
SendMode Input

SysGet, xbord, 32
SysGet, ybord, 33
SysGet, cap, 4
SysGet, border, 32
SysGet, caption, 4

ddlist=
Loop 14
ddlist:=ddlist . A_index . "|"

ddlist1=
ddlist1.="ssnl" . "|"
ddlist1.="trny" . "|"
ddlist1.="mix" . "|"
ddlist1.="----" . "|"
gosub,getini

if flicker1
{
winwait,Logged In ahk_class QWidget
Process, Exist, FullTiltPoker.exe
if (ErrorLevel)
{
  FTP := ErrorLevel
  Process, Priority, %FTP%, High
}
}
else
{
Process, Exist, FullTiltPoker.exe
if (ErrorLevel)
{
  FTP := ErrorLevel
  Process, Priority, %FTP%, Normal
}
}
if flicker2
{
winwait,Logged In ahk_class QWidget
Process, Exist, AutoHotkey.exe
if (ErrorLevel)
{
  Ahk := ErrorLevel
  SetAffinity(Ahk)
}
Process, Exist, FullTiltPoker.exe
if (ErrorLevel)
{
  FTP := ErrorLevel
  SetAffinity(FTP)
}
}

Init()

DllCall("dwmapi\DwmIsCompositionEnabled","int*",DwmIsEnabled)
if !DwmIsEnabled
{
Gui, 11: Show, w1 h1 x1 y1, PokerWindow
WinGet,PokerWindowID, id, PokerWindow
hdc_frame := DllCall( "GetDC", "UInt",PokerWindowID)
hdc_buffer := DllCall("gdi32.dll\CreateCompatibleDC","UInt",hdc_frame)
hbm_buffer := DllCall("gdi32.dll\CreateCompatibleBitmap", "UInt",hdc_frame, "Int",A_screenwidth,"Int",A_screenheight)
DllCall( "gdi32.dll\SelectObject", "UInt",hdc_buffer, "UInt",hbm_buffer)
Gui, 11: Show,hide, w1 h1 x1 y1, PokerWindow
}

;;;;;;;;;;;;End of init;;;;;;;;;;;;;;

if Timebank
settimer,clickwithdelay,100
if autopot OR Highlight OR MoveMouse
settimer,act,45
if Highlight
settimer,Highlighter,83
if dealmein
settimer,dealin,1939
if Timebank
settimer,clicktime,639
if MoveMouse
settimer,MouseMove,119
settimer,BetPot,67
if activatetableundermouse
settimer,activateundermouse,133
if Buyin
settimer,autobuy,835
if limit or autotakeseat
settimer,NewTable,267
if autotakeseat
settimer,clickseatwithdelay,93
if closeOKwindow or leavetable
settimer,closepopups,148
if TakeSeat
settimer,TakeSeatFromWaitlist,77

return
;-----------------------------------------------------------------------------------------------------
FoldFT(id)
{
PostclickFT(0.6218,0.9241,id)
  PostclickFT(0.6834,0.9358,id)
  PostclickFT(0.6834,0.9358,id)
}
return

quickFoldFT(id)
{
  PostclickFT(0.6424,0.9678,id)
  PostclickFT(0.6424,0.9678,id)
}
return

CallFT(id)
{
  PostclickFT(0.8032,0.9358,id)
  PostclickFT(0.8032,0.9358,id)
}
return

RaiseFT(id)
{
  PostclickFT(0.9356,0.9358,id)
  PostclickFT(0.9356,0.9358,id)
}
return

Fold2anyFT(id)
{
global Racetrack
WinGetTitle, title, ahk_id%id%
StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
StringReplace,bb,bb,$,,1
if Racetrack
{
 if bb<4
 {
  click_x:=0.4325
  click_y:=0.8937
 }
 else
 {
  click_x:=0.4193
  click_y:=0.9169
 }
}
else
{
 if bb<4
 {
  click_x:=0.0088
  click_y:=0.7472
 }
 else
 {
  click_x:=0.0088
  click_y:=0.7566
 }
}
PostclickFT(click_x,click_y,id)
}
return
;-----------------------------------------------------------------------------------------------------
fold:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 FoldFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

quickfold:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 quickFoldFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

call:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 callFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

raise:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 raiseFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

fold2any:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 fold2anyFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

allin(id)
{
global Instant
PostClickFT(0.9715,0.7632,id)
if Instant
raiseFT(id)
}
return
;-----------------------------------------------------------------------------------------------------
pot1:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if Round1
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot1Pre A_space Pot1Flop A_space Pot1Turn A_space Pot1River, Roundsb, Open1, fix1)
if autobet
raiseFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

pot2:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if Round2
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot2Pre A_space Pot2Flop A_space Pot2Turn A_space Pot2River, Roundsb, Open2, fix2)
if autobet
raiseFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

pot3:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if Round3
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot3Pre A_space Pot3Flop A_space Pot3Turn A_space Pot3River, Roundsb, Open3, fix3)
if autobet
raiseFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

alt1:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
wingettitle,title,ahk_id%id%
if !instr(title,"Full Tilt Poker -")
{
if sb1
sb:="sb"
else
sb:=""
AlterAmount(id,"up", incr1, sb)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

alt2:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
wingettitle,title,ahk_id%id%
if !instr(title,"Full Tilt Poker -")
{
if sb2
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr2, sb)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

alt3:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if !instr(title,"Full Tilt Poker -")
{
if sb3
sb:="sb"
else
sb:=""
AlterAmount(id,"up", incr3, sb)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

alt4:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if !instr(title,"Full Tilt Poker -")
{
if sb4
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr4, sb)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

allin:
Sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 allin(ID)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return
;-----------------------------------------------------------------------------------------------------
findtabletoact:
Sendmode event
WinGet, Id, ID, A
wingetclass,class,ahk_id%id%
if class!=QWidget
{
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
}
if class=QWidget
findtabletoact()
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
return

findtabletoact()
{
global DwmIsEnabled
foldx:=0.6534
foldy:=0.9662
foldx1:=0.5965
foldy1:=0.9662
back_x:=0.6534
back_y:=0.9862
back_x1:=0.5965
back_y1:=0.9862
v:=20

winget,id,id,A
if !DwmIsEnabled
{
fold:=PixelColor(foldx,foldy,id,0)
bacgr:=PixelColor(foldx1,foldy1,id,0)
deal:=PixelColor(back_x,back_y,id,0) 
deal1:=PixelColor(back_x1,back_y1,id,0)
}
else
{
col:=PixelColorA(foldx,foldy,foldx1,foldy1,0,id)
stringsplit,col,col,-
fold:=col1
bacgr:=col2
sleep,1
col:=PixelColorA(back_x,back_y,back_x1,back_y1,0,id)
stringsplit,col,col,-
deal:=col1
deal1:=col2
}
if !((comparecolors(fold,bacgr,v)=0) & (comparecolors(deal,deal1,v)=1))
{ 
winget,list,list,Logged In ahk_class QWidget,,Full Tilt
loop %list%
{
id:=list%A_index%
col:=PixelColorA(foldx,foldy,foldx1,foldy1,0,id)
stringsplit,col,col,-
fold:=col1
bacgr:=col2
sleep,1
col:=PixelColorA(back_x,back_y,back_x1,back_y1,0,id)
stringsplit,col,col,-
deal:=col1
deal1:=col2
if ((comparecolors(fold,bacgr,v)=0) & (comparecolors(deal,deal1,v)=1))
{
winactivate,ahk_id%id%
break
}
} 
}
}
return 
;-----------------------------------------------------------------------------------------------------
Init()
{
 local list,id
 winget,list,list,Logged In ahk_class QWidget,,Full Tilt
 loop %list%
 {
  id:=list%A_index%
  seated%id%:=1
 } 
}
return
;-----------------------------------------------------------------------------------------------------
BetPot:
GroupAdd, FullTiltTables,Logged In ahk_class QWidget,,,Full Tilt
if autopot
{
isbetboxnew()
}
return
;-----------------------------------------------------------------------------------------------------
IsBetBoxNew()
{
global oldid,PotDefPre,PotDefFlop,PotDefTurn,PotDefRiver,RoundDef,OpenDef,FixDef,DwmIsEnabled
winget winid,id,A
wingetclass,class,A
wingettitle,title,A
if class=QWidget
if instr(title, "Logged In") & instr(title, "/")
{
betboxX:=0.9687
betboxY:=0.8000
betboxY1:=0.8400
if !DwmIsEnabled
{
bet1:=PixelColor(betboxX,betboxY,winid,0)
bet2:=PixelColor(betboxX,betboxY1,winid,0)
}
else
{
 bet:=PixelColorA(betboxX,betboxY,betboxX,betboxY1,0,winid)
 stringsplit,bet,bet,-
}
if (winid<>oldid)
{
 if bet1=0xffffff ;& (bet2!=0xffffff)
 {
  if bet2!=0xffffff
  {
  oldid:=winid
  if RoundDef
  Roundsb:="smallblind"
  else
  Roundsb:=0.2
  sleep,15
  Pot(winid,PotDefPre A_space PotDefFlop A_space PotDefTurn A_space PotDefRiver, Roundsb, OpenDef, FixDef)
  }
 }
 else
 oldid=
}
else
{ 
 if bet1!=0xffffff
 oldid=
}
}
else
oldid=
}
return
;-----------------------------------------------------------------------------------------------------
act:
act()
return

act()
{
 winget,list,list, / ahk_class QWidget,,Full Tilt
 wingetclass,class,A
 wingettitle,title,A
 ifwinnotactive,ahk_id%list1%
 {
 if class=QWidget
 if instr(title, "Logged In") 
 if instr(title, "/")
 winactivate,ahk_id%list1%
 }
}
return
;-----------------------------------------------------------------------------------------------------
activateundermouse:
activatetableundermouse()
return

activatetableundermouse()
{
    MousegetPos,,,WinID
    WinGetClass, class, ahk_id %WinID%
    WinGetTitle, title, ahk_id %WinID%
    if (class="QWidget")
    winactivate, ahk_id %WinID%
}
return
;-----------------------------------------------------------------------------------------------------
ActivateBottomWindow:
GroupActivate, FullTiltTables
return
;-----------------------------------------------------------------------------------------------------
SitOutNextAll:
settimer,dealin,off

WinGet, list, List,Logged In ahk_class QWidget,,Full Tilt
Loop, %list%
{
 Z:=list%A_Index%
 WinGetTitle, title, ahk_id%Z%
 StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
 StringReplace,bb,bb,$,,1
 if Racetrack
 {
  if bb<4
  {
   sitx:=0.4263
   sity:=0.9264
  }
  else
  {
   sitx:=0.4125
   sity:=0.9345
  }
 }
 else
 {
  if bb<4
  {
   sitx:=0.0031
   sity:=0.7770
  }
  else
  {
   sitx:=0.0031
   sity:=0.7857
  }
 }
 click_x:=sitx+0.0070
 click_y:=sity+0.0070
 WinGetPos,,, W, H, ahk_id %Z%
 if w>1000
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,15,15)
 else
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,10,10)
 if !(instr(Sittingout,"-0-")) & !(instr(Sittingout,"1710618"))  ; & !(instr(Sittingout,"16777215"))
 {
  PostClickFT(click_x, click_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
RemoveSitout:
if dealmein
settimer,dealin,1639
WinGet, list, List,Logged In ahk_class QWidget,,Full Tilt
Loop, %list%
{
 Z:=list%A_Index%
WinGetTitle, title, ahk_id%Z%
 StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
 StringReplace,bb,bb,$,,1
 if Racetrack
 {
  if bb<4
  {
   sitx:=0.4263
   sity:=0.9264
  }
  else
  {
   sitx:=0.4125
   sity:=0.9345
  }
 }
 else
 {
  if bb<4
  {
   sitx:=0.0031
   sity:=0.7770
  }
  else
  {
   sitx:=0.0031
   sity:=0.7857
  }
 }
 click_x:=sitx+0.0070
 click_y:=sity+0.0070
 WinGetPos,,, W, H, ahk_id %Z%
 if w>1000
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,15,15)
 else
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,10,10)
; FileAppend, %Sittingout%`n`n, test.txt
 if (instr(Sittingout,"-0-")) || (instr(Sittingout,"1710618"))  ; & !(instr(Sittingout,"16777215"))
  {
  PostClickFT(click_x, click_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
uncheckpost:
WinGet, list, List,Logged In ahk_class QWidget,,Full Tilt
Loop, %list%
{
 Z:=list%A_Index%
 WinGetTitle, title, ahk_id%Z%
 StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
 StringReplace,bb,bb,$,,1
 if Racetrack
 {
  if bb<4
  {
   sitx:=0.4279
   sity:=0.9744
  }
  else
  {
   sitx:=0.4123
   sity:=0.9753
  }
 }
 else
 {
   sitx:=0.0042
   sity:=0.8246
 }
 click_x:=sitx+0.0070
 click_y:=sity+0.0070
 WinGetPos,,, W, H, ahk_id %Z%
 if w>1000
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,15,15)
 else
 if w<600
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,5,5)
 else
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,10,10)
 if (instr(Sittingout,"-0-")) || (instr(Sittingout,"1710618"))  ; & !(instr(Sittingout,"16777215"))
  {
  PostClickFT(click_x, click_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
Layout1:
ifwinactive,Logged In ahk_class QWidget,,Full Tilt
WinGet, WinId, ID, A
else
MousegetPos,,,WinID
wingetclass,class,ahk_id %WinID%
wingettitle,title,ahk_id %WinID%
if class=QWidget
if !instr(title,"Full Tilt")
{
CX:=0.8261
CY:=0.0155
wingetpos,x1,y1,w,h,ahk_id%winid%
coordmode,mouse,screen
mousegetpos,x,y
coordmode,mouse,relative
DllCall("SetCursorPos", int, x1+w+10, int, y1+h+10)
PostclickFT(cx,cy,winid,1)
sleep 100
critical,6
send {Tab 7}
sleep,25
Send {Enter}
critical,off
sleep,-1
DllCall("SetCursorPos", int, x, int, y)
}
return
;-----------------------------------------------------------------------------------------------------
Layout2:
ifwinactive,Logged In ahk_class QWidget,,Full Tilt
WinGet, WinId, ID, A
else
MousegetPos,,,WinID
wingetclass,class,ahk_id %WinID%
wingettitle,title,ahk_id %WinID%
if class=QWidget
if !instr(title,"Full Tilt")
{
CX:=0.8261
CY:=0.0155
wingetpos,x1,y1,w,h,ahk_id%winid%
coordmode,mouse,screen
mousegetpos,x,y
coordmode,mouse,relative
DllCall("SetCursorPos", int, x1+w+10, int, y1+h+10)
PostclickFT(cx,cy,winid,1)
sleep 100
critical,6
send {Tab 8}
sleep,25
Send {Enter}
critical,off
sleep,-1
DllCall("SetCursorPos", int, x, int, y)
}
return
;-----------------------------------------------------------------------------------------------------
Layout3:
ifwinactive,Logged In ahk_class QWidget,,Full Tilt
WinGet, WinId, ID, A
else
MousegetPos,,,WinID
wingetclass,class,ahk_id %WinID%
wingettitle,title,ahk_id %WinID%
if class=QWidget
if !instr(title,"Full Tilt")
{
CX:=0.8261
CY:=0.0155
wingetpos,x1,y1,w,h,ahk_id%winid%
coordmode,mouse,screen
mousegetpos,x,y
coordmode,mouse,relative
DllCall("SetCursorPos", int, x1+w+10, int, y1+h+10)
PostclickFT(cx,cy,winid,1)
sleep 100
critical,6
send {Tab 9}
sleep,25
Send {Enter}
critical,off
sleep,-1
DllCall("SetCursorPos", int, x, int, y)
}
return
;-----------------------------------------------------------------------------------------------------
Highlighter:
if HighLightA
HighLighterA()
else
HighLighter()
return

HighLighter()
{
global OldX,OldY,OldW,OldH
global highlighthero,last_table_id
global border_color
global border_size
global trans
global xbord,ybord
global cap,DwmIsEnabled
v:=25

ifwinactive, Logged In ahk_class QWidget,,Full Tilt
{  
 winget,id,id,A
 foldx:=0.6534
 foldy:=0.9662
 foldx1:=0.5965
 foldy1:=0.9662
 back_x:=0.6534
 back_y:=0.9862
 back_x1:=0.5965
 back_y1:=0.9862
 WinGetActiveStats,ActiveTitle, ActiveW, ActiveH, ActiveX, ActiveY
 if highlighthero=1
 {
 if !DwmIsEnabled
 {
  fold:=PixelColor(foldx,foldy,id,0)
  bacgr:=PixelColor(foldx1,foldy1,id,0)
  deal:=PixelColor(back_x,back_y,id,0) 
  deal1:=PixelColor(back_x1,back_y1,id,0)
 }
 else
 {
  tmp_buffer := DllCall("GetDCEx", "UInt", id,"UInt",0,"UInt",1)
  relFTClientPoint(id, foldx, foldy,0)
  fold := DllCall("GetPixel", "UInt", tmp_buffer, "Int", foldx, "Int", foldy) 
  relFTClientPoint(id, foldx1, foldy1,0)
  bacgr := DllCall("GetPixel", "UInt", tmp_buffer, "Int", foldx1, "Int", foldy1) 
  relFTClientPoint(id, back_x, back_y,0)
  deal := DllCall("GetPixel", "UInt", tmp_buffer, "Int", back_x, "Int", back_y)
  relFTClientPoint(id, back_x1, back_y1,0)
  deal1 := DllCall("GetPixel", "UInt", tmp_buffer, "Int", back_x1, "Int", back_y1)
  SetFormat, IntegerFast, hex
  fold += 0
  fold .= ""
  bacgr += 0
  bacgr .= ""
  deal += 0
  deal .= ""
  deal1 += 0
  deal1 .= ""
  SetFormat, IntegerFast, d 
  DllCall( "gdi32.dll\ReleaseDC", "Uint", tmp_buffer )
  DllCall( "gdi32.dll\DeleteDC", "Uint", tmp_buffer )
 }
 }
 if ((id != last_table_id) || ((OldX <> ActiveX || OldY <> ActiveY || OldW <> ActiveW || OldH <> ActiveH))) || (highlighthero=1) 
 {
  OldX := ActiveX
  OldY := ActiveY
  OldW := ActiveW
  OldH := ActiveH
  if (highlighthero=0) || ((highlighthero=1) & (comparecolors(fold,bacgr,v)=1) & (comparecolors(deal,deal1,v)=1)) || ((highlighthero=1) & (id != last_table_id)) 
  {
  Gui, 2: Cancel
  Gui, 3: Cancel
  Gui, 4: Cancel
  Gui, 5: Cancel
  }
  WinGetPos, x, y, w, h, ahk_id%id%
  x := x + xbord
  y := y + xbord + cap
  w := w - (2*xbord)
  h := h - (2*xbord) - cap
  ;Outer
  ;x := x - border_size
  ;y := y - border_size
  ;w := w + 2*border_size
  ;h := h + 2*border_size
 
  ;Makes Border around urgent table
  if ((highlighthero=0) || ((highlighthero=1) & (comparecolors(fold,bacgr,v)=0) & (comparecolors(deal,deal1,v)=1))) ; & (comparecolors(fold,fold1,v)=0) ; & (comparecolors(join,deal1,v)=1))
  { 
   ;top
   guinum := 2
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y% NoActivate    
   ;left
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%border_size% h%h% x%x% y%y% NoActivate    
   ;bottom
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   y2 := y + h - border_size
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y2% NoActivate    
   ;right
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   x2 := x + w - border_size
   Gui, %guinum%: Show, w%border_size% h%h% x%x2% y%y% NoActivate 
  }  
 }
last_table_id := id  
}
else
{
Gui, 2: Cancel
Gui, 3: Cancel
Gui, 4: Cancel
Gui, 5: Cancel
last_table_id=
}
}
return
;-----------------------------------------------------------------------------------------------------
HighLighterA() 
{
global last_active_table_id,xbord,cap,highlightlist
global border_color,border_coloralt
global border_size
global trans
v:=35

ifwinactive,/ ahk_class QWidget,,Full Tilt
{
winget,winid,id,A
if !(winid=last_active_table_id)
Loop, Parse, highlightlist, `,
{
 if instr(A_loopfield,winid) or instr(A_loopfield,last_active_table_id)
 {
 if instr(A_loopfield,winid)
 col:=border_coloralt
 else
 col:=border_color
 stringsplit,tab,A_loopfield,-
 num:=tab2
 num1:=num+1
 num2:=num+2
 num3:=num+3
 Gui, %num%: Color, %col%
 Gui, %num1%: Color, %col%
 Gui, %num2%: Color, %col%
 Gui, %num3%: Color, %col%
 }
}
winget,list,list,/ ahk_class QWidget,,Full Tilt
loop %list%
{
 id:=list%A_index% 
 if DllCall( "IsWindowVisible", "UInt",id)
 {
  WinGetPos, x, y, w, h, ahk_id%id%
  x := x + xbord
  y := y + xbord + cap
  w := w - (2*xbord)
  h := h - (2*xbord) - cap
  if instr(highlightlist,id)
  Loop, Parse, highlightlist, `,
  {
   if instr(A_loopfield,id)
   {
   stringsplit,tab,A_loopfield,-
   if !((x=tab3) & (y=tab4) & (w=tab5) & (h=tab6))
   {
   num:=tab2
   num1:=num+1
   num2:=num+2
   num3:=num+3
   Gui, %num%: Destroy
   Gui, %num1%: Destroy
   Gui, %num2%: Destroy
   Gui, %num3%: Destroy
   listDelItem(highlightlist, A_Loopfield) 
   }
   }
  }
  foldx:=0.6534
  foldy:=0.9662
  foldx1:=0.5965
  foldy1:=0.9662
  back_x:=0.6534
  back_y:=0.9862
  back_x1:=0.5965
  back_y1:=0.9862
  if !DwmIsEnabled
  {
  fold:=PixelColor(foldx,foldy,id,0,1)
  bacgr:=PixelColor(foldx1,foldy1,id,0,1)
  deal:=PixelColor(back_x,back_y,id,0,1) 
  deal1:=PixelColor(back_x1,back_y1,id,0,1)
  }
  else
  {
  tmp_buffer := DllCall("GetDCEx", "UInt", id,"UInt",0,"UInt",1)
  relFTClientPoint(id, foldx, foldy,0)
  fold := DllCall("GetPixel", "UInt", tmp_buffer, "Int", foldx, "Int", foldy) 
  relFTClientPoint(id, foldx1, foldy1,0)
  bacgr := DllCall("GetPixel", "UInt", tmp_buffer, "Int", foldx1, "Int", foldy1) 
  relFTClientPoint(id, back_x, back_y,0)
  deal := DllCall("GetPixel", "UInt", tmp_buffer, "Int", back_x, "Int", back_y)
  relFTClientPoint(id, back_x1, back_y1,0)
  deal1 := DllCall("GetPixel", "UInt", tmp_buffer, "Int", back_x1, "Int", back_y1)
  SetFormat, IntegerFast, hex
  fold += 0
  fold .= ""
  bacgr += 0
  bacgr .= ""
  deal += 0
  deal .= ""
  deal1 += 0
  deal1 .= ""
  SetFormat, IntegerFast, d 
  DllCall( "gdi32.dll\ReleaseDC", "Uint", tmp_buffer )
  DllCall( "gdi32.dll\DeleteDC", "Uint", tmp_buffer )
  }
  if (comparecolors(fold,bacgr,v)=0) & (comparecolors(deal,deal1,v)=1)
  {
   if !instr(highlightlist,id)
   {
   free:=freeGui()
   if !(winid=id)
   col:=border_color
   else
   col:=border_coloralt
   movetolisthighlight(id,free,x,y,w,h)
   ;top
   guinum := free
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %col%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y% NoActivate    
   ;left
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %col%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%border_size% h%h% x%x% y%y% NoActivate    
   ;bottom
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %col%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   y2 := y + h - border_size
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y2% NoActivate    
   ;right
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %col%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   x2 := x + w - border_size
   Gui, %guinum%: Show, w%border_size% h%h% x%x2% y%y% NoActivate  
   }
  }
  else
  {
   if instr(highlightlist,id)
   Loop, Parse, highlightlist, `,
   {
    if instr(A_loopfield,id)
    {
    stringsplit,tab,A_loopfield,-
    num:=tab2
    num1:=num+1
    num2:=num+2
    num3:=num+3
    Gui, %num%: Destroy
    Gui, %num1%: Destroy
    Gui, %num2%: Destroy
    Gui, %num3%: Destroy
    listDelItem(highlightlist, A_Loopfield) 
    }
   }
  } 
} 
}
last_active_table_id:=winid
}
else
Loop, Parse, highlightlist, `,
{
stringsplit,tab,A_loopfield,-
num:=tab2
num1:=num+1
num2:=num+2
num3:=num+3
Gui, %num%: Destroy
Gui, %num1%: Destroy
Gui, %num2%: Destroy
Gui, %num3%: Destroy
listDelItem(highlightlist, A_Loopfield)
}
}
return

freeGui() { 
Loop 99 { 
    Gui, %a_index%: +lastfoundExist 
    If ! WinExist() 
      return a_index 
  } 
} 

MouseMove:
MoveMouse()
return

MoveMouse(x_mouse=0.7468, y_mouse=0.8735)
{
if IsWindowNew()
{ 
wingetclass,class,A
wingetactivetitle,title
if class=QWidget 
if !instr(title,"Full Tilt") 
{
 winget,id,id,A
 relFTClientPoint(id, x_mouse, y_mouse,0,1)
 DllCall("SetCursorPos", int, x_mouse, int, y_mouse)
}  
}
}
return
;-----------------------------------------------------------------------------------------------------
IsWindowNew()
{
global oldwinid,stealfocus
winget,id,id,A
wingetclass,class,ahk_id%oldwinid%
if id!=%oldwinid%
{
 oldwinid:=id
 if stealfocus
 return 1
 else
 {
  if class=QWidget
  return 1
  else
  return 0
 }
}
else
return 0
}
;-----------------------------------------------------------------------------------------------------
clicktime:
clicktime()
return

clicktime()
{
global tablequeue
t1:=0xdedbde
time_x:=0.9000
time_y:=0.7200
time_x1:=0.8858
v:=30
v1:=15
winget,listft,list,/ ahk_class QWidget,,Full Tilt
loop %listft%
{
id:=listft%A_index%
t:=PixelColorA(time_x,time_y,time_x1,time_y,0,id)
stringsplit,col,t,-
if (CompareColors(col1,t1,v1)=false) & (CompareColors(col1,col2,v)=false)
{
if !InStr(tablequeue,id)
movetolist(id,A_TickCount)
}
else
if InStr(tablequeue,id)
removefromlist(id)
}
}
return
;-----------------------------------------------------------------------------------------------------
dealin:
dealmein()
return

dealmein()
{
back_x:=0.6534
back_y:=0.9862
back_x1:=0.5859
back_x2:=0.6152

back1:=0x181818
v1:=10
v:=30
winget,listft,list,/ ahk_class QWidget,,Full Tilt
loop %listft%
{
id:=listft%A_index%
t:=PixelColorA(back_x,back_y,back_x1,back_y,back_x2,id)
stringsplit,col,t,-
if (CompareColors(col1,back1,v1)=false) & (CompareColors(col1,col2,v)=false) & (CompareColors(col2,col3,v)=true)
{
PostclickFT(0.7496,0.9862,id,0)
PostclickFT(0.7496,0.9862,id,0)
}
}
}
return
;-----------------------------------------------------------------------------------------------------
relFTClientPoint(id, ByRef x, ByRef y, client=1, screen=0)
{
global xbord,ybord,cap
WinGetPos,x1,y1,w,h,ahk_id%id%
w-=2*xbord
h-=(2*ybord)+cap
x:=floor(W*x)
y:=floor(H*y)
if !client
{
x+=xbord
y+=ybord+cap
}
if screen
{
x+=x1
y+=y1
}
}
return
;-----------------------------------------------------------------------------------------------------
PostLeftDoubleClick(x, y, table_id, activate=1) {
If activate
 WinActivate, ahk_id%table_id%
critical,6
PostMessage, 0x203 , 0, ((y<<16)^x), , ahk_id%table_id% ; without 0x001 as lparam which is Lbutton down
PostMessage, 0x202 , 0, ((y<<16)^x), , ahk_id%table_id%
PostMessage, 0x202 , 0, ((y<<16)^x), , ahk_id%table_id%
critical,off
sleep,-1
}
return
;-----------------------------------------------------------------------------------------------------
PostclickFT(x,y,winid,activate=1,client=1)
{
relFTClientPoint(winid, x, y,client)
DllCall("SetCapture","Uint",winid)
PostLeftDoubleClick(x, y, winid, activate)
DllCall("ReleaseCapture")
}
return
;-----------------------------------------------------------------------------------------------------
PostLeftclickFT(x,y,winid,activate=1,client=1)
{
relFTClientPoint(winid, x, y,client)
DllCall("SetCapture","Uint",winid)
PostLeftClick(x, y, winid, activate)
DllCall("ReleaseCapture")
}
return
;-----------------------------------------------------------------------------------------------------
clickwithdelay:
clickdelay()
return

clickdelay()
{
global tablequeue
time_x:=0.9000
time_y:=0.7200
Loop, Parse, tablequeue, `,
{
interval:=interval1*1000
stringsplit,tab,A_loopfield,-
if A_TickCount-tab2>interval
{
PostclickFT(time_x,time_y,tab1,0)
PostclickFT(time_x,time_y,tab1,0)
listDelItem(tablequeue, A_Loopfield) 
}
}
}
return
;-----------------------------------------------------------------------------------------------------
PixelColor(colx,coly,id,client=1,screen=0)
{
relFTClientPoint(id,colx,coly,client,screen)
if screen
Coordmode,Pixel,screen
PixelGetColor,color,colx,coly
return color
}
;-----------------------------------------------------------------------------------------------------
PixelColorA(colx,coly,backx,backy,joinx,id,region=0,regionw=70,regionh=15)
{
global boost,xbord,ybord,cap,PokerWindowID,DwmIsEnabled,hdc_buffer
if boost
critical,6
setwindelay, -1
WinGetPos,,,W,H,ahk_id %id%
if DwmIsEnabled
{
hdc_buffer := DllCall("GetDCEx", "UInt", id,"UInt",0,"UInt",1)
}
else
{
DllCall( "PrintWindow", "UInt" , id , "UInt" , hdc_buffer , "UInt" , 0 )
DllCall("RedrawWindow","UInt",id,"UInt",0,"UInt",0,"UInt", 1|16|32|64|1024) 
}
x:=floor(((W-2*xbord)*colx) + xbord)
y:=floor(((H-(2*ybord)-cap)*coly) + ybord + cap)
pix1=
pix1 := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y) 
x:=floor(((W-2*xbord)*backx) + xbord)
y:=floor(((H-(2*ybord)-cap)*backy) + ybord + cap)
if backx
pix2:=DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y) 
x:=floor(((W-2*xbord)*joinx) + xbord)
if joinx
pix3:=DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y) 
SetFormat, IntegerFast, hex
pix1 += 0
pix1 .= ""
if backx
{
pix2 += 0
pix2 .= ""
}
if joinx
{
pix3 += 0
pix3 .= ""
}
SetFormat, IntegerFast, d
if backx 
pix1.="-" . pix2
if joinx
pix1.="-" . pix3
if region
{
x:=floor(((W-2*xbord)*joinx) + xbord)
y:=floor(((H-(2*ybord)-cap)*backy) + ybord + cap)
pix1.="*"
loop %regionw%
{
delta:=A_index
loop %regionh%
{
delta1:=A_index
p := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x+delta , "Int", y+delta1)
;p1:=p
;SetFormat, IntegerFast, hex
;p += 0
;p .= ""
;SetFormat, IntegerFast, d
;pix1.=p . "*" . p1 . "-"
pix1.=p . "-"
}
}
}
sleep,1
DllCall( "gdi32.dll\ReleaseDC", "Uint", hdc_buffer )
if DwmIsEnabled
DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_buffer )
if boost
{
critical,off
sleep,-1
}
return pix1
}
;-----------------------------------------------------------------------------------------------------
CompareColors(ByRef bgr1, ByRef bgr2, ByRef variation) {
	c1 := bgr1 & 0xff
	c2 := bgr2 & 0xff
	if (abs(c1 - c2) > variation)
		return false
	c1 := (bgr1 >> 8) & 0xff
	c2 := (bgr2 >> 8) & 0xff
	if (abs(c1 - c2) > variation)
		return false
	c1 := (bgr1 >> 16) & 0xff
	c2 := (bgr2 >> 16) & 0xff
	if (abs(c1 - c2) > variation)
		return false
	return true
}
;-----------------------------------------------------------------------------------------------------
listAdd( byRef list, item, del="," ) {
  list:=( list!="" ? ( list . del . item ) : item )
  return list
}
;-----------------------------------------------------------------------------------------------------
listDelItem( byRef list, item, del=",") {
  ifEqual, item,, return list
  list:=del . list . del
  StringReplace, list, list, %item%%del%
  StringTrimLeft, list, list, 1
  StringTrimRight, list, list, 1
  return list
}
;-----------------------------------------------------------------------------------------------------
movetolist(winid,time)
{
global tablequeue
listAdd(tablequeue, winid . "-" . time)
}
return
;-----------------------------------------------------------------------------------------------------
removefromlist(winid)
{
global tablequeue
Loop, Parse, tablequeue, `,
{
if InStr(A_loopfield,winid)
listDelItem(tablequeue, A_Loopfield)
}
}
return
;-----------------------------------------------------------------------------------------------------
movetolistseat(winid,time)
{
global tablequeueseat
listAdd(tablequeueseat, winid . "-" . time) 
}
return
;-----------------------------------------------------------------------------------------------------
movetolistwaitlist(winid,time)
{
global waitlistqueue
listAdd(waitlistqueue, winid . "-" . time) 
}
return
;-----------------------------------------------------------------------------------------------------
movetolisthighlight(winid,number,x,y,w,h)
{
global highlightlist
listAdd(highlightlist, winid . "-" . number . "-" . x . "-" . y  . "-" . w  . "-" . h) 
}
return
;-----------------------------------------------------------------------------------------------------
SetAffinity(pid, cpu=1)
{
  h := DllCall("OpenProcess", "UInt", 0x1F0FFF, "Int", false, "UInt", pid)
  DllCall("SetProcessAffinityMask", "UInt", h, "UInt", cpu)
  DllCall("CloseHandle", "UInt" h)
  return
}
;-----------------------------------------------------------------------------------------------------
register:
ifwinactive, ahk_class QWidget
{
winget,id,id, A
wingettitle,title,ahk_id%id%
if instr(title,"Full Tilt Poker -")
{
reg_x :=0.9080
reg_y :=0.7357
PostclickFT(reg_x,reg_y,id,0)
PostclickFT(reg_x,reg_y,id,0)
}
}
return
;-----------------------------------------------------------------------------------------------------
Toggledealmein:
If (dealmein=true) {
	dealmein:=false
	T=Off
}
else {
	dealmein:=true
	T=On
}
Gui, 12:Add, Text,, Auto Deal me in: %T%
Gui, 12:+ToolWindow
Gui, 12:Show, w150 h20
Sleep, 1000
Gui, 12:Destroy
return
;-----------------------------------------------------------------------------------------------------
Joinwaitlist:
Joinwaitlist()
return

Joinwaitlist()
{
join_x:=0.6158
join_x1:=0.5946
join_y1:=0.9862
join_y:=0.9292
join_x2:=0.8261
v:=20
winget,listft,list,Logged In ahk_class QWidget,,Full Tilt
loop %listft%
{
id:=listft%A_index%
wingetpos,,,w,,ahk_id%id%
t:=PixelColorA(join_x,join_y1,join_x1,join_y1,0,id)
stringsplit,col,t,-
if (CompareColors(col1,col2,v)=false)
{
if w>600
t:=PixelColorA(0,0,0,join_y,join_x2,id,1,100,15)
else
t:=PixelColorA(0,0,0,join_y,join_x2,id,1,100,10)
stringsplit,st,t,*
if (!instr(st2,"16777215")) ; & !instr(st2,"67284200") & !instr(st2,"111670350") & !instr(st2,"148766710"))
{
PostclickFT(join_x,join_y1,id,0)
PostclickFT(join_x,join_y1,id,0)
}
}
}
}
return
;-----------------------------------------------------------------------------------------------------
Unjoinwaitlist:
Unjoinwaitlist()
return

Unjoinwaitlist()
{
join_x:=0.6158
join_x1:=0.5946
join_y1:=0.9862
join_y:=0.9292
join_x2:=0.8261
v:=20
winget,listft,list,Logged In ahk_class QWidget,,Full Tilt
loop %listft%
{
id:=listft%A_index%
wingetpos,,,w,,ahk_id%id%
t:=PixelColorA(join_x,join_y1,join_x1,join_y1,0,id)
stringsplit,col,t,-
if (CompareColors(col1,col2,v)=false)
{
if w>600
t:=PixelColorA(0,0,0,join_y,join_x2,id,1,100,15)
else
t:=PixelColorA(0,0,0,join_y,join_x2,id,1,100,10)
stringsplit,st,t,*
if (instr(st2,"16777215"))  ;or instr(st2,"67284200") or instr(st2,"111670350") or instr(st2,"148766710"))
{
PostclickFT(join_x,join_y1,id,0)
PostclickFT(join_x,join_y1,id,0)
}
}
}
}
return
;-----------------------------------------------------------------------------------------------------
autobuy:
autobuy()
return

autobuy()
{
global max,remembered,xbb,bbmultiplier
winget,list,list, Get Chips ahk_class QWidget
ifwinexist, Get Chips ahk_class QWidget
{
id:=list1
 winget,id,id, Get Chips ahk_class QWidget
 winactivate,ahk_id%id%
  if max
  {
   PostleftclickFT(0.1137,0.5407,id,1,1)
   sleep,100
   PostleftclickFT(0.3488,0.8740,id,0)
   PostleftclickFT(0.3488,0.8740,id,0)
  }
  if remembered
  {
   sleep,100
   PostleftclickFT(0.3488,0.8740,id,0)
   PostleftclickFT(0.3488,0.8740,id,0)
  }
  if xbb
  {
   winget,listft,list,Logged In ahk_class QWidget,,Full Tilt
   wingettitle,title,ahk_id %listft1%
   StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
   StringReplace,bb,bb,$,,1
   bb*=bbmultiplier
   bb := Round(bb, 2)
   PostclickFT(0.5906,0.6100,id,1,1)
   PostLeftclickFT(0.5906,0.6100,id,1,1) 
   cl:=clipboard
   clipboard:=bb
   setcontroldelay,-1 
   setkeydelay,1,1
   sleep,10
   ifwinnotactive,ahk_id%id%
   winactivate,ahk_id%id%
   controlfocus,,ahk_id %id%
   setkeydelay,-1,-1
   ControlSend,,%bb%,ahk_id %id%
   sleep,-1
   sleep,100
   PostleftclickFT(0.3488,0.8740,id,0)
   PostleftclickFT(0.3488,0.8740,id,0)
   clipboard:=cl
   winwaitclose,ahk_id %id%,,0.5
   if errorlevel
   {
   ControlSend,,{Esc},ahk_id %id%
   winclose,ahk_id %listft1%
   }
  }
 }
}
return
;-----------------------------------------------------------------------------------------------------
NewTable:
IsTableNew()
return

IsTableNew()
{
local list,id
winget,list,list,Logged In ahk_class QWidget,,Full Tilt
IfWinNotExist, Waiting List Options ahk_class QWidget
IfWinNotExist, Get Chips ahk_class QWidget
loop %list%
{
 id:=list%A_index%
 if seated%id% is not number
 {
  if ((limit=0) || ((limit=1) & (list<=totalnumber)))
  {
   ;wingetpos,xstart%id%,ystart%id%,,,ahk_id%id%
   ;if move
   ;WinMove, ahk_id%id%,, xpos,ypos
   if autotakeseat
   {
    if !InStr(tablequeueseat,id)
    movetolistseat(id,A_TickCount)
   }
   seated%id%:=1
  }
  else
  if ((limit=1) & (list>totalnumber))
  winclose,ahk_id%id%
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
clickseatwithdelay:
clickdelayseat()
return

clickdelayseat()
{
global tablequeueseat
ifwinnotexist, Get Chips ahk_class QWidget
{
Loop, Parse, tablequeueseat, `,
{
stringsplit,tab,A_loopfield,-
if (A_TickCount-tab2>500)
{
ClickEmptySeat(tab1)
listDelItem(tablequeueseat, A_Loopfield) 
}
}
}
}
return

clickwaitlistwithdelay:
clickdelaywaitlist()
return

clickdelaywaitlist()
{
global waitlistqueue
ifwinnotexist, Get Chips ahk_class QWidget
{
Loop, Parse, waitlistqueue, `,
{
stringsplit,tab,A_loopfield,-
if A_TickCount-tab2>300
{
PostLeftClickFT(0.2469,0.7000,tab1,0)
PostLeftClickFT(0.2469,0.7000,tab1,0)  
listDelItem(waitlistqueue, A_Loopfield) 
}
}
}
}
return


ClickEmptySeat(id)
{
Global Racetrack
wingettitle,title,ahk_id%id%
racetrack9maxseats:="0.4920*0.8436,0.2199*0.8183,0.0933*0.5931,0.0933*0.3379,0.2863*0.2022,0.7009*0.2022,0.8924*0.3379,0.8939*0.5931,0.7626*0.8183"
racetrack6maxseats:="0.4969*0.8758,0.3101*0.8505,0.0890*0.4965,0.2784*0.1954,0.6914*0.1954,0.8844*0.4965"
classic9maxseats:="0.4953*0.8772,0.2480*0.8289,0.0666*0.6335,0.1061*0.3439,0.3356*0.2082,0.6552*0.2059,0.8814*0.3432,0.9194*0.6289,0.7359*0.8243"
classic6maxseats:="0.4953*0.8804,0.0886*0.6459,0.1487*0.2942,0.4952*0.1931,0.8322*0.2873,0.9050*0.6367"

if Racetrack
{
 color1:=5190656
 color2:=5059328
 if instr(title,"6 max")
 seats:=racetrack6maxseats
 else
 seats:=racetrack9maxseats 
}
else
{
 color1:="-0-"
 color2:=16119285 
 if instr(title,"6 max")
 seats:=classic6maxseats
 else
 seats:=classic9maxseats 
} 
Loop, Parse, seats, `,
{
 stringsplit,coord,A_loopfield,*
 col:=PixelColorA(0,0,0,coord2,coord1,id,1,5,5)
 if Racetrack
 { 
 if instr(col,color1) || instr(col,color2)
 {
  clickx:=coord1
  clicky:=coord2-0.04
  PostLeftclickFT(clickx,clicky,id,0)
  PostLeftclickFT(clickx,clicky,id,0)
  return
 }
 }
 else
 {
 if (!instr(col,color1)) & (!instr(col,color2))
 {
  clickx:=coord1
  clicky:=coord2
  PostLeftclickFT(clickx,clicky,id,0)
  PostLeftclickFT(clickx,clicky,id,0)
  return
 }
 }
}
PostLeftclickFT(0.6155,0.9862,id,0)
PostLeftclickFT(0.6155,0.9862,id,0)
}
return
;-----------------------------------------------------------------------------------------------------
closepopups:
closepopups()
return

closepopups()
{
global xbord,cap,closeOKwindow,leavetable
winget,list,list,ahk_class QWidget,,/
loop %list%
{
id:=list%A_index%
wingettitle,title,ahk_id%id%
if !instr(title,"Full Tilt")
if !instr(title,"Get Chips")
{
wingetpos,,,w,h,ahk_id%id%
w-=2*xbord
h-=(2*xbord+cap)
if ((h<120) & ((w=234) or (w=240) or (w=380) or (w=392))) ;or ((h<110) & (w=281)) 
{
if closeOKwindow
ControlSend,,{Enter},ahk_id%id%
}
else
if ((w=265) or (w=267)) or ((h<120) & (w=281)) 
{
if leavetable
{
PostLeftClickFT(0.4000,0.7273,id) 
PostLeftClickFT(0.4000,0.7273,id) 
}
}
}
}
}
return
;-----------------------------------------------------------------------------------------------------

TakeSeatFromWaitlist:
TakeSeat() 
return

TakeSeat() 
{
local list,id,This_id
IfWinExist, Waiting List Options ahk_class QWidget
{
 WinGet, list, list, Waiting List Options ahk_class QWidget
 winget, tablelist,list,Logged In ahk_class QWidget,,Full Tilt
 Loop, %list%
 {
  This_id := list%A_Index%
  if (tablelist<totalnumber) or (limit=0)
  {
   settimer,NewTable,off
   PostLeftClickFT(0.2469,0.7000,this_id)
   winwait, / ahk_class QWidget,,0.5
   if !errorlevel
   {
    winget,id,id
    seated%id%:=1
   } 
   if limit or autotakeseat
   settimer,NewTable,267
  }
  else
  if (tablelist>=totalnumber) & (limit=1)
  {
   if remove
   {
    PostLeftClickFT(0.0843,0.8368,this_id) 
    PostLeftClickFT(0.5000,0.7000,this_id) 
   }
   if pressno
   PostLeftClickFT(0.5000,0.7000,this_id) 
   else
   if pressnotyet
   PostLeftClickFT(0.7439,0.7000,this_id) 
  }
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
AlterAmount(id, dir="", frac=1, unit="")
{
  WinGetTitle, title, ahk_id%id%
  amount := 0
  StringTrimRight, tablename, title, ( StrLen(title) - (InStr(title, " - ")-1) )
  IfWinExist, ahk_id%id% ahk_group FullTiltTables
  {
    StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
  }   
  StringReplace,bb,bb,$,,1
  StringReplace,bb,bb,Ј,,1
  StringReplace,bb,bb,Ђ,,1
  StringReplace,bb,bb,€,,1 
  sb := sb(bb)
  If (unit = "" or unit = "bb")
  {
    unit := bb
  }
  Else If (unit = "sb")
  {
    unit := sb
  }
  Else If (unit = "pot")
  {
    pot := 0
    call := 0
    hero_bet := 0
    street := "pre"
    hero_position := ""
    open := 0
    max := 10000000
    IfWinExist, ahk_id%id% ahk_group FullTiltTables
    {
        PotSizeFullTilt2(id, pot, call, sb, bb, hero_bet, street, hero_position, open, max)
    }
    pot := ((pot + call + hero_bet) )+ call
    unit := pot
  }
  amount := unit * frac
  if (dir="down")
  {
    amount := amount - (2*amount)
  }
  a:=floor(amount)
  if amount-a=0
  amount:=a
  
  IfWinExist, ahk_id%id% ahk_group FullTiltTables
  {
      oldClipboard = %clipboard%
      clipboard =
      PostStarsClick(767, 440, id)
      Send ^a
      Send ^c
      ClipWait, 0.3
      If !ErrorLevel
      t := clipboard
      clipboard = %oldClipBoard%
      t := t + amount
      if (t < 0)
      {
        t := 0
      }
    t2 := Round(t, 0)
    t1 := Round(t, 2)
    t := Round(t, 3)
    if t-t1=0
    t:=t1
    if t-t2=0
    t:=t2
      PostStarsClick(767, 440, id)
      Send ^a
      Send %t%
      PostStarsClick(767, 440, id)
  }
}

Pot(id, frac=1, round_bet=0.2, open_adjust="", fixblinds=0)
{
  global debug
  global attempts

  if attempts<=0
  attempts:=1
  pot := 0
  call := 0
  sb := 0
  bb := 0
  hero_bet := 0
  street := ""
  hero_position := ""
  open := 1
  max := 10000000

  IfWinExist, ahk_id%id% ahk_group FullTiltTables
  {
    loop %attempts%
    {
     PotSizeFullTilt2(id, pot, call, sb, bb, hero_bet, street, hero_position, open, max)
     if pot>0
     break
     sleep,20 
    }
    }
  Else
  {
    return
  }
 
  StringSplit, fr, frac, %A_SPACE%
  if (fr0 < 4)
  {
    times := 4 - fr0
    Loop, %times%
    {
      n := 5 - A_Index
      fr%n% := fr%fr0% 
    }
  }
  
  if (street = "pre")
  {
    frac:= Round(fr1/100,2)
  }
  else if (street = "flop")
  {
    frac:= Round(fr2/100,2)
  }
  else if (street = "turn")
  {
    frac:= Round(fr3/100,2)
  }
  else if (street = "river")
  {
    frac:= Round(fr4/100,2)
  }
  if (debug)
  {
    TrayTip, BetPot, Pot:`t`t%pot%`nCall:`t`t%call%`nHero_bet:`t%hero_bet%`n`nPosition:`t%hero_position%`n`nBlinds:`t$%sb%/$%bb%`n`nStreet:`t%street%`n`n%fr0%`n%fr1% %fr2% %fr3% %fr4%`n`n%frac%,10,17
  }
  if (fixblinds AND open AND street="pre")
  {
    if (hero_position = "sb" )
    {
      pot := pot - sb
      call := call + sb
    }
    else if (hero_position = "bb")
    {
      pot := pot - bb
      call := call + bb
    }
  }

  pot := ((pot + call + hero_bet)* (frac)) + call  

  if (open=1 AND open_adjust="ssnl" )
  {
    pot := pot + bb - sb
  }
  else if (open=1 AND open_adjust="trny" )
  {
    pot := pot - bb
  }
  else if (open=1 AND open_adjust="mix" )
  {
    if (bb=2)
    {
      pot := pot + bb - sb
    }
  ;  pot := pot + bb + sb
  }
  
  if(round_bet = "smallblind")
  {
   ; if sb<1
   ; pot := Round((Floor((pot / sb)) * sb),2)
    pot := Round((Round((pot / sb)) * sb),2)
   ; else
   ; pot := Round((Floor((pot / sb)) * sb),0)
  }
  else if(round_bet = "bigblind")
  {
    pot := Round((Floor((pot / bb)) * bb),2)
  }
  else if (round_bet < 1)
  {
    places := round_bet*10
    pot := Round(pot, (places))
  }
  else if (round_bet >= 1)
  {
    pot := Floor(pot / round_bet) * round_bet
  }
 
  p:=floor(pot)
  if pot-p=0
  pot:=p
    
  IfWinExist, ahk_id%id% ahk_group FullTiltTables
  {
    PostStarsClick(767, 440, id)
    Send ^a
    Send %pot%
  }
}

PotSizeFullTilt2(id, ByRef pot, ByRef call, ByRef sb, ByRef bb, ByRef hero_bet, ByRef street, ByRef hero_position, ByRef open, ByRef max)
{
  global deduct_rake,Racetrack
  rake := 0
  notraked := 0
  maxrake := 3
  max := 7654321
  setbatchlines,-1 
  
  WinGetTitle, title, ahk_id%id%
  StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
  StringReplace,bb,bb,$,,1
  sb := sb(bb)
  
TotalPotDigitsPosX=393
TotalPotDigitsPosY=277
if Racetrack
{
MainPotDigitsPosX=334
MainPotDigitsPosY=183
}
else
{
if !instr(title,"(6 max)")
{
MainPotDigitsPosX=285
MainPotDigitsPosY=335
}
else
{
MainPotDigitsPosX=338
MainPotDigitsPosY=340
}
}
PotDigitsPosW=80
PotDigitsPosH=14
 

pot:=DigitSearchByPixelCount(TotalPotDigitsPosX,TotalPotDigitsPosY,PotDigitsPosW,PotDigitsPosH,Id)
if pot is not number
pot:=DigitSearchByPixelCount(MainPotDigitsPosX,MainPotDigitsPosY,PotDigitsPosW,PotDigitsPosH,Id)

oldClipboard:=clipboard
clipboard =
wingetpos,,,w,,ahk_id%id%
if w>=605
{
PostStarsClick(707, 418, id) ;hit min
PostStarsClick(707, 418, id) ;hit min
PostStarsClick(707, 418, id) ;hit min
}
else
{
PostLeftClickFT(0.8705,0.8341,id,0)
PostLeftClickFT(0.8705,0.8341,id,0)
}
PostStarsClick(767, 440, id)

min := sb
Send ^a
Send ^c
ClipWait, 0.3
If !ErrorLevel
 {
  min := clipboard
  clipboard = %oldClipBoard%
 }
 else
 {
 min := 2*bb 
 }
   
  street := "pre" 
  street := GetStreetFT(id,5)
   
  if (min = bb)
  {
    call := 0
  }
  else if (min > bb)
  {
    call := min / 2
  }
  else if (street != "pre")
  {
    call := bb
  }
  
    call2 := Round(call, 0)
    call1 := Round(call, 2)
    call := Round(call, 3)
    if call-call1=0
    call:=call1
    if call-call2=0
    call:=call2

  if (call != bb || street != "pre")
  {
    open := 0
  }

if call is not number
call:=0
if hero_bet is not number
hero_bet:=0 
setbatchlines,1ms
return
}

GetStreetFT(id,amount)
{
global DwmIsEnabled
if !DwmIsEnabled
CoordMode, Pixel, Screen
  street := "flop"
  x1 := 378
  y1 := 214
  x2 := 414
  y2 := 260
  if !DwmIsEnabled
  {
  relStarsScreenPoint(id, x1, y1)
  relStarsScreenPoint(id, x2, y2)
  pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount) 
  }
  else
  {
   relStarsWindowPoint(id, x1, y1)
   relStarsWindowPoint(id, x2, y2)
   pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount,"",id) 
  }
  If !pixels
  {
    street := "pre"
    return street
  } 
  x1 := 485
  y1 := 214
  x2 := 520
  y2 := 260
  if !DwmIsEnabled
  {
  relStarsScreenPoint(id, x1, y1)
  relStarsScreenPoint(id, x2, y2)
  pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount) 
  }
  else
  {
   relStarsWindowPoint(id, x1, y1)
   relStarsWindowPoint(id, x2, y2)
   pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount,"",id) 
  }
  
  If pixels
  {
    street := "river"
    return street
  }
  x1 := 431
  y1 := 214
  x2 := 461
  y2 := 260
  if !DwmIsEnabled
  {
  relStarsScreenPoint(id, x1, y1)
  relStarsScreenPoint(id, x2, y2)
  pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount) 
  }
  else
  {
   relStarsWindowPoint(id, x1, y1)
   relStarsWindowPoint(id, x2, y2)
   pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount,"",id) 
  }
  If pixels
  {
    street := "turn"
  }
  return street
}

; finds number of specified pixels in a region
GetPixelCount(x1, y1, x2, y2, color,amount, options="",id=0)
{
global DwmIsEnabled
  if id
  hdc_buffer := DllCall("GetDCEx", "UInt", id,"UInt",0,"UInt",1)
  else
  CoordMode, Pixel, Screen
  pixels := (x2 - x1 + 1)*(y2 - y1 + 1)
  If ( pixels <= 0 )
  {
    ErrorLevel = 1
    return
  }
  count = 0
  x = %x1%
  Loop
  {
    If ( x > x2 )
    {
      break
    }
    y = %y1%
    Loop
    {
      If ( y > y2 )
      {
        break
      }
      if !id
      PixelGetColor, c, x, y, %options%
      else
      { 
       c := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y)
       SetFormat, IntegerFast, hex
       c += 0
       c .= ""
       SetFormat, IntegerFast, d
      }
 
      If ( c = color )
      {
        count++
        if count>%amount%
        {
         if id
         {
          DllCall( "gdi32.dll\ReleaseDC", "Uint", hdc_buffer )
          DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_buffer )
         }
         return 1
        } 
      }
      y++
    }
    x++
  }
  if id
  {
  DllCall( "gdi32.dll\ReleaseDC", "Uint", hdc_buffer )
  DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_buffer )
  }
  return 0
}

sb(bb) {
If bb = .25
 sb := .10
else if bb = 15
 sb = 10
else if bb = 0.05
 sb = 0.02
else
 sb := bb/2
if (sb > 1)
{
  sb := Round(sb, 0)
}
else
{
  sb := Round(sb, 2)
}
return sb
}

StrRep(str,char,rep_char="",all=1)
{
  StringReplace,str,str,%char%,%rep_char%,%all%
  return str
}

StrMid(str,str1,str2,startPos1=1,startPos2=1,caseSense=0){
If startPos1 =
 startPos1 = 1
If startPos2 =
 startPos2 = 1
StringTrimLeft,o,str,InStr(str,str1,cS,startPos1) + StrLen(str1) - 1
StringLeft,o,o,InStr(o,str2,caseSense,startPos2)-1
return o
}

IIf(_boolExpr, _exprTrue, _exprFalse) {
If _boolExpr
 Return _exprTrue
else
 return _exprFalse
}

relStarsClientPoint(id, ByRef x, ByRef y)
{
  global border
  global caption
  rw := 792
  rh := 546
  WinGetPos, , , w, h, ahk_id%id%
  w := w - (2*border)
  h := h - (2*border) - caption
  
  x := Floor( (x / rw ) * w )
  y := Floor( (y / rh) * h  )
  
}

relStarsWindowPoint(id, ByRef x, ByRef y)
{
  global border
  global caption
  relStarsClientPoint(id, x, y)
  x := x + border
  y := y + border + caption
}

relStarsScreenPoint(id, ByRef x, ByRef y)
{
  relStarsWindowPoint(id, x, y)
  WinGetPos, x1, y1, , , ahk_id%id%
  x += x1
  y += y1
}

reverse_calc_stars_client_area(cw, ByRef w, ByRef h)
{
  global border
  global caption
  w := cw + (2*border) 
  h := Floor(cw / 1.45) + (2*border) + caption
}

client_area(id, ByRef x, Byref y, ByRef w, Byref h)
{
  WinGetPos, x, y, w, h, ahk_id%id%
  global border
  global caption
  x := x + border
  y := y + border + caption
  w := w - (2*border)
  h := h - (2*border) - caption
  return
}

PostStarsClick(x, y, id)
{
  relStarsClientPoint(id, x, y)
  PostLeftClick(x, y, id)
}

PostLeftClick(x, y, table_id, activate=1) {
; ### JUK: Send the down left click, then the mouse-up messages.
; NOTE: This is relative to the top left of the client area and NOT the top left of the
;       window (ie: It *doesn't* include the title-bar like AHK's MouseClick does!!!).
If activate
 WinActivate, ahk_id%table_id%
PostMessage, 0x201, 0x0001, ((y<<16)^x), , ahk_id%table_id%
PostMessage, 0x202 , 0, ((y<<16)^x), , ahk_id%table_id%
}
;;;;;;;;;;;;;;;;;;;;PixelCount function source taken from PokerShortCuts;;;;;;;;;;;;;;;;;;;;;
DigitSearchByPixelCount(X,Y,W,H,WinId)
{  
global DwmIsEnabled
DigitsColor=0xFFFFFF
DigitsColorTolerance=0

FTMinimumPixelCountPerColumn := 2
FTMaximumAllowedNumPixelsInRowToBeBlank:=2 

   ; FT Pixel Count Digits for table (client width) 472-563
   PixelCountDigits52254 := 0
   PixelCountDigits276 := 1
   PixelCountDigits35335 := 2
   PixelCountDigits33335 := 2
   PixelCountDigits23344 := 3
   PixelCountDigits22276 := 4
   PixelCountDigits53335 := 5
   PixelCountDigits53321 := 6
   PixelCountDigits23321 := 7
   PixelCountDigits43344 := 8
   PixelCountDigits23354 := 9
   PixelCountDigits21 := "."
   PixelCountDigits3333332 := "A"
   PixelCountDigits333335 := "S"

   ; FT Pixel Count Digits for table (client width) 564-682
   PixelCountDigits622265 := 0
   PixelCountDigits287 := 1
   PixelCountDigits333336 := 2
   PixelCountDigits223355 := 3
   PixelCountDigits22287 := 4
   PixelCountDigits533346 := 5
   PixelCountDigits533332 := 6
   PixelCountDigits33321 := 7
   PixelCountDigits533355 := 8
   PixelCountDigits333354 := 9
   PixelCountDigits21 := "."
   PixelCountDigits3433432 := "A"
   PixelCountDigits333346 := "S"

   ; FT Pixel Count Digits for table (client width) 683-841
   PixelCountDigits6822865 := 0
   PixelCountDigits2887 := 1
   PixelCountDigits3544536 := 2
   PixelCountDigits2433855 := 3
   PixelCountDigits222787 := 4
   PixelCountDigits653646 := 5
   PixelCountDigits6833632 := 6
   PixelCountDigits47521 := 7
   PixelCountDigits5833855 := 8
   PixelCountDigits3633865 := 9
   PixelCountDigits221 := "."
   PixelCountDigits36636632 := "A"
   PixelCountDigits4644646 := "S"

   ; FT Pixel Count Special situation below 842-881 - looks like only the 2 digit is different here
   PixelCountDigits23444647 := 2

   ; FT Pixel Count Digits for table (client width) 842-960
   PixelCountDigits79222976 := 0
   PixelCountDigits22998 := 1
   PixelCountDigits33444647 := 2

   PixelCountDigits22333966 := 3
   PixelCountDigits2222998 := 4
   PixelCountDigits5533757 := 5
   PixelCountDigits68433743 := 6
   PixelCountDigits465421 := 7
   PixelCountDigits69333966 := 8
   PixelCountDigits47334865 := 9
   PixelCountDigits221 := "."
   PixelCountDigits2555355521 := "A"
   PixelCountDigits56333656 := "S"

   ; FT Pixel Count Digits for table (client width) 961-1040
   PixelCountDigits684224865 := 0
   PixelCountDigits22AA9 := 1
   PixelCountDigits354435647 := 2
   PixelCountDigits463337735 := 3
   PixelCountDigits22222AA9 := 4
   PixelCountDigits275335647 := 5
   PixelCountDigits685335632 := 6
   PixelCountDigits3555421 := 7
   PixelCountDigits7A3333A77 := 8
   PixelCountDigits365335865 := 9
   PixelCountDigits332 := "."
   PixelCountDigits3556365532 := "A"
   PixelCountDigits475445746 := "S"

   ; FT Pixel Count Digits for table (client width) 1041-1119
   PixelCountDigits8A42224A87 := 0
   PixelCountDigits22CCB := 1
   PixelCountDigits3544445649 := 2
   PixelCountDigits4623337957 := 3
   PixelCountDigits222222CCB := 4
   PixelCountDigits2863335759 := 5
   PixelCountDigits7954335743 := 6
   PixelCountDigits35555421 := 7
   PixelCountDigits5973337957 := 8
   PixelCountDigits4753345976 := 9
   PixelCountDigits332 := "."
   PixelCountDigits355653565532 := "A"
   PixelCountDigits5864446858 := "S"

   if !DwmIsEnabled
   {
   coordmode, pixel, Screen
   WindowScaledPos(X, Y, ClientScaleFactor, "Screen", WinId)
   PixelGetColor, ColorRGB,X,Y,RGB
   }
   else
   {
    hdc_buffer := DllCall("GetDCEx", "UInt", WinId,"UInt",0,"UInt",1)
    WindowScaledPos(X, Y, ClientScaleFactor, "Window", WinId)
    ColorRGB := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y)
    SetFormat, IntegerFast, hex
    ColorRGB += 0
    ColorRGB .= ""
    SetFormat, IntegerFast, d
   }
   W := Round(W * ClientScaleFactor)
   H := Round(H * ClientScaleFactor)
      CheckPrimaryColorFlag := 1
      CheckAlternateColorFlag := 0
   Y += Round(H/2)
   TopRowFound := 0
   loop, % Round(H)
   {
      Xpos := X
      PixelCountInRow := 0
      ScanWidth := Round(W*3/4)
      loop,% ScanWidth
      {
         Xpos += 1
         if !DwmIsEnabled
         PixelGetColor, ColorRGB,Xpos,Y,RGB
         else
         {
          ColorRGB := DllCall("GetPixel", "UInt", hdc_buffer, "Int", Xpos, "Int", Y)
          SetFormat, IntegerFast, hex
          ColorRGB += 0
          ColorRGB .= ""
          SetFormat, IntegerFast, d
         }
         if (CheckPrimaryColorFlag AND (ColorWithinTolerance(ColorRGB, DigitsColor, DigitsColorTolerance)))
         {
            PixelCountInRow++
            if (PixelCountInRow > FTMaximumAllowedNumPixelsInRowToBeBlank)
               break
         }
      } 
      if (Xpos == (X + ScanWidth))
      {
         TopRowFound := 1
         Y += 1                  ; move back down to the top row of the font
         break
      }
      Y -= 1
   } 
   if NOT TopRowFound
   {
      return ""
   }
   DigitString:=""
   PixelCountForAllDigitsString := ""
   PixelCountForThisDigitString := ""
   loop, %W%
   {
      ColumnNum:= A_Index
      PixelCountInColumn:=0
      FirstPixelPosition := 0
      LastPixelPosition := 0
      loop, %H%
      {
         RowNum:=A_Index
         if !DwmIsEnabled
         PixelGetColor, ColorRGB,X+ColumnNum-1,Y+RowNum-1,RGB
         else
         {
          ColorRGB := DllCall("GetPixel", "UInt", hdc_buffer, "Int", X+ColumnNum-1, "Int", Y+RowNum-1)
          SetFormat, IntegerFast, hex
          ColorRGB += 0
          ColorRGB .= ""
          SetFormat, IntegerFast, d
         }

         if (ColorWithinTolerance(ColorRGB, DigitsColor, DigitsColorTolerance))
         {
            if (!FirstPixelPosition)
               FirstPixelPosition := RowNum
            LastPixelPosition := RowNum
            PixelCountInColumn++
         }
      }
      if (PixelCountInColumn >= FTMinimumPixelCountPerColumn)
      {
         LastMinusFirstPixelPosition := LastPixelPosition  - FirstPixelPosition
         if (PixelCountInColumn > 9)
         {
            PixelCountInColumn := chr(64 + PixelCountInColumn - 9)
         }
         if PixelCountInColumn is alnum
            PixelCountForThisDigitString .= PixelCountInColumn
      }
      else
      {
         if (PixelCountForThisDigitString != "")
         {

            if (LastMinusFirstPixelPosition > 9)
               LastMinusFirstPixelPosition := chr(64 + LastMinusFirstPixelPosition - 9)
            if LastMinusFirstPixelPosition is alnum
               PixelCountForThisDigitString .= LastMinusFirstPixelPosition
            Temp := "PixelCountDigits"
            DigitString .= %Temp%%PixelCountForThisDigitString%
            PixelCountForAllDigitsString .= PixelCountForThisDigitString . A_Space
            PixelCountForThisDigitString := ""
         }
      }
   }
   Loop,
   {
      StringPosition := instr(DigitString,".")    ; find the first decimal point
      if StringPosition
      {
         if ((strlen(DigitString) - StringPosition) > 2)
            StringReplace, DigitString, DigitString,.,,
         else
            break
      }
      else
         break
   }
   if DwmIsEnabled
   {
   DllCall( "gdi32.dll\ReleaseDC", "Uint", hdc_buffer )
   DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_buffer )
   }
   if (DigitString)
   {
      PixelCountForAllDigitsStringReturned := PixelCountForAllDigitsString
      return DigitString
   }
}

ColorWithinTolerance(SampleColor, TestColor, Tolerance) {

   if (SampleColor == TestColor)
      return 1
   If (Tolerance == 0)
      return (SampleColor == TestColor)

    SampleColorRed := SampleColor >> 16
    TestColorRed := TestColor >> 16
    SampleColorGreen:= SampleColor >> 8 & 0xff
    TestColorGreen := TestColor >> 8 & 0xff
    SampleColorBlue := SampleColor & 0xff
    TestColorBlue := TestColor & 0xff
    return (    ( (SampleColorRed + Tolerance >= TestColorRed)     && (SampleColorRed - Tolerance <= TestColorRed) )
        &&      ( (SampleColorGreen + Tolerance >= TestColorGreen) && (SampleColorGreen - Toleranc <= TestColorGreene) )
        &&      ( (SampleColorBlue + Tolerance >= TestColorBlue)   && (SampleColorBlue - Tolerance <= TestColorBlue) )           )
}

WindowScaledPos(ByRef PosX, ByRef PosY, ByRef ClientScaleFactor, ScaleType="Screen", WinId="")
{
   local TitleBarHeight, WindowBottomBorder, WindowSideBorder, WindowTopBorder ,WindowX,WindowY,WindowWidth,WindowHeight
   local ClientWidth, ClientHeight , ClientWidthScaleFactor, ClientHeightScaleFactor

   StandardClientWidth=794
   StandardClientHeight=547
   SysGet, TitleBarHeight, 4
   SysGet, WindowBottomBorder, 32
   SysGet, WindowSideBorder, 33

   WindowTopBorder := TitleBarHeight + WindowBottomBorder
   WinGetPos,WindowX,WindowY,WindowWidth,WindowHeight,ahk_id%WinId%
   ClientWidth := WindowWidth - 2 * WindowSideBorder
   ClientHeight := WindowHeight - TitleBarHeight - 2 * WindowBottomBorder
   ClientWidthScaleFactor := ClientWidth / StandardClientWidth
   ClientHeightScaleFactor := ClientHeight / StandardClientHeight 
   ClientScaleFactor := ClientWidthScaleFactor     ; pass back the scaling factor in case the calling function needs it
   PosX := Round(PosX * ClientWidthScaleFactor)
   PosY := Round(PosY * ClientHeightScaleFactor)   
    if (ScaleType == "Client")
   {
      return
   }
   else if (ScaleType == "Window")
   {
      PosX += WindowSideBorder
      PosY += WindowTopBorder
   }
   else if (ScaleType == "Screen")
   {
      PosX += WindowX + WindowSideBorder
      PosY += WindowY + WindowTopBorder
   }
}

NextWindow_Calc(ByRef perp, ByRef parallel, ByRef id, ByRef min, ByRef minID) {
	parallel /= 2
	d := Sqrt(parallel*parallel+perp*perp)
	if (d < min) {
		min := d
		minID := id
	}
}
NextWindow_Activate(Byref id1, ByRef id2, Byref id3) {
	local id := id1 ? id1 : id2 ? id2 : id3 ? id3 : ""
	if !id
		return
	WinActivate, ahk_id %id%
	local window
	WinGetClass, window, ahk_id %id%
	window := "OnActivate_" . window
	if IsLabel(window)
		GoSub, %window%
}
NextWindow_Left() {
	WinGet, cId, ID, A
	WinGetPos, cX, cY, , cH,ahk_id%cId%
	cH_half := cH/2
	min := A_ScreenWidth
	minRight := min
	maxY := 0
	maxX := 0
	WinGet windows, List, Logged In ahk_class QWidget,,Full Tilt
	Loop, %windows%	{
		id := windows%A_Index%
		if (id == cID)
			continue
		WinGetPos, x, y, w, , ahk_id %id%
		dx := cX - x
		if (dx < 0) {
			dx := A_ScreenWidth - x - w
			if (dx < 0)
				dx := 0
			dy := y - cY
			if (dy < 0)
				NextWindow_Calc(dy, dx, id, minRight, minRightID)
		} else if (dx > 9) {
			dy := abs(cY - y)
			if (dy < cH_half)
				NextWindow_Calc(dy, dx, id, min, minID)
		}
		if (y >= maxY) {
			if (x >= maxX || y > maxY + cH) {
				maxX := x
				maxY := y
				oppID := id
			}
		}
	}
	NextWindow_Activate(minId, minRightID, oppID)
}
NextWindow_Right() {
	WinGet, cId, ID,A
	WinGetPos, cX, cY, , cH,ahk_id%cId%
	cH_half := cH/2
	min := A_ScreenWidth
	minLeft := min
	minY := min
	minX := min
	WinGet windows, List, Logged In ahk_class QWidget,,Full Tilt
	Loop, %windows%	{
		id := windows%A_Index%
		if (id == cID)
			continue
		WinGetPos, x, y, w, , ahk_id %id%
		dx := x - cX
		if (dx < 0) {
			dx := x
			if (dx < 0)
				dx := 0
			dy := cY - y
			if (dy < 0)
				NextWindow_Calc(dy, dx, id, minLeft, minLeftID)
		} else if (dx > 9) {
			dy := abs(cY - y)
			if (dy < cH_half)
				NextWindow_Calc(dy, dx, id, min, minID)
		}
		if (y <= minY) {
			if (x <= minX || y < minY - cH_half) {
				minX := x
				minY := y
				oppID := id
			}
		}
	}
	NextWindow_Activate(minId, minLeftID, oppID)
}
NextWindow_Up() {
	WinGet, cID, ID,A
	WinGetPos, cX, cY, cW,,ahk_id%cId%
	cW_half := cW/2
	min := A_ScreenHeight
	minDown := min
	minX := min
	maxY := 0
	WinGet windows, List, Logged In ahk_class QWidget,,Full Tilt
	Loop, %windows%	{
		id := windows%A_Index%
		if (id == cID)
			continue
		WinGetPos, x, y, , h, ahk_id %id%
		dy := cY - y
		if (dy < 0) {
			dy := A_ScreenHeight - y - h
			if (dy < 0)
				dy := 0
			dx := cX - x
			if (dx < 0)
				NextWindow_Calc(dx, dy, id, minDown, minDownId)
		} else if (dy > 9) {
			dx := abs(cX - x)
			if (dx < cW_half)
				NextWindow_Calc(dx, dy, id, min, minID)
		}
		if (x <= minX) {
			if (y >= maxY || x < minX - cW_half) {
					minX := x
					maxY := y
					oppID := id
			}
		}
	}
	NextWindow_Activate(minId, minDownID, oppID)
}
NextWindow_Down() {
	WinGet, cID, ID,A
	WinGetPos, cX, cY, cW,,ahk_id%cId%
	cW_half := cW/2
	min := A_ScreenWidth
	minUp := min
	maxX := 0
	minY := min
	WinGet windows, List, Logged In ahk_class QWidget,,Full Tilt
	Loop, %windows%	{
		id := windows%A_Index%
		if (id == cID)
			continue
		WinGetPos, x, y, , , ahk_id %id%
		dy := y - cY
		dx := x - cX
		if (dy < 0) {
			dy := y
			if (dy < 0)
				dy := 0
			dx := x - cX
			if (dx < 0)
				NextWindow_Calc(dx, dy, id, minUp, minUpID)
		} else if (dy > 9) {
			dx := abs(cX - x)
			if (dx < cW_half)
				NextWindow_Calc(dx, dy, id, min, minID)
		}
		if (x >= maxX) {
			if (y <= minY || x > maxX + cW_half) {
				maxX := x
				minY := y
				oppID := id
			}
		}
	}
	NextWindow_Activate(minId, minUpID, oppID)
}
NextWindow_Left:
NextWindow_Left()
return
;--------------------------------------------------------------------------------
NextWindow_Right:
NextWindow_Right()
return
;--------------------------------------------------------------------------------
NextWindow_Up:
NextWindow_Up()
return
;--------------------------------------------------------------------------------
NextWindow_Down:
NextWindow_Down()
return
;--------------------------------------------------------------------------------
BuildGui:
Gui, color, white
Gui, add, tab, h490 w300, General|Global hotkeys|BetPot|Table hotkeys|Time|Buy-in

Gui, Tab, General

Gui, add, text,cred y50 x35,Table view:
Gui, Add, Radio, x36 y70 w180 h20 Checked%ClassicTheme% vClassicTheme, Classic
Gui, Add, Radio, x36 y90 w180 h20 Checked%Racetrack% vRacetrack, Racetrack
Gui, add, text,cRed y125 x85, Use these options
Gui, add, text,cRed y140 x50, if you experience flicker problem
Gui, add, Checkbox, y160 x60 Checked%flicker1% Vflicker1
Gui, add, text, y175 x25,set FullTilt process
Gui, add, text, y190 x25,priority to high
Gui, add, Checkbox, y160 x180 Checked%flicker2% Vflicker2
Gui, add, text, y175 x125,set affinity to cpu1 only
Gui, add, text, y190 x125,for FullTilt process 
Gui, add, text, y205 x125,(Dual-core/HT cpu) 
Gui, add, text,cGreen y235 x25,Turning aero theme off (Vista/W7) might help
Gui, add, text,cGreen y250 x25,if these settings don't work.
Gui, Add, Radio, x26 y280 w220 h15 Checked%ActOnActiveTable% vActOnActiveTable, Send actions to active table
Gui, Add, Radio, x26 y295 w220 h15 Checked%sendundermouse% vsendundermouse, Send actions to table under mouse
Gui, add, text, y315 x25, Activate table under mouse
Gui, add, Checkbox, y315 x220 Checked%activatetableundermouse% Vactivatetableundermouse
Gui, add, text, y340 x105, Highlighter on
Gui, add, Checkbox, y340 x180 Checked%Highlight% VHighlight
Gui, Add, Radio, x25 y365 w90 h15 Checked%Highlightdef% vHighlightdef, Highlight table
Gui, Add, Radio, x25 y390 w220 h15 Checked%highlightA% vhighlightA, Highlight all tables with action on hero
Gui, Add,text, y355 x325, 
Gui, Add, Radio, x126 y360 w120 h15 Checked%highlightactive% vhighlightactive, Active
Gui, Add, Radio, x126 y375 w120 h15 Checked%highlighthero% vhighlighthero, With action on hero
Gui, add, text, y420 x25, Move mouse to action buttons
Gui, add, Checkbox, y420 x220 Checked%MoveMouse% VMoveMouse
Gui, add, text, y440 x65, Move mouse from nonfulltilt app
Gui, add, Checkbox, y440 x220 Checked%stealfocus% Vstealfocus
Gui, Add, Button, x75 y465 w55 h20 gSave,Submit
Gui, Add, Button, x135 y465 w55 h20 gCancel,Cancel

Gui, Tab, Global hotkeys

Gui, Add, Text, x25 y75 ,Find table needing action
Gui, Add, Edit, x220 y72 w50 h20 vfindtabletoact, %findtabletoact%
Gui, Add, Text, x25 y115 ,join/unjoin waiting list (main lobby)
Gui, Add, Edit, x220 y112 w50 h20 vregister, %register%
Gui, Add, Text, x25 y140 ,Join waiting list on all tables
Gui, Add, Edit, x220 y137 w50 h20 vjoinwaitlist, %joinwaitlist%
Gui, Add, Text, x25 y165 ,Unjoin waiting list on all tables
Gui, Add, Edit, x220 y162 w50 h20 vunjoinwaitlist, %unjoinwaitlist%
Gui, Add, Text, x25 y215 ,Activate next table
Gui, Add, Edit, x220 y212 w50 h20 vActivateBottomWindow, %ActivateBottomWindow%
Gui, Add, Text, x25 y245 ,Custom layout 1
Gui, Add, Edit, x220 y242 w50 h20 vlayout1, %layout1%
Gui, Add, Text, x25 y265 ,Custom layout 2
Gui, Add, Edit, x220 y262 w50 h20 vlayout2, %layout2%
Gui, Add, Text, x25 y285 ,Custom layout 3
Gui, Add, Edit, x220 y282 w50 h20 vlayout3, %layout3%
Gui, Add, Text, x25 y315 ,Suspend all hotkeys
Gui, Add, Edit, x220 y312 w50 h20 vsuspend, %suspend%
Gui, Add, Text, x25 y335 ,Pause/unpause
Gui, Add, Edit, x220 y332 w50 h20 vTogglePause, %TogglePause%
Gui, Add, Text, x90 y350 , Navigation Hotkeys
Gui, Add, Text, x25 y370 , Up
Gui, Add, Edit, x180 y370 w50 h20 vNextWindow_Up, %NextWindow_Up%
Gui, Add, Text, x25 y390 , Down
Gui, Add, Edit, x180 y390 w50 h20 vNextWindow_Down, %NextWindow_Down%
Gui, Add, Text, x25 y410 , Left
Gui, Add, Edit, x180 y410 w50 h20 vNextWindow_Left, %NextWindow_Left%
Gui, Add, Text, x25 y430 , Right
Gui, Add, Edit, x180 y430 w50 h20 vNextWindow_Right, %NextWindow_Right% 
Gui, Add, Button, x95 y460 w55 h20 gSave,Submit
Gui, Add, Button, x155 y460 w55 h20 gCancel,Cancel

Gui, Tab, Time

Gui, add, Checkbox, y75 x200 Checked%Timebank% VTimebank
Gui, add, text, y75 x25,Click Timebank automatically
Gui, add, Text, w200 y95 x25, Time delay for pressing Time button 
Gui, add, DropDownList, w40 y90 x220  vInterval1, %ddlist%
Gui, add, text, y135 x25, Click "Deal me in" automatically 
Gui, add, Checkbox, y135 x200 Checked%dealmein% Vdealmein
Gui, Add, Text, x25 y155 w120 h20 , Toggle Deal me in
Gui, Add, Edit, x180 y152 w50 h20 vToggledealmein, %Toggledealmein%
Gui, Add, Text, x25 y180 ,Sitout on all tables
Gui, Add, Edit, x180 y177 w50 h20 vSitOutNextAll, %SitOutNextAll%
Gui, Add, Text, x25 y205 ,Remove sitout on all tables
Gui, Add, Edit, x180 y202 w50 h20 vRemoveSitout, %RemoveSitout%
Gui, Add, Text, x25 y235 ,Uncheck Auto-post on all tables
Gui, Add, Edit, x180 y232 w50 h20 vuncheckpost, %uncheckpost%
Gui, Add, Button, x75 y415 w55 h20 gSave,Submit
Gui, Add, Button, x135 y415 w55 h20 gCancel,Cancel

Gui, Tab, Table hotkeys

Gui, Add, Edit, x180 y67 w50 h20 vfold, %fold%
Gui, Add, Text, x25 y70 ,Fold
Gui, Add, Edit, x180 y87 w50 h20 vcall, %call%
Gui, Add, Text, x25 y90 ,Check/Call
Gui, Add, Edit, x180 y107 w50 h20 vraise, %raise%
Gui, Add, Text, x25 y110 ,Bet/Raise
Gui, Add, Edit, x180 y127 w50 h20 vfold2any, %fold2any%
Gui, Add, Text, x25 y130 ,Fold to any
Gui, Add, Edit, x180 y147 w50 h20 vquickfold, %quickfold%
Gui, Add, Text, x25 y150 ,Quick fold (Rush poker)
Gui, Add, Edit, x180 y167 w50 h20 vallin, %allin%
Gui, Add, Text, x25 y170 ,Allin
Gui, add, Checkbox, y170 x240 Checked%Instant% VInstant,Instant
Gui, Add, Button, x75 y315 w55 h20 gSave,Submit
Gui, Add, Button, x135 y315 w55 h20 gCancel,Cancel

Gui, Tab, Buy-in

Gui, add, Checkbox, y60 x90 Checked%Buyin% VBuyin
Gui, add, text, y60 x25,Auto Buy-in
Gui, Add, Radio, x120 y50 w100 h20 Checked%max% vmax, Maximum
Gui, Add, Radio, x120 y70 w120 h20 Checked%remembered% vremembered, Remembered/default
Gui, Add, Radio, x120 y90 w20 h20 Checked%xbb% vxbb
Gui, Add, Edit, x140 y90 w30 h20 vbbmultiplier, %bbmultiplier%
Gui, Add, Text, x170 y93,BB
Gui, add, Checkbox, y120 x190 Checked%TakeSeat% VTakeSeat
Gui, add, text, y120 x25,Auto Take Seat (from waiting list)
Gui, add, Checkbox, y165 x190 Checked%autoTakeSeat% VautoTakeSeat
Gui, add, text, y165 x25,Auto Seat on new table
Gui, add, Checkbox, y190 x190 Checked%leavetable% Vleavetable
Gui, add, text, y190 x25,Auto leaving table confirmation
Gui, Add, Text, x26 y265 ,Limit total number of tables to
Gui, Add, Edit, x170 y262 w30 h20 vtotalnumber, %totalnumber%
Gui, add, Checkbox, y265 x230 Checked%limit% Vlimit
Gui, Add, Text, x16 y285 ,additionally press following button in seat available window:
Gui, Add, Radio, x26 y305 w220 h15 Checked%remove% vremove, Remove me from all waiting lists
Gui, Add, Radio, x26 y320 w220 h15 Checked%pressno% vpressno, No
Gui, Add, Radio, x26 y335 w220 h15 Checked%pressnotyet% vpressnotyet, Not yet
Gui, add, Checkbox, y390 x250 Checked%closeOKwindow% VcloseOKwindow
Gui, add, text, y390 x25,Close FullTilt windows with just OK button
Gui, Add, Button, x75 y435 w55 h20 gSave,Submit
Gui, Add, Button, x135 y435 w55 h20 gCancel,Cancel

Gui, Tab, BetPot

Gui, add, Checkbox, y55 x180 Checked%autopot% Vautopot
Gui, add, text, y55 x25,Auto put bet into bet box
Gui, Add, Text, x15 y70 ,Pre*
Gui, Add, Edit, x15 y85 w25 h20 vPotDefPre, %PotDefPre%
Gui, Add, Text, x45 y70 ,Flop*
Gui, Add, Edit, x45 y85 w25 h20 vPotDefFlop, %PotDefFlop%
Gui, Add, Text, x75 y70 ,Turn*
Gui, Add, Edit, x75 y85 w25 h20 vPotDefTurn, %PotDefTurn%
Gui, Add, Text, x105 y70 ,River*
Gui, Add, Edit, x105 y85 w25 h20 vPotDefRiver, %PotDefRiver%
Gui, Add, Text, x140 y70 ,Open
Gui, add, DropDownList, w45 y85 x140  vOpenDef, %ddlist1%
Gui, Add, Text, x175 y70 ,Round(sb)
Gui, add, Checkbox, y85 x200 Checked%RoundDef% VRoundDef
Gui, Add, Text, x230 y70 ,Fix blinds
Gui, add, Checkbox, y85 x250 Checked%FixDef% VFixDef
Gui, Add, Edit, x60 y107 w80 h20 vpot1, %pot1%
Gui, Add, Text, x15 y110 ,Pot1
Gui, Add, Text, x15 y130 ,Pre*
Gui, Add, Edit, x15 y145 w25 h20 vPot1Pre, %Pot1Pre%
Gui, Add, Text, x45 y130 ,Flop*
Gui, Add, Edit, x45 y145 w25 h20 vPot1Flop, %Pot1Flop%
Gui, Add, Text, x75 y130 ,Turn*
Gui, Add, Edit, x75 y145 w25 h20 vPot1Turn, %Pot1Turn%
Gui, Add, Text, x105 y130 ,River*
Gui, Add, Edit, x105 y145 w25 h20 vPot1River, %Pot1River%
Gui, Add, Text, x140 y130 ,Open
Gui, add, DropDownList, w45 y145 x140  vOpen1, %ddlist1%
Gui, Add, Text, x175 y130 ,Round(sb)
Gui, add, Checkbox, y145 x200 Checked%Round1% VRound1
Gui, Add, Text, x230 y130 ,Fix blinds
Gui, add, Checkbox, y145 x250 Checked%Fix1% VFix1
Gui, Add, Edit, x60 y167 w80 h20 vpot2, %pot2%
Gui, Add, Text, x15 y170 ,Pot2
Gui, Add, Edit, x15 y190 w25 h20 vPot2Pre, %Pot2Pre%
Gui, Add, Edit, x45 y190 w25 h20 vPot2Flop, %Pot2Flop%
Gui, Add, Edit, x75 y190 w25 h20 vPot2Turn, %Pot2Turn%
Gui, Add, Edit, x105 y190 w25 h20 vPot2River, %Pot2River%
Gui, add, DropDownList, w45 y190 x140  vOpen2, %ddlist1%
Gui, add, Checkbox, y190 x200 Checked%Round2% VRound2
Gui, add, Checkbox, y190 x250 Checked%Fix2% VFix2
Gui, Add, Edit, x60 y212 w80 h20 vpot3, %pot3%
Gui, Add, Text, x15 y215 ,Pot3
Gui, Add, Edit, x15 y235 w25 h20 vPot3Pre, %Pot3Pre%
Gui, Add, Edit, x45 y235 w25 h20 vPot3Flop, %Pot3Flop%
Gui, Add, Edit, x75 y235 w25 h20 vPot3Turn, %Pot3Turn%
Gui, Add, Edit, x105 y235 w25 h20 vPot3River, %Pot3River%
Gui, add, DropDownList, w45 y235 x140  vOpen3, %ddlist1%
Gui, add, Checkbox, y235 x200 Checked%Round3% VRound3
Gui, add, Checkbox, y235 x250 Checked%Fix3% VFix3
Gui, add, Checkbox, y260 x210 Checked%autobet% Vautobet
Gui, add, text, y260 x55,Additionally press bet button
Gui, Add, Edit, x80 y282 w40 h20 vincr1, %incr1%
Gui, Add, Text, x15 y285 ,Increase by
Gui, Add, Radio, x125 y280 w40 h15 Checked%bb1% vbb1,bb
Gui, Add, Radio, x125 y295 w40 h15 Checked%sb1% vsb1,sb
Gui, Add, Edit, x190 y282 w80 h20 valt1, %alt1%
Gui, Add, Edit, x80 y312 w40 h20 vincr2, %incr2%
Gui, Add, Text, x15 y315 ,Decrease by
Gui, Add, Radio, x125 y310 w40 h15 Checked%bb2% vbb2,bb
Gui, Add, Radio, x125 y325 w40 h15 Checked%sb2% vsb2,sb
Gui, Add, Edit, x190 y312 w80 h20 valt2, %alt2%
Gui, Add, Edit, x80 y342 w40 h20 vincr3, %incr3%
Gui, Add, Text, x15 y345 ,Increase by
Gui, Add, Radio, x125 y340 w40 h15 Checked%bb3% vbb3,bb
Gui, Add, Radio, x125 y355 w40 h15 Checked%sb3% vsb3,sb
Gui, Add, Edit, x190 y342 w80 h20 valt3, %alt3%
Gui, Add, Edit, x80 y372 w40 h20 vincr4, %incr4%
Gui, Add, Text, x15 y375 ,Decrease by
Gui, Add, Radio, x125 y370 w40 h15 Checked%bb4% vbb4,bb
Gui, Add, Radio, x125 y385 w40 h15 Checked%sb4% vsb4,sb
Gui, Add, Edit, x190 y372 w80 h20 valt4, %alt4%
Gui, Add, Text, x15 y400 ,Attempts to read Pot amount from screen
Gui, Add, Edit, x230 y397 w25 h20 vattempts, %attempts%
Gui, Add, Text, x15 y420 ,* Pot percent
Gui, add, text,cRed y440 x35,BetPot function will work faster with aero theme off
Gui, Add, Button, x75 y460 w55 h20 gSave,Submit
Gui, Add, Button, x135 y460 w55 h20 gCancel,Cancel

Gosub, GetIni
Gui, show, w316, %thisahk%
Return
;-----------------------------------------------------------------------------------------------------
GetIni:
Settitlematchmode,2
IfNotExist, %thisahk%.ini
gosub, CreateIni
IniRead, ClassicTheme,%thisahk%.ini, Options, ClassicTheme,0
IniRead, Racetrack,%thisahk%.ini, Options, Racetrack,0
IniRead, ActOnActiveTable, %thisahk%.ini, Options, ActOnActiveTable, 0
IniRead, sendundermouse, %thisahk%.ini, Options, sendundermouse, 0
IniRead, activatetableundermouse, %thisahk%.ini, Settings, activatetableundermouse, 0
IniRead, Highlight, %thisahk%.ini, Settings, Highlight, 0
IniRead, Highlightdef, %thisahk%.ini, Options, Highlightdef, 0
IniRead, HighlightA, %thisahk%.ini, Options, HighlightA, 0
IniRead, highlighthero, %thisahk%.ini, Options, highlighthero, 0
IniRead, highlightactive, %thisahk%.ini, Options, highlightactive, 0
IniRead, MoveMouse, %thisahk%.ini, Settings, MoveMouse, 0
IniRead, stealfocus, %thisahk%.ini, Settings, stealfocus, 0

IniRead, Interval1, %thisahk%.ini, Settings, Interval1
StringReplace, ddlist, ddlist, %interval1%, %Interval1%|
GuiControl, , Interval1, |%ddlist%
StringReplace, ddlist, ddlist, %interval1%|, %Interval1%
IniRead, flicker1, %thisahk%.ini, Settings, flicker1, 0
IniRead, flicker2, %thisahk%.ini, Settings, flicker2, 0
IniRead, dealmein, %thisahk%.ini, Settings, dealmein, 0
IniRead, Toggledealmein, %thisahk%.ini, Settings, Toggledealmein,%A_Space%
If Toggledealmein
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %Toggledealmein%, Toggledealmein
}
IniRead, Timebank, %thisahk%.ini, Settings, Timebank, 0
IniRead, SitOutNextAll, %thisahk%.ini, Hotkeys, SitOutNextAll,%A_Space%
IniRead, RemoveSitout, %thisahk%.ini, Hotkeys, RemoveSitout,%A_Space%
IniRead, uncheckpost, %thisahk%.ini, Hotkeys, uncheckpost,%A_Space%
if SitOutNextAll
Hotkey, %SitOutNextAll%,SitOutNextAll
if RemoveSitout
Hotkey, %RemoveSitout%,RemoveSitout
if uncheckpost
Hotkey, %uncheckpost%,uncheckpost

IniRead, findtabletoact, %thisahk%.ini, Hotkeys, findtabletoact,%A_Space%
if findtabletoact
Hotkey, %findtabletoact%,findtabletoact
IniRead, register, %thisahk%.ini, Settings, register,%A_Space%
IniRead, joinwaitlist, %thisahk%.ini, Settings, joinwaitlist,%A_Space%
IniRead, Unjoinwaitlist, %thisahk%.ini, Settings, Unjoinwaitlist,%A_Space%
if register
Hotkey, %register%,register
if joinwaitlist
Hotkey, %joinwaitlist%,joinwaitlist
if Unjoinwaitlist
Hotkey, %Unjoinwaitlist%,Unjoinwaitlist
IniRead, ActivateBottomWindow, %thisahk%.ini, Hotkeys, ActivateBottomWindow,%A_Space%
if ActivateBottomWindow
Hotkey, %ActivateBottomWindow%,ActivateBottomWindow
IniRead, suspend, %thisahk%.ini, Hotkeys, suspend,%A_Space%
if suspend
Hotkey, %suspend%,suspend
IniRead, TogglePause, %thisahk%.ini, Hotkeys, TogglePause,%A_Space%
if TogglePause
Hotkey, %TogglePause%,TogglePause
IniRead, layout1, %thisahk%.ini, Hotkeys, layout1,%A_Space%
if layout1
Hotkey, %layout1%,layout1
IniRead, layout2, %thisahk%.ini, Hotkeys, layout2,%A_Space%
if layout2
Hotkey, %layout2%,layout2
IniRead, layout3, %thisahk%.ini, Hotkeys, layout3,%A_Space%
if layout3
Hotkey, %layout3%,layout3
IniRead, NextWindow_Up,%thisahk%.ini, Hotkeys, NextWindow_Up,%A_Space%
IniRead, NextWindow_Down,%thisahk%.ini, Hotkeys, NextWindow_Down,%A_Space%
IniRead, NextWindow_Left,%thisahk%.ini, Hotkeys, NextWindow_Left,%A_Space%
IniRead, NextWindow_Right,%thisahk%.ini, Hotkeys, NextWindow_Right,%A_Space%
if NextWindow_Up
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %NextWindow_Up%, NextWindow_Up
}
if NextWindow_Down
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %NextWindow_Down%, NextWindow_Down
}
if NextWindow_Left
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %NextWindow_Left%, NextWindow_Left
}
if NextWindow_Right
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %NextWindow_Right%, NextWindow_Right
}
IniRead, fold, %thisahk%.ini, Hotkeys, fold,%A_Space%
IniRead, call, %thisahk%.ini, Hotkeys, call,%A_Space%
IniRead, raise, %thisahk%.ini, Hotkeys, raise,%A_Space%
IniRead, fold2any, %thisahk%.ini, Hotkeys, fold2any,%A_Space%
IniRead, quickfold, %thisahk%.ini, Hotkeys, quickfold,%A_Space%
IniRead, allin, %thisahk%.ini, Hotkeys, allin,%A_Space%
if fold
{
HotKey, IfWinActive
Hotkey, %fold%,fold
}
if call
{
HotKey, IfWinActive
Hotkey, %call%,call
}
if raise
{
HotKey, IfWinActive
Hotkey, %raise%,raise
}
if fold2any
{
HotKey, IfWinActive
Hotkey, %fold2any%,fold2any
}
if quickfold
{
HotKey, IfWinActive
Hotkey, %quickfold%,quickfold
}
if allin
{
HotKey, IfWinActive
Hotkey, %allin%,allin
}
IniRead, Instant, %thisahk%.ini, Settings, Instant, 0

IniRead, totalnumber, %thisahk%.ini, Variables, totalnumber, 0
IniRead, limit, %thisahk%.ini, Settings, limit, 0
IniRead, remove,%thisahk%.ini, Options, remove,0
IniRead, pressno,%thisahk%.ini, Options, pressno,0
IniRead, pressnotyet,%thisahk%.ini, Options, pressnotyet,0
IniRead, TakeSeat, %thisahk%.ini, Settings, TakeSeat, 0
IniRead, autoTakeSeat, %thisahk%.ini, Settings, autoTakeSeat, 0
IniRead, closeOKwindow, %thisahk%.ini, Settings, closeOKwindow, 0
IniRead, Buyin, %thisahk%.ini, Settings, Buyin, 0
IniRead, max, %thisahk%.ini, Settings, max, 0
IniRead, remembered, %thisahk%.ini, Settings, remembered, 0
IniRead, xbb, %thisahk%.ini, Settings, xbb, 0
IniRead, bbmultiplier, %thisahk%.ini, Variables, bbmultiplier,0
IniRead, leavetable, %thisahk%.ini, Settings, leavetable,0
IniRead, OpenDef, %thisahk%.ini, BetPotSettings, OpenDef
StringReplace, ddlist1, ddlist1, %OpenDef%, %OpenDef%|
GuiControl, , OpenDef, |%ddlist1%
StringReplace, ddlist1, ddlist1, %OpenDef%|, %OpenDef%
IniRead, RoundDef, %thisahk%.ini, BetPotSettings, RoundDef, 0
IniRead, FixDef, %thisahk%.ini, BetPotSettings, FixDef, 0
IniRead, PotDefPre, %thisahk%.ini, BetPotSettings, PotDefPre, 0
IniRead, PotDefFlop, %thisahk%.ini, BetPotSettings, PotDefFlop, 0
IniRead, PotDefTurn, %thisahk%.ini, BetPotSettings, PotDefTurn, 0
IniRead, PotDefRiver, %thisahk%.ini, BetPotSettings, PotDefRiver, 0
IniRead, Open1, %thisahk%.ini, BetPotSettings, Open1
StringReplace, ddlist1, ddlist1, %Open1%, %Open1%|
GuiControl, , Open1, |%ddlist1%
StringReplace, ddlist1, ddlist1, %Open1%|, %Open1%
IniRead, Round1, %thisahk%.ini, BetPotSettings, Round1, 0
IniRead, Fix1, %thisahk%.ini, BetPotSettings, Fix1, 0
IniRead, Pot1Pre, %thisahk%.ini, BetPotSettings, Pot1Pre, 0
IniRead, Pot1Flop, %thisahk%.ini, BetPotSettings, Pot1Flop, 0
IniRead, Pot1Turn, %thisahk%.ini, BetPotSettings, Pot1Turn, 0
IniRead, Pot1River, %thisahk%.ini, BetPotSettings, Pot1River, 0
IniRead, pot1, %thisahk%.ini, BetPotHotkeys, pot1,%A_Space%
if pot1
{
HotKey, IfWinActive
Hotkey, %pot1%,pot1
}
IniRead, Open2, %thisahk%.ini, BetPotSettings, Open2
StringReplace, ddlist1, ddlist1, %Open2%, %Open2%|
GuiControl, , Open2, |%ddlist1%
StringReplace, ddlist1, ddlist1, %Open2%|, %Open2%
IniRead, Round2, %thisahk%.ini, BetPotSettings, Round2, 0
IniRead, Fix2, %thisahk%.ini, BetPotSettings, Fix2, 0
IniRead, Pot2Pre, %thisahk%.ini, BetPotSettings, Pot2Pre, 0
IniRead, Pot2Flop, %thisahk%.ini, BetPotSettings, Pot2Flop, 0
IniRead, Pot2Turn, %thisahk%.ini, BetPotSettings, Pot2Turn, 0
IniRead, Pot2River, %thisahk%.ini, BetPotSettings, Pot2River, 0
IniRead, pot2, %thisahk%.ini, BetPotHotkeys, pot2,%A_Space%
if pot2
{
HotKey, IfWinActive
Hotkey, %pot2%,pot2
}
IniRead, Open3, %thisahk%.ini, BetPotSettings, Open3
StringReplace, ddlist1, ddlist1, %Open3%, %Open3%|
GuiControl, , Open3, |%ddlist1%
StringReplace, ddlist1, ddlist1, %Open3%|, %Open3%
IniRead, Round3, %thisahk%.ini, BetPotSettings, Round3, 0
IniRead, Fix3, %thisahk%.ini, BetPotSettings, Fix3, 0
IniRead, Pot3Pre, %thisahk%.ini, BetPotSettings, Pot3Pre, 0
IniRead, Pot3Flop, %thisahk%.ini, BetPotSettings, Pot3Flop, 0
IniRead, Pot3Turn, %thisahk%.ini, BetPotSettings, Pot3Turn, 0
IniRead, Pot3River, %thisahk%.ini, BetPotSettings, Pot3River, 0
IniRead, pot3, %thisahk%.ini, BetPotHotkeys, pot3,%A_Space%
if pot3
{
HotKey, IfWinActive
Hotkey, %pot3%,pot3
}
IniRead, incr1, %thisahk%.ini, BetPotSettings, incr1, 0
IniRead, bb1, %thisahk%.ini, BetPotSettings, bb1, 0
IniRead, sb1, %thisahk%.ini, BetPotSettings, sb1, 0
IniRead, alt1, %thisahk%.ini, BetPotHotkeys, alt1, %A_Space%
if alt1
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %alt1%,alt1
}
IniRead, incr2, %thisahk%.ini, BetPotSettings, incr2, 0
IniRead, bb2, %thisahk%.ini, BetPotSettings, bb2, 0
IniRead, sb2, %thisahk%.ini, BetPotSettings, sb2, 0
IniRead, alt2, %thisahk%.ini, BetPotHotkeys, alt2, %A_Space%
if alt2
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %alt2%,alt2
}
IniRead, incr3, %thisahk%.ini, BetPotSettings, incr3, 0
IniRead, bb3, %thisahk%.ini, BetPotSettings, bb3, 0
IniRead, sb3, %thisahk%.ini, BetPotSettings, sb3, 0
IniRead, alt3, %thisahk%.ini, BetPotHotkeys, alt3, %A_Space%
if alt3
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %alt3%,alt3
}
IniRead, incr4, %thisahk%.ini, BetPotSettings, incr4, 0
IniRead, bb4, %thisahk%.ini, BetPotSettings, bb4, 0
IniRead, sb4, %thisahk%.ini, BetPotSettings, sb4, 0
IniRead, alt4, %thisahk%.ini, BetPotHotkeys, alt4, %A_Space%
if alt4
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %alt4%,alt4
}
IniRead, autopot, %thisahk%.ini, BetPotSettings, autopot, 0
IniRead, autobet, %thisahk%.ini, BetPotSettings, autobet, 0
IniRead, attempts, %thisahk%.ini, BetPotVariables, attempts, 0
Return
;-----------------------------------------------------------------------------------------------------
MakeIni:
If ClassicTheme
IniWrite, %ClassicTheme%, %thisahk%.ini, Options, ClassicTheme
If Racetrack
IniWrite, %Racetrack%, %thisahk%.ini, Options, Racetrack
if ActOnActiveTable
IniWrite, %ActOnActiveTable%, %thisahk%.ini, Options, ActOnActiveTable
if sendundermouse
IniWrite, %sendundermouse%, %thisahk%.ini, Options, sendundermouse
IniWrite, %activatetableundermouse%, %thisahk%.ini, Settings, activatetableundermouse
IniWrite, %Highlight%, %thisahk%.ini, Settings, Highlight
if Highlightdef
IniWrite, %Highlightdef%, %thisahk%.ini, Options, Highlightdef
if HighlightA
IniWrite, %HighlightA%, %thisahk%.ini, Options, HighlightA
if highlighthero
IniWrite, %highlighthero%, %thisahk%.ini, Options, highlighthero
if highlightactive
IniWrite, %highlightactive%, %thisahk%.ini, Options, highlightactive
IniWrite, %MoveMouse%, %thisahk%.ini, Settings, MoveMouse
IniWrite, %stealfocus%, %thisahk%.ini, Settings, stealfocus
IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1
IniWrite, %flicker1%, %thisahk%.ini, Settings, flicker1
IniWrite, %flicker2%, %thisahk%.ini, Settings, flicker2
IniWrite, %dealmein%, %thisahk%.ini, Settings, dealmein
if Toggledealmein
IniWrite, %Toggledealmein%, %thisahk%.ini, Settings, Toggledealmein
IniWrite, %Timebank%, %thisahk%.ini, Settings, Timebank
if SitOutNextAll
IniWrite, %SitOutNextAll%, %thisahk%.ini, Hotkeys, SitOutNextAll
if RemoveSitout
IniWrite, %RemoveSitout%, %thisahk%.ini, Hotkeys, RemoveSitout
if uncheckpost
IniWrite, %uncheckpost%, %thisahk%.ini, Hotkeys, uncheckpost

if findtabletoact
IniWrite, %findtabletoact%, %thisahk%.ini, Hotkeys, findtabletoact
if register
IniWrite, %register%, %thisahk%.ini, Settings, register
if joinwaitlist
IniWrite, %joinwaitlist%, %thisahk%.ini, Settings, joinwaitlist
if Unjoinwaitlist
IniWrite, %Unjoinwaitlist%, %thisahk%.ini, Settings, Unjoinwaitlist
if ActivateBottomWindow
IniWrite, %ActivateBottomWindow%, %thisahk%.ini, Hotkeys, ActivateBottomWindow
if suspend
IniWrite, %suspend%, %thisahk%.ini, Hotkeys, suspend
if TogglePause
IniWrite, %TogglePause%, %thisahk%.ini, Hotkeys, TogglePause
if layout1
IniWrite, %layout1%, %thisahk%.ini, Hotkeys, layout1
if layout2
IniWrite, %layout2%, %thisahk%.ini, Hotkeys, layout2
if layout3
IniWrite, %layout3%, %thisahk%.ini, Hotkeys, layout3
If NextWindow_Up
IniWrite, %NextWindow_Up%, %thisahk%.ini, Hotkeys, NextWindow_Up
If NextWindow_Down
IniWrite, %NextWindow_Down%, %thisahk%.ini, Hotkeys, NextWindow_Down
If NextWindow_Left
IniWrite, %NextWindow_Left%, %thisahk%.ini, Hotkeys, NextWindow_Left
If NextWindow_Right
IniWrite, %NextWindow_Right%, %thisahk%.ini, Hotkeys, NextWindow_Right 

if fold
IniWrite, %fold%, %thisahk%.ini, Hotkeys, fold
if call
IniWrite, %call%, %thisahk%.ini, Hotkeys, call
if raise
IniWrite, %raise%, %thisahk%.ini, Hotkeys, raise
if fold2any
IniWrite, %fold2any%, %thisahk%.ini, Hotkeys, fold2any
if quickfold
IniWrite, %quickfold%, %thisahk%.ini, Hotkeys, quickfold
if allin
IniWrite, %allin%, %thisahk%.ini, Hotkeys, allin
IniWrite, %Instant%, %thisahk%.ini, Settings, Instant

IniWrite, %totalnumber%, %thisahk%.ini, Variables, totalnumber
IniWrite, %limit%, %thisahk%.ini, Settings, limit
If remove
IniWrite, %remove%, %thisahk%.ini, Options, remove
If pressno
IniWrite, %pressno%, %thisahk%.ini, Options, pressno
If pressnotyet
IniWrite, %pressnotyet%, %thisahk%.ini, Options, pressnotyet
IniWrite, %TakeSeat%, %thisahk%.ini, Settings, TakeSeat
IniWrite, %autoTakeSeat%, %thisahk%.ini, Settings, autoTakeSeat
IniWrite, %closeOKwindow%, %thisahk%.ini, Settings, closeOKwindow
IniWrite, %Buyin%, %thisahk%.ini, Settings, Buyin
if max
IniWrite, %max%, %thisahk%.ini, Settings, max
if remembered
IniWrite, %remembered%, %thisahk%.ini, Settings, remembered
if xbb
IniWrite, %xbb%, %thisahk%.ini, Settings, xbb
IniWrite, %bbmultiplier%, %thisahk%.ini, Variables, bbmultiplier
IniWrite, %leavetable%, %thisahk%.ini, Settings, leavetable

IniWrite, %OpenDef%, %thisahk%.ini, BetPotSettings, OpenDef
IniWrite, %RoundDef%, %thisahk%.ini, BetPotSettings, RoundDef
IniWrite, %FixDef%, %thisahk%.ini, BetPotSettings, FixDef
IniWrite, %PotDefPre%, %thisahk%.ini, BetPotSettings, PotDefPre
IniWrite, %PotDefFlop%, %thisahk%.ini, BetPotSettings, PotDefFlop
IniWrite, %PotDefTurn%, %thisahk%.ini, BetPotSettings, PotDefTurn
IniWrite, %PotDefRiver%, %thisahk%.ini, BetPotSettings, PotDefRiver
IniWrite, %Open1%, %thisahk%.ini, BetPotSettings, Open1
IniWrite, %Round1%, %thisahk%.ini, BetPotSettings, Round1
IniWrite, %Fix1%, %thisahk%.ini, BetPotSettings, Fix1
IniWrite, %Pot1Pre%, %thisahk%.ini, BetPotSettings, Pot1Pre
IniWrite, %Pot1Flop%, %thisahk%.ini, BetPotSettings, Pot1Flop
IniWrite, %Pot1Turn%, %thisahk%.ini, BetPotSettings, Pot1Turn
IniWrite, %Pot1River%, %thisahk%.ini, BetPotSettings, Pot1River
if pot1
IniWrite, %pot1%, %thisahk%.ini, BetPotHotkeys, pot1
IniWrite, %Open2%, %thisahk%.ini, BetPotSettings, Open2
IniWrite, %Round2%, %thisahk%.ini, BetPotSettings, Round2
IniWrite, %Fix2%, %thisahk%.ini, BetPotSettings, Fix2
IniWrite, %Pot2Pre%, %thisahk%.ini, BetPotSettings, Pot2Pre
IniWrite, %Pot2Flop%, %thisahk%.ini, BetPotSettings, Pot2Flop
IniWrite, %Pot2Turn%, %thisahk%.ini, BetPotSettings, Pot2Turn
IniWrite, %Pot2River%, %thisahk%.ini, BetPotSettings, Pot2River
if pot2
IniWrite, %pot2%, %thisahk%.ini, BetPotHotkeys, pot2
IniWrite, %Open3%, %thisahk%.ini, BetPotSettings, Open3
IniWrite, %Round3%, %thisahk%.ini, BetPotSettings, Round3
IniWrite, %Fix3%, %thisahk%.ini, BetPotSettings, Fix3
IniWrite, %Pot3Pre%, %thisahk%.ini, BetPotSettings, Pot3Pre
IniWrite, %Pot3Flop%, %thisahk%.ini, BetPotSettings, Pot3Flop
IniWrite, %Pot3Turn%, %thisahk%.ini, BetPotSettings, Pot3Turn
IniWrite, %Pot3River%, %thisahk%.ini, BetPotSettings, Pot3River
if pot3
IniWrite, %pot3%, %thisahk%.ini, BetPotHotkeys, pot3
IniWrite, %incr1%, %thisahk%.ini, BetPotSettings, incr1
if bb1
IniWrite, %bb1%, %thisahk%.ini, BetPotSettings, bb1
if sb1
IniWrite, %sb1%, %thisahk%.ini, BetPotSettings, sb1
if alt1
IniWrite, %alt1%, %thisahk%.ini, BetPotHotkeys, alt1
IniWrite, %incr2%, %thisahk%.ini, BetPotSettings, incr2
if bb2
IniWrite, %bb2%, %thisahk%.ini, BetPotSettings, bb2
if sb2
IniWrite, %sb2%, %thisahk%.ini, BetPotSettings, sb2
if alt2
IniWrite, %alt2%, %thisahk%.ini, BetPotHotkeys, alt2
IniWrite, %incr3%, %thisahk%.ini, BetPotSettings, incr3
if bb3
IniWrite, %bb3%, %thisahk%.ini, BetPotSettings, bb3
if sb3
IniWrite, %sb3%, %thisahk%.ini, BetPotSettings, sb3
if alt3
IniWrite, %alt3%, %thisahk%.ini, BetPotHotkeys, alt3
IniWrite, %incr4%, %thisahk%.ini, BetPotSettings, incr4
if bb4
IniWrite, %bb4%, %thisahk%.ini, BetPotSettings, bb4
if sb4
IniWrite, %sb4%, %thisahk%.ini, BetPotSettings, sb4
if alt4
IniWrite, %alt4%, %thisahk%.ini, BetPotHotkeys, alt4
IniWrite, %autopot%, %thisahk%.ini, BetPotSettings, autopot
IniWrite, %autobet%, %thisahk%.ini, BetPotSettings, autobet
IniWrite, %attempts%, %thisahk%.ini, BetPotVariables, attempts
Return
;-----------------------------------------------------------------------------------------------------
CreateIni:
Racetrack:=0
ClassicTheme:=1
ActOnActiveTable:=1
sendundermouse:=0
activatetableundermouse:=0
Highlight:=0
Highlightdef:=1
HighlightA:=0
highlightactive:=1
highlighthero:=0
MoveMouse:=0
stealfocus:=1

flicker1:=1
flicker2:=0
Interval1:=1
dealmein:=0
Timebank:=0

Instant:=0

register=^r
NextWindow_Up=Up
NextWindow_Down=Down
NextWindow_Left=Left
NextWindow_Right=Right

limit:=0
remove:=0
pressno:=0
pressnotyet:=1
totalnumber:=12
TakeSeat:=0
autoTakeSeat:=0
closeOKwindow:=1
Buyin:=0
remembered:=1
bbmultiplier:=40

autopot:=0
autobet:=0
OpenDef=ssnl
Open1=ssnl
Open2=trny
Open3=----
RoundDef:=1
Round1:=1
Round2:=1
Round3:=1
fixDef:=1
fix1:=1
fix2:=1
fix3:=1
PotDefPre:=75
PotDefFlop:=75
PotDefTurn:=66
PotDefRiver:=66
Pot1Pre:=75
Pot1Flop:=75
Pot1Turn:=66
Pot1River:=66
Pot2Pre:=100
Pot2Flop:=80
Pot2Turn:=80
Pot2River:=80
Pot3Pre:=100
Pot3Flop:=100
Pot3Turn:=100
Pot3River:=100
Pot1=mbutton
Pot2=xbutton1
Pot3=xbutton2
incr1:=1
incr2:=1
incr3:=1
incr4:=1
bb1:=1
sb1:=0
bb2:=1
sb2:=0
bb3:=0
sb3:=1
bb4:=0
sb4:=1
alt1=wheelup
alt2=wheeldown
alt3=^wheelup
alt4=^wheeldown
attempts:=1

gosub, MakeIni
gosub, buildgui
return
;-----------------------------------------------------------------------------------------------------
GuiClose:
gosub, cancel
return
;-----------------------------------------------------------------------------------------------------
menuGui:
gosub, getini
winget,id,id, %thisahk% ahk_class AutoHotkeyGUI
if !DllCall( "IsWindowVisible", "UInt",id)
gosub, buildgui
else
winactivate,ahk_id%id%
Gui, Submit,nohide
return
;-----------------------------------------------------------------------------------------------------
reload:
reload
return
;-----------------------------------------------------------------------------------------------------
Save:
Gui, Submit
FileDelete, %thisahk%.ini
gosub, MakeIni
Reload
return
;-----------------------------------------------------------------------------------------------------
Cancel:
Gui, Destroy
Return
;-----------------------------------------------------------------------------------------------------
TogglePause:
pause,toggle
return
;-----------------------------------------------------------------------------------------------------
Suspend:
suspend
if A_IsSuspended=0
{
 T=Off
}
else
{
 T=On
}
Gui, 13:Add, Text,,Suspend: %T%
Gui, 13:+ToolWindow
Gui, 13:Show, w150 h20
Sleep, 1500
Gui, 13:Destroy
return
;-----------------------------------------------------------------------------------------------------
Edit:
edit
return
;-----------------------------------------------------------------------------------------------------
exitSub:
DllCall( "gdi32.dll\ReleaseDC", "Uint", tmp_buffer )
DllCall( "gdi32.dll\DeleteDC", "Uint", tmp_buffer )
DllCall( "gdi32.dll\DeleteObject","Uint",hbm_buffer)
DllCall( "gdi32.dll\ReleaseDC","Uint",hdc_buffer)
DllCall( "gdi32.dll\DeleteDC","Uint",hdc_buffer)
DllCall( "gdi32.dll\ReleaseDC","Uint",hdc_frame)
DllCall( "gdi32.dll\DeleteDC","Uint",hdc_frame)
if flicker1
{
Process, Exist, FullTiltPoker.exe
if (ErrorLevel)
{
  FTP := ErrorLevel
  Process, Priority, %FTP%, Normal
}
}
exitApp
return
;-----------------------------------------------------------------------------------------------------
or from this link http://depositfiles.com/files/n0j4h4mz3
FTCash - free script for FullTilt cash players. Quote
06-26-2010 , 08:25 AM
Quote:
Originally Posted by Max1mums
jds1201, what's wrong exactly? Using "ssnl" adjustment and 100%pot will always give you 4xbb preflop open raise, mix=3xbb, trny=2.5xbb, changing pot percentage will change raise amount, formula for all other cases is
Code:
pot := ((pot + call)* (frac)) + call
yeah i am sure it is just my understanding of the ssnl, trny, and mix adjustments that is confusing me. i just expected that formula to be the formula preflop too and that the ssnl only adjusted if there were previous limpers.

i will reread the docs for bet pot and am sure i will be fine.

thanks again
FTCash - free script for FullTilt cash players. Quote
06-26-2010 , 12:25 PM
not only did max1mums fix this problem i had above, but i had another problem that he solved after a bunch of PMs out of the thread.

high recommendation for using this and shipping max a donation instead of paying what i think are very high fees for TNFT. at least for the functionality i use, this works just as well if not better. great product and great service especially for a free product.
FTCash - free script for FullTilt cash players. Quote
06-28-2010 , 02:48 PM
Quote:
Originally Posted by Max1mums
Try running script as admin and/or using basic theme.
Lots of functions are still not working, does it matter i use a custom theme?
FTCash - free script for FullTilt cash players. Quote
06-28-2010 , 03:12 PM
tcs, background should be more or less monotone that's all i guess. It can be lack of administrator privileges issue.
FTCash - free script for FullTilt cash players. Quote
06-28-2010 , 04:45 PM
Quote:
Originally Posted by Max1mums
tcs, background should be more or less monotone that's all i guess. It can be lack of administrator privileges issue.
I just did that and most of it seems to work. will update if anything doesnt

cheers for the help btw
FTCash - free script for FullTilt cash players. Quote
06-29-2010 , 12:57 AM
this is great work my man. i hope you get lots of donations.
after i clear the midyear bonus (50$ bonus yay, i am lazy ^^ ) i will ship you little somthing something.
FTCash - free script for FullTilt cash players. Quote
06-29-2010 , 04:54 AM
Good luck then )
FTCash - free script for FullTilt cash players. Quote
06-29-2010 , 11:07 PM
Is there any way to get the table to highlight on the outer border of the table like FTninja does?
FTCash - free script for FullTilt cash players. Quote
06-30-2010 , 05:14 AM
crovax4444, rightclick script icon and choose edit, search for "outer" word, comment 4 lines above and uncomment 4 lines below.
FTCash - free script for FullTilt cash players. Quote
06-30-2010 , 08:27 PM
Im struggling with the bet pot functions. If anyone could point me in the direction of the documentation i would appreciate it. I tried searching but mustnt have been doing it right.

Specifically, I don't understand what the Pot1, Pot2 and Pot3 settings are for, and if it is possible to round to big blind instead of small blind.
FTCash - free script for FullTilt cash players. Quote
07-01-2010 , 05:06 AM
Am I the only one who seems to have issues with this script on the deep ante tables? It works fine preflop, but for some reason postflop it stops working. Every other table is fine.

PM me your FTP sn too Max so I can donate to the cause. We really appreciate the work you've put into this.
FTCash - free script for FullTilt cash players. Quote
07-01-2010 , 05:58 AM
Aidan, you can find links to that info on the first page of this thread, it is not possible to round to big blind instead of small blind atm, but i'll add it as an option soon.
aislephive, title of 6max table with antes differs a bit, here is the fix http://depositfiles.com/files/17yhrcqcw
My nickname is Max1mumz on FullTilt.

Last edited by Max1mums; 07-01-2010 at 06:23 AM.
FTCash - free script for FullTilt cash players. Quote
07-02-2010 , 06:15 AM
I have tried it, works fine so far, but one key seems to not works perfectly.
In table hotkeys, the key for check/call works only for the call but not for the check.
FTCash - free script for FullTilt cash players. Quote
07-02-2010 , 06:41 AM
FTCash v1.13

Few minor fixes.

Code:
; #### FTCash ####

; AHK version: 1.0.48.05
; date: July 2,2010
  version := "1.13"
; author: Max1mums (max1mums@overcards.com)

#SingleInstance, Force
#NoEnv
#Persistent
Settitlematchmode, 2
OnExit exitSub

StringTrimRight, thisahk, A_ScriptName, 4
SetWorkingDir %A_ScriptDir%

debug:=0

Menu, Tray, NoStandard
Menu, Tray, Add, Settings, menugui
Menu, Tray, Add 
Menu, Tray, Add, Reload, reload
Menu, Tray, Default, Settings
Menu, Tray, Add 
Menu, Tray, Add, Suspend, Suspend
Menu, Tray, Add, Pause, TogglePause
Menu, Tray, Add 
Menu, Tray, Add, Edit, Edit 
Menu, Tray, Add 
Menu, Tray, Add, Exit, ExitSub

OnMessage(0x112,"WM_SYSCOMMAND")
WM_SYSCOMMAND(wParam)
{
  if (A_Gui && wParam = 0xF020) ; SC_MINIMIZE
  {
    Gui, destroy
    return 0
  }
}

boost:=false
; Border of the "Highlighter"
border_color := "ff0000"
border_coloralt := "00FF00"
border_size := 5
trans := 255


SetBatchLines,1ms
SetWinDelay,-1
SendMode Input

SysGet, xbord, 32
SysGet, ybord, 33
SysGet, cap, 4
SysGet, border, 32
SysGet, caption, 4

ddlist=
Loop 14
ddlist:=ddlist . A_index . "|"

ddlist1=
ddlist1.="ssnl" . "|"
ddlist1.="trny" . "|"
ddlist1.="mix" . "|"
ddlist1.="----" . "|"
gosub,getini

if flicker1
{
winwait,Logged In ahk_class QWidget
Process, Exist, FullTiltPoker.exe
if (ErrorLevel)
{
  FTP := ErrorLevel
  Process, Priority, %FTP%, High
}
}
else
{
Process, Exist, FullTiltPoker.exe
if (ErrorLevel)
{
  FTP := ErrorLevel
  Process, Priority, %FTP%, Normal
}
}
if flicker2
{
winwait,Logged In ahk_class QWidget
Process, Exist, AutoHotkey.exe
if (ErrorLevel)
{
  Ahk := ErrorLevel
  SetAffinity(Ahk)
}
Process, Exist, FullTiltPoker.exe
if (ErrorLevel)
{
  FTP := ErrorLevel
  SetAffinity(FTP)
}
}

Init()

DllCall("dwmapi\DwmIsCompositionEnabled","int*",DwmIsEnabled)
if !DwmIsEnabled
{
Gui, 98: Show, w1 h1 x1 y1, PokerWindow
WinGet,PokerWindowID, id, PokerWindow
hdc_frame := DllCall( "GetDC", "UInt",PokerWindowID)
hdc_buffer := DllCall("gdi32.dll\CreateCompatibleDC","UInt",hdc_frame)
hbm_buffer := DllCall("gdi32.dll\CreateCompatibleBitmap", "UInt",hdc_frame, "Int",A_screenwidth,"Int",A_screenheight)
DllCall( "gdi32.dll\SelectObject", "UInt",hdc_buffer, "UInt",hbm_buffer)
Gui, 98: Show,hide, w1 h1 x1 y1, PokerWindow
}

;;;;;;;;;;;;End of init;;;;;;;;;;;;;;

if Timebank
settimer,clickwithdelay,100
if autopot OR Highlight OR MoveMouse
settimer,act,45
if Highlight
settimer,Highlighter,83
if dealmein
settimer,dealin,1939
if Timebank
settimer,clicktime,639
if MoveMouse
settimer,MouseMove,119
settimer,BetPot,67
if activatetableundermouse
settimer,activateundermouse,133
if Buyin
settimer,autobuy,835
if limit or autotakeseat
settimer,NewTable,267
if autotakeseat
settimer,clickseatwithdelay,93
if closeOKwindow or leavetable
settimer,closepopups,148
if TakeSeat
settimer,TakeSeatFromWaitlist,277

return
;-----------------------------------------------------------------------------------------------------
FoldFT(id)
{
PostclickFT(0.6218,0.9241,id)
  PostclickFT(0.6834,0.9358,id)
  PostclickFT(0.6834,0.9358,id)
}
return

quickFoldFT(id)
{
  PostclickFT(0.6424,0.9678,id)
  PostclickFT(0.6424,0.9678,id)
}
return

CallFT(id)
{
  PostclickFT(0.8032,0.9358,id)
  PostclickFT(0.8032,0.9358,id)
}
return

RaiseFT(id)
{
  PostclickFT(0.9356,0.9358,id)
  PostclickFT(0.9356,0.9358,id)
}
return

Fold2anyFT(id)
{
global Racetrack
WinGetTitle, title, ahk_id%id%
StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
StringReplace,bb,bb,$,,1
if Racetrack
{
 if bb<4
 {
  click_x:=0.4325
  click_y:=0.8937
 }
 else
 {
  click_x:=0.4193
  click_y:=0.9169
 }
}
else
{
 if bb<4
 {
  click_x:=0.0088
  click_y:=0.7472
 }
 else
 {
  click_x:=0.0088
  click_y:=0.7566
 }
}
PostclickFT(click_x,click_y,id)
}
return
;-----------------------------------------------------------------------------------------------------
fold:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 FoldFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

quickfold:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 quickFoldFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

call:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 callFT(id)
 FoldFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

raise:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 raiseFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

fold2any:
sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 fold2anyFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

allin(id)
{
global Instant
PostClickFT(0.9715,0.7632,id)
if Instant
raiseFT(id)
}
return
;-----------------------------------------------------------------------------------------------------
pot1:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if Round1
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot1Pre A_space Pot1Flop A_space Pot1Turn A_space Pot1River, Roundsb, Open1, fix1)
if autobet
raiseFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

pot2:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if Round2
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot2Pre A_space Pot2Flop A_space Pot2Turn A_space Pot2River, Roundsb, Open2, fix2)
if autobet
raiseFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

pot3:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if Round3
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot3Pre A_space Pot3Flop A_space Pot3Turn A_space Pot3River, Roundsb, Open3, fix3)
if autobet
raiseFT(id)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

alt1:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
wingettitle,title,ahk_id%id%
if !instr(title,"Full Tilt Poker -")
{
if sb1
sb:="sb"
else
sb:=""
AlterAmount(id,"up", incr1, sb)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

alt2:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
wingettitle,title,ahk_id%id%
if !instr(title,"Full Tilt Poker -")
{
if sb2
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr2, sb)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

alt3:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if !instr(title,"Full Tilt Poker -")
{
if sb3
sb:="sb"
else
sb:=""
AlterAmount(id,"up", incr3, sb)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

alt4:
sendmode event
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
wingetclass,class,ahk_id%id%
if class=QWidget
{
if !instr(title,"Full Tilt Poker -")
{
if sb4
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr4, sb)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return

allin:
Sendmode event
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=QWidget
{
 allin(ID)
}
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
sendmode input
return
;-----------------------------------------------------------------------------------------------------
findtabletoact:
Sendmode event
WinGet, Id, ID, A
wingetclass,class,ahk_id%id%
if class!=QWidget
{
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
}
if class=QWidget
findtabletoact()
else
{
suspend,on
send {%A_ThisHotkey%}
suspend,off
}
return

findtabletoact()
{
global DwmIsEnabled
foldx:=0.6534
foldy:=0.9662
foldx1:=0.5965
foldy1:=0.9662
back_x:=0.6534
back_y:=0.9862
back_x1:=0.5965
back_y1:=0.9862
v:=20

winget,id,id,A
if !DwmIsEnabled
{
fold:=PixelColor(foldx,foldy,id,0)
bacgr:=PixelColor(foldx1,foldy1,id,0)
deal:=PixelColor(back_x,back_y,id,0) 
deal1:=PixelColor(back_x1,back_y1,id,0)
}
else
{
col:=PixelColorA(foldx,foldy,foldx1,foldy1,0,id)
stringsplit,col,col,-
fold:=col1
bacgr:=col2
sleep,1
col:=PixelColorA(back_x,back_y,back_x1,back_y1,0,id)
stringsplit,col,col,-
deal:=col1
deal1:=col2
}
if !((comparecolors(fold,bacgr,v)=0) & (comparecolors(deal,deal1,v)=1))
{ 
winget,list,list,Logged In ahk_class QWidget,,Full Tilt
loop %list%
{
id:=list%A_index%
col:=PixelColorA(foldx,foldy,foldx1,foldy1,0,id)
stringsplit,col,col,-
fold:=col1
bacgr:=col2
sleep,1
col:=PixelColorA(back_x,back_y,back_x1,back_y1,0,id)
stringsplit,col,col,-
deal:=col1
deal1:=col2
if ((comparecolors(fold,bacgr,v)=0) & (comparecolors(deal,deal1,v)=1))
{
winactivate,ahk_id%id%
break
}
} 
}
}
return 
;-----------------------------------------------------------------------------------------------------
Init()
{
 local list,id
 winget,list,list,Logged In ahk_class QWidget,,Full Tilt
 loop %list%
 {
  id:=list%A_index%
  seated%id%:=1
 } 
}
return
;-----------------------------------------------------------------------------------------------------
BetPot:
GroupAdd, FullTiltTables,Logged In ahk_class QWidget,,,Full Tilt
if autopot
{
isbetboxnew()
}
return
;-----------------------------------------------------------------------------------------------------
IsBetBoxNew()
{
global oldid,PotDefPre,PotDefFlop,PotDefTurn,PotDefRiver,RoundDef,OpenDef,FixDef,DwmIsEnabled
winget winid,id,A
wingetclass,class,A
wingettitle,title,A
if class=QWidget
if (instr(title, "Logged In")>0) & (instr(title, "/")>0)
{
betboxX:=0.9687
betboxY:=0.8000
betboxY1:=0.8650
if !DwmIsEnabled
{
bet1:=PixelColor(betboxX,betboxY,winid,0)
bet2:=PixelColor(betboxX,betboxY1,winid,0)
}
else
{
 bet:=PixelColorA(betboxX,betboxY,betboxX,betboxY1,0,winid)
 stringsplit,bet,bet,-
}
if (winid<>oldid)
{
 if bet1=0xffffff ;& (bet2!=0xffffff)
 {
  if bet2!=0xffffff
  {
  oldid:=winid
  if RoundDef
  Roundsb:="smallblind"
  else
  Roundsb:=0.2
  sleep,15
  Pot(winid,PotDefPre A_space PotDefFlop A_space PotDefTurn A_space PotDefRiver, Roundsb, OpenDef, FixDef)
  }
 }
 else
 oldid=
}
else
{ 
 if bet1!=0xffffff
 oldid=
}
}
else
oldid=
}
return
;-----------------------------------------------------------------------------------------------------
act:
act()
return

act()
{
 winget,list,list, / ahk_class QWidget,,Full Tilt
 wingetclass,class,A
 wingettitle,title,A
 ifwinnotactive,ahk_id%list1%
 {
 if class=QWidget
 if instr(title, "Logged In") 
 if instr(title, "/")
 winactivate,ahk_id%list1%
 }
}
return
;-----------------------------------------------------------------------------------------------------
activateundermouse:
activatetableundermouse()
return

activatetableundermouse()
{
    MousegetPos,,,WinID
    WinGetClass, class, ahk_id %WinID%
    WinGetTitle, title, ahk_id %WinID%
    if (class="QWidget")
    winactivate, ahk_id %WinID%
}
return
;-----------------------------------------------------------------------------------------------------
ActivateBottomWindow:
GroupActivate, FullTiltTables
return
;-----------------------------------------------------------------------------------------------------
SitOutNextAll:
settimer,dealin,off

WinGet, list, List,Logged In ahk_class QWidget,,Full Tilt
Loop, %list%
{
 Z:=list%A_Index%
 WinGetTitle, title, ahk_id%Z%
 StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
 StringReplace,bb,bb,$,,1
 if Racetrack
 {
  if bb<4
  {
   sitx:=0.4263
   sity:=0.9264
  }
  else
  {
   sitx:=0.4125
   sity:=0.9345
  }
 }
 else
 {
  if bb<4
  {
   sitx:=0.0031
   sity:=0.7770
  }
  else
  {
   sitx:=0.0031
   sity:=0.7857
  }
 }
 click_x:=sitx+0.0070
 click_y:=sity+0.0070
 WinGetPos,,, W, H, ahk_id %Z%
 if w>1000
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,15,15)
 else
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,10,10)
 if !(instr(Sittingout,"-0-")) & !(instr(Sittingout,"1710618"))  ; & !(instr(Sittingout,"16777215"))
 {
  PostClickFT(click_x, click_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
RemoveSitout:
if dealmein
settimer,dealin,1639
WinGet, list, List,Logged In ahk_class QWidget,,Full Tilt
Loop, %list%
{
 Z:=list%A_Index%
WinGetTitle, title, ahk_id%Z%
 StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
 StringReplace,bb,bb,$,,1
 if Racetrack
 {
  if bb<4
  {
   sitx:=0.4263
   sity:=0.9264
  }
  else
  {
   sitx:=0.4125
   sity:=0.9345
  }
 }
 else
 {
  if bb<4
  {
   sitx:=0.0031
   sity:=0.7770
  }
  else
  {
   sitx:=0.0031
   sity:=0.7857
  }
 }
 click_x:=sitx+0.0070
 click_y:=sity+0.0070
 WinGetPos,,, W, H, ahk_id %Z%
 if w>1000
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,15,15)
 else
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,10,10)
; FileAppend, %Sittingout%`n`n, test.txt
 if (instr(Sittingout,"-0-")) || (instr(Sittingout,"1710618"))  ; & !(instr(Sittingout,"16777215"))
  {
  PostClickFT(click_x, click_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
uncheckpost:
WinGet, list, List,Logged In ahk_class QWidget,,Full Tilt
Loop, %list%
{
 Z:=list%A_Index%
 WinGetTitle, title, ahk_id%Z%
 StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
 StringReplace,bb,bb,$,,1
 if Racetrack
 {
  if bb<4
  {
   sitx:=0.4279
   sity:=0.9744
  }
  else
  {
   sitx:=0.4123
   sity:=0.9753
  }
 }
 else
 {
   sitx:=0.0042
   sity:=0.8246
 }
 click_x:=sitx+0.0070
 click_y:=sity+0.0070
 WinGetPos,,, W, H, ahk_id %Z%
 if w>1000
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,15,15)
 else
 if w<600
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,5,5)
 else
 Sittingout:=PixelColorA(0,0,0,sity,sitx,Z,1,10,10)
 if (instr(Sittingout,"-0-")) || (instr(Sittingout,"1710618"))  ; & !(instr(Sittingout,"16777215"))
  {
  PostClickFT(click_x, click_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
Layout1:
ifwinactive,Logged In ahk_class QWidget,,Full Tilt
WinGet, WinId, ID, A
else
MousegetPos,,,WinID
wingetclass,class,ahk_id %WinID%
wingettitle,title,ahk_id %WinID%
if class=QWidget
if !instr(title,"Full Tilt")
{
CX:=0.8261
CY:=0.0155
wingetpos,x1,y1,w,h,ahk_id%winid%
coordmode,mouse,screen
mousegetpos,x,y
coordmode,mouse,relative
DllCall("SetCursorPos", int, x1+w+10, int, y1+h+10)
PostclickFT(cx,cy,winid,1)
sleep 100
critical,6
send {Tab 7}
sleep,25
Send {Enter}
critical,off
sleep,-1
DllCall("SetCursorPos", int, x, int, y)
}
return
;-----------------------------------------------------------------------------------------------------
Layout2:
ifwinactive,Logged In ahk_class QWidget,,Full Tilt
WinGet, WinId, ID, A
else
MousegetPos,,,WinID
wingetclass,class,ahk_id %WinID%
wingettitle,title,ahk_id %WinID%
if class=QWidget
if !instr(title,"Full Tilt")
{
CX:=0.8261
CY:=0.0155
wingetpos,x1,y1,w,h,ahk_id%winid%
coordmode,mouse,screen
mousegetpos,x,y
coordmode,mouse,relative
DllCall("SetCursorPos", int, x1+w+10, int, y1+h+10)
PostclickFT(cx,cy,winid,1)
sleep 100
critical,6
send {Tab 8}
sleep,25
Send {Enter}
critical,off
sleep,-1
DllCall("SetCursorPos", int, x, int, y)
}
return
;-----------------------------------------------------------------------------------------------------
Layout3:
ifwinactive,Logged In ahk_class QWidget,,Full Tilt
WinGet, WinId, ID, A
else
MousegetPos,,,WinID
wingetclass,class,ahk_id %WinID%
wingettitle,title,ahk_id %WinID%
if class=QWidget
if !instr(title,"Full Tilt")
{
CX:=0.8261
CY:=0.0155
wingetpos,x1,y1,w,h,ahk_id%winid%
coordmode,mouse,screen
mousegetpos,x,y
coordmode,mouse,relative
DllCall("SetCursorPos", int, x1+w+10, int, y1+h+10)
PostclickFT(cx,cy,winid,1)
sleep 100
critical,6
send {Tab 9}
sleep,25
Send {Enter}
critical,off
sleep,-1
DllCall("SetCursorPos", int, x, int, y)
}
return
;-----------------------------------------------------------------------------------------------------
Highlighter:
if HighLightA
HighLighterA()
else
HighLighter()
return

HighLighter()
{
global OldX,OldY,OldW,OldH
global highlighthero,last_table_id
global border_color
global border_size
global trans
global xbord,ybord
global cap,DwmIsEnabled
v:=25

ifwinactive, Logged In ahk_class QWidget,,Full Tilt
{  
 winget,id,id,A
 foldx:=0.6534
 foldy:=0.9662
 foldx1:=0.5965
 foldy1:=0.9662
 back_x:=0.6534
 back_y:=0.9862
 back_x1:=0.5965
 back_y1:=0.9862
 WinGetActiveStats,ActiveTitle, ActiveW, ActiveH, ActiveX, ActiveY
 if highlighthero=1
 {
 if !DwmIsEnabled
 {
  fold:=PixelColor(foldx,foldy,id,0)
  bacgr:=PixelColor(foldx1,foldy1,id,0)
  deal:=PixelColor(back_x,back_y,id,0) 
  deal1:=PixelColor(back_x1,back_y1,id,0)
 }
 else
 {
  tmp_buffer := DllCall("GetDCEx", "UInt", id,"UInt",0,"UInt",1)
  relFTClientPoint(id, foldx, foldy,0)
  fold := DllCall("GetPixel", "UInt", tmp_buffer, "Int", foldx, "Int", foldy) 
  relFTClientPoint(id, foldx1, foldy1,0)
  bacgr := DllCall("GetPixel", "UInt", tmp_buffer, "Int", foldx1, "Int", foldy1) 
  relFTClientPoint(id, back_x, back_y,0)
  deal := DllCall("GetPixel", "UInt", tmp_buffer, "Int", back_x, "Int", back_y)
  relFTClientPoint(id, back_x1, back_y1,0)
  deal1 := DllCall("GetPixel", "UInt", tmp_buffer, "Int", back_x1, "Int", back_y1)
  SetFormat, IntegerFast, hex
  fold += 0
  fold .= ""
  bacgr += 0
  bacgr .= ""
  deal += 0
  deal .= ""
  deal1 += 0
  deal1 .= ""
  SetFormat, IntegerFast, d 
  DllCall( "gdi32.dll\ReleaseDC", "Uint", tmp_buffer )
  DllCall( "gdi32.dll\DeleteDC", "Uint", tmp_buffer )
 }
 }
 if ((id != last_table_id) || ((OldX <> ActiveX || OldY <> ActiveY || OldW <> ActiveW || OldH <> ActiveH))) || (highlighthero=1) 
 {
  OldX := ActiveX
  OldY := ActiveY
  OldW := ActiveW
  OldH := ActiveH
  if (highlighthero=0) || ((highlighthero=1) & (comparecolors(fold,bacgr,v)=1) & (comparecolors(deal,deal1,v)=1)) || ((highlighthero=1) & (id != last_table_id)) 
  {
  Gui, 2: Cancel
  Gui, 3: Cancel
  Gui, 4: Cancel
  Gui, 5: Cancel
  }
  WinGetPos, x, y, w, h, ahk_id%id%
  x := x + xbord
  y := y + xbord + cap
  w := w - (2*xbord)
  h := h - (2*xbord) - cap
  ;Outer
  ;x := x - border_size
  ;y := y - border_size
  ;w := w + 2*border_size
  ;h := h + 2*border_size
 
  ;Makes Border around urgent table
  if ((highlighthero=0) || ((highlighthero=1) & (comparecolors(fold,bacgr,v)=0) & (comparecolors(deal,deal1,v)=1))) ; & (comparecolors(fold,fold1,v)=0) ; & (comparecolors(join,deal1,v)=1))
  { 
   ;top
   guinum := 2
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y% NoActivate    
   ;left
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%border_size% h%h% x%x% y%y% NoActivate    
   ;bottom
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   y2 := y + h - border_size
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y2% NoActivate    
   ;right
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   x2 := x + w - border_size
   Gui, %guinum%: Show, w%border_size% h%h% x%x2% y%y% NoActivate 
  }  
 }
last_table_id := id  
}
else
{
Gui, 2: Cancel
Gui, 3: Cancel
Gui, 4: Cancel
Gui, 5: Cancel
last_table_id=
}
}
return
;-----------------------------------------------------------------------------------------------------
HighLighterA() 
{
global last_active_table_id,xbord,cap,highlightlist
global border_color,border_coloralt
global border_size
global trans
v:=35

ifwinactive,/ ahk_class QWidget,,Full Tilt
{
winget,winid,id,A
if !(winid=last_active_table_id)
Loop, Parse, highlightlist, `,
{
 if instr(A_loopfield,winid) or instr(A_loopfield,last_active_table_id)
 {
 if instr(A_loopfield,winid)
 col:=border_coloralt
 else
 col:=border_color
 stringsplit,tab,A_loopfield,-
 num:=tab2
 num1:=num+1
 num2:=num+2
 num3:=num+3
 Gui, %num%: Color, %col%
 Gui, %num1%: Color, %col%
 Gui, %num2%: Color, %col%
 Gui, %num3%: Color, %col%
 }
}
winget,list,list,/ ahk_class QWidget,,Full Tilt
loop %list%
{
 id:=list%A_index% 
 if DllCall( "IsWindowVisible", "UInt",id)
 {
  WinGetPos, x, y, w, h, ahk_id%id%
  x := x + xbord
  y := y + xbord + cap
  w := w - (2*xbord)
  h := h - (2*xbord) - cap
  if instr(highlightlist,id)
  Loop, Parse, highlightlist, `,
  {
   if instr(A_loopfield,id)
   {
   stringsplit,tab,A_loopfield,-
   if !((x=tab3) & (y=tab4) & (w=tab5) & (h=tab6))
   {
   num:=tab2
   num1:=num+1
   num2:=num+2
   num3:=num+3
   Gui, %num%: Destroy
   Gui, %num1%: Destroy
   Gui, %num2%: Destroy
   Gui, %num3%: Destroy
   listDelItem(highlightlist, A_Loopfield) 
   }
   }
  }
  foldx:=0.6534
  foldy:=0.9662
  foldx1:=0.5965
  foldy1:=0.9662
  back_x:=0.6534
  back_y:=0.9862
  back_x1:=0.5965
  back_y1:=0.9862
  if !DwmIsEnabled
  {
  fold:=PixelColor(foldx,foldy,id,0,1)
  bacgr:=PixelColor(foldx1,foldy1,id,0,1)
  deal:=PixelColor(back_x,back_y,id,0,1) 
  deal1:=PixelColor(back_x1,back_y1,id,0,1)
  }
  else
  {
  tmp_buffer := DllCall("GetDCEx", "UInt", id,"UInt",0,"UInt",1)
  relFTClientPoint(id, foldx, foldy,0)
  fold := DllCall("GetPixel", "UInt", tmp_buffer, "Int", foldx, "Int", foldy) 
  relFTClientPoint(id, foldx1, foldy1,0)
  bacgr := DllCall("GetPixel", "UInt", tmp_buffer, "Int", foldx1, "Int", foldy1) 
  relFTClientPoint(id, back_x, back_y,0)
  deal := DllCall("GetPixel", "UInt", tmp_buffer, "Int", back_x, "Int", back_y)
  relFTClientPoint(id, back_x1, back_y1,0)
  deal1 := DllCall("GetPixel", "UInt", tmp_buffer, "Int", back_x1, "Int", back_y1)
  SetFormat, IntegerFast, hex
  fold += 0
  fold .= ""
  bacgr += 0
  bacgr .= ""
  deal += 0
  deal .= ""
  deal1 += 0
  deal1 .= ""
  SetFormat, IntegerFast, d 
  DllCall( "gdi32.dll\ReleaseDC", "Uint", tmp_buffer )
  DllCall( "gdi32.dll\DeleteDC", "Uint", tmp_buffer )
  }
  if (comparecolors(fold,bacgr,v)=0) & (comparecolors(deal,deal1,v)=1)
  {
   if !instr(highlightlist,id)
   {
   free:=freeGui()
   if !(winid=id)
   col:=border_color
   else
   col:=border_coloralt
   movetolisthighlight(id,free,x,y,w,h)
   ;top
   guinum := free
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %col%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y% NoActivate    
   ;left
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %col%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%border_size% h%h% x%x% y%y% NoActivate    
   ;bottom
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %col%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   y2 := y + h - border_size
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y2% NoActivate    
   ;right
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %col%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   x2 := x + w - border_size
   Gui, %guinum%: Show, w%border_size% h%h% x%x2% y%y% NoActivate  
   }
  }
  else
  {
   if instr(highlightlist,id)
   Loop, Parse, highlightlist, `,
   {
    if instr(A_loopfield,id)
    {
    stringsplit,tab,A_loopfield,-
    num:=tab2
    num1:=num+1
    num2:=num+2
    num3:=num+3
    Gui, %num%: Destroy
    Gui, %num1%: Destroy
    Gui, %num2%: Destroy
    Gui, %num3%: Destroy
    listDelItem(highlightlist, A_Loopfield) 
    }
   }
  } 
} 
}
last_active_table_id:=winid
}
else
Loop, Parse, highlightlist, `,
{
stringsplit,tab,A_loopfield,-
num:=tab2
num1:=num+1
num2:=num+2
num3:=num+3
Gui, %num%: Destroy
Gui, %num1%: Destroy
Gui, %num2%: Destroy
Gui, %num3%: Destroy
listDelItem(highlightlist, A_Loopfield)
}
}
return

freeGui() { 
Loop 99 { 
    Gui, %a_index%: +lastfoundExist 
    If ! WinExist() 
      return a_index 
  } 
} 

MouseMove:
MoveMouse()
return

MoveMouse(x_mouse=0.7468, y_mouse=0.8735)
{
if IsWindowNew()
{ 
wingetclass,class,A
wingetactivetitle,title
if class=QWidget 
if !instr(title,"Full Tilt") 
{
 winget,id,id,A
 relFTClientPoint(id, x_mouse, y_mouse,0,1)
 DllCall("SetCursorPos", int, x_mouse, int, y_mouse)
}  
}
}
return
;-----------------------------------------------------------------------------------------------------
IsWindowNew()
{
global oldwinid,stealfocus
winget,id,id,A
wingetclass,class,ahk_id%oldwinid%
if id!=%oldwinid%
{
 oldwinid:=id
 if stealfocus
 return 1
 else
 {
  if class=QWidget
  return 1
  else
  return 0
 }
}
else
return 0
}
;-----------------------------------------------------------------------------------------------------
clicktime:
clicktime()
return

clicktime()
{
global tablequeue
t1:=0xdedbde
time_x:=0.9000
time_y:=0.7200
time_x1:=0.8858
v:=30
v1:=15
winget,listft,list,/ ahk_class QWidget,,Full Tilt
loop %listft%
{
id:=listft%A_index%
t:=PixelColorA(time_x,time_y,time_x1,time_y,0,id)
stringsplit,col,t,-
if (CompareColors(col1,t1,v1)=false) & (CompareColors(col1,col2,v)=false)
{
if !InStr(tablequeue,id)
movetolist(id,A_TickCount)
}
else
if InStr(tablequeue,id)
removefromlist(id)
}
}
return
;-----------------------------------------------------------------------------------------------------
dealin:
dealmein()
return

dealmein()
{
back_x:=0.6534
back_y:=0.9862
back_x1:=0.5859
back_x2:=0.6152

back1:=0x181818
v1:=10
v:=30
winget,listft,list,/ ahk_class QWidget,,Full Tilt
loop %listft%
{
id:=listft%A_index%
t:=PixelColorA(back_x,back_y,back_x1,back_y,back_x2,id)
stringsplit,col,t,-
if (CompareColors(col1,back1,v1)=false) & (CompareColors(col1,col2,v)=false) & (CompareColors(col2,col3,v)=true)
{
PostclickFT(0.7496,0.9862,id,0)
PostclickFT(0.7496,0.9862,id,0)
}
}
}
return
;-----------------------------------------------------------------------------------------------------
relFTClientPoint(id, ByRef x, ByRef y, client=1, screen=0)
{
global xbord,ybord,cap
WinGetPos,x1,y1,w,h,ahk_id%id%
w-=2*xbord
h-=(2*ybord)+cap
x:=floor(W*x)
y:=floor(H*y)
if !client
{
x+=xbord
y+=ybord+cap
}
if screen
{
x+=x1
y+=y1
}
}
return
;-----------------------------------------------------------------------------------------------------
PostLeftDoubleClick(x, y, table_id, activate=1) {
If activate
 WinActivate, ahk_id%table_id%
critical,6
PostMessage, 0x203 , 0, ((y<<16)^x), , ahk_id%table_id% ; without 0x001 as lparam which is Lbutton down
PostMessage, 0x202 , 0, ((y<<16)^x), , ahk_id%table_id%
PostMessage, 0x202 , 0, ((y<<16)^x), , ahk_id%table_id%
critical,off
sleep,-1
}
return
;-----------------------------------------------------------------------------------------------------
PostclickFT(x,y,winid,activate=1,client=1)
{
relFTClientPoint(winid, x, y,client)
DllCall("SetCapture","Uint",winid)
PostLeftDoubleClick(x, y, winid, activate)
DllCall("ReleaseCapture")
}
return
;-----------------------------------------------------------------------------------------------------
PostLeftclickFT(x,y,winid,activate=1,client=1)
{
relFTClientPoint(winid, x, y,client)
DllCall("SetCapture","Uint",winid)
PostLeftClick(x, y, winid, activate)
DllCall("ReleaseCapture")
}
return
;-----------------------------------------------------------------------------------------------------
clickwithdelay:
clickdelay()
return

clickdelay()
{
global tablequeue
time_x:=0.9000
time_y:=0.7200
Loop, Parse, tablequeue, `,
{
interval:=interval1*1000
stringsplit,tab,A_loopfield,-
if A_TickCount-tab2>interval
{
PostclickFT(time_x,time_y,tab1,0)
PostclickFT(time_x,time_y,tab1,0)
listDelItem(tablequeue, A_Loopfield) 
}
}
}
return
;-----------------------------------------------------------------------------------------------------
PixelColor(colx,coly,id,client=1,screen=0)
{
relFTClientPoint(id,colx,coly,client,screen)
if screen
Coordmode,Pixel,screen
PixelGetColor,color,colx,coly
return color
}
;-----------------------------------------------------------------------------------------------------
PixelColorA(colx,coly,backx,backy,joinx,id,region=0,regionw=70,regionh=15)
{
global boost,xbord,ybord,cap,PokerWindowID,DwmIsEnabled,hdc_buffer
if boost
critical,6
setwindelay, -1
WinGetPos,,,W,H,ahk_id %id%
if DwmIsEnabled
{
hdc_buffer := DllCall("GetDCEx", "UInt", id,"UInt",0,"UInt",1)
}
else
{
DllCall( "PrintWindow", "UInt" , id , "UInt" , hdc_buffer , "UInt" , 0 )
DllCall("RedrawWindow","UInt",id,"UInt",0,"UInt",0,"UInt", 1|16|32|64|1024) 
}
x:=floor(((W-2*xbord)*colx) + xbord)
y:=floor(((H-(2*ybord)-cap)*coly) + ybord + cap)
pix1=
pix1 := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y) 
x:=floor(((W-2*xbord)*backx) + xbord)
y:=floor(((H-(2*ybord)-cap)*backy) + ybord + cap)
if backx
pix2:=DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y) 
x:=floor(((W-2*xbord)*joinx) + xbord)
if joinx
pix3:=DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y) 
SetFormat, IntegerFast, hex
pix1 += 0
pix1 .= ""
if backx
{
pix2 += 0
pix2 .= ""
}
if joinx
{
pix3 += 0
pix3 .= ""
}
SetFormat, IntegerFast, d
if backx 
pix1.="-" . pix2
if joinx
pix1.="-" . pix3
if region
{
x:=floor(((W-2*xbord)*joinx) + xbord)
y:=floor(((H-(2*ybord)-cap)*backy) + ybord + cap)
pix1.="*"
loop %regionw%
{
delta:=A_index
loop %regionh%
{
delta1:=A_index
p := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x+delta , "Int", y+delta1)
;p1:=p
;SetFormat, IntegerFast, hex
;p += 0
;p .= ""
;SetFormat, IntegerFast, d
;pix1.=p . "*" . p1 . "-"
pix1.=p . "-"
}
}
}
sleep,1
DllCall( "gdi32.dll\ReleaseDC", "Uint", hdc_buffer )
if DwmIsEnabled
DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_buffer )
if boost
{
critical,off
sleep,-1
}
return pix1
}
;-----------------------------------------------------------------------------------------------------
CompareColors(ByRef bgr1, ByRef bgr2, ByRef variation) {
	c1 := bgr1 & 0xff
	c2 := bgr2 & 0xff
	if (abs(c1 - c2) > variation)
		return false
	c1 := (bgr1 >> 8) & 0xff
	c2 := (bgr2 >> 8) & 0xff
	if (abs(c1 - c2) > variation)
		return false
	c1 := (bgr1 >> 16) & 0xff
	c2 := (bgr2 >> 16) & 0xff
	if (abs(c1 - c2) > variation)
		return false
	return true
}
;-----------------------------------------------------------------------------------------------------
listAdd( byRef list, item, del="," ) {
  list:=( list!="" ? ( list . del . item ) : item )
  return list
}
;-----------------------------------------------------------------------------------------------------
listDelItem( byRef list, item, del=",") {
  ifEqual, item,, return list
  list:=del . list . del
  StringReplace, list, list, %item%%del%
  StringTrimLeft, list, list, 1
  StringTrimRight, list, list, 1
  return list
}
;-----------------------------------------------------------------------------------------------------
movetolist(winid,time)
{
global tablequeue
listAdd(tablequeue, winid . "-" . time)
}
return
;-----------------------------------------------------------------------------------------------------
removefromlist(winid)
{
global tablequeue
Loop, Parse, tablequeue, `,
{
if InStr(A_loopfield,winid)
listDelItem(tablequeue, A_Loopfield)
}
}
return
;-----------------------------------------------------------------------------------------------------
movetolistseat(winid,time)
{
global tablequeueseat
listAdd(tablequeueseat, winid . "-" . time) 
}
return
;-----------------------------------------------------------------------------------------------------
movetolistwaitlist(winid,time)
{
global waitlistqueue
listAdd(waitlistqueue, winid . "-" . time) 
}
return
;-----------------------------------------------------------------------------------------------------
movetolisthighlight(winid,number,x,y,w,h)
{
global highlightlist
listAdd(highlightlist, winid . "-" . number . "-" . x . "-" . y  . "-" . w  . "-" . h) 
}
return
;-----------------------------------------------------------------------------------------------------
SetAffinity(pid, cpu=1)
{
  h := DllCall("OpenProcess", "UInt", 0x1F0FFF, "Int", false, "UInt", pid)
  DllCall("SetProcessAffinityMask", "UInt", h, "UInt", cpu)
  DllCall("CloseHandle", "UInt" h)
  return
}
;-----------------------------------------------------------------------------------------------------
register:
ifwinactive, ahk_class QWidget
{
winget,id,id, A
wingettitle,title,ahk_id%id%
if instr(title,"Full Tilt Poker -")
{
reg_x :=0.9080
reg_y :=0.7357
PostclickFT(reg_x,reg_y,id,0)
PostclickFT(reg_x,reg_y,id,0)
}
}
return
;-----------------------------------------------------------------------------------------------------
Toggledealmein:
If (dealmein=true) {
	dealmein:=false
	T=Off
}
else {
	dealmein:=true
	T=On
}
Gui, 99:Add, Text,, Auto Deal me in: %T%
Gui, 99:+ToolWindow
Gui, 99:Show, w150 h20
Sleep, 1000
Gui, 99:Destroy
return
;-----------------------------------------------------------------------------------------------------
Joinwaitlist:
Joinwaitlist()
return

Joinwaitlist()
{
join_x:=0.6158
join_x1:=0.5946
join_y1:=0.9862
join_y:=0.9292
join_x2:=0.8261
v:=20
winget,listft,list,Logged In ahk_class QWidget,,Full Tilt
loop %listft%
{
id:=listft%A_index%
wingetpos,,,w,,ahk_id%id%
t:=PixelColorA(join_x,join_y1,join_x1,join_y1,0,id)
stringsplit,col,t,-
if (CompareColors(col1,col2,v)=false)
{
if w>600
t:=PixelColorA(0,0,0,join_y,join_x2,id,1,100,15)
else
t:=PixelColorA(0,0,0,join_y,join_x2,id,1,100,10)
stringsplit,st,t,*
if (!instr(st2,"16777215")) ; & !instr(st2,"67284200") & !instr(st2,"111670350") & !instr(st2,"148766710"))
{
PostclickFT(join_x,join_y1,id,0)
PostclickFT(join_x,join_y1,id,0)
}
}
}
}
return
;-----------------------------------------------------------------------------------------------------
Unjoinwaitlist:
Unjoinwaitlist()
return

Unjoinwaitlist()
{
join_x:=0.6158
join_x1:=0.5946
join_y1:=0.9862
join_y:=0.9292
join_x2:=0.8261
v:=20
winget,listft,list,Logged In ahk_class QWidget,,Full Tilt
loop %listft%
{
id:=listft%A_index%
wingetpos,,,w,,ahk_id%id%
t:=PixelColorA(join_x,join_y1,join_x1,join_y1,0,id)
stringsplit,col,t,-
if (CompareColors(col1,col2,v)=false)
{
if w>600
t:=PixelColorA(0,0,0,join_y,join_x2,id,1,100,15)
else
t:=PixelColorA(0,0,0,join_y,join_x2,id,1,100,10)
stringsplit,st,t,*
if (instr(st2,"16777215"))  ;or instr(st2,"67284200") or instr(st2,"111670350") or instr(st2,"148766710"))
{
PostclickFT(join_x,join_y1,id,0)
PostclickFT(join_x,join_y1,id,0)
}
}
}
}
return
;-----------------------------------------------------------------------------------------------------
autobuy:
autobuy()
return

autobuy()
{
global max,remembered,xbb,bbmultiplier
winget,list,list, Get Chips ahk_class QWidget
ifwinexist, Get Chips ahk_class QWidget
{
id:=list1
 winget,id,id, Get Chips ahk_class QWidget
 winactivate,ahk_id%id%
  if max
  {
   PostleftclickFT(0.1137,0.5407,id,1,1)
   sleep,100
   PostleftclickFT(0.3488,0.8740,id,0)
   PostleftclickFT(0.3488,0.8740,id,0)
  }
  if remembered
  {
   sleep,100
   PostleftclickFT(0.3488,0.8740,id,0)
   PostleftclickFT(0.3488,0.8740,id,0)
  }
  if xbb
  {
   winget,listft,list,Logged In ahk_class QWidget,,Full Tilt
   wingettitle,title,ahk_id %listft1%
   StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
   StringReplace,bb,bb,$,,1
   bb*=bbmultiplier
   bb := Round(bb, 2)
   PostclickFT(0.5906,0.6100,id,1,1)
   PostLeftclickFT(0.5906,0.6100,id,1,1) 
   cl:=clipboard
   clipboard:=bb
   setcontroldelay,-1 
   setkeydelay,1,1
   sleep,10
   ifwinnotactive,ahk_id%id%
   winactivate,ahk_id%id%
   controlfocus,,ahk_id %id%
   setkeydelay,-1,-1
   ControlSend,,%bb%,ahk_id %id%
   sleep,-1
   ;send {tab 2}
   sleep,100
   send {NumpadEnter}
   ;PostleftclickFT(0.3488,0.8740,id,0)
   ;PostleftclickFT(0.3488,0.8740,id,0)
   clipboard:=cl
   winwaitclose,ahk_id %id%,,0.5
   if errorlevel
   {
   ControlSend,,{Esc},ahk_id %id%
   winclose,ahk_id %listft1%
   }
  }
 }
}
return
;-----------------------------------------------------------------------------------------------------
NewTable:
IsTableNew()
return

IsTableNew()
{
local list,id
winget,list,list,Logged In ahk_class QWidget,,Full Tilt
IfWinNotExist, Waiting List Options ahk_class QWidget
IfWinNotExist, Get Chips ahk_class QWidget
loop %list%
{
 id:=list%A_index%
 if seated%id% is not number
 {
  if ((limit=0) || ((limit=1) & (list<=totalnumber)))
  {
   ;wingetpos,xstart%id%,ystart%id%,,,ahk_id%id%
   ;if move
   ;WinMove, ahk_id%id%,, xpos,ypos
   if autotakeseat
   {
    if !InStr(tablequeueseat,id)
    movetolistseat(id,A_TickCount)
   }
   seated%id%:=1
  }
  else
  if ((limit=1) & (list>totalnumber))
  winclose,ahk_id%id%
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
clickseatwithdelay:
clickdelayseat()
return

clickdelayseat()
{
global tablequeueseat
ifwinnotexist, Get Chips ahk_class QWidget
{
Loop, Parse, tablequeueseat, `,
{
stringsplit,tab,A_loopfield,-
if (A_TickCount-tab2>500)
{
ClickEmptySeat(tab1)
listDelItem(tablequeueseat, A_Loopfield) 
}
}
}
}
return

clickwaitlistwithdelay:
clickdelaywaitlist()
return

clickdelaywaitlist()
{
global waitlistqueue
ifwinnotexist, Get Chips ahk_class QWidget
{
Loop, Parse, waitlistqueue, `,
{
stringsplit,tab,A_loopfield,-
if A_TickCount-tab2>300
{
PostLeftClickFT(0.2469,0.7000,tab1,0)
PostLeftClickFT(0.2469,0.7000,tab1,0)  
listDelItem(waitlistqueue, A_Loopfield) 
}
}
}
}
return


ClickEmptySeat(id)
{
Global Racetrack
wingettitle,title,ahk_id%id%
racetrack9maxseats:="0.4920*0.8436,0.2199*0.8183,0.0933*0.5931,0.0933*0.3379,0.2863*0.2022,0.7009*0.2022,0.8924*0.3379,0.8939*0.5931,0.7626*0.8183"
racetrack6maxseats:="0.4969*0.8758,0.3101*0.8505,0.0890*0.4965,0.2784*0.1954,0.6914*0.1954,0.8844*0.4965"
classic9maxseats:="0.4953*0.8772,0.2480*0.8289,0.0666*0.6335,0.1061*0.3439,0.3356*0.2082,0.6552*0.2059,0.8814*0.3432,0.9194*0.6289,0.7359*0.8243"
classic6maxseats:="0.4953*0.8804,0.0886*0.6459,0.1487*0.2942,0.4952*0.1931,0.8322*0.2873,0.9050*0.6367"

if Racetrack
{
 color1:=5190656
 color2:=5059328
 if instr(title,"6 max")
 seats:=racetrack6maxseats
 else
 seats:=racetrack9maxseats 
}
else
{
 color1:="-0-"
 color2:=16119285 
 if instr(title,"6 max")
 seats:=classic6maxseats
 else
 seats:=classic9maxseats 
} 
Loop, Parse, seats, `,
{
 stringsplit,coord,A_loopfield,*
 col:=PixelColorA(0,0,0,coord2,coord1,id,1,5,5)
 if Racetrack
 { 
 if instr(col,color1) || instr(col,color2)
 {
  clickx:=coord1
  clicky:=coord2-0.04
  PostLeftclickFT(clickx,clicky,id,0)
  PostLeftclickFT(clickx,clicky,id,0)
  return
 }
 }
 else
 {
 if (!instr(col,color1)) & (!instr(col,color2))
 {
  clickx:=coord1
  clicky:=coord2
  PostLeftclickFT(clickx,clicky,id,0)
  PostLeftclickFT(clickx,clicky,id,0)
  return
 }
 }
}
PostLeftclickFT(0.6155,0.9862,id,0)
PostLeftclickFT(0.6155,0.9862,id,0)
}
return
;-----------------------------------------------------------------------------------------------------
closepopups:
closepopups()
return

closepopups()
{
global xbord,cap,closeOKwindow,leavetable
winget,list,list,ahk_class QWidget,,/
loop %list%
{
id:=list%A_index%
wingettitle,title,ahk_id%id%
if !instr(title,"Full Tilt")
if !instr(title,"Get Chips")
{
wingetpos,,,w,h,ahk_id%id%
w-=2*xbord
h-=(2*xbord+cap)
if ((h<120) & ((w=234) or (w=240) or (w=380) or (w=392))) ;or ((h<110) & (w=281)) 
{
if closeOKwindow
ControlSend,,{Enter},ahk_id%id%
}
else
if ((w=265) or (w=267)) or ((h<120) & (w=281)) 
{
if leavetable
{
PostLeftClickFT(0.4000,0.7273,id) 
PostLeftClickFT(0.4000,0.7273,id) 
}
}
}
}
}
return
;-----------------------------------------------------------------------------------------------------

TakeSeatFromWaitlist:
TakeSeat() 
return

TakeSeat() 
{
local list,id,This_id
IfWinExist, Waiting List Options ahk_class QWidget
{
 WinGet, list, list, Waiting List Options ahk_class QWidget
 winget, tablelist,list,Logged In ahk_class QWidget,,Full Tilt
 Loop, %list%
 {
  This_id := list%A_Index%
  if (tablelist<totalnumber) or (limit=0)
  {
   settimer,NewTable,off
   PostLeftClickFT(0.2469,0.7000,this_id)
   winwait, / ahk_class QWidget,,0.5
   if !errorlevel
   {
    winget,id,id
    seated%id%:=1
   } 
   if limit or autotakeseat
   settimer,NewTable,267
  }
  else
  if (tablelist>=totalnumber) & (limit=1)
  {
   if remove
   {
    PostLeftClickFT(0.0843,0.8368,this_id) 
    PostLeftClickFT(0.5000,0.7000,this_id) 
   }
   if pressno
   PostLeftClickFT(0.5000,0.7000,this_id) 
   else
   if pressnotyet
   PostLeftClickFT(0.7439,0.7000,this_id) 
  }
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
AlterAmount(id, dir="", frac=1, unit="")
{
  WinGetTitle, title, ahk_id%id%
  amount := 0
  StringTrimRight, tablename, title, ( StrLen(title) - (InStr(title, " - ")-1) )
  IfWinExist, ahk_id%id% ahk_group FullTiltTables
  {
    StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
  }   
  StringReplace,bb,bb,$,,1
  StringReplace,bb,bb,Ј,,1
  StringReplace,bb,bb,Ђ,,1
  StringReplace,bb,bb,€,,1 
  sb := sb(bb)
  If (unit = "" or unit = "bb")
  {
    unit := bb
  }
  Else If (unit = "sb")
  {
    unit := sb
  }
  Else If (unit = "pot")
  {
    pot := 0
    call := 0
    hero_bet := 0
    street := "pre"
    hero_position := ""
    open := 0
    max := 10000000
    IfWinExist, ahk_id%id% ahk_group FullTiltTables
    {
        PotSizeFullTilt2(id, pot, call, sb, bb, hero_bet, street, hero_position, open, max)
    }
    pot := ((pot + call + hero_bet) )+ call
    unit := pot
  }
  amount := unit * frac
  if (dir="down")
  {
    amount := amount - (2*amount)
  }
  a:=floor(amount)
  if amount-a=0
  amount:=a
  
  IfWinExist, ahk_id%id% ahk_group FullTiltTables
  {
      oldClipboard = %clipboard%
      clipboard =
      PostStarsClick(767, 440, id)
      Send ^a
      Send ^c
      ClipWait, 0.3
      If !ErrorLevel
      t := clipboard
      clipboard = %oldClipBoard%
      t := t + amount
      if (t < 0)
      {
        t := 0
      }
    t2 := Round(t, 0)
    t1 := Round(t, 2)
    t := Round(t, 3)
    if t-t1=0
    t:=t1
    if t-t2=0
    t:=t2
      PostStarsClick(767, 440, id)
      Send ^a
      Send %t%
      PostStarsClick(767, 440, id)
  }
}

Pot(id, frac=1, round_bet=0.2, open_adjust="", fixblinds=0)
{
  global debug
  global attempts

  if attempts<=0
  attempts:=1
  pot := 0
  call := 0
  sb := 0
  bb := 0
  hero_bet := 0
  street := ""
  hero_position := ""
  open := 1
  max := 10000000

  IfWinExist, ahk_id%id% ahk_group FullTiltTables
  {
    loop %attempts%
    {
     PotSizeFullTilt2(id, pot, call, sb, bb, hero_bet, street, hero_position, open, max)
     if pot>0
     break
     sleep,20 
    }
    }
  Else
  {
    return
  }
 
  StringSplit, fr, frac, %A_SPACE%
  if (fr0 < 4)
  {
    times := 4 - fr0
    Loop, %times%
    {
      n := 5 - A_Index
      fr%n% := fr%fr0% 
    }
  }
  
  if (street = "pre")
  {
    frac:= Round(fr1/100,2)
  }
  else if (street = "flop")
  {
    frac:= Round(fr2/100,2)
  }
  else if (street = "turn")
  {
    frac:= Round(fr3/100,2)
  }
  else if (street = "river")
  {
    frac:= Round(fr4/100,2)
  }
  if (debug)
  {
    TrayTip, BetPot, Pot:`t`t%pot%`nCall:`t`t%call%`nHero_bet:`t%hero_bet%`n`nPosition:`t%hero_position%`n`nBlinds:`t$%sb%/$%bb%`n`nStreet:`t%street%`n`n%fr0%`n%fr1% %fr2% %fr3% %fr4%`n`n%frac%,10,17
  }
  if (fixblinds AND open AND street="pre")
  {
    if (hero_position = "sb" )
    {
      pot := pot - sb
      call := call + sb
    }
    else if (hero_position = "bb")
    {
      pot := pot - bb
      call := call + bb
    }
  }

  pot := ((pot + call + hero_bet)* (frac)) + call  

  if (open=1 AND open_adjust="ssnl" )
  {
    pot := pot + bb - sb
  }
  else if (open=1 AND open_adjust="trny" )
  {
    pot := pot - bb
  }
  else if (open=1 AND open_adjust="mix" )
  {
    if (bb=2)
    {
      pot := pot + bb - sb
    }
  ;  pot := pot + bb + sb
  }
  
  if(round_bet = "smallblind")
  {
   ; if sb<1
   ; pot := Round((Floor((pot / sb)) * sb),2)
    pot := Round((Round((pot / sb)) * sb),2)
   ; else
   ; pot := Round((Floor((pot / sb)) * sb),0)
  }
  else if(round_bet = "bigblind")
  {
    pot := Round((Floor((pot / bb)) * bb),2)
  }
  else if (round_bet < 1)
  {
    places := round_bet*10
    pot := Round(pot, (places))
  }
  else if (round_bet >= 1)
  {
    pot := Floor(pot / round_bet) * round_bet
  }
 
  p:=floor(pot)
  if pot-p=0
  pot:=p
    
  IfWinExist, ahk_id%id% ahk_group FullTiltTables
  {
    PostStarsClick(767, 440, id)
    Send ^a
    Send %pot%
  }
}

PotSizeFullTilt2(id, ByRef pot, ByRef call, ByRef sb, ByRef bb, ByRef hero_bet, ByRef street, ByRef hero_position, ByRef open, ByRef max)
{
  global deduct_rake,Racetrack
  rake := 0
  notraked := 0
  maxrake := 3
  max := 7654321
  setbatchlines,-1 
  
  WinGetTitle, title, ahk_id%id%
  StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
  StringReplace,bb,bb,$,,1
  sb := sb(bb)
  
TotalPotDigitsPosX=393
TotalPotDigitsPosY=277
if Racetrack
{
MainPotDigitsPosX=334
MainPotDigitsPosY=183
}
else
{
if !instr(title,"(6 max")
{
MainPotDigitsPosX=285
MainPotDigitsPosY=335
}
else
{
MainPotDigitsPosX=338
MainPotDigitsPosY=340
}
}
PotDigitsPosW=80
PotDigitsPosH=14
 

pot:=DigitSearchByPixelCount(TotalPotDigitsPosX,TotalPotDigitsPosY,PotDigitsPosW,PotDigitsPosH,Id)
if pot is not number
pot:=DigitSearchByPixelCount(MainPotDigitsPosX,MainPotDigitsPosY,PotDigitsPosW,PotDigitsPosH,Id)

oldClipboard:=clipboard
clipboard =
wingetpos,,,w,,ahk_id%id%
if w>=605
{
PostStarsClick(707, 418, id) ;hit min
PostStarsClick(707, 418, id) ;hit min
PostStarsClick(707, 418, id) ;hit min
}
else
{
PostLeftClickFT(0.8705,0.8341,id,0)
PostLeftClickFT(0.8705,0.8341,id,0)
}
PostStarsClick(767, 440, id)

min := sb
Send ^a
Send ^c
ClipWait, 0.3
If !ErrorLevel
 {
  min := clipboard
  clipboard = %oldClipBoard%
 }
 else
 {
 min := 2*bb 
 }
   
  street := "pre" 
  street := GetStreetFT(id,5)
   
  if (min = bb)
  {
    call := 0
  }
  else if (min > bb)
  {
    call := min / 2
  }
  else if (street != "pre")
  {
    call := bb
  }
  
    call2 := Round(call, 0)
    call1 := Round(call, 2)
    call := Round(call, 3)
    if call-call1=0
    call:=call1
    if call-call2=0
    call:=call2

  if (call != bb || street != "pre")
  {
    open := 0
  }

if call is not number
call:=0
if hero_bet is not number
hero_bet:=0 
setbatchlines,1ms
return
}

GetStreetFT(id,amount)
{
global DwmIsEnabled
if !DwmIsEnabled
CoordMode, Pixel, Screen
  street := "flop"
  x1 := 378
  y1 := 214
  x2 := 414
  y2 := 260
  if !DwmIsEnabled
  {
  relStarsScreenPoint(id, x1, y1)
  relStarsScreenPoint(id, x2, y2)
  pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount) 
  }
  else
  {
   relStarsWindowPoint(id, x1, y1)
   relStarsWindowPoint(id, x2, y2)
   pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount,"",id) 
  }
  If !pixels
  {
    street := "pre"
    return street
  } 
  x1 := 485
  y1 := 214
  x2 := 520
  y2 := 260
  if !DwmIsEnabled
  {
  relStarsScreenPoint(id, x1, y1)
  relStarsScreenPoint(id, x2, y2)
  pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount) 
  }
  else
  {
   relStarsWindowPoint(id, x1, y1)
   relStarsWindowPoint(id, x2, y2)
   pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount,"",id) 
  }
  
  If pixels
  {
    street := "river"
    return street
  }
  x1 := 431
  y1 := 214
  x2 := 461
  y2 := 260
  if !DwmIsEnabled
  {
  relStarsScreenPoint(id, x1, y1)
  relStarsScreenPoint(id, x2, y2)
  pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount) 
  }
  else
  {
   relStarsWindowPoint(id, x1, y1)
   relStarsWindowPoint(id, x2, y2)
   pixels:=GetPixelCount(x1, y1, x2, y2, 0xffffff,amount,"",id) 
  }
  If pixels
  {
    street := "turn"
  }
  return street
}

; finds number of specified pixels in a region
GetPixelCount(x1, y1, x2, y2, color,amount, options="",id=0)
{
global DwmIsEnabled
  if id
  hdc_buffer := DllCall("GetDCEx", "UInt", id,"UInt",0,"UInt",1)
  else
  CoordMode, Pixel, Screen
  pixels := (x2 - x1 + 1)*(y2 - y1 + 1)
  If ( pixels <= 0 )
  {
    ErrorLevel = 1
    return
  }
  count = 0
  x = %x1%
  Loop
  {
    If ( x > x2 )
    {
      break
    }
    y = %y1%
    Loop
    {
      If ( y > y2 )
      {
        break
      }
      if !id
      PixelGetColor, c, x, y, %options%
      else
      { 
       c := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y)
       SetFormat, IntegerFast, hex
       c += 0
       c .= ""
       SetFormat, IntegerFast, d
      }
 
      If ( c = color )
      {
        count++
        if count>%amount%
        {
         if id
         {
          DllCall( "gdi32.dll\ReleaseDC", "Uint", hdc_buffer )
          DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_buffer )
         }
         return 1
        } 
      }
      y++
    }
    x++
  }
  if id
  {
  DllCall( "gdi32.dll\ReleaseDC", "Uint", hdc_buffer )
  DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_buffer )
  }
  return 0
}

sb(bb) {
If bb = .25
 sb := .10
else if bb = 15
 sb = 10
else if bb = 0.05
 sb = 0.02
else
 sb := bb/2
if (sb > 1)
{
  sb := Round(sb, 0)
}
else
{
  sb := Round(sb, 2)
}
return sb
}

StrRep(str,char,rep_char="",all=1)
{
  StringReplace,str,str,%char%,%rep_char%,%all%
  return str
}

StrMid(str,str1,str2,startPos1=1,startPos2=1,caseSense=0){
If startPos1 =
 startPos1 = 1
If startPos2 =
 startPos2 = 1
StringTrimLeft,o,str,InStr(str,str1,cS,startPos1) + StrLen(str1) - 1
StringLeft,o,o,InStr(o,str2,caseSense,startPos2)-1
return o
}

IIf(_boolExpr, _exprTrue, _exprFalse) {
If _boolExpr
 Return _exprTrue
else
 return _exprFalse
}

relStarsClientPoint(id, ByRef x, ByRef y)
{
  global border
  global caption
  rw := 792
  rh := 546
  WinGetPos, , , w, h, ahk_id%id%
  w := w - (2*border)
  h := h - (2*border) - caption
  
  x := Floor( (x / rw ) * w )
  y := Floor( (y / rh) * h  )
  
}

relStarsWindowPoint(id, ByRef x, ByRef y)
{
  global border
  global caption
  relStarsClientPoint(id, x, y)
  x := x + border
  y := y + border + caption
}

relStarsScreenPoint(id, ByRef x, ByRef y)
{
  relStarsWindowPoint(id, x, y)
  WinGetPos, x1, y1, , , ahk_id%id%
  x += x1
  y += y1
}

reverse_calc_stars_client_area(cw, ByRef w, ByRef h)
{
  global border
  global caption
  w := cw + (2*border) 
  h := Floor(cw / 1.45) + (2*border) + caption
}

client_area(id, ByRef x, Byref y, ByRef w, Byref h)
{
  WinGetPos, x, y, w, h, ahk_id%id%
  global border
  global caption
  x := x + border
  y := y + border + caption
  w := w - (2*border)
  h := h - (2*border) - caption
  return
}

PostStarsClick(x, y, id)
{
  relStarsClientPoint(id, x, y)
  PostLeftClick(x, y, id)
}

PostLeftClick(x, y, table_id, activate=1) {
; ### JUK: Send the down left click, then the mouse-up messages.
; NOTE: This is relative to the top left of the client area and NOT the top left of the
;       window (ie: It *doesn't* include the title-bar like AHK's MouseClick does!!!).
If activate
 WinActivate, ahk_id%table_id%
PostMessage, 0x201, 0x0001, ((y<<16)^x), , ahk_id%table_id%
PostMessage, 0x202 , 0, ((y<<16)^x), , ahk_id%table_id%
}
;;;;;;;;;;;;;;;;;;;;PixelCount function source taken from PokerShortCuts;;;;;;;;;;;;;;;;;;;;;
DigitSearchByPixelCount(X,Y,W,H,WinId)
{  
global DwmIsEnabled
DigitsColor=0xFFFFFF
DigitsColorTolerance=0

FTMinimumPixelCountPerColumn := 2
FTMaximumAllowedNumPixelsInRowToBeBlank:=2 

   ; FT Pixel Count Digits for table (client width) 472-563
   PixelCountDigits52254 := 0
   PixelCountDigits276 := 1
   PixelCountDigits35335 := 2
   PixelCountDigits33335 := 2
   PixelCountDigits23344 := 3
   PixelCountDigits22276 := 4
   PixelCountDigits53335 := 5
   PixelCountDigits53321 := 6
   PixelCountDigits23321 := 7
   PixelCountDigits43344 := 8
   PixelCountDigits23354 := 9
   PixelCountDigits21 := "."
   PixelCountDigits3333332 := "A"
   PixelCountDigits333335 := "S"

   ; FT Pixel Count Digits for table (client width) 564-682
   PixelCountDigits622265 := 0
   PixelCountDigits287 := 1
   PixelCountDigits333336 := 2
   PixelCountDigits223355 := 3
   PixelCountDigits22287 := 4
   PixelCountDigits533346 := 5
   PixelCountDigits533332 := 6
   PixelCountDigits33321 := 7
   PixelCountDigits533355 := 8
   PixelCountDigits333354 := 9
   PixelCountDigits21 := "."
   PixelCountDigits3433432 := "A"
   PixelCountDigits333346 := "S"

   ; FT Pixel Count Digits for table (client width) 683-841
   PixelCountDigits6822865 := 0
   PixelCountDigits2887 := 1
   PixelCountDigits3544536 := 2
   PixelCountDigits2433855 := 3
   PixelCountDigits222787 := 4
   PixelCountDigits653646 := 5
   PixelCountDigits6833632 := 6
   PixelCountDigits47521 := 7
   PixelCountDigits5833855 := 8
   PixelCountDigits3633865 := 9
   PixelCountDigits221 := "."
   PixelCountDigits36636632 := "A"
   PixelCountDigits4644646 := "S"

   ; FT Pixel Count Special situation below 842-881 - looks like only the 2 digit is different here
   PixelCountDigits23444647 := 2

   ; FT Pixel Count Digits for table (client width) 842-960
   PixelCountDigits79222976 := 0
   PixelCountDigits22998 := 1
   PixelCountDigits33444647 := 2

   PixelCountDigits22333966 := 3
   PixelCountDigits2222998 := 4
   PixelCountDigits5533757 := 5
   PixelCountDigits68433743 := 6
   PixelCountDigits465421 := 7
   PixelCountDigits69333966 := 8
   PixelCountDigits47334865 := 9
   PixelCountDigits221 := "."
   PixelCountDigits2555355521 := "A"
   PixelCountDigits56333656 := "S"

   ; FT Pixel Count Digits for table (client width) 961-1040
   PixelCountDigits684224865 := 0
   PixelCountDigits22AA9 := 1
   PixelCountDigits354435647 := 2
   PixelCountDigits463337735 := 3
   PixelCountDigits22222AA9 := 4
   PixelCountDigits275335647 := 5
   PixelCountDigits685335632 := 6
   PixelCountDigits3555421 := 7
   PixelCountDigits7A3333A77 := 8
   PixelCountDigits365335865 := 9
   PixelCountDigits332 := "."
   PixelCountDigits3556365532 := "A"
   PixelCountDigits475445746 := "S"

   ; FT Pixel Count Digits for table (client width) 1041-1119
   PixelCountDigits8A42224A87 := 0
   PixelCountDigits22CCB := 1
   PixelCountDigits3544445649 := 2
   PixelCountDigits4623337957 := 3
   PixelCountDigits222222CCB := 4
   PixelCountDigits2863335759 := 5
   PixelCountDigits7954335743 := 6
   PixelCountDigits35555421 := 7
   PixelCountDigits5973337957 := 8
   PixelCountDigits4753345976 := 9
   PixelCountDigits332 := "."
   PixelCountDigits355653565532 := "A"
   PixelCountDigits5864446858 := "S"

   if !DwmIsEnabled
   {
   coordmode, pixel, Screen
   WindowScaledPos(X, Y, ClientScaleFactor, "Screen", WinId)
   PixelGetColor, ColorRGB,X,Y,RGB
   }
   else
   {
    hdc_buffer := DllCall("GetDCEx", "UInt", WinId,"UInt",0,"UInt",1)
    WindowScaledPos(X, Y, ClientScaleFactor, "Window", WinId)
    ColorRGB := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y)
    SetFormat, IntegerFast, hex
    ColorRGB += 0
    ColorRGB .= ""
    SetFormat, IntegerFast, d
   }
   W := Round(W * ClientScaleFactor)
   H := Round(H * ClientScaleFactor)
      CheckPrimaryColorFlag := 1
      CheckAlternateColorFlag := 0
   Y += Round(H/2)
   TopRowFound := 0
   loop, % Round(H)
   {
      Xpos := X
      PixelCountInRow := 0
      ScanWidth := Round(W*3/4)
      loop,% ScanWidth
      {
         Xpos += 1
         if !DwmIsEnabled
         PixelGetColor, ColorRGB,Xpos,Y,RGB
         else
         {
          ColorRGB := DllCall("GetPixel", "UInt", hdc_buffer, "Int", Xpos, "Int", Y)
          SetFormat, IntegerFast, hex
          ColorRGB += 0
          ColorRGB .= ""
          SetFormat, IntegerFast, d
         }
         if (CheckPrimaryColorFlag AND (ColorWithinTolerance(ColorRGB, DigitsColor, DigitsColorTolerance)))
         {
            PixelCountInRow++
            if (PixelCountInRow > FTMaximumAllowedNumPixelsInRowToBeBlank)
               break
         }
      } 
      if (Xpos == (X + ScanWidth))
      {
         TopRowFound := 1
         Y += 1                  ; move back down to the top row of the font
         break
      }
      Y -= 1
   } 
   if NOT TopRowFound
   {
      return ""
   }
   DigitString:=""
   PixelCountForAllDigitsString := ""
   PixelCountForThisDigitString := ""
   loop, %W%
   {
      ColumnNum:= A_Index
      PixelCountInColumn:=0
      FirstPixelPosition := 0
      LastPixelPosition := 0
      loop, %H%
      {
         RowNum:=A_Index
         if !DwmIsEnabled
         PixelGetColor, ColorRGB,X+ColumnNum-1,Y+RowNum-1,RGB
         else
         {
          ColorRGB := DllCall("GetPixel", "UInt", hdc_buffer, "Int", X+ColumnNum-1, "Int", Y+RowNum-1)
          SetFormat, IntegerFast, hex
          ColorRGB += 0
          ColorRGB .= ""
          SetFormat, IntegerFast, d
         }

         if (ColorWithinTolerance(ColorRGB, DigitsColor, DigitsColorTolerance))
         {
            if (!FirstPixelPosition)
               FirstPixelPosition := RowNum
            LastPixelPosition := RowNum
            PixelCountInColumn++
         }
      }
      if (PixelCountInColumn >= FTMinimumPixelCountPerColumn)
      {
         LastMinusFirstPixelPosition := LastPixelPosition  - FirstPixelPosition
         if (PixelCountInColumn > 9)
         {
            PixelCountInColumn := chr(64 + PixelCountInColumn - 9)
         }
         if PixelCountInColumn is alnum
            PixelCountForThisDigitString .= PixelCountInColumn
      }
      else
      {
         if (PixelCountForThisDigitString != "")
         {

            if (LastMinusFirstPixelPosition > 9)
               LastMinusFirstPixelPosition := chr(64 + LastMinusFirstPixelPosition - 9)
            if LastMinusFirstPixelPosition is alnum
               PixelCountForThisDigitString .= LastMinusFirstPixelPosition
            Temp := "PixelCountDigits"
            DigitString .= %Temp%%PixelCountForThisDigitString%
            PixelCountForAllDigitsString .= PixelCountForThisDigitString . A_Space
            PixelCountForThisDigitString := ""
         }
      }
   }
   Loop,
   {
      StringPosition := instr(DigitString,".")    ; find the first decimal point
      if StringPosition
      {
         if ((strlen(DigitString) - StringPosition) > 2)
            StringReplace, DigitString, DigitString,.,,
         else
            break
      }
      else
         break
   }
   if DwmIsEnabled
   {
   DllCall( "gdi32.dll\ReleaseDC", "Uint", hdc_buffer )
   DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_buffer )
   }
   if (DigitString)
   {
      PixelCountForAllDigitsStringReturned := PixelCountForAllDigitsString
      return DigitString
   }
}

ColorWithinTolerance(SampleColor, TestColor, Tolerance) {

   if (SampleColor == TestColor)
      return 1
   If (Tolerance == 0)
      return (SampleColor == TestColor)

    SampleColorRed := SampleColor >> 16
    TestColorRed := TestColor >> 16
    SampleColorGreen:= SampleColor >> 8 & 0xff
    TestColorGreen := TestColor >> 8 & 0xff
    SampleColorBlue := SampleColor & 0xff
    TestColorBlue := TestColor & 0xff
    return (    ( (SampleColorRed + Tolerance >= TestColorRed)     && (SampleColorRed - Tolerance <= TestColorRed) )
        &&      ( (SampleColorGreen + Tolerance >= TestColorGreen) && (SampleColorGreen - Toleranc <= TestColorGreene) )
        &&      ( (SampleColorBlue + Tolerance >= TestColorBlue)   && (SampleColorBlue - Tolerance <= TestColorBlue) )           )
}

WindowScaledPos(ByRef PosX, ByRef PosY, ByRef ClientScaleFactor, ScaleType="Screen", WinId="")
{
   local TitleBarHeight, WindowBottomBorder, WindowSideBorder, WindowTopBorder ,WindowX,WindowY,WindowWidth,WindowHeight
   local ClientWidth, ClientHeight , ClientWidthScaleFactor, ClientHeightScaleFactor

   StandardClientWidth=794
   StandardClientHeight=547
   SysGet, TitleBarHeight, 4
   SysGet, WindowBottomBorder, 32
   SysGet, WindowSideBorder, 33

   WindowTopBorder := TitleBarHeight + WindowBottomBorder
   WinGetPos,WindowX,WindowY,WindowWidth,WindowHeight,ahk_id%WinId%
   ClientWidth := WindowWidth - 2 * WindowSideBorder
   ClientHeight := WindowHeight - TitleBarHeight - 2 * WindowBottomBorder
   ClientWidthScaleFactor := ClientWidth / StandardClientWidth
   ClientHeightScaleFactor := ClientHeight / StandardClientHeight 
   ClientScaleFactor := ClientWidthScaleFactor     ; pass back the scaling factor in case the calling function needs it
   PosX := Round(PosX * ClientWidthScaleFactor)
   PosY := Round(PosY * ClientHeightScaleFactor)   
    if (ScaleType == "Client")
   {
      return
   }
   else if (ScaleType == "Window")
   {
      PosX += WindowSideBorder
      PosY += WindowTopBorder
   }
   else if (ScaleType == "Screen")
   {
      PosX += WindowX + WindowSideBorder
      PosY += WindowY + WindowTopBorder
   }
}

NextWindow_Calc(ByRef perp, ByRef parallel, ByRef id, ByRef min, ByRef minID) {
	parallel /= 2
	d := Sqrt(parallel*parallel+perp*perp)
	if (d < min) {
		min := d
		minID := id
	}
}
NextWindow_Activate(Byref id1, ByRef id2, Byref id3) {
	local id := id1 ? id1 : id2 ? id2 : id3 ? id3 : ""
	if !id
		return
	WinActivate, ahk_id %id%
	local window
	WinGetClass, window, ahk_id %id%
	window := "OnActivate_" . window
	if IsLabel(window)
		GoSub, %window%
}
NextWindow_Left() {
	WinGet, cId, ID, A
	WinGetPos, cX, cY, , cH,ahk_id%cId%
	cH_half := cH/2
	min := A_ScreenWidth
	minRight := min
	maxY := 0
	maxX := 0
	WinGet windows, List, Logged In ahk_class QWidget,,Full Tilt
	Loop, %windows%	{
		id := windows%A_Index%
		if (id == cID)
			continue
		WinGetPos, x, y, w, , ahk_id %id%
		dx := cX - x
		if (dx < 0) {
			dx := A_ScreenWidth - x - w
			if (dx < 0)
				dx := 0
			dy := y - cY
			if (dy < 0)
				NextWindow_Calc(dy, dx, id, minRight, minRightID)
		} else if (dx > 9) {
			dy := abs(cY - y)
			if (dy < cH_half)
				NextWindow_Calc(dy, dx, id, min, minID)
		}
		if (y >= maxY) {
			if (x >= maxX || y > maxY + cH) {
				maxX := x
				maxY := y
				oppID := id
			}
		}
	}
	NextWindow_Activate(minId, minRightID, oppID)
}
NextWindow_Right() {
	WinGet, cId, ID,A
	WinGetPos, cX, cY, , cH,ahk_id%cId%
	cH_half := cH/2
	min := A_ScreenWidth
	minLeft := min
	minY := min
	minX := min
	WinGet windows, List, Logged In ahk_class QWidget,,Full Tilt
	Loop, %windows%	{
		id := windows%A_Index%
		if (id == cID)
			continue
		WinGetPos, x, y, w, , ahk_id %id%
		dx := x - cX
		if (dx < 0) {
			dx := x
			if (dx < 0)
				dx := 0
			dy := cY - y
			if (dy < 0)
				NextWindow_Calc(dy, dx, id, minLeft, minLeftID)
		} else if (dx > 9) {
			dy := abs(cY - y)
			if (dy < cH_half)
				NextWindow_Calc(dy, dx, id, min, minID)
		}
		if (y <= minY) {
			if (x <= minX || y < minY - cH_half) {
				minX := x
				minY := y
				oppID := id
			}
		}
	}
	NextWindow_Activate(minId, minLeftID, oppID)
}
NextWindow_Up() {
	WinGet, cID, ID,A
	WinGetPos, cX, cY, cW,,ahk_id%cId%
	cW_half := cW/2
	min := A_ScreenHeight
	minDown := min
	minX := min
	maxY := 0
	WinGet windows, List, Logged In ahk_class QWidget,,Full Tilt
	Loop, %windows%	{
		id := windows%A_Index%
		if (id == cID)
			continue
		WinGetPos, x, y, , h, ahk_id %id%
		dy := cY - y
		if (dy < 0) {
			dy := A_ScreenHeight - y - h
			if (dy < 0)
				dy := 0
			dx := cX - x
			if (dx < 0)
				NextWindow_Calc(dx, dy, id, minDown, minDownId)
		} else if (dy > 9) {
			dx := abs(cX - x)
			if (dx < cW_half)
				NextWindow_Calc(dx, dy, id, min, minID)
		}
		if (x <= minX) {
			if (y >= maxY || x < minX - cW_half) {
					minX := x
					maxY := y
					oppID := id
			}
		}
	}
	NextWindow_Activate(minId, minDownID, oppID)
}
NextWindow_Down() {
	WinGet, cID, ID,A
	WinGetPos, cX, cY, cW,,ahk_id%cId%
	cW_half := cW/2
	min := A_ScreenWidth
	minUp := min
	maxX := 0
	minY := min
	WinGet windows, List, Logged In ahk_class QWidget,,Full Tilt
	Loop, %windows%	{
		id := windows%A_Index%
		if (id == cID)
			continue
		WinGetPos, x, y, , , ahk_id %id%
		dy := y - cY
		dx := x - cX
		if (dy < 0) {
			dy := y
			if (dy < 0)
				dy := 0
			dx := x - cX
			if (dx < 0)
				NextWindow_Calc(dx, dy, id, minUp, minUpID)
		} else if (dy > 9) {
			dx := abs(cX - x)
			if (dx < cW_half)
				NextWindow_Calc(dx, dy, id, min, minID)
		}
		if (x >= maxX) {
			if (y <= minY || x > maxX + cW_half) {
				maxX := x
				minY := y
				oppID := id
			}
		}
	}
	NextWindow_Activate(minId, minUpID, oppID)
}
NextWindow_Left:
NextWindow_Left()
return
;--------------------------------------------------------------------------------
NextWindow_Right:
NextWindow_Right()
return
;--------------------------------------------------------------------------------
NextWindow_Up:
NextWindow_Up()
return
;--------------------------------------------------------------------------------
NextWindow_Down:
NextWindow_Down()
return
;--------------------------------------------------------------------------------
BuildGui:
Gui, color, white
Gui, add, tab, h490 w300, General|Global hotkeys|BetPot|Table hotkeys|Time|Buy-in

Gui, Tab, General

Gui, add, text,cred y50 x35,Table view:
Gui, Add, Radio, x36 y70 w180 h20 Checked%ClassicTheme% vClassicTheme, Classic
Gui, Add, Radio, x36 y90 w180 h20 Checked%Racetrack% vRacetrack, Racetrack
Gui, add, text,cRed y125 x85, Use these options
Gui, add, text,cRed y140 x50, if you experience flicker problem
Gui, add, Checkbox, y160 x60 Checked%flicker1% Vflicker1
Gui, add, text, y175 x25,set FullTilt process
Gui, add, text, y190 x25,priority to high
Gui, add, Checkbox, y160 x180 Checked%flicker2% Vflicker2
Gui, add, text, y175 x125,set affinity to cpu1 only
Gui, add, text, y190 x125,for FullTilt process 
Gui, add, text, y205 x125,(Dual-core/HT cpu) 
Gui, add, text,cGreen y235 x25,Turning aero theme off (Vista/W7) might help
Gui, add, text,cGreen y250 x25,if these settings don't work.
Gui, Add, Radio, x26 y280 w220 h15 Checked%ActOnActiveTable% vActOnActiveTable, Send actions to active table
Gui, Add, Radio, x26 y295 w220 h15 Checked%sendundermouse% vsendundermouse, Send actions to table under mouse
Gui, add, text, y315 x25, Activate table under mouse
Gui, add, Checkbox, y315 x220 Checked%activatetableundermouse% Vactivatetableundermouse
Gui, add, text, y340 x105, Highlighter on
Gui, add, Checkbox, y340 x180 Checked%Highlight% VHighlight
Gui, Add, Radio, x25 y365 w90 h15 Checked%Highlightdef% vHighlightdef, Highlight table
Gui, Add, Radio, x25 y390 w220 h15 Checked%highlightA% vhighlightA, Highlight all tables with action on hero
Gui, Add,text, y355 x325, 
Gui, Add, Radio, x126 y360 w120 h15 Checked%highlightactive% vhighlightactive, Active
Gui, Add, Radio, x126 y375 w120 h15 Checked%highlighthero% vhighlighthero, With action on hero
Gui, add, text, y420 x25, Move mouse to action buttons
Gui, add, Checkbox, y420 x220 Checked%MoveMouse% VMoveMouse
Gui, add, text, y440 x65, Move mouse from nonfulltilt app
Gui, add, Checkbox, y440 x220 Checked%stealfocus% Vstealfocus
Gui, Add, Button, x75 y465 w55 h20 gSave,Submit
Gui, Add, Button, x135 y465 w55 h20 gCancel,Cancel

Gui, Tab, Global hotkeys

Gui, Add, Text, x25 y75 ,Find table needing action
Gui, Add, Edit, x220 y72 w50 h20 vfindtabletoact, %findtabletoact%
Gui, Add, Text, x25 y115 ,join/unjoin waiting list (main lobby)
Gui, Add, Edit, x220 y112 w50 h20 vregister, %register%
Gui, Add, Text, x25 y140 ,Join waiting list on all tables
Gui, Add, Edit, x220 y137 w50 h20 vjoinwaitlist, %joinwaitlist%
Gui, Add, Text, x25 y165 ,Unjoin waiting list on all tables
Gui, Add, Edit, x220 y162 w50 h20 vunjoinwaitlist, %unjoinwaitlist%
Gui, Add, Text, x25 y215 ,Activate next table
Gui, Add, Edit, x220 y212 w50 h20 vActivateBottomWindow, %ActivateBottomWindow%
Gui, Add, Text, x25 y245 ,Custom layout 1
Gui, Add, Edit, x220 y242 w50 h20 vlayout1, %layout1%
Gui, Add, Text, x25 y265 ,Custom layout 2
Gui, Add, Edit, x220 y262 w50 h20 vlayout2, %layout2%
Gui, Add, Text, x25 y285 ,Custom layout 3
Gui, Add, Edit, x220 y282 w50 h20 vlayout3, %layout3%
Gui, Add, Text, x25 y315 ,Suspend all hotkeys
Gui, Add, Edit, x220 y312 w50 h20 vsuspend, %suspend%
Gui, Add, Text, x25 y335 ,Pause/unpause
Gui, Add, Edit, x220 y332 w50 h20 vTogglePause, %TogglePause%
Gui, Add, Text, x90 y350 , Navigation Hotkeys
Gui, Add, Text, x25 y370 , Up
Gui, Add, Edit, x180 y370 w50 h20 vNextWindow_Up, %NextWindow_Up%
Gui, Add, Text, x25 y390 , Down
Gui, Add, Edit, x180 y390 w50 h20 vNextWindow_Down, %NextWindow_Down%
Gui, Add, Text, x25 y410 , Left
Gui, Add, Edit, x180 y410 w50 h20 vNextWindow_Left, %NextWindow_Left%
Gui, Add, Text, x25 y430 , Right
Gui, Add, Edit, x180 y430 w50 h20 vNextWindow_Right, %NextWindow_Right% 
Gui, Add, Button, x95 y460 w55 h20 gSave,Submit
Gui, Add, Button, x155 y460 w55 h20 gCancel,Cancel

Gui, Tab, Time

Gui, add, Checkbox, y75 x200 Checked%Timebank% VTimebank
Gui, add, text, y75 x25,Click Timebank automatically
Gui, add, Text, w200 y95 x25, Time delay for pressing Time button 
Gui, add, DropDownList, w40 y90 x220  vInterval1, %ddlist%
Gui, add, text, y135 x25, Click "Deal me in" automatically 
Gui, add, Checkbox, y135 x200 Checked%dealmein% Vdealmein
Gui, Add, Text, x25 y155 w120 h20 , Toggle Deal me in
Gui, Add, Edit, x180 y152 w50 h20 vToggledealmein, %Toggledealmein%
Gui, Add, Text, x25 y180 ,Sitout on all tables
Gui, Add, Edit, x180 y177 w50 h20 vSitOutNextAll, %SitOutNextAll%
Gui, Add, Text, x25 y205 ,Remove sitout on all tables
Gui, Add, Edit, x180 y202 w50 h20 vRemoveSitout, %RemoveSitout%
Gui, Add, Text, x25 y235 ,Uncheck Auto-post on all tables
Gui, Add, Edit, x180 y232 w50 h20 vuncheckpost, %uncheckpost%
Gui, Add, Button, x75 y415 w55 h20 gSave,Submit
Gui, Add, Button, x135 y415 w55 h20 gCancel,Cancel

Gui, Tab, Table hotkeys

Gui, Add, Edit, x180 y67 w50 h20 vfold, %fold%
Gui, Add, Text, x25 y70 ,Fold
Gui, Add, Edit, x180 y87 w50 h20 vcall, %call%
Gui, Add, Text, x25 y90 ,Check/Call
Gui, Add, Edit, x180 y107 w50 h20 vraise, %raise%
Gui, Add, Text, x25 y110 ,Bet/Raise
Gui, Add, Edit, x180 y127 w50 h20 vfold2any, %fold2any%
Gui, Add, Text, x25 y130 ,Fold to any
Gui, Add, Edit, x180 y147 w50 h20 vquickfold, %quickfold%
Gui, Add, Text, x25 y150 ,Quick fold (Rush poker)
Gui, Add, Edit, x180 y167 w50 h20 vallin, %allin%
Gui, Add, Text, x25 y170 ,Allin
Gui, add, Checkbox, y170 x240 Checked%Instant% VInstant,Instant
Gui, Add, Button, x75 y315 w55 h20 gSave,Submit
Gui, Add, Button, x135 y315 w55 h20 gCancel,Cancel

Gui, Tab, Buy-in

Gui, add, Checkbox, y60 x90 Checked%Buyin% VBuyin
Gui, add, text, y60 x25,Auto Buy-in
Gui, Add, Radio, x120 y50 w100 h20 Checked%max% vmax, Maximum
Gui, Add, Radio, x120 y70 w120 h20 Checked%remembered% vremembered, Remembered/default
Gui, Add, Radio, x120 y90 w20 h20 Checked%xbb% vxbb
Gui, Add, Edit, x140 y90 w30 h20 vbbmultiplier, %bbmultiplier%
Gui, Add, Text, x170 y93,BB
Gui, add, Checkbox, y120 x190 Checked%TakeSeat% VTakeSeat
Gui, add, text, y120 x25,Auto Take Seat (from waiting list)
Gui, add, Checkbox, y165 x190 Checked%autoTakeSeat% VautoTakeSeat
Gui, add, text, y165 x25,Auto Seat on new table
Gui, add, Checkbox, y190 x190 Checked%leavetable% Vleavetable
Gui, add, text, y190 x25,Auto leaving table confirmation
Gui, Add, Text, x26 y265 ,Limit total number of tables to
Gui, Add, Edit, x170 y262 w30 h20 vtotalnumber, %totalnumber%
Gui, add, Checkbox, y265 x230 Checked%limit% Vlimit
Gui, Add, Text, x16 y285 ,additionally press following button in seat available window:
Gui, Add, Radio, x26 y305 w220 h15 Checked%remove% vremove, Remove me from all waiting lists
Gui, Add, Radio, x26 y320 w220 h15 Checked%pressno% vpressno, No
Gui, Add, Radio, x26 y335 w220 h15 Checked%pressnotyet% vpressnotyet, Not yet
Gui, add, Checkbox, y390 x250 Checked%closeOKwindow% VcloseOKwindow
Gui, add, text, y390 x25,Close FullTilt windows with just OK button
Gui, Add, Button, x75 y435 w55 h20 gSave,Submit
Gui, Add, Button, x135 y435 w55 h20 gCancel,Cancel

Gui, Tab, BetPot

Gui, add, Checkbox, y55 x180 Checked%autopot% Vautopot
Gui, add, text, y55 x25,Auto put bet into bet box
Gui, Add, Text, x15 y70 ,Pre*
Gui, Add, Edit, x15 y85 w25 h20 vPotDefPre, %PotDefPre%
Gui, Add, Text, x45 y70 ,Flop*
Gui, Add, Edit, x45 y85 w25 h20 vPotDefFlop, %PotDefFlop%
Gui, Add, Text, x75 y70 ,Turn*
Gui, Add, Edit, x75 y85 w25 h20 vPotDefTurn, %PotDefTurn%
Gui, Add, Text, x105 y70 ,River*
Gui, Add, Edit, x105 y85 w25 h20 vPotDefRiver, %PotDefRiver%
Gui, Add, Text, x140 y70 ,Open
Gui, add, DropDownList, w45 y85 x140  vOpenDef, %ddlist1%
Gui, Add, Text, x175 y70 ,Round(sb)
Gui, add, Checkbox, y85 x200 Checked%RoundDef% VRoundDef
Gui, Add, Text, x230 y70 ,Fix blinds
Gui, add, Checkbox, y85 x250 Checked%FixDef% VFixDef
Gui, Add, Edit, x60 y107 w80 h20 vpot1, %pot1%
Gui, Add, Text, x15 y110 ,Pot1
Gui, Add, Text, x15 y130 ,Pre*
Gui, Add, Edit, x15 y145 w25 h20 vPot1Pre, %Pot1Pre%
Gui, Add, Text, x45 y130 ,Flop*
Gui, Add, Edit, x45 y145 w25 h20 vPot1Flop, %Pot1Flop%
Gui, Add, Text, x75 y130 ,Turn*
Gui, Add, Edit, x75 y145 w25 h20 vPot1Turn, %Pot1Turn%
Gui, Add, Text, x105 y130 ,River*
Gui, Add, Edit, x105 y145 w25 h20 vPot1River, %Pot1River%
Gui, Add, Text, x140 y130 ,Open
Gui, add, DropDownList, w45 y145 x140  vOpen1, %ddlist1%
Gui, Add, Text, x175 y130 ,Round(sb)
Gui, add, Checkbox, y145 x200 Checked%Round1% VRound1
Gui, Add, Text, x230 y130 ,Fix blinds
Gui, add, Checkbox, y145 x250 Checked%Fix1% VFix1
Gui, Add, Edit, x60 y167 w80 h20 vpot2, %pot2%
Gui, Add, Text, x15 y170 ,Pot2
Gui, Add, Edit, x15 y190 w25 h20 vPot2Pre, %Pot2Pre%
Gui, Add, Edit, x45 y190 w25 h20 vPot2Flop, %Pot2Flop%
Gui, Add, Edit, x75 y190 w25 h20 vPot2Turn, %Pot2Turn%
Gui, Add, Edit, x105 y190 w25 h20 vPot2River, %Pot2River%
Gui, add, DropDownList, w45 y190 x140  vOpen2, %ddlist1%
Gui, add, Checkbox, y190 x200 Checked%Round2% VRound2
Gui, add, Checkbox, y190 x250 Checked%Fix2% VFix2
Gui, Add, Edit, x60 y212 w80 h20 vpot3, %pot3%
Gui, Add, Text, x15 y215 ,Pot3
Gui, Add, Edit, x15 y235 w25 h20 vPot3Pre, %Pot3Pre%
Gui, Add, Edit, x45 y235 w25 h20 vPot3Flop, %Pot3Flop%
Gui, Add, Edit, x75 y235 w25 h20 vPot3Turn, %Pot3Turn%
Gui, Add, Edit, x105 y235 w25 h20 vPot3River, %Pot3River%
Gui, add, DropDownList, w45 y235 x140  vOpen3, %ddlist1%
Gui, add, Checkbox, y235 x200 Checked%Round3% VRound3
Gui, add, Checkbox, y235 x250 Checked%Fix3% VFix3
Gui, add, Checkbox, y260 x210 Checked%autobet% Vautobet
Gui, add, text, y260 x55,Additionally press bet button
Gui, Add, Edit, x80 y282 w40 h20 vincr1, %incr1%
Gui, Add, Text, x15 y285 ,Increase by
Gui, Add, Radio, x125 y280 w40 h15 Checked%bb1% vbb1,bb
Gui, Add, Radio, x125 y295 w40 h15 Checked%sb1% vsb1,sb
Gui, Add, Edit, x190 y282 w80 h20 valt1, %alt1%
Gui, Add, Edit, x80 y312 w40 h20 vincr2, %incr2%
Gui, Add, Text, x15 y315 ,Decrease by
Gui, Add, Radio, x125 y310 w40 h15 Checked%bb2% vbb2,bb
Gui, Add, Radio, x125 y325 w40 h15 Checked%sb2% vsb2,sb
Gui, Add, Edit, x190 y312 w80 h20 valt2, %alt2%
Gui, Add, Edit, x80 y342 w40 h20 vincr3, %incr3%
Gui, Add, Text, x15 y345 ,Increase by
Gui, Add, Radio, x125 y340 w40 h15 Checked%bb3% vbb3,bb
Gui, Add, Radio, x125 y355 w40 h15 Checked%sb3% vsb3,sb
Gui, Add, Edit, x190 y342 w80 h20 valt3, %alt3%
Gui, Add, Edit, x80 y372 w40 h20 vincr4, %incr4%
Gui, Add, Text, x15 y375 ,Decrease by
Gui, Add, Radio, x125 y370 w40 h15 Checked%bb4% vbb4,bb
Gui, Add, Radio, x125 y385 w40 h15 Checked%sb4% vsb4,sb
Gui, Add, Edit, x190 y372 w80 h20 valt4, %alt4%
Gui, Add, Text, x15 y400 ,Attempts to read Pot amount from screen
Gui, Add, Edit, x230 y397 w25 h20 vattempts, %attempts%
Gui, Add, Text, x15 y420 ,* Pot percent
Gui, add, text,cRed y440 x35,BetPot function will work faster with aero theme off
Gui, Add, Button, x75 y460 w55 h20 gSave,Submit
Gui, Add, Button, x135 y460 w55 h20 gCancel,Cancel

Gosub, GetIni
Gui, show, w316, %thisahk%
Return
;-----------------------------------------------------------------------------------------------------
GetIni:
Settitlematchmode,2
IfNotExist, %thisahk%.ini
gosub, CreateIni
IniRead, ClassicTheme,%thisahk%.ini, Options, ClassicTheme,0
IniRead, Racetrack,%thisahk%.ini, Options, Racetrack,0
IniRead, ActOnActiveTable, %thisahk%.ini, Options, ActOnActiveTable, 0
IniRead, sendundermouse, %thisahk%.ini, Options, sendundermouse, 0
IniRead, activatetableundermouse, %thisahk%.ini, Settings, activatetableundermouse, 0
IniRead, Highlight, %thisahk%.ini, Settings, Highlight, 0
IniRead, Highlightdef, %thisahk%.ini, Options, Highlightdef, 0
IniRead, HighlightA, %thisahk%.ini, Options, HighlightA, 0
IniRead, highlighthero, %thisahk%.ini, Options, highlighthero, 0
IniRead, highlightactive, %thisahk%.ini, Options, highlightactive, 0
IniRead, MoveMouse, %thisahk%.ini, Settings, MoveMouse, 0
IniRead, stealfocus, %thisahk%.ini, Settings, stealfocus, 0

IniRead, Interval1, %thisahk%.ini, Settings, Interval1
StringReplace, ddlist, ddlist, %interval1%, %Interval1%|
GuiControl, , Interval1, |%ddlist%
StringReplace, ddlist, ddlist, %interval1%|, %Interval1%
IniRead, flicker1, %thisahk%.ini, Settings, flicker1, 0
IniRead, flicker2, %thisahk%.ini, Settings, flicker2, 0
IniRead, dealmein, %thisahk%.ini, Settings, dealmein, 0
IniRead, Toggledealmein, %thisahk%.ini, Settings, Toggledealmein,%A_Space%
If Toggledealmein
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %Toggledealmein%, Toggledealmein
}
IniRead, Timebank, %thisahk%.ini, Settings, Timebank, 0
IniRead, SitOutNextAll, %thisahk%.ini, Hotkeys, SitOutNextAll,%A_Space%
IniRead, RemoveSitout, %thisahk%.ini, Hotkeys, RemoveSitout,%A_Space%
IniRead, uncheckpost, %thisahk%.ini, Hotkeys, uncheckpost,%A_Space%
if SitOutNextAll
Hotkey, %SitOutNextAll%,SitOutNextAll
if RemoveSitout
Hotkey, %RemoveSitout%,RemoveSitout
if uncheckpost
Hotkey, %uncheckpost%,uncheckpost

IniRead, findtabletoact, %thisahk%.ini, Hotkeys, findtabletoact,%A_Space%
if findtabletoact
Hotkey, %findtabletoact%,findtabletoact
IniRead, register, %thisahk%.ini, Settings, register,%A_Space%
IniRead, joinwaitlist, %thisahk%.ini, Settings, joinwaitlist,%A_Space%
IniRead, Unjoinwaitlist, %thisahk%.ini, Settings, Unjoinwaitlist,%A_Space%
if register
Hotkey, %register%,register
if joinwaitlist
Hotkey, %joinwaitlist%,joinwaitlist
if Unjoinwaitlist
Hotkey, %Unjoinwaitlist%,Unjoinwaitlist
IniRead, ActivateBottomWindow, %thisahk%.ini, Hotkeys, ActivateBottomWindow,%A_Space%
if ActivateBottomWindow
Hotkey, %ActivateBottomWindow%,ActivateBottomWindow
IniRead, suspend, %thisahk%.ini, Hotkeys, suspend,%A_Space%
if suspend
Hotkey, %suspend%,suspend
IniRead, TogglePause, %thisahk%.ini, Hotkeys, TogglePause,%A_Space%
if TogglePause
Hotkey, %TogglePause%,TogglePause
IniRead, layout1, %thisahk%.ini, Hotkeys, layout1,%A_Space%
if layout1
Hotkey, %layout1%,layout1
IniRead, layout2, %thisahk%.ini, Hotkeys, layout2,%A_Space%
if layout2
Hotkey, %layout2%,layout2
IniRead, layout3, %thisahk%.ini, Hotkeys, layout3,%A_Space%
if layout3
Hotkey, %layout3%,layout3
IniRead, NextWindow_Up,%thisahk%.ini, Hotkeys, NextWindow_Up,%A_Space%
IniRead, NextWindow_Down,%thisahk%.ini, Hotkeys, NextWindow_Down,%A_Space%
IniRead, NextWindow_Left,%thisahk%.ini, Hotkeys, NextWindow_Left,%A_Space%
IniRead, NextWindow_Right,%thisahk%.ini, Hotkeys, NextWindow_Right,%A_Space%
if NextWindow_Up
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %NextWindow_Up%, NextWindow_Up
}
if NextWindow_Down
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %NextWindow_Down%, NextWindow_Down
}
if NextWindow_Left
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %NextWindow_Left%, NextWindow_Left
}
if NextWindow_Right
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %NextWindow_Right%, NextWindow_Right
}
IniRead, fold, %thisahk%.ini, Hotkeys, fold,%A_Space%
IniRead, call, %thisahk%.ini, Hotkeys, call,%A_Space%
IniRead, raise, %thisahk%.ini, Hotkeys, raise,%A_Space%
IniRead, fold2any, %thisahk%.ini, Hotkeys, fold2any,%A_Space%
IniRead, quickfold, %thisahk%.ini, Hotkeys, quickfold,%A_Space%
IniRead, allin, %thisahk%.ini, Hotkeys, allin,%A_Space%
if fold
{
HotKey, IfWinActive
Hotkey, %fold%,fold
}
if call
{
HotKey, IfWinActive
Hotkey, %call%,call
}
if raise
{
HotKey, IfWinActive
Hotkey, %raise%,raise
}
if fold2any
{
HotKey, IfWinActive
Hotkey, %fold2any%,fold2any
}
if quickfold
{
HotKey, IfWinActive
Hotkey, %quickfold%,quickfold
}
if allin
{
HotKey, IfWinActive
Hotkey, %allin%,allin
}
IniRead, Instant, %thisahk%.ini, Settings, Instant, 0

IniRead, totalnumber, %thisahk%.ini, Variables, totalnumber, 0
IniRead, limit, %thisahk%.ini, Settings, limit, 0
IniRead, remove,%thisahk%.ini, Options, remove,0
IniRead, pressno,%thisahk%.ini, Options, pressno,0
IniRead, pressnotyet,%thisahk%.ini, Options, pressnotyet,0
IniRead, TakeSeat, %thisahk%.ini, Settings, TakeSeat, 0
IniRead, autoTakeSeat, %thisahk%.ini, Settings, autoTakeSeat, 0
IniRead, closeOKwindow, %thisahk%.ini, Settings, closeOKwindow, 0
IniRead, Buyin, %thisahk%.ini, Settings, Buyin, 0
IniRead, max, %thisahk%.ini, Settings, max, 0
IniRead, remembered, %thisahk%.ini, Settings, remembered, 0
IniRead, xbb, %thisahk%.ini, Settings, xbb, 0
IniRead, bbmultiplier, %thisahk%.ini, Variables, bbmultiplier,0
IniRead, leavetable, %thisahk%.ini, Settings, leavetable,0

IniRead, OpenDef, %thisahk%.ini, BetPotSettings, OpenDef
StringReplace, ddlist1, ddlist1, %OpenDef%, %OpenDef%|
GuiControl, , OpenDef, |%ddlist1%
StringReplace, ddlist1, ddlist1, %OpenDef%|, %OpenDef%
IniRead, RoundDef, %thisahk%.ini, BetPotSettings, RoundDef, 0
IniRead, FixDef, %thisahk%.ini, BetPotSettings, FixDef, 0
IniRead, PotDefPre, %thisahk%.ini, BetPotSettings, PotDefPre, 0
IniRead, PotDefFlop, %thisahk%.ini, BetPotSettings, PotDefFlop, 0
IniRead, PotDefTurn, %thisahk%.ini, BetPotSettings, PotDefTurn, 0
IniRead, PotDefRiver, %thisahk%.ini, BetPotSettings, PotDefRiver, 0
IniRead, Open1, %thisahk%.ini, BetPotSettings, Open1
StringReplace, ddlist1, ddlist1, %Open1%, %Open1%|
GuiControl, , Open1, |%ddlist1%
StringReplace, ddlist1, ddlist1, %Open1%|, %Open1%
IniRead, Round1, %thisahk%.ini, BetPotSettings, Round1, 0
IniRead, Fix1, %thisahk%.ini, BetPotSettings, Fix1, 0
IniRead, Pot1Pre, %thisahk%.ini, BetPotSettings, Pot1Pre, 0
IniRead, Pot1Flop, %thisahk%.ini, BetPotSettings, Pot1Flop, 0
IniRead, Pot1Turn, %thisahk%.ini, BetPotSettings, Pot1Turn, 0
IniRead, Pot1River, %thisahk%.ini, BetPotSettings, Pot1River, 0
IniRead, pot1, %thisahk%.ini, BetPotHotkeys, pot1,%A_Space%
if pot1
{
HotKey, IfWinActive
Hotkey, %pot1%,pot1
}
IniRead, Open2, %thisahk%.ini, BetPotSettings, Open2
StringReplace, ddlist1, ddlist1, %Open2%, %Open2%|
GuiControl, , Open2, |%ddlist1%
StringReplace, ddlist1, ddlist1, %Open2%|, %Open2%
IniRead, Round2, %thisahk%.ini, BetPotSettings, Round2, 0
IniRead, Fix2, %thisahk%.ini, BetPotSettings, Fix2, 0
IniRead, Pot2Pre, %thisahk%.ini, BetPotSettings, Pot2Pre, 0
IniRead, Pot2Flop, %thisahk%.ini, BetPotSettings, Pot2Flop, 0
IniRead, Pot2Turn, %thisahk%.ini, BetPotSettings, Pot2Turn, 0
IniRead, Pot2River, %thisahk%.ini, BetPotSettings, Pot2River, 0
IniRead, pot2, %thisahk%.ini, BetPotHotkeys, pot2,%A_Space%
if pot2
{
HotKey, IfWinActive
Hotkey, %pot2%,pot2
}
IniRead, Open3, %thisahk%.ini, BetPotSettings, Open3
StringReplace, ddlist1, ddlist1, %Open3%, %Open3%|
GuiControl, , Open3, |%ddlist1%
StringReplace, ddlist1, ddlist1, %Open3%|, %Open3%
IniRead, Round3, %thisahk%.ini, BetPotSettings, Round3, 0
IniRead, Fix3, %thisahk%.ini, BetPotSettings, Fix3, 0
IniRead, Pot3Pre, %thisahk%.ini, BetPotSettings, Pot3Pre, 0
IniRead, Pot3Flop, %thisahk%.ini, BetPotSettings, Pot3Flop, 0
IniRead, Pot3Turn, %thisahk%.ini, BetPotSettings, Pot3Turn, 0
IniRead, Pot3River, %thisahk%.ini, BetPotSettings, Pot3River, 0
IniRead, pot3, %thisahk%.ini, BetPotHotkeys, pot3,%A_Space%
if pot3
{
HotKey, IfWinActive
Hotkey, %pot3%,pot3
}
IniRead, incr1, %thisahk%.ini, BetPotSettings, incr1, 0
IniRead, bb1, %thisahk%.ini, BetPotSettings, bb1, 0
IniRead, sb1, %thisahk%.ini, BetPotSettings, sb1, 0
IniRead, alt1, %thisahk%.ini, BetPotHotkeys, alt1, %A_Space%
if alt1
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %alt1%,alt1
}
IniRead, incr2, %thisahk%.ini, BetPotSettings, incr2, 0
IniRead, bb2, %thisahk%.ini, BetPotSettings, bb2, 0
IniRead, sb2, %thisahk%.ini, BetPotSettings, sb2, 0
IniRead, alt2, %thisahk%.ini, BetPotHotkeys, alt2, %A_Space%
if alt2
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %alt2%,alt2
}
IniRead, incr3, %thisahk%.ini, BetPotSettings, incr3, 0
IniRead, bb3, %thisahk%.ini, BetPotSettings, bb3, 0
IniRead, sb3, %thisahk%.ini, BetPotSettings, sb3, 0
IniRead, alt3, %thisahk%.ini, BetPotHotkeys, alt3, %A_Space%
if alt3
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %alt3%,alt3
}
IniRead, incr4, %thisahk%.ini, BetPotSettings, incr4, 0
IniRead, bb4, %thisahk%.ini, BetPotSettings, bb4, 0
IniRead, sb4, %thisahk%.ini, BetPotSettings, sb4, 0
IniRead, alt4, %thisahk%.ini, BetPotHotkeys, alt4, %A_Space%
if alt4
{
HotKey, IfWinActive, ahk_class QWidget
Hotkey, %alt4%,alt4
}
IniRead, autopot, %thisahk%.ini, BetPotSettings, autopot, 0
IniRead, autobet, %thisahk%.ini, BetPotSettings, autobet, 0
IniRead, attempts, %thisahk%.ini, BetPotVariables, attempts, 0
Return
;-----------------------------------------------------------------------------------------------------
MakeIni:
If ClassicTheme
IniWrite, %ClassicTheme%, %thisahk%.ini, Options, ClassicTheme
If Racetrack
IniWrite, %Racetrack%, %thisahk%.ini, Options, Racetrack
if ActOnActiveTable
IniWrite, %ActOnActiveTable%, %thisahk%.ini, Options, ActOnActiveTable
if sendundermouse
IniWrite, %sendundermouse%, %thisahk%.ini, Options, sendundermouse
IniWrite, %activatetableundermouse%, %thisahk%.ini, Settings, activatetableundermouse
IniWrite, %Highlight%, %thisahk%.ini, Settings, Highlight
if Highlightdef
IniWrite, %Highlightdef%, %thisahk%.ini, Options, Highlightdef
if HighlightA
IniWrite, %HighlightA%, %thisahk%.ini, Options, HighlightA
if highlighthero
IniWrite, %highlighthero%, %thisahk%.ini, Options, highlighthero
if highlightactive
IniWrite, %highlightactive%, %thisahk%.ini, Options, highlightactive
IniWrite, %MoveMouse%, %thisahk%.ini, Settings, MoveMouse
IniWrite, %stealfocus%, %thisahk%.ini, Settings, stealfocus
IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1
IniWrite, %flicker1%, %thisahk%.ini, Settings, flicker1
IniWrite, %flicker2%, %thisahk%.ini, Settings, flicker2
IniWrite, %dealmein%, %thisahk%.ini, Settings, dealmein
if Toggledealmein
IniWrite, %Toggledealmein%, %thisahk%.ini, Settings, Toggledealmein
IniWrite, %Timebank%, %thisahk%.ini, Settings, Timebank
if SitOutNextAll
IniWrite, %SitOutNextAll%, %thisahk%.ini, Hotkeys, SitOutNextAll
if RemoveSitout
IniWrite, %RemoveSitout%, %thisahk%.ini, Hotkeys, RemoveSitout
if uncheckpost
IniWrite, %uncheckpost%, %thisahk%.ini, Hotkeys, uncheckpost

if findtabletoact
IniWrite, %findtabletoact%, %thisahk%.ini, Hotkeys, findtabletoact
if register
IniWrite, %register%, %thisahk%.ini, Settings, register
if joinwaitlist
IniWrite, %joinwaitlist%, %thisahk%.ini, Settings, joinwaitlist
if Unjoinwaitlist
IniWrite, %Unjoinwaitlist%, %thisahk%.ini, Settings, Unjoinwaitlist
if ActivateBottomWindow
IniWrite, %ActivateBottomWindow%, %thisahk%.ini, Hotkeys, ActivateBottomWindow
if suspend
IniWrite, %suspend%, %thisahk%.ini, Hotkeys, suspend
if TogglePause
IniWrite, %TogglePause%, %thisahk%.ini, Hotkeys, TogglePause
if layout1
IniWrite, %layout1%, %thisahk%.ini, Hotkeys, layout1
if layout2
IniWrite, %layout2%, %thisahk%.ini, Hotkeys, layout2
if layout3
IniWrite, %layout3%, %thisahk%.ini, Hotkeys, layout3
If NextWindow_Up
IniWrite, %NextWindow_Up%, %thisahk%.ini, Hotkeys, NextWindow_Up
If NextWindow_Down
IniWrite, %NextWindow_Down%, %thisahk%.ini, Hotkeys, NextWindow_Down
If NextWindow_Left
IniWrite, %NextWindow_Left%, %thisahk%.ini, Hotkeys, NextWindow_Left
If NextWindow_Right
IniWrite, %NextWindow_Right%, %thisahk%.ini, Hotkeys, NextWindow_Right 

if fold
IniWrite, %fold%, %thisahk%.ini, Hotkeys, fold
if call
IniWrite, %call%, %thisahk%.ini, Hotkeys, call
if raise
IniWrite, %raise%, %thisahk%.ini, Hotkeys, raise
if fold2any
IniWrite, %fold2any%, %thisahk%.ini, Hotkeys, fold2any
if quickfold
IniWrite, %quickfold%, %thisahk%.ini, Hotkeys, quickfold
if allin
IniWrite, %allin%, %thisahk%.ini, Hotkeys, allin
IniWrite, %Instant%, %thisahk%.ini, Settings, Instant

IniWrite, %totalnumber%, %thisahk%.ini, Variables, totalnumber
IniWrite, %limit%, %thisahk%.ini, Settings, limit
If remove
IniWrite, %remove%, %thisahk%.ini, Options, remove
If pressno
IniWrite, %pressno%, %thisahk%.ini, Options, pressno
If pressnotyet
IniWrite, %pressnotyet%, %thisahk%.ini, Options, pressnotyet
IniWrite, %TakeSeat%, %thisahk%.ini, Settings, TakeSeat
IniWrite, %autoTakeSeat%, %thisahk%.ini, Settings, autoTakeSeat
IniWrite, %closeOKwindow%, %thisahk%.ini, Settings, closeOKwindow
IniWrite, %Buyin%, %thisahk%.ini, Settings, Buyin
if max
IniWrite, %max%, %thisahk%.ini, Settings, max
if remembered
IniWrite, %remembered%, %thisahk%.ini, Settings, remembered
if xbb
IniWrite, %xbb%, %thisahk%.ini, Settings, xbb
IniWrite, %bbmultiplier%, %thisahk%.ini, Variables, bbmultiplier
IniWrite, %leavetable%, %thisahk%.ini, Settings, leavetable

IniWrite, %OpenDef%, %thisahk%.ini, BetPotSettings, OpenDef
IniWrite, %RoundDef%, %thisahk%.ini, BetPotSettings, RoundDef
IniWrite, %FixDef%, %thisahk%.ini, BetPotSettings, FixDef
IniWrite, %PotDefPre%, %thisahk%.ini, BetPotSettings, PotDefPre
IniWrite, %PotDefFlop%, %thisahk%.ini, BetPotSettings, PotDefFlop
IniWrite, %PotDefTurn%, %thisahk%.ini, BetPotSettings, PotDefTurn
IniWrite, %PotDefRiver%, %thisahk%.ini, BetPotSettings, PotDefRiver
IniWrite, %Open1%, %thisahk%.ini, BetPotSettings, Open1
IniWrite, %Round1%, %thisahk%.ini, BetPotSettings, Round1
IniWrite, %Fix1%, %thisahk%.ini, BetPotSettings, Fix1
IniWrite, %Pot1Pre%, %thisahk%.ini, BetPotSettings, Pot1Pre
IniWrite, %Pot1Flop%, %thisahk%.ini, BetPotSettings, Pot1Flop
IniWrite, %Pot1Turn%, %thisahk%.ini, BetPotSettings, Pot1Turn
IniWrite, %Pot1River%, %thisahk%.ini, BetPotSettings, Pot1River
if pot1
IniWrite, %pot1%, %thisahk%.ini, BetPotHotkeys, pot1
IniWrite, %Open2%, %thisahk%.ini, BetPotSettings, Open2
IniWrite, %Round2%, %thisahk%.ini, BetPotSettings, Round2
IniWrite, %Fix2%, %thisahk%.ini, BetPotSettings, Fix2
IniWrite, %Pot2Pre%, %thisahk%.ini, BetPotSettings, Pot2Pre
IniWrite, %Pot2Flop%, %thisahk%.ini, BetPotSettings, Pot2Flop
IniWrite, %Pot2Turn%, %thisahk%.ini, BetPotSettings, Pot2Turn
IniWrite, %Pot2River%, %thisahk%.ini, BetPotSettings, Pot2River
if pot2
IniWrite, %pot2%, %thisahk%.ini, BetPotHotkeys, pot2
IniWrite, %Open3%, %thisahk%.ini, BetPotSettings, Open3
IniWrite, %Round3%, %thisahk%.ini, BetPotSettings, Round3
IniWrite, %Fix3%, %thisahk%.ini, BetPotSettings, Fix3
IniWrite, %Pot3Pre%, %thisahk%.ini, BetPotSettings, Pot3Pre
IniWrite, %Pot3Flop%, %thisahk%.ini, BetPotSettings, Pot3Flop
IniWrite, %Pot3Turn%, %thisahk%.ini, BetPotSettings, Pot3Turn
IniWrite, %Pot3River%, %thisahk%.ini, BetPotSettings, Pot3River
if pot3
IniWrite, %pot3%, %thisahk%.ini, BetPotHotkeys, pot3
IniWrite, %incr1%, %thisahk%.ini, BetPotSettings, incr1
if bb1
IniWrite, %bb1%, %thisahk%.ini, BetPotSettings, bb1
if sb1
IniWrite, %sb1%, %thisahk%.ini, BetPotSettings, sb1
if alt1
IniWrite, %alt1%, %thisahk%.ini, BetPotHotkeys, alt1
IniWrite, %incr2%, %thisahk%.ini, BetPotSettings, incr2
if bb2
IniWrite, %bb2%, %thisahk%.ini, BetPotSettings, bb2
if sb2
IniWrite, %sb2%, %thisahk%.ini, BetPotSettings, sb2
if alt2
IniWrite, %alt2%, %thisahk%.ini, BetPotHotkeys, alt2
IniWrite, %incr3%, %thisahk%.ini, BetPotSettings, incr3
if bb3
IniWrite, %bb3%, %thisahk%.ini, BetPotSettings, bb3
if sb3
IniWrite, %sb3%, %thisahk%.ini, BetPotSettings, sb3
if alt3
IniWrite, %alt3%, %thisahk%.ini, BetPotHotkeys, alt3
IniWrite, %incr4%, %thisahk%.ini, BetPotSettings, incr4
if bb4
IniWrite, %bb4%, %thisahk%.ini, BetPotSettings, bb4
if sb4
IniWrite, %sb4%, %thisahk%.ini, BetPotSettings, sb4
if alt4
IniWrite, %alt4%, %thisahk%.ini, BetPotHotkeys, alt4
IniWrite, %autopot%, %thisahk%.ini, BetPotSettings, autopot
IniWrite, %autobet%, %thisahk%.ini, BetPotSettings, autobet
IniWrite, %attempts%, %thisahk%.ini, BetPotVariables, attempts
Return
;-----------------------------------------------------------------------------------------------------
CreateIni:
Racetrack:=0
ClassicTheme:=1
ActOnActiveTable:=1
sendundermouse:=0
activatetableundermouse:=0
Highlight:=0
Highlightdef:=1
HighlightA:=0
highlightactive:=1
highlighthero:=0
MoveMouse:=0
stealfocus:=1

flicker1:=1
flicker2:=0
Interval1:=1
dealmein:=0
Timebank:=0

Instant:=0

register=^r
NextWindow_Up=Up
NextWindow_Down=Down
NextWindow_Left=Left
NextWindow_Right=Right

limit:=0
remove:=0
pressno:=0
pressnotyet:=1
totalnumber:=12
TakeSeat:=0
autoTakeSeat:=0
closeOKwindow:=1
Buyin:=0
remembered:=1
bbmultiplier:=40

autopot:=0
autobet:=0
OpenDef=ssnl
Open1=ssnl
Open2=trny
Open3=----
RoundDef:=1
Round1:=1
Round2:=1
Round3:=1
fixDef:=1
fix1:=1
fix2:=1
fix3:=1
PotDefPre:=75
PotDefFlop:=75
PotDefTurn:=66
PotDefRiver:=66
Pot1Pre:=75
Pot1Flop:=75
Pot1Turn:=66
Pot1River:=66
Pot2Pre:=100
Pot2Flop:=80
Pot2Turn:=80
Pot2River:=80
Pot3Pre:=100
Pot3Flop:=100
Pot3Turn:=100
Pot3River:=100
Pot1=mbutton
Pot2=xbutton1
Pot3=xbutton2
incr1:=1
incr2:=1
incr3:=1
incr4:=1
bb1:=1
sb1:=0
bb2:=1
sb2:=0
bb3:=0
sb3:=1
bb4:=0
sb4:=1
alt1=wheelup
alt2=wheeldown
alt3=^wheelup
alt4=^wheeldown
attempts:=1

gosub, MakeIni
gosub, buildgui
return
;-----------------------------------------------------------------------------------------------------
GuiClose:
gosub, cancel
return
;-----------------------------------------------------------------------------------------------------
menuGui:
gosub, getini
winget,id,id, %thisahk% ahk_class AutoHotkeyGUI
if !DllCall( "IsWindowVisible", "UInt",id)
gosub, buildgui
else
winactivate,ahk_id%id%
Gui, Submit,nohide
return
;-----------------------------------------------------------------------------------------------------
reload:
reload
return
;-----------------------------------------------------------------------------------------------------
Save:
Gui, Submit
FileDelete, %thisahk%.ini
gosub, MakeIni
Reload
return
;-----------------------------------------------------------------------------------------------------
Cancel:
Gui, Destroy
Return
;-----------------------------------------------------------------------------------------------------
TogglePause:
pause,toggle
return
;-----------------------------------------------------------------------------------------------------
Suspend:
suspend
if A_IsSuspended=0
{
 T=Off
}
else
{
 T=On
}
Gui, 97:Add, Text,,Suspend: %T%
Gui, 97:+ToolWindow
Gui, 97:Show, w150 h20
Sleep, 1500
Gui, 97:Destroy
return
;-----------------------------------------------------------------------------------------------------
Edit:
edit
return
;-----------------------------------------------------------------------------------------------------
exitSub:
DllCall( "gdi32.dll\ReleaseDC", "Uint", tmp_buffer )
DllCall( "gdi32.dll\DeleteDC", "Uint", tmp_buffer )
DllCall( "gdi32.dll\DeleteObject","Uint",hbm_buffer)
DllCall( "gdi32.dll\ReleaseDC","Uint",hdc_buffer)
DllCall( "gdi32.dll\DeleteDC","Uint",hdc_buffer)
DllCall( "gdi32.dll\ReleaseDC","Uint",hdc_frame)
DllCall( "gdi32.dll\DeleteDC","Uint",hdc_frame)
if flicker1
{
Process, Exist, FullTiltPoker.exe
if (ErrorLevel)
{
  FTP := ErrorLevel
  Process, Priority, %FTP%, Normal
}
}
exitApp
return
;-----------------------------------------------------------------------------------------------------
or from this link http://depositfiles.com/files/he0rml4ig
FTCash - free script for FullTilt cash players. Quote
07-02-2010 , 06:44 AM
Ryendal, should work fine in the version posted above.
Can anyone check if autotake seat+autoseat+autobuyin works well in the latest version?
FTCash - free script for FullTilt cash players. Quote
07-02-2010 , 06:30 PM
Thanks Max for the update,

autotake seat+autoseat+autobuyin seem to be working fine.

I cant seem to get Check and Fold to any bet working

Win 7 64bit
FTP RaceTrack
Running AHK and FTCash as admin
Compiled script
Desktop Comp on and off (tired both)
FTCash - free script for FullTilt cash players. Quote
07-02-2010 , 07:05 PM
danny325is, could you give more info pls: limit, short or fullring table, hotkey you were trying to use.
FTCash - free script for FullTilt cash players. Quote
07-02-2010 , 08:28 PM
Quote:
Originally Posted by Max1mums
tcs, background should be more or less monotone that's all i guess. It can be lack of administrator privileges issue.
Quote:
Originally Posted by tcs
I just did that and most of it seems to work. will update if anything doesnt

cheers for the help btw
i have a problem along these lines, the function that does not work for me is the timebank autoclick.

i have admin privileges.
i use a ftp skin, but my background is solid black as well as the table.
FTCash - free script for FullTilt cash players. Quote
07-02-2010 , 10:09 PM
Tried this script for the first time yesterday and it worked pretty well, however, today, when I click any button to bet pot, it sets the amount to 0. Any idea what might have caused this?
FTCash - free script for FullTilt cash players. Quote
07-02-2010 , 10:53 PM
Arseface, try using different background temporarily to check if it is the case.
JStunna, check if correct table view is chosen on general tab, make sure that nothing covers pot amount, check if "display pot total" is turned on in FT client, notice that script won't work correctly with modified font.
FTCash - free script for FullTilt cash players. Quote
07-02-2010 , 11:37 PM
just tested this out in a sit n go. works great.
FTCash - free script for FullTilt cash players. Quote
07-03-2010 , 01:50 AM
hmm tested out a new background, it workd, reverted to my old background and it started working.
strange stuff =)). only while 1tabling though, will try other combinations later.
FTCash - free script for FullTilt cash players. Quote
07-03-2010 , 06:14 AM
Quote:
Originally Posted by Max1mums
Arseface, try using different background temporarily to check if it is the case.
JStunna, check if correct table view is chosen on general tab, make sure that nothing covers pot amount, check if "display pot total" is turned on in FT client, notice that script won't work correctly with modified font.
Correct table view is chosen, nothing covering pot amount that I know of, & display pot total is turned on. I have not modified any fonts.
FTCash - free script for FullTilt cash players. Quote

      
m