bool CJAnimationDataPool::_addSpriteSheetData( SSpriteSheet* pSheet ) { // // map 교체 작업 std::pair<std::string, CJFlash::SSpriteSheet*> Enumerator( pSheet->name, pSheet ); m_stl_mmap_SpriteSheet.insert( Enumerator ); return true; }
bool CJAnimationDataPool::_addAnimationSheetData( CJFlash::SAnimationSheet* pSheet ) { // // map 교체 작업 std::pair<std::string, CJFlash::SAnimationSheet*> Enumerator( pSheet->strAniName, pSheet ); m_stl_mmap_AnimationSheet.insert( Enumerator ); return true; }
bool CJAnimationDataPool::_addKeyFrameAniData( SKeyFrameAniData* pKeyFrameAniData ) { // // map 교체 작업 std::pair<std::string, CJFlash::SKeyFrameAniData*> Enumerator( pKeyFrameAniData->strAnimationName, pKeyFrameAniData); m_stl_mmap_KeyFrameSheet.insert( Enumerator ); return true; }
bool GetEnumerator ( CLxLoc_GroupEnumerator &grpEnum) { LXtObjectID obj; if (LXx_OK (Enumerator (&obj))) return grpEnum.take (obj); grpEnum.clear (); return false; }
DirectSound::SoundAdapters::SoundAdapters() { Io::Log() << "DirectSound: initializing..\r\n"; if (FAILED(::DirectSoundEnumerate( Enumerator, &list )) || list.empty()) Enumerator( NULL, L"Primary Sound Driver", NULL, &list ); bool report = true; for (Adapters::iterator it(list.begin()), end(list.end()); it != end; ++it) { if (::StrStrI( it->name.Ptr(), L"E-DSP Wave" )) { it->buggy = true; if (report) { report = false; Io::Log() << "DirectSound: warning, possibly buggy drivers!! activating stupid-mode..\r\n"; } } } }
typename Set<K,ElementTraits>::Enumerator Set<K,ElementTraits>::Enumerator::operator ++ () { Enumerator E = Enumerator(*this); E.m_pNode = m_pSet->Successor( m_pNode ); return E; }
typename Set<K,ElementTraits>::Enumerator Set<K,ElementTraits>::Items() { return Enumerator(this); }
typename Map<K,V,KeyElementTraits, ValueElementTraits, ThreadingModel>::Enumerator Map<K,V,KeyElementTraits, ValueElementTraits, ThreadingModel>::Enumerator::operator ++ () { Enumerator E = Enumerator(*this); E.m_pNode = m_pMap->Successor( m_pNode ); return E; }
//************************************ // Method: allocAnimationFromAnimationName // FullName: CJAnimationDataPool::allocAnimationFromAnimationName // Access: public // Returns: CJAnimation* // Qualifier: 애니메이션 이름으로 해당 애니메이션의 객체를 생성한다. // Parameter: std::string aniName - 생성할 애니메이션 이름 //************************************ CJAnimation* CJAnimationDataPool::createAnimationObjectFromAnimationName( std::string aniName ) { // // 저장된 애니메이션 시트에서 검색한다. const SAnimationSheet* pAniSheet = getAnimationSheetFromAnimationName( aniName ); if( pAniSheet == NULL ) { CCMessageBox( aniName.c_str(), NOT_ANI_SHEET ); return NULL; } std::vector<CJAnimation*>::iterator aniIter = pStl_vt_CJAni->begin(); for (; aniIter != pStl_vt_CJAni->end(); ++aniIter) { CJAnimation* ani = *aniIter; if(ani->getName() == aniName) { pStl_vt_CJAni->erase(aniIter); break; } } STL_MULTIMAP_ANIMATIONS::iterator it = m_stl_mmap_Animations.begin(); for(; it != m_stl_mmap_Animations.end(); it++) { if(it->first == aniName) { CC_SAFE_RELEASE(it->second); m_stl_mmap_Animations.erase(it); break; } } // // 애니메이션 객체 생성 CJAnimation* pAnimation = new CJAnimation; CC_ASSERT( pAnimation != NULL ); pAnimation->m_bIsCommonPath = _mIsCommon; pAnimation->_setAnimationName( aniName ); pAnimation->_setMaxFrame( pAniSheet->nFrameCount ); pAnimation->_setDataPool(this); // // STL_MULTIMAP_KEYFRAMEANIDATAS::iterator iter = m_stl_mmap_KeyFrameSheet.find( aniName ); // 애니메이션을 찾음 if( iter == m_stl_mmap_KeyFrameSheet.end() ) { return pAnimation; } SKeyFrameAniData* pKeyFrameData = iter->second; CJAnimationSprite* pCJAnimationSprite = NULL; // // 해당 애니메이션에 속한 모든 스프라이트들을 찾아서 애니메이션 객체를 구성함 while( iter->first == pKeyFrameData->strAnimationName ) { pKeyFrameData = iter->second; pCJAnimationSprite = createSpriteObjectFromSpriteName( pKeyFrameData->strSpriteName ); //added Jonguk.JEON pCJAnimationSprite->_setAniData(pKeyFrameData); pAnimation->_addKeyFrameAniData( pKeyFrameData ); pAnimation->_addSpriteData( pCJAnimationSprite ); iter++; if( iter == m_stl_mmap_KeyFrameSheet.end() ) break; } std::pair<std::string, CJFlash::CJAnimation*> Enumerator( pAniSheet->strAniName, pAnimation ); m_stl_mmap_Animations.insert( Enumerator ); aniIter = pStl_vt_CJAni->begin(); bool isOverlap = false; for (; aniIter != pStl_vt_CJAni->end(); ++aniIter) { CJAnimation* ani = *aniIter; if(ani == pAnimation) { isOverlap = true; } } if (isOverlap == false) { pStl_vt_CJAni->push_back(pAnimation); } pAnimation->preload(); return pAnimation; }