Added resetting betting round command
This commit is contained in:
@ -43,9 +43,7 @@ void _pokerGameActionRoundOnEnd(queue_t *queue,queueaction_t *action,uint8_t i){
|
||||
// will take over.
|
||||
|
||||
// TODO: finish
|
||||
// pokerBetResetBetter(
|
||||
// &game->poker.bet, game->poker.players, game->poker.roundSmallBlind
|
||||
// );
|
||||
pokerResetBettingRound(&game->poker);
|
||||
pokerGameActionBetAdd(game);
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,8 @@ void pokerResetRound(poker_t *poker) {
|
||||
poker->potCount = 0;
|
||||
pokerPotAdd(poker);
|
||||
|
||||
pokerResetBettingRound(poker);
|
||||
|
||||
for(i = 0; i < poker->playerCount; i++) {
|
||||
player = poker->players + i;
|
||||
player->cardCount = 0;
|
||||
@ -37,6 +39,28 @@ void pokerResetRound(poker_t *poker) {
|
||||
}
|
||||
}
|
||||
|
||||
void pokerResetBettingRound(poker_t *poker) {
|
||||
uint8_t i;
|
||||
pokerplayer_t *player;
|
||||
|
||||
// Reset the round betting state.
|
||||
for(i = 0; i < poker->playerCount; i++) {
|
||||
player = poker->players + i;
|
||||
player->state =flagOff(player->state,POKER_PLAYER_STATE_HAS_BET_THIS_ROUND);
|
||||
}
|
||||
|
||||
// Now reset to the first player that needs to bet.
|
||||
if(poker->playerCount > 0) {
|
||||
poker->better = (poker->playerBigBlind + 1) % poker->playerCount;
|
||||
} else {
|
||||
poker->better = 0x00;
|
||||
}
|
||||
|
||||
// Then we check who's remaining. We do this because the default better may
|
||||
// have folded already.
|
||||
poker->better = pokerPlayerGetRemainingBetter(poker);
|
||||
}
|
||||
|
||||
void pokerNewDealer(poker_t *poker) {
|
||||
uint8_t i, j, k;
|
||||
pokerplayer_t *player;
|
||||
@ -113,6 +137,7 @@ void pokerBurn(poker_t *poker, uint8_t count) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Player Functions
|
||||
uint8_t pokerPlayerAdd(poker_t *poker) {
|
||||
pokerplayer_t *player;
|
||||
|
@ -166,6 +166,9 @@ typedef struct {
|
||||
uint8_t playerSmallBlind;
|
||||
/** Index of the big blind player */
|
||||
uint8_t playerBigBlind;
|
||||
|
||||
/** Which player is the current active better ? */
|
||||
uint8_t better;
|
||||
} poker_t;
|
||||
|
||||
|
||||
@ -183,6 +186,13 @@ void pokerInit(poker_t *poker);
|
||||
*/
|
||||
void pokerResetRound(poker_t *poker);
|
||||
|
||||
/**
|
||||
* Reset the poker betting round.
|
||||
*
|
||||
* @param poker Poker game instance to reset for.
|
||||
*/
|
||||
void pokerResetBettingRound(poker_t *poker);
|
||||
|
||||
/**
|
||||
* Cycles to the next dealer. This will also select the new small and big blind
|
||||
* players.
|
||||
|
Reference in New Issue
Block a user