CvPolicyAI::Read(FDataStream &)
- Defined in
- CvPolicyAI.cpp, line 53
- Class
- CvPolicyAI
- Hook name
CivHooks::CvPolicyAI_Read
Hooks
static bool BeforeCvPolicyAI_Read(CvPolicyAI* self, FDataStream& kStream);static void AfterCvPolicyAI_Read(CvPolicyAI* self, FDataStream& kStream);static void ReplaceCvPolicyAI_Read(void (*original)(CvPolicyAI*, FDataStream&), CvPolicyAI* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvPolicyAI_Read>(host, &BeforeCvPolicyAI_Read);CivRegisterAfter<CivHooks::CvPolicyAI_Read>(host, &AfterCvPolicyAI_Read);CivRegisterReplace<CivHooks::CvPolicyAI_Read>(host, &ReplaceCvPolicyAI_Read);
Code
52/// Serialization read53void CvPolicyAI::Read(FDataStream& kStream)54{55 // Version number to maintain backwards compatibility56 uint uiVersion;57 kStream >> uiVersion;58 MOD_SERIALIZE_INIT_READ(kStream);5960 int iWeight;6162 CvAssertMsg(m_pCurrentPolicies->GetPolicies() != NULL, "Policy AI serialization failure: no policy data");63 CvAssertMsg(m_pCurrentPolicies->GetPolicies()->GetNumPolicies() > 0, "Policy AI serialization failure: number of policies not greater than 0");6465 // Reset vector66 m_PolicyAIWeights.clear();6768 uint uiPolicyArraySize = m_pCurrentPolicies->GetPolicies()->GetNumPolicies();69 // Must set to the final size because we might not be adding in sequentially70 m_PolicyAIWeights.resize(uiPolicyArraySize);71 // Clear the contents in case we are loading a smaller set72 for(uint uiIndex = 0; uiIndex < uiPolicyArraySize; ++uiIndex)73 m_PolicyAIWeights.SetWeight(uiIndex, 0);7475 uint uiPolicyCount;76 kStream >> uiPolicyCount;7778 for(uint uiIndex = 0; uiIndex < uiPolicyCount; ++uiIndex)79 {80 PolicyTypes ePolicy = (PolicyTypes)CvInfosSerializationHelper::ReadHashed(kStream);81 kStream >> iWeight;82 if(ePolicy != NO_POLICY && (uint)ePolicy < uiPolicyArraySize)83 m_PolicyAIWeights.SetWeight((uint)ePolicy, iWeight);84 }85}
Calls
- CvInfosSerializationHelper::ReadHashed(FDataStream &, bool *)
- CvPlayerPolicies::GetPolicies() const
- CvPolicyXMLEntries::GetNumPolicies()
CvWeightedVector::clearCvWeightedVector::resizeCvWeightedVector::SetWeightFDataStream::operator>>FDataStream::operator>>