Bazaar developer reference

CvCityCitizens::SetForcedWorkingPlot(CvPlot *, bool)

Defined in
CvCityCitizens.cpp, line 1857
Class
CvCityCitizens
Hook name
CivHooks::CvCityCitizens_SetForcedWorkingPlot

Hooks

static bool BeforeCvCityCitizens_SetForcedWorkingPlot(CvCityCitizens* self, CvPlot* pPlot, bool bNewValue);static void AfterCvCityCitizens_SetForcedWorkingPlot(CvCityCitizens* self, CvPlot* pPlot, bool bNewValue);static void ReplaceCvCityCitizens_SetForcedWorkingPlot(void (*original)(CvCityCitizens*, CvPlot*, bool), CvCityCitizens* self, CvPlot* pPlot, bool bNewValue);CivRegisterBefore<CivHooks::CvCityCitizens_SetForcedWorkingPlot>(host, &BeforeCvCityCitizens_SetForcedWorkingPlot);CivRegisterAfter<CivHooks::CvCityCitizens_SetForcedWorkingPlot>(host, &AfterCvCityCitizens_SetForcedWorkingPlot);CivRegisterReplace<CivHooks::CvCityCitizens_SetForcedWorkingPlot>(host, &ReplaceCvCityCitizens_SetForcedWorkingPlot);

Code

1856/// Tell our City it MUST work a particular CvPlot1857void CvCityCitizens::SetForcedWorkingPlot(CvPlot* pPlot, bool bNewValue)1858{1859	int iIndex = GetCityIndexFromPlot(pPlot);18601861	CvAssertMsg(iIndex >= 0, "iIndex expected to be >= 0");1862#if defined(MOD_GLOBAL_CITY_WORKING)1863	CvAssertMsg(iIndex < GetCity()->GetNumWorkablePlots(), "iIndex expected to be < NUM_CITY_PLOTS");18641865	if(IsForcedWorkingPlot(pPlot) != bNewValue && iIndex >= 0 && iIndex < GetCity()->GetNumWorkablePlots())1866#else1867	CvAssertMsg(iIndex < NUM_CITY_PLOTS, "iIndex expected to be < NUM_CITY_PLOTS");18681869	if(IsForcedWorkingPlot(pPlot) != bNewValue && iIndex >= 0 && iIndex < NUM_CITY_PLOTS)1870#endif1871	{1872		m_pabForcedWorkingPlot[iIndex] = bNewValue;18731874		// Change the count of how many are forced1875		if(bNewValue)1876		{1877			ChangeNumForcedWorkingPlots(1);18781879			// More forced plots than we have citizens working?  If so, then pick someone to lose their forced status1880			if(GetNumForcedWorkingPlots() > GetNumCitizensWorkingPlots())1881			{1882				DoValidateForcedWorkingPlots();1883			}1884		}1885		else1886		{1887			ChangeNumForcedWorkingPlots(-1);1888		}1889	}1890}

Calls

Called by