CvPlayer::RespositionInvalidUnits()
- Defined in
- CvPlayer.cpp, line 5136
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_RespositionInvalidUnits
Hooks
static bool BeforeCvPlayer_RespositionInvalidUnits(CvPlayer* self);static void AfterCvPlayer_RespositionInvalidUnits(CvPlayer* self);static void ReplaceCvPlayer_RespositionInvalidUnits(void (*original)(CvPlayer*), CvPlayer* self);CivRegisterBefore<CivHooks::CvPlayer_RespositionInvalidUnits>(host, &BeforeCvPlayer_RespositionInvalidUnits);CivRegisterAfter<CivHooks::CvPlayer_RespositionInvalidUnits>(host, &AfterCvPlayer_RespositionInvalidUnits);CivRegisterReplace<CivHooks::CvPlayer_RespositionInvalidUnits>(host, &ReplaceCvPlayer_RespositionInvalidUnits);
Code
5136void CvPlayer::RespositionInvalidUnits()5137{5138 CvUnit* pLoopUnit;5139 int iLoop;51405141 for(pLoopUnit = firstUnit(&iLoop); pLoopUnit; pLoopUnit = nextUnit(&iLoop))5142 {5143 if(!pLoopUnit)5144 {5145 continue;5146 }51475148 if(pLoopUnit->isDelayedDeath())5149 {5150 continue;5151 }51525153 if(pLoopUnit->isCargo())5154 {5155 continue;5156 }51575158 if(pLoopUnit->isInCombat())5159 {5160 continue;5161 }51625163 CvPlot* pPlot = pLoopUnit->plot();5164 if(!pPlot)5165 {5166 continue;5167 }51685169#if defined(MOD_GLOBAL_STACKING_RULES)5170 if(pPlot->getNumFriendlyUnitsOfType(pLoopUnit) > pPlot->getUnitLimit())5171#else5172 if(pPlot->getNumFriendlyUnitsOfType(pLoopUnit) > GC.getPLOT_UNIT_LIMIT())5173#endif5174 {5175 if (!pLoopUnit->jumpToNearestValidPlot())5176 pLoopUnit->kill(false); // Could not find a valid location!5177 }5178 }5179}
Calls
- CvPlayer::firstUnit(int *, bool)
- CvPlayer::nextUnit(int *, bool)
- CvPlot::getNumFriendlyUnitsOfType(const CvUnit *, bool) const
- CvPlot::getUnitLimit() const
- CvUnit::isCargo() const
- CvUnit::isDelayedDeath() const
- CvUnit::isInCombat() const
- CvUnit::jumpToNearestValidPlot()
- CvUnit::kill(bool, PlayerTypes)
- CvUnit::plot() const