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

Method load_shared

ogsr_engine/COMMON_AI/specific_character.cpp:52–190  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50}
51
52void CSpecificCharacter::load_shared(LPCSTR)
53{
54#if 0
55 CTimer timer;
56 timer.Start ();
57#endif
58 const ITEM_DATA& item_data = *id_to_index::GetById(m_OwnId);
59
60 CUIXml* pXML = item_data._xml;
61
62 pXML->SetLocalRoot(pXML->GetRoot());
63
64 XML_NODE* item_node = pXML->NavigateToNode(id_to_index::tag_name, item_data.pos_in_file);
65 R_ASSERT3(item_node, "specific_character id=", *item_data.id);
66
67 pXML->SetLocalRoot(item_node);
68
69 int norandom = pXML->ReadAttribInt(item_node, "no_random", 0);
70 if (1 == norandom)
71 data()->m_bNoRandom = true;
72 else
73 data()->m_bNoRandom = false;
74
75 int team_default = pXML->ReadAttribInt(item_node, "team_default", 0);
76 if (1 == team_default)
77 data()->m_bDefaultForCommunity = true;
78 else
79 data()->m_bDefaultForCommunity = false;
80
81 R_ASSERT3(!(data()->m_bNoRandom && data()->m_bDefaultForCommunity), "cannot set 'no_random' and 'team_default' flags simultaneously, profile id", *shared_str(item_data.id));
82
83#ifdef XRGAME_EXPORTS
84
85 LPCSTR start_dialog = pXML->Read("start_dialog", 0, NULL);
86 if (start_dialog)
87 {
88 data()->m_StartDialog = start_dialog;
89 }
90 else
91 data()->m_StartDialog = NULL;
92
93 int dialogs_num = pXML->GetNodesNum(pXML->GetLocalRoot(), "actor_dialog");
94 data()->m_ActorDialogs.clear();
95 for (int i = 0; i < dialogs_num; ++i)
96 {
97 shared_str dialog_name = pXML->Read(pXML->GetLocalRoot(), "actor_dialog", i, "");
98 data()->m_ActorDialogs.push_back(dialog_name);
99 }
100
101 data()->m_icon_name = pXML->Read("icon", 0, "ui_npc_u_barman");
102
103 //игровое имя персонажа
104 data()->m_sGameName = pXML->Read("name", 0, "");
105 data()->m_sBioText = pXML->Read("bio", 0, "");
106
107 data()->m_fPanic_threshold = pXML->ReadFlt("panic_threshold", 0, 0.f);
108 data()->m_fHitProbabilityFactor = pXML->ReadFlt("hit_probability_factor", 0, 1.f);
109 data()->m_crouch_type = pXML->ReadInt("crouch_type", 0, 0);

Callers

nothing calls this directly

Calls 15

shared_strClass · 0.85
xr_strdupFunction · 0.85
xr_freeFunction · 0.85
MsgFunction · 0.85
NavigateToNodeMethod · 0.80
ReadAttribIntMethod · 0.80
GetNodesNumMethod · 0.80
ReadFltMethod · 0.80
ReadIntMethod · 0.80
replaceMethod · 0.80
xr_strlwrFunction · 0.50
_maxFunction · 0.50

Tested by

no test coverage detected