void CScriptbind_CrySerialize::ValueVec3(ISerialize *ser, mono::string name, Vec3 &obj, mono::string policy) { int iPolicy = ConvertPolicy(policy); TSerialize serialize = TSerialize(ser); serialize.Value(ToCryString(name), obj, iPolicy); }
void CGameTokenSystem::SerializeReadLevelToLevel() { if (!m_levelToLevelSave) return; IXmlSerializer* pSerializer = gEnv->pSystem->GetXmlUtils()->CreateXmlSerializer(); ISerialize* pSer = pSerializer->GetReader( m_levelToLevelSave ); TSerialize ser = TSerialize(pSer); { ScopedSwitchToGlobalHeap globalHeap; uint32 numTokens = 0; ser.Value( "numTokens", numTokens ); for (uint32 i=0; i<numTokens; i++) { ser.BeginGroup("Token"); string tokenName; ser.Value( "name", tokenName ); CGameToken* pToken = GetToken( tokenName.c_str() ); if (pToken) pToken->m_value.Serialize(ser); else CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_ERROR, "GameTokenSystem. GameToken '%s' was not found when trying to serialize (read) level to level", tokenName.c_str() ); ser.EndGroup(); } } pSerializer->Release(); m_levelToLevelSave = NULL; // this frees it }
void CGameTokenSystem::SerializeSaveLevelToLevel( const char** ppGameTokensList, uint32 numTokensToSave ) { { ScopedSwitchToGlobalHeap globalHeap; m_levelToLevelSave = gEnv->pSystem->CreateXmlNode( "GameTokensLevelToLevel" ); } IXmlSerializer* pSerializer = gEnv->pSystem->GetXmlUtils()->CreateXmlSerializer(); ISerialize* pSer = pSerializer->GetWriter(m_levelToLevelSave); TSerialize ser = TSerialize(pSer); { ScopedSwitchToGlobalHeap globalHeap; uint32 numTokensSaved = 0; for (uint32 i=0; i<numTokensToSave; ++i) { const char* pName = ppGameTokensList[i]; CGameToken* pToken = GetToken( pName ); if (pToken) { numTokensSaved++; ser.BeginGroup("Token"); ser.Value( "name",pToken->m_name ); pToken->m_value.Serialize(ser); ser.EndGroup(); } else CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_ERROR, "GameTokenSystem. GameToken %s was not found when trying to serialize (save) level to level", pName ? pName : "<NULL>"); } ser.Value( "numTokens", numTokensSaved ); } pSerializer->Release(); }
void CScriptbind_CrySerialize::ValueString(ISerialize *ser, mono::string name, mono::string &str, int policy) { TSerialize serialize = TSerialize(ser); if(!ser->IsReading()) serialize.Value(ToCryString(name), ToCryString(str), policy); else { string cryStr; serialize.Value(ToCryString(name), cryStr, policy); str = ToMonoString(cryStr.c_str()); } }
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(); }
void CCheckpointSystem::ReadGameTokens(XmlNodeRef parentNode) { //get source node XmlNodeRef node = parentNode->findChild(GAMETOKEN_SECTION); if(!node) { CryWarning(VALIDATOR_MODULE_GAME, VALIDATOR_ERROR, "Couldn't find Gametoken section while reading checkpoint."); return; } //create serialization reader IXmlSerializer *pSerializer = GetISystem()->GetXmlUtils()->CreateXmlSerializer(); ISerialize *pReader = pSerializer->GetReader(node); //read serialization data TSerialize ser = TSerialize(pReader); IGameTokenSystem *pTokenSystem = CCryAction::GetCryAction()->GetIGameTokenSystem(); pTokenSystem->Serialize(ser); pSerializer->Release(); }
void CScriptbind_CrySerialize::ValueEntityId(ISerialize *ser, mono::string name, EntityId &obj) { TSerialize serialize = TSerialize(ser); serialize.Value(ToCryString(name), obj, 'eid'); }
void CScriptbind_CrySerialize::ValueBool(ISerialize *ser, mono::string name, bool &obj) { TSerialize serialize = TSerialize(ser); serialize.Value(ToCryString(name), obj, 'bool'); }
void CScriptbind_CrySerialize::EnumValue(ISerialize *ser, mono::string name, int &obj, int first, int last) { TSerialize serialize = TSerialize(ser); serialize.EnumValue(ToCryString(name), obj, first, last); }
void CScriptbind_CrySerialize::ValueQuat(ISerialize *ser, mono::string name, Quat &obj, int policy) { TSerialize serialize = TSerialize(ser); serialize.Value(ToCryString(name), obj, policy); }