Bazaar developer reference

CvPlot::getUpgradeTimeLeft(ImprovementTypes, PlayerTypes) const

Defined in
CvPlot.cpp, line 4817
Class
CvPlot
Hook name
CivHooks::CvPlot_getUpgradeTimeLeft

Hooks

static bool BeforeCvPlot_getUpgradeTimeLeft(const CvPlot* self, ImprovementTypes eImprovement, PlayerTypes ePlayer, int& result);static void AfterCvPlot_getUpgradeTimeLeft(const CvPlot* self, ImprovementTypes eImprovement, PlayerTypes ePlayer, int& result);static int ReplaceCvPlot_getUpgradeTimeLeft(int (*original)(const CvPlot*, ImprovementTypes, PlayerTypes), const CvPlot* self, ImprovementTypes eImprovement, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvPlot_getUpgradeTimeLeft>(host, &BeforeCvPlot_getUpgradeTimeLeft);CivRegisterAfter<CivHooks::CvPlot_getUpgradeTimeLeft>(host, &AfterCvPlot_getUpgradeTimeLeft);CivRegisterReplace<CivHooks::CvPlot_getUpgradeTimeLeft>(host, &ReplaceCvPlot_getUpgradeTimeLeft);

Code

4817int CvPlot::getUpgradeTimeLeft(ImprovementTypes eImprovement, PlayerTypes ePlayer) const4818{4819	int iUpgradeLeft;4820	int iUpgradeRate;4821	int iTurnsLeft;48224823	iUpgradeLeft = ((100 * GC.getGame().getImprovementUpgradeTime(eImprovement, const_cast<CvPlot*>(this))) - ((getImprovementType() == eImprovement) ? getUpgradeProgress() : 0));4824	iUpgradeLeft /= 100;48254826	if(ePlayer == NO_PLAYER)4827	{4828		return iUpgradeLeft;4829	}48304831	iUpgradeRate = GET_PLAYER(ePlayer).getImprovementUpgradeRate();48324833	if(iUpgradeRate == 0)4834	{4835		return iUpgradeLeft;4836	}48374838	// Upgrade rate is stored at 100x4839	iTurnsLeft = (100 * iUpgradeLeft / iUpgradeRate);48404841	if((iTurnsLeft * iUpgradeRate) < iUpgradeLeft)4842	{4843		iTurnsLeft++;4844	}48454846	return std::max(1, iTurnsLeft);4847}

Calls

Called by