Bazaar developer reference

CvPlot::erase(bool)

Defined in
CvPlot.cpp, line 361
Class
CvPlot
Hook name
CivHooks::CvPlot_erase

Hooks

static bool BeforeCvPlot_erase(CvPlot* self, bool bEraseUnits);static void AfterCvPlot_erase(CvPlot* self, bool bEraseUnits);static void ReplaceCvPlot_erase(void (*original)(CvPlot*, bool), CvPlot* self, bool bEraseUnits);CivRegisterBefore<CivHooks::CvPlot_erase>(host, &BeforeCvPlot_erase);CivRegisterAfter<CivHooks::CvPlot_erase>(host, &AfterCvPlot_erase);CivRegisterReplace<CivHooks::CvPlot_erase>(host, &ReplaceCvPlot_erase);

Code

361void CvPlot::erase(bool bEraseUnits)362{363	IDInfo* pUnitNode;364	CvCity* pCity;365	CvUnit* pLoopUnit;366	FFastSmallFixedList<IDInfo, 25, true, c_eCiv5GameplayDLL > oldUnits;367368	// kill units369	if (bEraseUnits)370	{371		oldUnits.clear();372373		pUnitNode = headUnitNode();374375		while (pUnitNode != NULL)376		{377			oldUnits.insertAtEnd(pUnitNode);378			pUnitNode = nextUnitNode(pUnitNode);379		}380381		pUnitNode = oldUnits.head();382383		while (pUnitNode != NULL)384		{385			pLoopUnit = GetPlayerUnit(*pUnitNode);386			pUnitNode = oldUnits.next(pUnitNode);387388			if (pLoopUnit != NULL)389			{390				pLoopUnit->kill(false);391			}392		}393	}394395	// kill cities396	pCity = getPlotCity();397	if (pCity != NULL)398	{399		pCity->kill();400	}401402	setResourceType(NO_RESOURCE, 0);403	setImprovementType(NO_IMPROVEMENT);404	setRouteType(NO_ROUTE);405	setFeatureType(NO_FEATURE);406407	// disable rivers408	setNEOfRiver(false, NO_FLOWDIRECTION);409	setNWOfRiver(false, NO_FLOWDIRECTION);410	setWOfRiver(false, NO_FLOWDIRECTION);411}

Calls

Called by