Cleaned some of the betting code.
This commit is contained in:
@ -34,6 +34,26 @@ void pokerBetResetBetter(poker_t *poker) {
|
||||
poker->bet.better = POKER_BET_ROUND_PLAYER_DEFAULT(poker);
|
||||
}
|
||||
|
||||
bool pokerBetPlayerCanBet(pokerbet_t *bet, pokerplayer_t *player) {
|
||||
if((player->state & POKER_PLAYER_STATE_FOLDED) != 0) return false;
|
||||
if(player->state & POKER_PLAYER_STATE_OUT) return false;
|
||||
if(player->state & POKER_PLAYER_STATE_ROUND_MOVE) {
|
||||
if(player->currentBet >= bet->currentBet && player) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
uint8_t pokerBetGetRemainingPlayer(poker_t *poker) {
|
||||
uint8_t def, j, pi;
|
||||
def = POKER_BET_ROUND_PLAYER_DEFAULT(poker);
|
||||
for(j = 0; j < POKER_PLAYER_COUNT; j++) {
|
||||
pi = ((def + j) % POKER_PLAYER_COUNT);
|
||||
if(!pokerBetPlayerCanBet(&poker->bet, poker->players + pi)) continue;
|
||||
return pi;
|
||||
}
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
void pokerBetTakeBlinds(poker_t *poker) {
|
||||
pokerBetPlayer(poker, poker->players + poker->roundSmallBlind,
|
||||
poker->bet.blindSmall
|
||||
|
@ -37,6 +37,24 @@ void pokerBetPlayer(poker_t *poker, pokerplayer_t *player, int32_t chips);
|
||||
*/
|
||||
void pokerBetResetBetter(poker_t *poker);
|
||||
|
||||
/**
|
||||
* Returns whether or not a player can bet for the current round.
|
||||
*
|
||||
* @param bet Game bet state.
|
||||
* @param player Player to check.
|
||||
* @return True if the player can bet, otherwise false.
|
||||
*/
|
||||
bool pokerBetPlayerCanBet(pokerbet_t *bet, pokerplayer_t *player);
|
||||
|
||||
/**
|
||||
* Returns the index of the first player that remains to bet for the current
|
||||
* round.
|
||||
*
|
||||
* @param poker Poker instance to fetch from.
|
||||
* @return The player index of the remaining player, otherwise 0xFF.
|
||||
*/
|
||||
uint8_t pokerBetGetRemainingPlayer(poker_t *poker);
|
||||
|
||||
/**
|
||||
* Takes the current blinds from the correct players.
|
||||
*
|
||||
|
Reference in New Issue
Block a user