Bazaar developer reference

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

Called by