Bazaar developer reference

PromotionArrayHelpers::Read(FDataStream &, CvBitfield &)

Defined in
CvPromotionClasses.cpp, line 2442
Hook name
CivHooks::PromotionArrayHelpers_Read

Hooks

static bool BeforePromotionArrayHelpers_Read(FDataStream& kStream, CvBitfield& kPromotions);static void AfterPromotionArrayHelpers_Read(FDataStream& kStream, CvBitfield& kPromotions);static void ReplacePromotionArrayHelpers_Read(void (*original)(FDataStream&, CvBitfield&), FDataStream& kStream, CvBitfield& kPromotions);CivRegisterBefore<CivHooks::PromotionArrayHelpers_Read>(host, &BeforePromotionArrayHelpers_Read);CivRegisterAfter<CivHooks::PromotionArrayHelpers_Read>(host, &AfterPromotionArrayHelpers_Read);CivRegisterReplace<CivHooks::PromotionArrayHelpers_Read>(host, &ReplacePromotionArrayHelpers_Read);

Code

2441// Read the saved promotions.  Entries are saved as hash values2442void PromotionArrayHelpers::Read(FDataStream& kStream, CvBitfield& kPromotions)2443{2444	int iNumEntries;2445	int iType;24462447	kStream >> iNumEntries;24482449	kPromotions.SetSize( iNumEntries );24502451	uint uiHashTemp;2452	uint uiOligarchyHash = FString::Hash("PROMOTION_OLIGARCHY");2453	for(int iI = 0; iI < iNumEntries; iI++)2454	{2455		kStream >> uiHashTemp;2456		if(uiHashTemp == uiOligarchyHash)2457		{2458			bool bTemp;2459			kStream >> bTemp;2460		}2461		else2462		{2463			iType = GC.getInfoTypeForHash(uiHashTemp);2464			if(iType != -1)2465			{2466				bool bValue;2467				kStream >> bValue;2468				kPromotions.SetBit(iType, bValue);2469			}2470			else2471			{2472				CvString szError;2473				szError.Format("LOAD ERROR: Promotion Type not found for hash: %u", uiHashTemp);2474				GC.LogMessage(szError.GetCString());2475				CvAssertMsg(false, szError);2476				bool bDummy;2477				kStream >> bDummy;2478			}2479		}2480	}2481}

Calls

Called by