Пример #1
0
	bool CJAnimationDataPool::_addSpriteSheetData( SSpriteSheet* pSheet )
	{
		//
		// map 교체 작업 
		std::pair<std::string, CJFlash::SSpriteSheet*> Enumerator( pSheet->name, pSheet );

		m_stl_mmap_SpriteSheet.insert( Enumerator );

		return true;
	}
Пример #2
0
	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;
	}
Пример #3
0
	bool CJAnimationDataPool::_addKeyFrameAniData( SKeyFrameAniData* pKeyFrameAniData )
	{
		//
		// map 교체 작업
		std::pair<std::string, CJFlash::SKeyFrameAniData*> Enumerator( pKeyFrameAniData->strAnimationName, pKeyFrameAniData);

		m_stl_mmap_KeyFrameSheet.insert( Enumerator );

		return true;
	}
Пример #4
0
                bool
        GetEnumerator (
                CLxLoc_GroupEnumerator  &grpEnum)
        {
                LXtObjectID              obj;

                if (LXx_OK (Enumerator (&obj)))
                        return grpEnum.take (obj);

                grpEnum.clear ();
                return false;
        }
Пример #5
0
		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";
					}
				}
			}
		}
Пример #6
0
typename Set<K,ElementTraits>::Enumerator Set<K,ElementTraits>::Enumerator::operator ++ ()
{
	Enumerator E = Enumerator(*this);
	E.m_pNode = m_pSet->Successor( m_pNode );
	return E;
}
Пример #7
0
typename Set<K,ElementTraits>::Enumerator Set<K,ElementTraits>::Items()
{
	return Enumerator(this);
}
Пример #8
0
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;
}
Пример #9
0
	//************************************
	// 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;
	}