Bazaar developer reference

CvPlayer::Read(FDataStream &)

Defined in
CvPlayer.cpp, line 24730
Class
CvPlayer
Hook name
CivHooks::CvPlayer_Read
Overridden by
CvPlayerAI::Read(FDataStream &)

Hooks

static bool BeforeCvPlayer_Read(CvPlayer* self, FDataStream& kStream);static void AfterCvPlayer_Read(CvPlayer* self, FDataStream& kStream);static void ReplaceCvPlayer_Read(void (*original)(CvPlayer*, FDataStream&), CvPlayer* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvPlayer_Read>(host, &BeforeCvPlayer_Read);CivRegisterAfter<CivHooks::CvPlayer_Read>(host, &AfterCvPlayer_Read);CivRegisterReplace<CivHooks::CvPlayer_Read>(host, &ReplaceCvPlayer_Read);

Code

24726//24727// read object from a stream24728// used during load24729//24730void CvPlayer::Read(FDataStream& kStream)24731{24732	// Init data before load24733	reset();2473424735	// Version number to maintain backwards compatibility24736	uint uiVersion;24737	kStream >> uiVersion;24738	MOD_SERIALIZE_INIT_READ(kStream);2473924740	kStream >> m_iStartingX;24741	kStream >> m_iStartingY;24742	kStream >> m_iTotalPopulation;24743	kStream >> m_iTotalLand;24744	kStream >> m_iTotalLandScored;24745	kStream >> m_iJONSCulturePerTurnForFree;24746	kStream >> m_iJONSCulturePerTurnFromMinorCivs;24747	kStream >> m_iJONSCultureCityModifier;24748	kStream >> m_iJONSCulture;24749	kStream >> m_iJONSCultureEverGenerated;24750	kStream >> m_iCulturePerWonder;24751	kStream >> m_iCultureWonderMultiplier;24752	kStream >> m_iCulturePerTechResearched;24753	kStream >> m_iFaith;24754	kStream >> m_iFaithEverGenerated;24755	kStream >> m_iHappiness;24756	kStream >> m_iUprisingCounter;24757	kStream >> m_iExtraHappinessPerLuxury;24758	kStream >> m_iUnhappinessFromUnits;24759	kStream >> m_iUnhappinessFromUnitsMod;24760	kStream >> m_iUnhappinessMod;24761	kStream >> m_iCityCountUnhappinessMod;24762	kStream >> m_iOccupiedPopulationUnhappinessMod;24763	kStream >> m_iCapitalUnhappinessMod;24764	kStream >> m_iCityRevoltCounter;24765	kStream >> m_iHappinessPerGarrisonedUnitCount;24766	kStream >> m_iHappinessPerTradeRouteCount;24767	kStream >> m_iHappinessPerXPopulation;24768	kStream >> m_iHappinessPerXPolicies;24769	if (uiVersion >= 8)24770	{24771		kStream >> m_iHappinessFromLeagues;24772	}24773	else24774	{24775		m_iHappinessFromLeagues = 0;24776	}24777	kStream >> m_iEspionageModifier;24778	kStream >> m_iSpyStartingRank;24779#if defined(MOD_RELIGION_CONVERSION_MODIFIERS)24780	MOD_SERIALIZE_READ(23, kStream, m_iConversionModifier, 0);24781#endif24782	if (uiVersion >= 14)24783	{24784		kStream >> m_iExtraLeagueVotes;24785	}24786	else24787	{24788		m_iExtraLeagueVotes = 0;24789	}24790	kStream >> m_iSpecialPolicyBuildingHappiness;24791	kStream >> m_iWoundedUnitDamageMod;24792	kStream >> m_iUnitUpgradeCostMod;24793	kStream >> m_iBarbarianCombatBonus;24794	kStream >> m_iAlwaysSeeBarbCampsCount;24795	kStream >> m_iHappinessFromBuildings;24796	kStream >> m_iHappinessPerCity;24797	kStream >> m_iAdvancedStartPoints;24798	kStream >> m_iAttackBonusTurns;24799	if (uiVersion >= 9)24800	{24801		kStream >> m_iCultureBonusTurns;24802		kStream >> m_iTourismBonusTurns;24803	}24804	else24805	{24806		m_iCultureBonusTurns = 0;24807		m_iTourismBonusTurns = 0;24808	}24809	kStream >> m_iGoldenAgeProgressMeter;24810	kStream >> m_iGoldenAgeMeterMod;24811	kStream >> m_iNumGoldenAges;24812	kStream >> m_iGoldenAgeTurns;24813	kStream >> m_iNumUnitGoldenAges;24814	kStream >> m_iStrikeTurns;24815	kStream >> m_iGoldenAgeModifier;24816#if defined(MOD_GLOBAL_TRULY_FREE_GP)24817	MOD_SERIALIZE_READ(61, kStream, m_iFreeGreatPeopleCreated, 0);24818	MOD_SERIALIZE_READ(61, kStream, m_iFreeGreatGeneralsCreated, 0);24819	MOD_SERIALIZE_READ(61, kStream, m_iFreeGreatAdmiralsCreated, 0);24820#if defined(MOD_GLOBAL_SEPARATE_GP_COUNTERS)24821	MOD_SERIALIZE_READ(61, kStream, m_iFreeGreatMerchantsCreated, 0);24822	MOD_SERIALIZE_READ(61, kStream, m_iFreeGreatScientistsCreated, 0);24823	MOD_SERIALIZE_READ(61, kStream, m_iFreeGreatEngineersCreated, 0);24824#endif24825	MOD_SERIALIZE_READ(61, kStream, m_iFreeGreatWritersCreated, 0);24826	MOD_SERIALIZE_READ(61, kStream, m_iFreeGreatArtistsCreated, 0);24827	MOD_SERIALIZE_READ(61, kStream, m_iFreeGreatMusiciansCreated, 0);24828#endif24829	kStream >> m_iGreatPeopleCreated;24830	kStream >> m_iGreatGeneralsCreated;24831	kStream >> m_iGreatAdmiralsCreated;24832#if defined(MOD_GLOBAL_SEPARATE_GP_COUNTERS)24833	MOD_SERIALIZE_READ(52, kStream, m_iGreatMerchantsCreated, 0);24834	MOD_SERIALIZE_READ(52, kStream, m_iGreatScientistsCreated, 0);24835	MOD_SERIALIZE_READ(52, kStream, m_iGreatEngineersCreated, 0);24836#endif24837	kStream >> m_iGreatWritersCreated;24838	kStream >> m_iGreatArtistsCreated;24839	kStream >> m_iGreatMusiciansCreated;24840	kStream >> m_iMerchantsFromFaith;24841	kStream >> m_iScientistsFromFaith;24842	kStream >> m_iWritersFromFaith;24843	kStream >> m_iArtistsFromFaith;24844	kStream >> m_iMusiciansFromFaith;24845	kStream >> m_iGeneralsFromFaith;24846	kStream >> m_iAdmiralsFromFaith;24847	kStream >> m_iEngineersFromFaith;24848	kStream >> m_iGreatPeopleThresholdModifier;24849	kStream >> m_iGreatGeneralsThresholdModifier;24850	kStream >> m_iGreatAdmiralsThresholdModifier;24851	kStream >> m_iGreatGeneralCombatBonus;24852	kStream >> m_iAnarchyNumTurns;24853	kStream >> m_iPolicyCostModifier;24854	kStream >> m_iGreatPeopleRateModifier;24855	kStream >> m_iGreatPeopleRateModFromBldgs;24856	kStream >> m_iGreatGeneralRateModifier;24857	kStream >> m_iGreatGeneralRateModFromBldgs;24858	kStream >> m_iDomesticGreatGeneralRateModifier;24859	kStream >> m_iDomesticGreatGeneralRateModFromBldgs;24860	kStream >> m_iGreatAdmiralRateModifier;24861	kStream >> m_iGreatWriterRateModifier;24862	kStream >> m_iGreatArtistRateModifier;24863	kStream >> m_iGreatMusicianRateModifier;24864	kStream >> m_iGreatMerchantRateModifier;24865	kStream >> m_iGreatScientistRateModifier;24866	if (uiVersion >= 10)24867	{24868		kStream >> m_iGreatScientistBeakerModifier;24869	}24870	else24871	{24872		m_iGreatScientistBeakerModifier = 0;24873	}24874	if (uiVersion >= 13)24875	{24876		kStream >> m_iGreatEngineerRateModifier;24877	}24878	else24879	{24880		m_iGreatEngineerRateModifier = 0;24881	}24882	kStream >> m_iGreatPersonExpendGold;24883	kStream >> m_iMaxGlobalBuildingProductionModifier;24884	kStream >> m_iMaxTeamBuildingProductionModifier;24885	kStream >> m_iMaxPlayerBuildingProductionModifier;24886	kStream >> m_iFreeExperience;24887	kStream >> m_iFreeExperienceFromBldgs;24888	kStream >> m_iFreeExperienceFromMinors;24889	kStream >> m_iFeatureProductionModifier;24890	kStream >> m_iWorkerSpeedModifier;24891	kStream >> m_iImprovementCostModifier;24892	kStream >> m_iImprovementUpgradeRateModifier;24893	kStream >> m_iSpecialistProductionModifier;24894	kStream >> m_iMilitaryProductionModifier;24895	kStream >> m_iSpaceProductionModifier;24896	kStream >> m_iCityDefenseModifier;24897	kStream >> m_iUnitFortificationModifier;24898	kStream >> m_iUnitBaseHealModifier;24899	kStream >> m_iWonderProductionModifier;24900	kStream >> m_iSettlerProductionModifier;24901	kStream >> m_iCapitalSettlerProductionModifier;24902	kStream >> m_iUnitProductionMaintenanceMod;24903	kStream >> m_iPolicyCostBuildingModifier;24904	kStream >> m_iPolicyCostMinorCivModifier;24905	kStream >> m_iInfluenceSpreadModifier;24906	if (uiVersion >= 15)24907	{24908		kStream >> m_iExtraVotesPerDiplomat;24909	}24910	else24911	{24912		m_iExtraVotesPerDiplomat = 0;24913	}24914	kStream >> m_iNumNukeUnits;24915	kStream >> m_iNumOutsideUnits;24916	kStream >> m_iBaseFreeUnits;24917	kStream >> m_iBaseFreeMilitaryUnits;24918	kStream >> m_iFreeUnitsPopulationPercent;24919	kStream >> m_iFreeMilitaryUnitsPopulationPercent;24920	kStream >> m_iGoldPerUnit;24921	kStream >> m_iGoldPerMilitaryUnit;24922	kStream >> m_iRouteGoldMaintenanceMod;24923	kStream >> m_iBuildingGoldMaintenanceMod;24924	kStream >> m_iUnitGoldMaintenanceMod;24925	kStream >> m_iUnitSupplyMod;24926	kStream >> m_iExtraUnitCost;24927	kStream >> m_iNumMilitaryUnits;24928	kStream >> m_iHappyPerMilitaryUnit;24929	kStream >> m_iHappinessToCulture;24930	kStream >> m_iHappinessToScience;24931	kStream >> m_iHalfSpecialistUnhappinessCount;24932	kStream >> m_iHalfSpecialistFoodCount;24933	kStream >> m_iMilitaryFoodProductionCount;24934	kStream >> m_iGoldenAgeCultureBonusDisabledCount;24935	kStream >> m_iSecondReligionPantheonCount;24936	if (uiVersion >= 2)24937	{24938		kStream >> m_iEnablesSSPartHurryCount;24939	}24940	else24941	{24942		m_iEnablesSSPartHurryCount = 0;24943	}24944	if (uiVersion >= 3)24945	{24946		kStream >> m_iEnablesSSPartPurchaseCount;24947	}24948	else24949	{24950		m_iEnablesSSPartPurchaseCount = 0;24951	}24952	kStream >> m_iConscriptCount;24953	kStream >> m_iMaxConscript;24954	kStream >> m_iHighestUnitLevel;24955	kStream >> m_iOverflowResearch;24956	kStream >> m_iExpModifier;24957	kStream >> m_iExpInBorderModifier;24958	kStream >> m_iLevelExperienceModifier;24959	kStream >> m_iMinorQuestFriendshipMod;24960	kStream >> m_iMinorGoldFriendshipMod;24961	kStream >> m_iMinorFriendshipMinimum;24962	kStream >> m_iMinorFriendshipDecayMod;24963	kStream >> m_iMinorScienceAlliesCount;24964	kStream >> m_iMinorResourceBonusCount;24965	if (uiVersion >= 12)24966	{24967		kStream >> m_iAbleToAnnexCityStatesCount;24968	}24969	else24970	{24971		m_iAbleToAnnexCityStatesCount = 0;24972	}24973	kStream >> m_iConversionTimer;24974	kStream >> m_iCapitalCityID;24975	kStream >> m_iCitiesLost;24976	kStream >> m_iMilitaryMight;24977	kStream >> m_iEconomicMight;24978	kStream >> m_iTurnMightRecomputed;24979	kStream >> m_iNewCityExtraPopulation;24980	kStream >> m_iFreeFoodBox;24981	kStream >> m_iScenarioScore1;24982	kStream >> m_iScenarioScore2;24983	kStream >> m_iScenarioScore3;24984	kStream >> m_iScoreFromFutureTech;24985	kStream >> m_iScenarioScore4;24986	kStream >> m_iCombatExperience;24987	kStream >> m_iNavalCombatExperience;24988	kStream >> m_iLifetimeCombatExperience;24989#if defined(MOD_UNITS_XP_TIMES_100)24990	MOD_SERIALIZE_READ(74, kStream, m_iCombatExperienceTimes100, m_iCombatExperience*100);24991	MOD_SERIALIZE_READ(74, kStream, m_iNavalCombatExperienceTimes100, m_iNavalCombatExperience*100);24992	MOD_SERIALIZE_READ(74, kStream, m_iLifetimeCombatExperienceTimes100, m_iLifetimeCombatExperience*100);24993#endif24994	kStream >> m_iBorderObstacleCount;24995	kStream >> m_iNextOperationID;24996	kStream >> m_iCostNextPolicy;24997	kStream >> m_iNumBuilders;24998	kStream >> m_iMaxNumBuilders;24999	kStream >> m_iCityStrengthMod;25000	kStream >> m_iCityGrowthMod;25001	kStream >> m_iCapitalGrowthMod;25002	kStream >> m_iNumPlotsBought;25003	kStream >> m_iPlotGoldCostMod;25004#if defined(MOD_TRAITS_CITY_WORKING) || defined(MOD_BUILDINGS_CITY_WORKING) || defined(MOD_POLICIES_CITY_WORKING) || defined(MOD_TECHS_CITY_WORKING)25005	MOD_SERIALIZE_READ(23, kStream, m_iCityWorkingChange, 0);25006#endif25007#if defined(MOD_TRAITS_CITY_AUTOMATON_WORKERS) || defined(MOD_BUILDINGS_CITY_AUTOMATON_WORKERS) || defined(MOD_POLICIES_CITY_AUTOMATON_WORKERS) || defined(MOD_TECHS_CITY_AUTOMATON_WORKERS)25008	MOD_SERIALIZE_READ(90, kStream, m_iCityAutomatonWorkersChange, 0);25009#endif25010	kStream >> m_iPlotCultureCostModifier;25011	kStream >> m_iPlotCultureExponentModifier;25012	kStream >> m_iNumCitiesPolicyCostDiscount;25013	kStream >> m_iGarrisonFreeMaintenanceCount;25014	kStream >> m_iGarrisonedCityRangeStrikeModifier;25015	kStream >> m_iNumCitiesFreeCultureBuilding;25016	kStream >> m_iNumCitiesFreeFoodBuilding;25017	kStream >> m_iUnitPurchaseCostModifier;25018	kStream >> m_iAllFeatureProduction;25019	kStream >> m_iCityDistanceHighwaterMark;25020	kStream >> m_iOriginalCapitalX;25021	kStream >> m_iOriginalCapitalY;25022	kStream >> m_iNumWonders;25023	kStream >> m_iNumPolicies;25024	kStream >> m_iNumGreatPeople;25025	kStream >> m_iCityConnectionHappiness;25026	kStream >> m_iHolyCityID;25027	kStream >> m_iTurnsSinceSettledLastCity;25028	kStream >> m_iNumNaturalWondersDiscoveredInArea;25029	kStream >> m_iStrategicResourceMod;25030	kStream >> m_iSpecialistCultureChange;25031	kStream >> m_iGreatPeopleSpawnCounter;25032	kStream >> m_iFreeTechCount;25033	kStream >> m_iMedianTechPercentage;25034	kStream >> m_iNumFreePolicies;25035	kStream >> m_iNumFreePoliciesEver;25036	if (uiVersion >= 16)25037	{25038		kStream >> m_iNumFreeTenets;25039	}25040	else25041	{25042		m_iNumFreeTenets = 0;25043	}25044	kStream >> m_iNumFreeGreatPeople;25045	kStream >> m_iNumMayaBoosts;25046	kStream >> m_iNumFaithGreatPeople;25047	kStream >> m_iNumArchaeologyChoices;2504825049	int temp;25050	kStream >> temp;25051	m_eFaithPurchaseType = (FaithPurchaseTypes)temp;25052	kStream >> m_iFaithPurchaseIndex;2505325054	if (uiVersion >= 6)25055	{25056		kStream >> m_iMaxEffectiveCities;25057	}25058	else25059	{25060		m_iMaxEffectiveCities = 1;25061	}2506225063	kStream >> m_iLastSliceMoved;25064	kStream >> m_bHasBetrayedMinorCiv;25065	kStream >> m_bAlive;25066	kStream >> m_bEverAlive;25067	kStream >> m_bBeingResurrected;25068	kStream >> m_bTurnActive;25069	kStream >> m_bAutoMoves;25070	kStream >> m_bEndTurn;25071	kStream >> m_bDynamicTurnsSimultMode;25072	kStream >> m_bPbemNewTurn;25073	kStream >> m_bExtendedGame;25074	kStream >> m_bFoundedFirstCity;25075	kStream >> m_iNumCitiesFounded;25076	kStream >> m_bStrike;25077	kStream >> m_bCramped;25078	kStream >> m_bLostCapital;25079	kStream >> m_eConqueror;25080	kStream >> m_bHasAdoptedStateReligion;25081	kStream >> m_bAlliesGreatPersonBiasApplied;25082	kStream >> m_eID;25083	kStream >> m_ePersonalityType;25084	kStream >> m_aiCityYieldChange;25085	kStream >> m_aiCoastalCityYieldChange;25086	kStream >> m_aiCapitalYieldChange;25087	kStream >> m_aiCapitalYieldPerPopChange;25088	kStream >> m_aiSeaPlotYield;25089	kStream >> m_aiYieldRateModifier;25090	kStream >> m_aiCapitalYieldRateModifier;2509125092	if (uiVersion >= 4)25093	{25094		kStream >> m_aiGreatWorkYieldChange;25095	}25096	else25097	{25098		m_aiGreatWorkYieldChange.clear();25099		m_aiGreatWorkYieldChange.resize(NUM_YIELD_TYPES, 0);25100	}25101	kStream >> m_aiExtraYieldThreshold;25102	kStream >> m_aiSpecialistExtraYield;25103	kStream >> m_aiProximityToPlayer;25104	kStream >> m_aiResearchAgreementCounter;25105	if (uiVersion >= 5)25106	{25107		kStream >> m_aiIncomingUnitTypes;25108		kStream >> m_aiIncomingUnitCountdowns;25109	}25110	else25111	{25112		std::vector<int> aiOldIncomingUnitTypes;25113		kStream >> aiOldIncomingUnitTypes;25114		m_aiIncomingUnitTypes.clear();25115		m_aiIncomingUnitTypes.resize(MAX_PLAYERS, NO_UNIT);2511625117		// m_aiIncomingUnitCountdowns was not serialized before...curious25118		m_aiIncomingUnitCountdowns.clear();25119		m_aiIncomingUnitCountdowns.resize(MAX_PLAYERS, -1);25120	}25121	25122	kStream >> m_aiMinorFriendshipAnchors;25123	if (uiVersion >= 7)25124	{25125		kStream >> m_aiSiphonLuxuryCount;25126	}25127	else25128	{25129		m_aiSiphonLuxuryCount.clear();25130		m_aiSiphonLuxuryCount.resize(MAX_PLAYERS, 0);25131	}25132	kStream >> m_strReligionKey;25133	kStream >> m_strScriptData;2513425135	CvAssertMsg((0 < GC.getNumResourceInfos()), "GC.getNumResourceInfos() is not greater than zero but it is expected to be in CvPlayer::read");25136	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiNumResourceUsed.dirtyGet());25137	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiNumResourceTotal.dirtyGet());25138	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiResourceGiftedToMinors.dirtyGet());25139	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiResourceExport.dirtyGet());25140	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiResourceImport.dirtyGet());25141	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiResourceFromMinors.dirtyGet());25142	if (uiVersion >= 7)25143	{25144		CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiResourcesSiphoned.dirtyGet());25145	}25146	else25147	{25148		m_paiResourcesSiphoned.clear();25149		m_paiResourcesSiphoned.resize(GC.getNumResourceInfos(), 0);25150	}2515125152	kStream >> m_paiImprovementCount;2515325154	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiFreeBuildingCount.dirtyGet());25155	CvInfosSerializationHelper::ReadHashedDataArray(kStream, m_paiFreePromotionCount.dirtyGet());2515625157	kStream >> m_paiUnitCombatProductionModifiers;25158	kStream >> m_paiUnitCombatFreeExperiences;25159	kStream >> m_paiUnitClassCount;25160	kStream >> m_paiUnitClassMaking;25161	kStream >> m_paiBuildingClassCount;25162	kStream >> m_paiBuildingClassMaking;25163	kStream >> m_paiProjectMaking;25164	kStream >> m_paiHurryCount;25165	kStream >> m_paiHurryModifier;2516625167	CvAssertMsg((0 < GC.getNumTechInfos()), "GC.getNumTechInfos() is not greater than zero but it is expected to be in CvPlayer::read");2516825169	kStream >> m_pabLoyalMember;2517025171	kStream >> m_pabGetsScienceFromPlayer;2517225173	m_pPlayerPolicies->Read(kStream);25174	m_pEconomicAI->Read(kStream);25175	m_pCitySpecializationAI->Read(kStream);25176	m_pWonderProductionAI->Read(kStream);25177	m_pMilitaryAI->Read(kStream);25178	m_pGrandStrategyAI->Read(kStream);25179	m_pDiplomacyAI->Read(kStream);25180	m_pReligions->Read(kStream);25181	m_pReligionAI->Read(kStream);25182	m_pPlayerTechs->Read(kStream);25183	m_pFlavorManager->Read(kStream);25184	m_pTacticalAI->Read(kStream);25185	m_pHomelandAI->Read(kStream);25186	m_pMinorCivAI->Read(kStream);25187	m_pDealAI->Read(kStream);25188	m_pBuilderTaskingAI->Read(kStream);25189	m_pCityConnections->Read(kStream);25190	m_pDangerPlots->Read(kStream);25191	m_pTraits->Read(kStream);25192	kStream >> *m_pEspionage;25193	kStream >> *m_pEspionageAI;25194	kStream >> *m_pTrade;25195	kStream >> *m_pTradeAI;25196	m_pLeagueAI->Read(kStream);25197	kStream >> *m_pCulture;2519825199	bool bReadNotifications;25200	kStream >> bReadNotifications;25201	if(bReadNotifications)25202	{25203		m_pNotifications = FNEW(CvNotifications, c_eCiv5GameplayDLL, 0);25204		m_pNotifications->Init(GetID());25205		m_pNotifications->Read(kStream);25206	}25207#if defined(MOD_API_PLAYER_LOGS)25208	// MOD_SERIALIZE_READ - v68 broke the save format  couldn't be helped, but don't make a habit of it!!!25209	bool bReadDiplomacyLog;25210	kStream >> bReadDiplomacyLog;25211	if (bReadDiplomacyLog)25212	{25213		m_pDiplomacyLog = FNEW(CvEventLog, c_eCiv5GameplayDLL, 0);25214		m_pDiplomacyLog->Init(GetID());25215		m_pDiplomacyLog->Read(kStream);25216	}2521725218	// MOD_SERIALIZE_READ - v68 broke the save format  couldn't be helped, but don't make a habit of it!!!25219	bool bReadMilitaryLog;25220	kStream >> bReadMilitaryLog;25221	if (bReadMilitaryLog)25222	{25223		m_pMilitaryLog = FNEW(CvEventLog, c_eCiv5GameplayDLL, 0);25224		m_pMilitaryLog->Init(GetID());25225		m_pMilitaryLog->Read(kStream);25226	}25227#endif25228	m_pTreasury->Read(kStream);2522925230	// If this is a real player, hook up the player-level flavor recipients25231	if(GetID() != NO_PLAYER)25232	{25233		SlotStatus s = CvPreGame::slotStatus(GetID());25234		if((s == SS_TAKEN || s == SS_COMPUTER) && !isBarbarian())25235		{25236			m_pFlavorManager->AddFlavorRecipient(m_pPlayerTechs,        false /*bPropogateFlavors*/);25237			m_pFlavorManager->AddFlavorRecipient(m_pPlayerPolicies,     false /*bPropogateFlavors*/);25238			m_pFlavorManager->AddFlavorRecipient(m_pWonderProductionAI, false /*bPropogateFlavors*/);25239		}25240	}2524125242	kStream >> m_ppaaiSpecialistExtraYield;25243#if defined(MOD_API_UNIFIED_YIELDS) && defined(MOD_API_PLOT_YIELDS)25244	// MOD_SERIALIZE_READ - v57/v58/v59 broke the save format  couldn't be helped, but don't make a habit of it!!!25245	kStream >> m_ppiPlotYieldChange;25246#endif25247#if defined(MOD_API_UNIFIED_YIELDS)25248	// MOD_SERIALIZE_READ - v57/v58/v59 and v61 broke the save format  couldn't be helped, but don't make a habit of it!!!25249	kStream >> m_ppiFeatureYieldChange;25250	kStream >> m_ppiResourceYieldChange;25251	kStream >> m_ppiTerrainYieldChange;25252	kStream >> m_ppiTradeRouteYieldChange;25253	kStream >> m_ppiSpecialistYieldChange;25254	kStream >> m_ppiGreatPersonExpendedYield;25255	kStream >> m_piGoldenAgeGreatPersonRateModifier;25256	kStream >> m_ppiUnimprovedFeatureYieldChange;25257	kStream >> m_ppiCityYieldFromUnimprovedFeature;25258	kStream >> m_piYieldFromKills;25259	kStream >> m_piYieldFromBarbarianKills;25260	kStream >> m_piYieldChangeTradeRoute;25261	kStream >> m_piYieldChangesNaturalWonder;25262	kStream >> m_piYieldChangeWorldWonder;25263	kStream >> m_ppiBuildingClassYieldChange;25264#endif25265	kStream >> m_ppaaiImprovementYieldChange;2526625267	kStream >> m_UnitCycle;25268	kStream >> m_researchQueue;2526925270	kStream >> m_bEverPoppedGoody;25271	kStream >> m_bEverTrainedBuilder;25272	kStream >> m_eEndTurnBlockingType;25273	kStream >> m_iEndTurnBlockingNotificationIndex;2527425275	kStream >> m_cityNames;2527625277	kStream >> m_cities;25278	kStream >> m_units;25279	kStream >> m_armyAIs;2528025281	{25282		m_AIOperations.clear();25283		uint iSize;25284		int iID;25285		int iOperationType;25286		kStream >> iSize;25287		for(uint i = 0; i < iSize; i++)25288		{25289			kStream >> iID;25290			kStream >> iOperationType;25291			CvAIOperation* pThisOperation = CvAIOperation::CreateOperation((AIOperationTypes)iOperationType, m_eID);25292			pThisOperation->Read(kStream);25293			m_AIOperations.insert(std::make_pair(pThisOperation->GetID(), pThisOperation));25294		}25295	}2529625297	if (uiVersion <= 10)25298	{25299		// Unused popup queue25300		int iSize;25301		kStream >> iSize;25302		CvAssert(iSize == 0);25303	}2530425305	kStream >> m_ReplayDataSets;25306	kStream >> m_ReplayDataSetValues;2530725308	kStream >> m_aVote;25309	kStream >> m_aUnitExtraCosts;2531025311	// reading plot values25312	{25313		m_aiPlots.clear();25314		m_aiPlots.push_back_copy(-1, GC.getMap().numPlots());2531525316		// trying to cut down how big saves are25317		int iSize;25318		kStream >> iSize;25319		for(int i = 0; i < iSize; i++)25320		{25321			kStream >> m_aiPlots[i];25322		}25323	}2532425325	if(!isBarbarian())25326	{25327		// Get the NetID from the initialization structure25328		setNetID(gDLL->getAssignedNetworkID(GetID()));25329	}2533025331	kStream >> m_iPopRushHurryCount;25332	kStream >> m_iTotalImprovementsBuilt;2533325334	m_bfEverConqueredBy.ClearAll();25335	int iSize;25336	kStream >> iSize;25337	for(int i = 0; i < iSize; i++)25338	{25339		bool bValue;25340		kStream >> bValue;25341		if(bValue)25342		{25343			m_bfEverConqueredBy.SetBit(i);25344		}25345	}2534625347	kStream >> m_strEmbarkedGraphicOverride;25348	m_kPlayerAchievements.Read(kStream);2534925350	if(GetID() < MAX_MAJOR_CIVS)25351	{25352		if(!m_pDiplomacyRequests)25353			m_pDiplomacyRequests = FNEW(CvDiplomacyRequests, c_eCiv5GameplayDLL, 0);25354		else25355			m_pDiplomacyRequests->Uninit();2535625357		m_pDiplomacyRequests->Init(GetID());25358		//m_pDiplomacyRequests->Read(kStream);25359	}2536025361	if(m_bTurnActive)25362		GC.getGame().changeNumGameTurnActive(1, std::string("setTurnActive() [loading save game] for player ") + getName());2536325364}

Calls

Called by