void NexusGameType::shipTouchFlag(Ship *theShip, FlagItem *theFlag) { // Don't mount to ship, instead increase current mounted NexusFlag // flagCount, and remove collided flag from game for(S32 i = theShip->mMountedItems.size() - 1; i >= 0; i--) { NexusFlagItem *shipFlag = dynamic_cast(theShip->mMountedItems[i].getPointer()); if(theFlag && shipFlag) { NexusFlagItem *theFlagNexus = dynamic_cast(theFlag); U32 flagAdd = 1; if(theFlagNexus && theFlagNexus->getFlagCount() >= 1) flagAdd = theFlagNexus->getFlagCount(); shipFlag->changeFlagCount(shipFlag->getFlagCount() + flagAdd); break; } } theFlag->setCollideable(false); theFlag->removeFromDatabase(); theFlag->deleteObject(); }