Bazaar developer reference

CvPlayer::getProductionNeeded(ProjectTypes) const

Defined in
CvPlayer.cpp, line 8739
Class
CvPlayer
Hook name
CivHooks::CvPlayer_getProductionNeeded_with_ProjectTypes_const

Hooks

static bool BeforeCvPlayer_getProductionNeeded_with_ProjectTypes_const(const CvPlayer* self, ProjectTypes eProject, int& result);static void AfterCvPlayer_getProductionNeeded_with_ProjectTypes_const(const CvPlayer* self, ProjectTypes eProject, int& result);static int ReplaceCvPlayer_getProductionNeeded_with_ProjectTypes_const(int (*original)(const CvPlayer*, ProjectTypes), const CvPlayer* self, ProjectTypes eProject);CivRegisterBefore<CivHooks::CvPlayer_getProductionNeeded_with_ProjectTypes_const>(host, &BeforeCvPlayer_getProductionNeeded_with_ProjectTypes_const);CivRegisterAfter<CivHooks::CvPlayer_getProductionNeeded_with_ProjectTypes_const>(host, &AfterCvPlayer_getProductionNeeded_with_ProjectTypes_const);CivRegisterReplace<CivHooks::CvPlayer_getProductionNeeded_with_ProjectTypes_const>(host, &ReplaceCvPlayer_getProductionNeeded_with_ProjectTypes_const);

Code

8739int CvPlayer::getProductionNeeded(ProjectTypes eProject) const8740{8741	int iProductionNeeded;87428743	iProductionNeeded = GC.getProjectInfo(eProject)->GetProductionCost();87448745	if(isMinorCiv())8746	{8747		iProductionNeeded *= GC.getMINOR_CIV_PRODUCTION_PERCENT();8748		iProductionNeeded /= 100;8749	}87508751	iProductionNeeded *= GC.getPROJECT_PRODUCTION_PERCENT();8752	iProductionNeeded /= 100;87538754	iProductionNeeded *= GC.getGame().getGameSpeedInfo().getCreatePercent();8755	iProductionNeeded /= 100;87568757	iProductionNeeded *= GC.getGame().getStartEraInfo().getCreatePercent();8758	iProductionNeeded /= 100;87598760	if(!isHuman() && !IsAITeammateOfHuman() && !isBarbarian())8761	{8762		if(isWorldProject(eProject))8763		{8764			iProductionNeeded *= GC.getGame().getHandicapInfo().getAIWorldCreatePercent();8765			iProductionNeeded /= 100;8766		}8767		else8768		{8769			iProductionNeeded *= GC.getGame().getHandicapInfo().getAICreatePercent();8770			iProductionNeeded /= 100;8771		}87728773		iProductionNeeded *= std::max(0, ((GC.getGame().getHandicapInfo().getAIPerEraModifier() * GetCurrentEra()) + 100));8774		iProductionNeeded /= 100;8775	}87768777	return std::max(1, iProductionNeeded);8778}

Calls

Called by