本文整理汇总了C++中XmlNodeRef::addChild方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlNodeRef::addChild方法的具体用法?C++ XmlNodeRef::addChild怎么用?C++ XmlNodeRef::addChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlNodeRef
的用法示例。
在下文中一共展示了XmlNodeRef::addChild方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SaveProfile
//------------------------------------------------------------------------
bool CPlayerProfileImplConsole::SaveProfile(SUserEntry* pEntry, CPlayerProfile* pProfile, const char* name, bool initialSave, int /*reason = ePR_All*/)
{
IPlatformOS *os = gEnv->pSystem->GetPlatformOS();
// save the profile into a specific location
// check if it's a valid filename
if (IsValidFilename(name) == false)
return false;
string path;
InternalMakeFSPath(pEntry, name, path);
XmlNodeRef rootNode = GetISystem()->CreateXmlNode(PROFILE_ROOT_TAG);
rootNode->setAttr(PROFILE_NAME_TAG, name);
CSerializerXML serializer(rootNode, false);
pProfile->SerializeXML(&serializer);
XmlNodeRef attributes = serializer.GetSection(CPlayerProfileManager::ePPS_Attribute);
XmlNodeRef actionMap = serializer.GetSection(CPlayerProfileManager::ePPS_Actionmap);
if(!rootNode->findChild("Attributes"))
rootNode->addChild(attributes);
if(!rootNode->findChild("ActionMaps"))
rootNode->addChild(actionMap);
return SaveXMLFile(path+"profile.xml", rootNode);
}
示例2: GetAdditionalMinimapData
//////////////////////////////////////////////////////////////////////////
//
// Allows the game code to write game-specific data into the minimap xml
// file on level export. Currently used to export data to StatsTool
//
//////////////////////////////////////////////////////////////////////////
bool CEditorGame::GetAdditionalMinimapData(XmlNodeRef output)
{
string classes = g_pGameCVars->g_telemetryEntityClassesToExport;
if(!classes.empty())
{
// additional data relating to StatsTool
XmlNodeRef statsNode = output->findChild("StatsTool");
if(!statsNode)
{
statsNode = GetISystem()->CreateXmlNode("StatsTool");
output->addChild(statsNode);
}
else
{
statsNode->removeAllChilds();
}
// first build a list of entity classes from the cvar
std::vector<IEntityClass*> interestingClasses;
int curPos = 0;
string currentClass = classes.Tokenize(",",curPos);
IEntitySystem* pES = GetISystem()->GetIEntitySystem();
if(IEntityClassRegistry* pClassReg = pES->GetClassRegistry())
{
while (!currentClass.empty())
{
if(IEntityClass* pClass = pClassReg->FindClass(currentClass.c_str()))
{
interestingClasses.push_back(pClass);
}
currentClass = classes.Tokenize(",",curPos);
}
}
// now iterate through all entities and save the ones which match the classes
if(interestingClasses.size() > 0)
{
IEntityItPtr it = pES->GetEntityIterator();
while(IEntity* pEntity = it->Next())
{
if(stl::find(interestingClasses, pEntity->GetClass()))
{
XmlNodeRef entityNode = GetISystem()->CreateXmlNode("Entity");
statsNode->addChild(entityNode);
entityNode->setAttr("class", pEntity->GetClass()->GetName());
Vec3 pos = pEntity->GetWorldPos();
entityNode->setAttr("x", pos.x);
entityNode->setAttr("y", pos.y);
entityNode->setAttr("z", pos.z);
}
}
}
}
return true;
}
示例3: SaveToXML
static void SaveToXML(const XmlNodeRef& n, const char* name, const TTimeStampedData<T>& data)
{
XmlNodeRef v = gEnv->pSystem->CreateXmlNode("values");
v->setAttr("name", name);
for(int i=0;i<data.m_data.size(); ++i)
{
XmlNodeRef c = gEnv->pSystem->CreateXmlNode("value");
SaveToXML(c, "time", data.m_data[i].first);
T::SaveToXML(c, "", data.m_data[i].second);
v->addChild(c);
}
n->addChild(v);
}
示例4: SaveExternalEntity
bool CCheckpointSystem::SaveExternalEntity(EntityId id)
{
//this function allows external logic (flowgraph) to save specific entities
if(!CHECKPOINT_SAVE_XML_NODE)
{
CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_WARNING, "Tried writing external entity %i while savegame was not open.", (int)id);
return false;
}
//find entity and access external section
IEntity *pEntity = gEnv->pEntitySystem->GetEntity(id);
if(pEntity)
{
XmlNodeRef externalEntities = CHECKPOINT_SAVE_XML_NODE->findChild(EXTERNAL_ENTITIES_SECTION);
if(!externalEntities)
{
externalEntities = GetISystem()->CreateXmlNode(EXTERNAL_ENTITIES_SECTION);
CHECKPOINT_SAVE_XML_NODE->addChild(externalEntities);
}
IActor *pActor = CCryAction::GetCryAction()->GetIActorSystem()->GetActor(pEntity->GetId());
if(pActor)
{
CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_WARNING, "The actor %s is additionally saved as external entity.", pEntity->GetName());
}
//create entity data
char entityId[16];
_snprintf(entityId, sizeof(entityId), "%s%i", "id", id);
XmlNodeRef nextEntity = GetISystem()->CreateXmlNode(entityId);
if(nextEntity)
{
nextEntity->setAttr("id", pEntity->GetId());
nextEntity->setAttr("name", pEntity->GetName());
//save active / hidden
nextEntity->setAttr("active", pEntity->IsActive());
nextEntity->setAttr("hidden", pEntity->IsHidden());
//save translation and rotation (complete tm matrix for simplicity)
SerializeWorldTM(pEntity, nextEntity, true);
//add new entity to checkpoint
externalEntities->addChild(nextEntity);
return true;
}
return false;
}
return false;
}
开发者ID:NightOwlsEntertainment,项目名称:PetBox_A_Journey_to_Conquer_Elementary_Algebra,代码行数:50,代码来源:CheckPointSystem.cpp
示例5: node
void XmlParserImp::onStartElement( const char *tagName,const char **atts )
{
XmlNodeRef parent;
XmlNodeRef node( tagName );
if (!nodeStack.empty()) {
parent = nodeStack.back();
} else {
m_root = node;
}
nodeStack.push_back(node);
if (parent) {
parent->addChild( node );
}
node->setLine( XML_GetCurrentLineNumber( (XML_Parser)m_parser ) );
// Call start element callback.
String key,value;
int i = 0;
while (atts[i] != 0) {
node->setAttribute( atts[i],atts[i+1] );
i += 2;
}
}
示例6: WriteMetaData
void CCheckpointSystem::WriteMetaData(EntityId checkpointId, XmlNodeRef parentNode, SCheckpointData &outMetaData)
{
XmlNodeRef node = GetISystem()->CreateXmlNode(META_DATA_SECTION);
const char *levelName = CCryAction::GetCryAction()->GetLevelName();
CRY_ASSERT(levelName);
CryFixedStringT<32> curlevelName = levelName;
RepairLevelName(curlevelName);
node->setAttr("Version", CHECKPOINT_VERSION_NUMBER);
node->setAttr("LevelName", curlevelName.c_str());
node->setAttr("CheckpointId", checkpointId);
//write checkpoint name to be independent of entityId
IEntity *pCheckpointEntity = gEnv->pEntitySystem->GetEntity(checkpointId);
if(pCheckpointEntity)
node->setAttr("CheckpointName", pCheckpointEntity->GetName());
else
node->setAttr("CheckpointName", "none");
string timeString;
GameUtils::timeToString(time(NULL), timeString);
node->setAttr("Timestamp", timeString.c_str());
parentNode->addChild(node);
//write back metadata for listeners
outMetaData.m_checkPointId = checkpointId;
outMetaData.m_levelName = levelName;
outMetaData.m_saveTime = timeString.c_str();
}
开发者ID:NightOwlsEntertainment,项目名称:PetBox_A_Journey_to_Conquer_Elementary_Algebra,代码行数:31,代码来源:CheckPointSystem.cpp
示例7: RunAll
/// Runs all registered tests (if they meet their dependencies)
void CFeatureTestMgr::RunAll()
{
// Writing the list of the active registered tests.
// This can be useful to later check, when a crash occurs,
// which tests were executed and which are skipped
// (We will have no valid results for them)
{
if(m_pAutoTester && !m_testManifestWritten)
{
XmlNodeRef testManifest = GetISystem()->CreateXmlNode("testManifest");
testManifest->setTag("testmanifest");
CryLogAlways("About to dump out the testmanifest xml...");
for (TFeatureTestVec::iterator iter(m_featureTests.begin()); iter != m_featureTests.end(); ++iter)
{
FeatureTestState& fTest = *iter;
XmlNodeRef testDescrNode = fTest.m_pTest->XmlDescription();
if(testDescrNode)
{
testManifest->addChild(testDescrNode);
}
}
m_pAutoTester->WriteTestManifest(testManifest);
m_testManifestWritten = true;
}
}
if (!IsRunning())
{
// Ensure all tests are cleaned up and scheduled to run
ResetAllTests(eFTS_Scheduled);
if (StartNextTest() || WaitingForScheduledTests())
{
CryLog("Running all map feature tests...");
}
else
{
CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_WARNING, "No tests available to run!");
}
}
else
{
CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_WARNING, "Tests are already running, can't start more until tests are complete.");
}
}
示例8: WriteActorData
void CCheckpointSystem::WriteActorData(XmlNodeRef parentNode)
{
XmlNodeRef node = GetISystem()->CreateXmlNode(ACTOR_FLAGS_SECTION);
//write only data for non-active or hidden actors
XmlNodeRef activatedActors = GetISystem()->CreateXmlNode(ACTIVATED_ACTORS_SECTION);
char buffer[100];
IActorSystem *pActorSystem = CCryAction::GetCryAction()->GetIActorSystem();
IActorIteratorPtr it = pActorSystem->CreateActorIterator();
while (IActor *pActor = it->Next())
{
IEntity *pEntity = pActor->GetEntity();
if(!pEntity->IsHidden() && pEntity->IsActive())
{
EntityId id = pEntity->GetId();
const char *name = pEntity->GetName(); //we have to rely on names, since Id's change on level reexport
_snprintf(buffer, sizeof(buffer), "%s%i", "id", id);
activatedActors->setAttr(buffer, name);
}
}
node->addChild(activatedActors);
parentNode->addChild(node);
}
开发者ID:NightOwlsEntertainment,项目名称:PetBox_A_Journey_to_Conquer_Elementary_Algebra,代码行数:23,代码来源:CheckPointSystem.cpp
示例9: WriteGameTokens
void CCheckpointSystem::WriteGameTokens(XmlNodeRef parentNode)
{
//create serialization writer
XmlNodeRef node = GetISystem()->CreateXmlNode(GAMETOKEN_SECTION);
IXmlSerializer *pSerializer = GetISystem()->GetXmlUtils()->CreateXmlSerializer();
ISerialize *pWriter = pSerializer->GetWriter(node);
//get serialization data
TSerialize ser = TSerialize(pWriter);
IGameTokenSystem *pTokenSystem = CCryAction::GetCryAction()->GetIGameTokenSystem();
pTokenSystem->Serialize(ser);
//add to parent node
parentNode->addChild(node);
pSerializer->Release();
}
开发者ID:NightOwlsEntertainment,项目名称:PetBox_A_Journey_to_Conquer_Elementary_Algebra,代码行数:17,代码来源:CheckPointSystem.cpp
示例10: cloneXmlNodeFrom
XmlNodeRef cloneXmlNodeFrom(xml_node<>* xmlnode)
{
XmlNodeRef node = CreateXmlNode(xmlnode->name());
for (xml_attribute<>* attr = xmlnode->first_attribute();
attr; attr = attr->next_attribute())
{
node->setAttrText(attr->name(), attr->value());
}
for (xml_node<>* subNode = xmlnode->first_node(); subNode; subNode = subNode->next_sibling())
{
XmlNodeRef sub = cloneXmlNodeFrom(subNode);
node->addChild(sub);
}
return node;
}
示例11: SaveXMLNode
bool CCheckpointSystem::SaveXMLNode(XmlNodeRef node, const char *identifier)
{
if(!identifier || !node)
return false;
//check whether a checkpoint is currently open
if(!CHECKPOINT_SAVE_XML_NODE)
{
CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_WARNING, "Tried writing checkpoint section %s while checkpoint was not open.", identifier);
return false;
}
//flag section as being external and save name
node->setAttr("external", identifier);
//add section to opened file
CHECKPOINT_SAVE_XML_NODE->addChild(node);
return true;
}
开发者ID:NightOwlsEntertainment,项目名称:PetBox_A_Journey_to_Conquer_Elementary_Algebra,代码行数:18,代码来源:CheckPointSystem.cpp
示例12: SaveActorAttachments
bool CStatHelpers::SaveActorAttachments( CActor* pActor )
{
if ( IStatsTracker *tracker = pActor->GetStatsTracker() )
if ( const CActorInventory *pInv = pActor->GetActorInventory() )
{
XmlNodeRef resNode = GetISystem()->GetXmlUtils()->CreateStatsXmlNode(MULTIPLE_STAT_XML_TAG);
for ( int i = 0; i < pInv->GetAttachmentsCount() ; ++i )
{
XmlNodeRef childNode = GetISystem()->CreateXmlNode("attachment");
childNode->setAttr( "name", pInv->GetAttachment( i )->GetName() );
childNode->setAttr( "amount", 1 );
resNode->addChild( childNode );
}
tracker->StateValue( eSP_Attachments, resNode );
return true;
}
return false;
}
示例13: SaveActorArmor
bool CStatHelpers::SaveActorArmor( CActor* pActor )
{
if ( IStatsTracker *tracker = pActor->GetStatsTracker() )
if ( const CCharacterEquip *pEquip = pActor->GetCharacterEquip() )
{
XmlNodeRef resNode = GetISystem()->GetXmlUtils()->CreateStatsXmlNode(MULTIPLE_STAT_XML_TAG);
for ( int i = 0; i < pEquip->GetItemCount(); ++i )
{
XmlNodeRef childNode = GetISystem()->CreateXmlNode("part");
childNode->setAttr( "name", pEquip->GetItem( i ) );
childNode->setAttr( "amount", 1 );
resNode->addChild( childNode );
}
tracker->StateValue( eSP_Armor, resNode );
return true;
}
return false;
}
示例14: CreateTestCase
// create the xmlnode before passing it in
void CAutoTester::CreateTestCase(XmlNodeRef &testCase, const char *testName, bool passed, const char *failedType, const char *failedMessage)
{
assert(testName);
testCase->setTag("testcase");
testCase->setAttr("name", testName ? testName : "NULL");
testCase->setAttr("time", 0);
if (!passed)
{
assert(failedType);
assert(failedMessage);
XmlNodeRef failedCase = GetISystem()->CreateXmlNode();
failedCase->setTag("failure");
failedCase->setAttr("type", failedType ? failedType : "NULL");
failedCase->setAttr("message", failedMessage ? failedMessage : "NULL");
testCase->addChild(failedCase);
}
}
示例15: SaveStats
void CGameStats::SaveStats()
{
if(m_roundStats->m_round)
{
SGetTime time(m_roundStart);
CryFixedStringT<128> timeStr;
time_t ltime;
::time( <ime );
tm *today = localtime( <ime );
strftime(timeStr.m_str, timeStr.MAX_SIZE, "%y-%m-%d_%H%M%S", today);
XmlNodeRef root = gEnv->pSystem->CreateXmlNode("round");
root->setAttr("round", m_roundStats->m_round);
SRoundStats::SaveToXML(root, "", *m_roundStats.get());
for(PlayerStatsMap::iterator it = m_playerMap.begin(), eit = m_playerMap.end(); it != eit; ++it)
{
for( SPlayerInfo::TStatsVct::iterator si = it->second.stats.begin(); si < it->second.stats.end(); ++si )
{
it->second.stats.back()->End(time);
XmlNodeRef plr = gEnv->pSystem->CreateXmlNode("player");
if(IEntity *p = gEnv->pEntitySystem->GetEntity(it->first))
{
plr->setAttr("id", p->GetId());
if ( IActor* pAct = m_pGameFramework->GetIActorSystem()->GetActor(p->GetId()) )
{
int profile = m_pGameFramework->GetNetChannel(pAct->GetChannelId())->GetProfileId();
plr->setAttr("profile", profile);
}
}
plr->setAttr("name", it->second.name);
plr->setAttr("team", it->second.team);
plr->setAttr("spectator", it->second.spectator);
SPlayerStats::SaveToXML(plr, "", *(si->get()));
root->addChild(plr);
}
}
root->saveToFile(string().Format("%s/StatsLogs/Round_%s.xml", gEnv->pCryPak->GetAlias("%USER%"), timeStr.c_str()));
}
}