Bazaar developer reference

CvPlot::updateYield()

Defined in
CvPlot.cpp, line 8601
Class
CvPlot
Hook name
CivHooks::CvPlot_updateYield

Hooks

static bool BeforeCvPlot_updateYield(CvPlot* self);static void AfterCvPlot_updateYield(CvPlot* self);static void ReplaceCvPlot_updateYield(void (*original)(CvPlot*), CvPlot* self);CivRegisterBefore<CivHooks::CvPlot_updateYield>(host, &BeforeCvPlot_updateYield);CivRegisterAfter<CivHooks::CvPlot_updateYield>(host, &AfterCvPlot_updateYield);CivRegisterReplace<CivHooks::CvPlot_updateYield>(host, &ReplaceCvPlot_updateYield);

Code

8601void CvPlot::updateYield()8602{8603	CvCity* pWorkingCity;8604	bool bChange;8605	short iNewYield;8606	int iOldYield;8607	int iI;86088609	if(area() == NULL)8610	{8611		return;8612	}86138614	bChange = false;86158616	for(iI = 0; iI < NUM_YIELD_TYPES; ++iI)8617	{8618		iNewYield = (short)calculateYield((YieldTypes)iI);86198620		if(getYield((YieldTypes)iI) != (int)iNewYield)8621		{8622			iOldYield = getYield((YieldTypes)iI);86238624			m_aiYield[iI] = iNewYield;8625			CvAssertMsg(getYield((YieldTypes)iI) >= 0 && getYield((YieldTypes)iI) < 50, "GAMEPLAY: Yield for a plot is either negative or a ridiculously large number.  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");86268627			pWorkingCity = getWorkingCity();86288629			if(pWorkingCity != NULL)8630			{8631				if(isBeingWorked())8632				{8633					pWorkingCity->ChangeBaseYieldRateFromTerrain(((YieldTypes)iI), (getYield((YieldTypes)iI) - iOldYield));8634				}86358636				// JON: New City Citizens AI shoulud update here 08/17/098637			}86388639			bChange = true;8640		}8641	}86428643	if(bChange)8644	{8645		updateSymbols();8646	}8647}

Calls

Called by