// Returns the coordinates (rectangle) of a button, if it exists. bool CTablemapAccess::GetButtonRect(int button_code, RECT *_rect) { CString button_name = GetButtonName(button_code); if (button_name != "") { return GetTableMapRect(button_name, _rect); } return false; }
void CScraperAccess::GetNeccessaryTablemapObjects() { // NUMBERS (from labels) _allin_button_number = SearchForButtonNumber(k_button_allin); _raise_button_number = SearchForButtonNumber(k_button_raise); _call_button_number = SearchForButtonNumber(k_button_call); _check_button_number = SearchForButtonNumber(k_button_check); _fold_button_number = SearchForButtonNumber(k_button_fold); _prefold_button_number = SearchForButtonNumber(k_button_prefold); _sitin_button_number = SearchForButtonNumber(k_button_sitin); _sitout_button_number = SearchForButtonNumber(k_button_sitout); _leave_button_number = SearchForButtonNumber(k_button_leave); _autopost_button_number = SearchForButtonNumber(k_button_autopost); // NAMES button_names[k_autoplayer_function_allin] = GetButtonName(_allin_button_number); button_names[k_autoplayer_function_raise] = GetButtonName(_raise_button_number); button_names[k_autoplayer_function_call] = GetButtonName(_call_button_number); button_names[k_autoplayer_function_check] = GetButtonName(_check_button_number); button_names[k_autoplayer_function_fold] = GetButtonName(_fold_button_number); button_names[k_autoplayer_function_prefold] = GetButtonName(_prefold_button_number); button_names[k_autoplayer_function_sitin] = GetButtonName(_sitin_button_number); button_names[k_autoplayer_function_sitout] = GetButtonName(_sitout_button_number); button_names[k_autoplayer_function_leave] = GetButtonName(_leave_button_number); button_names[k_autoplayer_function_autopost] = GetButtonName(_autopost_button_number); // same for the betpot buttons - hardcoded so should only be done once at startup ? for (int i = k_betpot_min; i <= k_betpot_max; i++) { button_names[i].Format("%s_%s", k_betpot_button_name[k_betpot_index(i)], "button"); } // hardcoded so should only be done once at startup ? _i3_button_name = "i3button"; _i3_edit_name = "i3edit"; _i3_slider_name = "i3slider"; _i3_handle_name = "i3handle"; _i86_button_name = "i86button"; CString button_name = ""; for (int i = 0; i < k_max_number_of_i86X_buttons; i++) { button_name.Format("i86%dbutton", i); _i86X_button_name[i] = button_name; } // VISIBLE visible_buttons[k_autoplayer_function_allin] = GetButtonVisible(_allin_button_number); visible_buttons[k_autoplayer_function_raise] = GetButtonVisible(_raise_button_number); visible_buttons[k_autoplayer_function_call] = GetButtonVisible(_call_button_number); visible_buttons[k_autoplayer_function_check] = GetButtonVisible(_check_button_number); visible_buttons[k_autoplayer_function_fold] = GetButtonVisible(_fold_button_number); visible_buttons[k_autoplayer_function_prefold] = GetButtonVisible(_prefold_button_number); visible_buttons[k_autoplayer_function_sitin] = GetButtonVisible(_sitin_button_number); visible_buttons[k_autoplayer_function_sitout] = GetButtonVisible(_sitout_button_number); visible_buttons[k_autoplayer_function_leave] = GetButtonVisible(_leave_button_number); visible_buttons[k_autoplayer_function_autopost] = GetButtonVisible(_autopost_button_number); // visible betpot buttons for (int i = k_betpot_min; i <= k_betpot_max; i++) { visible_buttons[i] = GetBetpotButtonVisible(k_betpot_index(i)); } // hardcoded i3_button_visible = GetButtonVisible(k_button_i3); i86_button_visible = GetButtonVisible(k_button_i86); for (int i = 0; i < k_max_number_of_i86X_buttons; i++) { i86X_button_visible[i] = GetButtonVisible(k_button_i86*k_max_number_of_i86X_buttons + i); } // DEFINED + AVAILABLE for (int i = k_autoplayer_function_allin; i < k_number_of_autoplayer_functions; i++) { defined_buttons[i] = p_tablemap_access->GetButtonRect(button_names[i], &p_casino_interface->action_buttons[i]); available_buttons[i] = defined_buttons[i] && visible_buttons[i]; } // Defined + Available special regions i3_button_defined = p_tablemap_access->GetButtonRect("i3button", &p_casino_interface->i3_button); i3_edit_defined = p_tablemap_access->GetTableMapRect("i3edit", &p_casino_interface->i3_edit_region); i3_slider_defined = p_tablemap_access->GetTableMapRect("i3slider", &p_casino_interface->i3_slider_region); i3_handle_defined = p_tablemap_access->GetTableMapRect("i3button", &p_casino_interface->i3_handle_region); i86_button_defined = p_tablemap_access->GetButtonRect("i86button", &p_casino_interface->i86_button); i3_button_available = i3_button_defined && i3_button_visible; i86_button_available = i86_button_defined && i86_button_visible; // i86Xbutton CString i86X_button_name = ""; for (int i = 0; i < k_max_number_of_i86X_buttons; i++) { i86X_button_name.Format("i86%dbutton", i); i86X_button_defined[i] = p_tablemap_access->GetButtonRect(i86X_button_name, &p_casino_interface->i86X_button[i]); i86X_button_available[i] = i86X_button_defined[i] && i86X_button_visible[i]; } // ALLIN POSSIBLE allin_option_available = false; if (i3_button_available) allin_option_available = true; if (i3_button_visible && available_buttons[k_autoplayer_function_allin]) allin_option_available = true; if (i3_button_visible && i3_edit_defined) allin_option_available = true; if (i3_button_visible && i3_slider_defined && i3_handle_defined) allin_option_available = true; }
void CScraperAccess::GetNeccessaryTablemapObjects() { // NUMBERS (from labels) _allin_button_number = SearchForButtonNumber(k_button_allin); _raise_button_number = SearchForButtonNumber(k_button_raise); _call_button_number = SearchForButtonNumber(k_button_call); _check_button_number = SearchForButtonNumber(k_button_check); _fold_button_number = SearchForButtonNumber(k_button_fold); _prefold_button_number = SearchForButtonNumber(k_button_prefold); _sitin_button_number = SearchForButtonNumber(k_button_sitin); _sitout_button_number = SearchForButtonNumber(k_button_sitout); _leave_button_number = SearchForButtonNumber(k_button_leave); _rematch_button_number = SearchForButtonNumber(k_button_rematch); _autopost_button_number = SearchForButtonNumber(k_button_autopost); // NAMES button_names[k_autoplayer_function_allin] = GetButtonName(_allin_button_number); button_names[k_autoplayer_function_raise] = GetButtonName(_raise_button_number); button_names[k_autoplayer_function_call] = GetButtonName(_call_button_number); button_names[k_autoplayer_function_check] = GetButtonName(_check_button_number); button_names[k_autoplayer_function_fold] = GetButtonName(_fold_button_number); button_names[k_standard_function_prefold] = GetButtonName(_prefold_button_number); button_names[k_hopper_function_sitin] = GetButtonName(_sitin_button_number); button_names[k_hopper_function_sitout] = GetButtonName(_sitout_button_number); button_names[k_hopper_function_leave] = GetButtonName(_leave_button_number); button_names[k_hopper_function_rematch] = GetButtonName(_rematch_button_number); button_names[k_hopper_function_autopost] = GetButtonName(_autopost_button_number); // same for the betpot buttons - hardcoded so should only be done once at startup ? for (int i=k_autoplayer_function_betpot_2_1; i<=k_autoplayer_function_betpot_1_4; ++i) { int button_index = i - k_autoplayer_function_betpot_2_1; button_names[i].Format("%sbutton", k_betpot_button_name[button_index]); } // hardcoded so should only be done once at startup ? _i3_button_name = "i3button"; _i3_edit_name = "i3edit"; _i3_slider_name = "i3slider"; _i3_handle_name = "i3handle"; CString button_name = ""; for (int i = 0; i < k_max_number_of_i86X_buttons; i++) { button_name.Format("i86%dbutton", i); _i86X_button_name[i] = button_name; } // VISIBLE visible_buttons[k_autoplayer_function_allin] = GetButtonVisible(_allin_button_number); visible_buttons[k_autoplayer_function_raise] = GetButtonVisible(_raise_button_number); visible_buttons[k_autoplayer_function_call] = GetButtonVisible(_call_button_number); visible_buttons[k_autoplayer_function_check] = GetButtonVisible(_check_button_number); visible_buttons[k_autoplayer_function_fold] = GetButtonVisible(_fold_button_number); visible_buttons[k_standard_function_prefold] = GetButtonVisible(_prefold_button_number); visible_buttons[k_hopper_function_sitin] = GetButtonVisible(_sitin_button_number); visible_buttons[k_hopper_function_sitout] = GetButtonVisible(_sitout_button_number); visible_buttons[k_hopper_function_leave] = GetButtonVisible(_leave_button_number); visible_buttons[k_hopper_function_rematch] = GetButtonVisible(_rematch_button_number); visible_buttons[k_hopper_function_autopost] = GetButtonVisible(_autopost_button_number); // visible betpot buttons for (int i=k_autoplayer_function_betpot_2_1; i<=k_autoplayer_function_betpot_1_4; ++i) { int button_index = i - k_autoplayer_function_betpot_2_1; visible_buttons[i] = GetBetpotButtonVisible(button_index); } // hardcoded i3_button_visible = GetButtonVisible(k_button_i3); for (int i = 0; i < k_max_number_of_i86X_buttons; i++) { i86X_button_visible[i] = GetButtonVisible(k_button_i86*k_max_number_of_i86X_buttons + i); } // DEFINED + AVAILABLE for (int i=0; i<k_number_of_standard_functions; i++) { defined_buttons[i] = p_tablemap_access->GetButtonRect(button_names[i], &p_casino_interface->action_buttons[i]); available_buttons[i] = defined_buttons[i] && visible_buttons[i]; } // Defined + Available special regions i3_button_defined = p_tablemap_access->GetButtonRect("i3button", &p_casino_interface->i3_button); i3_edit_defined = p_tablemap_access->GetTableMapRect("i3edit", &p_casino_interface->i3_edit_region); i3_slider_defined = p_tablemap_access->GetTableMapRect("i3slider", &p_casino_interface->i3_slider_region); i3_handle_defined = p_tablemap_access->GetTableMapRect("i3handle", &p_casino_interface->i3_handle_region); i3_button_available = i3_button_defined && i3_button_visible; // i86Xbutton CString i86X_button_name = ""; for (int i = 0; i < k_max_number_of_i86X_buttons; i++) { i86X_button_name.Format("i86%dbutton", i); i86X_button_defined[i] = p_tablemap_access->GetButtonRect(i86X_button_name, &p_casino_interface->i86X_button[i]); i86X_button_available[i] = i86X_button_defined[i] && i86X_button_visible[i]; } // ALLIN POSSIBLE allin_option_available = false; if (i3_button_available) { allin_option_available = true; } else if (i3_button_visible && available_buttons[k_autoplayer_function_allin]) { allin_option_available = true; } else if (available_buttons[k_autoplayer_function_allin]) { // Sometimes we just see an allin-button // without swag-confirmation-button (i3 like above) // if an opponent puts us allin // and we only have the options "fold" and "allin" (not call) allin_option_available = true; } else if (i3_button_visible && i3_edit_defined) { allin_option_available = true; } else if (i3_button_visible && i3_slider_defined && i3_handle_defined) { allin_option_available = true; } }