/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "dusk.h" #include "asset/asset.h" #include "display/tileset/tileset.h" #include "display/camera.h" typedef struct { camera_t camera; ref_t fontRef; asset_t *font; const tileset_t *fontTileset; } ui_t; extern ui_t UI; /** * Initializes the UI system, loading necessary resources. * * @return An errorret_t indicating success or failure. */ errorret_t uiInit(void); /** * Updates the UI state, handling user interactions and animations. */ void uiUpdate(void); /** * Renders the UI elements to the screen. */ void uiRender(void); /** * Sets the font tileset for UI text rendering. * * @param fontTileset Pointer to the tileset to use for UI fonts. * * @return An errorret_t indicating success or failure. */ errorret_t uiSetFont(const tileset_t *fontTileset); /** * Cleans up and frees all UI resources. */ void uiDispose(void);