Files
dusk/src/engine/engine.c
2025-10-01 19:21:20 -05:00

66 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 "console/console.h"
#include "display/display.h"
#include "scene/scenemanager.h"
#include "asset/assetmanager.h"
#include "game/game.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();
consoleInit();
inputInit();
errorChain(assetManagerInit());
errorChain(displayInit());
errorChain(sceneManagerInit());
errorChain(gameInit());
// Init scripts
#if PSP
consoleExec("exec config/init_psp.dcf");
#else
consoleExec("exec config/init.dcf");
#endif
errorOk();
}
errorret_t engineUpdate(void) {
timeUpdate();
inputUpdate();
consoleUpdate();
assetManagerUpdate();
gameUpdate();
sceneManagerUpdate();
errorChain(displayUpdate());
errorOk();
}
errorret_t engineDispose(void) {
gameDispose();
errorChain(displayDispose());
assetManagerDispose();
consoleDispose();
errorOk();
}