In my build (based off of the latest dev branch with these changes to remove Basic Lighting) I get an assert when exiting the engine:
The problem seems to be caused by ShadowMapManager being destroyed before AdvancedLightManager. The callstack looks something like this:ShadowMapManager::instance() - The singleton has not been created!
// This causes ShadowMapManager's MODULE_SHUTDOWN macro to run which calls ShadowMapManager::deleteSingleton(). EngineModuleManager::shutdownSystem() .. .. // This calls SHADOWMGR->deactivate(). SHADOWMGR is simply a #define pointing to, you guessed it, ShadowMapManager's singleton instance. Assert time! AdvancedLightManager::deactivate()I can fix this in my build by adding the following to ShadowMapManager's MODULE_BEGIN definition:
MODULE_SHUTDOWN_AFTER(Scene)This delays the shutdown of ShadowMapManager until the SceneManager has been destroyed which ensures AdvancedLightManager has also been destroyed. What I can't figure out is why this doesn't happen in stock T3D. Removing Basic Lighting seems to be related to this but I have no idea why.