Example #1
0
bool CAutoplayer::DoBetPot(void) {
	bool success = false;
	// Start with 2 * potsize, continue with lower betsizes, finally 1/4 pot
	for (int i=k_autoplayer_function_betpot_2_1; i<=k_autoplayer_function_betpot_1_4; i++) {
		if (p_autoplayer_functions->GetAutoplayerFunctionValue(i)) 	{
			write_log(preferences.debug_autoplayer(), 
        "[AutoPlayer] Function %s true.\n", k_standard_function_names[i]);
      if (ChangeBetPotActionToAllin(i)) {
        write_log(preferences.debug_autoplayer(), "[AutoPlayer] Adjusting bhetpot_X_Y to allin.\n");
        return DoAllin();
      }
			if (p_tablemap->betpotmethod() == BETPOT_RAISE)	{
				success = p_casino_interface->ClickButtonSequence(i, k_autoplayer_function_raise, preferences.swag_delay_3());
			}	else {
				// Default: click only betpot
				success = p_casino_interface->ClickButton(i);				
			}
      if (!success) {
        // Backup action> try yo swag betpot_X_Y
        double betpot_amount = BetsizeForBetpot(i);
        write_log(preferences.debug_autoplayer(), 
          "[AutoPlayer] Betpot with buttons failed\n");
        write_log(preferences.debug_autoplayer(), 
          "[AutoPlayer] Trying to swag %.2f instead\n", betpot_amount);
        success = p_casino_interface->EnterBetsize(betpot_amount);
      }
		}
    if (success) {
			// Register the action
			// Treat betpot like swagging, i.e. raising a user-defined amount
			p_symbol_engine_history->RegisterAction(k_autoplayer_function_betsize);
			return true;
    }
		// Else continue trying with the next betpot function
	}
	// We didn't click any betpot-button
	return false;
}
double MaximumBetsizeForGameType() {
	double maximum_betsize = 0;
	if (p_symbol_engine_gametype->ispl())	{
		write_log(preferences.debug_betsize_adjustment(),
			"[SwagAdjustment] Game-type is Pot Limit.\n");
		maximum_betsize = BetsizeForBetpot(k_autoplayer_function_betpot_1_1);
    write_log(preferences.debug_betsize_adjustment(), 
      "[SwagAdjustment] MaximumBetsizeForPotLimit: %.2f\n", maximum_betsize);
	}	else if (p_symbol_engine_gametype->isfl()) {
		write_log(preferences.debug_betsize_adjustment(), 
			"[SwagAdjustment] Game-type is Fixed Limit. No \"swagging\" supported.\n");
		maximum_betsize = 0;
	}	else {
		int userchair = p_symbol_engine_userchair->userchair();
		write_log(preferences.debug_betsize_adjustment(), 
			"[SwagAdjustment] Game-type is No Limit. Betsize restricted only by users balance.\n");
		maximum_betsize = MaximumPossibleBetsizeBecauseOfBalance();
	}
	write_log(preferences.debug_betsize_adjustment(), 
		"[SwagAdjustment] MaximumBetsizeForGameType(): %.2f\n", maximum_betsize);
	assert(maximum_betsize >= 0);
	return maximum_betsize;	
}
bool ChangeBetPotActionToAllin(int betpot_action_code) {
  assert(betpot_action_code >= k_autoplayer_function_betpot_2_1);
  assert(betpot_action_code <= k_autoplayer_function_betpot_1_4);
  return ChangeBetsizeToAllin(BetsizeForBetpot(betpot_action_code));
}