92 lines
2.4 KiB
C
92 lines
2.4 KiB
C
/**
|
|
* Copyright (c) 2021 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "bet.h"
|
|
|
|
void _pokerGameActionBetOnStart(
|
|
queue_t *queue, queueaction_t *action, uint8_t i
|
|
) {
|
|
bool isHuman;
|
|
pokergame_t *game = (pokergame_t *)action->data;
|
|
|
|
//TODO: Fix this whole filee
|
|
// Reset the UI state.
|
|
// isHuman = game->poker.bet.better == POKER_PLAYER_HUMAN_INDEX;
|
|
// if(isHuman) pokerUiBetShow(&game->ui);
|
|
}
|
|
|
|
void _pokerGameActionBetOnUpdate(
|
|
queue_t *queue, queueaction_t *action, uint8_t i
|
|
) {
|
|
// Restack
|
|
// bool isHuman;
|
|
// bool turnMade = false;
|
|
// pokerturn_t turn;
|
|
// pokergame_t *game = (pokergame_t *)action->data;
|
|
// pokerplayer_t *player;
|
|
// pokerdiscussiondata_t discussion;
|
|
|
|
// // Are they human?
|
|
// player = game->poker.players + game->poker.bet.better;
|
|
// isHuman = game->poker.bet.better == POKER_PLAYER_HUMAN_INDEX;
|
|
|
|
// // Handle as an AI
|
|
// if(isHuman) {
|
|
// turn = game->ui.betTurn;
|
|
// turnMade = game->ui.betTurnMade;
|
|
// } else {
|
|
// turn = pokerTurnGet(&game->poker, game->poker.bet.better);
|
|
// turnMade = true;
|
|
// }
|
|
|
|
// // Now decide if we should do something.
|
|
// if(!turnMade) return;
|
|
|
|
// // Perform the action
|
|
// pokerTurnAction(&game->poker, player, &turn);
|
|
|
|
// // Speak
|
|
// discussion.reason = pokerDiscussionGetTypeFromTurnType(turn.type);
|
|
// discussion.poker = game;
|
|
// discussion.playerCause = game->poker.bet.better;
|
|
// pokerDiscussionQueue(&discussion);
|
|
|
|
// Next.
|
|
queueNext(queue);
|
|
}
|
|
|
|
void _pokerGameActionBetOnEnd(
|
|
queue_t *queue, queueaction_t *action, uint8_t i
|
|
) {
|
|
pokergame_t *game = (pokergame_t *)action->data;
|
|
|
|
// // Get which player is remaining to move.
|
|
// game->poker.bet.better = pokerBetGetRemainingPlayer(
|
|
// &game->poker.bet, game->poker.players, game->poker.roundSmallBlind
|
|
// );
|
|
|
|
// // Restack
|
|
// pokerGameActionRestackAdd(game);
|
|
|
|
// // Are we waiting on any players?
|
|
// if(game->poker.bet.better != 0xFF) {
|
|
// pokerGameActionLookAdd(game, game->poker.bet.better);
|
|
// pokerGameActionBetAdd(game);
|
|
// return;
|
|
// }
|
|
|
|
// Not waiting, do next action.
|
|
pokerGameActionFlopAdd(game);
|
|
}
|
|
|
|
queueaction_t * pokerGameActionBetAdd(pokergame_t *game) {
|
|
queueaction_t *action = pokerGameActionAdd(game);
|
|
action->onStart = &_pokerGameActionBetOnStart;
|
|
action->onUpdate = &_pokerGameActionBetOnUpdate;
|
|
action->onEnd = &_pokerGameActionBetOnEnd;
|
|
return action;
|
|
} |