Bazaar developer reference

CvFractal::tectonicAction(CvFractal *)

Defined in
CvFractal.cpp, line 381
Class
CvFractal
Hook name
CivHooks::CvFractal_tectonicAction

Hooks

static bool BeforeCvFractal_tectonicAction(CvFractal* self, CvFractal* pRifts);static void AfterCvFractal_tectonicAction(CvFractal* self, CvFractal* pRifts);static void ReplaceCvFractal_tectonicAction(void (*original)(CvFractal*, CvFractal*), CvFractal* self, CvFractal* pRifts);// CivHooks.h gives this hook point no types, so nothing checks these hooks' parameters.host->RegisterHook(host->pluginIndex, CivHooks::CvFractal_tectonicAction::ID, CIV_HOOK_BEFORE, (void*)&BeforeCvFractal_tectonicAction);host->RegisterHook(host->pluginIndex, CivHooks::CvFractal_tectonicAction::ID, CIV_HOOK_AFTER, (void*)&AfterCvFractal_tectonicAction);host->RegisterHook(host->pluginIndex, CivHooks::CvFractal_tectonicAction::ID, CIV_HOOK_REPLACE, (void*)&ReplaceCvFractal_tectonicAction);

Code

381void CvFractal::tectonicAction(CvFractal* pRifts)  //  Assumes FRAC_WRAP_X is on.382{383	//int iRift1x = (m_iFracX / 4);384	const int iRift2x = ((m_iFracX / 4) * 3);385	const int iWidth = 16;386387	for(int iY = 0; iY < m_iFracY + 1; iY++)388	{389		for(int iX = 0; iX < iWidth; iX++)390		{391			//  Rift along edge of map.392			int iDeep = 0;393			int iRx = yieldX(((((pRifts->m_aaiFrac[iRift2x][iY] - 128) * m_iFracX) / 128) / 8) + iX);394			int iLx = yieldX(((((pRifts->m_aaiFrac[iRift2x][iY] - 128) * m_iFracX) / 128) / 8) - iX);395			m_aaiFrac[iRx][iY] = (((m_aaiFrac[iRx][iY] * iX) + iDeep * (iWidth - iX)) / iWidth);396			m_aaiFrac[iLx][iY] = (((m_aaiFrac[iLx][iY] * iX) + iDeep * (iWidth - iX)) / iWidth);397		}398	}399400	for(int iY = 0; iY < m_iFracY + 1; iY++)401	{402		m_aaiFrac[m_iFracX][iY] = m_aaiFrac[0][iY];403	}404}

Calls

Called by