/** * 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(); }