CCObject* CCCallFunc::copyWithZone ( CCZone* pZone )
{
	CCZone*  pNewZone = KD_NULL;
	CCCallFunc*  pRet = KD_NULL;
	
	if ( pZone && pZone->m_pCopyObject ) 
	{
		pRet = (CCCallFunc *) pZone->m_pCopyObject;
	}
	else
	{
		pRet  = new CCCallFunc ( );
		pZone = pNewZone = new CCZone ( pRet );
	}

	CCActionInstant::copyWithZone ( pZone );
	
	pRet->initWithTarget ( m_pSelectorTarget );
	pRet->m_pCallFunc = m_pCallFunc;
	
	if ( m_nScriptHandler > 0 )
	{
        pRet->m_nScriptHandler = CCScriptEngineManager::sharedManager ( )->getScriptEngine ( )->reallocateScriptHandler ( m_nScriptHandler );
    }

	CC_SAFE_DELETE ( pNewZone );
	
	return pRet;
}
예제 #2
0
	CCCallFunc * CCCallFunc::actionWithTarget(SelectorProtocol* pSelectorTarget, SEL_CallFunc selector)
	{
		CCCallFunc* pCallFunc = new CCCallFunc();
		pCallFunc->autorelease();

		pCallFunc->initWithTarget(pSelectorTarget);
		pCallFunc->m_pCallFunc = selector;

		return pCallFunc;
	}
예제 #3
0
	CCCallFunc * CCCallFunc::actionWithTarget(SelectorProtocol* pSelectorTarget, SEL_CallFunc selector)
	{
		CCCallFunc *pRet = new CCCallFunc();
		if(pRet->initWithTarget(pSelectorTarget))
		{
			pRet->m_pCallFunc = selector;
			pRet->autorelease();
			return pRet;
		}
		CC_SAFE_DELETE(pRet);
		return NULL;
	}
CCCallFunc * CCCallFunc::create(CCObject* pSelectorTarget, SEL_CallFunc selector) 
{
    CCCallFunc *pRet = new CCCallFunc();

    if (pRet && pRet->initWithTarget(pSelectorTarget)) {
        pRet->m_pCallFunc = selector;
        pRet->autorelease();
        return pRet;
    }

    CC_SAFE_DELETE(pRet);
    return NULL;
}
예제 #5
0
	CCObject * CCCallFunc::copyWithZone(cocos2d::CCZone *pZone)
	{
		CCZone* pNewZone = NULL;
		CCCallFunc* pRet = NULL;
		if(pZone && pZone->m_pCopyObject) //in case of being called at sub class
			pRet = (CCCallFunc*)(pZone->m_pCopyObject);
		else
		{
			pRet = new CCCallFunc();
			pZone = pNewZone = new CCZone(pRet);
		}
		CCActionInstant::copyWithZone(pZone);
		pRet->initWithTarget(m_pSelectorTarget);
		pRet->m_pCallFunc = m_pCallFunc;
		CC_SAFE_DELETE(pNewZone);
		return pRet;
	}
예제 #6
0
CCObject * CCCallFunc::copyWithZone(CCZone *pZone) {
    CCZone* pNewZone = NULL;
    CCCallFunc* pRet = NULL;

    if (pZone && pZone->m_pCopyObject) {
        //in case of being called at sub class
        pRet = (CCCallFunc*) (pZone->m_pCopyObject);
    } else {
        pRet = new CCCallFunc();
        pZone = pNewZone = new CCZone(pRet);
    }

    CCActionInstant::copyWithZone(pZone);
    pRet->initWithTarget(m_pSelectorTarget);
    pRet->m_pCallFunc = m_pCallFunc;
    if (m_nScriptHandler > 0 ) {
        CCLuaEngine::defaultEngine()->reallocateScriptHandler(m_nScriptHandler);
    }
    CC_SAFE_DELETE(pNewZone);
    return pRet;
}
예제 #7
0
CCObject * CCCallFunc::copyWithZone(CCZone *pZone) {
    CCZone* pNewZone = NULL;
    CCCallFunc* pRet = NULL;

    if (pZone && pZone->m_pCopyObject) {
        //in case of being called at sub class
        pRet = (CCCallFunc*) (pZone->m_pCopyObject);
    } else {
        pRet = new CCCallFunc();
        pZone = pNewZone = new CCZone(pRet);
        CC_SAFE_AUTORELEASE(pRet);
    }

    CCActionInstant::copyWithZone(pZone);
    pRet->initWithTarget(m_pSelectorTarget);
    pRet->m_pCallFunc = m_pCallFunc;
    if (m_nScriptHandler.handler) {
        pRet->m_nScriptHandler.target = m_nScriptHandler.target;
        pRet->m_nScriptHandler.handler = cocos2d::CCScriptEngineManager::sharedManager()->getScriptEngine()->reallocateScriptHandler(m_nScriptHandler.handler);
    }
    CC_SAFE_DELETE(pNewZone);
    return pRet;
}