Bazaar developer reference

CvPlayerTraits::Write(FDataStream &)

Defined in
CvTraitClasses.cpp, line 4034
Class
CvPlayerTraits
Hook name
CivHooks::CvPlayerTraits_Write

Hooks

static bool BeforeCvPlayerTraits_Write(CvPlayerTraits* self, FDataStream& kStream);static void AfterCvPlayerTraits_Write(CvPlayerTraits* self, FDataStream& kStream);static void ReplaceCvPlayerTraits_Write(void (*original)(CvPlayerTraits*, FDataStream&), CvPlayerTraits* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvPlayerTraits_Write>(host, &BeforeCvPlayerTraits_Write);CivRegisterAfter<CivHooks::CvPlayerTraits_Write>(host, &AfterCvPlayerTraits_Write);CivRegisterReplace<CivHooks::CvPlayerTraits_Write>(host, &ReplaceCvPlayerTraits_Write);

Code

4033/// Serialization write4034void CvPlayerTraits::Write(FDataStream& kStream)4035{4036	// Current version number4037	uint uiVersion = 19;4038	kStream << uiVersion;4039	MOD_SERIALIZE_INIT_WRITE(kStream);40404041	kStream << m_iGreatPeopleRateModifier;4042	kStream << m_iGreatScientistRateModifier;4043	kStream << m_iGreatGeneralRateModifier;4044	kStream << m_iGreatGeneralExtraBonus;4045	kStream << m_iGreatPersonGiftInfluence;4046	kStream << m_iLevelExperienceModifier;4047	kStream << m_iMaxGlobalBuildingProductionModifier;4048	kStream << m_iMaxTeamBuildingProductionModifier;4049	kStream << m_iMaxPlayerBuildingProductionModifier;4050	kStream << m_iCityUnhappinessModifier;4051	kStream << m_iPopulationUnhappinessModifier;4052	kStream << m_iCityStateBonusModifier;4053	kStream << m_iCityStateFriendshipModifier;4054	kStream << m_iCityStateCombatModifier;4055	kStream << m_iLandBarbarianConversionPercent;4056	kStream << m_iLandBarbarianConversionExtraUnits;4057	kStream << m_iSeaBarbarianConversionPercent;4058	kStream << m_iCapitalBuildingModifier;4059	kStream << m_iPlotBuyCostModifier;4060#if defined(MOD_TRAITS_CITY_WORKING)4061    MOD_SERIALIZE_WRITE(kStream, m_iCityWorkingChange);4062#endif4063#if defined(MOD_TRAITS_CITY_AUTOMATON_WORKERS)4064    MOD_SERIALIZE_WRITE(kStream, m_iCityAutomatonWorkersChange);4065#endif4066	kStream << m_iPlotCultureCostModifier;4067	kStream << m_iCultureFromKills;4068	kStream << m_iFaithFromKills;4069	kStream << m_iCityCultureBonus;4070	kStream << m_iCapitalThemingBonusModifier;4071	kStream << m_iPolicyCostModifier;4072	kStream << m_iCityConnectionTradeRouteChange;4073	kStream << m_iWonderProductionModifier;4074	kStream << m_iPlunderModifier;4075	kStream << m_iImprovementMaintenanceModifier;4076	kStream << m_iGoldenAgeDurationModifier;4077	kStream << m_iGoldenAgeMoveChange;4078	kStream << m_iGoldenAgeCombatModifier;4079	kStream << m_iGoldenAgeTourismModifier;4080	kStream << m_iGoldenAgeGreatArtistRateModifier;4081	kStream << m_iGoldenAgeGreatMusicianRateModifier;4082	kStream << m_iGoldenAgeGreatWriterRateModifier;4083	kStream << m_iExtraEmbarkMoves;4084	kStream << m_iNaturalWonderFirstFinderGold;4085	kStream << m_iNaturalWonderSubsequentFinderGold;4086	kStream << m_iNaturalWonderYieldModifier;4087	kStream << m_iNaturalWonderHappinessModifier;4088	kStream << m_iNearbyImprovementCombatBonus;4089	kStream << m_iNearbyImprovementBonusRange;4090	kStream << m_iCultureBuildingYieldChange;4091	kStream << m_iCombatBonusVsHigherTech;4092	kStream << m_iCombatBonusVsLargerCiv;4093	kStream << m_iLandUnitMaintenanceModifier;4094	kStream << m_iNavalUnitMaintenanceModifier;4095	kStream << m_iRazeSpeedModifier;4096	kStream << m_iDOFGreatPersonModifier;4097	kStream << m_iLuxuryHappinessRetention;4098#if defined(MOD_TRAITS_EXTRA_SUPPLY)4099	MOD_SERIALIZE_WRITE(kStream, m_iExtraSupply);4100	MOD_SERIALIZE_WRITE(kStream, m_iExtraSupplyPerCity);4101	MOD_SERIALIZE_WRITE(kStream, m_iExtraSupplyPerPopulation);4102#endif4103	kStream << m_iExtraSpies;4104	kStream << m_iUnresearchedTechBonusFromKills;4105	kStream << m_iExtraFoundedCityTerritoryClaimRange;4106	kStream << m_iFreeSocialPoliciesPerEra;4107	kStream << m_iNumTradeRoutesModifier;4108	kStream << m_iTradeRouteResourceModifier;4109	kStream << m_iUniqueLuxuryCities;4110	kStream << m_iUniqueLuxuryQuantity;4111	kStream << m_iUniqueLuxuryCitiesPlaced;4112	kStream << m_iWorkerSpeedModifier;4113	kStream << m_iAfraidMinorPerTurnInfluence;4114	kStream << m_iLandTradeRouteRangeBonus;4115	kStream << m_iTradeReligionModifier;4116	kStream << m_iTradeBuildingModifier;4117#if defined(MOD_TRAITS_TRADE_ROUTE_BONUSES)4118	MOD_SERIALIZE_WRITE(kStream, m_iSeaTradeRouteRangeBonus);4119#endif41204121	kStream << m_bFightWellDamaged;4122	kStream << m_bMoveFriendlyWoodsAsRoad;4123	kStream << m_bFasterAlongRiver;4124	kStream << m_bFasterInHills;4125	kStream << m_bEmbarkedAllWater;4126	kStream << m_bEmbarkedToLandFlatCost;4127	kStream << m_bNoHillsImprovementMaintenance;4128	kStream << m_bTechBoostFromCapitalScienceBuildings;4129	kStream << m_bStaysAliveZeroCities;4130	kStream << m_bFaithFromUnimprovedForest;4131#if defined(MOD_TRAITS_ANY_BELIEF)4132	MOD_SERIALIZE_WRITE(kStream, m_bAnyBelief);4133#endif4134	kStream << m_bBonusReligiousBelief;4135	kStream << m_bAbleToAnnexCityStates;4136	kStream << m_bCrossesMountainsAfterGreatGeneral;4137#if defined(MOD_TRAITS_CROSSES_ICE)4138	MOD_SERIALIZE_WRITE(kStream, m_bCrossesIce);4139#endif4140#if defined(MOD_TRAITS_GG_FROM_BARBARIANS)4141	MOD_SERIALIZE_WRITE(kStream, m_bGGFromBarbarians);4142#endif4143	kStream << m_bMayaCalendarBonuses;41444145	kStream << m_iBaktunPreviousTurn;41464147	std::vector<MayaBonusChoice>::const_iterator it;4148	kStream << m_aMayaBonusChoices.size();4149	for(it = m_aMayaBonusChoices.begin(); it != m_aMayaBonusChoices.end(); it++)4150	{4151		kStream << it->m_eUnitType;4152		kStream << it->m_iBaktunJustFinished;4153	}41544155	kStream << m_bNoAnnexing;4156	kStream << m_bTechFromCityConquer;4157	kStream << m_bUniqueLuxuryRequiresNewArea;4158	kStream << m_bRiverTradeRoad;4159	kStream << m_bAngerFreeIntrusionOfCityStates;41604161	kStream << m_eCampGuardType;4162	kStream << m_eCombatBonusImprovement;41634164	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iExtraYieldThreshold);4165	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iFreeCityYield);4166	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iYieldChangeStrategicResources);4167	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iYieldRateModifier);4168	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iYieldChangeNaturalWonder);4169	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iYieldChangePerTradePartner);4170	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iYieldChangeIncomingTradeRoute);4171	4172	CvInfosSerializationHelper::WriteHashedDataArray<TerrainTypes>(kStream, &m_iStrategicResourceQuantityModifier[0], GC.getNumTerrainInfos());4173	CvInfosSerializationHelper::WriteHashedDataArray<ResourceTypes>(kStream, m_aiResourceQuantityModifier);41744175	kStream << m_abNoTrain.size();4176	for (uint ui = 0; ui < m_abNoTrain.size(); ui++)4177	{4178		kStream << m_abNoTrain[ui];4179	}41804181	kStream << m_aFreeTraitUnits.size();4182	for(uint ui = 0; ui < m_aFreeTraitUnits.size(); ui++)4183	{4184		kStream << m_aFreeTraitUnits[ui].m_iFreeUnit;4185		kStream << m_aFreeTraitUnits[ui].m_ePrereqTech;4186	}41874188	int iNumUnitCombatClassInfos = GC.getNumUnitCombatClassInfos();4189	kStream << 	iNumUnitCombatClassInfos;4190	for(int iI = 0; iI < iNumUnitCombatClassInfos; iI++)4191	{4192		kStream << m_paiMovesChangeUnitCombat[iI];4193	}4194	for(int iI = 0; iI < iNumUnitCombatClassInfos; iI++)4195	{4196		kStream << m_paiMaintenanceModifierUnitCombat[iI];4197	}41984199	kStream << m_ppaaiImprovementYieldChange;4200#if defined(MOD_API_UNIFIED_YIELDS) && defined(MOD_API_PLOT_YIELDS)4201	// MOD_SERIALIZE_READ - v57/v58/v59 broke the save format  couldn't be helped, but don't make a habit of it!!!4202	kStream << m_ppiPlotYieldChange;4203#endif4204#if defined(MOD_API_UNIFIED_YIELDS)4205	// MOD_SERIALIZE_READ - v57/v58/v59 and v61 broke the save format  couldn't be helped, but don't make a habit of it!!!4206	kStream << m_ppiBuildingClassYieldChange;4207	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iCapitalYieldChanges);4208	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iCityYieldChanges);4209	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iCoastalCityYieldChanges);4210	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iGreatWorkYieldChanges);4211	kStream << m_ppiFeatureYieldChange;4212	kStream << m_ppiResourceYieldChange;4213	kStream << m_ppiTerrainYieldChange;4214	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iYieldFromKills);4215	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iYieldFromBarbarianKills);4216	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iYieldChangeTradeRoute);4217	kStream << ArrayWrapper<int>(NUM_YIELD_TYPES, m_iYieldChangeWorldWonder);4218	kStream << m_ppiTradeRouteYieldChange;4219#endif4220	kStream << m_ppaaiSpecialistYieldChange;4221#if defined(MOD_API_UNIFIED_YIELDS)4222	kStream << m_ppiGreatPersonExpendedYield;4223	kStream << m_piGoldenAgeGreatPersonRateModifier;4224	kStream << m_ppiCityYieldFromUnimprovedFeature;4225#endif4226	kStream << m_ppaaiUnimprovedFeatureYieldChange;42274228	kStream << (int)m_aUniqueLuxuryAreas.size();4229	for (unsigned int iI = 0; iI < m_aUniqueLuxuryAreas.size(); iI++)4230	{4231		kStream << m_aUniqueLuxuryAreas[iI];4232	}4233}

Calls

Called by