Bazaar developer reference

CvUnit::workRate(bool, BuildTypes) const

Defined in
CvUnit.cpp, line 11785
Class
CvUnit
Hook name
CivHooks::CvUnit_workRate

Hooks

static bool BeforeCvUnit_workRate(const CvUnit* self, bool bMax, BuildTypes arg1, int& result);static void AfterCvUnit_workRate(const CvUnit* self, bool bMax, BuildTypes arg1, int& result);static int ReplaceCvUnit_workRate(int (*original)(const CvUnit*, bool, BuildTypes), const CvUnit* self, bool bMax, BuildTypes arg1);CivRegisterBefore<CivHooks::CvUnit_workRate>(host, &BeforeCvUnit_workRate);CivRegisterAfter<CivHooks::CvUnit_workRate>(host, &AfterCvUnit_workRate);CivRegisterReplace<CivHooks::CvUnit_workRate>(host, &ReplaceCvUnit_workRate);

Code

11785int CvUnit::workRate(bool bMax, BuildTypes /*eBuild*/) const11786{11787	VALIDATE_OBJECT11788	int iRate;1178911790	if(!bMax)11791	{11792		if(!canMove())11793		{11794			return 0;11795		}11796	}1179711798	iRate = m_pUnitInfo->GetWorkRate();1179911800	CvPlayerAI& kPlayer = GET_PLAYER(getOwner());1180111802	iRate *= std::max(0, (kPlayer.getWorkerSpeedModifier() + kPlayer.GetPlayerTraits()->GetWorkerSpeedModifier() + 100));11803	iRate /= 100;1180411805	if(!kPlayer.isHuman() && !kPlayer.IsAITeammateOfHuman() && !kPlayer.isBarbarian())11806	{11807		iRate *= std::max(0, (GC.getGame().getHandicapInfo().getAIWorkRateModifier() + 100));11808		iRate /= 100;11809	}1181011811	return iRate;11812}

Calls

Called by