CvUnit::CanDoInterfaceMode(InterfaceModeTypes, bool)
- Defined in
- CvUnit.cpp, line 23308
- Class
- CvUnit
- Hook name
CivHooks::CvUnit_CanDoInterfaceMode
Hooks
static bool BeforeCvUnit_CanDoInterfaceMode(CvUnit* self, InterfaceModeTypes eInterfaceMode, bool bTestVisibility, bool& result);static void AfterCvUnit_CanDoInterfaceMode(CvUnit* self, InterfaceModeTypes eInterfaceMode, bool bTestVisibility, bool& result);static bool ReplaceCvUnit_CanDoInterfaceMode(bool (*original)(CvUnit*, InterfaceModeTypes, bool), CvUnit* self, InterfaceModeTypes eInterfaceMode, bool bTestVisibility);CivRegisterBefore<CivHooks::CvUnit_CanDoInterfaceMode>(host, &BeforeCvUnit_CanDoInterfaceMode);CivRegisterAfter<CivHooks::CvUnit_CanDoInterfaceMode>(host, &AfterCvUnit_CanDoInterfaceMode);CivRegisterReplace<CivHooks::CvUnit_CanDoInterfaceMode>(host, &ReplaceCvUnit_CanDoInterfaceMode);
Code
23308bool CvUnit::CanDoInterfaceMode(InterfaceModeTypes eInterfaceMode, bool bTestVisibility)23309{23310 VALIDATE_OBJECT23311 CvAssertMsg(eInterfaceMode != NO_INTERFACEMODE, "InterfaceMode is not assigned a valid value");2331223313 if(IsBusy())23314 {23315 return false;23316 }2331723318 switch(eInterfaceMode)23319 {23320 case INTERFACEMODE_MOVE_TO:23321 if((getDomainType() != DOMAIN_AIR) && (getDomainType() != DOMAIN_IMMOBILE) && (!IsImmobile()))23322 {23323 return true;23324 }23325 break;2332623327 case INTERFACEMODE_MOVE_TO_TYPE:23328 break;2332923330 case INTERFACEMODE_MOVE_TO_ALL:23331 break;2333223333 case INTERFACEMODE_ROUTE_TO:23334 if(canBuildRoute())23335 {23336 return true;23337 }23338 break;2333923340 case INTERFACEMODE_AIRLIFT:23341 if(canAirlift(plot()))23342 {23343 return true;23344 }23345 break;2334623347 case INTERFACEMODE_NUKE:23348 if(canNuke(plot()))23349 {23350 return true;23351 }23352 break;2335323354 case INTERFACEMODE_PARADROP:23355 if(canParadrop(plot(), bTestVisibility))23356 {23357 return true;23358 }23359 break;2336023361 case INTERFACEMODE_RANGE_ATTACK:23362 if(canRangeStrike() && getDomainType() != DOMAIN_AIR)23363 {23364 return true;23365 }23366 break;2336723368 case INTERFACEMODE_CITY_RANGE_ATTACK:23369 break;2337023371 case INTERFACEMODE_ATTACK:23372 if(IsCanAttackWithMove() && !isOutOfAttacks())23373 {23374 if(IsEnemyInMovementRange(false, IsCityAttackOnly()) || bTestVisibility)23375 {23376 return true;23377 }23378 }2337923380 break;2338123382 case INTERFACEMODE_AIRSTRIKE:23383 if(getDomainType() == DOMAIN_AIR)23384 {23385 if(canRangeStrike())23386 {23387 return true;23388 }23389 }23390 break;2339123392 case INTERFACEMODE_AIR_SWEEP:23393 if(getDomainType() == DOMAIN_AIR)23394 {23395 if(canAirSweep())23396 {23397 return true;23398 }23399 }23400 break;2340123402 case INTERFACEMODE_REBASE:23403 if(getDomainType() == DOMAIN_AIR)23404 {23405 return true;23406 }23407 break;2340823409 case INTERFACEMODE_EMBARK:23410 if(canEmbark(plot()))23411 {23412 return true;23413 }23414 break;2341523416 case INTERFACEMODE_DISEMBARK:23417 if(canDisembark(plot()))23418 {23419 return true;23420 }23421 break;2342223423 case INTERFACEMODE_GIFT_UNIT:23424 if(CanDistanceGift((PlayerTypes) DLLUI->GetInterfaceModeValue()))23425 {23426 return true;23427 }23428 break;2342923430 case INTERFACEMODE_ESTABLISH_TRADE_ROUTE:23431 if (canMakeTradeRoute(plot()))23432 {23433 return true;23434 }23435 }2343623437 return false;23438}
Calls
- CvGlobals::GetEngineUserInterface()
- CvUnit::canAirlift(const CvPlot *) const
- CvUnit::canAirSweep() const
- CvUnit::canBuildRoute() const
- CvUnit::canDisembark(const CvPlot *) const
- CvUnit::CanDistanceGift(PlayerTypes) const
- CvUnit::canEmbark(const CvPlot *) const
- CvUnit::canMakeTradeRoute(const CvPlot *) const
- CvUnit::canNuke(const CvPlot *) const
- CvUnit::canParadrop(const CvPlot *, bool) const
- CvUnit::canRangeStrike() const
- CvUnit::getDomainType() const
- CvUnit::IsBusy() const
- CvUnit::IsCanAttackWithMove() const
- CvUnit::IsCityAttackOnly() const
- CvUnit::IsEnemyInMovementRange(bool, bool)
- CvUnit::IsImmobile() const
- CvUnit::isOutOfAttacks() const
- CvUnit::plot() const
ICvUserInterface1::GetInterfaceModeValue