void CTableLimits::CalcBetsizesForEveryStreet() { write_log(3, "CTableLimits::CalcBetsizesForEveryStreet()\n"); // Use the best known values here, not tablelimit_unreliable_input SetBet(k_betround_preflop, bblind()); SetBet(k_betround_flop, bblind()); SetBet(k_betround_turn, bigbet()>=0.01 ? bigbet() : (isnl() || ispl() ? bblind() : bblind()*2)); SetBet(k_betround_river, bigbet()>=0.01 ? bigbet() : (isnl() || ispl() ? bblind() : bblind()*2)); }
bool CSymbolEngineTableLimits::EvaluateSymbol(const char *name, double *result, bool log /* = false */) { FAST_EXIT_ON_OPENPPL_SYMBOLS(name); if (memcmp(name, "bet", 3)==0) { if (memcmp(name, "bet", 3)==0 && strlen(name)==3) { *result = bet(); return true; } else if (memcmp(name, "bet", 3)==0 && strlen(name)==4) { char betround = name[3]; if ((betround >= '1') && (betround <= '4')) { *result = bet(name[3]-'0'); return true; } } // Invalid symbol return false; } if (memcmp(name, "bblind", 6)==0 && strlen(name)==6) { *result = bblind(); } else if (memcmp(name, "sblind", 6)==0 && strlen(name)==6) { *result = sblind(); } else if (memcmp(name, "ante", 4)==0 && strlen(name)==4) { *result = ante(); } else if (memcmp(name, "buyin", 5)==0 && strlen(name)==5) { *result = buyin(); } else { // Symbol of a different symbol-engine return false; } // Valid symbol return true; }
double CSymbolEngineTableLimits::bet(int betround) { assert(betround >= k_betround_preflop); assert(betround <= k_betround_river); assert(p_symbol_engine_gametype != NULL); if (p_symbol_engine_gametype->isfl() && (betround >= k_betround_turn)) { return bigbet(); } return bblind(); }