// Copyright (c) 2021 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #pragma once #include "../libs.h" #include "../display/shader.h" #include "../display/camera.h" #include "../poker/card.h" #include "../poker/player.h" #include "../poker/render.h" #include "../poker/action.h" #include "../display/render.h" #include "../display/spritebatch.h" #include "../display/texture.h" #include "../display/tileset.h" #include "../display/framebuffer.h" /** Name of the current game */ #define GAME_NAME "Dawn" /** Describes the current game */ typedef struct { char *name; /** Current Card Deck */ card_t deck[CARD_DECK_SIZE]; uint8_t deckSize; /** Dealer Money */ uint32_t blindSmall; uint32_t blindBig; uint32_t pot; /** Dealer Hand */ card_t cards[HOLDEM_DEALER_HAND]; uint8_t cardsFacing; /** Player States */ pokerplayer_t players[POKER_PLAYER_COUNT]; /** Action Queue */ pokeraction_t actionQueue[POKER_ACTION_QUEUE_SIZE]; void *actionData[POKER_ACTION_DATA_SIZE*POKER_ACTION_QUEUE_SIZE]; bool actionInitState[POKER_ACTION_DATA_SIZE]; /** Rendering Assets */ texture_t *kagamiTexture; tileset_t *kagamiTileset; primitive_t *kagamiQuad; primitive_t *tablePrimitive; texture_t *tableTexture; texture_t *cardTexture; tileset_t *cardTileset; primitive_t *cardPrimitive; texture_t *fontTexture; tileset_t *fontTileset; spritebatch_t *fontBatch; shader_t *shaderWorld; framebuffer_t *frameLeft; framebuffer_t *frameRight; primitive_t *quadLeft; primitive_t *quadRight; camera_t cameraMain; camera_t cameraLeft; camera_t cameraRight; } game_t; /** The current running game state. */ extern game_t GAME_STATE;