TerrainArrayHelpers::ReadYieldArray(FDataStream &, int **, int)
- Defined in
- CvInfos.cpp, line 7344
- Hook name
CivHooks::TerrainArrayHelpers_ReadYieldArray
Hooks
static bool BeforeTerrainArrayHelpers_ReadYieldArray(FDataStream& kStream, int** ppaaiTerrainYieldArray, int iNumYields);static void AfterTerrainArrayHelpers_ReadYieldArray(FDataStream& kStream, int** ppaaiTerrainYieldArray, int iNumYields);static void ReplaceTerrainArrayHelpers_ReadYieldArray(void (*original)(FDataStream&, int**, int), FDataStream& kStream, int** ppaaiTerrainYieldArray, int iNumYields);CivRegisterBefore<CivHooks::TerrainArrayHelpers_ReadYieldArray>(host, &BeforeTerrainArrayHelpers_ReadYieldArray);CivRegisterAfter<CivHooks::TerrainArrayHelpers_ReadYieldArray>(host, &AfterTerrainArrayHelpers_ReadYieldArray);CivRegisterReplace<CivHooks::TerrainArrayHelpers_ReadYieldArray>(host, &ReplaceTerrainArrayHelpers_ReadYieldArray);
Code
7343/// Helper function to read in an integer array of data sized according to number of building types7344void TerrainArrayHelpers::ReadYieldArray(FDataStream& kStream, int** ppaaiTerrainYieldArray, int iNumYields)7345{7346 int iNumEntries;73477348 kStream >> iNumEntries;73497350 for(int iI = 0; iI < iNumEntries; iI++)7351 {7352 int iHash;7353 kStream >> iHash;7354 if(iHash != (int)0)7355 {7356 int iType = GC.getInfoTypeForHash(iHash);7357 if(iType != -1)7358 {7359 for(int jJ = 0; jJ < iNumYields; jJ++)7360 {7361 kStream >> ppaaiTerrainYieldArray[iType][jJ];7362 }7363 }7364 else7365 {7366 CvString szError;7367 szError.Format("LOAD ERROR: Terrain Type not found: %08x", iHash);7368 GC.LogMessage(szError.GetCString());7369 CvAssertMsg(false, szError);73707371 for(int jJ = 0; jJ < iNumYields; jJ++)7372 {7373 int iDummy;7374 kStream >> iDummy;7375 }7376 }7377 }7378 }7379}
Calls
- CvGlobals::getInfoTypeForHash(uint, bool) const
- CvGlobals::LogMessage(const char *)
CvString::CvStringCvString::FormatCvString::GetCStringFDataStream::operator>>