VisParticleGroupDescriptor_cl *VisParticleGroupManager_cl::DoArchiveExchange(VArchive &ar, VisParticleGroupDescriptor_cl *pSource) { if (ar.IsLoading()) { VString fxname,descname; ar >> fxname; ar >> descname; VisParticleEffectFile_cl* pFX = LoadFromFile(fxname); if (!pFX) return NULL; return pFX->FindDescriptor(descname); } else
VisParticleGroupDescriptor_cl *VisParticleGroupManager_cl::FindDescriptor(const char *szName) const { const int iCount = GetResourceCount(); for (int i=0;i<iCount;i++) { VisParticleEffectFile_cl *pFX = (VisParticleEffectFile_cl *)VisResourceManager_cl::GetResourceByIndex(i); if (!pFX) continue; VisParticleGroupDescriptor_cl *pDesc = pFX->FindDescriptor(szName); if (pDesc) return pDesc; } return NULL; }