Skip to content

Commit

Permalink
xrGame: Compatibility with new XML parser
Browse files Browse the repository at this point in the history
Thanks to Im-Dex
From commit:
Im-dex/xray-162@05490c8
  • Loading branch information
Xottab-DUTY committed Aug 8, 2017
1 parent ed8eac4 commit 3700132
Show file tree
Hide file tree
Showing 44 changed files with 109 additions and 112 deletions.
2 changes: 1 addition & 1 deletion src/xrGame/EliteDetector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ void CUIArtefactDetectorElite::construct(CEliteDetector* p)

xr_sprintf(buff, "%s", p->ui_xml_tag());
int num = uiXml.GetNodesNum(buff, 0, "palette");
XML_NODE* pStoredRoot = uiXml.GetLocalRoot();
XML_NODE pStoredRoot = uiXml.GetLocalRoot();
uiXml.SetLocalRoot(uiXml.NavigateToNode(buff, 0));
for (int idx = 0; idx < num; ++idx)
{
Expand Down
10 changes: 5 additions & 5 deletions src/xrGame/PhraseDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ void CPhraseDialog::load_shared(LPCSTR)
pXML->SetLocalRoot(pXML->GetRoot());

// loading from XML
XML_NODE* dialog_node = pXML->NavigateToNode(id_to_index::tag_name, item_data.pos_in_file);
XML_NODE dialog_node = pXML->NavigateToNode(id_to_index::tag_name, item_data.pos_in_file);
THROW3(dialog_node, "dialog id=", *item_data.id);

pXML->SetLocalRoot(dialog_node);
Expand All @@ -219,7 +219,7 @@ void CPhraseDialog::load_shared(LPCSTR)
//заполнить граф диалога фразами
data()->m_PhraseGraph.clear();

XML_NODE* phrase_list_node = pXML->NavigateToNode(dialog_node, "phrase_list", 0);
XML_NODE phrase_list_node = pXML->NavigateToNode(dialog_node, "phrase_list", 0);
if (NULL == phrase_list_node)
{
LPCSTR func = pXML->Read(dialog_node, "init_func", 0, "");
Expand All @@ -242,7 +242,7 @@ void CPhraseDialog::load_shared(LPCSTR)
#endif

//ищем стартовую фразу
XML_NODE* phrase_node = pXML->NavigateToNodeWithAttribute("phrase", "id", "0");
XML_NODE phrase_node = pXML->NavigateToNodeWithAttribute("phrase", "id", "0");
THROW(phrase_node);
AddPhrase(pXML, phrase_node, "0", "");
}
Expand Down Expand Up @@ -273,7 +273,7 @@ CPhrase* CPhraseDialog::AddPhrase(
}

void CPhraseDialog::AddPhrase(
CUIXml* pXml, XML_NODE* phrase_node, const shared_str& phrase_id, const shared_str& prev_phrase_id)
CUIXml* pXml, XML_NODE phrase_node, const shared_str& phrase_id, const shared_str& prev_phrase_id)
{
LPCSTR sText = pXml->Read(phrase_node, "text", 0, "");
int gw = pXml->ReadInt(phrase_node, "goodwill", 0, -10000);
Expand All @@ -292,7 +292,7 @@ void CPhraseDialog::AddPhrase(
for (int i = 0; i < next_num; ++i)
{
LPCSTR next_phrase_id_str = pXml->Read(phrase_node, "next", i, "");
XML_NODE* next_phrase_node = pXml->NavigateToNodeWithAttribute("phrase", "id", next_phrase_id_str);
XML_NODE next_phrase_node = pXml->NavigateToNodeWithAttribute("phrase", "id", next_phrase_id_str);
R_ASSERT2(next_phrase_node, next_phrase_id_str);
AddPhrase(pXml, next_phrase_node, next_phrase_id_str, phrase_id);
}
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/PhraseDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ class CPhraseDialog : public CSharedClass<SPhraseDialogData, shared_str, false>,
virtual void load_shared(LPCSTR);

//рекурсивное добавление фраз в граф
void AddPhrase(CUIXml* pXml, XML_NODE* phrase_node, const shared_str& phrase_id, const shared_str& prev_phrase_id);
void AddPhrase(CUIXml* pXml, XML_NODE phrase_node, const shared_str& phrase_id, const shared_str& prev_phrase_id);

public:
CPhrase* AddPhrase(LPCSTR text, const shared_str& phrase_id, const shared_str& prev_phrase_id, int goodwil_level);
Expand Down
4 changes: 2 additions & 2 deletions src/xrGame/PhraseScript.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "actor.h"

//загрузка из XML файла
void CDialogScriptHelper::Load(CUIXml* uiXml, XML_NODE* phrase_node)
void CDialogScriptHelper::Load(CUIXml* uiXml, XML_NODE phrase_node)
{
LoadSequence(uiXml, phrase_node, "precondition", m_Preconditions);
LoadSequence(uiXml, phrase_node, "action", m_ScriptActions);
Expand All @@ -24,7 +24,7 @@ void CDialogScriptHelper::Load(CUIXml* uiXml, XML_NODE* phrase_node)
}

template <class T>
void CDialogScriptHelper::LoadSequence(CUIXml* uiXml, XML_NODE* phrase_node, LPCSTR tag, T& str_vector)
void CDialogScriptHelper::LoadSequence(CUIXml* uiXml, XML_NODE phrase_node, LPCSTR tag, T& str_vector)
{
int tag_num = uiXml->GetNodesNum(phrase_node, tag);
str_vector.clear();
Expand Down
8 changes: 3 additions & 5 deletions src/xrGame/PhraseScript.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,13 @@

class CGameObject;
class CInventoryOwner;
class TiXmlNode;
class XML_NODE;
class CUIXml;

typedef TiXmlNode XML_NODE;

class CDialogScriptHelper
{
public:
void Load(CUIXml* ui_xml, XML_NODE* phrase_node);
void Load(CUIXml* ui_xml, XML_NODE phrase_node);

bool Precondition(const CGameObject* pSpeaker, LPCSTR dialog_id, LPCSTR phrase_id) const;
void Action(const CGameObject* pSpeaker, LPCSTR dialog_id, LPCSTR phrase_id) const;
Expand All @@ -43,7 +41,7 @@ class CDialogScriptHelper
protected:
//загрузка содержания последовательности тагов в контейнер строк
template <class T>
void LoadSequence(CUIXml* ui_xml, XML_NODE* phrase_node, LPCSTR tag, T& str_vector);
void LoadSequence(CUIXml* ui_xml, XML_NODE phrase_node, LPCSTR tag, T& str_vector);

//манипуляции с информацией во время вызовов Precondition и Action
virtual bool CheckInfo(const CInventoryOwner* pOwner) const;
Expand Down
8 changes: 3 additions & 5 deletions src/xrGame/UIPlayerItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ UIPlayerItem::UIPlayerItem(ETeam team, ClientID const& clientId, UITeamState* ts
VERIFY(m_teamPanels);
myClientId = clientId;
m_prevTeam = team;

m_player_node_root = NULL;
}

UIPlayerItem::~UIPlayerItem() {}
Expand All @@ -29,7 +27,7 @@ void UIPlayerItem::Init(CUIXml& uiXml, LPCSTR playerNode, int index)
CUIXmlInit::InitWindow(uiXml, playerNode, index, this);
m_player_node_root = uiXml.NavigateToNode(playerNode, index);
VERIFY2(m_player_node_root, "player item in team xml node not initialized");
XML_NODE* prev_root = uiXml.GetLocalRoot();
XML_NODE prev_root = uiXml.GetLocalRoot();
uiXml.SetLocalRoot(m_player_node_root);
InitTextParams(uiXml);
InitIconParams(uiXml);
Expand All @@ -49,7 +47,7 @@ void UIPlayerItem::InitTextParams(CUIXml& uiXml)
int temp_number = uiXml.GetNodesNum(m_player_node_root, TEXTPARAM_NODE_NAME);
for (int i = 0; i < temp_number; ++i)
{
XML_NODE* text_param_node = uiXml.NavigateToNode(TEXTPARAM_NODE_NAME, i);
XML_NODE text_param_node = uiXml.NavigateToNode(TEXTPARAM_NODE_NAME, i);
if (!text_param_node)
break;
LPCSTR param_name = uiXml.ReadAttrib(text_param_node, "name", "param_name_not_set_in_name_attribute");
Expand All @@ -69,7 +67,7 @@ void UIPlayerItem::InitIconParams(CUIXml& uiXml)
int temp_number = uiXml.GetNodesNum(m_player_node_root, ICONPARAM_NODE_NAME);
for (int i = 0; i < temp_number; ++i)
{
XML_NODE* icon_param_node = uiXml.NavigateToNode(ICONPARAM_NODE_NAME, i);
XML_NODE icon_param_node = uiXml.NavigateToNode(ICONPARAM_NODE_NAME, i);
if (!icon_param_node)
break;
LPCSTR param_name = uiXml.ReadAttrib(icon_param_node, "name", "param_name_not_set_in_name_attribute");
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/UIPlayerItem.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class UIPlayerItem : public CUIWindow
// we just call method RemovePlayer
UITeamState* m_teamState;
UITeamPanels* m_teamPanels;
XML_NODE* m_player_node_root;
XML_NODE m_player_node_root;
ETeam m_prevTeam;
s32 m_checkPoints;

Expand Down
8 changes: 4 additions & 4 deletions src/xrGame/UITeamHeader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include "UITeamState.h"
#include "ui/UIStatic.h"

UITeamHeader::UITeamHeader(UITeamState const* const parent) : m_parent(parent), m_team_header_root(NULL) {}
UITeamHeader::UITeamHeader(UITeamState const* const parent) : m_parent(parent), m_team_header_root() {}
UITeamHeader::~UITeamHeader() {}
void UITeamHeader::Update()
{
Expand All @@ -30,7 +30,7 @@ void UITeamHeader::InitColumnsStatics(CUIXml& uiXml)
int tempNumber = uiXml.GetNodesNum(m_team_header_root, COLUMN_NODE_NAME);
for (int i = 0; i < tempNumber; ++i)
{
XML_NODE* tempColumnNode = uiXml.NavigateToNode(COLUMN_NODE_NAME, i);
XML_NODE tempColumnNode = uiXml.NavigateToNode(COLUMN_NODE_NAME, i);
if (!tempColumnNode)
break;
LPCSTR tempColumnName = uiXml.ReadAttrib(tempColumnNode, "name", "column_not_set_in_name_attribute");
Expand All @@ -52,7 +52,7 @@ void UITeamHeader::InitFieldsStatics(CUIXml& uiXml)
CStringTable st;
for (int i = 0; i < tempNumber; ++i)
{
XML_NODE* tempFieldNode = uiXml.NavigateToNode(FILED_NODE_NAME, i);
XML_NODE tempFieldNode = uiXml.NavigateToNode(FILED_NODE_NAME, i);
if (!tempFieldNode)
break;
LPCSTR tempFieldName = uiXml.ReadAttrib(tempFieldNode, "name", "field_not_set_in_name_attribute");
Expand All @@ -71,7 +71,7 @@ void UITeamHeader::Init(CUIXml& uiXml, LPCSTR path)
CUIXmlInit::InitWindow(uiXml, path, 0, this);
m_team_header_root = uiXml.NavigateToNode(path, 0);
VERIFY(m_team_header_root);
XML_NODE* prevRoot = uiXml.GetLocalRoot();
XML_NODE prevRoot = uiXml.GetLocalRoot();
VERIFY(prevRoot);
uiXml.SetLocalRoot(m_team_header_root);
InitColumnsStatics(uiXml);
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/UITeamHeader.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class UITeamHeader : public CUIWindow
TranslatedStrings m_translated_strings;

UITeamState const* const m_parent;
XML_NODE* m_team_header_root;
XML_NODE m_team_header_root;

void InitColumnsStatics(CUIXml& uiXml);
void InitFieldsStatics(CUIXml& uiXml);
Expand Down
6 changes: 3 additions & 3 deletions src/xrGame/UITeamPanels.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ void UITeamPanels::Init(LPCSTR xmlName, LPCSTR panelsRootNode)
{
uiXml.Load(CONFIG_PATH, UI_PATH, xmlName);
CUIXmlInit::InitWindow(uiXml, panelsRootNode, 0, this);
XML_NODE* panelsRoot = uiXml.NavigateToNode(panelsRootNode, 0);
XML_NODE panelsRoot = uiXml.NavigateToNode(panelsRootNode, 0);
VERIFY(panelsRoot);
uiXml.SetLocalRoot(panelsRoot);

Expand All @@ -34,7 +34,7 @@ void UITeamPanels::InitAllFrames(shared_str const& frame_node)
int number_of_items = uiXml.GetNodesNum(uiXml.GetLocalRoot(), frame_node.c_str());
for (int i = 0; i < number_of_items; ++i)
{
XML_NODE* tempFrameNode = uiXml.NavigateToNode(frame_node.c_str(), i);
XML_NODE tempFrameNode = uiXml.NavigateToNode(frame_node.c_str(), i);
if (!tempFrameNode)
break;
LPCSTR frame_class = uiXml.ReadAttrib(tempFrameNode, "class", "class_of_frame_not_defined");
Expand All @@ -60,7 +60,7 @@ void UITeamPanels::InitAllTeams(shared_str const& team_node)
int numberOfTeams = uiXml.GetNodesNum(uiXml.GetLocalRoot(), team_node.c_str());
for (int i = 0; i < numberOfTeams; ++i)
{
XML_NODE* tempTeamNode = uiXml.NavigateToNode(team_node.c_str(), i);
XML_NODE tempTeamNode = uiXml.NavigateToNode(team_node.c_str(), i);
if (!tempTeamNode)
break;
LPCSTR tempTeamName = uiXml.ReadAttrib(tempTeamNode, "tname", "team_not_set_in_tname_xml_attribute");
Expand Down
10 changes: 5 additions & 5 deletions src/xrGame/UITeamState.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ void UITeamState::Init(CUIXml& uiXml, LPCSTR teamNodeName, int index)
VERIFY2(teamXmlNode, make_string("team xml node (%s) not found", teamNodeName).c_str());

CUIXmlInit::InitWindow(uiXml, teamNodeName, index, this);
XML_NODE* tempRoot = uiXml.GetLocalRoot();
XML_NODE tempRoot = uiXml.GetLocalRoot();

uiXml.SetLocalRoot(teamXmlNode);

Expand All @@ -76,9 +76,9 @@ void UITeamState::Init(CUIXml& uiXml, LPCSTR teamNodeName, int index)
}
int UITeamState::InitScrollPanels()
{
XML_NODE* scroll_panels_root = mainUiXml->NavigateToNode("scroll_panels", 0);
XML_NODE scroll_panels_root = mainUiXml->NavigateToNode("scroll_panels", 0);
VERIFY2(scroll_panels_root, "scroll_panels tag not found");
XML_NODE* tempRoot = mainUiXml->GetLocalRoot();
XML_NODE tempRoot = mainUiXml->GetLocalRoot();

int panels_count = mainUiXml->ReadAttribInt(scroll_panels_root, "count", 0);
VERIFY2(panels_count, "count of scroll panels is 0, minimum is 1");
Expand All @@ -88,7 +88,7 @@ int UITeamState::InitScrollPanels()
mainUiXml->SetLocalRoot(scroll_panels_root);

TScrollPanel temp_panel;
XML_NODE* panel_root = mainUiXml->NavigateToNode("panel", i);
XML_NODE panel_root = mainUiXml->NavigateToNode("panel", i);
if (!panel_root)
break;

Expand Down Expand Up @@ -183,7 +183,7 @@ void UITeamState::AddPlayer(ClientID const& clientId)

VERIFY2(mainUiXml, "main UI XML not initialized");

XML_NODE* tempRoot = mainUiXml->GetLocalRoot();
XML_NODE tempRoot = mainUiXml->GetLocalRoot();
mainUiXml->SetLocalRoot(teamXmlNode);

if (clientId == Game().local_svdpnid)
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/UITeamState.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class UITeamState : public CUIWindow
ETeam myTeam;
MapClientIdToUIPlayer myPlayers;

XML_NODE* teamXmlNode;
XML_NODE teamXmlNode;
CUIXml* mainUiXml;

TScrollPanels m_scroll_panels;
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/encyclopedia_article.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ void CEncyclopediaArticle::load_shared(LPCSTR)
pXML->SetLocalRoot(pXML->GetRoot());

// loading from XML
XML_NODE* pNode = pXML->NavigateToNode(id_to_index::tag_name, item_data.pos_in_file);
XML_NODE pNode = pXML->NavigateToNode(id_to_index::tag_name, item_data.pos_in_file);
THROW3(pNode, "encyclopedia article id=", *item_data.id);

//текст
Expand Down
3 changes: 1 addition & 2 deletions src/xrGame/map_location.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ void CMapLocation::LoadSpot(LPCSTR type, bool bReload)
g_uiSpotXml->Load(CONFIG_PATH, UI_PATH, "map_spots.xml");
}

XML_NODE* node = NULL;
string512 path_base, path;
xr_strcpy(path_base, type);
R_ASSERT3(g_uiSpotXml->NavigateToNode(path_base, 0), "XML node not found in file map_spots.xml", path_base);
Expand Down Expand Up @@ -125,7 +124,7 @@ void CMapLocation::LoadSpot(LPCSTR type, bool bReload)
}

strconcat(sizeof(path), path, path_base, ":level_map");
node = g_uiSpotXml->NavigateToNode(path, 0);
XML_NODE node = g_uiSpotXml->NavigateToNode(path, 0);
if (node)
{
LPCSTR str = g_uiSpotXml->ReadAttrib(path, 0, "spot", "");
Expand Down
7 changes: 3 additions & 4 deletions src/xrGame/map_spot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,6 @@ void CMiniMapSpot::Load(CUIXml* xml, LPCSTR path)
inherited::Load(xml, path);

string256 buf;
XML_NODE* n = NULL;

Frect base_rect;
base_rect.x1 = 0;
Expand All @@ -131,7 +130,7 @@ void CMiniMapSpot::Load(CUIXml* xml, LPCSTR path)
Frect _stored_rect = m_UIStaticItem.GetTextureRect();

strconcat(sizeof(buf), buf, path, ":texture_above");
n = xml->NavigateToNode(buf, 0);
XML_NODE n = xml->NavigateToNode(buf, 0);
if (n)
{
LPCSTR texture = xml->Read(buf, 0, NULL);
Expand Down Expand Up @@ -259,8 +258,8 @@ void CComplexMapSpot::Load(CUIXml* xml, LPCSTR path) // complex_spot_template
{
inherited::Load(xml, path);

XML_NODE* stored_root = xml->GetLocalRoot();
XML_NODE* node = xml->NavigateToNode(path, 0);
XML_NODE stored_root = xml->GetLocalRoot();
XML_NODE node = xml->NavigateToNode(path, 0);
xml->SetLocalRoot(node);

m_left_icon = CreateStaticOrig(*xml, "left_icon");
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/ui/MMSound.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ void CMMSound::Init(CUIXml& xml_doc, LPCSTR path)

int nodes_num = xml_doc.GetNodesNum(path, 0, "menu_music");

XML_NODE* tab_node = xml_doc.NavigateToNode(path, 0);
XML_NODE tab_node = xml_doc.NavigateToNode(path, 0);
xml_doc.SetLocalRoot(tab_node);
for (int i = 0; i < nodes_num; ++i)
m_play_list.push_back(xml_doc.Read("menu_music", i, ""));
Expand Down
4 changes: 2 additions & 2 deletions src/xrGame/ui/UIAchievements.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ void CUIAchievements::init_from_xml(CUIXml& xml)
{
CUIXmlInit::InitWindow(xml, "achievements_itm", 0, this);

XML_NODE* stored_root = xml.GetLocalRoot();
XML_NODE* node = xml.NavigateToNode("achievements_itm", 0);
XML_NODE stored_root = xml.GetLocalRoot();
XML_NODE node = xml.NavigateToNode("achievements_itm", 0);
xml.SetLocalRoot(node);

m_name = UIHelper::CreateTextWnd(xml, "name", this);
Expand Down
2 changes: 1 addition & 1 deletion src/xrGame/ui/UIActorMenuInitialize.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ void CUIActorMenu::Construct()
m_ActorStateInfo->SetAutoDelete(true);
AttachChild(m_ActorStateInfo);

XML_NODE* stored_root = uiXml.GetLocalRoot();
XML_NODE stored_root = uiXml.GetLocalRoot();
uiXml.SetLocalRoot(uiXml.NavigateToNode("action_sounds", 0));
::Sound->create(sounds[eSndOpen], uiXml.Read("snd_open", 0, NULL), st_Effect, sg_SourceType);
::Sound->create(sounds[eSndClose], uiXml.Read("snd_close", 0, NULL), st_Effect, sg_SourceType);
Expand Down
8 changes: 4 additions & 4 deletions src/xrGame/ui/UIActorStateInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ ui_actor_state_wnd::ui_actor_state_wnd() {}
ui_actor_state_wnd::~ui_actor_state_wnd() { delete_data(m_hint_wnd); }
void ui_actor_state_wnd::init_from_xml(CUIXml& xml, LPCSTR path)
{
XML_NODE* stored_root = xml.GetLocalRoot();
XML_NODE stored_root = xml.GetLocalRoot();
CUIXmlInit::InitWindow(xml, path, 0, this);

XML_NODE* new_root = xml.NavigateToNode(path, 0);
XML_NODE new_root = xml.NavigateToNode(path, 0);
xml.SetLocalRoot(new_root);

m_hint_wnd = UIHelper::CreateHint(xml, "hint_wnd");
Expand Down Expand Up @@ -296,8 +296,8 @@ void ui_actor_state_item::init_from_xml(CUIXml& xml, LPCSTR path)
{
CUIXmlInit::InitWindow(xml, path, 0, this);

XML_NODE* stored_root = xml.GetLocalRoot();
XML_NODE* new_root = xml.NavigateToNode(path, 0);
XML_NODE stored_root = xml.GetLocalRoot();
XML_NODE new_root = xml.NavigateToNode(path, 0);
xml.SetLocalRoot(new_root);

LPCSTR hint_text = xml.Read("hint_text", 0, "no hint");
Expand Down
4 changes: 2 additions & 2 deletions src/xrGame/ui/UIBoosterInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ LPCSTR boost_influence_caption[] = {"ui_inv_health", "ui_inv_power", "ui_inv_rad
void CUIBoosterInfo::InitFromXml(CUIXml& xml)
{
LPCSTR base = "booster_params";
XML_NODE* stored_root = xml.GetLocalRoot();
XML_NODE* base_node = xml.NavigateToNode(base, 0);
XML_NODE stored_root = xml.GetLocalRoot();
XML_NODE base_node = xml.NavigateToNode(base, 0);
if (!base_node)
return;

Expand Down
Loading

0 comments on commit 3700132

Please sign in to comment.