Missile* SimpleStoresMgr::getNextMissileImp() { Missile* msl = 0; Basic::PairStream* list = getWeapons(); if (list != 0) { Basic::List::Item* item = list->getFirstItem(); while (item != 0 && msl == 0) { Basic::Pair* pair = (Basic::Pair*) item->getValue(); Missile* p = dynamic_cast<Missile*>( pair->object() ); if (p != 0) { if (p->isInactive() || p->isReleaseHold()) { msl = (Missile*) p->getPointer(); } } item = item->getNext(); } list->unref(); } return msl; }
Missile* SimpleStoresMgr::getNextMissileImp() { Missile* msl = nullptr; base::PairStream* list = getWeapons(); if (list != nullptr) { // find the first free (inactive) missile base::List::Item* item = list->getFirstItem(); while (item != nullptr && msl == nullptr) { base::Pair* pair = static_cast<base::Pair*>(item->getValue()); Missile* p = dynamic_cast<Missile*>(pair->object()); if (p != nullptr) { if (p->isInactive() || p->isReleaseHold()) { msl = static_cast<Missile*>(p->getPointer()); } } item = item->getNext(); } list->unref(); } return msl; }