/**
 * Copyright (c) 2021 Dominic Masters
 * 
 * This software is released under the MIT License.
 * https://opensource.org/licenses/MIT
 */

#include "deal.h"

void _pokerActionDealOnStart(queue_t *queue, queueaction_t *action, uint8_t i) {
  poker_t *poker;
  poker = (poker_t *)action->data;

  // Shuffle the deck
  cardShuffle(poker->dealer.deck, CARD_DECK_SIZE);

  // Deal 2 card to each player
  pokerDealerDealAll(poker, POKER_DEAL_CARD_EACH);
  
  printf("Cards Dealt\n");
  queueNext(queue);
}

queueaction_t * pokerActionDealAdd(queue_t *queue, poker_t *poker) {
  queueaction_t *action;
  action = queueAdd(queue);
  action->data = (void *)poker;
  action->onStart = &_pokerActionDealOnStart;
  return action;
}