CCRepeatForever *CCRepeatForever::actionWithAction(CCActionInterval *pAction) { CCRepeatForever *pRet = new CCRepeatForever(); if (pRet && pRet->initWithAction(pAction)) { pRet->autorelease(); return pRet; } CC_SAFE_DELETE(pRet); return NULL; }
CCObject* CCRepeatForever::copyWithZone(CCZone *pZone) { CCZone* pNewZone = NULL; CCRepeatForever* pRet = NULL; if(pZone && pZone->m_pCopyObject) //in case of being called at sub class { pRet = (CCRepeatForever*)(pZone->m_pCopyObject); } else { pRet = new CCRepeatForever(); pZone = pNewZone = new CCZone(pRet); } CCActionInterval::copyWithZone(pZone); // win32 : use the m_pOther's copy object. pRet->initWithAction((CCActionInterval*)(m_pInnerAction->copy()->autorelease())); CC_SAFE_DELETE(pNewZone); return pRet; }