Bazaar developer reference

CvGame::setPlotExtraYield(int, int, YieldTypes, int)

Defined in
CvGame.cpp, line 10053
Class
CvGame
Hook name
CivHooks::CvGame_setPlotExtraYield

Hooks

static bool BeforeCvGame_setPlotExtraYield(CvGame* self, int iX, int iY, YieldTypes eYield, int iExtraYield);static void AfterCvGame_setPlotExtraYield(CvGame* self, int iX, int iY, YieldTypes eYield, int iExtraYield);static void ReplaceCvGame_setPlotExtraYield(void (*original)(CvGame*, int, int, YieldTypes, int), CvGame* self, int iX, int iY, YieldTypes eYield, int iExtraYield);CivRegisterBefore<CivHooks::CvGame_setPlotExtraYield>(host, &BeforeCvGame_setPlotExtraYield);CivRegisterAfter<CivHooks::CvGame_setPlotExtraYield>(host, &AfterCvGame_setPlotExtraYield);CivRegisterReplace<CivHooks::CvGame_setPlotExtraYield>(host, &ReplaceCvGame_setPlotExtraYield);

Code

10053void CvGame::setPlotExtraYield(int iX, int iY, YieldTypes eYield, int iExtraYield)10054{10055	bool bFound = false;1005610057	for(std::vector<PlotExtraYield>::iterator it = m_aPlotExtraYields.begin(); it != m_aPlotExtraYields.end(); ++it)10058	{10059		if((*it).m_iX == iX && (*it).m_iY == iY)10060		{10061			(*it).m_aeExtraYield[eYield] += iExtraYield;10062			bFound = true;10063			break;10064		}10065	}1006610067	if(!bFound)10068	{10069		PlotExtraYield kExtraYield;10070		kExtraYield.m_iX = iX;10071		kExtraYield.m_iY = iY;10072		for(int i = 0; i < NUM_YIELD_TYPES; ++i)10073		{10074			if(eYield == i)10075			{10076				kExtraYield.m_aeExtraYield.push_back(iExtraYield);10077			}10078			else10079			{10080				kExtraYield.m_aeExtraYield.push_back(0);10081			}10082		}10083		m_aPlotExtraYields.push_back(kExtraYield);10084	}1008510086	CvPlot* pPlot = GC.getMap().plot(iX, iY);10087	if(NULL != pPlot)10088	{10089		pPlot->updateYield();10090	}10091}

Calls

Called by