Dawn/src/game/pokerbackup/pokerdiscussion.h

64 lines
1.9 KiB
C

/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "../../libs.h"
#include "../../vn/conversation/vnconversation.h"
#include "../../vn/conversation/talk.h"
#include "actions/look.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_PLAYER_ALL_IN 0x08
#define POKER_DISCUSSION_REASON_FLOP 0x09
#define POKER_DISCUSSION_REASON_DEAL 0x0A
#define POKER_DISCUSSION_REASON_BETTING_DONE 0x0B
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 count;
} pokerdiscussion_t;
/**
* Retreives the discussion based on some discussion data.
* @param disc The discussion data to buffer into.
* @param data The discussion data.
*/
void pokerDiscussionGet(pokerdiscussion_t *disc, pokerdiscussiondata_t *data);
/**
* Fetch the discussion type from a turn type.
*
* @param winningType Winning type
* @return Relevant discussion type.
*/
uint8_t pokerDiscussionGetTypeFromTurnType(uint8_t winningType);
/**
* Queue a discussion data result onto the conversation stack.
*
* @param data The discussion data.
*/
void pokerDiscussionQueue(pokerdiscussiondata_t *data);