void CCActionManager::removeAction(CCAction *pAction) { // explicit null handling // 确定处理, null if (pAction == NULL) { return; } tHashElement *pElement = NULL; CCObject *pTarget = pAction->getOriginalTarget(); HASH_FIND_INT(m_pTargets, &pTarget, pElement); if (pElement) { unsigned int i = ccArrayGetIndexOfObject(pElement->actions, pAction); if (UINT_MAX != i) { removeActionAtIndex(i, pElement); } } else { CCLOG("cocos2d: removeAction: Target not found"); } }
void CCArray::exchangeObject(CCObject* object1, CCObject* object2) { unsigned int index1 = ccArrayGetIndexOfObject(data, object1); if(index1 == UINT_MAX) { return; } unsigned int index2 = ccArrayGetIndexOfObject(data, object2); if(index2 == UINT_MAX) { return; } ccArraySwapObjectsAtIndexes(data, index1, index2); }
/** Searches for the first occurrence of object and removes it. If object is not found the function has no effect. */ void ccArrayRemoveObject(ccArray *arr, CCObject* object, bool bReleaseObj/* = true*/) { unsigned int index = ccArrayGetIndexOfObject(arr, object); if (index != CC_INVALID_INDEX) { ccArrayRemoveObjectAtIndex(arr, index, bReleaseObj); } }
void ccArrayFastRemoveObject(ccArray *arr, CCObject* object) { unsigned int index = ccArrayGetIndexOfObject(arr, object); if (index != CC_INVALID_INDEX) { ccArrayFastRemoveObjectAtIndex(arr, index); } }
/** Searches for the first occurrence of object and removes it. If object is not found the function has no effect. */ void ccArrayRemoveObject(ccArray *arr, Ref* object, bool releaseObj/* = true*/) { auto index = ccArrayGetIndexOfObject(arr, object); if (index != CC_INVALID_INDEX) { ccArrayRemoveObjectAtIndex(arr, index, releaseObj); } }
void ccArrayFastRemoveObject(ccArray *arr, Ref* object) { auto index = ccArrayGetIndexOfObject(arr, object); if (index != CC_INVALID_INDEX) { ccArrayFastRemoveObjectAtIndex(arr, index); } }
void ActionManager::removeAction(Action *action) { // explicit null handling if (action == nullptr) { return; } tHashElement *element = nullptr; Ref *target = action->getOriginalTarget(); HASH_FIND_PTR(_targets, &target, element); if (element) { auto i = ccArrayGetIndexOfObject(element->actions, action); if (i != CC_INVALID_INDEX) { removeActionAtIndex(i, element); } } }
void ActionManager::removeAction(Action *action) { // explicit null handling if (action == NULL) { return; } tHashElement *element = NULL; Object *target = action->getOriginalTarget(); HASH_FIND_PTR(m_pTargets, &target, element); if (element) { long i = ccArrayGetIndexOfObject(element->actions, action); if (i != CC_INVALID_INDEX) { removeActionAtIndex(i, element); } } else { CCLOG("cocos2d: removeAction: Target not found"); } }
/** Returns a Boolean value that indicates whether object is present in array. */ bool ccArrayContainsObject(ccArray *arr, CCObject* object) { return ccArrayGetIndexOfObject(arr, object) != CC_INVALID_INDEX; }
unsigned int CCArray::indexOfObject(CCObject* object) { return ccArrayGetIndexOfObject(data, object); }