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
- CvBitfield::SetBit(uint, bool)
- CvBitfield::SetSize(uint)
- CvGlobals::getInfoTypeForHash(uint, bool) const
- CvGlobals::LogMessage(const char *)
CvString::CvStringCvString::FormatCvString::GetCStringFDataStream::operator>>FDataStream::operator>>FDataStream::operator>>FStringA::Hash