sources » TemporalClass » CanWarpTarget
/*
* Determines whether or not the target can be erased
*/
bool TemporalClass::CanWarpTarget(TechnoClass *target) {
if ( !target )
return 0;
if ( !target->GetType()->Warpable )
return 0;
if ( target->IsIronCurtained() )
return 0;
if( target->What_Am_I() != IS_UNIT )
return 1;
// Radio_GetNthEntry returns the object caller is currently in (repair bay, exiting warfac, etc.)
TechnoClass *entry = target->Radio_GetNthEntry(0);
if( !entry )
return 1;
if( entry->What_Am_I() != IS_BUILDING )
return 1;
if( !entry->BuildingType->WeaponsFactory )
return 1;
return Map->GetCell(target->position)->GetBuilding() != entry;
}