Bazaar developer reference

CvUnit::write(FDataStream &) const

Defined in
CvUnit.cpp, line 21498
Class
CvUnit
Hook name
CivHooks::CvUnit_write

Hooks

static bool BeforeCvUnit_write(const CvUnit* self, FDataStream& kStream);static void AfterCvUnit_write(const CvUnit* self, FDataStream& kStream);static void ReplaceCvUnit_write(void (*original)(const CvUnit*, FDataStream&), const CvUnit* self, FDataStream& kStream);CivRegisterBefore<CivHooks::CvUnit_write>(host, &BeforeCvUnit_write);CivRegisterAfter<CivHooks::CvUnit_write>(host, &AfterCvUnit_write);CivRegisterReplace<CivHooks::CvUnit_write>(host, &ReplaceCvUnit_write);

Code

21498void CvUnit::write(FDataStream& kStream) const21499{21500	VALIDATE_OBJECT2150121502	// Current version number21503	uint uiVersion = 9;21504	kStream << uiVersion;21505	MOD_SERIALIZE_INIT_WRITE(kStream);2150621507	kStream << m_syncArchive;2150821509	// Write out a hash for the unit type, the sync archive saved the index, which is not a good thing to do.21510	if (m_eUnitType != NO_UNIT && m_pUnitInfo)21511		kStream << FString::Hash(m_pUnitInfo->GetType());21512	else21513		kStream << (uint)0;2151421515	kStream << m_iLastMoveTurn;21516#if defined(MOD_API_UNIT_STATS)21517	MOD_SERIALIZE_WRITE(kStream, m_iStatsTravelled);21518	MOD_SERIALIZE_WRITE(kStream, m_iStatsKilled);21519#endif21520	m_Promotions.Write(kStream);21521	kStream << m_combatUnit.eOwner;21522	kStream << m_combatUnit.iID;21523	kStream << m_transportUnit.eOwner;21524	kStream << m_transportUnit.iID;21525	kStream << m_missionAIUnit.eOwner;21526	kStream << m_missionAIUnit.iID;21527	kStream << m_extraDomainModifiers;21528	kStream << m_iEverSelectedCount;21529	kStream << m_iMapLayer;21530	kStream << m_iNumGoodyHutsPopped;2153121532	// slewis - move to autovariable when saves are broken21533	kStream << m_bIgnoreDangerWakeup;21534	kStream << m_iEmbarkedAllWaterCount;21535	kStream << m_iEmbarkExtraVisibility;21536#if defined(MOD_PROMOTIONS_DEEP_WATER_EMBARKATION)21537	MOD_SERIALIZE_WRITE(kStream, m_iEmbarkedDeepWaterCount);21538#endif21539	kStream << m_iEmbarkDefensiveModifier;21540#if defined(MOD_API_EXTENSIONS)21541	MOD_SERIALIZE_WRITE(kStream, m_iBaseRangedCombat);21542#endif21543	kStream << m_iCapitalDefenseModifier;21544	kStream << m_iCapitalDefenseFalloff;21545	kStream << m_iCityAttackPlunderModifier;21546	kStream << m_iReligiousStrengthLossRivalTerritory;21547	kStream << m_iTradeMissionInfluenceModifier;21548	kStream << m_iTradeMissionGoldModifier;21549	kStream << m_iEnemyDamageChance;21550	kStream << m_iNeutralDamageChance;21551	kStream << m_iEnemyDamage;21552	kStream << m_iNeutralDamage;21553	kStream << m_iNearbyEnemyCombatMod;21554	kStream << m_iNearbyEnemyCombatRange;2155521556	kStream << m_iHealOnPillageCount;21557	kStream << m_iFlankAttackModifier;21558	kStream << m_iGoldenAgeValueFromKills;2155921560	kStream << m_iGreatGeneralReceivesMovementCount;21561	kStream << m_iGreatGeneralCombatModifier;21562	kStream << m_iIgnoreGreatGeneralBenefit;21563	kStream << m_iIgnoreZOC;21564#if defined(MOD_UNITS_NO_SUPPLY)21565	MOD_SERIALIZE_WRITE(kStream, m_iNoSupply);21566#endif21567#if defined(MOD_UNITS_MAX_HP)21568	MOD_SERIALIZE_WRITE(kStream, m_iMaxHitPointsBase);21569	MOD_SERIALIZE_WRITE(kStream, m_iMaxHitPointsChange);21570	MOD_SERIALIZE_WRITE(kStream, m_iMaxHitPointsModifier);21571#endif21572	kStream << m_iSapperCount;21573	kStream << m_iCanHeavyCharge;21574	kStream << m_iNumExoticGoods;21575#if defined(MOD_UNITS_XP_TIMES_100)21576	MOD_SERIALIZE_WRITE(kStream, m_iExperienceTimes100);21577#endif21578	kStream << m_iCityAttackOnlyCount;21579	kStream << m_iCaptureDefeatedEnemyCount;21580	kStream << m_iGreatAdmiralCount;21581#if defined(MOD_PROMOTIONS_AURA_CHANGE)21582	MOD_SERIALIZE_WRITE(kStream, m_iAuraRangeChange);21583	MOD_SERIALIZE_WRITE(kStream, m_iAuraEffectChange);21584#endif2158521586#if defined(MOD_PROMOTIONS_UNIT_NAMING)21587	MOD_SERIALIZE_WRITE(kStream, m_strUnitName);21588#endif21589	kStream << m_strName;21590#if defined(MOD_GLOBAL_NO_LOST_GREATWORKS)21591	MOD_SERIALIZE_WRITE(kStream, m_strGreatName);21592#endif2159321594	kStream << m_iScenarioData;21595	kStream << *m_pReligion;2159621597	if (m_eGreatWork != NO_GREAT_WORK)21598	{21599		Database::Connection* db = GC.GetGameDatabase();21600		Database::Results kQuery;21601		if(db && db->Execute(kQuery, "SELECT Type from GreatWorks where ID = ? LIMIT 1"))21602		{21603			kQuery.Bind(1, m_eGreatWork);2160421605			if(kQuery.Step())21606			{21607				kStream << FString::Hash(kQuery.GetText(0));21608			}21609		}21610	}21611	else21612	{21613		kStream << (uint)0;21614	}2161521616	kStream << m_iTourismBlastStrength;2161721618	//  Write mission list21619	kStream << m_missionQueue.getLength();21620	for(int uIdx = 0; uIdx < m_missionQueue.getLength(); ++uIdx)21621	{21622		MissionQueueNode* pNode = m_missionQueue.getAt(uIdx);2162321624		kStream << pNode->eMissionType;21625		kStream << pNode->iData1;21626		kStream << pNode->iData2;21627		kStream << pNode->iFlags;21628		kStream << pNode->iPushTurn;21629	}21630}

Calls

Called by