/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #pragma once #include "cutscene.h" #include "cutscenemode.h" typedef struct { const cutscene_t *scene; uint8_t currentItem; // Data (used by the current item). cutsceneitemdata_t data; cutscenemode_t mode; } cutscenesystem_t; extern cutscenesystem_t CUTSCENE_SYSTEM; /** * Initialize the cutscene system. */ void cutsceneSystemInit(); /** * Start a cutscene. * * @param cutscene Pointer to the cutscene to start. */ void cutsceneSystemStartCutscene(const cutscene_t *cutscene); /** * Advance to the next item in the cutscene. */ void cutsceneSystemNext(); /** * Update the cutscene system for one frame. */ void cutsceneSystemUpdate(); /** * Get the current cutscene item. * * @return Pointer to the current cutscene item. */ const cutsceneitem_t * cutsceneSystemGetCurrentItem();