void gkTextManager::getTextFiles(TextArray& dest, int textType) { gkResourceManager::ResourceIterator iter = getResourceIterator(); while (iter.hasMoreElements()) { gkTextFile* tf = static_cast<gkTextFile*>(iter.getNext().second); if (textType < 0 || tf->getType() == textType) dest.push_back(tf); } }
/** * Erzeugt eine Liste von Soundnamen. * @return Erzeugte Namensliste. * @author JoSch * @date 06-17-2004 */ StringList SoundManager::getSounds() { StringList result; ResourceMapIterator it = getResourceIterator(); while (it.hasMoreElements()) { result.push_back(it.peekNextValue()->getName()); it.moveNext(); } return result; }
CLuaScriptPtr CLuaScriptManager::getByLuaState(lua_State *state) { OGRE_LOCK_AUTO_MUTEX; ASSERT(state); ResourceMapIterator it(getResourceIterator()); while (it.hasMoreElements()) { CLuaScriptPtr ptr(it.getNext().dynamicCast<CLuaScript>()); if (ptr->getLuaState() == state) { return ptr; } } throw Ogre::Exception(0, "Lua script not found.", __FILE__); }
void gkGroupManager::notifyDestroyAllImpl(void) { m_attachements.clear(); if (m_sceneListener) { if (gkSceneManager::getSingletonPtr()) gkSceneManager::getSingleton().removeResourceListener(m_sceneListener); delete m_sceneListener; m_sceneListener = 0; } gkResourceManager::ResourceIterator it = getResourceIterator(); while (it.hasMoreElements()) { gkGameObjectGroup* grp = static_cast<gkGameObjectGroup*>(it.getNext().second); grp->destroyAllInstances(); } }
void gkTextManager::parseScripts(const gkString& group) { gkResourceManager::ResourceIterator iter = getResourceIterator(); while (iter.hasMoreElements()) { gkTextFile* tf = static_cast<gkTextFile*>(iter.getNext().second); if (!group.empty() && tf->getGroupName() != group) continue; const gkString& buf = tf->getText(); const int type = tf->getType(); #ifdef OGREKIT_COMPILE_OGRE_SCRIPTS try { if (type == TT_MATERIAL) { Ogre::DataStreamPtr memStream( OGRE_NEW Ogre::MemoryDataStream((void*)buf.c_str(), buf.size())); Ogre::MaterialManager::getSingleton().parseScript(memStream, group); } else if (type == TT_PARTICLE) { Ogre::DataStreamPtr memStream( OGRE_NEW Ogre::MemoryDataStream((void*)buf.c_str(), buf.size())); Ogre::ParticleSystemManager::getSingleton().parseScript(memStream, group); } else if (type == TT_FONT) { // Note: font must be an external file (.ttf anyway (texture fonts are not tested) ) Ogre::DataStreamPtr memStream( OGRE_NEW Ogre::MemoryDataStream((void*)buf.c_str(), buf.size())); Ogre::FontManager::getSingleton().parseScript(memStream, group); } else if (type == TT_COMPOSIT) { Ogre::DataStreamPtr memStream( OGRE_NEW Ogre::MemoryDataStream((void*)buf.c_str(), buf.size())); Ogre::CompositorManager::getSingleton().parseScript(memStream, group); } } catch (Ogre::Exception& e) { gkLogMessage("TextManager: " << e.getDescription()); continue; } if (type == TT_BFONT) { utMemoryStream stream; stream.open(buf.c_str(), buf.size(), utStream::SM_READ); gkFontManager::getSingleton().parseScript(&stream); } #endif #ifdef OGREKIT_USE_LUA if (type == TT_LUA) gkLuaManager::getSingleton().createFromText(gkResourceName(tf->getResourceName().getName(), group), buf); #endif } #ifdef OGREKIT_COMPILE_OGRE_SCRIPTS // Overlays are a dependant script. (.material .font) try { TextArray overlays; getTextFiles(overlays, TT_OVERLAY); TextArray::Iterator it = overlays.iterator(); while (it.hasMoreElements()) { gkTextFile* tf = (gkTextFile*)it.getNext(); const gkString& buf = tf->getText(); const int type = tf->getType(); Ogre::DataStreamPtr memStream( OGRE_NEW Ogre::MemoryDataStream((void*)buf.c_str(), buf.size())); Ogre::OverlayManager::getSingleton().parseScript(memStream, Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); } } catch (Ogre::Exception& e) { gkLogMessage("TextManager: " << e.getDescription()); } #endif }