CvPlayer::GetSpecificBuildingType(const char *, bool)
- Defined in
- CvPlayer.cpp, line 3985
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_GetSpecificBuildingType
Hooks
static bool BeforeCvPlayer_GetSpecificBuildingType(CvPlayer* self, const char* szBuildingClass, bool hideAssert, BuildingTypes& result);static void AfterCvPlayer_GetSpecificBuildingType(CvPlayer* self, const char* szBuildingClass, bool hideAssert, BuildingTypes& result);static BuildingTypes ReplaceCvPlayer_GetSpecificBuildingType(BuildingTypes (*original)(CvPlayer*, const char*, bool), CvPlayer* self, const char* szBuildingClass, bool hideAssert);CivRegisterBefore<CivHooks::CvPlayer_GetSpecificBuildingType>(host, &BeforeCvPlayer_GetSpecificBuildingType);CivRegisterAfter<CivHooks::CvPlayer_GetSpecificBuildingType>(host, &AfterCvPlayer_GetSpecificBuildingType);CivRegisterReplace<CivHooks::CvPlayer_GetSpecificBuildingType>(host, &ReplaceCvPlayer_GetSpecificBuildingType);
Code
3984// Given a building class, get the players specific building of that class3985BuildingTypes CvPlayer::GetSpecificBuildingType(const char* szBuildingClass, bool hideAssert)3986{3987 BuildingTypes eBuildingType = NO_BUILDING;3988 BuildingClassTypes eBuildingClassType = (BuildingClassTypes) GC.getInfoTypeForString(szBuildingClass, hideAssert);39893990 const CvBuildingClassInfo* pkBuildingClassInfo = GC.getBuildingClassInfo(eBuildingClassType);3991 3992 if (pkBuildingClassInfo)3993 {3994 CvCivilizationInfo* pCivilizationInfo = GC.getCivilizationInfo(getCivilizationType());3995 3996 if (pCivilizationInfo != NULL)3997 {3998 eBuildingType = (BuildingTypes) pCivilizationInfo->getCivilizationBuildings(eBuildingClassType);3999 }4000 else4001 {4002 eBuildingType = (BuildingTypes) pkBuildingClassInfo->getDefaultBuildingIndex();4003 }4004 }4005 4006 if (!isMinorCiv() && !isBarbarian()) {4007 if (eBuildingType == NO_BUILDING) {4008 CUSTOMLOG("GetSpecificBuildingType for player %s: %s is UNKNOWN!!!", getName(), szBuildingClass);4009 } else {4010 // CUSTOMLOG("GetSpecificBuildingType for player %s: %s is %s", getName(), szBuildingClass, GC.getBuildingInfo(eBuildingType)->GetType());4011 }4012 }40134014 return eBuildingType;4015}
Calls
- CvBuildingClassInfo::getDefaultBuildingIndex() const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::getBuildingClassInfo(BuildingClassTypes)
- CvGlobals::getCivilizationInfo(CivilizationTypes)
- CvGlobals::getInfoTypeForString(const char *, bool) const
- CvPlayer::getCivilizationType() const
- CvPlayer::getName() const
- CvPlayer::isBarbarian() const
- CvPlayer::isMinorCiv() const
CvString::CvStringCvString::formatFILogFile::MsgFILogFileMgr::GetInstanceFILogFileMgr::GetLogstd::basic_string::c_str