Bazaar developer reference

ImprovementArrayHelpers::ReadYieldArray(FDataStream &, int **, int)

Defined in
CvImprovementClasses.cpp, line 1330
Hook name
CivHooks::ImprovementArrayHelpers_ReadYieldArray

Hooks

static bool BeforeImprovementArrayHelpers_ReadYieldArray(FDataStream& kStream, int** ppaaiImprovementYieldArray, int iNumYields);static void AfterImprovementArrayHelpers_ReadYieldArray(FDataStream& kStream, int** ppaaiImprovementYieldArray, int iNumYields);static void ReplaceImprovementArrayHelpers_ReadYieldArray(void (*original)(FDataStream&, int**, int), FDataStream& kStream, int** ppaaiImprovementYieldArray, int iNumYields);CivRegisterBefore<CivHooks::ImprovementArrayHelpers_ReadYieldArray>(host, &BeforeImprovementArrayHelpers_ReadYieldArray);CivRegisterAfter<CivHooks::ImprovementArrayHelpers_ReadYieldArray>(host, &AfterImprovementArrayHelpers_ReadYieldArray);CivRegisterReplace<CivHooks::ImprovementArrayHelpers_ReadYieldArray>(host, &ReplaceImprovementArrayHelpers_ReadYieldArray);

Code

1329/// Helper function to read in an integer array of data sized according to number of building types1330void ImprovementArrayHelpers::ReadYieldArray(FDataStream& kStream, int** ppaaiImprovementYieldArray, int iNumYields)1331{1332	int iNumEntries;13331334	kStream >> iNumEntries;13351336	for(int iI = 0; iI < iNumEntries; iI++)1337	{1338		int iHash;1339		kStream >> iHash;1340		if(iHash != (int)0)1341		{1342			int iType = GC.getInfoTypeForHash(iHash);1343			if(iType != -1)1344			{1345				for(int jJ = 0; jJ < iNumYields; jJ++)1346				{1347					kStream >> ppaaiImprovementYieldArray[iType][jJ];1348				}1349			}1350			else1351			{1352				CvString szError;1353				szError.Format("LOAD ERROR: Improvement Type not found: %08x", iHash);1354				GC.LogMessage(szError.GetCString());1355				CvAssertMsg(false, szError);13561357				for(int jJ = 0; jJ < iNumYields; jJ++)1358				{1359					int iDummy;1360					kStream >> iDummy;1361				}1362			}1363		}1364	}1365}

Calls

Called by