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; }
void CSymbolEngineTableLimits::ResetOnHeartbeat() { write_log(preferences.debug_table_limits(), "[CSymbolEngineTableLimits] ResetOnHeartbeat()\n"); if (TableLimitsNeedToBeComputed()) { CBlindGuesser _blind_guesser; _blind_guesser.Guess(&tablelimit_best_guess.sblind, &tablelimit_best_guess.bblind, &tablelimit_best_guess.bbet); if (p_table_state->_s_limit_info.ante() > 0) { if (p_table_state->_s_limit_info.ante() >= sblind()) { write_log(preferences.debug_table_limits(), "[CSymbolEngineTableLimits] ERROR: ante larger than small blind\n"); _ante = kUndefinedZero; } else { _ante = p_table_state->_s_limit_info.ante(); } } AutoLockBlinds(); } }