Bazaar developer reference

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

Called by