EconomicAIHelpers::IsTestStrategy_NeedGuilds(CvPlayer *)
- Defined in
- CvEconomicAI.cpp, line 4358
- Hook name
CivHooks::EconomicAIHelpers_IsTestStrategy_NeedGuilds
Hooks
static bool BeforeEconomicAIHelpers_IsTestStrategy_NeedGuilds(CvPlayer* pPlayer, bool& result);static void AfterEconomicAIHelpers_IsTestStrategy_NeedGuilds(CvPlayer* pPlayer, bool& result);static bool ReplaceEconomicAIHelpers_IsTestStrategy_NeedGuilds(bool (*original)(CvPlayer*), CvPlayer* pPlayer);CivRegisterBefore<CivHooks::EconomicAIHelpers_IsTestStrategy_NeedGuilds>(host, &BeforeEconomicAIHelpers_IsTestStrategy_NeedGuilds);CivRegisterAfter<CivHooks::EconomicAIHelpers_IsTestStrategy_NeedGuilds>(host, &AfterEconomicAIHelpers_IsTestStrategy_NeedGuilds);CivRegisterReplace<CivHooks::EconomicAIHelpers_IsTestStrategy_NeedGuilds>(host, &ReplaceEconomicAIHelpers_IsTestStrategy_NeedGuilds);
Code
4357/// We have the tech for guilds but haven't built them yet4358bool EconomicAIHelpers::IsTestStrategy_NeedGuilds(CvPlayer* pPlayer)4359{4360 CvTeam &kTeam = GET_TEAM(pPlayer->getTeam());43614362#if defined(MOD_BUGFIX_BUILDINGCLASS_NOT_BUILDING)4363 CvCivilizationInfo& playerCivilizationInfo = pPlayer->getCivilizationInfo();4364 BuildingTypes eWritersGuild = (BuildingTypes)playerCivilizationInfo.getCivilizationBuildings((BuildingClassTypes)GC.getInfoTypeForString("BUILDINGCLASS_WRITERS_GUILD"));4365 BuildingTypes eArtistsGuild = (BuildingTypes)playerCivilizationInfo.getCivilizationBuildings((BuildingClassTypes)GC.getInfoTypeForString("BUILDINGCLASS_ARTISTS_GUILD"));4366 BuildingTypes eMusiciansGuild = (BuildingTypes)playerCivilizationInfo.getCivilizationBuildings((BuildingClassTypes)GC.getInfoTypeForString("BUILDINGCLASS_MUSICIANS_GUILD"));4367#else4368 BuildingTypes eWritersGuild = (BuildingTypes)GC.getInfoTypeForString("BUILDING_WRITERS_GUILD", true);4369 BuildingTypes eArtistsGuild = (BuildingTypes)GC.getInfoTypeForString("BUILDING_ARTISTS_GUILD", true);4370 BuildingTypes eMusiciansGuild = (BuildingTypes)GC.getInfoTypeForString("BUILDING_MUSICIANS_GUILD", true);4371#endif43724373 CvBuildingEntry *pkBuilding;4374 pkBuilding = GC.getBuildingInfo(eWritersGuild);4375 if (pkBuilding)4376 {4377 if (kTeam.GetTeamTechs()->HasTech((TechTypes)pkBuilding->GetPrereqAndTech()))4378 {4379 if (pPlayer->GetFirstCityWithBuildingClass((BuildingClassTypes)pkBuilding->GetBuildingClassType()) == NULL)4380 {4381 return true;4382 }4383 }4384 }4385 pkBuilding = GC.getBuildingInfo(eArtistsGuild);4386 if (pkBuilding)4387 {4388 if (kTeam.GetTeamTechs()->HasTech((TechTypes)pkBuilding->GetPrereqAndTech()))4389 {4390 if (pPlayer->GetFirstCityWithBuildingClass((BuildingClassTypes)pkBuilding->GetBuildingClassType()) == NULL)4391 {4392 return true;4393 }4394 }4395 }4396 pkBuilding = GC.getBuildingInfo(eMusiciansGuild);4397 if (pkBuilding)4398 {4399 if (kTeam.GetTeamTechs()->HasTech((TechTypes)pkBuilding->GetPrereqAndTech()))4400 {4401 if (pPlayer->GetFirstCityWithBuildingClass((BuildingClassTypes)pkBuilding->GetBuildingClassType()) == NULL)4402 {4403 return true;4404 }4405 }4406 }44074408 return false;4409}
Calls
- CvBuildingEntry::GetBuildingClassType() const
- CvBuildingEntry::GetPrereqAndTech() const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getInfoTypeForString(const char *, bool) const
- CvPlayer::getCivilizationInfo() const
- CvPlayer::GetFirstCityWithBuildingClass(BuildingClassTypes)
- CvPlayer::getTeam() const
- CvTeam::getTeam(TeamTypes)
- CvTeam::GetTeamTechs() const
- CvTeamTechs::HasTech(TechTypes) const