Bazaar developer reference

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

Called by