Exemple #1
0
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;
}