Bazaar developer reference

CvDatabaseUtility::Initialize2DArray(int **&, const char *, const char *, int)

Defined in
CvDatabaseUtility.cpp, line 80
Class
CvDatabaseUtility
Hook name
CivHooks::CvDatabaseUtility_Initialize2DArray

Hooks

static bool BeforeCvDatabaseUtility_Initialize2DArray(CvDatabaseUtility* self, int**& ppArray, const char* szTable1Name, const char* szTable2Name, int iDefault, bool& result);static void AfterCvDatabaseUtility_Initialize2DArray(CvDatabaseUtility* self, int**& ppArray, const char* szTable1Name, const char* szTable2Name, int iDefault, bool& result);static bool ReplaceCvDatabaseUtility_Initialize2DArray(bool (*original)(CvDatabaseUtility*, int**&, const char*, const char*, int), CvDatabaseUtility* self, int**& ppArray, const char* szTable1Name, const char* szTable2Name, int iDefault);CivRegisterBefore<CivHooks::CvDatabaseUtility_Initialize2DArray>(host, &BeforeCvDatabaseUtility_Initialize2DArray);CivRegisterAfter<CivHooks::CvDatabaseUtility_Initialize2DArray>(host, &AfterCvDatabaseUtility_Initialize2DArray);CivRegisterReplace<CivHooks::CvDatabaseUtility_Initialize2DArray>(host, &ReplaceCvDatabaseUtility_Initialize2DArray);

Code

80bool CvDatabaseUtility::Initialize2DArray(int**& ppArray, const char* szTable1Name, const char* szTable2Name, int iDefault /* = 0 */)81{82	const int iCount1 = MaxRows(szTable1Name);83	const int iCount2 = MaxRows(szTable2Name);8485	if(iCount1 <= 0 || iCount2 <= 0)86	{87		ppArray = NULL;88		CvAssertMsg(false, "Cannot initialize array to 0 size.");89		return false;90	}9192	unsigned int iNumBytes = iCount1 * sizeof(int*) + iCount1 * iCount2 * sizeof(int);93	unsigned char* pData = FNEW(unsigned char[iNumBytes], c_eCiv5GameplayDLL, 0);94	ppArray = (int**)pData;95	ppArray[0] = (int*)(pData + iCount1 * sizeof(int*));96	for(int i = 0; i < iCount2; ++i)97	{98		ppArray[0][i] = iDefault;99	}100	for(int i = 1; i < iCount1; i++)101	{102		ppArray[i] = ppArray[i-1] + iCount2;103		for(int j = 0; j < iCount2; ++j)104		{105			ppArray[i][j] = iDefault;106		}107	}108109	return true;110}

Calls

Called by