MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / load_shared

Method load_shared

ogsr_engine/xrGame/InfoPortion.cpp:39–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37}
38
39void 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);

Callers

nothing calls this directly

Calls 6

NavigateToNodeMethod · 0.80
GetNodesNumMethod · 0.80
clearMethod · 0.45
ReadMethod · 0.45
push_backMethod · 0.45
LoadMethod · 0.45

Tested by

no test coverage detected