Dawn/src/game/poker/game.c
2021-09-25 11:29:23 -07:00

74 lines
1.7 KiB
C

/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "game.h"
bool pokerGameInit(pokergame_t *game) {
// Load the Assets.
pokerGameAssetsInit(&game->assets);
// Initialize the Visual Novel Engine.
vnSceneInit(&game->scene,
&game->assets.font,
&game->assets.testTexture
);
// Initialize the world
pokerWorldInit(&game->world, &game->scene, &game->assets);
// Initialize the UI.
pokerUiInit(&game->ui);
// Add the first action, the game action, and then start the action queue.
pokerGameActionStartAdd(game);
queueNext(&game->scene.conversation.actionQueue);
return true;
}
void pokerGameUpdate(pokergame_t *game) {
// Update the VN Engine.
vnSceneUpdate(&game->scene, &game->engine);
// Update the UI
pokerUiUpdate(
&game->ui,
&game->engine,
&game->assets.shader,
game->scene.characters,
game->poker.players
);
// Bind the shader.
shaderUse(&game->assets.shader);
// Render the visual novel scene.
vnSceneRenderWorld(&game->scene, &game->engine, &game->assets.shader);
pokerWorldRender(&game->world, &game->assets);
vnSceneRenderCharacters(&game->scene, &game->assets.shader);
// Render the UI
vnSceneRenderGui(&game->scene, &game->engine, &game->assets.shader);
pokerUiRender(&game->ui, &game->engine, &game->assets, &game->poker);
}
void pokerGameDispose(pokergame_t *game) {
//Cleanup the UI
pokerUiDispose(&game->ui);
// Cleanup the world
pokerWorldDispose(&game->world);
// Destroy the Visual Novel engine.
vnSceneDispose(&game->scene);
// Unload all assets
pokerGameAssetsDispose(&game->assets);
}