void CActor::UpdateAvailableDialogs (CPhraseDialogManager* partner) { m_AvailableDialogs.clear(); m_CheckedDialogs.clear(); if(CInventoryOwner::m_known_info_registry->registry().objects_ptr()) { for(KNOWN_INFO_VECTOR::const_iterator it = CInventoryOwner::m_known_info_registry->registry().objects_ptr()->begin(); CInventoryOwner::m_known_info_registry->registry().objects_ptr()->end() != it; ++it) { //подгрузить кусочек информации с которым мы работаем CInfoPortion info_portion; info_portion.Load((*it).info_id); for(u32 i = 0; i<info_portion.DialogNames().size(); i++) AddAvailableDialog(*info_portion.DialogNames()[i], partner); } } //добавить актерский диалог собеседника CInventoryOwner* pInvOwnerPartner = smart_cast<CInventoryOwner*>(partner); VERIFY(pInvOwnerPartner); for(u32 i = 0; i<pInvOwnerPartner->CharacterInfo().ActorDialogs().size(); i++) AddAvailableDialog(pInvOwnerPartner->CharacterInfo().ActorDialogs()[i], partner); CPhraseDialogManager::UpdateAvailableDialogs(partner); }
void CActor::UpdateAvailableDialogs (CPhraseDialogManager* partner) { m_AvailableDialogs.clear(); m_CheckedDialogs.clear(); //добавить актерский диалог собеседника CInventoryOwner* pInvOwnerPartner = smart_cast<CInventoryOwner*>(partner); VERIFY(pInvOwnerPartner); for(u32 i = 0; i<pInvOwnerPartner->CharacterInfo().ActorDialogs().size(); i++) AddAvailableDialog(pInvOwnerPartner->CharacterInfo().ActorDialogs()[i], partner); CPhraseDialogManager::UpdateAvailableDialogs(partner); }