void GridAction::startWithTarget(Node *target) { ActionInterval::startWithTarget(target); cacheTargetAsGridNode(); GridBase *newgrid = this->getGrid(); GridBase *targetGrid = _gridNodeTarget->getGrid(); if (targetGrid && targetGrid->getReuseGrid() > 0) { if (targetGrid->isActive() && targetGrid->getGridSize().width == _gridSize.width && targetGrid->getGridSize().height == _gridSize.height) { targetGrid->reuse(); } else { CCASSERT(0, "Invalid grid parameters!"); } } else { if (targetGrid && targetGrid->isActive()) { targetGrid->setActive(false); } _gridNodeTarget->setGrid(newgrid); _gridNodeTarget->getGrid()->setActive(true); } }
void GridAction::startWithTarget(Node *target) { ActionInterval::startWithTarget(target); GridBase *newgrid = this->getGrid(); Node *t = _target; GridBase *targetGrid = t->getGrid(); if (targetGrid && targetGrid->getReuseGrid() > 0) { if (targetGrid->isActive() && targetGrid->getGridSize().width == _gridSize.width && targetGrid->getGridSize().height == _gridSize.height /*&& dynamic_cast<GridBase*>(targetGrid) != NULL*/) { targetGrid->reuse(); } else { CCASSERT(0, ""); } } else { if (targetGrid && targetGrid->isActive()) { targetGrid->setActive(false); } t->setGrid(newgrid); t->getGrid()->setActive(true); } }