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

#pragma once
#include "../../libs.h"
#include "pokergameassets.h"
#include "../../poker/poker.h"
#include "../../vn/conversation/talk.h"
#include "../../vn/vnscene.h"
#include "../../util/array.h"
#include "pokerui.h"
#include "pokerworld.h"
#include "pokergameaction.h"

typedef struct {
  /** Game Engine Instance */
  engine_t engine;

  /** Poker Game State */
  poker_t poker;

  /** Visual Novel Engine */
  vnscene_t scene;

  /** Assets (Files) for the game. */
  pokergameassets_t assets;

  /** Poker Game World. */
  pokerworld_t world;

  /** UI For the Game */
  pokerui_t ui;

  /** Data for the actions */
  pokergameactiondata_t actionData[ANIMATION_QUEUE_ITEM_MAX];
} pokergame_t;

/**
 * Restacks the poker game's stack.
 * 
 * @param game Poker game to restack
 */
void pokerGameQueueRestack(pokergame_t *game);