void ZWeaponMgr::DeleteWeaponHasTarget( const MUID& uidTargetChar ) { if(m_list.empty()) return; z_weapon_node node; ZWeapon* pWeapon; ZWeaponMagic* pWeaponMagic; for(node = m_list.begin(); node != m_list.end(); ) { pWeapon = (*node); // 타겟을 가질 수 있는 탄은 현재 마법탄 뿐이다 if (MIsExactlyClass(ZWeaponMagic, pWeapon)) { pWeaponMagic = MDynamicCast(ZWeaponMagic, pWeapon ); if (pWeaponMagic) { if (pWeaponMagic->GetTarget() == uidTargetChar) { delete pWeaponMagic; node=m_list.erase(node); continue; } } } ++node; } }
bool ZObjectManager::DrawObject(ZObject* pObject) { if ((pObject->GetInitialized()) && (pObject->IsVisible())) { pObject->Draw(); if(pObject->IsRendered()) { if ((MIsExactlyClass(ZNetCharacter, pObject)) || (MIsExactlyClass(ZMyCharacter, pObject)) || (MIsExactlyClass(ZHumanEnemy , pObject)) ) { MStaticCast(ZCharacterObject, pObject)->DrawShadow(); } m_nOnDrawCnt++; m_nRenderedCnt++; return true; } } return false; }