50 lines
956 B
C
50 lines
956 B
C
/**
|
|
* 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(); |