Bazaar developer reference

CvPlayer::getProductionModifier(BuildingTypes, CvString *) const

Defined in
CvPlayer.cpp, line 8898
Class
CvPlayer
Hook name
CivHooks::CvPlayer_getProductionModifier_with_BuildingTypes_CvString_const

Hooks

static bool BeforeCvPlayer_getProductionModifier_with_BuildingTypes_CvString_const(const CvPlayer* self, BuildingTypes eBuilding, CvString* toolTipSink, int& result);static void AfterCvPlayer_getProductionModifier_with_BuildingTypes_CvString_const(const CvPlayer* self, BuildingTypes eBuilding, CvString* toolTipSink, int& result);static int ReplaceCvPlayer_getProductionModifier_with_BuildingTypes_CvString_const(int (*original)(const CvPlayer*, BuildingTypes, CvString*), const CvPlayer* self, BuildingTypes eBuilding, CvString* toolTipSink);CivRegisterBefore<CivHooks::CvPlayer_getProductionModifier_with_BuildingTypes_CvString_const>(host, &BeforeCvPlayer_getProductionModifier_with_BuildingTypes_CvString_const);CivRegisterAfter<CivHooks::CvPlayer_getProductionModifier_with_BuildingTypes_CvString_const>(host, &AfterCvPlayer_getProductionModifier_with_BuildingTypes_CvString_const);CivRegisterReplace<CivHooks::CvPlayer_getProductionModifier_with_BuildingTypes_CvString_const>(host, &ReplaceCvPlayer_getProductionModifier_with_BuildingTypes_CvString_const);

Code

8898int CvPlayer::getProductionModifier(BuildingTypes eBuilding, CvString* toolTipSink) const8899{8900	int iMultiplier = getProductionModifier(toolTipSink);8901	CvBuildingEntry* pkBuildingInfo = GC.getBuildingInfo(eBuilding);8902	if(pkBuildingInfo == NULL)8903	{8904		return iMultiplier;8905	}89068907	CvGame& kGame = GC.getGame();8908	const CvBuildingClassInfo& kBuildingClassInfo = pkBuildingInfo->GetBuildingClassInfo();89098910	int iTempMod;89118912	int iNumTraits = GC.getNumTraitInfos();8913	CvPlayerTraits* pPlayerTraits = GetPlayerTraits();8914	for(int iI = 0; iI < iNumTraits; iI++)8915	{8916		if(pPlayerTraits->HasTrait((TraitTypes)iI))8917		{8918			iTempMod = pkBuildingInfo->GetProductionTraits(iI);8919			iMultiplier += iTempMod;8920			kGame.BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_BUILDING_TRAIT", iTempMod);8921		}8922	}89238924	// World Wonder8925	if(::isWorldWonderClass(kBuildingClassInfo))8926	{8927		iTempMod = getMaxGlobalBuildingProductionModifier();8928		iMultiplier += iTempMod;8929		kGame.BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_WORLD_WONDER_PLAYER", iTempMod);8930		iTempMod = m_pPlayerPolicies->GetNumericModifier(POLICYMOD_WONDER_PRODUCTION_MODIFIER);8931		iMultiplier += iTempMod;8932		kGame.BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_WONDER_POLICY", iTempMod);8933	}89348935	// Team Wonder8936	else if(::isTeamWonderClass(kBuildingClassInfo))8937	{8938		iTempMod = getMaxTeamBuildingProductionModifier();8939		iMultiplier += iTempMod;8940		kGame.BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_TEAM_WONDER_PLAYER", iTempMod);8941		iTempMod = m_pPlayerPolicies->GetNumericModifier(POLICYMOD_WONDER_PRODUCTION_MODIFIER);8942		iMultiplier += iTempMod;8943		kGame.BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_WONDER_POLICY", iTempMod);8944	}89458946	// National Wonder8947	else if(::isNationalWonderClass(kBuildingClassInfo))8948	{8949		iTempMod = getMaxPlayerBuildingProductionModifier();8950		iMultiplier += iTempMod;8951		kGame.BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_NATIONAL_WONDER_PLAYER", iTempMod);8952		iTempMod = m_pPlayerPolicies->GetNumericModifier(POLICYMOD_WONDER_PRODUCTION_MODIFIER);8953		iMultiplier += iTempMod;8954		kGame.BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_WONDER_POLICY", iTempMod);8955	}89568957	// Normal Building8958	else8959	{8960		iTempMod = m_pPlayerPolicies->GetNumericModifier(POLICYMOD_BUILDING_PRODUCTION_MODIFIER);8961		iMultiplier += iTempMod;8962		kGame.BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_BUILDING_POLICY_PLAYER", iTempMod);8963	}89648965	// Religion8966	if(pkBuildingInfo->IsReligious())8967	{8968		iTempMod = m_pPlayerPolicies->GetNumericModifier(POLICYMOD_RELIGION_PRODUCTION_MODIFIER);8969		iMultiplier += iTempMod;8970		kGame.BuildProdModHelpText(toolTipSink, "TXT_KEY_PRODMOD_RELIGION_PLAYER", iTempMod);8971	}89728973	return iMultiplier;8974}

Calls

Called by