Fixed getAssetBy... functions so the lookup loop is more stable and doesn't fail if null results return

Added sanity check to reflectionProbe preview shape so if the material didn't load right, it doesn't crash
Added logic to better control if module groups as a whole should fail if a module dependency in that group fails, defaulted to off
Added sanity check if a shape's material failed to load so it doesn't crash when checking accumulation rules
Added search bar to SimView control for easier use
This commit is contained in:
Areloch 2023-05-08 21:18:23 -05:00
parent 3538da30d0
commit 667a0db760
9 changed files with 130 additions and 235 deletions

View file

@ -104,6 +104,7 @@ S32 ModuleManager::moduleDependencySort(ModuleDefinition* const* a, ModuleDefini
ModuleManager::ModuleManager() :
mEnforceDependencies(true),
mEchoInfo(false),
mFailGroupIfModuleFail(false),
mDatabaseLocks( 0 ),
mIgnoreLoadedGroups(false)
{
@ -148,6 +149,7 @@ void ModuleManager::initPersistFields()
addField( "EnforceDependencies", TypeBool, Offset(mEnforceDependencies, ModuleManager), "Whether the module manager enforces any dependencies on module definitions it discovers or not." );
addField( "EchoInfo", TypeBool, Offset(mEchoInfo, ModuleManager), "Whether the module manager echos extra information to the console or not." );
addField( "FailGroupIfModuleFail", TypeBool, Offset(mFailGroupIfModuleFail, ModuleManager), "Whether the module manager will fail to load an entire module group if a single module fails to load.");
}
//-----------------------------------------------------------------------------
@ -292,8 +294,8 @@ bool ModuleManager::loadModuleGroup( const char* pModuleGroup )
StringTableEntry moduleId = *moduleIdItr;
// Finish if we could not resolve the dependencies for module Id (of any version Id).
if ( !resolveModuleDependencies( moduleId, 0, moduleGroup, false, moduleResolvingQueue, moduleReadyQueue ) )
return false;
if (!resolveModuleDependencies(moduleId, 0, moduleGroup, false, moduleResolvingQueue, moduleReadyQueue) && mFailGroupIfModuleFail)
return false;
}
// Check the modules we want to load to ensure that we do not have incompatible modules loaded already.
@ -524,8 +526,8 @@ bool ModuleManager::unloadModuleGroup( const char* pModuleGroup )
StringTableEntry moduleId = *moduleIdItr;
// Finish if we could not resolve the dependencies for module Id (of any version Id).
if ( !resolveModuleDependencies( moduleId, 0, moduleGroup, false, moduleResolvingQueue, moduleReadyQueue ) )
return false;
if (!resolveModuleDependencies(moduleId, 0, moduleGroup, false, moduleResolvingQueue, moduleReadyQueue) && mFailGroupIfModuleFail)
return false;
}
// Check the modules we want to load to ensure that we do not have incompatible modules loaded already.