void CCGridAction::startWithTarget(CCNode *pTarget) { CCActionInterval::startWithTarget(pTarget); CCGridBase *newgrid = this->getGrid(); CCNode *t = m_pTarget; CCGridBase *targetGrid = t->getGrid(); if (targetGrid && targetGrid->getReuseGrid() > 0) { if (targetGrid->isActive() && targetGrid->getGridSize().width == m_sGridSize.width && targetGrid->getGridSize().height == m_sGridSize.height /*&& dynamic_cast<CCGridBase*>(targetGrid) != NULL*/) { targetGrid->reuse(); } else { CCAssert(0, ""); } } else { if (targetGrid && targetGrid->isActive()) { targetGrid->setActive(false); } t->setGrid(newgrid); t->getGrid()->setActive(true); } }