Files
dusk/src/engine/engine.c
2025-11-03 14:33:42 -06:00

65 lines
1.2 KiB
C

/**
* Copyright (c) 2025 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "engine.h"
#include "util/memory.h"
#include "time/time.h"
#include "input/input.h"
#include "display/display.h"
#include "scene/scenemanager.h"
#include "asset/assetmanager.h"
#include "ui/ui.h"
#include "rpg/rpg.h"
engine_t ENGINE;
asset_t *outAsset;
ref_t outRef;
errorret_t engineInit(void) {
memoryZero(&ENGINE, sizeof(engine_t));
ENGINE.running = true;
// Init systems. Order is important.
timeInit();
inputInit();
errorChain(assetManagerInit());
errorChain(displayInit());
errorChain(uiInit());
errorChain(rpgInit());
errorChain(sceneManagerInit());
errorOk();
}
errorret_t engineUpdate(void) {
timeUpdate();
inputUpdate();
assetManagerUpdate();
rpgUpdate();
uiUpdate();
sceneManagerUpdate();
errorChain(displayUpdate());
if(inputPressed(INPUT_ACTION_RAGEQUIT)) ENGINE.running = false;
errorOk();
}
void engineExit(void) {
ENGINE.running = false;
}
errorret_t engineDispose(void) {
sceneManagerDispose();
rpgDispose();
uiDispose();
errorChain(displayDispose());
assetManagerDispose();
errorOk();
}