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
- CvCity::GetNumWorkablePlots(int) const
- CvCityCitizens::ChangeNumForcedWorkingPlots(int)
- CvCityCitizens::DoValidateForcedWorkingPlots()
- CvCityCitizens::GetCity()
- CvCityCitizens::GetCityIndexFromPlot(const CvPlot *) const
- CvCityCitizens::GetNumCitizensWorkingPlots() const
- CvCityCitizens::GetNumForcedWorkingPlots() const
- CvCityCitizens::IsForcedWorkingPlot(const CvPlot *) const