| 37 | } |
| 38 | |
| 39 | void CInfoPortion::load_shared(LPCSTR) |
| 40 | { |
| 41 | const ITEM_DATA& item_data = *id_to_index::GetById(m_InfoId); |
| 42 | |
| 43 | CUIXml* pXML = item_data._xml; |
| 44 | pXML->SetLocalRoot(pXML->GetRoot()); |
| 45 | |
| 46 | // loading from XML |
| 47 | XML_NODE* pNode = pXML->NavigateToNode(id_to_index::tag_name, item_data.pos_in_file); |
| 48 | THROW3(pNode, "info_portion id=", *item_data.id); |
| 49 | |
| 50 | //список названий диалогов |
| 51 | int dialogs_num = pXML->GetNodesNum(pNode, "dialog"); |
| 52 | info_data()->m_DialogNames.clear(); |
| 53 | for (int i = 0; i < dialogs_num; ++i) |
| 54 | { |
| 55 | shared_str dialog_name = pXML->Read(pNode, "dialog", i, ""); |
| 56 | info_data()->m_DialogNames.push_back(dialog_name); |
| 57 | } |
| 58 | |
| 59 | //список названий порций информации, которые деактивируются, |
| 60 | //после получения этой порции |
| 61 | int disable_num = pXML->GetNodesNum(pNode, "disable"); |
| 62 | info_data()->m_DisableInfo.clear(); |
| 63 | for (int i = 0; i < disable_num; ++i) |
| 64 | { |
| 65 | shared_str info_id = pXML->Read(pNode, "disable", i, ""); |
| 66 | info_data()->m_DisableInfo.push_back(info_id); |
| 67 | } |
| 68 | |
| 69 | //имена скриптовых функций |
| 70 | info_data()->m_PhraseScript.Load(pXML, pNode); |
| 71 | |
| 72 | //индексы статей |
| 73 | info_data()->m_Articles.clear(); |
| 74 | int articles_num = pXML->GetNodesNum(pNode, "article"); |
| 75 | for (int i = 0; i < articles_num; ++i) |
| 76 | { |
| 77 | LPCSTR article_str_id = pXML->Read(pNode, "article", i, NULL); |
| 78 | THROW(article_str_id); |
| 79 | info_data()->m_Articles.push_back(article_str_id); |
| 80 | } |
| 81 | |
| 82 | info_data()->m_ArticlesDisable.clear(); |
| 83 | articles_num = pXML->GetNodesNum(pNode, "article_disable"); |
| 84 | for (int i = 0; i < articles_num; ++i) |
| 85 | { |
| 86 | LPCSTR article_str_id = pXML->Read(pNode, "article_disable", i, NULL); |
| 87 | THROW(article_str_id); |
| 88 | info_data()->m_ArticlesDisable.push_back(article_str_id); |
| 89 | } |
| 90 | |
| 91 | info_data()->m_GameTasks.clear(); |
| 92 | int task_num = pXML->GetNodesNum(pNode, "task"); |
| 93 | for (int i = 0; i < task_num; ++i) |
| 94 | { |
| 95 | LPCSTR task_str_id = pXML->Read(pNode, "task", i, NULL); |
| 96 | THROW(task_str_id); |
nothing calls this directly
no test coverage detected