Hooks
static bool BeforeCvTeam_Write(const CvTeam* self, FDataStream& kStream);static void AfterCvTeam_Write(const CvTeam* self, FDataStream& kStream);static void ReplaceCvTeam_Write(void (*original)(const CvTeam*, FDataStream&), const CvTeam* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvTeam_Write>(host, &BeforeCvTeam_Write);CivRegisterAfter<CivHooks::CvTeam_Write>(host, &AfterCvTeam_Write);CivRegisterReplace<CivHooks::CvTeam_Write>(host, &ReplaceCvTeam_Write);
Code
7567void CvTeam::Write(FDataStream& kStream) const7568{7569 // Current version number7570 uint uiVersion = 1;7571 kStream << uiVersion;7572 MOD_SERIALIZE_INIT_WRITE(kStream);75737574 kStream << m_iNumMembers;7575 kStream << m_iAliveCount;7576 kStream << m_iEverAliveCount;7577 kStream << m_iNumCities;7578 kStream << m_iTotalPopulation;7579 kStream << m_iTotalLand;7580 kStream << m_iNukeInterception;7581 kStream << m_iExtraWaterSeeFromCount;7582 kStream << m_iMapTradingCount;7583 kStream << m_iTechTradingCount;7584 kStream << m_iGoldTradingCount;7585 kStream << m_iAllowEmbassyTradingAllowedCount;7586 kStream << m_iOpenBordersTradingAllowedCount;7587 kStream << m_iDefensivePactTradingAllowedCount;7588 kStream << m_iResearchAgreementTradingAllowedCount;7589 kStream << m_iTradeAgreementTradingAllowedCount;7590 kStream << m_iPermanentAllianceTradingCount;7591#if defined(MOD_TECHS_CITY_WORKING)7592 MOD_SERIALIZE_WRITE(kStream, m_iCityWorkingChange);7593#endif7594#if defined(MOD_TECHS_CITY_AUTOMATON_WORKERS)7595 MOD_SERIALIZE_WRITE(kStream, m_iCityAutomatonWorkersChange);7596#endif7597 kStream << m_iBridgeBuildingCount;7598 kStream << m_iWaterWorkCount;7599 kStream << m_iRiverTradeCount;7600 kStream << m_iBorderObstacleCount;7601 kStream << m_iVictoryPoints;7602 kStream << m_iEmbarkedExtraMoves;7603 kStream << m_iCanEmbarkCount;7604 kStream << m_iDefensiveEmbarkCount;7605 kStream << m_iEmbarkedAllWaterPassageCount;7606 kStream << m_iNumNaturalWondersDiscovered;7607 kStream << m_iBestPossibleRoute;7608 kStream << m_iNumMinorCivsAttacked;76097610 kStream << m_bMapCentering;7611 kStream << m_bHasBrokenPeaceTreaty;7612 kStream << m_bHomeOfUnitedNations;7613 kStream << m_bHasTechForWorldCongress;76147615 kStream << m_bBrokenMilitaryPromise;7616 kStream << m_bBrokenExpansionPromise;7617 kStream << m_bBrokenBorderPromise;7618 kStream << m_bBrokenCityStatePromise;76197620 kStream << m_eID;76217622 kStream << m_eCurrentEra;7623 kStream << m_eLiberatedByTeam;7624 kStream << m_eKilledByTeam;76257626 kStream << ArrayWrapperConst<int>(MAX_TEAMS, &m_aiTechShareCount[0]);7627 kStream << ArrayWrapperConst<int>(MAX_TEAMS, &m_aiNumTurnsAtWar[0]);7628 kStream << ArrayWrapperConst<int>(MAX_TEAMS, &m_aiNumTurnsLockedIntoWar[0]);7629 kStream << ArrayWrapperConst<int>(NUM_DOMAIN_TYPES, &m_aiExtraMoves[0]);76307631 CvInfosSerializationHelper::WriteHashedDataArray<VoteSourceTypes, int>(kStream, m_aiForceTeamVoteEligibilityCount, GC.getNumVoteSourceInfos());76327633 kStream << ArrayWrapperConst<int>(MAX_TEAMS, &m_paiTurnMadePeaceTreatyWithTeam[0]);7634 kStream << ArrayWrapperConst<int>(MAX_TEAMS, &m_aiIgnoreWarningCount[0]);76357636 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abHasMet[0]);7637 kStream << ArrayWrapperConst<bool>(MAX_PLAYERS, &m_abHasFoundPlayersTerritory[0]);7638 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abAtWar[0]);7639#if defined(MOD_EVENTS_WAR_AND_PEACE)7640 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abAggressorPacifier[0]);7641#endif7642 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abPermanentWarPeace[0]);7643 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abEmbassy[0]);7644 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abOpenBorders[0]);7645 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abDefensivePact[0]);7646 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abResearchAgreement[0]);7647 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abTradeAgreement[0]);7648 kStream << ArrayWrapperConst<bool>(MAX_TEAMS, &m_abForcePeace[0]);76497650 CvInfosSerializationHelper::WriteHashedDataArray<VictoryTypes, bool>(kStream, m_abCanLaunch, GC.getNumVictoryInfos());7651 CvInfosSerializationHelper::WriteHashedDataArray<VictoryTypes, bool>(kStream, m_abVictoryAchieved, GC.getNumVictoryInfos());7652 CvInfosSerializationHelper::WriteHashedDataArray<SmallAwardTypes, bool>(kStream, m_abSmallAwardAchieved, GC.getNumSmallAwardInfos());7653 CvInfosSerializationHelper::WriteHashedDataArray<RouteTypes, int>(kStream, m_paiRouteChange, GC.getNumRouteInfos());7654 CvInfosSerializationHelper::WriteHashedDataArray<BuildTypes, int>(kStream, m_paiBuildTimeChange, GC.getNumBuildInfos());7655 CvInfosSerializationHelper::WriteHashedDataArray<ProjectTypes, int>(kStream, m_paiProjectCount, GC.getNumProjectInfos());7656 CvInfosSerializationHelper::WriteHashedDataArray<ProjectTypes, int>(kStream, m_paiProjectDefaultArtTypes, GC.getNumProjectInfos());76577658 //project art types7659 kStream << GC.getNumProjectInfos();76607661 for(int i=0; i<GC.getNumProjectInfos(); i++)7662 {7663 CvInfosSerializationHelper::WriteHashed(kStream, GC.getProjectInfo((ProjectTypes)i));7664 for(int j=0; j<m_paiProjectCount[i]; j++)7665 {7666 kStream << m_pavProjectArtTypes[i][j];7667 }7668 }76697670 CvInfosSerializationHelper::WriteHashedDataArray<ProjectTypes, int>(kStream, m_paiProjectMaking, GC.getNumProjectInfos());76717672 UnitClassArrayHelpers::Write(kStream, m_paiUnitClassCount, GC.getNumUnitClassInfos());7673 BuildingClassArrayHelpers::Write(kStream, m_paiBuildingClassCount, GC.getNumBuildingClassInfos());7674 BuildingArrayHelpers::Write(kStream, m_paiObsoleteBuildingCount, GC.getNumBuildingInfos());76757676 CvInfosSerializationHelper::WriteHashedDataArray<TerrainTypes, int>(kStream, m_paiTerrainTradeCount, GC.getNumTerrainInfos());7677 CvInfosSerializationHelper::WriteHashedDataArray<VictoryTypes, int>(kStream, m_aiVictoryCountdown, GC.getNumVictoryInfos());7678 kStream << ArrayWrapperConst<int>(MAX_CIV_TEAMS, &m_aiTurnTeamMet[0]);76797680 m_pTeamTechs->Write(kStream);76817682#if defined(MOD_API_UNIFIED_YIELDS)7683 FeatureArrayHelpers::WriteYieldArray(kStream, m_ppaaiFeatureYieldChange, GC.getNumFeatureInfos());7684 TerrainArrayHelpers::WriteYieldArray(kStream, m_ppaaiTerrainYieldChange, GC.getNumTerrainInfos());7685#endif76867687 int iNumImprovements = GC.getNumImprovementInfos();7688 ImprovementArrayHelpers::WriteYieldArray(kStream, m_ppaaiImprovementYieldChange, iNumImprovements);7689 ImprovementArrayHelpers::WriteYieldArray(kStream, m_ppaaiImprovementNoFreshWaterYieldChange, iNumImprovements);7690 ImprovementArrayHelpers::WriteYieldArray(kStream, m_ppaaiImprovementFreshWaterYieldChange, iNumImprovements);76917692 CvInfosSerializationHelper::WriteHashedTypeArray(kStream, m_aeRevealedResources);7693}