Bazaar developer reference

CvTeam::Read(FDataStream &)

Defined in
CvTeam.cpp, line 7372
Class
CvTeam
Hook name
CivHooks::CvTeam_Read

Hooks

static bool BeforeCvTeam_Read(CvTeam* self, FDataStream& kStream);static void AfterCvTeam_Read(CvTeam* self, FDataStream& kStream);static void ReplaceCvTeam_Read(void (*original)(CvTeam*, FDataStream&), CvTeam* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvTeam_Read>(host, &BeforeCvTeam_Read);CivRegisterAfter<CivHooks::CvTeam_Read>(host, &AfterCvTeam_Read);CivRegisterReplace<CivHooks::CvTeam_Read>(host, &ReplaceCvTeam_Read);

Code

7372void CvTeam::Read(FDataStream& kStream)7373{7374	// Init data before load7375	reset();73767377	// Version number to maintain backwards compatibility7378	uint uiVersion;7379	kStream >> uiVersion;7380	MOD_SERIALIZE_INIT_READ(kStream);73817382	kStream >> m_iNumMembers;7383	kStream >> m_iAliveCount;7384	kStream >> m_iEverAliveCount;7385	kStream >> m_iNumCities;7386	kStream >> m_iTotalPopulation;7387	kStream >> m_iTotalLand;7388	kStream >> m_iNukeInterception;7389	kStream >> m_iExtraWaterSeeFromCount;7390	kStream >> m_iMapTradingCount;7391	kStream >> m_iTechTradingCount;7392	kStream >> m_iGoldTradingCount;7393	kStream >> m_iAllowEmbassyTradingAllowedCount;7394	kStream >> m_iOpenBordersTradingAllowedCount;7395	kStream >> m_iDefensivePactTradingAllowedCount;7396	kStream >> m_iResearchAgreementTradingAllowedCount;7397	kStream >> m_iTradeAgreementTradingAllowedCount;7398	kStream >> m_iPermanentAllianceTradingCount;7399#if defined(MOD_TECHS_CITY_WORKING)7400	MOD_SERIALIZE_READ(23, kStream, m_iCityWorkingChange, 0);7401#endif7402#if defined(MOD_TECHS_CITY_AUTOMATON_WORKERS)7403	MOD_SERIALIZE_READ(89, kStream, m_iCityAutomatonWorkersChange, 0);7404#endif7405	kStream >> m_iBridgeBuildingCount;7406	kStream >> m_iWaterWorkCount;7407	kStream >> m_iRiverTradeCount;7408	kStream >> m_iBorderObstacleCount;7409	kStream >> m_iVictoryPoints;7410	kStream >> m_iEmbarkedExtraMoves;7411	kStream >> m_iCanEmbarkCount;7412	kStream >> m_iDefensiveEmbarkCount;7413	kStream >> m_iEmbarkedAllWaterPassageCount;7414	kStream >> m_iNumNaturalWondersDiscovered;7415	kStream >> m_iBestPossibleRoute;7416	kStream >> m_iNumMinorCivsAttacked;74177418	kStream >> m_bMapCentering;7419	kStream >> m_bHasBrokenPeaceTreaty;7420	kStream >> m_bHomeOfUnitedNations;7421	kStream >> m_bHasTechForWorldCongress;74227423	kStream >> m_bBrokenMilitaryPromise;7424	kStream >> m_bBrokenExpansionPromise;7425	kStream >> m_bBrokenBorderPromise;7426	kStream >> m_bBrokenCityStatePromise;74277428	kStream >> m_eID;74297430	kStream >> m_eCurrentEra;7431	kStream >> m_eLiberatedByTeam;7432	kStream >> m_eKilledByTeam;74337434	ArrayWrapper<int> kTechShareCountWrapper(MAX_TEAMS, &m_aiTechShareCount[0]);7435	kStream >> kTechShareCountWrapper;74367437	ArrayWrapper<int> kNumTurnsAtWarWrapper(MAX_TEAMS, &m_aiNumTurnsAtWar[0]);7438	kStream >> kNumTurnsAtWarWrapper;74397440	ArrayWrapper<int> kNumTurnsLockedIntoWarWrapper(MAX_TEAMS, &m_aiNumTurnsLockedIntoWar[0]);7441	kStream >> kNumTurnsLockedIntoWarWrapper;74427443	ArrayWrapper<int> kExtraMovesWrapper(NUM_DOMAIN_TYPES, &m_aiExtraMoves[0]);7444	kStream >> kExtraMovesWrapper;74457446	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_aiForceTeamVoteEligibilityCount, GC.getNumVoteSourceInfos());74477448	ArrayWrapper<int> kTurnMadePeaceWrapper(MAX_TEAMS, &m_paiTurnMadePeaceTreatyWithTeam[0]);7449	kStream >> kTurnMadePeaceWrapper;74507451	ArrayWrapper<int> kIgnoreWarningWrapper(MAX_TEAMS, &m_aiIgnoreWarningCount[0]);7452	kStream >> kIgnoreWarningWrapper;74537454	ArrayWrapper<bool> kHasMetWrapper(MAX_TEAMS, &m_abHasMet[0]);7455	kStream >> kHasMetWrapper;74567457	ArrayWrapper<bool> kHasFoundPlayerWrapper(MAX_PLAYERS, &m_abHasFoundPlayersTerritory[0]);7458	kStream >> kHasFoundPlayerWrapper;74597460	ArrayWrapper<bool> kAtWarWrapper(MAX_TEAMS, &m_abAtWar[0]);7461	kStream >> kAtWarWrapper;74627463#if defined(MOD_EVENTS_WAR_AND_PEACE)7464	if (uiDllSaveVersion >= 63) {7465		ArrayWrapper<bool> kAggressorPacifierWrapper(MAX_TEAMS, &m_abAggressorPacifier[0]);7466		kStream >> kAggressorPacifierWrapper;7467	} else {7468		for (int i = 0; i < MAX_TEAMS; ++i) {7469			m_abAggressorPacifier[i] = false;7470		}7471	}7472#endif74737474	ArrayWrapper<bool> kPermanentWarWrapper(MAX_TEAMS, &m_abPermanentWarPeace[0]);7475	kStream >> kPermanentWarWrapper;74767477	ArrayWrapper<bool> kEmbassyWrapper(MAX_TEAMS, &m_abEmbassy[0]);7478	kStream >> kEmbassyWrapper;74797480	ArrayWrapper<bool> kOpenBordersWrapper(MAX_TEAMS, &m_abOpenBorders[0]);7481	kStream >> kOpenBordersWrapper;74827483	ArrayWrapper<bool> kDefensivePactWrapper(MAX_TEAMS, &m_abDefensivePact[0]);7484	kStream >> kDefensivePactWrapper;74857486	ArrayWrapper<bool> kResearchAgreementWrapper(MAX_TEAMS, &m_abResearchAgreement[0]);7487	kStream >> kResearchAgreementWrapper;74887489	ArrayWrapper<bool> kTradeAgreementWrapper(MAX_TEAMS, &m_abTradeAgreement[0]);7490	kStream >> kTradeAgreementWrapper;74917492	ArrayWrapper<bool> kForcePeaceWrapper(MAX_TEAMS, &m_abForcePeace[0]);7493	kStream >> kForcePeaceWrapper;74947495	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_abCanLaunch, GC.getNumVictoryInfos());7496	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_abVictoryAchieved, GC.getNumVictoryInfos());7497	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_abSmallAwardAchieved, GC.getNumSmallAwardInfos());7498	7499	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiRouteChange, GC.getNumRouteInfos());7500	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiBuildTimeChange, GC.getNumBuildInfos());7501	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiProjectCount, GC.getNumProjectInfos());7502	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiProjectDefaultArtTypes, GC.getNumProjectInfos());75037504	//project art types75057506	int iNumProjects;7507	kStream >> iNumProjects;7508	for(int i=0; i<iNumProjects; i++)7509	{7510		int iType = CvInfosSerializationHelper::ReadHashed(kStream);7511		if (iType != -1)7512		{7513			for(int j=0; j<m_paiProjectCount[iType]; j++)7514			{7515				int temp;7516				kStream >> temp;7517				m_pavProjectArtTypes[iType].push_back(temp);7518			}7519		}7520		else7521		{7522			for(int j=0; j<m_paiProjectCount[iType]; j++)7523			{7524				int temp;7525				kStream >> temp;7526			}7527			m_paiProjectCount[iType] = 0;7528		}7529	}75307531	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiProjectMaking, GC.getNumProjectInfos());75327533	UnitClassArrayHelpers::Read(kStream, m_paiUnitClassCount);75347535	BuildingClassArrayHelpers::Read(kStream, m_paiBuildingClassCount);7536	BuildingArrayHelpers::Read(kStream, m_paiObsoleteBuildingCount);75377538	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiTerrainTradeCount, GC.getNumTerrainInfos());7539	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_aiVictoryCountdown, GC.getNumVictoryInfos());75407541	ArrayWrapper<int> kTurnTeamMetWrapper(MAX_CIV_TEAMS, &m_aiTurnTeamMet[0]);7542	kStream >> kTurnTeamMetWrapper;75437544	m_pTeamTechs->Read(kStream);75457546#if defined(MOD_API_UNIFIED_YIELDS)7547	FeatureArrayHelpers::ReadYieldArray(kStream, m_ppaaiFeatureYieldChange, NUM_YIELD_TYPES);7548	TerrainArrayHelpers::ReadYieldArray(kStream, m_ppaaiTerrainYieldChange, NUM_YIELD_TYPES);7549#endif75507551	ImprovementArrayHelpers::ReadYieldArray(kStream, m_ppaaiImprovementYieldChange, NUM_YIELD_TYPES);7552	ImprovementArrayHelpers::ReadYieldArray(kStream, m_ppaaiImprovementNoFreshWaterYieldChange, NUM_YIELD_TYPES);7553	ImprovementArrayHelpers::ReadYieldArray(kStream, m_ppaaiImprovementFreshWaterYieldChange, NUM_YIELD_TYPES);75547555	CvInfosSerializationHelper::ReadHashedTypeArray(kStream, m_aeRevealedResources);75567557	// Fix bad 'at war' flags where we are at war with ourselves.  Not a good thing.7558	if(m_eID >= 0 && m_eID < MAX_TEAMS)7559	{7560		m_abAtWar[m_eID] = false;7561		m_aiNumTurnsAtWar[m_eID] = 0;7562	}7563}

Calls

Called by