Run init.ds from engineInit once every other system is ready
assets/init.ds is compiled and packed as init.dsb like any other script, and engineInit() runs it as the very last init step - after scriptInit() and sceneInit(), right before the initial scene is set - so it's free to use any engine system (display, audio, save, rpg, ui, scenes, ...) without having to special-case startup ordering. A syntax error or runtime failure in init.ds is fatal, same as every other errorChain()'d init step. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
1 parent
a0294aae98
commit
00b73050ad
2 files changed
+7
No files matched your search
@@ -0,0 +1 @@
|
||||
// Entry point, run once by the engine after every other system is ready.
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user