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
- CvCity::kill(bool)
- CvPlot::getPlotCity() const
- CvPlot::headUnitNode()
- CvPlot::nextUnitNode(IDInfo *)
- CvPlot::setFeatureType(FeatureTypes, int)
- CvPlot::setImprovementType(ImprovementTypes, PlayerTypes)
- CvPlot::setNEOfRiver(bool, FlowDirectionTypes)
- CvPlot::setNWOfRiver(bool, FlowDirectionTypes)
- CvPlot::setResourceType(ResourceTypes, int, bool)
- CvPlot::setRouteType(RouteTypes)
- CvPlot::setWOfRiver(bool, FlowDirectionTypes)
- CvUnit::kill(bool, PlayerTypes)
FFastSmallFixedList::clearFFastSmallFixedList::FFastSmallFixedListFFastSmallFixedList::headFFastSmallFixedList::insertAtEndFFastSmallFixedList::next- GetPlayerUnit(IDInfo &)