CvPlot::updateLayout(bool)
- Defined in
- CvPlot.cpp, line 10951
- Class
- CvPlot
- Hook name
CivHooks::CvPlot_updateLayout
Hooks
static bool BeforeCvPlot_updateLayout(CvPlot* self, bool bDebug);static void AfterCvPlot_updateLayout(CvPlot* self, bool bDebug);static void ReplaceCvPlot_updateLayout(void (*original)(CvPlot*, bool), CvPlot* self, bool bDebug);CivRegisterBefore<CivHooks::CvPlot_updateLayout>(host, &BeforeCvPlot_updateLayout);CivRegisterAfter<CivHooks::CvPlot_updateLayout>(host, &AfterCvPlot_updateLayout);CivRegisterReplace<CivHooks::CvPlot_updateLayout>(host, &ReplaceCvPlot_updateLayout);
Code
10951void CvPlot::updateLayout(bool bDebug)10952{10953 TeamTypes eActiveTeam = GC.getGame().getActiveTeam();1095410955 FogOfWarModeTypes eFOWMode = GetActiveFogOfWarMode();1095610957 ResourceTypes eThisResource = (isCity() || eFOWMode == FOGOFWARMODE_UNEXPLORED) ? NO_RESOURCE : getResourceType(eActiveTeam);1095810959 ImprovementTypes eThisImprovement = getRevealedImprovementType(eActiveTeam, bDebug);10960 bool bShowHalfBuilt = false;10961 if(eThisImprovement == NO_IMPROVEMENT && getAnyBuildProgress() && eFOWMode == FOGOFWARMODE_OFF)10962 {10963 // see if we are improving the tile10964 for(int iBuildIndex = 0; iBuildIndex < GC.getNumBuildInfos(); iBuildIndex++)10965 {10966 BuildTypes eBuild = (BuildTypes)iBuildIndex;10967 CvBuildInfo* build = GC.getBuildInfo(eBuild);10968 if(build)10969 {10970 ImprovementTypes eInnerImprovement = (ImprovementTypes)build->getImprovement();10971 if(eInnerImprovement == NO_IMPROVEMENT)10972 {10973 continue;10974 }1097510976 int iProgress = getBuildProgress(eBuild);10977 if(iProgress > 0)10978 {10979 eThisImprovement = eInnerImprovement;10980 bShowHalfBuilt = true;10981 break;10982 }10983 }1098410985 }10986 }1098710988 int improvementState = 2; // half-built = 1, full built = 2, pillaged = 310989 if(IsImprovementPillaged() && eFOWMode == FOGOFWARMODE_OFF)10990 {10991 improvementState = 3;10992 }10993 else if(bShowHalfBuilt)10994 {10995 improvementState = 1;10996 }1099710998 RouteTypes eRoute = getRevealedRouteType(eActiveTeam, bDebug);10999 byte eRoadTypeValue = NUM_ROAD_RR_TYPES;11000 if(eRoute != NO_ROUTE)11001 {11002 switch(eRoute)11003 {11004 case ROUTE_ROAD:11005 if(IsRoutePillaged())11006 {11007 eRoadTypeValue = ROAD_PILLAGED;11008 }11009 else if(IsTradeRoute())11010 {11011 eRoadTypeValue = ROAD_TRADE_ROUTE;11012 }11013 else11014 {11015 eRoadTypeValue = ROAD_REGULAR;11016 }11017 break;11018 case ROUTE_RAILROAD:11019 if(IsRoutePillaged())11020 {11021 eRoadTypeValue = RR_PILLAGED;11022 }11023 else if(IsTradeRoute())11024 {11025 eRoadTypeValue = RR_TRADE_ROUTE;11026 }11027 else11028 {11029 eRoadTypeValue = RR_REGULAR;11030 }11031 break;11032 }11033 }11034 else11035 {11036 bShowHalfBuilt = false;11037 if(eRoute == NO_ROUTE && getAnyBuildProgress() && eFOWMode == FOGOFWARMODE_OFF)11038 {11039 // see if we are improving the tile11040 for(int iBuildIndex = 0; iBuildIndex < GC.getNumBuildInfos(); iBuildIndex++)11041 {11042 BuildTypes eBuild = (BuildTypes)iBuildIndex;11043 CvBuildInfo* build = GC.getBuildInfo(eBuild);11044 if(build)11045 {11046 RouteTypes eInnerRoute = (RouteTypes)build->getRoute();11047 if(eInnerRoute == NO_ROUTE)11048 {11049 continue;11050 }1105111052 int iProgress = getBuildProgress(eBuild);11053 if(iProgress > 0)11054 {11055 eRoute = eInnerRoute;11056 bShowHalfBuilt = true;11057 break;11058 }11059 }1106011061 }11062 }11063 if(bShowHalfBuilt)11064 {11065 switch(eRoute)11066 {11067 case ROUTE_ROAD:11068 eRoadTypeValue = ROAD_UNDER_CONSTRUCTION;11069 break;11070 case ROUTE_RAILROAD:11071 eRoadTypeValue = RR_UNDER_CONSTRUCTION;11072 break;11073 }11074 }11075 }1107611077 auto_ptr<ICvPlot1> pDllPlot(new CvDllPlot(this));11078 gDLL->GameplayPlotStateChange11079 (11080 pDllPlot.get(),11081 eThisResource,11082 eThisImprovement,11083 improvementState,11084 eRoute,11085 eRoadTypeValue11086 );11087}
Calls
- CvBuildInfo::getImprovement() const
- CvBuildInfo::getRoute() const
- CvDllPlot::CvDllPlot(CvPlot *)
- CvGame::getActiveTeam()
- CvGlobals::getBuildInfo(BuildTypes)
- CvGlobals::getDLLIFace()
- CvGlobals::getGame()
- CvGlobals::getNumBuildInfos()
- CvPlot::GetActiveFogOfWarMode() const
- CvPlot::getAnyBuildProgress() const
- CvPlot::getBuildProgress(BuildTypes) const
- CvPlot::getResourceType(TeamTypes) const
- CvPlot::getRevealedImprovementType(TeamTypes, bool) const
- CvPlot::getRevealedRouteType(TeamTypes, bool) const
- CvPlot::isCity() const
- CvPlot::IsImprovementPillaged() const
- CvPlot::IsRoutePillaged() const
- CvPlot::IsTradeRoute(PlayerTypes) const
ICvEngineUtility1::GameplayPlotStateChangestd::auto_ptr::auto_ptrstd::auto_ptr::get