CvPlayerTrade::GetNumTradeRoutesPossible()
- Defined in
- CvTradeClasses.cpp, line 3674
- Class
- CvPlayerTrade
- Hook name
CivHooks::CvPlayerTrade_GetNumTradeRoutesPossible
Hooks
static bool BeforeCvPlayerTrade_GetNumTradeRoutesPossible(CvPlayerTrade* self, uint& result);static void AfterCvPlayerTrade_GetNumTradeRoutesPossible(CvPlayerTrade* self, uint& result);static uint ReplaceCvPlayerTrade_GetNumTradeRoutesPossible(uint (*original)(CvPlayerTrade*), CvPlayerTrade* self);CivRegisterBefore<CivHooks::CvPlayerTrade_GetNumTradeRoutesPossible>(host, &BeforeCvPlayerTrade_GetNumTradeRoutesPossible);CivRegisterAfter<CivHooks::CvPlayerTrade_GetNumTradeRoutesPossible>(host, &AfterCvPlayerTrade_GetNumTradeRoutesPossible);CivRegisterReplace<CivHooks::CvPlayerTrade_GetNumTradeRoutesPossible>(host, &ReplaceCvPlayerTrade_GetNumTradeRoutesPossible);
Code
3674uint CvPlayerTrade::GetNumTradeRoutesPossible (void)3675{3676 int iNumRoutes = 0;36773678 CvAssert(m_pPlayer->getCivilizationType() != NO_CIVILIZATION);3679 if (m_pPlayer->getCivilizationType() == NO_CIVILIZATION)3680 return 0;36813682 CvPlayerTechs* pMyPlayerTechs = m_pPlayer->GetPlayerTechs();3683 CvTeamTechs* pMyTeamTechs = GET_TEAM(GET_PLAYER(m_pPlayer->GetID()).getTeam()).GetTeamTechs();3684 CvTechEntry* pTechInfo = NULL; 36853686 CvTechXMLEntries* pMyPlayerTechEntries = pMyPlayerTechs->GetTechs();3687 CvAssert(pMyPlayerTechEntries);3688 if (pMyPlayerTechEntries == NULL)3689 return 0;36903691 for(int iTechLoop = 0; iTechLoop < pMyPlayerTechEntries->GetNumTechs(); iTechLoop++)3692 {3693 TechTypes eTech = (TechTypes)iTechLoop;3694 if (!pMyTeamTechs->HasTech(eTech))3695 {3696 continue;3697 }36983699 pTechInfo = pMyPlayerTechEntries->GetEntry(eTech);3700 CvAssertMsg(pTechInfo, "null tech entry");3701 if (pTechInfo)3702 {3703 iNumRoutes += pTechInfo->GetNumInternationalTradeRoutesChange();3704 }3705 }37063707 CvCivilizationInfo& kCivInfo = m_pPlayer->getCivilizationInfo();3708 int iLoop = 0;3709 CvCity* pLoopCity;3710 for(pLoopCity = m_pPlayer->firstCity(&iLoop); pLoopCity != NULL; pLoopCity = m_pPlayer->nextCity(&iLoop))3711 {3712 for (int iI = 0; iI < GC.getNumBuildingClassInfos(); iI++)3713 {3714 BuildingTypes eBuilding = (BuildingTypes)kCivInfo.getCivilizationBuildings(iI);3715 if(eBuilding != NO_BUILDING)3716 {3717 CvBuildingEntry* pBuildingEntry = GC.GetGameBuildings()->GetEntry(eBuilding);3718 if (!pBuildingEntry)3719 {3720 continue;3721 }37223723 if (pBuildingEntry)3724 {3725 if (pLoopCity->GetCityBuildings()->GetNumBuilding((BuildingTypes)pBuildingEntry->GetID()))3726 {3727 int iNumRouteBonus = pBuildingEntry->GetNumTradeRouteBonus();3728 if (iNumRouteBonus != 0)3729 {3730#if defined(MOD_BUGFIX_MINOR)3731 iNumRoutes += (iNumRouteBonus * pLoopCity->GetCityBuildings()->GetNumBuilding((BuildingTypes)pBuildingEntry->GetID()));3732#else3733 iNumRoutes += iNumRouteBonus;3734#endif3735 }3736 }3737 }3738 }3739 }3740 }37413742 int iModifier = 100 + m_pPlayer->GetPlayerTraits()->GetNumTradeRoutesModifier();3743 iNumRoutes *= iModifier;3744 iNumRoutes /= 100;37453746 return iNumRoutes;3747}
Calls
- CvBaseInfo::GetID() const
- CvBuildingEntry::GetNumTradeRouteBonus() const
- CvBuildingXMLEntries::GetEntry(int)
- CvCity::GetCityBuildings() const
- CvCityBuildings::GetNumBuilding(BuildingTypes) const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::GetGameBuildings() const
- CvGlobals::getNumBuildingClassInfos()
- CvPlayer::firstCity(int *, bool)
- CvPlayer::getCivilizationInfo() const
- CvPlayer::getCivilizationType() const
- CvPlayer::GetID() const
- CvPlayer::GetPlayerTechs() const
- CvPlayer::GetPlayerTraits() const
- CvPlayer::getTeam() const
- CvPlayer::nextCity(int *, bool)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerTechs::GetTechs() const
- CvPlayerTraits::GetNumTradeRoutesModifier() const
- CvTeam::getTeam(TeamTypes)
- CvTeam::GetTeamTechs() const
- CvTeamTechs::HasTech(TechTypes) const
- CvTechEntry::GetNumInternationalTradeRoutesChange() const
- CvTechXMLEntries::GetEntry(int)
- CvTechXMLEntries::GetNumTechs()
Called by
- CvEconomicAI::LogMonitor()
- CvPlayerTrade::GetNumTradeRoutesRemaining(bool)
- CvTradeAI::ChooseTradeUnitTargetPlot(CvUnit *, int &, int &, TradeConnectionType &, bool &, const TradeConnectionList &)
- CvLeagueAI::ScoreVoteChoiceYesNo(CvProposal *, int, bool)
- CvLuaPlayer::lGetNumInternationalTradeRoutesAvailable(lua_State *)