diff --git a/data/dynos.cpp.h b/data/dynos.cpp.h index 497ee3c7..a38e15a9 100644 --- a/data/dynos.cpp.h +++ b/data/dynos.cpp.h @@ -646,6 +646,7 @@ void *DynOS_SwapCmd(void *aCmd); void *DynOS_UpdateCmd(void *aCmd); void DynOS_UpdateGfx(); bool DynOS_IsTransitionActive(); +void DynOS_Mod_Update(); void DynOS_Mod_Shutdown(); void DynOS_ReturnToMainMenu(); diff --git a/data/dynos_gfx_update.cpp b/data/dynos_gfx_update.cpp index 55949777..a7f3a4b1 100644 --- a/data/dynos_gfx_update.cpp +++ b/data/dynos_gfx_update.cpp @@ -2,6 +2,9 @@ extern "C" { } +bool gDynosModShutdown = false; + void DynOS_Gfx_Update() { + DynOS_Mod_Update(); DynOS_Tex_Update(); } diff --git a/data/dynos_main.cpp b/data/dynos_main.cpp index 866bae37..c66439ff 100644 --- a/data/dynos_main.cpp +++ b/data/dynos_main.cpp @@ -70,11 +70,19 @@ bool DynOS_IsTransitionActive() { // // Misc // +static bool sDynosModShutdown = false; + +void DynOS_Mod_Update() { + if (sDynosModShutdown) { + sDynosModShutdown = false; + DynOS_Actor_ModShutdown(); + DynOS_Col_ModShutdown(); + DynOS_Lvl_ModShutdown(); + DynOS_MovtexQC_ModShutdown(); + DynOS_Tex_ModShutdown(); + } +} void DynOS_Mod_Shutdown() { - DynOS_Actor_ModShutdown(); - DynOS_Col_ModShutdown(); - DynOS_Lvl_ModShutdown(); - DynOS_MovtexQC_ModShutdown(); - DynOS_Tex_ModShutdown(); + sDynosModShutdown = true; } diff --git a/data/dynos_mgr_tex.cpp b/data/dynos_mgr_tex.cpp index dc0489bd..a07f790f 100644 --- a/data/dynos_mgr_tex.cpp +++ b/data/dynos_mgr_tex.cpp @@ -476,4 +476,4 @@ void DynOS_Tex_ModShutdown() { auto& pair = _DynosCustomTexs[0]; DynOS_Tex_Deactivate(pair.second); } -} \ No newline at end of file +}