Hooks
static bool BeforeCvTeamTechs_Read(CvTeamTechs* self, FDataStream& kStream);static void AfterCvTeamTechs_Read(CvTeamTechs* self, FDataStream& kStream);static void ReplaceCvTeamTechs_Read(void (*original)(CvTeamTechs*, FDataStream&), CvTeamTechs* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvTeamTechs_Read>(host, &BeforeCvTeamTechs_Read);CivRegisterAfter<CivHooks::CvTeamTechs_Read>(host, &AfterCvTeamTechs_Read);CivRegisterReplace<CivHooks::CvTeamTechs_Read>(host, &ReplaceCvTeamTechs_Read);
Code
1864/// Serialization read1865void CvTeamTechs::Read(FDataStream& kStream)1866{1867 // Version number to maintain backwards compatibility1868 uint uiVersion;1869 kStream >> uiVersion;1870 MOD_SERIALIZE_INIT_READ(kStream);18711872 kStream >> m_eLastTechAcquired;18731874 // Read the number of techs1875 int iNumSavedTechs;1876 kStream >> iNumSavedTechs;18771878 if(iNumSavedTechs)1879 {1880 int iNumActiveTechs = m_pTechs->GetNumTechs();18811882 // Next is an array of the tech IDs that were available when the save was made.1883 CvAssert(m_pTechs == GC.GetGameTechs()); // The hash to indices conversion will convert the hash to the index in the main game techs array, so these better be the same.1884 int* paTechIDs = (int*)_malloca(iNumSavedTechs * sizeof(int));1885 CvInfosSerializationHelper::ReadHashedTypeArray(kStream, iNumSavedTechs, paTechIDs, iNumSavedTechs);18861887 CvInfosSerializationHelper::ReadAndRemapDataArray(kStream, iNumSavedTechs, m_pabHasTech, iNumActiveTechs, paTechIDs);1888 CvInfosSerializationHelper::ReadAndRemapDataArray(kStream, iNumSavedTechs, m_pabNoTradeTech, iNumActiveTechs, paTechIDs);1889 CvInfosSerializationHelper::ReadAndRemapDataArray(kStream, iNumSavedTechs, m_paiResearchProgress, iNumActiveTechs, paTechIDs);1890 CvInfosSerializationHelper::ReadAndRemapDataArray(kStream, iNumSavedTechs, m_paiTechCount, iNumActiveTechs, paTechIDs);18911892 _freea(paTechIDs);1893 }1894}