/** * Copyright (c) 2021 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include #include "../../display/animation/queue.h" #include "../dealer.h" /** * Shorthand action callback parser. Takes the queue, action and the intended * turn count to complete the action. * * @param queue Queue that fired the action. * @param action Action that was fired. * @param count Count of cards to turn over from the deck. */ void _pokerActionFlopDo(queue_t *queue, queueaction_t *action, uint8_t count); /** Callbacks for River, Turn and Flop Actions */ void _pokerActionFlopOnStart(queue_t *queue, queueaction_t *action, uint8_t i); void _pokerActionTurnOnStart(queue_t *queue, queueaction_t *action, uint8_t i); void _pokerActionRiverOnStart(queue_t *queue, queueaction_t *action, uint8_t i); /** * Queues a flop action onto the queue. * * @param queue Queue to add to. * @param poker Poker game instance to flop. * @return The queued action. */ queueaction_t * pokerActionFlopAdd(queue_t *queue, poker_t *poker); /** * Queues a turn action onto the queue. * * @param queue Queue to add to. * @param poker Poker game instance to turn. * @return The queued action. */ queueaction_t * pokerActionTurnAdd(queue_t *queue, poker_t *poker); /** * Queues a river action onto the queue. * * @param queue Queue to add to. * @param poker Poker game instance to river. * @return The queued action. */ queueaction_t * pokerActionRiverAdd(queue_t *queue, poker_t *poker);