void AudioBank::load(ObjectManager<AudioEvent>& pAudioEventManager) { if(mLoaded) return; // cache audio events for(uint32_t i = 0; i < getAudioEventEntryCount(); i++) { AudioEventEntry* audioEventEntry = getAudioEventEntry(i); AudioEvent* audioEvent = pAudioEventManager.get(audioEventEntry->getEventName()); if(audioEvent) { std::pair<uint32_t, AudioEvent*> audioEventPair; audioEventPair.first = audioEventEntry->getEventName().getID(); audioEventPair.second = audioEvent; mAudioEvents.insert(audioEventPair); } } // collect required audio files for(GESTLMap(uint32_t, AudioEvent*)::iterator it = mAudioEvents.begin(); it != mAudioEvents.end(); it++) { AudioEvent* audioEvent = it->second; for(uint32_t i = 0; i < audioEvent->getAudioFileCount(); i++) { const ObjectName& audioFileName = audioEvent->getAudioFile(i)->getFileName(); bool alreadyAdded = false; for(size_t j = 0; j < mAudioFileNames.size(); j++) { if(mAudioFileNames[j] == audioFileName) { alreadyAdded = true; break; } } if(!alreadyAdded) { mAudioFileNames.push_back(audioFileName); } } } // the bank has been loaded mLoaded = true; }