CvTeam::DoUpdateBestRoute()
- Defined in
- CvTeam.cpp, line 4498
- Class
- CvTeam
- Hook name
CivHooks::CvTeam_DoUpdateBestRoute
Hooks
static bool BeforeCvTeam_DoUpdateBestRoute(CvTeam* self);static void AfterCvTeam_DoUpdateBestRoute(CvTeam* self);static void ReplaceCvTeam_DoUpdateBestRoute(void (*original)(CvTeam*), CvTeam* self);CivRegisterBefore<CivHooks::CvTeam_DoUpdateBestRoute>(host, &BeforeCvTeam_DoUpdateBestRoute);CivRegisterAfter<CivHooks::CvTeam_DoUpdateBestRoute>(host, &AfterCvTeam_DoUpdateBestRoute);CivRegisterReplace<CivHooks::CvTeam_DoUpdateBestRoute>(host, &ReplaceCvTeam_DoUpdateBestRoute);
Code
4497/// Figures out what the best available route is4498void CvTeam::DoUpdateBestRoute()4499{4500 RouteTypes eBestRoute = NO_ROUTE;4501 int iBestRouteValue = 0;45024503 // Loop through all builds to see if it allows us to build a Route4504 for(int iBuildLoop = 0; iBuildLoop < GC.getNumBuildInfos(); iBuildLoop++)4505 {4506 const BuildTypes eBuild = static_cast<BuildTypes>(iBuildLoop);4507 CvBuildInfo* pkBuildInfo = GC.getBuildInfo(eBuild);4508 if(pkBuildInfo)4509 {4510 const RouteTypes eRoute = (RouteTypes) pkBuildInfo->getRoute();4511 if(eRoute != NO_ROUTE)4512 {4513 int iRouteValue = -1;45144515 // If this route requires a tech, it's value is the cost of the tech4516 const TechTypes eTech = (TechTypes) pkBuildInfo->getTechPrereq();4517 CvTechEntry* pkTechInfo = (eTech != NO_TECH)? GC.getTechInfo(eTech) : NULL;4518 if(pkTechInfo)4519 {4520 if(GetTeamTechs()->HasTech(eTech))4521 {4522 iRouteValue = pkTechInfo->GetResearchCost();4523 }4524 }4525 // Route requires no tech, so it's value is simply 14526 else4527 {4528 iRouteValue = 1;4529 }45304531 // Most valuable route found so far? (note we use greater than OR equal to so that we'll pick up the LAST entry in Builds - this is most likely to be the most advanced if there are ties)4532 if(iRouteValue >= iBestRouteValue)4533 {4534 iBestRouteValue = iRouteValue;4535 eBestRoute = eRoute;4536 }4537 }4538 }4539 }45404541 if(iBestRouteValue > -1)4542 {4543 SetBestPossibleRoute(eBestRoute);4544 }4545}
Calls
- CvBuildInfo::getRoute() const
- CvBuildInfo::getTechPrereq() const
- CvGlobals::getBuildInfo(BuildTypes)
- CvGlobals::getNumBuildInfos()
- CvGlobals::getTechInfo(TechTypes)
- CvTeam::GetTeamTechs() const
- CvTeam::SetBestPossibleRoute(RouteTypes)
- CvTeamTechs::HasTech(TechTypes) const
- CvTechEntry::GetResearchCost() const