Bazaar developer reference

CvTeamTechs::GetResearchCost(TechTypes) const

Defined in
CvTechClasses.cpp, line 2190
Class
CvTeamTechs
Hook name
CivHooks::CvTeamTechs_GetResearchCost

Hooks

static bool BeforeCvTeamTechs_GetResearchCost(const CvTeamTechs* self, TechTypes eTech, int& result);static void AfterCvTeamTechs_GetResearchCost(const CvTeamTechs* self, TechTypes eTech, int& result);static int ReplaceCvTeamTechs_GetResearchCost(int (*original)(const CvTeamTechs*, TechTypes), const CvTeamTechs* self, TechTypes eTech);CivRegisterBefore<CivHooks::CvTeamTechs_GetResearchCost>(host, &BeforeCvTeamTechs_GetResearchCost);CivRegisterAfter<CivHooks::CvTeamTechs_GetResearchCost>(host, &AfterCvTeamTechs_GetResearchCost);CivRegisterReplace<CivHooks::CvTeamTechs_GetResearchCost>(host, &ReplaceCvTeamTechs_GetResearchCost);

Code

2189/// Accessor: what is the cost of researching this tech (taking all modifiers into account)2190int CvTeamTechs::GetResearchCost(TechTypes eTech) const2191{2192	CvAssertMsg(eTech != NO_TECH, "Tech is not assigned a valid value");2193	CvTechEntry* pkTechInfo = GC.getTechInfo(eTech);2194	if(pkTechInfo == NULL)2195	{2196		return 0;2197	}21982199	int iCost = pkTechInfo->GetResearchCost();22002201	CvHandicapInfo* pkHandicapInfo = GC.getHandicapInfo(m_pTeam->getHandicapType());2202	if(pkHandicapInfo)2203	{2204		iCost *= pkHandicapInfo->getResearchPercent();2205		iCost /= 100;2206	}22072208	//here22092210	iCost *= GC.getMap().getWorldInfo().getResearchPercent();2211	iCost /= 100;22122213	iCost *= GC.getGame().getGameSpeedInfo().getResearchPercent();2214	iCost /= 100;22152216	iCost *= GC.getGame().getStartEraInfo().getResearchPercent();2217	iCost /= 100;22182219	iCost *= std::max(0, ((GC.getTECH_COST_EXTRA_TEAM_MEMBER_MODIFIER() * (m_pTeam->getNumMembers() - 1)) + 100));2220	iCost /= 100;22212222	return std::max(1, iCost);2223}

Calls

Called by