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

#pragma once
#include "../../libs.h"
#include "pokergame.h"

/** Maximum number of messages that the discussion buffer can hold */
#define POKER_DISCUSSION_MESSAGE_COUNT_MAX 32

/** Why the discussion is happening */
#define POKER_DISCUSSION_REASON_TEST 0x00
#define POKER_DISCUSSION_REASON_MATCH_START 0x01
#define POKER_DISCUSSION_REASON_ROUND_START 0x02
#define POKER_DISCUSSION_REASON_BLINDS_TAKEN 0x03
#define POKER_DISCUSSION_REASON_PLAYER_FOLDING 0x04
#define POKER_DISCUSSION_REASON_PLAYER_CHECKING 0x05
#define POKER_DISCUSSION_REASON_PLAYER_CALLING 0x06
#define POKER_DISCUSSION_REASON_PLAYER_RAISING 0x07
#define POKER_DISCUSSION_REASON_FLOP 0x08
#define POKER_DISCUSSION_REASON_DEAL 0x09

typedef struct {
  pokergame_t *poker;
  uint8_t reason;
  uint8_t playerCause;
  uint8_t playerTarget;
} pokerdiscussiondata_t;

typedef struct {
  char *messages[POKER_DISCUSSION_MESSAGE_COUNT_MAX];
  uint8_t players[POKER_DISCUSSION_MESSAGE_COUNT_MAX];
  uint8_t emotions[POKER_DISCUSSION_MESSAGE_COUNT_MAX];
  uint8_t count;
} pokerdiscussion_t;