Bazaar developer reference

CvPlayer::GetSpecificUnitType(const char *, bool)

Defined in
CvPlayer.cpp, line 3949
Class
CvPlayer
Hook name
CivHooks::CvPlayer_GetSpecificUnitType

Hooks

static bool BeforeCvPlayer_GetSpecificUnitType(CvPlayer* self, const char* szUnitClass, bool hideAssert, UnitTypes& result);static void AfterCvPlayer_GetSpecificUnitType(CvPlayer* self, const char* szUnitClass, bool hideAssert, UnitTypes& result);static UnitTypes ReplaceCvPlayer_GetSpecificUnitType(UnitTypes (*original)(CvPlayer*, const char*, bool), CvPlayer* self, const char* szUnitClass, bool hideAssert);CivRegisterBefore<CivHooks::CvPlayer_GetSpecificUnitType>(host, &BeforeCvPlayer_GetSpecificUnitType);CivRegisterAfter<CivHooks::CvPlayer_GetSpecificUnitType>(host, &AfterCvPlayer_GetSpecificUnitType);CivRegisterReplace<CivHooks::CvPlayer_GetSpecificUnitType>(host, &ReplaceCvPlayer_GetSpecificUnitType);

Code

3948// Given a unit class, get the players specific unit of that class3949UnitTypes CvPlayer::GetSpecificUnitType(const char* szUnitClass, bool hideAssert)3950{3951	UnitTypes eUnitType = NO_UNIT;3952	UnitClassTypes eUnitClassType = (UnitClassTypes) GC.getInfoTypeForString(szUnitClass, hideAssert);39533954	const CvUnitClassInfo* pkUnitClassInfo = GC.getUnitClassInfo(eUnitClassType);3955	3956	if (pkUnitClassInfo)3957	{3958		CvCivilizationInfo* pCivilizationInfo = GC.getCivilizationInfo(getCivilizationType());3959		3960		if (pCivilizationInfo != NULL)3961		{3962			eUnitType = (UnitTypes) pCivilizationInfo->getCivilizationUnits(eUnitClassType);3963		}3964		else3965		{3966			eUnitType = (UnitTypes) pkUnitClassInfo->getDefaultUnitIndex();3967		}3968	}3969	3970	if (!isMinorCiv() && !isBarbarian()) {3971		if (eUnitType == NO_UNIT) {3972			CUSTOMLOG("GetSpecificUnitType for player %s: %s is UNKNOWN!!!", getName(), szUnitClass);3973		} else {3974			// CUSTOMLOG("GetSpecificUnitType for player %s: %s is %s", getName(), szUnitClass, GC.getUnitInfo(eUnitType)->GetType());3975		}3976	}39773978	return eUnitType;3979}

Calls

Called by