diff --git a/assets/init.ds b/assets/init.ds new file mode 100644 index 00000000..d6dc0b91 --- /dev/null +++ b/assets/init.ds @@ -0,0 +1 @@ +// Entry point, run once by the engine after every other system is ready. diff --git a/src/dusk/engine/engine.c b/src/dusk/engine/engine.c index 937b3f66..5b9d5b0a 100644 --- a/src/dusk/engine/engine.c +++ b/src/dusk/engine/engine.c @@ -56,6 +56,12 @@ errorret_t engineInit(const int32_t argc, const char_t **argv) { errorChain(scriptInit()); errorChain(sceneInit()); + // Runs once every other system is ready, so init.ds can use any of them. + scripterror_t scriptInitError; + if(scriptRuntimeRunFile(SCRIPT.runtime, "init.dsb", false, &scriptInitError) != SCRIPT_OK) { + errorThrow("init.ds failed: %s", scriptInitError.message); + } + consolePrint("Engine initialized"); #ifdef DUSK_ASSERTIONS_FAKED